:root {
    --viabo-lime: oklch(92% .22 125);
    --viabo-ink: oklch(13% .02 260);
    --viabo-purple: oklch(52% .24 280);
    --viabo-text: #2b3550;
    --viabo-muted: #7d89a8;
    --viabo-border: #dfe5f1;
    --viabo-canvas: #f5f7fb;
}
* { box-sizing:border-box; }
html,body { min-height:100%; }
body.viabo-login-body { margin:0; min-height:100vh; background:#fff; color:var(--viabo-text); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
.viabo-auth-page { min-height:100vh; display:grid; grid-template-columns:minmax(360px,34%) minmax(0,1fr); }
.viabo-auth-brand { position:relative; overflow:hidden; display:flex; flex-direction:column; min-height:100vh; padding:3.2rem 4rem; border-radius:0 70px 70px 0; background:var(--viabo-ink); color:#fff; }
/*.viabo-auth-brand::before { content:""; position:absolute; width:380px; height:380px; left:-145px; bottom:-130px; border-radius:50%; background:color-mix(in srgb, rgb(195,252,47) 22%, transparent); filter:blur(1px); }
.viabo-auth-brand::after { content:""; position:absolute; width:240px; height:240px; right:-95px; top:10%; border-radius:50%; background:color-mix(in srgb, var(--viabo-purple) 36%, transparent); }
*/.viabo-auth-logo { position:relative; z-index:2; display:inline-flex; align-items:center; gap:.8rem; color:#fff; text-decoration:none; width:max-content; }
.viabo-auth-logo-mark { width:46px; height:46px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.12); border-radius:13px; background:rgba(255,255,255,.05); color:var(--viabo-lime); font-weight:800; font-size:1.15rem; }
.viabo-auth-logo-copy strong { display:block; font-size:1rem; letter-spacing:.02em; }
.viabo-auth-logo-copy span { display:block; color:rgba(255,255,255,.58); font-size:.66rem; text-transform:uppercase; letter-spacing:.1em; }
.viabo-auth-visual { position:relative; z-index:1; margin:auto 0; padding:3rem 0; }
.viabo-auth-visual-card { position:relative; width:min(360px,100%); min-height:260px; padding:1.45rem; border:1px solid rgba(255,255,255,.10); border-radius:26px; background:rgba(255,255,255,.055); box-shadow:0 30px 80px rgba(0,0,0,.25); backdrop-filter:blur(10px); }
.viabo-auth-visual-card::after { content:""; position:absolute; inset:auto 22px 22px auto; width:88px; height:88px; border-radius:50%; background:var(--viabo-lime); opacity:.9; filter:blur(45px); }
.viabo-mini-bar { width:100%; height:8px; margin-bottom:1rem; border-radius:999px; background:rgba(255,255,255,.09); }
.viabo-mini-bar.is-lime { width:42%; background:var(--viabo-lime); }
.viabo-mini-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem; margin-top:1.6rem; }
.viabo-mini-tile { min-height:84px; padding:.9rem; border-radius:15px; background:rgba(255,255,255,.06); }
.viabo-mini-tile i { color:var(--viabo-lime); font-size:1.15rem; }
.viabo-mini-tile span { display:block; margin-top:1.1rem; color:rgba(255,255,255,.7); font-size:.72rem; }
.viabo-auth-brand-copy { position:relative; z-index:2; }
.viabo-auth-brand-copy span { display:block; color:rgba(255,255,255,.55); font-size:.74rem; text-transform:uppercase; letter-spacing:.12em; }
.viabo-auth-brand-copy strong { display:block; margin-top:.35rem; color:#fff; font-size:1rem; font-weight:600; }
.viabo-auth-content { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:4rem 2rem 2rem; }
.viabo-auth-card { width:min(470px,100%); }
.viabo-auth-heading { margin-bottom:2.2rem; }
.viabo-auth-heading h1 { margin:0; color:var(--viabo-ink); font-size:1.62rem; font-weight:600; letter-spacing:-.025em; }
.viabo-auth-heading h1 span { color:var(--viabo-purple); }
.viabo-auth-heading p { margin:.55rem 0 0; color:var(--viabo-muted); font-size:.9rem; }
.viabo-auth-alert { display:flex; gap:.7rem; align-items:flex-start; border-radius:12px; font-size:.84rem; }
.viabo-auth-field { margin-bottom:1.15rem; }
.viabo-auth-field .form-label { margin-bottom:.5rem; color:#34405a; font-size:.82rem; font-weight:550; }
.viabo-auth-field .form-control { min-height:48px; border-color:var(--viabo-border); border-radius:10px; font-size:.9rem; box-shadow:none; }
.viabo-auth-field .form-control:focus { border-color:color-mix(in srgb, rgb(195,252,47) 60%, #9aa5bf); box-shadow:0 0 0 .22rem color-mix(in srgb, rgb(195,252,47) 18%, transparent); }
.viabo-password-control { position:relative; }
.viabo-password-control .form-control { padding-right:3rem; }
.viabo-password-toggle { position:absolute; top:50%; right:.55rem; width:36px; height:36px; transform:translateY(-50%); border:0; border-radius:9px; background:transparent; color:#8994ad; }
.viabo-password-toggle:hover { background:#f5f7fb; color:var(--viabo-ink); }
.viabo-auth-options { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:.15rem 0 1.3rem; font-size:.8rem; }
.viabo-auth-link { color:#4b5570; text-decoration:none; }
.viabo-auth-link:hover { color:var(--viabo-purple); }
.viabo-auth-submit { width:100%; min-height:48px; border:1px solid var(--viabo-ink); border-radius:10px; background:var(--viabo-ink); color:var(--viabo-lime); font-size:.87rem; font-weight:600; }
.viabo-auth-submit:hover { border-color:#232936; background:#232936; color:var(--viabo-lime); }
.viabo-auth-divider { display:flex; align-items:center; gap:.8rem; margin:1.35rem 0; color:#a0a8b9; font-size:.74rem; }
.viabo-auth-divider::before,.viabo-auth-divider::after { content:""; flex:1; height:1px; background:var(--viabo-border); }
.viabo-google-shell { min-height:44px; display:flex; justify-content:center; overflow:hidden; }
.viabo-auth-security { display:flex; align-items:flex-start; gap:.6rem; margin-top:1.7rem; padding-top:1.25rem; border-top:1px solid var(--viabo-border); color:#8a94aa; font-size:.75rem; line-height:1.5; }
.viabo-auth-security i { color:#65718c; }
.viabo-auth-footer { margin-top:auto; padding-top:2.5rem; color:#a0a8b9; font-size:.72rem; text-align:center; }
@media (max-width:991.98px) { .viabo-auth-page{grid-template-columns:1fr}.viabo-auth-brand{min-height:190px;padding:2rem;border-radius:0 0 42px 42px}.viabo-auth-visual{display:none}.viabo-auth-brand-copy{margin-top:auto}.viabo-auth-content{padding:2.2rem 1.25rem}.viabo-auth-logo-mark{width:40px;height:40px} }

/* Identical official logo on login and 2FA */
.viabo-auth-logo img.viabo-auth-logo-image {width:176px!important;max-width:100%;height:48px!important;max-height:48px!important;object-fit:contain;object-position:left center;display:block}
@media(max-width:991.98px){.viabo-auth-logo img.viabo-auth-logo-image{width:148px!important;height:42px!important;max-height:42px!important}}
