:root{--bg: #f4f5f7;--panel: #fff;--border: #d8dee4;--text: #1a1d23;--muted: #5c6370;--sidebar: #1e2936;--sidebar-text: #e8eaed;--accent: #2563eb;--danger: #b91c1c}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--accent)}.layout{display:flex;min-height:100vh;min-width:0}.mobile-bar,.nav-backdrop{display:none}.sidebar{width:248px;background:var(--sidebar);color:var(--sidebar-text);padding:1rem 0 0;flex-shrink:0;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}.sidebar h1{font-size:1rem;font-weight:600;padding:0 1rem 1rem;margin:0;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar nav{flex:1}.sidebar nav a{display:flex;align-items:center;min-height:40px;padding:.45rem 1rem;color:#cbd5e1;text-decoration:none;font-size:13px}.sidebar-foot{padding:1rem;margin-top:auto;border-top:1px solid rgba(255,255,255,.08)}.sidebar-foot .btn{width:100%}.sidebar nav a:hover{background:#ffffff0f;color:#fff}.sidebar nav a.active{background:#2563eb59;color:#fff}.main{flex:1;min-width:0;padding:1.5rem 1.75rem 2.5rem;overflow:auto}.main h2{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th,table.data td{border:1px solid var(--border);padding:.45rem .5rem;text-align:left}table.data th{background:#f0f2f5;font-weight:600}.btn{display:inline-block;padding:.4rem .75rem;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:13px}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-danger{background:#fef2f2;color:var(--danger);border-color:#fecaca}input[type=text],input[type=password],input[type=number],textarea,select{width:100%;max-width:420px;padding:.4rem .5rem;border:1px solid var(--border);border-radius:6px}textarea{max-width:720px;min-height:120px}.row{margin-bottom:.75rem}.row label{display:block;font-size:12px;color:var(--muted);margin-bottom:.2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.stat-box{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.75rem}.stat-box .label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.stat-box .value{font-size:1.15rem;font-weight:600;margin-top:.25rem}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-page{width:min(100%,420px);margin:0;padding:1.5rem;background:var(--panel);border:1px solid var(--border);border-radius:12px}.login-page h1{margin-top:0;font-size:1.25rem}.err{color:var(--danger);font-size:13px;margin-top:.5rem}.ok{color:#15803d;font-size:13px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.muted{color:var(--muted);font-size:12px}.danger-text{color:var(--danger)}.meta-two-col{display:grid;grid-template-columns:minmax(280px,440px) 1fr;gap:1rem;align-items:start}.card-row{display:grid;grid-template-columns:1fr;gap:1rem}.health-card{min-width:0;margin-bottom:0}.pager{display:flex;flex-wrap:wrap;gap:.5rem}.period-bar{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem}.click-row{cursor:pointer}.click-row:hover td{background:#f8fafc}.drawer-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;padding:0;background:#0f172a73;cursor:pointer}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--panel);box-shadow:-8px 0 24px #0000001f;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));overflow:auto}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.drawer-head h3{margin:0;font-size:1.05rem}.drawer-list{margin:0;display:grid;gap:.85rem}.drawer-list dt{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.drawer-list dd{margin:.2rem 0 0;font-size:14px;word-break:break-word}@media(min-width:1100px){.card form{display:grid;grid-template-columns:1fr 1fr;column-gap:1rem;align-items:start}.card form>:not(.row){grid-column:1 / -1}.card form textarea{max-width:none}.card-row{grid-template-columns:1fr 1fr}}@media(max-width:1099px){.layout{display:block}.mobile-bar{display:flex;align-items:center;gap:.75rem;position:sticky;top:0;z-index:30;background:var(--sidebar);color:#fff;min-height:56px;padding:.5rem .85rem;padding-top:calc(.5rem + env(safe-area-inset-top))}.mobile-title{font-size:15px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-toggle{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:0 .75rem;border:0;border-radius:8px;background:#ffffff1a;color:#fff;font-size:14px;cursor:pointer;flex-shrink:0}.nav-toggle-bars{width:16px;height:2px;background:#fff;box-shadow:0 -5px #fff,0 5px #fff}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;border:0;padding:0;background:#0f172a73;opacity:0;pointer-events:none}.nav-open .nav-backdrop{opacity:1;pointer-events:auto}.sidebar{position:fixed;z-index:40;top:0;left:0;width:min(320px,88vw);height:100vh;height:100dvh;transform:translate(-105%);transition:transform .2s ease;box-shadow:none}.nav-open .sidebar{transform:none;box-shadow:8px 0 24px #00000040}.sidebar nav a{min-height:44px;font-size:15px}.main{padding:1rem 1rem 2rem}}@media(max-width:720px){.main h2{font-size:1.15rem}.topbar{flex-direction:column;align-items:stretch;gap:.75rem}.topbar select{max-width:none!important;width:100%!important}input[type=text],input[type=password],input[type=number],textarea,select{max-width:none;font-size:16px;min-height:44px}textarea{min-height:120px}.btn{min-height:44px}.stats-grid{grid-template-columns:1fr 1fr}.card{overflow-x:auto}table.data:has(thead){min-width:640px}table.data th,table.data td{padding:.55rem .5rem}}@media(max-width:420px){.stats-grid{grid-template-columns:1fr}}@media(max-width:960px){.meta-two-col{grid-template-columns:1fr}}
