:root{--bg:#080b0f;--panel:#0b0f14;--panel-2:#101823;--ink:#e8eef5;--muted:#8a9bad;--dim:#4a5a6b;--dimmer:#2b3745;--line:#18222d;--line-strong:#24384b;--good:#6ee7a8;--income:#6ee7a8;--warn:#f0a35e;--neg:#ff6b5b;--accent:#6ee7a8;--focus:#6ee7a8;--cash-bg:#0e141b;--pl-bg:#101823;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:ui-sans-serif,system-ui,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-size:14px}main{padding:24px clamp(12px,3vw,32px) 48px}header h1{letter-spacing:-.01em;margin:0;font-size:20px}.sub,footer p{color:var(--muted);margin:4px 0 16px;font-size:13px}.pager{align-items:center;gap:12px;margin-bottom:10px;display:flex}.pager button{border:1px solid var(--line-strong);background:var(--panel);cursor:pointer;font:inherit;border-radius:6px;padding:5px 10px}.pager button:disabled{opacity:.4;cursor:default}.pager span{color:var(--muted);font-variant-numeric:tabular-nums}.scroll{border:1px solid var(--line);border-radius:8px;overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;background:var(--panel);padding:4px 8px}thead th{z-index:3;background:var(--panel);border-bottom:1px solid var(--line-strong);font-weight:600;position:sticky;top:0}.num{text-align:right;font-variant-numeric:tabular-nums}.sticky{z-index:2;position:sticky}.rowhead{min-width:130px;font-weight:500;left:0}.recurhead{border-right:1px solid var(--line-strong);min-width:250px;left:130px}thead .rowhead,thead .recurhead{z-index:4}tbody tr.income th{color:var(--income)}.cell{text-align:right;width:68px;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:4px;padding:3px 5px}.cell::placeholder{color:var(--muted);opacity:.65}.cell:hover{border-color:var(--line)}.cell:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:#0000}.cell.overridden{color:#00f;font-weight:600}.recur{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.recur select,.recur input{font:inherit;border:1px solid var(--line-strong);background:var(--panel);border-radius:4px;padding:2px 4px}.recur input[type=number]{width:58px}.recur input[type=text]{width:92px}.recur label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}tfoot .derived th,tfoot .derived td{border-top:1px solid var(--line-strong);font-weight:600}tfoot .cash th,tfoot .cash td{background:var(--cash-bg)}tfoot .pl th,tfoot .pl td{background:var(--pl-bg)}tfoot .total,thead .total{border-left:1px solid var(--line-strong)}.overview{margin:4px 0 22px}.stats{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.stat{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-width:132px;padding:8px 14px}.stat-label{color:var(--muted);font-size:12px;display:block}.stat strong{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:19px}.stat strong.neg{color:var(--neg)}.stat-sub{color:var(--muted);margin-left:6px;font-size:12px}.chart{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:100%;height:auto;display:block}.axis-label{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.bar{fill:#24384b}.bar.neg{fill:#5e2b28}.trough{fill:var(--neg);stroke:var(--bg);stroke-width:2px}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:6px 2px 0;font-size:12px;display:flex}.key{border-radius:2px;width:14px;height:3px;margin-left:10px;display:inline-block}.key:first-child{margin-left:0}.bar-key{background:#24384b;height:10px}.reset{border:1px solid var(--line-strong);background:var(--panel);font:inherit;cursor:pointer;border-radius:6px;padding:5px 10px}.scenarios{margin:0 0 14px}.scenario-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.scenario-row label{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.scenario-row select,.scenario-row button{font:inherit;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:6px;padding:5px 10px}.scenario-row button.danger{color:var(--neg);border-color:#4a2724}.badge{color:var(--good);border:1px solid var(--line-strong);background:#6ee7a81f;border-radius:999px;padding:3px 9px;font-size:12px}.badge.muted{color:var(--muted);border-color:var(--line);background:0 0}.scenario-controls{border:1px dashed var(--line-strong);border-radius:8px;flex-wrap:wrap;gap:8px 14px;margin-top:10px;padding:10px 12px;display:flex}.adj{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:inline-flex}.adj input{width:62px;font:inherit;text-align:right;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);border-radius:4px;padding:2px 4px}.adj .unit{color:var(--muted)}.cell[readonly]{color:var(--muted);cursor:default}.recur select:disabled,.recur input:disabled{opacity:.55;cursor:default}.import{margin:0 0 16px}.dropzone{border:1px dashed var(--line-strong);background:var(--panel-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.filebtn{border:1px solid var(--line-strong);background:var(--panel);cursor:pointer;border-radius:6px;padding:6px 12px;font-weight:500;display:inline-block;position:relative;overflow:hidden}.filebtn input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.import-ok,.import-err{margin:8px 2px 0;font-size:13px}.import-ok{color:var(--ink)}.import-ok .skipped{color:var(--muted)}.import-err{color:var(--neg)}.cloudwrap{margin:0 0 14px}.signedout{margin:0}.linkish{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.linkish.danger{color:var(--neg)}.auth{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:8px;max-width:340px;padding:14px 16px;display:flex}.auth h2{margin:0;font-size:16px}.auth-sub{color:var(--muted);margin:0 0 4px;font-size:12px}.auth label{color:var(--muted);flex-direction:column;gap:3px;font-size:13px;display:flex}.auth input{font:inherit;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);border-radius:6px;padding:7px 9px}.auth button[type=submit]{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#05130c;cursor:pointer;border-radius:6px;padding:8px 12px;font-weight:500}.auth button[type=submit]:disabled{opacity:.6;cursor:default}.auth-error{color:var(--neg);margin:0;font-size:13px}.cloud-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.cloud-row button,.cloud-row select{font:inherit;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:6px;padding:5px 10px}.cloud-row .linkish{background:0 0;border:none;padding:0}.cloud-row label{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.cloud-ok{color:var(--income);margin:6px 0 0;font-size:13px}.cloud-err{color:var(--neg);margin:6px 0 0;font-size:13px}.cloud-manage{color:var(--muted);margin-top:8px;font-size:13px}.cloud-manage ul{margin:6px 0 0;padding-left:18px}.cloud-manage li{align-items:center;gap:10px;display:flex}.suggestions{border:1px solid var(--line-strong);background:var(--panel-2);border-radius:8px;margin:0 0 14px;padding:12px 14px}.sugg-head{margin:0 0 8px;font-size:13px}.suggestions ul{margin:0 0 10px;padding-left:18px;font-size:13px}.suggestions li{margin:2px 0}.suggestions .kept{color:var(--muted)}.sugg-actions{align-items:center;gap:12px;display:flex}.sugg-actions button:first-child{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#05130c;cursor:pointer;border-radius:6px;padding:6px 12px;font-weight:500}.actuals{margin:0 0 12px}.actuals-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.actuals-row label{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.actuals-row select{font:inherit;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);border-radius:6px;padding:4px 8px}.switch{cursor:pointer}.variance{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;flex-wrap:wrap;gap:18px;margin-top:8px;padding:8px 12px;font-size:13px;display:flex}.variance strong{color:var(--ink);font-variant-numeric:tabular-nums}.variance .better strong{color:var(--income)}.variance .worse strong{color:var(--neg)}.cell.actual{border-color:var(--line);background:#1c1a14}.cell.actual.better{color:var(--income);font-weight:600}.cell.actual.worse{color:var(--neg);font-weight:600}.share{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.share h3{margin:0 0 6px;font-size:13px;font-weight:600}.share-list{margin:0 0 10px;padding:0;font-size:13px;list-style:none}.share-list li{align-items:center;gap:8px;padding:2px 0;display:flex}.role-tag{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 7px;font-size:11px}.role-tag.pending{color:var(--warn);background:#2a2313;border-color:#4a3c1c}.share-form{flex-wrap:wrap;gap:8px;display:flex}.share-form input,.share-form select,.share-form button{font:inherit;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);border-radius:6px;padding:5px 9px}.share-form button{cursor:pointer;font-weight:500}.share-error{color:var(--neg);margin:6px 0 0;font-size:13px}.import-actuals{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.filebtn.small{padding:4px 10px;font-size:13px;font-weight:400}.unmatched{background:#1b1710;border:1px solid #4a3a24;border-radius:8px;width:100%;margin-top:8px;padding:8px 12px;font-size:13px}.unmatched summary{cursor:pointer;color:var(--ink)}.unmatched ul{color:var(--muted);margin:6px 0 0;padding-left:18px}.comments{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.comments h3{align-items:center;gap:8px;margin:0 0 8px;font-size:13px;font-weight:600;display:flex}.count{background:var(--accent);color:#05130c;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.comment-form{flex-direction:column;gap:6px;max-width:560px;display:flex}.comment-form textarea{font:inherit;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);resize:vertical;border-radius:6px;padding:7px 9px}.comment-pin{flex-wrap:wrap;gap:8px;display:flex}.comment-pin select,.comment-pin input,.comment-pin button{font:inherit;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);border-radius:6px;padding:5px 9px}.comment-pin input{width:90px}.comment-pin button{cursor:pointer;font-weight:500}.comment-list{max-width:560px;margin:10px 0 0;padding:0;list-style:none}.comment-list li{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin-bottom:6px;padding:8px 10px}.comment-list li.resolved{opacity:.6}.comment-meta{color:var(--muted);align-items:baseline;gap:8px;font-size:12px;display:flex}.comment-meta strong{color:var(--ink);font-size:13px}.pin{background:var(--panel-2);border-radius:999px;padding:1px 7px;font-size:11px}.comment-list p{white-space:pre-wrap;margin:4px 0 6px;font-size:13px}.comment-actions{gap:12px;font-size:12px;display:flex}.shell{height:100vh;display:flex;overflow:hidden}.rail{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:216px;display:flex}.rail-head{border-bottom:1px solid var(--line);padding:14px 14px 12px}.brand{color:var(--good);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:12px;font-size:12px;font-weight:600;display:flex}.forecast-switch{text-align:left;width:100%;font:inherit;cursor:pointer;background:var(--panel-2);border:1px solid var(--line-strong);color:var(--ink);border-radius:4px;padding:8px 10px}.fs-name{font-size:13px;font-weight:500;display:block}.fs-meta{color:var(--dim);font-size:10px;font-family:var(--mono);margin-top:2px;display:block}.rail-nav{padding:8px 8px 4px}.nav-item{width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:4px;align-items:center;gap:10px;margin-bottom:1px;padding:8px 10px;font-size:13px;display:flex}.nav-item:hover{background:var(--panel-2);color:var(--ink)}.nav-item.on{background:var(--panel-2);color:var(--ink);box-shadow:inset 2px 0 0 var(--good)}.nav-item.on svg{color:var(--good)}.nav-badge{font-style:normal;font-family:var(--mono);background:var(--panel);color:var(--dim);border-radius:3px;margin-left:auto;padding:1px 6px;font-size:10px}.nav-item.on .nav-badge{color:var(--good);background:#6ee7a824}.rail-months{border-top:1px solid var(--line);margin-top:6px;padding:6px 8px 10px}.rail-label{font-family:var(--mono);letter-spacing:.14em;color:var(--dim);text-transform:uppercase;padding:6px 10px 8px;font-size:10px}.month-chips{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;display:grid}.chip{font-family:var(--mono);cursor:pointer;border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:3px;padding:5px 0;font-size:10px}.chip:hover{border-color:var(--line-strong);color:var(--ink)}.chip.tight{color:var(--neg);border-color:#ff6b5b59}.rail-foot{border-top:1px solid var(--line);color:var(--dim);margin-top:auto;padding:12px 14px;font-size:12px}.sync.ok{color:var(--good)}.sync.err{color:var(--neg)}.sync.dim{color:var(--dim)}.main{flex-direction:column;flex-grow:1;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:14px;padding:10px 20px;display:flex}.crumbs{align-items:center;gap:8px;font-size:13px;display:flex}.crumbs .sep{color:var(--dimmer);margin:0 2px;font-style:normal}.crumb{font:inherit;cursor:pointer;color:var(--dim);background:0 0;border:none;padding:0}.crumb:hover{color:var(--ink)}.crumb.here{color:var(--ink);cursor:default;font-weight:500}.searchbtn{background:var(--panel-2);border:1px solid var(--line-strong);cursor:pointer;width:340px;color:var(--dim);font:inherit;border-radius:4px;align-items:center;gap:9px;margin-left:auto;padding:7px 11px;font-size:13px;display:flex}.searchbtn:hover{border-color:var(--good);color:var(--muted)}.searchbtn span{text-align:left;flex-grow:1}.searchbtn kbd,.palette kbd{font-family:var(--mono);border:1px solid var(--line-strong);color:var(--dim);border-radius:3px;padding:1px 5px;font-size:10px}.topactions{gap:8px;display:flex}.topactions button{font:inherit;cursor:pointer;border:1px solid var(--line-strong);color:var(--muted);background:0 0;border-radius:4px;padding:7px 12px;font-size:13px}.topactions button:hover{color:var(--ink);border-color:var(--muted)}.topactions button.primary{background:var(--good);border-color:var(--good);color:#05130c;font-weight:600}.topactions button:disabled{opacity:.5;cursor:default}.content{flex-grow:1;padding:20px 24px 48px;overflow:auto}.content>*{max-width:1320px;margin-left:auto;margin-right:auto}.mention{color:var(--good);background:#6ee7a81a;border-radius:3px;padding:0 3px;font-style:normal;font-weight:600}.kpi-note{color:var(--dim);text-align:left;background:0 0;border:none;padding:0;font-size:11px;line-height:1.35}button.mention{color:var(--good);background:#6ee7a81a;border-radius:3px;padding:0 3px;font-style:normal;font-weight:600}.dupe{flex-wrap:wrap;gap:16px;padding:4px 0 2px;font-size:13px;display:flex}.history{margin:0;padding:0;list-style:none}.history li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:9px 16px;font-size:13px;display:flex}.history li:last-child{border-bottom:none}.history li.now{background:var(--panel-2)}.hv{font-family:var(--mono);color:var(--dim);width:34px;font-size:11px}.hwhen{font-family:var(--mono);color:var(--muted);width:108px;font-size:11.5px}.hwho{color:var(--muted);text-overflow:ellipsis;flex-grow:1;min-width:0;overflow:hidden}.hwhat{color:var(--dim);font-size:12px}.hnow{color:var(--good);font-size:12px}.empty.err{color:var(--neg)}.alertbar{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:flex}.alerttoggle{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.alerttoggle input{width:14px;height:14px;accent-color:var(--good);margin:0}.alertfig{font:inherit;font-family:var(--mono);background:var(--panel-2);border:1px solid var(--line-strong);width:100px;color:var(--ink);border-radius:4px;padding:4px 8px;font-size:13px}.alertfig:disabled{color:var(--dim);background:0 0}.rowgroup{font:inherit;border:1px dashed var(--line);width:62px;color:var(--muted);background:0 0;border-radius:3px;padding:2px 5px;font-size:10.5px}.rowgroup:focus{border-style:solid;border-color:var(--focus);color:var(--ink)}.rowgroup::placeholder{color:var(--dimmer)}.rowvat{cursor:pointer;font-family:var(--mono);letter-spacing:.08em;color:var(--dim);border:1px solid var(--line);border-radius:3px;align-items:center;gap:3px;padding:2px 5px;font-size:9.5px;display:inline-flex}.rowvat.on{color:var(--good);border-color:#6ee7a859}.rowvat input{width:11px;height:11px;accent-color:var(--good);margin:0}.rowmove{gap:1px;display:inline-flex}.rowmove button{font:inherit;cursor:pointer;width:18px;color:var(--dim);border:1px solid var(--line);background:0 0;border-radius:3px;padding:3px 0;font-size:11px;line-height:1}.rowmove button:hover{color:var(--ink);border-color:var(--line-strong)}.panel-head.sub{border-top:1px solid var(--line)}.setrow .unit{color:var(--dim);align-self:center;font-size:12px}.kpi-note{cursor:pointer;text-underline-offset:2px;text-decoration:underline}button.kpi-note:hover{color:var(--muted)}.headline{border-left:2px solid var(--line-strong);padding:2px 0 2px 16px}.headline.bad{border-left-color:var(--neg)}.headline.warn{border-left-color:var(--warn)}.headline.ok{border-left-color:var(--good)}.headline-lead{letter-spacing:-.018em;text-wrap:pretty;max-width:44ch;margin:0;font-size:26px;font-weight:400;line-height:1.32}.headline-lead em{font-style:normal;font-weight:600}.headline.bad .headline-lead em{color:var(--neg)}.headline.warn .headline-lead em{color:var(--warn)}.headline-why{color:var(--muted);text-wrap:pretty;max-width:62ch;margin:9px 0 0;font-size:14px;line-height:1.55}.room{flex-direction:column;gap:18px;display:flex}.kpis{grid-template-columns:1.35fr 1fr 1fr 1fr;gap:12px;display:grid}.kpi{text-align:left;font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;flex-direction:column;gap:6px;padding:13px 15px;display:flex}button.kpi{cursor:pointer}button.kpi:hover{border-color:var(--line-strong)}.kpi.alarm{border-color:#ff6b5b59;box-shadow:0 0 0 3px #ff6b5b0f}.kpi-label{font-family:var(--mono);letter-spacing:.12em;color:var(--dim);text-transform:uppercase;font-size:10px}.kpi strong{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:25px;font-weight:500;line-height:1}.kpis .kpi:first-child strong{letter-spacing:-.025em;font-size:40px}.kpis .kpi:first-child{padding:16px 18px}.kpi strong.neg{color:var(--neg)}.kpi strong.warn{color:var(--warn)}.kpi strong.good{color:var(--good)}.kpi-sub{color:var(--dim);font-size:12px}.safety{align-items:center;gap:6px;display:inline-flex}.safety input{width:78px;font:inherit;font-family:var(--mono);background:var(--panel-2);border:1px solid var(--line-strong);color:var(--ink);text-align:right;border-radius:3px;padding:2px 6px;font-size:12px}.panel{border:1px solid var(--line);background:var(--panel);border-radius:6px}.panel-head{border-bottom:1px solid var(--line);align-items:baseline;gap:12px;padding:13px 18px;display:flex}.panel-head h2{letter-spacing:-.005em;margin:0;font-size:14px;font-weight:600}.panel-head .hint{margin-left:auto}.hint{color:var(--dim);font-size:12px}.hint.pad{margin:0;padding:10px 2px}.empty{color:var(--muted);margin:0;padding:16px;font-size:13px;line-height:1.5}.chartpanel .chart{background:0 0;border:none;width:100%;height:auto;padding:14px 6px 0;display:block}.band-hit{fill:#0000;cursor:pointer}.band:hover .band-hit{fill:#6ee7a80d}.band.tight .band-hit{fill:#ff6b5b12}.band-line{stroke:#141d27;stroke-width:1px}.band-label{fill:var(--dim);font-size:10px;font-family:var(--mono)}.band.tight .band-label{fill:var(--neg)}.safety-line{stroke:var(--warn);stroke-width:1px;stroke-dasharray:4 4;opacity:.7}.line{fill:none;stroke:var(--good);stroke-width:2px;stroke-linejoin:round}.axis-zero{stroke:var(--line-strong);stroke-width:1px}.peak{fill:var(--good);stroke:var(--bg);stroke-width:2px}.legend{color:var(--dim);gap:18px;padding:4px 16px 12px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.key{border-radius:2px;width:14px;height:3px;display:inline-block}.line-key{background:var(--good)}.safety-key{background:var(--warn)}.trough-key{background:var(--neg);border-radius:50%;width:8px;height:8px}.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.watch{margin:0;padding:0;list-style:none}.watch-row{width:100%;font:inherit;cursor:pointer;border:none;border-bottom:1px solid var(--line);color:var(--ink);background:0 0;align-items:center;gap:12px;padding:11px 16px;display:flex}.watch-row:hover,.watch-row.open{background:var(--panel-2)}.watch-row .wk{font-family:var(--mono);color:var(--dim);text-align:left;width:46px;font-size:12px}.watch-row .why{text-align:left;flex-grow:1;font-size:13px}.watch-row .fig{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--warn);font-size:14px}.watch-row .fig.neg{color:var(--neg)}.watch-detail{background:var(--cash-bg);border-bottom:1px solid var(--line);padding:6px 16px 14px 62px}.watch-when{color:var(--dim);margin-bottom:6px;font-size:12px}.watch-line{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:4px 0;font-size:12px;display:flex}.watch-detail .linkish{margin-top:10px;font-size:12px}.spend{margin:0;padding:10px 16px;list-style:none}.spend li{align-items:center;gap:12px;padding:5px 0;font-size:13px;display:flex}.spend-name{flex-shrink:0;width:116px}.spend-bar{background:var(--panel-2);border-radius:2px;flex-grow:1;height:14px;overflow:hidden}.spend-bar i{background:var(--line-strong);height:100%;display:block}.spend-fig{text-align:right;width:76px;color:var(--muted)}.spend-pct{text-align:right;width:50px;color:var(--dim);font-size:12px}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.num.good{color:var(--good)}.num.neg{color:var(--neg)}.num.dim{color:var(--dimmer)}.week{flex-direction:column;gap:18px;display:flex}.week-head{flex-wrap:wrap;align-items:flex-end;gap:34px;display:flex}.week-tag{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:8px;font-size:10px}.week-tag.alarm{color:var(--neg)}.week-figure{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:46px;font-weight:500;line-height:.95}.week-figure.neg{color:var(--neg)}.week-sub{color:var(--muted);margin-top:8px;font-size:13px}.week-flow{gap:28px;margin-left:auto;display:flex}.week-flow div{text-align:right}.week-flow span{font-family:var(--mono);letter-spacing:.1em;color:var(--dim);text-transform:uppercase;margin-bottom:6px;font-size:10px;display:block}.week-flow strong{font-size:20px;font-weight:500}.week-nav{gap:8px;display:flex}.week-nav button{font:inherit;cursor:pointer;border:1px solid var(--line-strong);color:var(--muted);background:0 0;border-radius:4px;padding:5px 11px;font-size:12px}.week-nav button:disabled{opacity:.35;cursor:default}.waterfall{width:100%;height:auto;padding:12px 8px 0;display:block}.wf rect{fill:var(--line-strong)}.wf.in rect{fill:var(--good)}.wf.out rect{fill:#31485e}.wf.end rect{fill:var(--warn)}.wf-amount{font-family:var(--mono);fill:var(--muted);font-size:11px}.wf.in .wf-amount{fill:var(--good)}.wf.end .wf-amount{fill:var(--warn)}.wf-name{fill:var(--dim);font-size:10px}.wf-base{stroke:var(--line);stroke-width:1px}table.lines{border-collapse:collapse;width:100%;font-size:13px}table.lines th{text-align:left;border-bottom:1px solid var(--line);white-space:normal;background:0 0;padding:7px 16px;font-weight:500}table.lines td{border-bottom:1px solid var(--line);background:0 0;padding:7px 10px}table.lines tr.income th{color:var(--good)}table.lines td.rule{color:var(--dim);font-size:12px}table.lines td:last-child{padding-right:16px}.dim{color:var(--dimmer)}.fixes{margin:0;padding:10px 16px;list-style:none}.fixes button{width:100%;font:inherit;text-align:left;cursor:pointer;background:var(--panel-2);border:1px solid var(--line);color:var(--ink);border-radius:4px;align-items:center;gap:12px;margin-bottom:4px;padding:9px 11px;font-size:13px;display:flex}.fixes button:hover{border-color:var(--good)}.fixes button:disabled{opacity:.5;cursor:default}.fixes button span{flex-grow:1}.palette-wrap{z-index:50;background:#030508b8;justify-content:center;align-items:flex-start;padding-top:76px;display:flex;position:fixed;inset:0}.palette{border:1px solid var(--line-strong);background:#0d131a;border-radius:8px;flex-direction:column;width:min(720px,100vw - 40px);max-height:70vh;display:flex;box-shadow:0 30px 80px #000000a6}.palette-input{border-bottom:1px solid var(--line);color:var(--good);align-items:center;gap:12px;padding:14px 18px;display:flex}.palette-input input{font:inherit;color:var(--ink);background:0 0;border:none;flex-grow:1;font-size:16px}.palette-input input:focus{outline:none}.palette-count{font-family:var(--mono);color:var(--dim);font-size:11px}.palette-results{padding-bottom:6px;overflow:auto}.palette-group{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:12px 18px 5px;font-size:10px}.palette-row{width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:none;align-items:center;gap:12px;padding:8px 18px;display:flex}.palette-row.on{background:var(--panel-2);box-shadow:inset 2px 0 0 var(--good)}.pr-main{flex-grow:1;min-width:0}.pr-title{font-size:14px;display:block}.pr-sub{color:var(--dim);margin-top:2px;font-size:12px;display:block}.pr-fig{color:var(--muted);font-size:13px}.pr-fig.warn{color:var(--warn)}.pr-fig.neg{color:var(--neg)}.palette-foot{border-top:1px solid var(--line);font-family:var(--mono);color:var(--dim);text-transform:uppercase;gap:16px;padding:9px 18px;font-size:10px;display:flex}.palette-foot .grow{flex-grow:1}.periodbtn{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:0 2px}.periodbtn:hover{color:var(--good);text-decoration:underline}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.settings-panel{margin-top:14px}.settings-actions{padding:0 16px 16px}.settings-actions .reset{font:inherit;cursor:pointer;border:1px solid var(--line-strong);color:var(--muted);background:0 0;border-radius:4px;padding:7px 12px;font-size:13px}.settings-actions .reset:hover{color:var(--neg);border-color:var(--neg)}.invite-banner{border:1px solid var(--line-strong);background:var(--panel-2);border-radius:4px;margin:0 0 14px;padding:10px 14px;font-size:13px}.invite-banner.ok{color:var(--good);border-color:#6ee7a859}.invite-banner.err{color:var(--neg);border-color:#ff6b5b59}.auth-links{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.auth-note{color:var(--good);margin:0;font-size:13px}.month{flex-direction:column;gap:18px;display:flex}.month-strip{flex-wrap:wrap;gap:3px;display:flex}.mstrip{font-family:var(--mono);cursor:pointer;border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:3px;padding:5px 11px;font-size:11px}.mstrip:hover{border-color:var(--line-strong);color:var(--ink)}.mstrip.on{background:var(--panel-2);color:var(--good);border-color:var(--line-strong)}.mstrip.tight{color:var(--neg)}.mstrip.tight.on{color:var(--neg);border-color:#ff6b5b66}.month-top{align-items:stretch}.month-sentence.alarm{border-color:#ff6b5b4d}.month-sentence p{color:var(--ink);margin:0;padding:16px;font-size:16px;line-height:1.5}.month-kpis{grid-template-rows:repeat(3,minmax(0,1fr));gap:10px;display:grid}.month-kpis>div{border:1px solid var(--line);background:var(--panel);border-radius:6px;align-items:baseline;gap:12px;padding:10px 15px;display:flex}.month-kpis span{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);flex-grow:1;font-size:10px}.month-kpis strong{font-size:19px;font-weight:500}.weekcards{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.weekcard{font:inherit;text-align:left;cursor:pointer;border:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);background:0 0;flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px;display:flex}.weekcard:hover{background:var(--panel-2)}.weekcard.tight{box-shadow:inset 0 2px 0 var(--neg)}.wc-head{align-items:baseline;gap:8px;display:flex}.wc-n{font-family:var(--mono);color:var(--dim);font-size:12px}.wc-when{color:var(--dim);font-size:11px}.wc-cash{font-size:22px;font-weight:500;line-height:1}.wc-note{color:var(--muted);font-size:12px;line-height:1.4}.wc-tracks{flex-direction:column;gap:4px;width:100%;display:flex}.wc-track{background:var(--panel-2);border-radius:3px;height:5px;overflow:hidden}.wc-track i{background:var(--income);border-radius:3px;height:100%;display:block}.wc-track.out i{background:var(--dimmer)}.weekcard.tight .wc-track.out i{background:var(--neg)}table.monthtable{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}table.monthtable th,table.monthtable td{border-bottom:1px solid var(--line);background:var(--panel);white-space:nowrap;padding:6px 10px}table.monthtable thead th{color:var(--dim);border-bottom:1px solid var(--line-strong);z-index:3;font-size:12px;font-weight:500;position:sticky;top:0}table.monthtable thead th.tight{color:var(--neg)}table.monthtable .rowhead{text-align:left;z-index:2;min-width:140px;position:sticky;left:0}table.monthtable tr.income .rowhead{color:var(--good)}table.monthtable .total{border-left:1px solid var(--line-strong)}table.monthtable tfoot .derived th,table.monthtable tfoot .derived td{background:var(--cash-bg);border-top:1px solid var(--line-strong);font-weight:600}@media (width<=900px){.shell{flex-direction:column;height:100dvh}.rail{border-right:none;border-bottom:1px solid var(--line);flex-direction:row;flex-shrink:0;align-items:center;gap:8px;width:100%;padding:0 10px;overflow-x:auto}.rail-head{border-bottom:none;align-items:center;gap:10px;padding:8px 0;display:flex}.brand{margin-bottom:0}.brand span{display:none}.forecast-switch{width:auto;max-width:190px;padding:5px 9px}.fs-name{white-space:nowrap;text-overflow:ellipsis;max-width:160px;overflow:hidden}.rail-nav{gap:2px;padding:6px 0;display:flex}.nav-item{white-space:nowrap;margin-bottom:0;padding:7px 10px}.nav-item span{display:none}.nav-item.on span{display:inline}.nav-item.on{box-shadow:inset 0 -2px 0 var(--good)}.rail-months{display:none}.rail-foot{white-space:nowrap;border-top:none;margin-top:0;margin-left:auto;padding:10px 4px}.topbar{flex-wrap:wrap;gap:8px;padding:8px 14px}.crumbs{order:1;width:100%}.searchbtn{flex-grow:1;order:3;width:auto;margin-left:0}.searchbtn span{display:none}.searchbtn:after{content:"Search";text-align:left;flex-grow:1}.topactions{order:2;margin-left:auto}.content{padding:14px 14px 32px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi strong{font-size:22px}.split,.cols{grid-template-columns:1fr}.week-head{gap:18px}.week-figure{font-size:36px}.week-flow{flex-wrap:wrap;gap:18px;margin-left:0}.week-nav{width:100%}.month-top{grid-template-columns:1fr}.month-kpis{grid-template-rows:none;grid-template-columns:repeat(3,minmax(0,1fr))}.month-kpis>div{flex-direction:column;align-items:flex-start;gap:4px}.waterfall,.chartpanel .chart{min-height:150px}.palette-wrap{align-items:stretch;padding-top:12px}.palette{border-radius:0;width:100%;max-height:92dvh}.nav-item,.watch-row,.weekcard,.palette-row,.topactions button,.week-nav button{min-height:44px}}@media (width<=560px){.headline-lead{font-size:19px;line-height:1.38}.headline-why{font-size:13px}.headline{padding-left:12px}.kpis,.month-kpis,.weekcards{grid-template-columns:1fr}.topactions button{padding:7px 10px}}.rowedit{align-items:center;gap:5px;display:flex}.rowname{font:inherit;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:3px;width:118px;min-width:0;padding:2px 5px;font-weight:500}.rowname:hover{border-color:var(--line)}.rowname:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:#0000}.rowname[readonly]{color:var(--muted)}.rowcat{font:inherit;color:var(--dim);background:0 0;border:1px solid #0000;border-radius:3px;max-width:96px;padding:1px 2px;font-size:11px}.rowcat:hover{border-color:var(--line)}.rowdel{font:inherit;color:var(--dimmer);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:0 4px;font-size:15px;line-height:1}.rowdel:hover{color:var(--neg)}.addline{flex-wrap:wrap;align-items:center;gap:10px;padding:12px 2px 0;display:flex}.addline button{font:inherit;cursor:pointer;border:1px dashed var(--line-strong);color:var(--muted);background:0 0;border-radius:4px;padding:6px 12px;font-size:13px}.addline button:hover{border-style:solid;border-color:var(--good);color:var(--good)}.setgrid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;padding:16px;display:grid}.setgrid label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.setgrid .opt{color:var(--dimmer);margin-left:5px;font-size:11px;font-style:normal}.setgrid input,.setgrid select{font:inherit;color:var(--ink);background:var(--panel-2);border:1px solid var(--line-strong);border-radius:4px;min-width:0;padding:7px 9px;font-size:14px}.setgrid input:disabled,.setgrid select:disabled{opacity:.5}.setrow{gap:8px;display:flex}.setrow input{width:90px}.setrow select{flex-grow:1}.intro{border:1px solid var(--line-strong);background:var(--panel-2);border-radius:6px;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:14px;padding:14px 16px;display:flex}.intro-text{min-width:260px;color:var(--muted);flex-grow:1;font-size:14px;line-height:1.5}.intro-text strong{color:var(--ink)}.intro-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.intro-actions button{font:inherit;cursor:pointer;border:1px solid var(--line-strong);color:var(--muted);background:0 0;border-radius:4px;padding:8px 13px;font-size:13px}.intro-actions button:hover{color:var(--ink);border-color:var(--muted)}.intro-actions button.primary{background:var(--good);border-color:var(--good);color:#05130c;font-weight:600}.intro-actions button.linkish{color:var(--dim);border:none;text-decoration:underline}.roll-collapsed,.roll-open{padding:0 0 16px}.roll-actions{flex-wrap:wrap;gap:8px;padding:0 16px;display:flex}.roll-actions button{font:inherit;cursor:pointer;border:1px solid var(--line-strong);color:var(--muted);background:0 0;border-radius:4px;padding:8px 13px;font-size:13px}.roll-actions button:hover{color:var(--ink);border-color:var(--muted)}.roll-actions button.primary{background:var(--good);border-color:var(--good);color:#05130c;font-weight:600}.roll-growth{color:var(--muted);flex-direction:column;gap:6px;padding:14px 16px 0;font-size:13px;display:flex}.roll-growth .unit{color:var(--dim);align-self:center}.roll-growth input{font:inherit;font-family:var(--mono);text-align:right;background:var(--panel-2);border:1px solid var(--line-strong);width:90px;color:var(--ink);border-radius:4px;padding:7px 9px;font-size:14px}.roll-preview{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:14px 16px;display:grid}.roll-preview>div{border:1px solid var(--line);border-radius:5px;flex-direction:column;gap:5px;padding:10px 12px;display:flex}.roll-preview span{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-size:10px}.roll-preview strong{font-size:19px;font-weight:500}.exportwrap{display:inline-flex;position:relative}.exportmenu{z-index:30;border:1px solid var(--line-strong);background:#0d131a;border-radius:6px;flex-direction:column;min-width:230px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 18px 40px #00000080}.exportmenu button{text-align:left;font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:none;border-radius:4px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:9px 11px;font-size:13px;display:flex}.exportmenu button:hover{background:var(--panel-2)}.exportmenu em{color:var(--dim);font-size:11px;font-style:normal}@media print{.rail,.topbar,.intro,.addline,.exportmenu,.pager button,.settings-panel,.import,.import-actuals,.suggestions,.roll-actions{display:none!important}:root{--bg:#fff;--panel:#fff;--panel-2:#fff;--ink:#101418;--muted:#41505f;--dim:#5b6672;--dimmer:#8a96a3;--line:#d9e0e8;--line-strong:#b3bfcb;--good:#0b6b3a;--neg:#b3261e;--warn:#8a5a00}body{color:#101418;background:#fff}.shell,.main,.content{height:auto;display:block;overflow:visible}.content{padding:0}.panel{break-inside:avoid;border-color:#d9e0e8}.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{border-color:#d9e0e8}.kpi.alarm{box-shadow:none}.line{stroke:#1c4587}.safety-line{stroke:#8a5a00}.trough{fill:#b3261e;stroke:#fff}.peak{fill:#1e7a4d;stroke:#fff}.headline{border-left-color:#6b7684}.headline-lead{font-size:19px}.headline-lead em{color:#b3261e}.band.tight .band-hit{fill:#b3261e14}.scroll{overflow:visible}table{width:100%}a[href]:after{content:""}}.picklist{flex-direction:column;gap:4px;margin:0;padding:12px 16px;list-style:none;display:flex}.picklist label{cursor:pointer;align-items:baseline;gap:10px;font-size:13px;display:flex}.picklist input{accent-color:var(--good)}.pick-name{color:var(--ink)}.pick-meta{color:var(--dim);font-size:12px}.invoices{flex-direction:column;gap:14px;display:flex}.invoices table.lines th{color:var(--dim);font-size:12px;font-weight:500}.invoices table.lines td{padding:5px 10px}.invoices tr.settled{opacity:.45}.invoices tr.income td:first-child{box-shadow:inset 2px 0 0 var(--good)}.invoices input,.invoices select{font:inherit;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:3px;max-width:170px;padding:4px 7px;font-size:13px}.invoices input.num{text-align:right;font-family:var(--mono);width:108px}.invoices input.num.short{width:64px}.invoices input:disabled,.invoices select:disabled{opacity:.5}.invoices .beyond{color:var(--warn);margin-left:6px;font-weight:600}.invoices .filebtn{border-style:dashed}.ledger-start .addline,.ledger .addline{padding:0 16px 16px}.ledger-preview .unmatched{margin:0 16px}.ledger-apply{font-weight:600;background:var(--good)!important;border-color:var(--good)!important;color:#05130c!important;border-style:solid!important}.ledger-apply:disabled{opacity:.45;cursor:default}.nav-group{margin-bottom:10px}.nav-group-title{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dimmer);padding:6px 10px 5px;font-size:9px}@media (width<=900px){.nav-group-title{display:none}.nav-group{margin-bottom:0;display:flex}}
