@font-face{font-family:Bricolage Grotesque;src:url(/fonts/BricolageGrotesque-latin.woff2)format("woff2");font-weight:200 800;font-display:swap}@font-face{font-family:Figtree;src:url(/fonts/Figtree-latin.woff2)format("woff2");font-weight:300 900;font-display:swap}:root{--oat:#f6f2ea;--crust:#fffdf8;--husk:#e4ddd0;--husk-strong:#d5ccbb;--divider:#eee8dc;--sand:#eee8dc;--ink:#1e2a22;--ink-soft:#4a5048;--stone:#5e635a;--forest:#1f5c3f;--forest-deep:#163f2c;--forest-tint:#ddeae1;--on-forest:#f6f2ea;--tomato:#c8432b;--warn-tint:#f7e3bc;--warn-ink:#4a3510;--warn-border:#e8a93a;--danger-ink:#9e321c;--danger-tint:#fbe3dc;--font-display:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"Figtree", system-ui, sans-serif;--radius-s:8px;--radius-m:12px;--radius-l:16px;--radius-pill:999px}*{box-sizing:border-box}body{background:var(--oat);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.45}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0}h1{font-size:28px;font-weight:700}h2{font-size:19px;font-weight:700}h3{font-size:15px;font-weight:700}a{color:var(--forest)}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--ink);color:var(--oat);flex-direction:column;gap:4px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);padding:0 10px 4px;font-size:20px;font-weight:800}.brand small{font-family:var(--font-body);color:#c9cec5;letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600;display:block}.env{background:var(--warn-tint);color:var(--warn-ink);border-radius:var(--radius-pill);align-self:flex-start;margin:8px 10px 16px;padding:2px 10px;font-size:12px;font-weight:700}.nav a{color:#e3e6df;border-radius:var(--radius-s);padding:9px 10px;font-weight:600;text-decoration:none;display:block}.nav a:hover{background:#2c3a30}.nav a.active{background:var(--forest);color:var(--on-forest)}.sidebar .who{color:#c9cec5;word-break:break-all;margin-top:auto;padding:0 10px;font-size:13px}.sidebar .who button{margin-top:8px}.main{width:100%;min-width:0;max-width:1200px;padding:28px 32px 64px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head p{color:var(--stone);margin:4px 0 0}@media (width<=760px){.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;height:auto;position:static}.sidebar .who{width:100%;margin-top:0}.nav{flex-wrap:wrap;display:flex}.main{padding:20px 16px 48px}}.card{background:var(--crust);border:1px solid var(--husk);border-radius:var(--radius-l);padding:18px 20px}.card+.card,.stack>*+*{margin-top:16px}.grid{gap:16px;display:grid}.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.stat{background:var(--crust);border:1px solid var(--husk);border-radius:var(--radius-m);padding:14px 16px}.stat .n{font-family:var(--font-display);font-size:28px;font-weight:700}.stat .l{color:var(--stone);font-size:13px}.section-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}dl.facts{grid-template-columns:160px 1fr;gap:6px 12px;margin:0;display:grid}dl.facts dt{color:var(--stone)}dl.facts dd{word-break:break-word;margin:0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--stone);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--husk);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--divider);vertical-align:top;padding:10px}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--oat)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.muted{color:var(--stone)}.empty{color:var(--stone);text-align:center;padding:24px 0}.badge{border-radius:var(--radius-pill);background:var(--sand);color:var(--ink-soft);white-space:nowrap;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.badge.plus{background:var(--forest-tint);color:var(--forest-deep)}.badge.warn{background:var(--warn-tint);color:var(--warn-ink)}.badge.off{background:var(--danger-tint);color:var(--danger-ink)}label{margin-bottom:4px;font-size:13px;font-weight:600;display:block}.field+.field{margin-top:12px}.row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.row>.field{flex:180px;margin-top:0}input,select,textarea{font:inherit;color:var(--ink);background:var(--crust);border:1px solid var(--husk-strong);border-radius:var(--radius-s);width:100%;min-height:44px;padding:9px 11px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--forest);outline-offset:2px}.hint{color:var(--stone);margin-top:4px;font-size:13px}.radio-row{flex-wrap:wrap;gap:8px;display:flex}.radio-row label{border:1px solid var(--husk-strong);border-radius:var(--radius-pill);cursor:pointer;align-items:center;gap:8px;min-height:44px;margin:0;padding:8px 14px;font-weight:600;display:flex}.radio-row input{width:auto;min-height:0}.radio-row label:has(input:checked){background:var(--ink);color:var(--oat);border-color:var(--ink)}button{font:inherit;border-radius:var(--radius-pill);cursor:pointer;background:var(--forest);min-height:44px;color:var(--on-forest);border:1px solid #0000;padding:9px 18px;font-weight:700}button:hover:not(:disabled){background:var(--forest-deep)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:var(--crust);color:var(--ink);border-color:var(--husk-strong)}button.secondary:hover:not(:disabled){background:var(--sand)}button.danger{background:var(--tomato);color:#fff}button.danger:hover:not(:disabled){background:var(--danger-ink)}button.small{min-height:32px;padding:4px 12px;font-size:13px}button.link{color:var(--forest);background:0 0;border:0;min-height:0;padding:0;text-decoration:underline}button.link:hover:not(:disabled){background:0 0}.callout{border-radius:var(--radius-m);padding:12px 14px;font-size:14px}.callout.ok{background:var(--forest-tint);color:var(--forest-deep)}.callout.warn{background:var(--warn-tint);color:var(--warn-ink)}.callout.error{background:var(--danger-tint);color:var(--danger-ink)}.danger-zone{border-color:#efc2b6}dialog{border:1px solid var(--husk);border-radius:var(--radius-l);background:var(--crust);color:var(--ink);width:min(480px,100vw - 32px);padding:22px}dialog::backdrop{background:#1e2a2273}dialog .actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.signin{place-items:center;min-height:100vh;padding:16px;display:grid}.signin .card{width:min(420px,100%);padding:28px}.signin h1{margin-bottom:6px}.signin p{color:var(--ink-soft)}.segmented{background:var(--sand);border-radius:var(--radius-pill);flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.segmented button{color:var(--ink-soft);background:0 0;min-height:36px;padding:6px 14px}.segmented button.on{background:var(--crust);color:var(--ink);box-shadow:0 1px 2px #1e2a221f}th.num,td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}td.strong{font-weight:700}tr.selected td{background:var(--forest-tint)}ul.split{min-width:260px;margin:0;padding:0;font-size:13px;list-style:none}ul.split li{white-space:nowrap;justify-content:space-between;gap:16px;display:flex}ul.split li .muted{font-variant-numeric:tabular-nums}button.link.small{font-size:12px}label.check input{width:18px;height:18px;min-height:0;accent-color:var(--forest);margin:0}label.check{align-items:center;gap:6px;min-height:44px;margin:0;font-weight:600;display:inline-flex}.bars{border-bottom:1px solid var(--husk-strong);align-items:stretch;gap:2px;height:160px;display:flex}.bar-col{cursor:default;flex:1 1 0;align-items:flex-end;min-width:2px;display:flex}.bar-col.on{background:var(--oat)}.bar{background:var(--forest);border-radius:4px 4px 0 0;width:100%}.bar-col.on .bar{background:var(--forest-deep)}.bars-axis{justify-content:space-between;margin-top:6px;font-size:12px;display:flex}td.name{white-space:nowrap}td.name button.link{text-align:left;padding:0}
