:root{--bg: #f2f5f3;--surface: #fff;--surface-2: #e9efeb;--line: #d7dfda;--ink: #16211d;--ink-dim: #55645d;--accent: #1f6f5c;--accent-ink: #16513f;--gold: #9c6a1e;--ok: #2f8f5b;--warn: #a6472f;--radius: 12px;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--accent)}h1,h2,h3{margin:0 0 12px;font-weight:700}h1{font-size:22px}h2{font-size:17px}.muted{color:var(--ink-dim)}.center{display:grid;place-items:center;min-height:60vh}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}button{font:inherit;padding:9px 16px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;cursor:pointer}button.ghost{background:transparent;color:var(--accent)}button:disabled{opacity:.5;cursor:default}button:not(:disabled):active{transform:translateY(1px)}button,a{transition:transform .05s ease,background .12s ease,opacity .12s ease}.spin{display:inline-block;width:14px;height:14px;vertical-align:-2px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grid.g2>.card,.grid.g3>.card{display:flex;flex-direction:column}.grid.g2>.card>.row:last-child,.grid.g3>.card>.row:last-child{margin-top:auto}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}input,select,textarea{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;width:100%}textarea{resize:vertical}.brand{font-weight:800;letter-spacing:.01em;color:var(--accent-ink)}label{display:block;font-size:13px;color:var(--ink-dim);margin:10px 0 4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.stat{font-size:24px;font-weight:700}.stat .cur{font-size:15px;color:var(--ink-dim);font-weight:500}.pill{display:inline-block;font-size:12px;padding:2px 9px;border-radius:20px;background:var(--surface-2);color:var(--ink-dim)}.pill.ok{background:#e1f1e7;color:var(--ok)}.pill.warn{background:#f5e3dd;color:var(--warn)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint, #8a968f);position:sticky;top:0;background:var(--surface);z-index:1}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.table-stickycol th:first-child,.table-stickycol td:first-child{position:sticky;left:0;background:var(--surface);z-index:2}.err{color:var(--warn);font-size:14px;margin:8px 0}.ok-msg{color:var(--ok);font-size:14px;margin:8px 0}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.side{background:var(--surface);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto}.side .brand{font-weight:800;font-size:18px;padding:6px 10px 14px}.side .navgroup{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint, #8a968f);padding:12px 12px 4px}.side .navgroup:first-of-type{padding-top:4px}.side a{display:block;padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px}.side a.active{background:var(--surface-2);font-weight:600}.main{padding:22px 26px;max-width:980px}.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.tabs button{background:transparent;color:var(--ink-dim);border:1px solid var(--line);border-radius:20px;padding:6px 13px}.tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}@media (max-width: 720px){.shell{grid-template-columns:1fr}.side{flex-direction:row;overflow-x:auto;overflow-y:visible;max-height:none;border-right:none;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.side .brand,.side .navgroup{display:none}.side a{white-space:nowrap}.side>div[style],.side>button{flex:0 0 auto}}
