:root{--paper:#fbfaf8;--surface:#ffffff;--sunken:#f2efe9;--sunken-2:#e9e5dc;--ink:#1c1f24;--ink-2:#4a5058;--ink-3:#7c838d;--ink-4:#a7adb5;--line:#e2ded6;--line-2:#cfc9be;--accent:#2a78d6;--accent-soft:#e3eefb;--income:#2a78d6;--running:#1baf7a;--drawings:#eb6834;--tax:#6250d6;--transfer:#9aa1aa;--good:#0ca30c;--warn:#c2631f;--bad:#d03b3b;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sans:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,sans-serif;--r:8px;--r-s:5px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#101317;--surface:#171b20;--sunken:#1e232a;--sunken-2:#262c34;--ink:#eceae5;--ink-2:#a8afb8;--ink-3:#787f88;--ink-4:#565c64;--line:#2a3037;--line-2:#3a424b;--accent:#3987e5;--accent-soft:#1a2a3f;--income:#3987e5;--running:#199e70;--drawings:#d95926;--tax:#9085e9;--transfer:#6b727b;--good:#3fb53f;--warn:#d98a4a;--bad:#e06060;color-scheme:dark}}:root[data-theme=dark]{--paper:#101317;--surface:#171b20;--sunken:#1e232a;--sunken-2:#262c34;--ink:#eceae5;--ink-2:#a8afb8;--ink-3:#787f88;--ink-4:#565c64;--line:#2a3037;--line-2:#3a424b;--accent:#3987e5;--accent-soft:#1a2a3f;--income:#3987e5;--running:#199e70;--drawings:#d95926;--tax:#9085e9;--transfer:#6b727b;--good:#3fb53f;--warn:#d98a4a;--bad:#e06060;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14.5px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em;text-wrap:balance}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.muted{color:var(--ink-3)}.small{font-size:12.5px}.pos{color:var(--good)}.neg{color:var(--bad)}.shell{min-height:100svh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:0 max(16px,env(safe-area-inset-left)) 0 max(16px,env(safe-area-inset-right))}.topbar-in{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:6px;height:50px}.brand{font-weight:600;font-size:14px;margin-right:10px;white-space:nowrap;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:8px}.brand svg{width:20px;height:20px}.nav{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{padding:6px 11px;border-radius:var(--r-s);text-decoration:none;color:var(--ink-2);font-size:13.5px;font-weight:500;white-space:nowrap}.nav a.router-link-active{background:var(--sunken);color:var(--ink)}.nav a:hover{color:var(--ink)}.topbar .asof{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);white-space:nowrap;display:flex;align-items:center;gap:8px}.topbar .asof .dot{width:7px;height:7px;border-radius:50%;background:var(--good);display:inline-block}.topbar .asof .dot.stale{background:var(--warn)}main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-left)) calc(40px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-right))}@media(max-width:640px){main{padding-top:12px}}.gate{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:24px}.gate-box{text-align:center;max-width:22rem}.gate-box p{margin:0 0 14px;color:var(--ink-3);font-size:13.5px}.gate-err{color:var(--bad)!important}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r-s);padding:6px 11px;font-size:13px;font-weight:500;white-space:nowrap;line-height:1.3}.btn:hover:not(:disabled){background:var(--sunken)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--line-2))}.btn.sm{padding:3px 8px;font-size:12px}.btn.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.linkish{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline;font-size:inherit}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r-s);overflow:hidden;background:var(--surface)}.seg button{background:none;border:none;padding:5px 10px;font-size:12.5px;font-weight:500;color:var(--ink-2);border-right:1px solid var(--line)}.seg button:last-child{border-right:none}.seg button.on{background:var(--ink);color:var(--paper)}.seg button:hover:not(.on):not(:disabled){background:var(--sunken)}.seg button:disabled{color:var(--ink-3);opacity:.5;cursor:default}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}.card.tight{padding:12px 14px}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}@media(max-width:900px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px 11px;min-width:0}.tile .label{font-size:12px;color:var(--ink-3);margin-bottom:4px;display:flex;align-items:center;gap:6px;justify-content:space-between}.tile .value{font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile .value .cur{color:var(--ink-3);font-weight:400;font-size:.8em}.tile .sub{font-size:12px;color:var(--ink-3);margin-top:5px;line-height:1.4}.tile .owed{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:6px;padding-top:6px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-2)}.tile .owed b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.tile.hero .value{font-size:30px}@media(max-width:640px){.tile .value{font-size:21px}.tile.hero .value{font-size:25px}}.tile .value.bad{color:var(--bad)}.tile .value.warn{color:var(--warn)}.chip{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:100px;font-size:11px;font-family:var(--mono);font-weight:500;white-space:nowrap;background:var(--sunken);color:var(--ink-2);border:1px solid transparent}.chip i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.chip.income{color:var(--income)}.chip.running{color:var(--running)}.chip.drawings{color:var(--drawings)}.chip.tax{color:var(--tax)}.chip.transfer{color:var(--transfer)}.chip.on{border-color:currentColor}.chip.status{background:var(--sunken);color:var(--ink-2)}.chip.status.pipeline{color:var(--ink-2)}.chip.status.committed{color:var(--good)}.chip.status.invoiced{color:var(--accent)}.chip.status.done{color:var(--ink-3)}.chip.status.dead{color:var(--ink-4);text-decoration:line-through}.firm{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:.03em}.tl{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start}@media(max-width:1000px){.tl{grid-template-columns:minmax(0,1fr)}}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 12px 8px;position:relative}.chart-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.chart-tools .range{font-family:var(--mono);font-size:12px;color:var(--ink-2);font-weight:500;flex:1;min-width:140px}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11.5px;color:var(--ink-2);padding:8px 4px 2px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:2px;flex:none}.legend i.line{height:2px;width:14px;border-radius:0}.legend i.dash{height:0;width:14px;border-top:2px dashed currentColor;background:none}.legend .lg{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid transparent;border-radius:100px;padding:1px 7px;margin:-2px -7px;color:inherit;font:inherit;line-height:inherit}.legend .lg:hover{background:var(--sunken)}.legend .lg.on{border-color:var(--line-2);background:var(--sunken);color:var(--ink)}.legend .off{opacity:.45}.legend .lg.all{color:var(--accent);text-decoration:underline}.ro-next{display:inline-flex;gap:6px 14px;flex-wrap:wrap;font-size:11.5px}.ro-n{display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:0;color:var(--ink-2)}.ro-n:hover{color:var(--ink)}.ro-n i{width:8px;height:8px;border-radius:2px;flex:none}.ro-n b{font-family:var(--mono);font-weight:500;color:var(--ink)}.ro-nd{font-family:var(--mono);color:var(--ink-3)}.readout{height:50px;overflow:hidden;padding:2px 4px 0;margin-bottom:4px;font-size:12px;line-height:1.5;color:var(--ink-2)}.ro-main{display:flex;align-items:baseline;gap:4px 10px;flex-wrap:wrap}.ro-d{font-family:var(--mono);font-size:11.5px}.ro-b{font-family:var(--mono);font-weight:600;font-size:15px;color:var(--ink)}.ro-k{color:var(--ink-3);font-size:11.5px}.ro-io{display:inline-flex;gap:10px;margin-left:auto;font-family:var(--mono);font-size:11.5px}.ro-io b{font-weight:500;color:var(--ink)}.ro-ev{display:flex;gap:14px;white-space:nowrap;font-size:11.5px;min-width:0}.ro-e{display:inline-flex;align-items:center;gap:5px;min-width:0}.ro-e i{width:8px;height:8px;border-radius:2px;flex:none}.ro-l{overflow:hidden;text-overflow:ellipsis}.ro-e b{font-family:var(--mono);font-weight:500;color:var(--ink);flex:none}.ro-more{color:var(--ink-3);flex:none}@media(max-width:640px){.readout{height:68px}.ro-io{margin-left:0}.ro-e:nth-child(n+2),.ro-more,.ro-n:nth-child(n+3){display:none}}.list-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.list-head{padding:10px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.list-head .row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.list-head input[type=search]{flex:1;min-width:120px;padding:6px 9px;border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--paper);font-size:13px}.list-scroll{max-height:calc(100svh - 230px);overflow-y:auto;overscroll-behavior:contain}@media(max-width:1000px){.list-scroll{max-height:none}}.day{border-bottom:1px solid var(--line)}.day-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 14px 2px;position:sticky;top:0;background:var(--surface);z-index:1}.day-h .dt{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);font-weight:600}.day-h .dt.today{color:var(--accent)}.day-h .bal{font-family:var(--mono);font-size:11.5px;color:var(--ink-3)}.day-h .bal b{color:var(--ink);font-weight:600}.ev{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:0 10px;padding:6px 14px 6px 12px;cursor:pointer;align-items:start}.ev:hover{background:var(--sunken)}.ev.sel{background:var(--accent-soft)}.ev .bar{width:4px;border-radius:2px;align-self:stretch;min-height:28px}.ev .bar.income{background:var(--income)}.ev .bar.running{background:var(--running)}.ev .bar.drawings{background:var(--drawings)}.ev .bar.tax{background:var(--tax)}.ev .bar.transfer{background:var(--transfer)}.ev .l{font-size:13.5px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev .s{font-size:11.5px;color:var(--ink-3);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev .a{font-family:var(--mono);font-size:13.5px;font-weight:600;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.ev .a.in{color:var(--good)}.ev .a.out{color:var(--ink)}.ev.soft .l,.ev.soft .a{opacity:.55}.ev.soft .bar{opacity:.45}.fold{padding:4px 14px 8px 26px;font-size:12px;color:var(--ink-3)}.fold button{font-size:12px}.detail{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;position:sticky;top:62px;z-index:10;max-height:calc(100svh - 78px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 6px 24px #00000024}@media(max-width:1000px){.detail{position:fixed;inset:auto 0 0;border-radius:16px 16px 0 0;max-height:72svh;overflow-y:auto;z-index:30;box-shadow:0 -8px 30px #0003;padding-bottom:calc(16px + env(safe-area-inset-bottom))}}.detail h3{font-size:15px;margin-bottom:2px;display:flex;align-items:center;gap:8px}.detail .amt{font-size:26px;font-weight:600;letter-spacing:-.02em;margin:6px 0 2px;font-family:var(--mono)}.detail .basis{font-size:13px;color:var(--ink-2);line-height:1.55;margin:8px 0;padding:9px 11px;background:var(--sunken);border-radius:var(--r-s)}.detail dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:8px 0;font-size:12.5px}.detail dt{color:var(--ink-3)}.detail dd{margin:0}.detail .close{position:absolute;top:10px;right:12px}.scrim{display:none}@media(max-width:1000px){.scrim{display:block;position:fixed;inset:0;background:#00000040;z-index:29}}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field label{font-size:12px;color:var(--ink-2);font-weight:500}.field .hint{font-size:11.5px;color:var(--ink-3);line-height:1.4}.field input,.field select,.field textarea{padding:7px 9px;border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--paper);font-size:13.5px;width:100%;min-width:0}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}.field textarea{min-height:120px;resize:vertical;font-family:var(--mono);font-size:12.5px;line-height:1.5}.field.wide{grid-column:1/-1}input[type=range]{accent-color:var(--accent);width:100%}.range-row{display:flex;align-items:center;gap:12px}.range-row .v{font-family:var(--mono);font-size:13px;font-weight:600;min-width:72px;text-align:right}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}.note{font-size:12.5px;color:var(--ink-3);line-height:1.5;max-width:70ch}.ok{color:var(--good)}.err{color:var(--bad)}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:500;text-align:left;padding:8px 10px 6px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl td.n,.tbl th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--sunken)}.tbl-scroll{overflow-x:auto}.sec{margin-top:22px}.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.sec-h h2{font-size:16px}.sec-h .note{margin:0}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.tasks li{display:flex;gap:9px;align-items:flex-start;padding:5px 0;border-bottom:1px solid var(--line);font-size:13.5px}.tasks li:last-child{border-bottom:none}.tasks input[type=checkbox]{margin-top:4px;accent-color:var(--accent)}.tasks .when{font-family:var(--mono);font-size:11px;color:var(--ink-3);white-space:nowrap;margin-left:auto}.tasks .done span{text-decoration:line-through;color:var(--ink-3)}.files li{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}.files li:last-child{border-bottom:none}.files img{width:18px;height:18px;flex:none}.files a{text-decoration:none;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.files .meta{font-family:var(--mono);font-size:11px;color:var(--ink-3);white-space:nowrap}.crumbs{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--ink-3);flex-wrap:wrap;margin-bottom:6px}.crumbs button{background:none;border:none;padding:0;color:var(--accent);font-size:12.5px}.banner{border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:var(--r);background:var(--surface);padding:10px 14px;margin-bottom:12px;font-size:13px;color:var(--ink-2)}.banner.bad{border-left-color:var(--bad)}.banner.info{border-left-color:var(--accent)}.banner ul{margin:6px 0 0;padding-left:18px}.banner li{overflow-wrap:anywhere}.empty{text-align:center;color:var(--ink-3);padding:30px 16px;font-size:13.5px}.chip.wi{background:var(--accent-soft);color:var(--accent);border-color:transparent;font-weight:600;vertical-align:middle;padding:0 7px;line-height:16px}.wi-bar{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:28;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 8px;max-width:min(96vw,920px);background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:12px;box-shadow:0 8px 30px #00000047;font-size:12.5px}.wi-bar .muted{color:var(--paper);opacity:.65}.wi-bar .chip{background:#7f7f7f47;color:var(--paper);border-color:transparent;cursor:pointer;font-size:11.5px;padding:2px 9px}.wi-bar .chip:hover{background:#7f7f7f73}.wi-bar .linkish{color:var(--paper)}.ev.off .l,.ev.off .a{text-decoration:line-through;opacity:.5}.ev.off .bar{opacity:.3}.ev.wi{grid-template-columns:4px minmax(0,1fr) auto auto;cursor:default;padding:6px 0;align-items:center}.ev.wi:hover{background:none}.seg.sm button{padding:3px 8px;font-size:11.5px}.tile.wi{border-color:var(--accent)}@media(max-width:640px){.tile .chip.wi{display:none}}.rrow{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.rrow:last-child{border-bottom:none}.rrow .bar{width:4px;align-self:stretch;min-height:30px;border-radius:2px;flex:none}.rrow .bar.drawings{background:var(--drawings)}.rrow .bar.tax{background:var(--tax)}.pill{--c:var(--ink-3);display:inline-block;padding:2px 9px;border-radius:100px;font-size:12px;font-weight:500;white-space:nowrap;border:1px solid transparent;background:color-mix(in srgb,var(--c) 14%,transparent);color:color-mix(in srgb,var(--c) 75%,var(--ink))}.pill.st-pipeline{--c:var(--ink-2)}.pill.st-New{--c:var(--accent)}.pill.st-OnHold{--c:var(--warn)}.pill.st-committed{--c:var(--good)}.pill.st-invoiced{--c:var(--accent)}.pill.st-Overdue{--c:var(--bad)}.pill.st-done{--c:var(--ink-3)}.pill.st-dead{--c:var(--ink-4);text-decoration:line-through}.pill.lk-Unknown{--c:var(--ink-3)}.pill.lk-VeryUnlikely{--c:var(--bad)}.pill.lk-Unlikely{--c:color-mix(in srgb,var(--bad) 45%,var(--warn))}.pill.lk-Possible{--c:var(--warn)}.pill.lk-Likely{--c:color-mix(in srgb,var(--good) 55%,var(--warn))}.pill.lk-VeryLikely{--c:var(--good)}.pill.lk-Confirmed{--c:var(--good);font-weight:600}.cellpop .lkopt{display:flex;justify-content:space-between;gap:8px;cursor:pointer;text-align:left}.cellpop .lkopt span{opacity:.75}.board{overflow-x:auto}.board table{border-collapse:collapse;font-size:13px;min-width:1100px;width:100%}.board th{font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:500;text-align:left;padding:8px 8px 6px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface)}.board th button{background:none;border:none;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}.board th button:hover{color:var(--ink)}.board th.n{text-align:right}.board td{padding:3px 4px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}.board td.n{text-align:right}.board tbody tr:not(.gh):hover td{background:var(--sunken)}.board .c-job{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);padding-left:12px}.board .c-name{position:sticky;left:0;z-index:1;background:var(--surface);max-width:240px;overflow:hidden;text-overflow:ellipsis;padding-left:8px}.board .c-name a{color:var(--ink);font-weight:500;text-decoration:none}.board .c-name a:hover{text-decoration:underline}.board tr.dead .c-name a{color:var(--ink-3)}.board .gh td{padding:12px 8px 4px;border-bottom:1px solid var(--line-2);background:var(--surface)}.board .gh button{background:none;border:none;padding:0;display:flex;gap:8px;align-items:baseline;font-size:13px;color:var(--ink)}.board .gh .caret{color:var(--ink-3);width:10px}.board .gh .gl{font-weight:600}.board .gh .gl.committed{color:var(--good)}.board .gh .gl.invoiced{color:var(--accent)}.cell{background:none;border:1px solid transparent;border-radius:var(--r-s);padding:4px 6px;font:inherit;color:inherit;text-align:inherit;width:100%;min-height:28px;display:flex;align-items:center;gap:6px;justify-content:inherit}td.n .cell{justify-content:flex-end}.cell:hover{border-color:var(--line-2);background:var(--surface)}.cell.pill{width:auto;min-height:0;display:inline-block;background:color-mix(in srgb,var(--c) 14%,transparent);border-color:transparent}.cell.pill:hover{border-color:color-mix(in srgb,var(--c) 45%,transparent)}.cell.faint{color:var(--ink-4)}.cell .add{color:var(--ink-4);opacity:0;font-size:14px;line-height:1}tr:hover .cell .add,.cell:focus .add{opacity:1}.cell.late{color:var(--bad)}.cell.dates{flex-direction:column;align-items:flex-start;gap:3px;font-size:12.5px}.prog{display:block;width:100%;height:3px;border-radius:2px;background:var(--sunken-2);overflow:hidden}.prog i{display:block;height:100%;background:var(--ink-3)}.cell.late .prog i{background:var(--bad)}.c-notes .cell{max-width:170px}.c-notes .nt{overflow:hidden;text-overflow:ellipsis;color:var(--ink-2);font-size:12.5px}.billed{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-3);padding:0 6px}.billed .track{position:relative;width:54px;height:6px;border-radius:3px;background:var(--sunken-2);overflow:hidden}.billed .track i{position:absolute;left:0;top:0;bottom:0}.billed .inv{background:color-mix(in srgb,var(--good) 40%,transparent)}.billed .pd{background:var(--good)}.nx{font-size:12.5px;padding:0 6px}.lnk{display:flex;align-items:center;gap:2px;padding-left:4px;font-size:12.5px}.lnk .ico{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--r-s);color:var(--ink-3)}.lnk .ico:hover{background:var(--surface);color:var(--accent);box-shadow:inset 0 0 0 1px var(--line-2)}.lnk .ico svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}.lnk .cell{width:auto;padding:2px 4px;min-height:0}.plain{background:none;border:none;padding:0;color:inherit;font:inherit;text-align:left}.plain:hover{text-decoration:underline}.cap-card{padding:10px 14px}.cap-t{font-weight:600;font-size:13.5px}.cap-key{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.cap-key .k{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:6px}.k.f{background:var(--ink-3)}.k.p{background:color-mix(in srgb,var(--ink-3) 30%,transparent)}.k.x{background:var(--accent)}.k.o{background:var(--bad)}.todo-list{list-style:none;margin:0;padding:0 14px}.todo-list .tp{display:block;text-decoration:none}.todo-list .tp:hover{text-decoration:underline}.capgrid{margin-top:8px}.capgrid table{border-collapse:separate;border-spacing:3px}.capgrid th{font-family:var(--mono);font-size:10px;color:var(--ink-3);font-weight:500;white-space:nowrap;padding:0 0 2px;text-align:center}.capgrid th.span span,.capgrid td.span .cc{box-shadow:inset 0 -2px 0 var(--accent)}.capgrid th.span span{color:var(--ink)}.capgrid th.who{text-align:left;font-family:var(--sans);font-size:12.5px;color:var(--ink);padding-right:8px;position:sticky;left:0;background:var(--surface);z-index:1}.capgrid th.who small{display:block;font-family:var(--mono);font-size:10px;color:var(--ink-3);font-weight:400}.capgrid td{padding:0}.cc{position:relative;width:44px;height:34px;border-radius:4px;border:1px solid var(--line);background:var(--paper);overflow:hidden;padding:0;display:block}.cc i{position:absolute;left:0;right:0;bottom:0;display:block}.cc .p{background:color-mix(in srgb,var(--ink-3) 22%,transparent)}.cc .f{background:color-mix(in srgb,var(--ink-3) 55%,transparent)}.cc .x{background:var(--accent);opacity:.85}.cc b{position:relative;font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--ink)}.cc.over{border-color:var(--bad)}.cc.over b{color:var(--bad)}.cc.tight{border-color:color-mix(in srgb,var(--warn) 60%,var(--line))}.cc:hover{border-color:var(--ink-3)}.cellpop{position:fixed;z-index:40;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:0 10px 30px #0000002e;padding:10px;font-size:13px;max-height:70svh;overflow-y:auto}.cellpop .pl{display:block;font-size:12px;color:var(--ink-2);font-weight:500;margin-bottom:6px}.cellpop input:not([type=checkbox]),.cellpop select,.cellpop textarea{width:100%;padding:6px 8px;border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--paper);font-size:13px;min-width:0;color:var(--ink)}.cellpop input:focus,.cellpop textarea:focus,.cellpop select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}.cellpop .pf{display:grid;gap:8px}.cellpop .pf label{display:grid;gap:3px;font-size:12px;color:var(--ink-2)}.cellpop .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cellpop .pa{display:flex;justify-content:flex-end}.cellpop .dl{grid-template-columns:1fr 90px!important;align-items:center}.cellpop .opts{display:flex;flex-direction:column;gap:4px;align-items:stretch}.cellpop .opts .pill{text-align:left;cursor:pointer}.cellpop .opts .cur{border-color:currentColor}.cellpop .opt{display:flex;justify-content:space-between;gap:8px;background:none;border:1px solid transparent;border-radius:var(--r-s);padding:5px 8px;text-align:left;color:var(--ink)}.cellpop .opt:hover{background:var(--sunken)}.cellpop .opt.cur{border-color:var(--line-2);background:var(--sunken)}.cellpop .tasks{list-style:none;margin:0 0 8px;padding:0}.cellpop .addtodo{border-top:1px solid var(--line);padding-top:8px}.cellpop .ci{display:grid;grid-template-columns:1fr auto;gap:0 8px;padding:5px 0;border-bottom:1px solid var(--line)}.cellpop .ci:last-child{border-bottom:none}.cellpop .ci a{color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cellpop .ci b{grid-row:span 2;align-self:center;font-family:var(--mono)}textarea.dump{min-height:200px;resize:vertical;font-family:var(--sans);font-size:13.5px;line-height:1.5}.field textarea.notes{min-height:220px;font-family:var(--sans);font-size:13.5px}.days-row{display:flex;flex-wrap:wrap;gap:8px 14px}.days-row label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}.days-row input{width:80px!important}input.bare,select.bare{border:none;background:none;padding:0;font:inherit;color:inherit;width:100%}.tasks select.who{width:auto;max-width:110px;font-size:12px;color:var(--ink-3)}.tasks .when-in{width:118px;font-family:var(--mono);font-size:11px;color:var(--ink-3)}@media(max-width:640px){.tasks li{flex-wrap:wrap}.tasks .when-in{width:110px}}.board .c-name{white-space:normal;min-width:170px;line-height:1.3}.board td:nth-child(3) .cell{max-width:150px;overflow:hidden;text-overflow:ellipsis}@media(max-width:640px){.board .c-job{display:none}.board .c-name{min-width:140px;max-width:150px;box-shadow:1px 0 0 var(--line)}}
