
:root{--primary:#00d4aa;--primary-dark:#00b892;--text:#11151c;--muted:#747c87;--border:#dfe4e8;--page:#f5f7f9;--danger:#e34959}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif;background:var(--page);color:var(--text)}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(430px,.92fr)}
.auth-visual{position:relative;min-height:100vh;background:#070a0e;overflow:hidden}
.auth-visual:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 25%,rgba(0,212,170,.22),transparent 33%),radial-gradient(circle at 80% 72%,rgba(0,128,255,.14),transparent 30%),linear-gradient(145deg,#111821,#06090d 68%);z-index:0}.auth-visual.has-carousel:before{display:none}.auth-slides{position:absolute;inset:0;z-index:0}.auth-slide{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;opacity:0;transform:scale(1.015);transition:opacity .65s ease,transform 6s ease}.auth-slide.active{opacity:1;transform:scale(1.045)}.auth-image-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,8,12,.08) 0%,rgba(4,8,12,.12) 38%,rgba(4,8,12,.58) 70%,rgba(4,8,12,.96) 100%),linear-gradient(90deg,rgba(4,8,12,.18),transparent 58%);pointer-events:none}.auth-dots{position:absolute;left:44px;bottom:24px;z-index:4;display:flex;gap:7px}.auth-dot{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.42);cursor:pointer;transition:.2s}.auth-dot.active{width:22px;border-radius:999px;background:#fff}
.grid-lines{position:absolute;inset:0;opacity:.13;background-image:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(to bottom,#000,transparent 88%)}
.auth-brand{position:absolute;top:36px;left:42px;z-index:2;display:flex;align-items:center;gap:10px}.auth-brand img{height:43px;max-width:175px;filter:brightness(0) invert(1);object-fit:contain}.auth-brand span{font-size:10px;font-weight:800;color:var(--primary);letter-spacing:.2em}
.auth-copy{position:absolute;left:44px;right:44px;bottom:58px;z-index:2;color:#fff;max-width:610px}.auth-copy .eyebrow{font-size:10px;color:var(--primary);letter-spacing:.15em;text-transform:uppercase;font-weight:800}.auth-copy h1{font-size:clamp(34px,4.5vw,58px);line-height:1.02;letter-spacing:-.05em;margin:13px 0;text-shadow:0 2px 18px rgba(0,0,0,.38)}.auth-copy p{font-size:14px;line-height:1.7;color:#d1d7de;max-width:540px;text-shadow:0 1px 10px rgba(0,0,0,.42)}
.auth-features{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.auth-features span{font-size:10px;font-weight:700;color:#c8d0d8;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.045);border-radius:999px;padding:8px 11px}
.auth-panel{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:42px;background:#fff}.auth-card{width:100%;max-width:400px}.auth-card .mobile-logo{display:none}.auth-card h2{font-size:27px;letter-spacing:-.04em;margin:0 0 8px}.auth-card>p{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 25px}
.field{margin-bottom:15px}.field label{display:block;font-size:11px;font-weight:750;margin:0 0 7px}.control{position:relative}.control i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#8a929d;font-size:13px}.control input,.control select{width:100%;height:46px;border:1px solid var(--border);border-radius:10px;padding:0 13px 0 39px;font:500 13px Inter;outline:none;background:#fff}.control select{padding-left:13px}.control input:focus,.control select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,212,170,.11)}
.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#7d8791;width:34px;height:34px;cursor:pointer}.password-toggle i{position:static;transform:none}
.auth-btn{width:100%;height:47px;border:0;border-radius:10px;background:var(--primary);color:#06251e;font:800 13px Inter;cursor:pointer;margin-top:4px}.auth-btn:hover{background:#15dfb7}.auth-links{display:flex;justify-content:space-between;gap:10px;margin-top:13px;font-size:11px}.auth-links a{color:#46515c;text-decoration:none}.auth-links a:hover{color:#00a887}
.auth-bottom{text-align:center;border-top:1px solid #eef0f2;margin-top:24px;padding-top:20px;font-size:11px;color:var(--muted)}.auth-bottom a{color:#008e72;font-weight:750;text-decoration:none}
.auth-error{background:#fff0f2;color:#b62f43;border:1px solid #ffd8de;border-radius:9px;padding:11px 12px;font-size:11px;margin-bottom:16px;line-height:1.45}.auth-success{background:#eafff8;color:#08735e;border:1px solid #bef5e3;border-radius:9px;padding:11px 12px;font-size:11px;margin-bottom:16px;line-height:1.45}
.hint{font-size:10px;color:var(--muted);margin-top:6px;line-height:1.45}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:850px){.auth-shell{display:block}.auth-visual{display:none}.auth-panel{min-height:100vh;padding:30px 20px}.auth-card .mobile-logo{display:flex;align-items:center;gap:10px;margin-bottom:34px}.mobile-logo img{height:38px;max-width:150px}.mobile-logo span{font-size:10px;font-weight:800;color:#00a887;letter-spacing:.18em}}
@media(max-width:480px){.auth-panel{padding:24px 16px}.two-fields{grid-template-columns:1fr}.auth-card h2{font-size:24px}}

/* Google auth + login order V2 */
.auth-divider{display:flex;align-items:center;gap:14px;margin:18px 0;color:#98a2b3;font-size:11px;width:100%}.auth-divider span{height:1px;background:#e5e7eb;flex:1}.auth-divider b{font-weight:600;color:#667085;line-height:1}.auth-action-row{width:100%;max-width:400px;margin-left:auto;margin-right:auto}.auth-action-row .auth-btn{width:100%}.google-auth-wrap{width:100%;max-width:none;margin:0 auto;display:block;overflow:visible;padding:0 1px}.google-auth-wrap>.g_id_signin,.google-auth-wrap>.g_id_signin>div{width:100%!important;max-width:none!important;display:block!important}.google-auth-wrap iframe{display:block!important;max-width:100%!important;margin:0 auto!important}.auth-card form,.auth-card .auth-divider,.auth-card .google-auth-wrap,.auth-card .auth-forgot,.auth-card .auth-bottom{width:100%}.auth-forgot{text-align:center;margin-top:15px;font-size:11px}.auth-forgot a{color:#46515c;text-decoration:none}.auth-forgot a:hover{color:#00a887}.google-create-prompt{border:1px solid #cfeee6;background:#f2fffb;border-radius:11px;padding:14px;margin:0 0 18px;display:grid;gap:7px}.google-create-prompt strong{font-size:12px;color:#0f513f}.google-create-prompt span{font-size:11px;line-height:1.5;color:#5d6b66}.google-create-prompt form{margin-top:3px}.google-create-btn{margin-top:0}

/* Google Identity button — Google already draws its own border.
   The wrapper must not draw a second button around it. */
.google-auth-wrap{width:100%;height:44px;margin:0 auto;display:block;position:relative;border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;padding:0!important;box-sizing:border-box}
.google-auth-wrap>div[id$="Button"],
.google-auth-wrap>div[id$="Button"]>div,
.google-auth-wrap>div[id$="Button"]>div>div,
.google-auth-wrap .g_id_signin,
.google-auth-wrap .g_id_signin>div{width:100%!important;max-width:100%!important;min-width:0!important;display:block!important;margin:0!important;padding:0!important}
.google-auth-wrap iframe{display:block!important;width:100%!important;max-width:100%!important;min-width:100%!important;height:44px!important;margin:0!important;border:0!important}

/* Register live validation */
.field-feedback{font-size:10px;line-height:1.45;margin-top:6px;min-height:15px;font-weight:650}.field-feedback.error{color:#c93546}.field-feedback.ok{color:#078a6d}.control.is-invalid input{border-color:#e34959;box-shadow:0 0 0 3px rgba(227,73,89,.09)}.control.is-valid input{border-color:#14a97f}.password-strength{margin-top:8px}.password-strength-track{height:6px;background:#edf0f3;border-radius:999px;overflow:hidden}.password-strength-fill{height:100%;width:0;border-radius:inherit;transition:width .2s ease,background .2s ease}.password-strength-fill.weak{width:25%;background:#e34959}.password-strength-fill.medium{width:60%;background:#f59e0b}.password-strength-fill.strong{width:100%;background:#16a66f}.password-strength-label{font-size:10px;font-weight:750;margin-top:6px;color:#7b8493}.password-requirements{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:7px;font-size:9px;color:#8b95a1}.password-requirements span::before{content:"•";margin-right:4px}.password-requirements span.met{color:#078a6d}

/* Google Identity Services: one clean button, no iframe stretching/flicker */
.google-auth-wrap{width:100%!important;height:44px!important;display:block!important;position:relative!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;border-radius:4px!important;overflow:hidden!important;opacity:0;transition:opacity .12s ease}
.google-auth-wrap.is-ready{opacity:1}
.google-auth-host{width:100%!important;height:44px!important;display:block!important;margin:0!important;padding:0!important;overflow:hidden!important}
.google-auth-host>div{width:100%!important;max-width:100%!important;margin:0!important}
.google-auth-host iframe{display:block!important;margin:0!important;border:0!important;max-width:none!important}
