:root{--ground:#f4f6f7;--surface:#fff;--ink:#101a20;--ink-2:#55666f;--ink-3:#7d8f98;--rule:#dbe3e6;--accent:#0f5c82;--danger:#9b2c2c;--radius:6px}@media (prefers-color-scheme:dark){:root{--ground:#0d1519;--surface:#131e24;--ink:#e6edf0;--ink-2:#aec0c8;--ink-3:#7c8f99;--rule:#25353d;--accent:#6bb8dd;--danger:#e08585}}*{box-sizing:border-box}body{background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.6 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}h1{letter-spacing:-.01em;margin:0;font-size:24px}h2{letter-spacing:-.005em;margin:0 0 4px;font-size:15px}a{color:var(--accent)}.auth{place-items:center;min-height:100dvh;padding:24px;display:grid}.auth .card{width:100%;max-width:380px}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:22px 24px}.lede{color:var(--ink-2);margin:4px 0 18px}.muted{color:var(--ink-3)}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 2px;font-size:11px;font-weight:600}.stack{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field span{color:var(--ink-2);font-size:13px;font-weight:500}input{font:inherit;color:var(--ink);background:var(--ground);border:1px solid var(--rule);border-radius:var(--radius);padding:9px 11px}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{font:inherit;cursor:pointer;border-radius:var(--radius);background:var(--accent);color:#fff;border:1px solid #0000;padding:9px 14px;font-weight:500}button[disabled]{opacity:.6;cursor:progress}button.ghost{color:var(--ink-2);border-color:var(--rule);background:0 0}.error{color:var(--danger);margin:0;font-size:14px}.page{max-width:1040px;margin:0 auto;padding:32px 24px 64px}.topbar{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;padding-bottom:18px;display:flex}.grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.list li{flex-direction:column;gap:1px;font-size:14px;display:flex}.chips{flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none;display:flex}.chips li{background:var(--ground);border:1px solid var(--rule);color:var(--ink-2);border-radius:3px;padding:2px 7px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11.5px}.shell{min-height:100dvh}.shell>.topbar{background:var(--surface);border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:10px 24px;display:flex}.brand{flex-wrap:wrap;align-items:baseline;gap:20px;display:flex}.brand nav{gap:4px;display:flex}.brand nav a{border-radius:var(--radius);color:var(--ink-2);padding:5px 10px;font-size:14px;font-weight:500;text-decoration:none}.brand nav a:hover{background:var(--ground);color:var(--ink)}.pagehead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px;display:flex}.pagehead .eyebrow a{text-decoration:none}.filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filters input{min-width:260px}.filters select{font:inherit;border-radius:var(--radius);border:1px solid var(--rule);background:var(--ground);color:var(--ink);padding:9px 11px}.filters .clear{align-self:center;font-size:14px}.tablewrap{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--rule);padding:9px 14px}thead th{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);background:var(--ground);font-size:11px;font-weight:600;position:sticky;top:0}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--ground)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}td.empty{text-align:center;padding:28px}.warn{color:var(--danger)}.credit{color:var(--good,#1f6b4e)}.pill{letter-spacing:.04em;text-transform:uppercase;background:var(--ground);color:var(--ink-2);border:1px solid var(--rule);border-radius:3px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-block}.s-paid{color:#1f6b4e;background:#dcede4;border-color:#bcd9cb}.s-open{color:#0f5c82;background:#dceaf1;border-color:#bcd6e4}.s-draft{background:var(--ground);color:var(--ink-3)}.s-void{color:#9b2c2c;background:#f2e0e0;border-color:#e0c4c4}.k-part{color:#35566b;background:#e6eef4;border-color:#cddce6}.k-labor{color:#5b4a6b;background:#efe9f4;border-color:#ddd2e6}.k-fee{color:#6b5a35;background:#f4efe4;border-color:#e6dcc8}.src-stock{color:var(--ink-3);background:0 0}.src-special_order{color:#6b5a35;background:#f4efe4;border-color:#e6dcc8}.src-unrecorded{color:#9b2c2c;background:#f2e0e0;border-color:#e0c4c4}@media (prefers-color-scheme:dark){.s-paid{color:#6fc79c;background:#14291f;border-color:#1e3d2e}.s-open{color:#6bb8dd;background:#16333f;border-color:#1f485a}.s-void{color:#e08585;background:#331a1a;border-color:#4a2626}.k-part{color:#9dbdd0;background:#1b2a33;border-color:#263a45}.k-labor{color:#b6a3c9;background:#251f2e;border-color:#342b40}.k-fee,.src-special_order{color:#cbb98d;background:#2b2519;border-color:#3d3423}.src-unrecorded{color:#e08585;background:#331a1a;border-color:#4a2626}}.card.wide{margin-top:16px}.card.wide .tablewrap{border:none;border-radius:0}.facts{grid-template-columns:1fr auto;gap:6px 16px;margin:0;font-size:14px;display:grid}.facts dt{color:var(--ink-2)}.facts dd{font-variant-numeric:tabular-nums;margin:0}.pager{justify-content:center;align-items:center;gap:16px;margin-top:18px;font-size:14px;display:flex}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.row .field{flex:150px}.row .field.grow{flex:3 260px}.row .field.narrow{flex:0 0 110px}.lineform{border-top:1px solid var(--rule);background:var(--ground);flex-direction:column;gap:10px;padding:16px;display:flex}.check{color:var(--ink-2);align-items:center;gap:7px;padding-bottom:9px;font-size:13px;display:flex}.check input{width:auto}.ok{color:var(--good,#1f6b4e);margin:0;font-size:14px}a.button,.button{border-radius:var(--radius);background:var(--accent);color:#fff;border:1px solid #0000;padding:9px 14px;font-weight:500;text-decoration:none;display:inline-block}button.danger{background:var(--danger)}button.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}button.link.danger{color:var(--danger);background:0 0}.voidbox summary{cursor:pointer;color:var(--danger);font-size:14px;font-weight:500}.voidbox form{margin-top:12px}select{max-width:100%}.page.wide{max-width:1500px}.board{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:start;gap:10px;display:grid}.board.working{opacity:.7}.col{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);flex-direction:column;gap:8px;min-height:110px;padding:8px;display:flex}.col.over{border-color:var(--accent);background:var(--accent-soft,var(--ground))}.col>header{color:var(--ink-2);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;padding-bottom:6px;font-size:12px;font-weight:600;display:flex}.col .count{color:var(--ink-3);background:var(--ground);border-radius:10px;padding:1px 7px;font-size:11px}.col .empty{color:var(--ink-3);text-align:center;margin:0;font-size:13px}.jobcard{background:var(--ground);border:1px solid var(--rule);border-radius:var(--radius);cursor:grab;flex-direction:column;gap:3px;padding:8px 9px;font-size:13px;display:flex}.jobcard:active{cursor:grabbing}.cardtop{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.cardtop a{font-weight:600;text-decoration:none}.owing{font-variant-numeric:tabular-nums;color:var(--danger);font-size:12px}.jobcard .who{margin:0;font-weight:500}.jobcard .what{color:var(--ink-3);margin:0;font-size:12px}.tags{flex-wrap:wrap;gap:3px;margin:3px 0 0;padding:0;list-style:none;display:flex}.tags li{letter-spacing:.03em;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:700}.cardedit summary{cursor:pointer;color:var(--ink-3);margin-top:4px;font-size:11px}.cardedit .field{margin-top:6px}.cardedit .field span{font-size:11px}.cardedit input[type=date]{padding:4px 6px;font-size:12px}.cardedit .hint{margin:4px 0 0;font-size:11px}.taglist{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.tagpick{cursor:pointer;align-items:center;gap:3px;display:flex}.tagpick input{width:auto;margin:0}.tagpick span{border-radius:3px;padding:1px 5px;font-size:10px;font-weight:700}.tray{margin-top:20px}.tray h2{margin-bottom:8px;font-size:14px}.traycards{background:var(--surface);border:1px dashed var(--rule);border-radius:var(--radius);grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;padding:10px;display:grid}.traycards.over{border-color:var(--accent);border-style:solid}.card.linked{border-left:3px solid var(--accent)}.bignum{font-variant-numeric:tabular-nums;margin:0;font-size:30px;font-weight:600}.bignum .muted{font-size:14px;font-weight:400}.hint{margin:0;font-size:12px}.numbers{flex-wrap:wrap;gap:22px;display:flex}.bignum.credit{color:var(--good,#1f6b4e)}.t-draft{background:var(--ground);color:var(--ink-3)}.t-dispatched{color:#6b5a35;background:#f4efe4;border-color:#e6dcc8}.t-received{color:#1f6b4e;background:#dcede4;border-color:#bcd9cb}.t-cancelled{color:#9b2c2c;background:#f2e0e0;border-color:#e0c4c4}@media (prefers-color-scheme:dark){.t-dispatched{color:#cbb98d;background:#2b2519;border-color:#3d3423}.t-received{color:#6fc79c;background:#14291f;border-color:#1e3d2e}.t-cancelled{color:#e08585;background:#331a1a;border-color:#4a2626}}.grants li{flex-direction:row;align-items:baseline;gap:10px}.pwbox summary{cursor:pointer;color:var(--ink-2);margin:10px 0 0;font-size:13px}.pwbox form{max-width:420px;margin-top:10px}.settings{padding:0}.settingrow{border-bottom:1px solid var(--rule)}.settingrow:last-child{border-bottom:none}.settingrow summary{cursor:pointer;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:11px 20px;font-size:14px;display:flex}.settingrow summary:hover{background:var(--ground)}.settingrow .skey{font-weight:500}.settingrow .sval{font-variant-numeric:tabular-nums;color:var(--ink-2)}.settingrow form{padding:4px 20px 18px}h3{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:18px 0 8px;font-size:13px}.a-building{color:#6b5a35;background:#f4efe4;border-color:#e6dcc8}.a-in_stock{color:#0f5c82;background:#dceaf1;border-color:#bcd6e4}.a-sold{color:#1f6b4e;background:#dcede4;border-color:#bcd9cb}.a-scrapped{color:#9b2c2c;background:#f2e0e0;border-color:#e0c4c4}@media (prefers-color-scheme:dark){.a-building{color:#cbb98d;background:#2b2519;border-color:#3d3423}.a-in_stock{color:#6bb8dd;background:#16333f;border-color:#1f485a}.a-sold{color:#6fc79c;background:#14291f;border-color:#1e3d2e}.a-scrapped{color:#e08585;background:#331a1a;border-color:#4a2626}}.e-draft{background:var(--ground);color:var(--ink-3)}.e-sent{color:#0f5c82;background:#dceaf1;border-color:#bcd6e4}.e-accepted,.e-converted{color:#1f6b4e;background:#dcede4;border-color:#bcd9cb}.e-declined,.e-expired{color:#9b2c2c;background:#f2e0e0;border-color:#e0c4c4}@media (prefers-color-scheme:dark){.e-sent{color:#6bb8dd;background:#16333f;border-color:#1f485a}.e-accepted,.e-converted{color:#6fc79c;background:#14291f;border-color:#1e3d2e}.e-declined,.e-expired{color:#e08585;background:#331a1a;border-color:#4a2626}}
