:root{--bg:#f4f6f5;--ink:#15352b;--muted:#728078;--line:#e0e7e2;--green:#166b4f;--lime:#c7ee85}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:9px 15px;cursor:pointer}button:hover{border-color:var(--green);background:#eef6ec}button:disabled{opacity:.5;cursor:wait}input,select{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:white;color:var(--ink);min-width:0}input:focus,select:focus{outline:2px solid #92c6a5}h1{font-size:30px;letter-spacing:-1px;line-height:1.35;margin:5px 0 22px}h2{font-size:17px;margin:0 0 18px}.brand{font-weight:850;font-size:24px;letter-spacing:1px}.brand span{color:#a8d379}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.muted{color:var(--muted)}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 20% 30%,#dbeccc,transparent 65%)}.login-card{padding:44px;background:#fff;border:1px solid var(--line);border-radius:20px;width:min(440px,92vw);box-shadow:0 30px 80px #1435290c}.login h1{font-size:34px;margin-top:38px}label{display:block;margin:14px 0}label input{display:block;width:100%;margin-top:7px}.primary{background:var(--green);color:white;width:100%;margin-top:12px}.primary:hover{background:#245e47;color:white}#loginError,#notice{color:#a7412e}#notice:empty{display:none}aside{position:fixed;left:0;top:0;bottom:0;width:226px;background:#14382d;color:#fff;padding:30px 24px;display:flex;flex-direction:column}aside .eyebrow{color:#9db4a7}nav{margin-top:30px;display:grid;gap:9px}nav button{text-align:left;background:transparent;border:0;color:#bdcec5;padding:13px 16px}nav button.active{background:var(--lime);color:#193a2d;font-weight:750}nav button:hover{background:#285040;color:white}.aside-bottom{margin-top:auto;font-weight:600}.aside-bottom span{color:#9db4a7;font-size:12px}main{margin-left:226px;padding:36px 42px;max-width:1900px}header{display:flex;justify-content:space-between;align-items:center}header button{align-self:flex-start}.toolbar{display:flex;gap:10px;align-items:center;margin:8px 0 26px;flex-wrap:wrap}.toolbar input{flex:1;max-width:430px}.toolbar span{font-size:12px;color:var(--muted);margin-left:auto}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.card,.panel{border:1px solid var(--line);border-radius:14px;background:#fff;padding:23px}.card .value{font-size:34px;letter-spacing:-1px;font-weight:700;margin:10px 0 4px}.card small{color:var(--muted)}.card.accent{background:#eaf2de}.grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-bottom:20px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:white}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th{font-size:12px;color:var(--muted);background:#f9fbf8;font-weight:500}th,td{padding:13px 16px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f7faf5}td button{font-size:12px;padding:4px 8px;margin:2px}.badge{display:inline-block;padding:3px 9px;border-radius:20px;background:#e8f4eb;color:#357549}.badge.off{background:#f6eae5;color:#9c5b43}.empty{padding:50px;text-align:center;color:var(--muted)}.bars{height:190px;display:flex;align-items:flex-end;gap:4px;padding-top:20px;overflow:hidden}.bar{min-width:2px;flex:1;background:#a7d581;border-radius:3px 3px 0 0}.bar:hover{background:var(--green)}.chart-label{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:12px}.note{color:var(--muted);font-size:13px;margin:0 0 18px}.link{border:0;background:transparent;padding:0;color:var(--green);font-family:monospace}.detail{margin-top:20px}footer{margin-top:20px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}#pager button{margin-left:8px}[hidden]{display:none!important}@media(max-width:1000px){main{padding:24px}.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}@media(max-width:650px){aside{position:static;width:auto;padding:18px}aside .eyebrow,.aside-bottom{display:none}nav{display:flex;overflow:auto;margin-top:12px;gap:5px}nav button{white-space:nowrap;padding:8px}main{margin:0;padding:18px}h1{font-size:25px}.card{padding:17px}.card .value{font-size:27px}.toolbar span{width:100%;margin:0}footer{display:block}}
