/* Login styles copied from eWeb 0.8.43; eCast-specific layout fixes below. */
:root {
  color-scheme: light;
  --nav: #071b55;
  --nav2: #102d88;
  --blue: #1268f3;
  --blue2: #00aeff;
  --ink: #06122f;
  --muted: #64748b;
  --panel: #ffffff;
  --line: #d8e2f2;
  --soft: #eef4ff;
  --dark: #07112c;
  --ok: #16b36b;
  --bad: #d92d4a;
  --warn: #f59e0b;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background: radial-gradient(circle at 55% 10%, #fff 0 18%, #e9f0fb 34%, #dbe5f2 100%); }
a { color: inherit; text-decoration: none; }
h1 { margin:4px 0 0; color:#0b2a79; font-size:38px; line-height:1; }
h2 { margin:0; font-size:20px; }
.head-actions { display:flex; align-items:center; gap:12px; }
.user-chip, .btn, button { border:0; border-radius:14px; padding:12px 18px; font-weight:900; background:#fff; color:#082266; box-shadow:0 6px 20px #17376c18; }
.btn.dark { background:#071b55; color:#fff; }
button.primary, .primary { background:linear-gradient(90deg,#1464e9,#0f7dff); color:white; cursor:pointer; }
button.small { padding:7px 10px; border-radius:10px; background:#eaf2ff; color:#0b2a79; cursor:pointer; white-space:nowrap; }
label { display:block; font-size:13px; color:#334155; font-weight:900; }
input, select { display:block; width:100%; margin-top:6px; border:1px solid #cdd8ea; border-radius:12px; padding:12px 13px; font-size:15px; background:#fff; color:var(--ink); outline:none; }
input:focus { border-color:var(--blue); box-shadow:0 0 0 4px #1268f322; }
input[readonly] { background:#edf2f8; color:#52627a; cursor:not-allowed; }
.login-screen { display:grid; place-items:center; background:linear-gradient(135deg,#071b55,#143ca2 45%,#edf3fb 45%); }
.login-shell { width:min(900px,94vw); display:grid; grid-template-columns:290px 1fr; gap:20px; align-items:stretch; }
.logo-card { border-radius:22px; background:#071b55; color:#fff; padding:20px; box-shadow:0 18px 40px #06122f66; }
.logo-card img { width:100%; background:#fff; border-radius:14px; padding:8px; }
.logo-card strong { display:block; font-size:32px; margin-top:14px; }
.logo-card small { color:#dbeafe; font-weight:800; }
.login-card { border-radius:22px; background:#fff; padding:30px; box-shadow:0 18px 50px #06122f44; }
.login-card h1 { color:#0b2a79; }
.login-card label { margin-bottom:14px; }
.lang-switch { display:inline-flex; align-items:center; gap:6px; padding:4px 6px; border-radius:999px; background:rgba(255,255,255,.72); font-size:12px; font-weight:900; }
.lang-switch a { color:#0f2f7a; text-decoration:none; padding:5px 8px; border-radius:999px; }
.lang-switch a.active, .lang-switch a:hover { background:#123fa7; color:white; }
.status-dot { width:10px; height:10px; border-radius:50%; background:#9aa8ba; box-shadow:0 0 0 4px #9aa8ba22; }.status-dot.online { background:#18a957; box-shadow:0 0 0 4px #18a95722; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline:3px solid #7cb5ff; outline-offset:2px; }
.lang-switch { display:inline-flex; align-items:center; gap:4px; padding:7px 9px; border:1px solid var(--line); border-radius:12px; background:#fff; font-size:11px; box-shadow:0 5px 18px #17376c12; }
.lang-switch b { color:#6b7b92; margin-right:2px; }
.lang-switch a { padding:4px 6px; border-radius:7px; font-weight:900; }
.lang-switch a.active { background:#e7efff; color:#0b4bb3; }
input, select, textarea { min-height:44px; }
input[type="checkbox"], input[type="radio"] { min-height:0; }
.password-field { position:relative; display:block; }
.password-field input { padding-right:90px; }
.password-toggle { position:absolute; right:6px; top:50%; transform:translateY(-50%); padding:7px 10px; box-shadow:none; background:#eaf2ff; font-size:12px; cursor:pointer; }
.password-toggle:hover { transform:translateY(-50%); }
.login-screen { position:relative; min-height:100vh; padding:24px; background:radial-gradient(circle at 18% 20%,#1b4dcc,#071b55 42%,#06143f 72%); }
.login-screen::after { content:""; position:fixed; inset:0; pointer-events:none; background:radial-gradient(circle at 82% 82%,rgba(49,213,255,.22),transparent 28%); }
.login-shell { position:relative; z-index:1; width:min(880px,96vw); grid-template-columns:310px minmax(340px,1fr); gap:0; border-radius:24px; overflow:hidden; box-shadow:0 25px 80px rgba(0,8,35,.5); }
.logo-card,.login-card { border-radius:0; box-shadow:none; }
.logo-card { display:flex; flex-direction:column; justify-content:center; min-height:480px; padding:30px; }
.logo-card p { margin:16px 0 0; color:#b8c9eb; line-height:1.55; }
.login-card { display:flex; flex-direction:column; justify-content:center; padding:38px; }
.login-card h1 { margin-bottom:9px; font-size:35px; }
.login-card > p { margin:0 0 22px; color:#65758e; line-height:1.5; }
.login-card .login-submit { width:100%; margin-top:5px; }
.login-server { display:flex; align-items:center; gap:10px; margin-top:26px; padding:12px; border:1px solid rgba(255,255,255,.14); border-radius:12px; background:rgba(0,0,0,.12); color:#fff; font-size:12px; font-weight:850; overflow-wrap:anywhere; }
.login-server > span:last-child { min-width:0; }
.login-server small { display:block; margin-top:2px; color:#9fb6e8; }
.login-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:15px; color:#75849a; font-size:11px; font-weight:700; }
.login-footer .lang-switch { margin:0; }
@media (max-width:680px) {
  .login-screen { padding:12px; }
  .login-shell { grid-template-columns:1fr; }
  .logo-card { min-height:auto; padding:24px; }
  .logo-card img { max-height:72px; }
  .logo-card p { display:none; }
  .login-server { margin-top:16px; }
  .login-card { padding:26px 20px; }
  .login-footer { align-items:flex-start; flex-direction:column; }
}
.login-facts{margin:22px 0 10px;padding:14px 0;border-top:1px solid rgba(130,160,215,.25);display:grid;gap:10px;width:100%;text-align:left}
.login-facts>div{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,1.6fr);gap:12px;align-items:baseline}
.login-facts dt{font-size:12px;opacity:.8}.login-facts dd{margin:0;font-size:13px;font-weight:600;overflow-wrap:anywhere}


/* 0.8.42: local animated geometry behind the sign-in surface. */
.login-scene{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.login-screen .login-shell{z-index:1}
.login-screen .logo-card{background:rgba(7,27,85,.94)}
.login-public-links{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}
.login-ban-link{display:inline-flex;align-items:center;gap:9px;color:#dceaff;font-size:12px;font-weight:650;text-decoration:none;border-bottom:1px solid rgba(218,234,255,.28);padding:5px 0;transition:color .2s,border-color .2s}
.login-ban-link:hover{color:#ffdfa0;border-color:#ffdfa0}
.login-ban-link:focus-visible,.login-motion:focus-visible{outline:2px solid #ffdfa0;outline-offset:5px}
.login-motion{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:5px;border:1px solid rgba(220,234,255,.22);border-radius:50%;color:#bed0ed;background:transparent;cursor:pointer}
.login-motion[hidden]{display:none}.login-motion:hover{background:rgba(255,255,255,.08);color:#fff}
.login-motion svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.login-motion .motion-play,.login-motion.is-paused .motion-pause{display:none}.login-motion.is-paused .motion-play{display:block}
@media(prefers-reduced-motion:reduce){.login-ban-link{transition:none}}

/* 0.8.43: compact geometry occupies only the free space below navigation. */
.sidebar{display:flex;flex-direction:column}
.sidebar>.brand-card,.sidebar>.clock-card,.sidebar>nav{flex:0 0 auto}
.sidebar-scene{position:relative;flex:1 0 0;min-height:0;margin-top:12px;overflow:hidden}
.sidebar-scene canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sidebar-motion{position:absolute;right:4px;bottom:4px;z-index:1;opacity:.65}
.sidebar-motion:hover,.sidebar-motion:focus-visible{opacity:1}

.login-screen {font-size:14px;line-height:1.5}
.login-shell{max-width:100%}.login-card,.logo-card{min-width:0}
.logo-card img{object-fit:contain}.login-card h1{line-height:1.12;margin:4px 0 22px}
.login-card .eyebrow{display:block}.login-footer{flex-wrap:wrap}.login-footer>span{flex:1;min-width:160px}
.login-public-links{justify-content:flex-end}.flash{padding:12px;border-radius:10px;margin:0 0 15px}.flash.error{background:#fff0ef;color:#9d241c}
.login-server .status-dot{flex:0 0 10px}button,input{font-family:inherit}input:focus{border-color:var(--blue);box-shadow:0 0 0 4px #1268f322}
@media(max-width:760px){.login-shell{grid-template-columns:1fr}.logo-card{min-height:auto}.logo-card img{max-height:72px}}

.eyebrow{color:#174cb6;font-weight:900;letter-spacing:3px;font-size:13px}
