:root{--brand: #0a4aa8;--brand-deep: #1e4295;--bg: #f3f6fb;--surface: #ffffff;--surface-2: #eef2f9;--border: #dde4ef;--text: #0f1b33;--muted: #5f6b82;--primary: var(--brand);--primary-hover: #083d8c;--primary-text: #ffffff;--primary-soft: #e3ecfa;--bar: var(--brand);--good-bg: #dcfce7;--good: #166534;--warn-bg: #fef3c7;--warn: #92400e;--bad-bg: #fee2e2;--bad: #b91c1c;--info-bg: #e3ecfa;--info: #1e4295;--radius: 10px;--shadow: 0 1px 2px rgba(15, 27, 51, .06);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0a1222;--surface: #101a2e;--surface-2: #17233b;--border: #22314d;--text: #e6ecf7;--muted: #8d9bb6;--primary: #6b9bf2;--primary-hover: #8ab0f5;--primary-text: #0a1222;--primary-soft: #1a2d52;--bar: #6b9bf2;--good-bg: #14532d;--good: #bbf7d0;--warn-bg: #713f12;--warn: #fde68a;--bad-bg: #7f1d1d;--bad: #fecaca;--info-bg: #1a2d52;--info: #b9cff8;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{-webkit-font-smoothing:antialiased;font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:0}h2{font-size:15px;margin:0 0 12px}code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-2);padding:1px 6px;border-radius:4px}.muted{color:var(--muted)}.small{font-size:12px}.block{display:block}.strong{font-weight:600}.right{text-align:right}.num{text-align:right;font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.row{display:flex;align-items:center;gap:8px}.gap-xs{gap:4px}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.dim{opacity:.6;transition:opacity .15s}.shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100vh}.brand{display:flex;flex-direction:column;gap:4px;padding:4px 8px 16px}.brand-logo{display:block;height:34px;width:auto;align-self:flex-start}.brand-sub{font-size:12px;color:var(--muted)}.topbar .brand-logo{height:26px}.login .brand{align-items:center;text-align:center;padding:0 0 8px}.login .brand-logo{height:44px;align-self:center}@media(prefers-color-scheme:dark){.brand-logo{background:#fff;border-radius:8px;padding:5px 8px;box-sizing:content-box}}nav{display:flex;flex-direction:column;gap:2px}.nav-link{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;color:var(--text)}.nav-link:hover{background:var(--surface-2);text-decoration:none}.nav-link.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.nav-icon{width:18px;text-align:center;opacity:.8}.sidebar-foot{margin-top:auto;padding:12px 8px 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px;align-items:flex-start;word-break:break-all}.main{flex:1;min-width:0}.topbar{display:none}.content{padding:28px 32px 48px;max-width:1280px;display:flex;flex-direction:column;gap:16px}.boot{display:grid;place-items:center;height:100vh}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px}.card-head h2{margin:0}.grid{display:grid;gap:16px;align-content:start}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.page-header p{margin:4px 0 0}.crumbs{font-size:13px;margin-bottom:-8px}.stat-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em}.stat-value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;margin:2px 0}.stat-hint{font-size:12px}.bars{display:flex;align-items:flex-end;gap:3px;height:160px;padding-top:8px}.bar-col{flex:1;height:100%;display:flex;align-items:flex-end}.bar{width:100%;background:var(--bar);border-radius:3px 3px 0 0;min-height:2px;opacity:.85}.bar-col:hover .bar{opacity:1}.bars-axis{display:flex;justify-content:space-between;margin-top:6px}.breakdown{display:flex;flex-direction:column;gap:8px}.breakdown-row{display:grid;grid-template-columns:130px 1fr 60px;gap:10px;align-items:center}.meter{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.meter>div{height:100%;background:var(--primary);border-radius:999px}.meter.big{height:10px;margin-bottom:12px}.table-wrap{padding:0;overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:top}.table tr:last-child td{border-bottom:none}.table.compact td{padding:8px 4px}.card>.table td:first-child,.card>.table th:first-child{padding-left:0}.card>.table td:last-child,.card>.table th:last-child{padding-right:0}.table-wrap>.table td:first-child,.table-wrap>.table th:first-child{padding-left:16px}.table-wrap>.table td:last-child,.table-wrap>.table th:last-child{padding-right:16px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-top:1px solid var(--border);flex-wrap:wrap;gap:8px}.badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}.badge-good{background:var(--good-bg);color:var(--good)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-bad{background:var(--bad-bg);color:var(--bad)}.badge-info{background:var(--info-bg);color:var(--info)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}input:disabled,textarea:disabled{background:var(--surface-2)}textarea{resize:vertical}.filters{display:flex;gap:8px;flex-wrap:wrap;padding:12px}.form,.login{display:flex;flex-direction:column;gap:12px}.form label,.login label{display:flex;flex-direction:column;gap:4px;font-weight:500}label.check{flex-direction:row!important;align-items:flex-start;gap:10px;cursor:pointer;font-weight:400}label.check input{margin-top:3px}.checklist{list-style:none;padding:0;margin:0 0 12px}.checklist li{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.done{text-decoration:line-through;color:var(--muted)}.btn{font:inherit;font-weight:500;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:7px 14px;border-radius:8px;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{color:var(--bad);border-color:var(--bad)}.btn-ghost{border-color:transparent;background:transparent}.btn-sm{padding:3px 8px;font-size:12px}.copy{all:unset;cursor:pointer;color:var(--muted)}.copy:hover code{outline:1px solid var(--border)}.alert{padding:10px 14px;border-radius:8px}.alert-good{background:var(--good-bg);color:var(--good)}.alert-warn{background:var(--warn-bg);color:var(--warn)}.alert-bad{background:var(--bad-bg);color:var(--bad)}.empty{padding:32px;text-align:center}.kv{display:grid;grid-template-columns:140px 1fr;gap:8px 12px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.login{width:100%;max-width:360px;padding:24px}@media(max-width:900px){.grid.two{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{position:fixed;z-index:20;transform:translate(-100%);transition:transform .2s;box-shadow:0 0 40px #0003}.sidebar.open{transform:none}.topbar{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.content{padding:16px}.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:8px}.breakdown-row{grid-template-columns:100px 1fr 50px}}
