:root { color-scheme: dark; --background:#151d2f; --surface:#1a2236; --surface-secondary:#202a40; --text:#e7edf8; --heading:#fff; --muted:#95a2bb; --line:#34415b; --accent:#c7d6f5; --accent-strong:#8fa6d6; --danger:#ff8f89; --shadow:0 14px 32px rgba(0,0,0,.28); font-family:"Plus Jakarta Sans",Inter,system-ui,sans-serif; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:var(--background); color:var(--text); line-height:1.55; }
a { color:inherit; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { color:var(--heading); line-height:1.15; }
button,.button { font:inherit; }
.login-shell { min-height:100vh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(480px,100%); padding:40px; border:1px solid var(--line); border-radius:24px; background:var(--surface); box-shadow:var(--shadow); }
.logo-surface { width:fit-content; margin-bottom:28px; padding:12px 14px; border:1px solid rgba(25,40,71,.08); background:#fff; box-shadow:0 10px 22px rgba(15,23,42,.12); }
.logo-surface.compact { display:grid; place-items:center; width:62px; margin:0; padding:7px 8px; }
.company-logo { display:block; width:auto; height:34px; }
.compact .company-logo { height:20px; }
.eyebrow { margin-bottom:8px; color:var(--muted); font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.lead { margin-bottom:28px; color:var(--muted); }
.helper,.muted { color:var(--muted); font-size:14px; }
.helper { margin:18px 0 0; }
.alert { padding:12px; border:1px solid var(--danger); color:var(--danger); }
.button { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:10px 18px; border:1px solid var(--accent); border-radius:0; text-decoration:none; font-weight:700; cursor:pointer; }
.button.primary { background:var(--accent); color:#192847; }
.button:disabled { opacity:.5; cursor:not-allowed; }
.button:focus-visible,a:focus-visible { outline:3px solid var(--accent-strong); outline-offset:3px; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:260px 1fr; }
.sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:24px 18px; border-right:1px solid var(--line); background:var(--surface); }
.brand { display:flex; align-items:center; gap:12px; margin:0 8px 34px; color:var(--heading); text-decoration:none; font-size:20px; font-weight:800; }
.nav-label { margin:24px 12px 8px; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.nav-item { display:block; padding:10px 12px; border-left:3px solid transparent; color:var(--muted); text-decoration:none; font-weight:600; }
.nav-item:hover,.nav-item.active { border-left-color:var(--accent); background:var(--surface-secondary); color:var(--heading); }
.sidebar-footer { margin-top:auto; padding:18px 8px 0; border-top:1px solid var(--line); }
.identity { display:flex; align-items:center; gap:10px; min-width:0; }
.identity img { width:36px; height:36px; object-fit:cover; border-radius:50%; }
.identity span { min-width:0; }
.identity strong,.identity small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.identity small { color:var(--muted); }
.text-link { display:inline-block; margin-top:12px; color:var(--muted); font-size:14px; }
.main-content { min-width:0; padding:38px clamp(24px,4vw,64px); }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; }
.topbar h1 { margin-bottom:0; font-size:clamp(30px,4vw,44px); }
.notice { display:flex; gap:8px 16px; flex-wrap:wrap; margin-bottom:24px; padding:14px 16px; border-left:4px solid var(--accent-strong); background:var(--surface-secondary); }
.content-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:24px; }
.panel { min-width:0; padding:28px; border:1px solid var(--line); border-radius:24px; background:var(--surface); box-shadow:var(--shadow); }
.panel-header { display:flex; align-items:start; justify-content:space-between; gap:24px; }
.panel-header h2 { margin-bottom:0; }
.status { padding:5px 9px; border:1px solid var(--line); color:var(--muted); font-size:12px; font-weight:700; }
.empty-state { min-height:300px; display:grid; align-content:center; justify-items:center; padding:32px; text-align:center; }
.empty-state p { max-width:440px; margin-bottom:0; color:var(--muted); }
.metric { margin:18px 0 24px; color:var(--heading); font-size:clamp(36px,5vw,58px); font-weight:800; }
.metric span { color:var(--muted); font-size:14px; font-weight:600; }
hr { margin:0 0 20px; border:0; border-top:1px solid var(--line); }
@media (prefers-color-scheme:light) { :root { color-scheme:light; --background:#f8f9fb; --surface:#fff; --surface-secondary:#f3f6fa; --text:#192847; --heading:#222326; --muted:#7f8aa3; --line:#e3e6ec; --accent:#192847; --accent-strong:#101b31; --danger:#b42318; --shadow:0 14px 32px rgba(25,40,71,.06); } .button.primary { color:#fff; } }
@media (max-width:760px) { .app-shell { display:block; } .sidebar { position:static; width:100%; height:auto; padding:16px; border-right:0; border-bottom:1px solid var(--line); } .brand { margin:0 0 14px; } .sidebar nav { display:flex; gap:6px; overflow-x:auto; } .nav-label,.sidebar-footer { display:none; } .nav-item { flex:0 0 auto; border-left:0; border-bottom:3px solid transparent; } .nav-item:hover,.nav-item.active { border-left-color:transparent; border-bottom-color:var(--accent); } .main-content { padding:24px 16px; } .content-grid { grid-template-columns:1fr; } .login-card,.panel { padding:24px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; } }
