
:root{--bg:#f4f6f3;--card:#fff;--ink:#141b16;--muted:#586352;--line:#dce3d5;--accent:#2e7d32;--accent-soft:#e3f1e2;--red:#c62828;--amber:#9a6a00;--amber-soft:#fff3cd;--red-soft:#fde7e7}
@media (prefers-color-scheme:dark){:root{--bg:#121a15;--card:#18261b;--ink:#e2ebe3;--muted:#a9b8a6;--line:#2e3d30;--accent:#6cc070;--accent-soft:#1f3a24;--red:#ef9a9a;--amber:#ffd54f;--amber-soft:#3a3214;--red-soft:#3d1f1f}}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--accent)}header{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:12px 20px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1}
header .brand{font-weight:800;font-size:18px;margin-right:8px}header nav{display:flex;flex-wrap:wrap;gap:4px}header nav a{padding:6px 10px;border-radius:10px;text-decoration:none;color:var(--ink)}
header nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:700}header form{margin-left:auto}
main{max-width:1180px;margin:0 auto;padding:20px}h1{font-size:24px;margin:4px 0 16px}h2{font-size:17px;margin:0 0 12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:16px}.grid .card{margin-bottom:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:16px;overflow-x:auto}
.kpi .label{color:var(--muted);font-size:13px}.kpi .value{font-size:26px;font-weight:800;line-height:1.3}.kpi .sub{color:var(--muted);font-size:12px}
table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}code{font:13px ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}
a.pill{text-decoration:none}.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700;background:var(--accent-soft);color:var(--accent)}
.pill.red{background:var(--red-soft);color:var(--red)}.pill.amber{background:var(--amber-soft);color:var(--amber)}.pill.grey{background:var(--line);color:var(--muted)}
.secret{font:700 22px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1px;padding:12px 16px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:inline-block;margin:4px 0 8px;user-select:all}
.muted{color:var(--muted)}.grow{flex:1}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.flash{padding:10px 14px;border-radius:12px;background:var(--accent-soft);margin-bottom:16px}.flash.error{background:var(--red-soft);color:var(--red)}
input,select,button{font:inherit}input[type=text],input[type=password],input[type=number],select{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);min-width:0}
button{padding:8px 14px;border-radius:10px;border:0;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}button.secondary{background:var(--line);color:var(--ink)}button.danger{background:var(--red);color:#fff}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
@media (max-width:600px){main{padding:12px}.card{padding:12px}.kpi .value{font-size:22px}header{padding:10px 12px}}
.chart{width:100%;height:auto}.chart .bar{fill:var(--accent)}.chart .axis{fill:var(--muted);font-size:10px}
.login{max-width:380px;margin:10vh auto}.login form{display:flex;flex-direction:column;gap:12px}
dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}dt{color:var(--muted)}dd{margin:0}
