:root{--paper:#fff;--chrome:#f4f5f6;--ink:#0c0d0e;--muted:#4c5258;--hairline:#d4d7da;--accent:#0b5fd7;--on-accent:#fff;--focus:var(--accent);--border-control:#7d838a;--ok:#1d7a46;--warn:#8a5e00;--bad:#c22f2f;--on-bad:#fff;--plan-grid:#0c0d0e0d;--plan-joist:#0c0d0e80;--plan-hatch:#0c0d0e57;--plan-seam:#0c0d0e57;--plan-board-tint:#0c0d0e0b;--plan-ghost-opacity:.32;--dim-driving:var(--ink);--dim-driven:#6f757b;--cat-1:#6d4fa1;--cat-2:#0e7490;--cat-3:#7a5230;--cat-4:#5b5f66;--cat-fill-alpha:.16;--util-pass:var(--ok);--util-warn:var(--warn);--swatch-material:repeating-linear-gradient(45deg, var(--paper) 0 3px, var(--hairline) 3px 4px);--stroke-joist:1;--stroke-beam:1.7;--stroke-boundary:2.2;--stroke-opening:1.6;--stroke-dim:1.15;--stroke-issue-paint:2.4;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-numeral:ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--text-caps:10.5px;--text-status:12.5px;--text-body:13.5px;--text-emphasis:15px;--text-heading:20px;--text-figure:27px;--radius:5px;--radius-sm:3px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px}:root[data-theme=night]{--paper:#1b1d20;--chrome:#232629;--ink:#f2f4f6;--muted:#a7adb4;--hairline:#3a3f45;--accent:#6aa5f8;--on-accent:#101114;--ok:#6fc294;--warn:#e0a84c;--bad:#f17062;--on-bad:#101114;--plan-grid:#f2f4f60f;--plan-joist:#f2f4f680;--plan-hatch:#f2f4f657;--plan-seam:#f2f4f657;--plan-board-tint:#f2f4f60d;--border-control:#6b727a;--cat-1:#a98fd6;--cat-2:#55b2c9;--cat-3:#c49a72;--cat-4:#9aa1a9}@media print{:root{--chrome:#fff;--hairline:#b9bdc1}}:root{font-family:var(--font-ui);color:var(--ink);background:var(--chrome);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--ink);background:var(--chrome);font-size:var(--text-body);margin:0}button,input,select{font:inherit}input[type=number],input[inputmode=decimal],[data-plan-dimension-value],dd,output,table{font-family:var(--font-numeral);font-variant-numeric:tabular-nums}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media print{body{background:var(--paper)}}
