:root { font-family: "Segoe UI", Arial, sans-serif; color: #172033; background: #071b33; }
* { box-sizing: border-box; }
[hidden] { display:none !important; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at top, #174779, #071b33 58%); }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-card { width: min(460px, 100%); background: #fff; border-radius: 18px; padding: 42px; text-align: center; box-shadow: 0 24px 70px rgba(0,0,0,.35); border-top: 5px solid #eeb902; }
.emblem { margin: 0 auto 18px; width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; background: #d9251c; color: #ffea00; font-size: 42px; border: 3px solid #eeb902; }
.emblem img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
.emblem.has-custom-image { background:transparent; border-color:transparent; box-shadow:none; }
.emblem.has-custom-image img { border-radius:0; }
.eyebrow { color: #134074; letter-spacing: .08em; font-weight: 700; font-size: 12px; }
h1 { font-size: clamp(24px, 5vw, 34px); color: #0b2545; margin: 10px 0 16px; }
.intro, .support { color: #526077; line-height: 1.65; }
.status { min-height: 44px; margin: 22px 0 14px; padding: 11px; border-radius: 8px; background: #f3f6fa; color: #334155; }
.status.error { background: #fff1f2; color: #9f1239; }
.local-login-section form { display:grid; gap:8px; text-align:left; }.local-login-section label { color:#334155; font-size:12px; font-weight:700; }.local-login-section input { width:100%; height:42px; border:1px solid #cbd5e1; border-radius:7px; padding:0 12px; font:inherit; }.local-login-section input:focus { outline:3px solid rgba(19,64,116,.12); border-color:#134074; }.local-login-section button { height:43px; margin-top:5px; border:0; border-radius:7px; background:#0b2545; color:#fff; font-weight:700; cursor:pointer; }.local-login-section button:disabled { opacity:.65; cursor:wait; }.oauth-divider { display:flex; align-items:center; gap:10px; margin:17px 0 12px; color:#7b8798; font-size:11px; }.oauth-divider::before,.oauth-divider::after { content:""; flex:1; height:1px; background:#e2e8f0; }
.login-options { display:flex; align-items:center; justify-content:center; gap:12px; min-height:42px; }
.provider { display:flex; justify-content:center; align-items:center; width:38px; height:38px; overflow:hidden; flex:none; }
.provider > div,.provider iframe { width:36px !important; max-width:36px !important; height:36px !important; max-height:36px !important; }
.google-button { width:36px; height:36px; padding:0; border:1px solid #cbd5e1; border-radius:50%; background:#fff; color:#24344d; display:flex; align-items:center; justify-content:center; }
.google-button svg { width:18px; height:18px; }
.google-button { cursor: pointer; transition: background .2s, box-shadow .2s; }
.google-button:hover { background:#f8fafc; box-shadow:0 2px 8px rgba(15,23,42,.08); }
.google-button.unconfigured { border-style:dashed; color:#526077; }
.oauth-setup-help { margin:10px 0 0; padding:10px 12px; border-radius:7px; background:#fff8e1; color:#7c5800; font-size:12px; line-height:1.5; }
.apple-button { height:36px; padding:0 12px; border:0; border-radius:18px; background:#000; color:#fff; font-weight:650; cursor:pointer; display:flex; align-items:center; gap:6px; }
.apple-button i { font-size:16px; }.apple-button.unconfigured { opacity:.7; }
.support { font-size: 13px; margin: 22px 0 0; }
button:focus-visible, a:focus-visible { outline: 3px solid #eeb902; outline-offset: 3px; }
@media (max-width: 520px) { .login-card { padding: 30px 22px; } }
