/* Dedicated public authentication experience. */
:root { --auth-ink:#172133; --auth-muted:#68758a; --auth-primary:#176b87; --auth-primary-dark:#10556d; --auth-accent:#2bb4a0; --auth-border:#dce6ea; --auth-canvas:#f4f7fa; }
body.app-body.auth-page { margin-left:0; min-height:100vh; background:var(--auth-canvas); }
.auth-page .sidebar,.auth-page .content { display:none; }
.auth-shell { display:grid; min-height:100vh; grid-template-columns:minmax(440px, 47vw) minmax(440px, 1fr); }
.auth-story { position:relative; display:flex; min-height:100vh; flex-direction:column; overflow:hidden; padding:clamp(32px,5vw,70px); color:#fff; background:radial-gradient(ellipse 85% 55% at 82% 88%, #176b87 0%, transparent 72%),radial-gradient(ellipse 54% 42% at 21% 0%, #234657 0%, transparent 72%),linear-gradient(145deg,#102a3a,#0c2230); }
.auth-story::before { content:""; position:absolute; inset:0; opacity:.32; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:62px 62px; mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 84%); }
.auth-story-orbit { position:absolute; border:1px solid rgba(154,223,234,.16); border-radius:50%; pointer-events:none; }
.auth-story-orbit-one { width:650px; height:650px; right:-250px; top:-265px; }.auth-story-orbit-two { width:450px; height:450px; right:-145px; top:-173px; border-color:rgba(154,223,234,.24); }
.auth-brand,.auth-mobile-brand { position:relative; z-index:1; display:inline-flex; align-items:center; width:max-content; gap:10px; color:#fff; font-family:'Manrope',sans-serif; font-size:23px; font-weight:800; letter-spacing:-.075em; text-decoration:none; }
.auth-brand>span:last-child>span,.auth-mobile-brand>span:last-child>span { color:#5fdec8; }
.auth-brand-mark { display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(112,233,211,.24); border-radius:13px; background:rgba(43,180,160,.16); color:#d8fff8; font-size:20px; letter-spacing:normal; }
.auth-story-copy { position:relative; z-index:1; max-width:540px; margin:clamp(76px,9.5vh,110px) 0 0; }
.auth-story-eyebrow { display:flex; align-items:center; gap:9px; margin:0 0 20px; color:#68dbc7; font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }.auth-story-eyebrow>span { width:7px; height:7px; border-radius:50%; background:#2bb4a0; box-shadow:0 0 0 5px rgba(43,180,160,.13); }
.auth-story-copy h1 { max-width:500px; margin:0; color:#fff; font-size:clamp(42px,4.15vw,69px); font-weight:800; line-height:1.03; letter-spacing:-.062em; }
.auth-story-copy>p:last-child { max-width:470px; margin:23px 0 0; color:#b6cbd5; font-size:16px; line-height:1.65; }
.auth-story-preview { position:relative; z-index:1; width:min(560px,100%); margin-top:auto; overflow:hidden; border:1px solid rgba(210,240,246,.22); border-radius:18px; background:rgba(235,249,252,.1); box-shadow:0 22px 45px rgba(0,0,0,.16); backdrop-filter:blur(12px); }
.auth-preview-topbar { display:flex; align-items:center; gap:5px; height:43px; padding:0 15px; border-bottom:1px solid rgba(213,240,246,.16); color:#cbe4ea; font-size:11px; }.auth-preview-topbar>span { width:6px; height:6px; border-radius:50%; background:#5c7784; }.auth-preview-topbar>span:first-child { background:#5fdec8; }.auth-preview-topbar>b { margin-left:7px; font-weight:700; }
.auth-preview-metrics { display:grid; grid-template-columns:1fr 1fr; gap:9px; padding:14px; }.auth-preview-metrics>div,.auth-preview-signal { border:1px solid rgba(220,244,248,.14); border-radius:11px; background:rgba(255,255,255,.09); }.auth-preview-metrics>div { display:flex; flex-direction:column; padding:12px; }.auth-preview-metrics small,.auth-preview-signal small { color:#a7c3ce; font-size:10px; }.auth-preview-metrics strong { margin:3px 0; color:#fff; font-family:'Manrope',sans-serif; font-size:22px; letter-spacing:-.055em; }.auth-preview-metrics span { color:#6cdec8; font-size:10px; }
.auth-preview-signal { display:flex; align-items:center; gap:10px; margin:0 14px 14px; padding:11px 12px; background:rgba(76,204,174,.16); }.auth-preview-signal>span { width:29px; height:29px; display:grid; place-items:center; border-radius:9px; background:#2a9a83; }.auth-preview-signal>span::before { content:"✦"; color:#e6fffa; font-size:16px; }.auth-preview-signal>div { display:flex; flex:1; flex-direction:column; }.auth-preview-signal strong { margin-top:2px; color:#ecfffb; font-size:12px; }.auth-preview-signal>i { color:#72e3cf; }
.auth-story-trust { position:relative; z-index:1; display:flex; align-items:center; gap:8px; margin:20px 0 0; color:#98b5c1; font-size:11px; font-weight:600; }.auth-story-trust i { color:#5fdec8; font-size:14px; }
.auth-main { display:flex; align-items:center; justify-content:center; flex-direction:column; padding:42px 28px; background:radial-gradient(circle at 80% 18%,#e8f4f5 0,transparent 28%),var(--auth-canvas); }
.auth-mobile-brand { display:none; color:var(--auth-ink); margin-bottom:28px; }.auth-mobile-brand .auth-brand-mark { color:var(--auth-primary); background:#e6f4f6; border-color:#d3e9ed; }
.auth-card { width:min(100%,620px); padding:clamp(38px,4.7vw,58px); border:1px solid rgba(218,228,234,.95); border-radius:24px; background:rgba(255,255,255,.94); box-shadow:0 28px 68px rgba(23,44,66,.11); }
.auth-card-header { margin-bottom:35px; }.auth-card-kicker { display:flex; align-items:center; gap:8px; margin:0 0 12px; color:var(--auth-primary); font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.auth-card-kicker i { color:var(--auth-accent); font-size:14px; }.auth-card-header h1 { margin:0; color:var(--auth-ink); font-size:42px; font-weight:800; letter-spacing:-.052em; line-height:1.06; }.auth-card-header p { margin:11px 0 0; color:#5d6e83; font-size:17px; font-weight:500; line-height:1.55; }
.auth-form { display:flex; flex-direction:column; gap:0; }.auth-form .mb-3,.auth-form .form-group { margin-bottom:22px!important; }.auth-form label { display:block; margin-bottom:8px; color:#36465b; font-size:15px; font-weight:700; }.auth-form .form-text { margin-top:8px; color:var(--auth-muted); font-size:13px; font-weight:600; line-height:1.45; }.auth-form .form-text a { color:var(--auth-primary); text-decoration:none; }.auth-form .form-text a:hover { color:var(--auth-primary-dark); text-decoration:underline; }.auth-form .form-control,.auth-form input:not([type="checkbox"]):not([type="radio"]),.auth-form select { min-height:56px; border:1px solid #d5e1e7; border-radius:12px; background:#fbfcfd; color:var(--auth-ink); font-size:16px; }.auth-form .form-control:focus,.auth-form input:not([type="checkbox"]):not([type="radio"]):focus,.auth-form select:focus { border-color:#4e9db4; box-shadow:0 0 0 4px rgba(23,107,135,.11); }.auth-form .form-check { display:flex; align-items:center; gap:9px; margin:3px 0 5px; }.auth-form .form-check input { width:17px; height:17px; margin:0; border-color:#b9cbd4; accent-color:var(--auth-primary); }.auth-form .form-check label { margin:0; color:#46586d; font-size:15px; font-weight:600; }.auth-form .invalid-feedback,.auth-form .errorlist { display:block; margin:7px 0 0; padding:0; color:#a64a55; font-size:13px; list-style:none; }.auth-form .is-invalid { border-color:#cc7680!important; }
.auth-password-field { position:relative; display:block; }.auth-password-field input { width:100%; padding-right:48px; }.auth-password-toggle { position:absolute; top:50%; right:7px; width:35px; height:35px; border:0; border-radius:8px; color:#6d7d8d; background:transparent; transform:translateY(-50%); }.auth-password-toggle:hover,.auth-password-toggle:focus { color:var(--auth-primary); background:#e9f3f5; outline:0; }
.auth-form-utilities { display:flex; align-items:center; justify-content:flex-end; margin:2px 0 27px; }.auth-inline-link,.auth-switch a,.auth-state a,.auth-detail-link { color:var(--auth-primary); font-size:14px; font-weight:700; text-decoration:none; }.auth-inline-link:hover,.auth-switch a:hover,.auth-state a:hover,.auth-detail-link:hover { color:var(--auth-primary-dark); text-decoration:underline; }
.auth-submit,.auth-secondary-action,.auth-danger-action { display:inline-flex; min-height:56px; align-items:center; justify-content:center; gap:9px; width:100%; border-radius:12px; font-size:16px; font-weight:800; text-decoration:none; transition:transform .18s ease,box-shadow .18s ease,background .18s ease; }.auth-submit { border:1px solid var(--auth-primary); background:var(--auth-primary); color:#fff; box-shadow:0 10px 20px rgba(23,107,135,.18); }.auth-submit:hover { border-color:var(--auth-primary-dark); background:var(--auth-primary-dark); color:#fff; transform:translateY(-1px); box-shadow:0 14px 24px rgba(23,107,135,.22); }.auth-secondary-action { border:1px solid #c9d9e0; background:#fff; color:var(--auth-primary); }.auth-secondary-action:hover { border-color:#8eb9c8; background:#f5fafb; color:var(--auth-primary-dark); }.auth-danger-action { border:1px solid #a84d57; background:#a84d57; color:#fff; }.auth-danger-action:hover { background:#923f49; color:#fff; transform:translateY(-1px); }
.auth-divider { display:flex; align-items:center; gap:13px; margin:29px 0; color:#84919e; font-size:12px; font-weight:700; text-transform:uppercase; }.auth-divider::before,.auth-divider::after { content:""; height:1px; flex:1; background:#e1e8ec; }.auth-switch { margin:28px 0 0; color:var(--auth-muted); font-size:14px; text-align:center; }.auth-social ul { display:grid; gap:10px; margin:0; padding:0; list-style:none; }.auth-social a { display:flex; min-height:51px; align-items:center; justify-content:center; gap:8px; border:1px solid #c9d9e0; border-radius:12px; color:var(--auth-primary); font-size:14px; font-weight:800; text-decoration:none; }.auth-social a:hover { border-color:#8eb9c8; background:#f5fafb; }.auth-note { display:flex; align-items:flex-start; gap:9px; margin:22px 0 0; padding:13px 14px; border-radius:11px; background:#f1f7f8; color:#5a6e7c; font-size:13px; line-height:1.5; }.auth-note i { margin-top:1px; color:var(--auth-primary); }
.auth-state { text-align:center; }.auth-state-icon { display:grid; width:52px; height:52px; place-items:center; margin:0 auto 19px; border-radius:16px; background:#e7f5f1; color:#217c68; font-size:23px; }.auth-state-icon.warning { background:#fff4df; color:#9c6b16; }.auth-state-icon.danger { background:#faeaeb; color:#a44d57; }.auth-state h1 { margin:0; color:var(--auth-ink); font-size:30px; font-weight:800; letter-spacing:-.055em; }.auth-state p { margin:11px auto 0; color:var(--auth-muted); font-size:14px; line-height:1.6; }.auth-state .auth-submit,.auth-state .auth-secondary-action { margin-top:25px; }.auth-state .auth-detail-link { display:inline-block; margin-top:20px; }
.auth-security-note { display:flex; align-items:center; gap:7px; width:min(100%,620px); margin:22px 0 0; color:#788697; font-size:12px; justify-content:center; }.auth-security-note i { color:var(--auth-accent); }
.auth-email-list { margin:0; padding:0; list-style:none; }.auth-email-list li { display:flex; align-items:center; gap:10px; padding:13px 0; border-top:1px solid #e8eef1; }.auth-email-list li:first-child { border-top:0; }.auth-email-list input { width:16px; height:16px; accent-color:var(--auth-primary); }.auth-email-list label { display:flex; flex:1; flex-wrap:wrap; align-items:center; gap:6px; color:var(--auth-ink); font-size:13px; font-weight:700; }.auth-email-badge { border-radius:999px; padding:3px 7px; font-size:10px; font-weight:800; }.auth-email-badge.verified { background:#e5f6ef; color:#237b65; }.auth-email-badge.unverified { background:#fce9eb; color:#a14b55; }.auth-email-badge.primary { background:#e7f2f5; color:#176b87; }.auth-button-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:18px; }.auth-button-row .auth-secondary-action { min-height:42px; font-size:12px; }.auth-button-row .auth-danger-action { grid-column:1/-1; min-height:42px; font-size:12px; }.auth-subsection { margin-top:31px; padding-top:25px; border-top:1px solid #e4ebee; }.auth-subsection h2 { margin:0 0 5px; color:var(--auth-ink); font-size:19px; font-weight:800; letter-spacing:-.04em; }.auth-subsection>p { margin:0 0 17px; color:var(--auth-muted); font-size:13px; line-height:1.55; }
.auth-card .toast-container { position:fixed!important; top:18px!important; right:18px!important; z-index:1100; }.auth-card .toast { border:1px solid var(--auth-border); border-radius:12px; box-shadow:0 16px 35px rgba(23,44,66,.14); }
@media (max-width:980px) { .auth-shell { grid-template-columns:minmax(340px,.9fr) minmax(410px,1.1fr); }.auth-story { padding:38px; }.auth-story-copy h1 { font-size:47px; }.auth-story-preview { display:none; } }
@media (max-width:720px) { .auth-shell { display:block; }.auth-story { display:none; }.auth-main { min-height:100vh; padding:30px 18px; }.auth-mobile-brand { display:inline-flex; align-self:flex-start; margin-left:calc((100% - min(100%, 620px))/2); }.auth-card { padding:34px 26px; border-radius:18px; }.auth-card-header h1,.auth-state h1 { font-size:30px; }.auth-security-note { margin-top:17px; } }
@media (max-width:420px) { .auth-main { padding:24px 14px; }.auth-mobile-brand { margin-left:0; }.auth-card { padding:27px 20px; }.auth-button-row { grid-template-columns:1fr; }.auth-button-row .auth-danger-action { grid-column:auto; } }
@media (prefers-reduced-motion:reduce) { .auth-submit,.auth-secondary-action,.auth-danger-action { transition:none; } }
