:root{--ground: #f7f8fa;--panel: #ffffff;--sunk: #eff2f6;--edge: #dce1e8;--edge-soft: #e9edf2;--edge-lit: #cbd2dd;--guide: #9ea6b4;--mark: #6c7686;--mark-hover: #525b6a;--mark-dot: #333a47;--ink-struck: #7e8797;--ink: #181d28;--ink-mid: #525a69;--ink-faint: #8a93a3;--ink-ghost: #aeb6c2;--brass: #9c6f28;--brass-ink: #7d5820;--brass-soft: #f3e8d4;--leaf: #2c7457;--bar: #4a7bb5;--bar-track: #e2e7ee;--danger: #b3402f;--danger-soft: #f6e3df;--shadow: 0 1px 2px rgba(24, 29, 40, .05), 0 3px 10px rgba(24, 29, 40, .045)}@media(prefers-color-scheme:dark){:root{--ground: #10131a;--panel: #181c24;--sunk: #13161d;--edge: #2a303b;--edge-soft: #222831;--edge-lit: #3a4150;--guide: #4c5464;--mark: #6e7889;--mark-hover: #8f99ab;--mark-dot: #b6bfcc;--ink-struck: #6b7686;--ink: #e7eaf0;--ink-mid: #98a1b0;--ink-faint: #6a7382;--ink-ghost: #525b6a;--brass: #d3a45c;--brass-ink: #e0b876;--brass-soft: #32281a;--leaf: #64b795;--bar: #6f9fd8;--bar-track: #252b35;--danger: #e0776a;--danger-soft: #3a221e;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 3px 10px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font:16px/1.6 ui-sans-serif,-apple-system,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-radius:3px}.app{display:grid;grid-template-columns:250px 1fr;height:100%}.side{background:var(--sunk);border-right:1px solid var(--edge-soft);padding:24px 18px;overflow-y:auto;scrollbar-gutter:stable}.brand{display:inline-block;font-family:Georgia,Iowan Old Style,serif;font-size:30px;letter-spacing:.01em;color:var(--brass);background:none;border:none;padding:0;cursor:pointer;margin:0 0 3px;transition:color .12s ease}.brand:hover{filter:brightness(1.15)}.tagline{font-size:12.5px;color:var(--ink-mid);font-style:italic;margin:0 0 26px}.sect{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-ghost);font-weight:650;margin:0 0 9px;padding:0 8px}.rail{list-style:none;margin:0 0 28px;padding:0}.rail button{display:block;width:100%;text-align:left;font-size:12.5px;line-height:1.4;background:none;border:none;cursor:pointer;color:var(--ink-mid);padding:5px 8px;border-radius:5px}.rail button:hover{background:var(--edge-soft);color:var(--ink)}.rail li.here>button{background:var(--brass-soft);color:var(--brass-ink);font-weight:600}.rail.projects li{position:relative;display:flex;align-items:center;border-radius:5px}.rail.projects li.here{background:var(--brass-soft)}.rail.projects .proj{flex:1 1 auto;width:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail.projects li.here .proj{background:none}.rail.projects li.lifting{opacity:.4}.rail.projects li.lifting .proj{cursor:grabbing}.rail.projects li.drop-before:before,.rail.projects li.drop-after:after{content:"";position:absolute;left:4px;right:4px;height:2px;border-radius:1px;background:var(--brass)}.rail.projects li.drop-before:before{top:-1px}.rail.projects li.drop-after:after{bottom:-1px}.rail.projects .row-more{flex:none;width:auto;display:flex;align-items:center;background:none;border:none;cursor:pointer;color:var(--ink-ghost);line-height:1;padding:4px 6px;border-radius:5px;opacity:0;transition:opacity .12s ease,color .12s ease,background .12s ease}.rail.projects li:hover .row-more,.rail.projects li.menuing .row-more{opacity:1}.rail.projects .row-more:hover,.rail.projects li.menuing .row-more{color:var(--ink-mid);background:var(--edge-soft)}.row-menu{position:absolute;top:100%;right:4px;z-index:20;margin-top:2px;min-width:148px;padding:4px;background:var(--panel);border:1px solid var(--edge);border-radius:8px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1px}.row-menu-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:7px 9px;border:none;background:none;border-radius:5px;cursor:pointer;color:var(--ink-mid);font-size:12.5px;line-height:1}.row-menu-item:hover{background:var(--edge-soft);color:var(--ink)}.row-menu-item.danger{color:var(--danger)}.row-menu-item.danger:hover{background:var(--danger-soft);color:var(--danger)}.row-menu-confirm{display:flex;align-items:center;gap:4px;padding:5px 9px;font-size:12.5px;color:var(--danger)}.row-menu-confirm span{margin-right:auto}.rmc-yes,.rmc-no{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;border-radius:5px;cursor:pointer;font-size:12px;line-height:1}.rmc-yes{color:var(--danger);background:var(--danger-soft)}.rmc-yes:hover{color:#fff;background:var(--danger)}.rmc-no{color:var(--ink-mid);background:none}.rmc-no:hover{color:var(--ink);background:var(--edge-soft)}.rail.projects .new-proj button{color:var(--ink-ghost)}.rail.projects .new-proj button:hover{color:var(--brass-ink);background:var(--sunk)}.filters{display:flex;flex-direction:column;gap:13px}.filters label{display:flex;align-items:flex-start;gap:9px;cursor:pointer;font-size:12.5px;color:var(--ink-mid)}.filters input{margin:4px 0 0;accent-color:var(--brass);flex:none}.filters .fine{display:block;font-size:11px;color:var(--ink-ghost);line-height:1.45;margin-top:2px}.filters .scopename{color:var(--brass-ink);font-weight:600}.undo-actions{display:flex;gap:8px;margin-bottom:26px}.undo-actions button{flex:1;background:var(--panel);border:1px solid var(--edge);border-radius:6px;cursor:pointer;color:var(--ink-mid);font-size:12.5px;padding:6px 8px}.undo-actions button:hover:not(:disabled){border-color:var(--brass);color:var(--ink)}.undo-actions button:disabled{opacity:.4;cursor:default}.data-fold>summary{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-ghost);font-weight:650;cursor:pointer;list-style:none;padding:2px 0}.data-fold>summary::-webkit-details-marker{display:none}.data-fold>summary:before{content:"▸ ";font-size:8px}.data-fold[open]>summary:before{content:"▾ "}.data-fold>summary:hover{color:var(--ink-mid)}.data-actions{display:flex;gap:8px;margin-top:8px}.data-actions button{flex:1;background:var(--panel);border:1px solid var(--edge);border-radius:6px;cursor:pointer;color:var(--ink-mid);font-size:12.5px;padding:6px 8px}.data-actions button:hover{border-color:var(--brass);color:var(--ink)}.data-note{margin:8px 0 0}.whoami{margin:0 0 10px;padding:0 0 10px;border-bottom:1px solid var(--edge-soft)}.whoami-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.whoami-tag{opacity:.7;font-style:italic}.main{padding:26px 30px 40px;overflow-y:auto;scrollbar-gutter:stable}.crumbs,.scope-title,.scope-meta,.scope-progress,.landing,.rows{width:100%;max-width:720px;margin-inline:auto}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;font-size:12px;margin-bottom:18px}.crumbs button{background:none;border:none;cursor:pointer;font-size:12px;color:var(--ink-faint);padding:2px 5px;border-radius:4px}.crumbs button:hover{background:var(--edge-soft);color:var(--ink)}.crumbs button.cur{color:var(--ink);font-weight:600}.crumbs .sep{opacity:.4;color:var(--ink-faint)}.scope-title{font-family:Georgia,Iowan Old Style,serif;font-weight:400;font-size:26px;line-height:1.25;letter-spacing:-.01em;padding:4px 6px;margin-block:-4px 3px}.scope-title.editable{cursor:text;border-radius:6px}.scope-title.editable:hover{background:var(--edge-soft)}.scope-title.editable[contenteditable=true]{box-shadow:inset 0 0 0 1px var(--brass);outline:none;cursor:text}.scope-title.editable[contenteditable=true]:empty:before{content:"Untitled";color:var(--ink-ghost)}.scope-meta{font-size:12px;color:var(--ink-ghost);margin-bottom:14px}.scope-progress{padding-left:5px}.crumb-count{color:var(--ink-ghost);padding:2px 5px}.rows{position:relative}.row{display:flex;align-items:flex-start;gap:7px;padding:5px 6px;border-radius:6px;position:relative;isolation:isolate}.row:hover{background:var(--sunk)}.row.gap-slot{height:16px;padding-top:0;padding-bottom:0;border-radius:4px;background:transparent;box-shadow:inset 0 0 0 1px var(--brass);opacity:.5}.row.gap-slot:hover{background:transparent}.row.gap-slot.drop-return{background:var(--brass-soft);box-shadow:inset 0 0 0 1.5px var(--brass);opacity:1}.row.drop-into{background:var(--brass-soft);box-shadow:inset 0 0 0 1.5px var(--brass)}.row.drop-into .bullet:before{border-color:var(--brass)}.row.drop-into .bullet.parent.collapsed:before{border-width:2px;border-color:var(--brass)}.row.drop-into .bullet.leaf:before{content:"";position:absolute;inset:2px;border-radius:50%;border:2px solid var(--brass)}.row.drop-before,.row.drop-after{z-index:1}.row.drop-before:before,.row.drop-after:before{content:"";position:absolute;left:var(--drop-x, 6px);right:6px;height:2px;background:var(--bar);border-radius:1px}.row.drop-before:after,.row.drop-after:after{content:"";position:absolute;left:var(--drop-x, 6px);width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--bar)}.row.drop-before:before{top:-1px}.row.drop-after:before{bottom:-1px}.row.drop-before:after{top:-3px}.row.drop-after:after{bottom:-3px}.drag-ghost{position:fixed;z-index:100;pointer-events:none;display:flex;align-items:center;gap:9px;max-width:340px;padding:7px 12px 7px 10px;background:var(--panel);border:1px solid var(--edge);border-radius:8px;box-shadow:0 6px 20px #00000059,0 2px 6px #00000040;transform:rotate(-1.5deg)}.drag-ghost .bullet{margin-top:0}.drag-ghost .ghost-label{font-size:14.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fold,.zoom{flex:none;width:23px;height:23px;margin:-4px;align-self:center;display:flex;align-items:center;justify-content:center;position:relative;background:none;border:none;padding:0;cursor:pointer;color:var(--ink-ghost);font-size:14px;line-height:1;opacity:0;transition:opacity .12s ease,color .12s ease}.fold:before,.zoom:before{content:"";position:absolute;width:15px;height:15px;border-radius:50%;background:none;transition:background .12s ease;z-index:1}.fold svg{position:relative;z-index:2}.zoom.trailing{width:auto;height:auto;margin:0 0 0 auto;padding:2px 5px;border-radius:5px}.zoom.trailing:before{content:none}.fold.leaf:before{content:none}.fold.leaf{cursor:default}.row:hover .zoom.trailing{background:var(--edge)}.zoom.trailing:hover{background:var(--edge-lit)}.zoom.trailing:focus-visible{background:var(--edge-lit)}.row:hover .zoom,.row:hover .fold{opacity:1}.row:hover .zoom:before,.row:hover .fold:before{background:var(--edge-lit)}.zoom:hover{color:var(--ink)}.fold:hover{color:var(--mark-hover)}.zoom:focus-visible,.fold:focus-visible{opacity:1}.zoom:focus-visible:before,.fold:focus-visible:before{background:var(--edge-lit)}.fold{color:var(--mark)}.fold{align-self:flex-start;top:5.5px}.fold svg{transition:transform .15s ease}.fold.open svg{transform:rotate(90deg)}.guide{position:absolute;top:0;bottom:0;width:1px;background:var(--guide);pointer-events:none}.bullet{width:18px;height:18px;flex:none;background:none;border:none;padding:0;cursor:pointer;position:relative;margin-top:4px;touch-action:none}body:has(.row.gap-slot){cursor:default}.bullet:after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--mark-dot);transition:background .12s ease}.bullet.parent:before{content:"";position:absolute;inset:2px;border-radius:50%;border:2px solid var(--mark);transition:border-color .12s ease,background .12s ease}.bullet.parent.collapsed:before{inset:0;border-width:0;border-color:var(--mark);background:var(--mark)}.bullet:hover:before{border-color:var(--mark-hover)}.bullet.parent.collapsed:hover:before{border-color:var(--mark-hover);background:var(--mark-hover)}.bullet:hover:after{background:var(--ink)}.bullet.inert{cursor:default}.check{width:15px;height:15px;flex:none;margin-top:5px;border:1.5px solid var(--mark);border-radius:4px;background:none;padding:0;cursor:pointer;position:relative}.check:hover{border-color:var(--bar)}.check[aria-checked=true]{background:var(--bar);border-color:var(--bar)}.check.group-done[aria-checked=true]{background:var(--leaf);border-color:var(--leaf)}.check[aria-checked=true]:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%,-60%) rotate(42deg)}.check{transition:background-color .25s ease,border-color .25s ease}.body{flex:1;min-width:0}.label{display:flex;align-items:baseline;line-height:1.5;font-size:14.5px;cursor:text}.label-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row.done .label,.fold-mask-item.done .label{color:var(--ink-struck);text-decoration:line-through}.label-input{width:100%;font:inherit;font-size:14.5px;line-height:1.5;background:var(--panel);color:var(--ink);border:1px solid var(--brass);border-radius:6px;padding:5px 6px;margin-top:-4px}.label-input:focus-visible{outline:none}.chip{font-size:10.5px;color:var(--ink-ghost);margin-left:8px;flex:none;white-space:nowrap}.scope-progress{display:flex;align-items:center;gap:10px;margin-bottom:14px}.pbar{height:4px;flex:1;background:var(--bar-track);border-radius:2px;overflow:hidden}.pbar i{display:block;height:100%;border-radius:2px;background:var(--bar);transition:width .45s cubic-bezier(.4,0,.2,1),background-color .3s ease}.pct{font-size:11px;color:var(--ink-faint);font-variant-numeric:tabular-nums;min-width:32px;text-align:right}.scope-progress.complete .pbar i{background:var(--leaf)}.scope-progress.complete .pct{color:var(--leaf);font-weight:650}.landing{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:8px}.proj-card{position:relative;background:var(--panel);border:1px solid var(--edge);border-radius:10px;transition:border-color .12s ease,transform .12s ease}.proj-card:hover{border-color:var(--brass);transform:translateY(-1px)}.proj-card.lifting{opacity:.4}.proj-card.drop-before:before,.proj-card.drop-after:after{content:"";position:absolute;top:6px;bottom:6px;width:2px;border-radius:1px;background:var(--brass)}.proj-card.drop-before:before{left:-7px}.proj-card.drop-after:after{right:-7px}.proj-card-open{display:flex;flex-direction:column;gap:9px;width:100%;text-align:left;background:none;border:none;border-radius:10px;padding:15px 16px;cursor:pointer}.proj-card-del{position:absolute;top:8px;right:8px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:5px;cursor:pointer;color:var(--ink-ghost);font-size:12px;line-height:1;opacity:0;transition:opacity .12s ease,color .12s ease,background .12s ease}.proj-card:hover .proj-card-del{opacity:1}.proj-card-del:hover{color:var(--danger);background:var(--danger-soft)}.proj-card-confirm{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:3px}.proj-card-cancel,.proj-card-confirm-yes{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:5px;cursor:pointer;font-size:12px;line-height:1;transition:color .12s ease,background .12s ease}.proj-card-cancel{color:var(--ink-mid)}.proj-card-cancel:hover{color:var(--ink);background:var(--edge-soft)}.proj-card-confirm-yes{color:var(--danger);background:var(--danger-soft)}.proj-card-confirm-yes:hover{color:#fff;background:var(--danger)}.proj-card-head{display:flex;align-items:center;gap:8px;padding-right:20px}.proj-card-title{font-size:14.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-card .pbar.complete i{background:var(--leaf)}.proj-card-meta{font-size:11.5px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.proj-card.new{display:flex;align-items:center;text-align:left;padding:15px 16px;cursor:pointer;color:var(--ink-ghost);font-size:13.5px;border-style:dashed;background:none}.proj-card.new:hover{color:var(--brass-ink);border-color:var(--brass)}@keyframes ripple{0%{transform:translate(0)}33%{transform:translate(2px)}66%{transform:translate(-2px)}to{transform:translate(0)}}.row.ripple>:not(.guide){animation:ripple .4s ease-in-out;animation-delay:var(--ripple-delay, 0ms)}.fold-mask{position:fixed;overflow:hidden;pointer-events:none;margin:0}.fold-mask-item{position:absolute;left:0;right:0;display:flex;align-items:flex-start;gap:7px;padding:5px 6px;border-radius:6px}@media(prefers-reduced-motion:reduce){.row.ripple>:not(.guide){animation:none}.pbar i,.twisty{transition:none}}.empty{color:var(--ink-ghost);font-size:13.5px;font-style:italic;padding:18px 6px}.add{margin-top:10px;background:none;border:none;cursor:pointer;color:var(--ink-ghost);font-size:13px;padding:6px;border-radius:5px}.add:hover{color:var(--brass-ink);background:var(--sunk)}@media(max-width:820px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}.side{border-right:none;border-bottom:1px solid var(--edge-soft);padding:18px}.main{padding:20px 18px 40px}}
