/* Standalone access screen. Keep these rules scoped to authentication. */
.auth-page [hidden] { display:none !important; }
.auth-active { color-scheme:dark; background:#0e131b; }
.auth-active body { margin:0; background:#0e131b; color:#edf2f8; }
.auth-page { min-height:100dvh; display:grid; grid-template-columns:1fr 1fr; }
.auth-page svg { width:20px; height:20px; flex-shrink:0; }
.auth-intro { padding:48px clamp(32px,5vw,88px); display:flex; flex-direction:column; background:#171f29; border-right:1px solid #293442; }
.auth-brand,.auth-mobile-brand { display:flex; align-items:center; gap:12px; }
.auth-brand-icon,.auth-loading-mark { display:grid; place-items:center; width:44px; height:44px; border:1px solid #354255; border-radius:10px; color:#a9c5ee; }
.auth-brand strong { display:block; font-size:22px; }
.auth-brand span { display:block; color:#a9b6c7; font-size:12px; }
.auth-story { margin:auto 0; padding:60px 0; max-width:520px; }
.auth-chip { font-size:13px; color:#a9c5ee; margin-bottom:24px; }
.auth-story h1 { font-size:clamp(32px,3.4vw,52px); line-height:1.15; letter-spacing:-.035em; margin:0 0 24px; }
.auth-story em { font-style:normal; color:#a9c5ee; }
.auth-story p { color:#a9b6c7; font-size:16px; line-height:1.8; }
.auth-mini-plan { margin-top:38px; padding:22px; border:1px solid #344150; border-radius:10px; }
.auth-mini-head,.auth-mini-legend { display:flex; justify-content:space-between; gap:12px; font-size:10px; color:#a9b6c7; }
.auth-mini-map { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:20px 0; }
.auth-mini-map i { height:44px; background:#3e454b; border:1px solid #5d6570; border-radius:4px; }
.auth-mini-map i.available { background:#314a40; border-color:#638b77; }
.auth-mini-map i.selected { background:#564932; border-color:#9a8052; }
.auth-intro-foot,.auth-footer { color:#8c9aac; font-size:12px; }
.auth-panel { padding:32px clamp(24px,4vw,64px); display:flex; flex-direction:column; min-width:0; }
.auth-panel-top { display:flex; justify-content:flex-end; }
.auth-mobile-brand { display:none; }
.auth-secure { display:flex; align-items:center; gap:8px; color:#a9b6c7; font-size:12px; }
.auth-panel-body { flex:1; display:grid; place-items:center; padding:48px 0; }
.auth-form-shell { width:100%; max-width:400px; }
.auth-header h2 { font-size:28px; letter-spacing:-.025em; margin:0 0 10px; }
.auth-header p { color:#a9b6c7; margin:0 0 26px; }
.auth-form { display:grid; gap:18px; }
.auth-field { display:grid; gap:8px; font-size:13px; font-weight:500; }
.auth-field input { min-width:0; width:100%; height:48px; border:1px solid #354255; border-radius:8px; background:#171f29; color:#edf2f8; padding:0 14px; }
.auth-password { position:relative; }
.auth-password input { padding-right:50px; }
.auth-eye { position:absolute; right:5px; bottom:4px; display:grid; place-items:center; width:40px; height:40px; border:0; background:transparent; color:#a9b6c7; }
.auth-primary,.auth-demo { width:100%; min-height:48px; display:flex; align-items:center; justify-content:center; gap:10px; border-radius:8px; padding:12px 16px; font-weight:600; }
.auth-primary { background:#3e76ce; color:white; border:1px solid #3e76ce; }
.auth-demo { background:#171f29; color:#edf2f8; border:1px solid #354255; }
.auth-forgot { text-align:right; margin-top:-8px; }
.auth-forgot button,.auth-alt button,.auth-retry { border:0; padding:6px 0; background:transparent; color:#a9c5ee; }
.auth-alt { text-align:center; color:#a9b6c7; font-size:13px; margin-top:18px; }
.auth-divider { display:flex; align-items:center; gap:14px; color:#8c9aac; font-size:12px; margin:28px 0 20px; }
.auth-divider::before,.auth-divider::after { content:''; height:1px; background:#293442; flex:1; }
.auth-demo-note { color:#8c9aac; font-size:12px; text-align:center; margin:12px 0; }
.auth-alert { display:flex; align-items:flex-start; gap:10px; padding:14px; border:1px solid #354255; background:#171f29; border-radius:8px; color:#b9c8da; font-size:13px; margin-bottom:22px; }
.auth-alert.error { border-color:#84524f; color:#edb4ae; }
.auth-alert.success { border-color:#486b59; color:#a7d7b9; }
.auth-footer { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.auth-loading { min-height:100dvh; display:flex; align-items:center; justify-content:center; gap:16px; color:#a9b6c7; }
.auth-page :focus-visible { outline:3px solid #86b0f0; outline-offset:3px; }
@media(max-width:900px) { .auth-page { grid-template-columns:1fr; } .auth-intro { display:none; } .auth-panel { min-height:100dvh; padding:24px; } .auth-panel-top { justify-content:space-between; } .auth-mobile-brand { display:flex; } }
@media(max-width:390px) { .auth-panel { padding:20px 16px; } .auth-footer { font-size:11px; } .auth-secure { font-size:11px; } }
.auth-google-option{width:100%;margin:0 0 20px;min-width:0}.auth-google-button{display:flex;flex-direction:column;align-items:center;min-height:44px;max-width:100%}.auth-google-option .auth-divider{margin:18px 0 0}.auth-google-message{font-size:12px;line-height:1.6;color:#a04432;margin:8px 0}.auth-google-button[aria-busy=true]{opacity:.6;pointer-events:none}
