:root{--surface:#ffffff;--surface-2:#f5f5f4;--radius:10px;--radius-sm:7px;--shadow:0 1px 2px rgba(0,0,0,0.06),0 1px 3px rgba(0,0,0,0.08);--pos:#15803d;--neg:#b91c1c;--warn-bg:#fef3c7;--warn-fg:#92400e;--ok-bg:#dcfce7;--ok-fg:#166534;--info-bg:#e0f2fe;--info-fg:#075985;--muted-bg:#f5f5f4;--bad-bg:#fee2e2;--bad-fg:#991b1b}@media (prefers-color-scheme:dark){:root{--surface:#292524;--surface-2:#1c1917;--shadow:none;--pos:#4ade80;--neg:#f87171;--warn-bg:#422006;--warn-fg:#fde68a;--ok-bg:#052e16;--ok-fg:#86efac;--info-bg:#082f49;--info-fg:#bae6fd;--muted-bg:#292524;--bad-bg:#450a0a;--bad-fg:#fecaca}}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;gap:.75rem;padding:max(.6rem,env(safe-area-inset-top)) 1rem .6rem;background:var(--surface);border-bottom:1px solid var(--border)}.topbar,.topbar .brand{display:flex;align-items:center}.topbar .brand{gap:.5rem;font-weight:700;color:var(--fg);text-decoration:none;white-space:nowrap}.topbar .brand img{width:26px;height:26px}.topbar .spacer{flex:1 1}.menu-btn{display:inline-flex;border:1px solid var(--border);background:var(--surface);color:var(--fg);border-radius:var(--radius-sm);padding:.35rem .55rem;cursor:pointer;font-size:1.1rem;line-height:1}@media (min-width:900px){.menu-btn{display:none}}.body-row{flex:1 1;display:flex;align-items:stretch}.sidebar{width:232px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface);padding:.75rem}.sidebar nav{display:flex;flex-direction:column;gap:2px;position:-webkit-sticky;position:sticky;top:4rem}.navlink{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:var(--radius-sm);color:var(--fg);text-decoration:none;font-size:.95rem}.navlink:hover{background:var(--surface-2)}.navlink[aria-current=page]{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:600}.navlink .ico{width:1.2rem;text-align:center}@media (max-width:899px){.sidebar{position:fixed;inset:0 auto 0 0;top:0;z-index:40;width:260px;padding-top:max(.75rem,env(safe-area-inset-top));transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.scrim{position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.4);border:0}}.main{flex:1 1;min-width:0;padding:1.25rem 1.25rem max(1.25rem,env(safe-area-inset-bottom));max-width:1100px;margin:0 auto;width:100%}.input,.select,.textarea{font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.45rem .6rem;width:100%}.textarea{min-height:4.5rem;resize:vertical}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem}.field>label{font-size:.85rem;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:.4rem;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--fg);border-radius:var(--radius-sm);padding:.5rem .9rem;cursor:pointer;text-decoration:none}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.05)}.btn.danger{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 40%,var(--border))}.btn.sm{padding:.3rem .6rem;font-size:.85rem}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.15rem}.card h2,.card h3{margin-top:0}.grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.stat{display:flex;flex-direction:column;gap:.2rem}.stat .label{font-size:.82rem;color:var(--muted)}.stat .value{font-size:1.5rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page-head{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.page-head h1{margin:0;font-size:1.5rem}.btn-row .spacer,.page-head .spacer,.toolbar .spacer{flex:1 1}.detail-grid{display:grid;grid-template-columns:minmax(8rem,max-content) 1fr;grid-gap:.4rem 1rem;gap:.4rem 1rem;margin:0}.detail-grid-stack{grid-template-columns:1fr;gap:.1rem 0}.detail-grid-stack dd{margin-bottom:.4rem}.detail-grid dt{color:var(--muted);font-size:.85rem}.detail-grid dd{margin:0}table.data tfoot td{font-weight:600;border-top:2px solid var(--border);background:var(--surface-2)}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin:1rem 0}.tab{padding:.5rem 1rem;border:0;background:none;color:var(--muted);cursor:pointer;font:inherit;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--fg);border-bottom-color:var(--accent);font-weight:600}.check{display:inline-flex;align-items:center;gap:.45rem;font-size:.92rem;cursor:pointer}.check input{width:1rem;height:1rem}table.data tr.group-row td{font-weight:700;background:var(--surface-2);text-transform:uppercase;font-size:.8rem;letter-spacing:.03em}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}table.data{width:100%;border-collapse:collapse;font-size:.92rem}table.data td,table.data th{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}table.data thead th{background:var(--surface-2);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr.clickable{cursor:pointer}table.data tbody tr.clickable:hover td{background:var(--surface-2)}.num{text-align:right!important;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pos{color:var(--pos)}.neg{color:var(--neg)}.badge{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--muted-bg);color:var(--muted)}.badge.ok{background:var(--ok-bg);color:var(--ok-fg)}.badge.warn{background:var(--warn-bg);color:var(--warn-fg)}.badge.info{background:var(--info-bg);color:var(--info-fg)}.badge.neg{background:color-mix(in srgb,var(--neg) 16%,transparent);color:var(--neg)}.empty,.muted{color:var(--muted)}.empty{text-align:center;padding:2.5rem 1rem}.error-banner{background:color-mix(in srgb,var(--neg) 12%,transparent);color:var(--neg);border:1px solid color-mix(in srgb,var(--neg) 30%,transparent);border-radius:var(--radius-sm);padding:.6rem .85rem;margin-bottom:1rem}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.section-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:1.5rem 0 .5rem}.dialog-backdrop{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:1rem}.dialog{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:1.25rem;width:100%;max-width:32rem;max-height:90vh;overflow:auto}.settings-cols{column-count:3;column-gap:1.5rem}.settings-sec{page-break-inside:avoid;break-inside:avoid;margin-bottom:1.5rem;min-width:0}.settings-sec .section-title{margin-top:0}@media (max-width:1400px){.settings-cols{column-count:2}}@media (max-width:900px){.settings-cols{column-count:1}}.main:has(.settings-cols){max-width:1800px}