:root{--paper: #f5f3ee;--surface: #ffffff;--surface-sunk: #f0f0ec;--line: #DEDAD4;--line-strong: #C8C5BE;--ink: #313131;--ink-2: #5f5e5a;--ink-3: #9a9890;--green: #4a5c4b;--green-2: #586C59;--green-tint: #EAF3DE;--blue: #185FA5;--blue-tint: #E6F1FB;--danger: #9B3D2E;--danger-tint: #F6E9E5;--warn: #8A5A1C;--warn-tint: #F7EEDF;--ok: var(--green);--ok-tint: var(--green-tint);--basis-contracted: #6E9C70;--basis-proposed: #4A90D9;--basis-estimated: #D9922B;--font-serif: "Spectral", Georgia, "Times New Roman", serif;--font-sans: "Nunito Sans", -apple-system, "Segoe UI", system-ui, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", "Consolas", monospace;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-lg: 15px;--text-xl: 20px;--text-2xl: 28px;--leading-tight: 1.25;--leading-body: 1.5;--row-h: 30px;--row-h-group: 26px;--cell-pad-x: 10px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius: 3px;--radius-lg: 5px;--shadow-sticky: 0 2px 4px rgba(49, 49, 49, .06);--shadow-modal: 0 8px 32px rgba(49, 49, 49, .18);--focus-ring: 2px solid var(--blue)}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;text-align:right;white-space:nowrap}*,*:before,*:after{box-sizing:border-box}*{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.shell{--chrome-bg: #47543f;--chrome-edge: #3b4634;--chrome-ink: #f3efe4;--chrome-ink-dim: rgba(243, 239, 228, .66);--chrome-ink-faint: rgba(243, 239, 228, .45);--chrome-hover: rgba(255, 255, 255, .08);--chrome-active: rgba(255, 255, 255, .14);display:flex;flex-direction:column;height:100vh}.appbar{flex:none;display:flex;align-items:center;gap:var(--space-5);padding:var(--space-2) var(--space-5);background:var(--chrome-bg);border-bottom:1px solid var(--chrome-edge)}.brand{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--chrome-ink-dim);letter-spacing:.02em}.brand b{color:var(--chrome-ink);font-weight:500}.appbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-4)}.who{font-size:var(--text-xs);color:var(--chrome-ink-faint)}.appbar .btn-ghost{color:var(--chrome-ink-dim);background:none;border:none;padding:4px 6px}.appbar .btn-ghost:hover{color:var(--chrome-ink)}.viewas{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--chrome-ink-faint)}.viewas select{font-family:inherit;font-size:var(--text-xs);color:var(--chrome-ink);border:1px solid rgba(255,255,255,.28);border-radius:var(--radius);padding:3px 6px;background:#ffffff1a}.viewas select option{color:var(--ink);background:var(--surface)}.shell-body{flex:1;min-height:0;display:flex}.sidebar{flex:none;width:210px;overflow-y:auto;padding:var(--space-4) var(--space-3);background:#e7e2d6;border-right:1px solid var(--line-strong)}.nav-group{margin-bottom:var(--space-3)}.nav-group-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:var(--space-3) var(--space-2) var(--space-1)}.nav-item{display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-2);border-radius:var(--radius);color:var(--ink-2);font-size:var(--text-sm);font-weight:600;cursor:pointer}.nav-item:hover{background:#47543f14;color:var(--ink)}.nav-item.on{background:#47543f24;color:var(--ink);box-shadow:inset 2px 0 0 var(--green)}.nav-badge{margin-left:auto;background:var(--green);color:#fff;border-radius:9px;font-size:10px;font-weight:700;padding:1px 7px}.content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--paper)}.page{flex:1;min-height:0;overflow:auto;padding:var(--space-5);max-width:1400px}.workspace{flex:1;min-height:0;display:flex;flex-direction:column}.ws-head{flex:none;padding:var(--space-4) var(--space-5) 0}.crumbback{font-size:var(--text-xs);color:var(--blue)}.crumbback:hover{text-decoration:underline}.ws-title{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:400;letter-spacing:-.01em;margin-top:2px}.ws-tabs{flex:none;display:flex;gap:2px;padding:0 var(--space-5);border-bottom:1px solid var(--line-strong);margin-bottom:var(--space-4);flex-wrap:wrap}.ws-tab{padding:6px 12px;color:var(--ink-2);font-size:var(--text-sm);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.ws-tab:hover{color:var(--ink)}.ws-tab.on{color:var(--ink);font-weight:700;border-bottom-color:var(--green)}.placeholder{background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius-lg);padding:var(--space-6);max-width:640px}.placeholder h2{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:500;margin-bottom:var(--space-2)}.placeholder p{font-size:var(--text-sm);color:var(--ink-3);line-height:1.5}.page-title{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:400;letter-spacing:-.01em;margin-bottom:var(--space-4)}.crumb{font-size:var(--text-xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-2)}.crumb a:hover{color:var(--green)}.hint{font-size:var(--text-xs);color:var(--ink-3);margin-top:var(--space-3)}.tablewrap{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);overflow-x:auto}table.grid{width:100%;border-collapse:collapse}.grid thead th{position:sticky;top:0;background:var(--surface-sunk);font-size:var(--text-xs);font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:var(--space-2) var(--cell-pad-x);border-bottom:1px solid var(--line-strong);white-space:nowrap}.grid thead th.r{text-align:right}.grid tbody td{height:var(--row-h);padding:0 var(--cell-pad-x);border-bottom:1px solid var(--line);white-space:nowrap}.grid tbody tr:last-child td{border-bottom:none}.grid tr.clickable:hover{background:#faf9f6}.grid.budget tbody tr:hover td{background:#ece5d7}.rowlink{font-weight:500}.rowlink:hover{color:var(--green)}.r{text-align:right}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:var(--text-sm)}.dim{color:var(--ink-3)}.strong{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:var(--text-sm)}.over{color:var(--danger)}.under{color:var(--green)}.grid.budget tr.lvl-division td{background:var(--surface-sunk);border-top:1px solid var(--line-strong)}.grid.budget tr.lvl-section td{background:#f4f2ed}.grid.budget tr.lvl-subsection td{background:#faf9f6}.grid.budget tr.lvl-division td.num{font-weight:700}.grid.budget tr.lvl-section td.num{font-weight:600}.budget-page{display:flex;flex-direction:column;overflow:hidden}.budget-scroll{flex:1;min-height:0;overflow:auto}.grid.budget thead th{position:sticky;top:0;z-index:2}.budget-head{flex:none;display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;margin-bottom:var(--space-4)}.mini-summary{border-collapse:separate;border-spacing:0;background:var(--surface-sunk);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:var(--text-xs);color:var(--ink-2)}.mini-summary th{text-align:right;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3);padding:4px var(--space-3);border-bottom:1px solid var(--line);white-space:nowrap}.mini-summary th:first-child{text-align:left}.mini-summary td{padding:3px var(--space-3);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.mini-summary td:first-child{text-align:left;color:var(--ink-2)}.mini-summary tr.mini-total td{font-weight:700;color:var(--ink);border-top:1px solid var(--line-strong)}.twist{background:none;border:none;cursor:pointer;color:var(--ink-3);font-size:10px;width:14px;padding:0;margin-right:4px}.twist:hover{color:var(--green)}.twist-dot{display:inline-block;width:14px;margin-right:4px;color:var(--line-strong);text-align:center}.delta-pct{color:var(--ink-3);font-size:var(--text-xs)}.grid tr.clickable{cursor:pointer}.detail{max-width:900px}.detail-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.detail-head .page-title{margin-bottom:0}.detail-badges{display:flex;gap:var(--space-2)}.badge{font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:100px;background:var(--surface-sunk);color:var(--ink-2)}.badge-green{background:var(--green-tint);color:var(--green)}.badge-blue{background:var(--blue-tint);color:var(--blue)}.stat-row{display:flex;gap:var(--space-5);padding:var(--space-4);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);margin-bottom:var(--space-5)}.stat{flex:1}.stat-label{font-size:var(--text-xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.stat-val{font-size:var(--text-xl);font-variant-numeric:tabular-nums;line-height:1.3}.stat-tag{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3)}.detail-section{margin-bottom:var(--space-5)}.section-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-strong);padding-bottom:var(--space-2);margin-bottom:var(--space-3)}.section-head h2{font-size:var(--text-lg);font-weight:600}.section-count{font-size:var(--text-xs);font-weight:700;color:var(--ink-3);background:var(--surface-sunk);border-radius:100px;padding:1px 7px;margin-left:var(--space-2)}.section-empty{font-size:var(--text-sm);color:var(--ink-3);padding:var(--space-2) 0}.kv{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6)}.kv>div{font-size:var(--text-sm)}.kv>div>span{display:block;font-size:var(--text-xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}table.mini{width:100%;border-collapse:collapse}table.mini td{padding:6px var(--space-2);border-bottom:1px solid var(--line);font-size:var(--text-sm)}table.mini tr:last-child td{border-bottom:none}.co-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:1px 5px;border-radius:2px}.co-approved{background:var(--green-tint);color:var(--green)}.co-received,.co-revisions_requested{background:var(--warn-tint);color:var(--warn)}.co-rejected{background:var(--danger-tint);color:var(--danger)}.btn-sec{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);font-family:inherit;font-size:var(--text-sm);font-weight:600;border-radius:var(--radius);padding:6px 12px;cursor:pointer}.btn-sec:hover{border-color:var(--green-2);color:var(--green)}.link-danger{background:none;border:none;color:var(--danger);font-size:var(--text-xs);cursor:pointer}.link-danger:hover{text-decoration:underline}.link-danger:disabled{opacity:.5;cursor:default}.so-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#31313152;z-index:50}.so-panel{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:94vw;background:var(--surface);border-left:1px solid var(--line-strong);box-shadow:var(--shadow-modal);display:flex;flex-direction:column}.so-head{display:flex;align-items:baseline;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line)}.so-title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:500}.so-sub{font-size:var(--text-xs);color:var(--ink-3);margin-top:3px}.so-close{background:none;border:none;font-size:20px;line-height:1;color:var(--ink-3);cursor:pointer}.so-close:hover{color:var(--ink)}.so-body{flex:1;overflow-y:auto;padding:var(--space-5)}.so-foot{display:flex;justify-content:space-between;padding:var(--space-3) var(--space-5);border-top:1px solid var(--line);background:var(--surface-sunk)}.fld{display:block;margin-bottom:var(--space-4)}.fld>span{display:block;font-size:var(--text-xs);font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.fld .opt{color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0}.fld .req{color:var(--danger)}.fld input,.fld textarea{width:100%;font-family:inherit;font-size:var(--text-md);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);padding:8px 10px}.fld input:focus,.fld textarea:focus{outline:var(--focus-ring);border-color:var(--blue)}.num-in{font-variant-numeric:tabular-nums;text-align:right}.fld select{width:100%;font-family:inherit;font-size:var(--text-md);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);padding:8px 10px;background:var(--surface)}.fld select:focus{outline:var(--focus-ring);border-color:var(--blue)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.form-state{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-2);padding-bottom:var(--space-3);margin-bottom:var(--space-4);border-bottom:1px solid var(--line)}.form-state b{margin-left:auto}.cb-tag{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-sunk);border-radius:2px;padding:1px 5px}.form-preview{font-size:var(--text-md);font-variant-numeric:tabular-nums;color:var(--ink-2);margin:calc(var(--space-4) * -1 + 4px) 0 var(--space-4)}.form-preview .arrow{color:var(--ink-3);margin:0 4px}.form-preview b{color:var(--green)}.form-warn{font-size:var(--text-sm);color:var(--warn);background:var(--warn-tint);border:1px solid #eadcc2;border-radius:var(--radius);padding:var(--space-3);margin-bottom:var(--space-4);line-height:1.4}.form-err{font-size:var(--text-sm);color:var(--danger);margin-top:var(--space-2)}.check{display:flex;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-2);margin-bottom:var(--space-3);line-height:1.4;cursor:pointer}.check input{margin-top:3px;accent-color:var(--green)}.check .hint{color:var(--ink-3)}.btn,.btn-pri,.btn-ghost{font-family:inherit;font-size:var(--text-sm);font-weight:600;border-radius:var(--radius);padding:8px 16px;cursor:pointer;border:1px solid transparent}.btn-pri{background:var(--green);color:#fff;border-color:var(--green)}.btn-pri:hover{background:var(--green-2);border-color:var(--green-2)}.btn-pri:disabled{opacity:.5;cursor:default}.btn-ghost{background:none;color:var(--ink-2)}.btn-ghost:hover{color:var(--ink)}.basis{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.04em;padding:0 4px;border-radius:2px;vertical-align:1px}.basis-auth{background:var(--green-tint);color:var(--green)}.basis-nom{background:var(--warn-tint);color:var(--warn)}.loading,.empty,.error{padding:var(--space-6);color:var(--ink-3);font-size:var(--text-md)}.error{color:var(--danger)}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--paper)}.login-card{width:340px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sticky)}.login-brand{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--ink-2);text-align:center;margin-bottom:var(--space-5)}.login-brand b{color:var(--ink);font-weight:500}.login-card .btn{width:100%;margin-top:var(--space-2)}.login-error{font-size:var(--text-sm);color:var(--danger);margin-bottom:var(--space-2)}.login-warn{font-size:var(--text-xs);color:var(--warn);background:var(--warn-tint);border-radius:var(--radius);padding:var(--space-2);margin-bottom:var(--space-3);line-height:1.4}.login-warn code{font-family:var(--font-mono)}.board-legend{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;font-size:var(--text-xs);color:var(--ink-2);margin-bottom:var(--space-4)}.board-legend .key{display:inline-flex;align-items:center;gap:6px}.board-legend .key b{font-variant-numeric:tabular-nums}.board-legend .sw{width:11px;height:11px;border-radius:3px;border:1px solid rgba(0,0,0,.08)}.board-legend .sw-green{background:var(--green-tint);border-color:#a9c48f}.board-legend .sw-amber{background:var(--warn-tint);border-color:#cbb083}.board-legend .sw-red{background:var(--danger-tint);border-color:#d8a99c}.board-legend .legend-note{margin-left:auto;color:var(--ink-3)}.unitboard{width:100%;max-width:640px;height:auto;display:block}.ub-shape{fill:var(--surface);stroke:var(--line-strong);stroke-width:1.5}.ub-green .ub-shape{fill:var(--green-tint);stroke:#a9c48f}.ub-amber .ub-shape{fill:var(--warn-tint);stroke:#cbb083}.ub-red .ub-shape{fill:var(--danger-tint);stroke:#d8a99c}.ub-addr{font-family:var(--font-serif);font-size:26px;font-weight:500;fill:var(--ink)}.ub-rent{font-size:14px;font-weight:700;fill:var(--ink);font-variant-numeric:tabular-nums}.ub-sub{font-size:11px;fill:var(--ink-3)}.ub-amber .ub-sub{fill:var(--warn);font-weight:700}.ub-red .ub-sub{fill:var(--danger);font-weight:700}.unitboard .court{fill:none;stroke:var(--line-strong);stroke-width:1.5;stroke-dasharray:5 5}.unitboard .court-lbl{fill:var(--ink-3);font-style:italic;font-size:14px}.unitboard .street{fill:var(--ink-3);font-size:11px;letter-spacing:.1em}.money-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.money-head .page-title{margin-bottom:0}.wo-metrics{display:flex;align-items:flex-end;gap:var(--space-6);flex-wrap:wrap;padding-bottom:var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid var(--line)}.wo-metrics .fig{text-align:left}.wo-metrics .hbtn{margin-left:auto}.page.tasks{display:flex;flex-direction:column;align-items:center;padding-top:var(--space-4)}.tasks>*{flex:none;width:100%;max-width:720px}.chip{font-size:11px;padding:1px 8px;border-radius:9px;white-space:nowrap}.chip.court{background:var(--green-tint);color:var(--green);font-weight:600}.chip.due{background:var(--surface-sunk);color:var(--ink-2)}.chip.due.late{background:var(--danger-tint);color:var(--danger);font-weight:600}.chip.age{background:var(--surface-sunk);color:var(--ink-3)}.chip.age.old{background:var(--warn-tint);color:var(--warn);font-weight:600}.chip.ctx{background:var(--blue-tint);color:var(--blue)}.chip.done,.chip.ok{background:var(--green-tint);color:var(--green);font-weight:600}.chip.warn{background:var(--warn-tint);color:var(--warn);font-weight:600}.chip.danger{background:var(--danger-tint);color:var(--danger);font-weight:600}.newform{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center;background:var(--surface-sunk);border-bottom:1px solid var(--line);padding:var(--space-2) 12px}.newform input[type=text]{flex:1 1 190px;min-width:0;border:1px solid var(--line-strong);border-radius:var(--radius);padding:5px 8px;font:inherit}.newform select,.newform input[type=date]{border:1px solid var(--line-strong);border-radius:var(--radius);padding:4px 6px;font:inherit;background:var(--surface)}.newform .btn-pri,.newform .btn-ghost,.mactions .btn-pri,.mactions .btn-ghost{padding:5px 12px}.hbtn{border:0;background:none;color:var(--blue);font-family:var(--font-sans);font-size:11px;font-weight:700;text-transform:none;letter-spacing:0;padding:0;cursor:pointer}.hbtn:hover{text-decoration:underline}.tlist{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);margin-bottom:var(--space-3);overflow:hidden}.tlist>h2{font-family:var(--font-sans);font-size:var(--text-md);font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink);padding:7px 12px;background:var(--surface-sunk);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.tlist>h2 .count{margin-left:auto;color:var(--ink-3);font-weight:600}.tempty{padding:14px 12px;color:var(--ink-3);font-size:var(--text-sm)}.trow{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid var(--line);cursor:pointer}.trow:last-child{border-bottom:0}.trow:hover{background:var(--blue-tint)}.tmain{flex:1;min-width:0}.titlerow{display:flex;align-items:center;gap:8px;min-width:0}.ttitle{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcrumb{flex:0 2 auto;min-width:0;font-size:11px;font-weight:400;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.titlerow .chip{flex:none}.ttrail{display:flex;align-items:center;gap:6px}.ecard{display:flex;align-items:center;gap:8px;padding:7px 12px 7px 6px;border-bottom:1px solid var(--line);border-left:3px solid var(--green-2);background:#f8f8f6;cursor:pointer}.ecard:last-child{border-bottom:0}.ecard:hover{background:#f2f1ec}.ecard-title{font-family:var(--font-sans);font-size:var(--text-md);font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ecard-grip{flex:none;display:flex;align-items:center;color:var(--ink-3);cursor:grab}.ecard:hover .ecard-grip{color:var(--ink-2)}.ecard.dragging{opacity:.45;cursor:grabbing}.ecard.dragover{box-shadow:inset 0 2px 0 var(--green)}.egroup-head{display:flex;align-items:center;gap:8px;padding:6px 12px 4px;background:#f7f5ef;border-bottom:1px solid var(--line)}.egroup .trow{padding-left:28px}.egroup+.egroup .egroup-head{border-top:1px solid var(--line-strong);padding-top:11px}.egroup-title{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.egroup-head .count{margin-left:auto;color:var(--ink-3);font-weight:600;font-size:11px}.pbar{height:6px;border-radius:3px;background:var(--surface-sunk);overflow:hidden;width:64px;flex:none}.pbar i{display:block;height:100%;background:var(--green-2)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;max-width:none;background:#31313173;display:flex;align-items:flex-start;justify-content:center;padding:48px 24px;overflow:auto;z-index:60}.modal{position:relative;width:min(820px,100%);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal)}.modal-x{position:absolute;top:10px;right:12px;border:none;background:none;font-size:20px;line-height:1;color:var(--ink-3);cursor:pointer}.modal-x:hover{color:var(--ink)}.mhead{padding:16px 20px 12px;border-bottom:1px solid var(--line)}.mkind{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px}.mhead h3{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:500;padding-right:28px}.mhead h3.editable{cursor:text;margin:-2px -6px;padding:2px 6px;border-radius:var(--radius)}.mhead h3.editable:hover{background:var(--surface-sunk)}.titleedit{display:flex;gap:var(--space-2);align-items:center;padding-right:28px}.titleedit input{flex:1;min-width:0;font-family:var(--font-serif);font-size:var(--text-xl);font-weight:500;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);padding:2px 8px}.titleedit input:focus{outline:var(--focus-ring);border-color:var(--blue)}.titleedit .btn-pri,.titleedit .btn-ghost{padding:5px 12px;flex:none}.mmeta{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;align-items:center}.mnotes{font-size:var(--text-sm);color:var(--ink-2);margin-top:8px}.mrollup{font-size:11px;color:var(--ink-3);padding:6px 20px;background:var(--surface-sunk);border-bottom:1px solid var(--line)}.msubs{border-bottom:1px solid var(--line)}.msubs h4,.mdocs h4,.mthread h4{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);padding:10px 20px 4px}.subrow{display:flex;align-items:center;gap:10px;padding:5px 20px}.subrow input[type=checkbox]{width:15px;height:15px;accent-color:var(--green);flex:none}.subrow input[type=checkbox]:disabled{opacity:.45}.subtitle{flex:1;cursor:pointer}.subtitle:hover{color:var(--blue)}.subrow.done .subtitle{color:var(--ink-3);text-decoration:line-through}.subrow .lock{font-size:11px;color:var(--ink-3)}.addsub{display:flex;gap:8px;padding:8px 20px 12px}.addsub input[type=text]{flex:1;border:1px solid var(--line-strong);border-radius:var(--radius);padding:5px 8px;font:inherit}.addsub select{border:1px solid var(--line-strong);border-radius:var(--radius);padding:4px;font:inherit;background:var(--surface)}.mdocs .docchips{display:flex;gap:8px;padding:2px 20px 12px;flex-wrap:wrap}.doc{font-size:12px;background:var(--surface-sunk);border:1px solid var(--line);border-radius:var(--radius);padding:3px 10px;color:var(--ink-2);cursor:pointer;font-family:inherit}.doc.add{background:none;border-style:dashed}.mdocs{border:1px dashed transparent;border-radius:var(--radius);transition:background .08s,border-color .08s}.mdocs.dropping{background:var(--blue-tint);border-color:var(--blue)}.dophint{align-self:center;font-size:11px;color:var(--ink-3)}.mdocs.dropping .dophint{color:var(--blue);font-weight:600}.mthread ol{list-style:none;padding:4px 20px 12px}.mthread li{padding:5px 0 5px 14px;border-left:2px solid var(--line);margin-left:4px;font-size:12px}.mthread li .who{font-weight:700}.mthread li .kind{color:var(--ink-3)}.mthread li .at{color:var(--ink-3);font-size:11px}.mthread li .ebody{color:var(--ink-2);margin-top:1px}.mthread li.sys{border-left-color:var(--green-2)}.mthread li.sys .kind{color:var(--green);font-weight:600}.mactions{padding:12px 20px 16px;border-top:1px solid var(--line);background:var(--surface-sunk);display:flex;flex-direction:column;gap:10px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.mactions .arow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mactions .ahint{font-size:12px;color:var(--ink-3)}.mactions select{border:1px solid var(--line-strong);border-radius:var(--radius);padding:5px;background:var(--surface);font:inherit}.mactions input[type=text]{flex:1;min-width:160px;border:1px solid var(--line-strong);border-radius:var(--radius);padding:5px 8px;font:inherit}.mactions .acancel{border-top:1px solid var(--line);padding-top:10px}.mactions .confirmrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mactions .confirmrow .chint{flex:1;min-width:180px;font-size:12px;color:var(--danger)}.btn-danger{font:inherit;font-size:var(--text-sm);font-weight:600;border-radius:var(--radius);padding:5px 14px;cursor:pointer;background:var(--danger);color:#fff;border:1px solid var(--danger)}.btn-danger:hover{background:#873527}.btn-danger:disabled{opacity:.5;cursor:default}.tlist .clickable-h{cursor:pointer}.tlist.cancelled>h2{color:var(--ink-3)}
