:root{--paper:#faf7f2;--paper-deep:#f3eee5;--ink:#21201c;--ink-soft:#6e6a61;--hairline:#e2dcd0;--accent:#c8401f;--accent-deep:#a93417;--ok-ink:#2e6e4e;--ok-paper:#eff4ee;--warn-ink:#8a5a1f;--warn-paper:#f8f1e2;--serif:"Fraunces", Georgia, serif;--sans:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}::selection{background:var(--accent);color:var(--paper)}h1,h2{font-family:var(--serif);letter-spacing:-.01em;font-weight:550}h1{margin:0 0 .5em;font-size:1.9rem;line-height:1.1}h2{margin:0 0 .5em;font-size:1.35rem;line-height:1.2}h3{margin:0 0 .35em;font-size:1rem;font-weight:600}a{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent)}.kicker{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 .6em;font-size:.7rem;font-weight:500}.muted{color:var(--ink-soft)}.mono{font-family:var(--mono);font-size:.85em}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--hairline);background:var(--paper);align-items:center;gap:1.5rem;padding:.85rem 1.5rem;display:flex}.topbar .brand{font-family:var(--serif);align-items:center;gap:.5rem;font-size:1.05rem;font-weight:600;text-decoration:none;display:inline-flex}.topbar nav{gap:1.1rem;display:flex}.topbar nav a{color:var(--ink-soft);font-size:.92rem;text-decoration:none}.topbar nav a:hover,.topbar nav a[aria-current=page]{color:var(--ink)}.topbar .spacer{flex:1}.main{flex:1;width:100%;max-width:1060px;margin:0 auto;padding:2rem 1.5rem 4rem}.main.narrow{max-width:560px}label{margin:0 0 .3rem;font-size:.85rem;font-weight:600;display:block}input,select,textarea{font:inherit;color:inherit;border:1px solid var(--hairline);background:#fff;border-radius:4px;width:100%;padding:.55rem .7rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.field{margin-bottom:1rem}.field .hint{color:var(--ink-soft);margin-top:.25rem;font-size:.8rem}.row{gap:1rem;display:flex}.row>*{flex:1;min-width:0}button,.btn{font:inherit;border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;border-radius:4px;padding:.6rem 1.15rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-block}button:hover,.btn:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:var(--paper)}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent)}button.quiet,.btn.quiet{color:var(--ink);border-color:var(--hairline);background:0 0}button.quiet:hover,.btn.quiet:hover{border-color:var(--ink);color:var(--ink);background:0 0}button:disabled{opacity:.5;cursor:not-allowed}table{border-collapse:collapse;width:100%;font-size:.92rem}th{text-align:left;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--ink);padding:.5rem .75rem;font-size:.68rem;font-weight:500}td{border-bottom:1px solid var(--hairline);vertical-align:top;padding:.65rem .75rem}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--paper-deep)}td.num,th.num{text-align:right;font-family:var(--mono)}.chip{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--hairline);color:var(--ink-soft);border-radius:3px;padding:.15rem .5rem;font-size:.68rem;display:inline-block}.chip.ok{background:var(--ok-paper);color:var(--ok-ink);border-color:#0000}.chip.warn{background:var(--warn-paper);color:var(--warn-ink);border-color:#0000}.chip.accent{background:var(--accent);color:var(--paper);border-color:#0000}.notice{border:1px solid var(--hairline);border-radius:4px;margin:0 0 1.25rem;padding:.75rem 1rem;font-size:.92rem}.notice.ok{background:var(--ok-paper);color:var(--ok-ink);border-color:#0000}.notice.warn{background:var(--warn-paper);color:var(--warn-ink);border-color:#0000}.notice.error{color:var(--accent-deep);background:#f9ece8;border-color:#0000}.panel{border:1px solid var(--hairline);background:#fff;border-radius:6px;padding:1.25rem 1.4rem}.hairline-top{border-top:1px solid var(--hairline);margin-top:1.25rem;padding-top:1.25rem}.stack>*+*{margin-top:1rem}.cluster{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}
