/* Authentication only: shares the dashboard's navy and cyan palette. */
.auth-page-body,
:root[data-theme="light"] .auth-page-body {
  background: #0b1220;
}
.auth-sine-background { position: fixed; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(ellipse at 55% 55%, #12334f, #0b1220 75%); }
.auth-sine-background canvas { display: block; width: 100%; height: 100%; }
:root[data-theme="light"] .auth-sine-background { background: radial-gradient(ellipse at 55% 55%, #dcecff, #f2f5fa 75%); }
:root[data-theme="light"] .auth-slot .auth-scene-heading { color: #172033; }
:root[data-theme="light"] .auth-slot .auth-scene-heading > p { color: #075985; }
:root[data-theme="light"] .auth-scene-heading .auth-community-copy { color: #334155; }
:root[data-theme="light"] .auth-page-body .auth-page-footer { color: #334155; }
.auth-scene-heading .auth-community-copy { max-width: 650px; margin: 16px auto 0; font-size: .95rem; line-height: 1.8; font-weight: 400; letter-spacing: 0; color: #dbeafe; }
.auth-slot .auth-scene-heading { padding-top: 35px; color: #f4f7fb; }
.auth-slot .auth-scene-heading > p { color: #bae6fd; }
.auth-slot .auth-card { background: rgba(12, 25, 41, .96); border-color: #526a80; box-shadow: 0 28px 80px #0007; }
:root[data-theme="light"] .auth-slot .auth-card { background: rgba(255, 255, 255, .97); color: #172033; }
.auth-page-body .auth-page-footer { color: #e2e8f0; }
.auth-page-body { background-color: #0b1220; color: #e7edf5; color-scheme: dark; }
.auth-screen-layout { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.auth-slot { flex: 1; display: flex; }
.auth-screen-layout { position:relative; isolation:isolate; overflow:hidden; }
.auth-slot { flex-direction:column; }
.auth-wave-background { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; background:#0b1220; }
.auth-wave-background svg { display:block; width:100%; height:100%; overflow:hidden; }
.auth-wave-background path { transform-box:view-box; animation:auth-wave-drift var(--wave-duration) linear infinite; }
.auth-screen-layout > :not(.auth-slot), .auth-scene-heading, .auth-wrapper { position:relative; z-index:1; }
.auth-scene-heading { padding:8px 24px 16px; text-align:center; color:#f4f7fb; }
.auth-scene-heading p { font-size:11px; letter-spacing:.16em; font-weight:650; color:#bae6fd; margin-bottom:8px; }
.auth-scene-heading h2 { font-size:clamp(20px,3vw,30px); line-height:1.3; letter-spacing:-.02em; }
.auth-slot .auth-wrapper { flex:1; padding-top:16px; padding-bottom:32px; }
:root[data-theme="light"] .auth-wave-background { background:#f1f5f9; }
:root[data-theme="light"] .auth-scene-heading { color:#172033; }
:root[data-theme="light"] .auth-scene-heading p { color:#075985; }
@keyframes auth-wave-drift { from { transform:translateX(0); } to { transform:translateX(var(--wave-period)); } }
@media(prefers-reduced-motion:reduce) { .auth-wave-background path { animation:none; transform:translateX(0); } }
.auth-wrapper { width: 100%; display: flex; align-items: center; justify-content: center; padding: 48px 24px; }
.auth-card { width: 100%; max-width: 468px; min-width: 0; padding: 36px; border: 1px solid #29374b; border-radius: 22px; background: #121e2e; box-shadow: 0 20px 70px #0003; }
.auth-header { display: flex; align-items: center; gap: 13px; padding-bottom: 26px; }
.auth-logo { display: grid; place-items: center; width: 54px; height: 54px; flex-shrink: 0; color: #68d3f6; border: 1px solid #315265; background: #182d3d; border-radius: 15px; }
.auth-brand { font-weight: 700; font-size: 17px; letter-spacing: -.3px; }
.auth-subtitle { margin-top: 4px; font-size: 12px; line-height: 1.5; color: #acbacd; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; background: #0c1624; border: 1px solid #2b3a4f; padding: 4px; border-radius: 11px; margin-bottom: 26px; }
.auth-tab { display: grid; place-items: center; min-height: 42px; padding: 8px; border-radius: 7px; color: #aabbd0; font-size: 13px; font-weight: 600; transition: color .15s, background .15s; }
.auth-tab:hover { color: #fff; background: #1a2a3d; }
.auth-tab.active { background: #24354a; color: #f4f8fc; box-shadow: 0 2px 4px #0002; }
.auth-intro { margin-bottom: 26px; }
.auth-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; color: #6bc9ea; margin-bottom: 10px; }
.auth-intro h1 { font-size: clamp(26px, 5vw, 30px); line-height: 1.2; letter-spacing: -.9px; margin: 0 0 10px; color: #f4f7fb; }
.auth-intro > p:last-child { font-size: 14px; line-height: 1.6; color: #acbacd; }
.auth-form { display: flex; flex-direction: column; gap: 19px; }
.auth-card .form-group { margin: 0; min-width: 0; }
.auth-card .form-label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; color: #dce5f1; }
.input-icon-wrap { position: relative; display: flex; align-items: center; }
.input-icon { position: absolute; left: 14px; display: flex; color: #8196b1; pointer-events: none; transition: color .15s; }
.input-icon-wrap:focus-within .input-icon { color: #70d8fa; }
.auth-card .form-input { width: 100%; min-width: 0; min-height: 50px; padding: 12px 14px 12px 44px; border: 1px solid #3a4b62; border-radius: 10px; background: #0e1928; color: #f2f6fc; font: inherit; font-size: 16px; line-height: 1.4; transition: border-color .15s, box-shadow .15s; }
.auth-card .form-input::placeholder { color: #91a1b7; font-size: 14px; opacity: 1; }
.auth-card .form-input:hover { border-color: #637b96; }
.auth-card .form-input:focus { outline: none; border-color: #69d3f5; box-shadow: 0 0 0 3px #38bdf826; }
.auth-card .form-input[type=password], .auth-card .form-input[data-password-visible] { padding-right: 52px; }
.auth-card .form-input[aria-invalid=true], .auth-card .form-input:user-invalid { border-color: #fb939f; }
.password-toggle { position: absolute; right: 3px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 8px; color: #a6bbd2; }
.password-toggle:hover, .password-toggle[aria-pressed=true] { color: #79d9f8; background: #20374a; }
.auth-card [hidden] { display: none !important; }
.form-help-text { margin-top: 7px; color: #9eafc5; font-size: 12px; line-height: 1.55; }
.auth-card .btn-auth-submit { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 50px; margin-top: 5px; padding: 12px 16px; border: 1px solid transparent; border-radius: 10px; background: #63cef2; color: #082332; font-size: 15px; font-weight: 700; box-shadow: 0 3px 8px #0002; transition: background .15s, transform .15s; }
.auth-card .btn-auth-submit:hover { background: #92e2fb; transform: translateY(-1px); }
.auth-card .btn-auth-submit:active { transform: translateY(1px); background: #48badd; }
.auth-card .btn-auth-submit:disabled { cursor: wait; opacity: .8; transform: none; }
.submit-arrow { font-size: 20px; line-height: 1; }
.submit-spinner { display: none; width: 16px; height: 16px; border: 2px solid #08233255; border-top-color: #082332; border-radius: 50%; animation: auth-spin .7s linear infinite; }
.auth-form[aria-busy=true] .submit-spinner { display: block; }
.auth-form[aria-busy=true] .submit-arrow { display: none; }
.auth-footer-helper { margin-top: 23px; text-align: center; color: #aebdd0; font-size: 13px; line-height: 1.9; }
.auth-footer-helper a { display: inline-block; padding: 7px 2px; color: #79d9f8; font-weight: 600; text-underline-offset: 4px; }
.auth-footer-helper a:hover { text-decoration: underline; }
.auth-card :is(a, button):focus-visible { outline: 2px solid #7bddfa; outline-offset: 4px; }
.auth-card-note { margin-top: 25px; padding-top: 20px; border-top: 1px solid #2b394d; color: #9aacc3; font-size: 11px; line-height: 1.7; text-align: center; }
.auth-messages { margin: 0 0 22px; outline-color: #7bddfa; }
.auth-message { display: flex; gap: 10px; padding: 13px; border: 1px solid #3f6680; border-radius: 10px; background: #172c3d; color: #c0e7f6; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.auth-message + .auth-message { margin-top: 8px; }
.auth-message-danger { background: #35212d; border-color: #805062; color: #ffbec6; }
.auth-message-warning { background: #342d20; border-color: #7b6940; color: #f5dca6; }
.auth-message-success { background: #19322e; border-color: #3d786c; color: #a8ebd6; }
.auth-message-marker { display: grid; place-items: center; width: 20px; height: 20px; flex-shrink: 0; border: 1px solid currentColor; border-radius: 50%; font-weight: 700; margin-top: 1px; }
.auth-page-footer { padding: 0 20px 24px; text-align: center; color: #8e9fb6; font-size: 11px; line-height: 1.8; }
@keyframes auth-spin { to { transform: rotate(360deg); } }
@media (max-width: 520px) { .auth-wrapper { padding: 24px 16px; } .auth-card { padding: 26px 22px; border-radius: 18px; } .auth-header { gap: 11px; } .auth-brand { font-size: 16px; } }
@media (max-width: 360px) { .auth-wrapper { padding: 16px 10px; } .auth-card { padding: 24px 16px; } .auth-logo { width: 46px; height: 46px; } }
@media (prefers-reduced-motion: reduce) { .auth-card *, .auth-card *::before, .auth-card *::after { animation: none !important; transition: none !important; } }
