/* Astrara account entry and recovery. Scoped to the shared auth layout. */
body.astrara-auth { --auth-muted:#bfb1cc; --auth-line:#dfc5f526; --auth-lilac:#dfc5f5; background:radial-gradient(ellipse at 95% 10%,#34223f38,transparent 55%),#0e0b15; min-height:100svh; display:flex; flex-direction:column; }
.astrara-auth [hidden] { display:none!important; }
.astrara-auth a { text-decoration:none; }
.astrara-auth button,.astrara-auth input { font:inherit; }
.astrara-auth button { cursor:pointer; }
.astrara-auth svg { flex-shrink:0; }
.auth-header,.auth-main,.auth-footer { width:min(1360px,calc(100% - 80px)); margin-inline:auto; }
.auth-header { min-height:96px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.auth-brand { font:500 2.1rem/1 "Playfair Display",Georgia,serif; letter-spacing:-.06em; display:inline-flex; align-items:flex-start; gap:7px; }
.auth-brand > span { font:300 1.2rem/1.2 Georgia,serif; color:var(--auth-lilac); letter-spacing:0; }
.auth-header-actions { display:flex; gap:30px; align-items:center; }
.auth-home { display:flex; align-items:center; gap:10px; min-height:44px; color:var(--auth-muted); font-size:.83rem; }
.auth-home:hover { color:#fff; }
.auth-home > span:first-child { font-size:1.2rem; }
.auth-locale summary { display:flex; align-items:center; gap:7px; font-size:.8rem; min-height:44px; }
.auth-locale div { z-index:5; box-shadow:0 12px 40px #0006; }
.auth-locale a { min-height:42px; display:flex; align-items:center; font-size:.85rem; }
.auth-locale a:hover,.auth-locale a[aria-current] { background:#d0acec15; }
.auth-main { display:grid; grid-template-columns:1.08fr 1fr; gap:clamp(40px,6vw,96px); flex:1; min-height:690px; }
.auth-scene { position:relative; isolation:isolate; overflow:hidden; border-radius:28px; border:1px solid var(--auth-line); background:#241b30; min-height:100%; }
.auth-scene-image { position:absolute; width:100%; height:100%; inset:0; object-fit:cover; object-position:76% 50%; z-index:-2; }
.auth-scene::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#140d231f 0%,#140d2300 35%,#140d2340 58%,#140d23e8 100%); }
.auth-scene-label { position:absolute; top:28px; left:30px; margin:0; display:flex; align-items:center; gap:10px; font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; padding:9px 14px; border:1px solid #eee0ff35; border-radius:99px; background:#251a364f; backdrop-filter:blur(16px); }
.auth-scene-label > span { font-size:1.15rem; line-height:1; }
.auth-scene-copy { position:absolute; bottom:0; left:0; right:0; padding:40px; }
.auth-scene-rule { display:block; width:34px; height:1px; background:#ddc4ef; margin-bottom:23px; }
.astrara-auth .auth-scene-copy h2 { font-size:clamp(2.6rem,3.5vw,3.7rem); line-height:1.12; letter-spacing:-.04em; max-width:11ch; margin:0 0 17px; text-wrap:balance; }
.auth-scene-copy p { font-size:.92rem; color:#e0d3e8; line-height:1.7; max-width:32ch; margin:0; }
.auth-form-panel { padding:38px 28px 38px 0; display:flex; align-items:center; }
.auth-form-inner { width:100%; max-width:440px; margin-inline:auto; }
.auth-emblem { width:46px; height:46px; display:grid; place-items:center; font-size:2.1rem; color:#e4c9f9; line-height:1; background:radial-gradient(circle,#7e4c9f24,transparent 75%); border:1px solid #d9b7f029; border-radius:50%; margin-bottom:24px; }
.auth-eyebrow { color:#ccb4de; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; margin:0 0 12px; }
.astrara-auth .auth-welcome h1 { font-size:clamp(2.45rem,3.4vw,3.2rem); font-weight:500; line-height:1.14; letter-spacing:-.035em; margin:0 0 14px; text-wrap:balance; }
.auth-intro { color:var(--auth-muted); font-size:.96rem; line-height:1.65; margin:0 0 29px; max-width:36ch; }
.auth-providers { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.auth-provider { display:flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:12px; color:#eee3f7; background:#b386cf07; border:1px solid #c1a3d63b; border-radius:13px; font-size:.8rem!important; line-height:1.35; transition:background .2s,border-color .2s; }
.auth-provider:hover { background:#b386cf14; border-color:#c1a3d67d; }
.auth-divider { display:flex; align-items:center; gap:15px; margin:25px 0; color:#a99ab8; font-size:.73rem; text-align:center; }
.auth-divider::before,.auth-divider::after { content:""; flex:1; height:1px; background:var(--auth-line); }
.auth-field { margin-bottom:19px; }
.auth-field label { display:block; font-size:.83rem; color:#e1d4ec; }
.auth-field-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:6px 15px; }
.auth-field-heading a { font-size:.76rem; color:#d5b8eb; min-height:22px; }
.auth-field-heading a:hover,.auth-register a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.auth-field input { display:block; width:100%; min-height:53px; padding:13px 16px; margin-top:8px; border-radius:13px; border:1px solid #c5a6db3d; background:#1c1626; color:#f8efff; transition:border-color .2s,box-shadow .2s; font-size:1rem; }
.auth-field input:focus { border-color:#bb93da; box-shadow:0 0 0 3px #c59be516; }
.auth-field input[aria-invalid] { border-color:#dd94ab; }
.auth-field input:-webkit-autofill { -webkit-text-fill-color:#f8efff; -webkit-box-shadow:0 0 0 60px #241b30 inset; caret-color:#fff; }
.auth-password-wrap { position:relative; }
.auth-password-wrap input { padding-right:55px; }
.auth-password-toggle { position:absolute; right:4px; top:4px; width:45px; height:45px; display:grid; place-items:center; padding:0; border:0; border-radius:10px; background:transparent; color:#beabd0; }
.auth-password-toggle:hover { color:white; background:#c6a3e510; }
.auth-eye-slash { display:none; }
.auth-password-toggle[aria-pressed="true"] .auth-eye-slash { display:block; }
.auth-remember { display:inline-flex; gap:10px; align-items:center; min-height:32px; color:var(--auth-muted); font-size:.8rem; cursor:pointer; margin:-2px 0 17px; }
.auth-remember input { appearance:none; width:17px; height:17px; margin:0; border:1px solid #bda4d260; border-radius:5px; background:#1c1626; display:grid; place-items:center; cursor:pointer; }
.auth-remember input:checked { background:var(--auth-lilac); border-color:var(--auth-lilac); }
.auth-remember input:checked::after { content:""; width:8px; height:4px; border-left:2px solid #2a193a; border-bottom:2px solid #2a193a; transform:translateY(-1px) rotate(-45deg); }
.auth-submit { width:100%; display:flex; align-items:center; justify-content:center; gap:18px; min-height:54px; padding:14px 24px; border:1px solid #ead7f8; border-radius:99px; background:linear-gradient(110deg,#e4ccf6,#c9a7e5); color:#291637; font-weight:500!important; font-size:.95rem!important; line-height:1.4; box-shadow:0 5px 26px #ae6dd20e; transition:filter .2s,box-shadow .2s; }
.auth-submit:hover { filter:brightness(1.06); box-shadow:0 6px 32px #ae6dd224; }
.auth-submit[disabled],.auth-provider[disabled] { opacity:.65; cursor:wait; }
.auth-account-note { display:flex; align-items:center; justify-content:center; gap:8px; color:#ab9ab9; font-size:.74rem; text-align:center; margin:18px 0 0; }
.auth-register { margin:28px 0 0; padding-top:23px; border-top:1px solid var(--auth-line); text-align:center; font-size:.85rem; color:var(--auth-muted); }
.auth-register a { display:inline-flex; gap:9px; align-items:center; color:#e3c8f8; font-weight:500; margin-left:5px; min-height:32px; }
.auth-error { color:#f2b4c7; font-size:.81rem; line-height:1.55; margin:8px 0 0; }
.auth-notice { border:1px solid #b29dc540; background:#b29dc510; border-radius:12px; padding:13px 16px; font-size:.84rem; color:#e2d4ed; }
.auth-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:72px; padding-block:20px; font-size:.72rem; color:#a99ab6; }
.auth-footer p { margin:0; }
.auth-footer nav { display:flex; gap:24px; }
.auth-footer a { display:flex; align-items:center; min-height:32px; }
.auth-footer a:hover { color:#e9d9f5; }
@media(min-width:1700px) { .auth-main { max-height:850px; } }
@media(max-width:1100px) { .auth-header,.auth-main,.auth-footer { width:calc(100% - 56px); } .auth-main { gap:38px; grid-template-columns:1fr 1fr; } .auth-form-panel { padding-right:0; } .auth-scene-copy { padding:30px; } .auth-scene-label { left:22px; top:22px; } .auth-providers { gap:9px; } .auth-provider { gap:8px; padding:11px 9px; } }
@media(max-width:800px) { .auth-main { display:block; min-height:0; width:min(440px,calc(100% - 48px)); } .auth-scene { display:none; } .auth-form-panel { padding:30px 0 40px; } .auth-header { min-height:82px; } .auth-header,.auth-footer { width:calc(100% - 48px); } .auth-welcome h1 { font-size:2.7rem; } .auth-intro { max-width:37ch; } .auth-footer { margin-top:auto; } .auth-footer-note { display:none; } .auth-emblem { margin-bottom:22px; } }
@media(max-width:430px) { .auth-header-actions { gap:14px; } .auth-home { font-size:.75rem; gap:7px; } .auth-brand { font-size:1.85rem; } .auth-main { width:calc(100% - 40px); } .auth-header,.auth-footer { width:calc(100% - 40px); } .auth-providers { grid-template-columns:1fr; gap:10px; } .auth-provider { font-size:.87rem!important; } .auth-footer { gap:12px; font-size:.68rem; } .auth-footer nav { gap:15px; } }
@media(prefers-reduced-motion:reduce) { .astrara-auth *, .astrara-auth *::before, .astrara-auth *::after { transition:none!important; scroll-behavior:auto!important; } }
@media(forced-colors:active) { .auth-remember input { appearance:auto; } .auth-remember input:checked::after { display:none; } }
@media(max-width:430px) {
    .auth-header { min-height:76px; }
    .auth-form-panel { padding-top:20px; }
    .auth-emblem { width:38px; height:38px; font-size:1.8rem; margin-bottom:18px; }
    .astrara-auth .auth-welcome h1 { font-size:2.4rem; }
    .auth-intro { margin-bottom:24px; }
}

@media(max-width:360px) { .auth-home > span:last-child { display:none; } .auth-home { justify-content:center; min-width:32px; } }

.astrara-auth .auth-brand { gap:10px; }
.astrara-auth .auth-emblem { width:54px; height:54px; border:0; background:none; }
.astrara-auth .auth-emblem .astrara-brand-mark { width:100%; height:100%; }
.auth-back { display:flex; align-items:center; justify-content:center; gap:10px; width:fit-content; min-height:44px; margin:24px auto 0; padding:6px 10px; border:0; background:none; font-size:.85rem; color:#d5b8eb; text-align:center; }
.auth-back:hover,.auth-recovery-link:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.auth-hint { color:var(--auth-muted); font-size:.75rem; margin:8px 0 0; }
.auth-recovery-link { display:block; width:fit-content; margin:8px auto 0; padding:6px; min-height:36px; font-size:.76rem; color:var(--auth-muted); text-align:center; }
.auth-local-preview { font-size:.8rem; text-align:center; color:var(--auth-muted); }
@media(max-width:430px) { .astrara-auth .auth-emblem { width:46px; height:46px; } .astrara-auth .auth-brand { font-size:1.65rem; gap:8px; } }
