:root{--ground: #f4f6f9;--surface: #ffffff;--surface-2: #eef1f6;--ink: #131a26;--ink-muted: #58637a;--ink-faint: #8792a8;--border: #e0e5ee;--border-strong: #c5cddb;--accent: #1b4fd8;--accent-ink: #1740ae;--accent-soft: #e7edfc;--brand-warm: #f59e1b;--good: #1f7a4c;--good-soft: #e2f2ea;--warn: #b45309;--warn-soft: #fbeddc;--bad: #c0392b;--bad-soft: #fbe6e3;--shadow: 0 1px 1px rgba(19, 26, 38, .04), 0 6px 18px -14px rgba(19, 26, 38, .25);--edge-shade: rgba(19, 26, 38, .16);--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--r: 8px;--r-sm: 6px;--r-lg: 10px;--gap-1: 6px;--gap-2: 10px;--gap-3: 16px;--pad-x: 14px;--pad-y: 11px;--tabbar-h: 56px;--side-w: 216px;--rail-w: 52px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground: #0c1017;--surface: #141a25;--surface-2: #1b2331;--ink: #e8ecf3;--ink-muted: #97a3b8;--ink-faint: #6f7c93;--edge-shade: rgba(0, 0, 0, .5);--border: #232c3d;--border-strong: #33405a;--accent: #6c8ff5;--accent-ink: #93aefa;--accent-soft: #16203a;--brand-warm: #f0a93a;--good: #4fbe85;--good-soft: #12291f;--warn: #d9963f;--warn-soft: #2c2317;--bad: #e0705f;--bad-soft: #2f1d1b;--shadow: 0 1px 1px rgba(0, 0, 0, .35), 0 6px 18px -14px rgba(0, 0, 0, .75)}}:root[data-theme=dark]{--ground: #0c1017;--surface: #141a25;--surface-2: #1b2331;--ink: #e8ecf3;--ink-muted: #97a3b8;--ink-faint: #6f7c93;--edge-shade: rgba(0, 0, 0, .5);--border: #232c3d;--border-strong: #33405a;--accent: #6c8ff5;--accent-ink: #93aefa;--accent-soft: #16203a;--brand-warm: #f0a93a;--good: #4fbe85;--good-soft: #12291f;--warn: #d9963f;--warn-soft: #2c2317;--bad: #e0705f;--bad-soft: #2f1d1b;--shadow: 0 1px 1px rgba(0, 0, 0, .35), 0 6px 18px -14px rgba(0, 0, 0, .75)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:640;letter-spacing:-.015em;text-wrap:balance}p{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.label{font-size:11px;font-weight:620;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint)}.num{font-variant-numeric:tabular-nums}.app{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100vh}.topbar,.tabbar{display:none}.side{background:var(--surface);border-right:1px solid var(--border);padding:16px 10px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:9px;padding:0 6px}.side-toggle{margin-left:auto;flex:none;display:grid;place-items:center;width:24px;height:24px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--ink-faint);cursor:pointer}.side-toggle:hover{border-color:var(--border);background:var(--surface-2);color:var(--ink)}.side-toggle .nav-icon{width:15px;height:15px}.brand .mark{width:22px;height:22px;flex:none;color:var(--accent)}.brand .name{font-size:14.5px;font-weight:520;letter-spacing:-.01em;color:var(--ink-muted)}.brand .name b{font-weight:720;letter-spacing:.01em;color:var(--ink)}.nav{display:flex;flex-direction:column;gap:2px}.nav-group+.nav-group{margin-top:14px}.nav-group>.label{padding:0 6px 5px;display:block;font-size:10.5px}.nav-icon{width:17px;height:17px;flex:none;opacity:.85}.nav button{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;cursor:pointer;text-align:left;padding:6px;border-radius:var(--r-sm);font-size:13.5px;color:var(--ink-muted)}.nav .nav-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav button:hover{background:var(--surface-2);color:var(--ink)}.nav button[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);font-weight:560}.nav .count,.sheet-item .count{margin-left:auto;font-size:11px;font-weight:640;background:var(--bad-soft);color:var(--bad);padding:0 6px;border-radius:20px;font-variant-numeric:tabular-nums}.me-block{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:8px}.head-of{padding:0 6px;display:flex;flex-direction:column;gap:2px}.head-of .head-name{font-size:13px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me{padding:10px 6px 0;border-top:1px solid var(--border);display:flex;gap:9px;align-items:center}.me .av,.av{width:30px;height:30px;border-radius:50%;flex:none;background:var(--accent-soft);border:1px solid var(--border);display:grid;place-items:center;font-size:12.5px;font-weight:620;color:var(--accent-ink);overflow:hidden}.av-sm{width:28px;height:28px;font-size:11.5px}.me .av img,.av img{width:100%;height:100%;object-fit:cover;display:block}.me .who{min-width:0}.me .who b{display:block;font-size:13px;font-weight:590;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me .who span{display:block;font-size:12px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main{padding:22px 26px 44px;max-width:1400px;min-width:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:var(--gap-3);padding-bottom:13px;border-bottom:1px solid var(--border)}.page-head h1{font-size:21px}.page-head .sub{color:var(--ink-muted);font-size:13px;margin-top:2px}.seg{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px;gap:2px}.seg button{border:0;background:transparent;cursor:pointer;padding:4px 10px;border-radius:4px;font-size:12.5px;font-weight:520;color:var(--ink-muted)}.seg button[aria-pressed=true]{background:var(--accent);color:var(--surface)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:var(--gap-2)}.tiles-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:12px 13px 11px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:7px}.tile .top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.tile .val{font-size:23px;font-weight:650;letter-spacing:-.025em;font-variant-numeric:tabular-nums;line-height:1.1}.tile .val .unit{font-size:14px;font-weight:550;color:var(--ink-muted);margin-left:2px}.tile .meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-muted)}.change{display:flex;align-items:baseline;gap:6px;padding-top:7px;margin-top:0;border-top:1px solid var(--border);font-size:12px}.change-value{font-weight:640;font-variant-numeric:tabular-nums;white-space:nowrap}.change-value.good{color:var(--good)}.change-value.bad{color:var(--bad)}.change-value.flat{color:var(--ink-muted)}.change-label{color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.period-select{width:auto;min-width:190px;padding:6px 11px;font-size:13.5px;border-radius:8px}.pill{font-size:11.5px;font-weight:640;padding:2px 8px;border-radius:20px;font-variant-numeric:tabular-nums;white-space:nowrap}.pill.good{background:var(--good-soft);color:var(--good)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.flat{background:var(--surface-2);color:var(--ink-muted)}.bar{height:4px;border-radius:3px;background:var(--surface-2);overflow:hidden;display:block}.bar i{display:block;height:100%;border-radius:3px;background:var(--accent)}.bar.is-good i{background:var(--good)}.bar.is-warn i{background:var(--warn)}.bar.is-bad i{background:var(--bad)}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--gap-2);margin-top:var(--gap-3);align-items:start}.cols-tight{grid-template-columns:minmax(0,460px) minmax(0,1fr)}.stack{display:grid;gap:var(--gap-2);align-content:start;min-width:0}.panel-pad{padding:12px var(--pad-x) 14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px var(--pad-x);min-height:42px;border-bottom:1px solid var(--border)}.panel>header h2{font-size:13.5px;font-weight:620}.panel .rows{display:flex;flex-direction:column}.panel .rows>*+*{border-top:1px solid var(--border)}.row{display:flex;gap:12px;align-items:flex-start;padding:var(--pad-y) var(--pad-x)}.row .grow{flex:1;min-width:0}.row select{flex:none;width:auto;min-width:210px;max-width:300px}.row .t{display:block;font-size:13.5px;font-weight:550}.row .d{display:block;font-size:12px;color:var(--ink-muted);margin-top:3px}.row .stripe{width:3px;align-self:stretch;border-radius:3px;background:var(--border-strong);flex:none}.row .stripe.bad{background:var(--bad)}.row .stripe.warn{background:var(--warn)}.row .stripe.accent{background:var(--accent)}.row.done{opacity:.55}.empty{padding:22px var(--pad-x);text-align:center;color:var(--ink-faint);font-size:13.5px}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);padding:5px 12px;border-radius:var(--r-sm);cursor:pointer;font-size:12.5px;font-weight:550;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.btn.primary:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink)}.btn.ghost{border-color:transparent;background:transparent;color:var(--accent-ink);padding-inline:6px}.btn.ghost:hover:not(:disabled){background:var(--accent-soft)}.btn:disabled{opacity:.5;cursor:default}.tw{overflow-x:auto;scrollbar-width:thin;background:linear-gradient(to left,var(--surface) 40%,transparent) right / 26px 100% no-repeat,radial-gradient(farthest-side at 100% 50%,var(--edge-shade),transparent) right / 7px 100% no-repeat;background-attachment:local,scroll}.tw th:first-child,.tw td:first-child{position:sticky;left:0;z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--border)}.tw thead th:first-child{z-index:2}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:9px 12px;text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}thead th{font-size:11px;font-weight:620;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--border);background:var(--surface)}tbody tr+tr td{border-top:1px solid var(--border)}tbody td{font-variant-numeric:tabular-nums}tbody td:first-child{font-variant-numeric:normal;font-weight:550}.src{font-size:11.5px;color:var(--ink-faint);font-family:var(--mono)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--gap-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:13px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.card h3{font-size:14.5px}.card .body{font-size:13px;color:var(--ink-muted);white-space:pre-wrap}.card .foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:4px}.card .files{display:flex;flex-wrap:wrap;gap:8px}.card .files .file{display:inline-flex;align-items:baseline;gap:7px;font-size:12.5px;color:var(--accent-ink);background:transparent;border:1px solid var(--border);border-radius:6px;padding:4px 10px;cursor:pointer}.card .files .file:hover{background:var(--accent-soft);border-color:var(--accent)}.card .files .file-name{font-weight:550}.card .files .file-size{color:var(--ink-faint);font-variant-numeric:tabular-nums}.form{display:grid;gap:13px;max-width:640px}.field{display:grid;gap:5px}.field>label{font-size:12.5px;font-weight:590;color:var(--ink-muted)}input[type=text],input[type=date],input[type=search],textarea,select{font:inherit;font-size:13.5px;color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:7px 10px;width:100%}textarea{min-height:96px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-muted);border-radius:20px;padding:4px 11px;font-size:12.5px;cursor:pointer}.chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:560}.file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.file-list li{display:flex;align-items:center;gap:10px;padding:7px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:13.5px}.file-list .file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.file-list .file-size{color:var(--ink-faint);font-size:12.5px;font-variant-numeric:tabular-nums}input[type=file]{font-size:13.5px;color:var(--ink-muted)}.check{display:flex;align-items:center;gap:9px;font-size:14px}.check input{width:16px;height:16px;accent-color:var(--accent)}.hint{font-size:12.5px;color:var(--ink-faint)}.notice{border-left:3px solid var(--accent);background:var(--accent-soft);padding:10px 13px;border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:12.5px;margin-top:var(--gap-3)}.notice.bad{border-left-color:var(--bad);background:var(--bad-soft)}.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.center-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:28px 30px;max-width:460px;display:grid;gap:12px;text-align:center}.center-card p{color:var(--ink-muted);font-size:14px}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:6px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);background:var(--ink);color:var(--ground);padding:10px 18px;border-radius:9px;font-size:13.5px;font-weight:550;box-shadow:0 10px 30px -10px #00000080;z-index:50}@media(max-width:820px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.side{display:none}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:30;padding:7px 14px;background:var(--surface);border-bottom:1px solid var(--border)}.main{padding:14px 14px calc(var(--tabbar-h) + 26px);max-width:none}.tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:36;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--tabbar-h);padding:6px 2px;border:0;background:transparent;color:var(--ink-faint);cursor:pointer}.tab .nav-icon{width:21px;height:21px;opacity:1}.tab-mark{position:relative;display:grid;place-items:center}.tab-label{font-size:10.5px;font-weight:560;letter-spacing:-.01em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab[aria-current=page]{color:var(--accent-ink)}.tab-badge{position:absolute;top:-5px;left:11px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--bad);color:#fff;font-size:10px;font-weight:700;line-height:15px;text-align:center;font-variant-numeric:tabular-nums}.two,.cols-tight{grid-template-columns:1fr}.tiles{grid-template-columns:repeat(auto-fit,minmax(144px,1fr));gap:8px}.tile{padding:11px 12px 10px}.tile .val{font-size:20px}.tile .top{flex-wrap:wrap;gap:4px 8px}.tile .top .pill{margin-left:auto}.page-head{gap:10px;margin-bottom:12px;padding-bottom:10px}.page-head h1{font-size:19px}.head-actions{flex-wrap:wrap}.month-switch{flex:1 1 100%;display:flex}.month-switch button:nth-child(2){flex:1}}.month-switch button[aria-pressed=true]{background:var(--surface-2);color:var(--ink);font-weight:620;cursor:default;min-width:132px}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#090d1473;display:flex;align-items:flex-end}.sheet{width:100%;max-height:86vh;display:flex;flex-direction:column;background:var(--ground);border-top-left-radius:14px;border-top-right-radius:14px;border-top:1px solid var(--border);overflow:hidden}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--surface);border-bottom:1px solid var(--border)}.sheet-head .me{padding:0;border-top:0;min-width:0}.sheet-body{flex:1;overflow-y:auto;padding:12px 14px calc(16px + env(safe-area-inset-bottom,0));display:grid;gap:var(--gap-3)}.sheet-group>.label{display:block;padding:0 2px 6px}.sheet-items{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.sheet-item{display:flex;align-items:center;gap:11px;width:100%;padding:12px 13px;border:0;background:var(--surface);color:var(--ink);font-size:14px;text-align:left;cursor:pointer}.sheet-item .nav-icon{width:18px;height:18px;color:var(--ink-faint)}.sheet-item[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);font-weight:570}.sheet-item[aria-current=page] .nav-icon{color:var(--accent-ink)}.sheet-item-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-head-name{font-size:13.5px;color:var(--ink-muted);padding:0 2px}.debt-client{display:block;font-weight:550}.debt-inn{display:block;font-size:11.5px;color:var(--ink-faint);font-variant-numeric:tabular-nums;margin-top:2px}.tile-slot{position:relative;display:flex}.tile-slot>.tile{flex:1}.tiles-editing .tile-slot{cursor:grab}.tiles-editing .tile-slot .tile{border-style:dashed;border-color:var(--border-strong)}.tile-slot.is-dragged{opacity:.4}.tile-slot.is-over .tile{border-color:var(--accent);border-style:solid;box-shadow:0 0 0 2px var(--accent-soft)}.tile-tools{position:absolute;top:8px;right:10px;z-index:2;display:flex;align-items:center;gap:8px}.drag-handle{color:var(--ink-faint);font-size:14px;line-height:1;cursor:grab}.tile-hide{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-muted);border-radius:6px;padding:2px 8px;font-size:11.5px;cursor:pointer}.tile-hide:hover{border-color:var(--bad);color:var(--bad)}.tile-hidden{background:transparent;border:1px dashed var(--border-strong);border-radius:var(--r);padding:15px 16px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;cursor:pointer;color:var(--ink-muted);text-align:left}.tile-hidden:hover{border-color:var(--accent);color:var(--accent-ink)}.tile-hidden-name{font-size:15px;font-weight:600}.tile-hidden-action{font-size:12.5px;color:var(--accent-ink)}.head-actions{display:flex;gap:8px;align-items:center}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap-2);margin-bottom:var(--gap-3)}.filters select{width:auto;min-width:150px}.filters .filter-search{flex:0 1 380px;min-width:200px}.filters .check{font-size:13.5px;color:var(--ink-muted)}.pub-row,.scope-row{align-items:center;flex-wrap:wrap;row-gap:10px}.pub-row>.grow,.scope-row>.grow{flex:1 1 260px}.pub-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.scope-row>.chips{justify-content:flex-end}.pub-row .foreign{margin-left:8px;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--border);border-radius:5px;padding:1px 6px}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#090d1473;display:flex;justify-content:flex-end;z-index:40}.drawer{background:var(--ground);width:min(1080px,100%);height:100%;display:flex;flex-direction:column;border-left:1px solid var(--border);box-shadow:-12px 0 40px -24px #0009}.drawer.narrow{width:min(480px,100%)}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--border);background:var(--surface)}.drawer-head h2{font-size:17px}.drawer-body{flex:1;overflow-y:auto;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;padding:20px 22px;align-items:start}.drawer-body.single{grid-template-columns:1fr;align-content:start;gap:14px}.drawer-error{margin:0 22px 12px}.drawer-foot{display:flex;align-items:center;gap:10px;padding:14px 22px;border-top:1px solid var(--border);background:var(--surface)}.editor{display:grid;gap:18px;min-width:0}.editor-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;display:grid;gap:14px}.editor-block>h3{font-size:13px;font-weight:620;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.preview{position:sticky;top:0;display:grid;gap:8px}.preview .card{pointer-events:none}.preview .file{display:inline-flex;align-items:baseline;gap:7px;font-size:12.5px;color:var(--accent-ink);border:1px solid var(--border);border-radius:6px;padding:4px 10px}.audience{display:grid;gap:14px}.audience-cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px}.audience-col{display:grid;gap:8px;align-content:start;min-width:0}.audience-label{font-size:12.5px;font-weight:590;color:var(--ink-muted)}.tree{border:1px solid var(--border);border-radius:8px;background:var(--surface);max-height:300px;overflow-y:auto;padding:6px}.tree-row{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:6px}.tree-row:hover{background:var(--surface-2)}.tree-toggle{width:20px;height:20px;flex:none;border:none;background:transparent;color:var(--ink-faint);font-size:14px;line-height:1;cursor:pointer}.tree-toggle:disabled{cursor:default;opacity:.35}.tree-name{display:flex;align-items:center;gap:8px;flex:1;min-width:0;font-size:13.5px;cursor:pointer}.tree-name input{width:15px;height:15px;flex:none;accent-color:var(--accent)}.tree-name>span:first-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-size{margin-left:auto;font-size:11.5px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.tree-nested{flex:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-faint);border-radius:20px;padding:1px 9px;font-size:11.5px;cursor:pointer}.tree-nested.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.people{display:grid;gap:5px;max-height:300px;overflow-y:auto}.person{display:grid;gap:1px;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:7px 11px;cursor:pointer}.person:hover:not(:disabled){background:var(--surface-2)}.person[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.person-name{font-size:13.5px;font-weight:550}.person-pos{font-size:12px;color:var(--ink-faint)}.audience-sum{display:grid;gap:10px;border-top:1px solid var(--border);padding-top:12px}.audience-chips{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.chip.picked{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:550}.chip.picked.person-chip{background:var(--surface-2);border-color:var(--border-strong);color:var(--ink)}.chip-x{margin-left:7px;color:var(--ink-faint)}.reach{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:13.5px}.reach b{font-size:15px}.reach-detail{color:var(--ink-faint);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.reach-empty{color:var(--ink-faint)}@media(max-width:900px){.drawer-body{grid-template-columns:1fr}.preview{position:static}.audience-cols{grid-template-columns:1fr}}@media(max-width:700px){.row{flex-wrap:wrap}.row select{width:100%;max-width:none}.panel .tw{overflow-x:visible;background:none}.panel .tw th:first-child,.panel .tw td:first-child{position:static;box-shadow:none}.panel table,.panel tbody,.panel tr,.panel td{display:block;width:100%}.panel thead{display:none}.panel tbody tr{padding:12px 14px}.panel tbody tr+tr{border-top:1px solid var(--border)}.panel tbody td{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:3px 0;text-align:right;white-space:normal}.panel tbody td+td{border-top:0}.panel tbody td:before{content:attr(data-label);flex:none;font-size:11.5px;font-weight:590;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);text-align:left}.panel tbody td:first-child{display:block;text-align:left;font-size:14.5px;font-weight:620;padding-bottom:8px}.panel tbody td:first-child:before{content:none}.panel tbody td[data-empty=true]{display:none}.kpi-progress{justify-content:flex-end}.drawer-foot{flex-wrap:wrap}.drawer-foot .hint{order:-1;flex-basis:100%}}.kpi-progress{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end}.timesheet{font-size:13px}.timesheet th,.timesheet td{padding:6px 2px;text-align:center}.timesheet .ts-name{text-align:left;min-width:210px;position:sticky;left:0;z-index:1;background:var(--surface);padding-left:14px}.timesheet thead .ts-name{z-index:2}.timesheet thead th .ts-num{display:block;font-size:12px;font-weight:620;color:var(--ink)}.timesheet thead th .ts-dow{display:block;font-size:10px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-faint)}.timesheet .ts-off{background:var(--bad-soft)}.timesheet td.ts-cell{padding:2px}.timesheet td.ts-cell button{width:100%;min-width:27px;height:28px;border:1px solid transparent;border-radius:6px;background:transparent;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);cursor:pointer}.timesheet td.ts-cell button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.timesheet td.ts-cell button:disabled{cursor:default}.timesheet td.is-vacation button,.timesheet td.is-sick button,.timesheet td.is-unpaid button,.timesheet td.is-other button{font-size:11px;font-weight:650}.timesheet td.is-vacation{background:var(--warn-soft)}.timesheet td.is-vacation button{color:var(--warn)}.timesheet td.is-sick{background:var(--accent-soft)}.timesheet td.is-sick button{color:var(--accent-ink)}.timesheet td.is-unpaid button,.timesheet td.is-other button{color:var(--ink-muted)}.timesheet td.is-weekend button,.timesheet td.is-holiday button{color:var(--ink-faint);font-size:11px}.timesheet td.is-manual{position:relative}.timesheet td.is-manual:after{content:"";position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.timesheet .ts-summary{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:12px;color:var(--ink-muted);font-variant-numeric:tabular-nums}.timesheet .ts-summary b{color:var(--ink);font-weight:620}.timesheet .ts-summary .btn{font-size:12px;padding:2px 6px}.ts-excluded{margin-bottom:14px}.ts-excluded .rows{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}.ts-excluded .rows>*+*{border-top:1px solid var(--border)}.timesheet .ts-approver{display:block;font-size:11px;color:var(--ink-faint);margin-top:3px}.chip.scope-hr{margin-left:10px;border-style:dashed}.chip.scope-hr[aria-pressed=true]{border-style:solid;background:var(--good-soft);border-color:var(--good);color:var(--good)}.day-panel>header{gap:12px;flex-wrap:wrap}.day-panel>header h2{display:flex;align-items:baseline;gap:8px}.day-count{font-size:13px;font-weight:500;color:var(--ink-muted)}.day-head-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.day-value{font-size:13px;color:var(--ink-muted)}.day-progress{position:relative;display:inline-flex;align-items:center;gap:8px;min-width:116px;height:22px;padding:0 10px;border-radius:11px;background:var(--surface-2);overflow:hidden}.day-progress i{position:absolute;inset:0 auto 0 0;background:var(--good-soft);transition:width .25s ease}.day-progress b{position:relative;font-size:12.5px;font-weight:600;color:var(--ink-muted);margin-left:auto}.day-more{padding:12px 16px 16px;display:flex;justify-content:center}.task-list{display:grid;gap:10px;padding:4px 16px 16px}.filters+.task-list,.list-count+.task-list{padding-left:0;padding-right:0}.task-card{position:relative;display:flex;align-items:flex-start;gap:14px;padding:13px 14px 13px 16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);transition:border-color .15s ease,opacity .15s ease}.task-card:hover{border-color:var(--border-strong)}.task-card.is-busy{opacity:.55;pointer-events:none}.task-card>.stripe{position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--border-strong)}.task-card.tone-info>.stripe{background:var(--accent)}.task-card.tone-good>.stripe{background:var(--good)}.task-card.tone-warn>.stripe{background:var(--warn)}.task-card.tone-bad>.stripe{background:var(--bad)}.task-card.is-overdue{border-color:var(--bad);background:linear-gradient(90deg,var(--bad-soft) 0 3px,var(--surface) 3px)}.task-card.is-closed{opacity:.72}.task-body{flex:1;min-width:0;display:grid;gap:6px}.task-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-muted)}.task-kind{display:inline-flex;align-items:center;gap:6px;font-weight:550}.task-icon{width:15px;height:15px;color:var(--ink-faint);flex:none}.task-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-faint)}.task-top-right{display:inline-flex;align-items:baseline;gap:10px;white-space:nowrap}.task-money{font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink)}.task-due.bad{color:var(--bad);font-weight:600}.task-title{margin:0;font-size:15px;font-weight:600;line-height:1.35;color:var(--ink)}.task-reason{margin:0;font-size:13px;color:var(--ink-muted)}.task-facts{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}.task-facts li{display:flex;flex-direction:column;gap:1px}.task-facts .f-label{font-size:11.5px;color:var(--ink-faint)}.task-facts .f-value{font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}.task-facts .f-value.good{color:var(--good)}.task-facts .f-value.warn{color:var(--warn)}.task-facts .f-value.bad{color:var(--bad)}.task-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:12.5px}.task-links a{color:var(--accent-ink);text-decoration:none}.task-links a:hover{text-decoration:underline}.task-author{color:var(--ink-faint)}.task-actions{display:flex;flex-direction:column;gap:6px;flex:none}.task-actions .btn{min-width:108px}.task-form{display:grid;gap:8px;margin-top:6px;padding-top:10px;border-top:1px dashed var(--border)}.task-results{display:flex;flex-wrap:wrap;gap:7px}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:560}.task-date{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-muted)}.task-form textarea{width:100%;resize:vertical;padding:8px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px}.task-form-actions{display:flex;gap:8px}.toast-action{margin-left:14px;border:0;background:none;color:var(--brand-warm);font:inherit;font-weight:650;cursor:pointer}.list-count{margin:0 0 10px;font-size:13px;color:var(--ink-muted)}.filters{display:grid;gap:8px;margin-bottom:14px}.manual-task{display:grid;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--surface-2)}.manual-task label{display:grid;gap:4px;font-size:12.5px;color:var(--ink-muted)}.manual-task input,.manual-task select{padding:8px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px}.row-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.kpi-strip{display:flex;align-items:stretch;gap:0;margin-bottom:16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow);overflow-x:auto}.kpi-cell{flex:1 1 0;min-width:150px;display:grid;gap:4px;align-content:start;padding:12px 16px;border-right:1px solid var(--border)}.kpi-cell .label{font-size:12px;color:var(--ink-muted)}.kpi-cell .val{display:flex;align-items:baseline;gap:6px;font-size:19px;font-weight:650;font-variant-numeric:tabular-nums}.kpi-cell .val .unit{font-size:12.5px;font-weight:500;color:var(--ink-muted)}.kpi-more{flex:none;border:0;background:none;padding:12px 16px;color:var(--accent-ink);font:inherit;font-size:13px;font-weight:550;white-space:nowrap;cursor:pointer}@media(max-width:700px){.task-card{flex-direction:column;gap:10px}.task-actions{flex-direction:row;width:100%}.task-actions .btn{flex:1;min-width:0}.row-fields{grid-template-columns:1fr}.day-progress{min-width:96px}.kpi-cell{min-width:128px}}.month-grid{display:grid;gap:5px;min-width:0;max-width:420px}.mg-head,.mg-body{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.mg-head span{text-align:center;font-size:10.5px;font-weight:620;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint)}.mg-head span.is-off{color:var(--bad)}.mg-cell{position:relative;display:grid;align-content:center;justify-items:center;gap:1px;aspect-ratio:1;min-height:38px;padding:2px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}button.mg-cell:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}button.mg-cell:disabled{cursor:default;opacity:.55}span.mg-cell{cursor:default}.mg-num{font-size:10.5px;line-height:1;color:var(--ink-faint);font-variant-numeric:tabular-nums}.mg-mark{min-height:15px;font-size:14px;font-weight:640;line-height:1.1;font-variant-numeric:tabular-nums}.mg-cell.is-off{background:var(--surface-2)}.mg-cell.is-off .mg-mark,.mg-cell.is-weekend .mg-mark,.mg-cell.is-holiday .mg-mark{font-size:11.5px;font-weight:560;color:var(--ink-faint)}.mg-cell.is-vacation{background:var(--warn-soft);border-color:var(--warn-soft)}.mg-cell.is-vacation .mg-mark{font-size:11.5px;color:var(--warn)}.mg-cell.is-sick{background:var(--accent-soft);border-color:var(--accent-soft)}.mg-cell.is-sick .mg-mark{font-size:11.5px;color:var(--accent-ink)}.mg-cell.is-unpaid .mg-mark,.mg-cell.is-other .mg-mark{font-size:11.5px;color:var(--ink-muted)}.mg-cell.is-manual:after{content:"";position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.mg-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:11.5px;color:var(--ink-faint)}.mg-legend span{display:inline-flex;align-items:center;gap:5px}.mg-legend i{width:9px;height:9px;border-radius:3px;border:1px solid var(--border-strong);background:var(--surface)}.mg-legend i.is-vacation{background:var(--warn-soft);border-color:var(--warn)}.mg-legend i.is-sick{background:var(--accent-soft);border-color:var(--accent)}.mg-legend i.is-unpaid{background:var(--surface-2)}.mg-legend i.is-manual-dot{width:6px;height:6px;border-radius:50%;border:0;background:var(--accent)}.ts-approved-by{margin-top:10px}.ts-people{display:grid;gap:var(--gap-2)}.ts-person{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.ts-person-head{display:flex;align-items:center;gap:10px;width:100%;padding:11px 13px 8px;border:0;background:transparent;text-align:left;cursor:pointer}.ts-person-who{flex:1;min-width:0}.ts-person-who b{display:block;font-size:14px;font-weight:600}.ts-person-who>span{display:block;font-size:12px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts-person-total{flex:none;text-align:right;font-variant-numeric:tabular-nums}.ts-person-total b{display:block;font-size:13px;font-weight:620}.ts-person-total>span{display:block;font-size:12px;color:var(--ink-muted)}.ts-person-chevron{flex:none;display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--ink-muted);font-size:15px;line-height:1}.ts-person-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 13px 11px}.ts-person-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.ts-approver{font-size:11.5px;color:var(--ink-faint)}.ts-person-month{padding:12px 13px 13px;border-top:1px solid var(--border)}.ts-quick{justify-self:start}@media(max-width:820px){.drawer-scrim{align-items:flex-end}.drawer,.drawer.narrow{width:100%;height:auto;max-height:88vh;border-left:0;border-top:1px solid var(--border);border-radius:14px 14px 0 0}.drawer-head{padding:12px 14px}.drawer-head h2{font-size:16px}.drawer-body{padding:12px 14px}.drawer-error{margin:0 14px 10px}.drawer-foot{padding:11px 14px calc(11px + env(safe-area-inset-bottom,0))}.ts-quick{justify-self:stretch;padding-block:9px}.kpi-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow-x:visible}.kpi-cell{min-width:0;padding:10px 12px;border-right:0;border-bottom:1px solid var(--border)}.kpi-cell:nth-child(odd){border-right:1px solid var(--border)}.kpi-cell .val{flex-wrap:wrap;row-gap:2px}.kpi-more{grid-column:1 / -1;padding:10px 12px;text-align:center}.toast{left:14px;right:14px;bottom:calc(var(--tabbar-h) + 12px + env(safe-area-inset-bottom,0));transform:none;display:flex;align-items:center;justify-content:space-between;gap:12px}}.task-card.is-compact{align-items:center;gap:12px;padding:9px 12px 9px 15px}.task-card.is-compact .task-body{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title meta" "sub   sub";align-items:baseline;column-gap:12px;row-gap:2px}.task-card.is-compact .task-line{grid-area:title}.task-card.is-compact .task-top-right{grid-area:meta}.task-card.is-compact .task-sub{grid-area:sub}.task-card.is-compact .task-form{grid-area:auto / 1 / auto / -1}.task-line{display:flex;align-items:baseline;gap:8px;min-width:0}.task-line .task-icon{align-self:center}.task-card.is-compact .task-title{flex:1;min-width:0;font-size:14px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-sub{margin:0;font-size:12.5px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-card.is-compact .task-top-right{flex:none;font-size:12.5px;color:var(--ink-muted)}.task-card.is-compact .task-actions{flex-direction:row;align-items:center}.task-card.is-compact .task-actions .btn{min-width:0;padding:4px 10px;font-size:12px}@media(max-width:700px){.task-card.is-compact .task-body{grid-template-areas:"title title" "sub   meta"}.task-card.is-compact .task-reason-inline{display:none}.task-card.is-compact .task-actions .btn{flex:1;padding-block:6px}}.app.is-railed{grid-template-columns:var(--rail-w) minmax(0,1fr)}.app.is-railed .main{grid-column:2}.app.is-railed .side{position:fixed;top:0;left:0;bottom:0;width:var(--rail-w);height:auto;overflow:hidden;z-index:40;transition:width .16s ease}.app.is-railed .side>*{min-width:calc(var(--side-w) - 20px)}.app.is-railed .side:hover,.app.is-railed .side:focus-within{width:var(--side-w);overflow-y:auto;box-shadow:10px 0 30px -20px #131a268c}.app.is-railed .side:not(:hover):not(:focus-within) .nav-group>.label,.app.is-railed .side:not(:hover):not(:focus-within) .nav .nav-title,.app.is-railed .side:not(:hover):not(:focus-within) .head-of,.app.is-railed .side:not(:hover):not(:focus-within) .brand .name,.app.is-railed .side:not(:hover):not(:focus-within) .me .who,.app.is-railed .side:not(:hover):not(:focus-within) .side-toggle{visibility:hidden}.app.is-railed .side .nav button{position:relative}.app.is-railed .side:not(:hover):not(:focus-within) .nav .count{position:absolute;top:0;left:20px;margin:0;min-width:14px;height:14px;padding:0 4px;font-size:9.5px;line-height:14px;text-align:center}@media(prefers-reduced-motion:reduce){.app.is-railed .side{transition:none}}@media(max-width:820px){.app.is-railed{grid-template-columns:minmax(0,1fr)}.app.is-railed .main{grid-column:auto}.app.is-railed .side{display:none}}html.is-embed,html.is-embed body,html.is-embed #root,html.is-embed .app{min-height:0}html.is-embed body{background:var(--ground)}html.is-embed .app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}html.is-embed .topbar,html.is-embed .tabbar{display:none}html.is-embed .pagetabs{padding:6px 18px 0}html.is-embed .main{padding:18px 18px 26px;max-width:none}@media(max-width:820px){html.is-embed .pagetabs{padding:4px 12px 0}html.is-embed .main{padding:14px 12px 20px}}.pagetabs{display:flex;align-items:center;gap:2px;overflow:visible;border-bottom:1px solid var(--border)}.pagetab-more{position:relative;margin-left:auto}.pagetab.is-more .nav-icon{width:15px;height:15px}.pagetab.is-current{color:var(--accent-ink);font-weight:620}.pagetabs-drop{position:absolute;top:calc(100% + 4px);right:0;z-index:40;min-width:210px;padding:4px;display:grid;gap:1px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}.pagetabs-drop button{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink);cursor:pointer;text-align:left;white-space:nowrap}.pagetabs-drop button:hover{background:var(--surface-2)}.pagetabs-drop button[aria-current=page]{color:var(--accent-ink);font-weight:620}.pagetabs-drop .count{margin-left:auto}.pagetab{display:inline-flex;align-items:center;gap:7px;flex:none;padding:9px 12px;border:0;border-bottom:2px solid transparent;border-radius:var(--r-sm) var(--r-sm) 0 0;background:transparent;color:var(--ink-muted);cursor:pointer;white-space:nowrap}.pagetab:hover{color:var(--ink);background:var(--surface-2)}.pagetab[aria-current=page]{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:620}.pagetab .count{font-size:11px;font-weight:640;background:var(--bad-soft);color:var(--bad);padding:0 6px;border-radius:20px;font-variant-numeric:tabular-nums}@media(max-width:820px){.pagetab span:not(.count){display:none}.pagetab{padding:9px 13px}}.provisional{display:block;margin-top:4px;font-size:11px;line-height:1.3;color:var(--ink-faint)}.kpi-cell .provisional{margin-top:6px}.row.is-link{cursor:pointer;width:100%;text-align:left}.row.is-link:hover{background:var(--surface-2)}.kpi-cell.is-link{cursor:pointer;text-align:left;font:inherit;color:inherit;border:0;background:transparent}.kpi-cell.is-link:hover{background:var(--surface-2)}
