:root{color-scheme:dark;--bg:#10151e;--surface:#161e29;--surface2:#1b2532;--line:#293747;--text:#dae4ef;--muted:#97a8bb;--dim:#6b7f95;--blue:#7aa7d5;--blueSoft:#22384d;--ready:#79b8aa;--hot:#d7ae75;--frozen:#a0a4b5;--done:#68788b;font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}[hidden]{display:none!important}
.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:relative;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;height:48px;padding:6px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.brand{display:flex;align-items:center;gap:9px;min-width:0;white-space:nowrap}.logo{width:30px;height:30px;flex:0 0 30px;border:1px solid #6385a8;background:#1d3144;display:grid;place-items:center;border-radius:8px;color:#c5dcf5;font-size:12px;font-weight:750;letter-spacing:.8px}.brand strong{font-size:15px;overflow:hidden;text-overflow:ellipsis}.top-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.soft,.aside-head button{border:1px solid var(--line);background:var(--surface2);color:var(--text);padding:6px 10px;border-radius:7px}.soft:hover,.aside-head button:hover{border-color:#56809f}.toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-right:10px;cursor:pointer}.toggle input{accent-color:var(--blue)}
.app-body{display:grid;grid-template-columns:176px minmax(0,1fr);flex:1;min-height:0}.sidebar{background:var(--surface);padding:14px 10px;border-right:1px solid var(--line)}.aside-head{display:flex;justify-content:space-between;align-items:center;padding:0 7px 10px;color:var(--dim);font-size:10px;font-weight:700;letter-spacing:1.35px}.aside-head button{padding:2px 9px;font-size:17px}.project-nav{display:grid;gap:6px}.project-link{width:100%;display:flex;align-items:center;justify-content:space-between;padding:9px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text);text-align:left}.project-link:hover{background:var(--surface2);border-color:var(--line)}.project-link strong{display:inline-flex;align-items:center;gap:11px;font-size:13px}.project-letter{font-weight:700;border:1px solid #50647a;color:#c0d2e4;border-radius:5px;padding:2px 7px;min-width:27px;text-align:center}.count{font-size:11px;color:var(--dim)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ready)}
.main-panel{padding:0 16px 20px;min-width:0}h1{font-weight:620;letter-spacing:.2px;font-size:17px;margin:0}.legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;font-size:12px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:7px}.state-mark{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ready)}.state-mark.hot{background:var(--hot)}.state-mark.frozen{background:var(--frozen)}.state-mark.done{background:var(--done)}
.project-sections{display:grid;gap:22px;padding-top:21px}.project-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:17px;scroll-margin-top:26px}.project-card-header{display:flex;align-items:center;gap:12px;padding:0 3px 15px}.project-card-header .node-chip{min-width:95px}.project-card-desc{font-size:12px;color:var(--muted);min-width:0;flex:1}.new-branch{padding:6px 11px;border-radius:8px;border:1px solid var(--line);background:var(--surface2);color:var(--text)}.project-lanes{display:flex;flex-direction:column;gap:10px;padding-left:26px;border-left:2px solid #293e50;margin-left:21px}.lane{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-height:54px}.connector{color:var(--dim);font-size:17px;flex-shrink:0}.project-card-footer{font-size:11px;color:var(--dim);margin:14px 4px 0}.empty{padding:19px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:12px}
.node-chip{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;position:relative;min-width:118px;max-width:213px;min-height:52px;padding:8px 12px;border-radius:9px;background:var(--surface2);border:1px solid #33485e;color:var(--text);text-align:left;user-select:none;touch-action:none;transition:transform .16s cubic-bezier(.18,.82,.26,1.24),border-color .14s,box-shadow .14s;cursor:grab}.node-chip:active{cursor:grabbing}.node-chip strong{font-size:13px;letter-spacing:.1px}.node-chip small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:185px}.node-chip .node-state{font-weight:600;position:absolute;right:9px;top:9px;font-size:9px}.node-chip[data-state="hot"]{border-left:3px solid var(--hot)}.node-chip[data-state="ready"]{border-left:3px solid var(--ready)}.node-chip[data-state="frozen"]{border-left:3px solid var(--frozen);opacity:.78}.node-chip[data-state="done"]{border-left:3px solid var(--done);opacity:.56}.node-chip[data-state="done"] strong{text-decoration:line-through}.node-chip .node-state{color:var(--ready)}.node-chip[data-state="hot"] .node-state{color:var(--hot)}.node-chip[data-state="frozen"] .node-state{color:var(--frozen)}.node-chip[data-state="done"] .node-state{color:var(--done)}.node-chip.focused{border-color:var(--blue);box-shadow:0 0 0 3px #6f9ac630;background:#23364a}.node-chip.pending-parent{border-color:#dfb67e;box-shadow:0 0 0 2px #dfb67e30}.node-chip.dragging{transition:none;z-index:12}.completed-chain{display:flex;align-items:center;gap:4px;font-size:11px;border:1px dashed #45515d;color:var(--dim);padding:6px 10px;border-radius:20px;white-space:nowrap}
.focus-card{border:1px solid #3a526d;background:#19293a;border-radius:11px;padding:14px}.focus-card h2{margin:0 0 8px;font-size:20px}.focus-card p{margin:6px 0;color:var(--muted);font-size:12px}.detail-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:10px 0;font-size:12px}.detail-row strong{color:var(--text);font-weight:600;text-align:right}.focus-actions{display:flex;gap:8px;margin-top:12px}.focus-actions button{flex:1}.log-head{margin:27px 7px 12px;font-size:10px;letter-spacing:1.3px;color:var(--dim);font-weight:700}.event-log{display:grid;gap:13px;max-height:55vh;overflow:auto;padding:0 6px}.event-entry{border-left:2px solid #334b63;padding-left:11px;font-size:12px;line-height:1.5}.event-entry small{display:block;margin-bottom:3px;color:var(--dim);font-size:10px}.event-entry div{color:var(--muted)}.event-entry[data-type="reparent"]{border-color:var(--blue)}
.gesture-dock{display:flex;align-items:center;height:25px;padding:3px 16px;border-top:1px solid var(--line);background:#121a25f5;z-index:20;font-size:11px;color:var(--muted)}.gesture-dock em{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;color:var(--blue)}.move-banner{margin:13px 0;padding:10px 13px;border:1px solid #9e8051;border-radius:9px;background:#302b24;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.move-banner button{padding:3px 9px}
.context-menu{position:fixed;min-width:225px;padding:6px;border:1px solid #56708a;border-radius:10px;z-index:100;background:#203043;box-shadow:0 20px 55px #0008;display:grid;gap:2px}.context-menu button{border:0;border-radius:6px;background:transparent;color:var(--text);text-align:left;padding:9px 11px;font-size:12px}.context-menu button:hover{background:#314962}.context-menu button:disabled{opacity:.35}dialog{width:min(425px,calc(100% - 24px));padding:0;border:1px solid #4b6883;border-radius:14px;background:#1a2635;color:var(--text);box-shadow:0 25px 110px #000a}dialog::backdrop{background:#090e16ad}dialog form{display:grid;gap:14px;padding:23px}dialog h2{font-size:19px;font-weight:650;margin:0}dialog p{font-size:12px;color:var(--muted);margin:0}dialog label{font-size:12px;color:var(--muted)}dialog input{background:#111b28;color:var(--text);border:1px solid #455d76;border-radius:8px;padding:10px 12px;width:100%}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.primary{border:1px solid #789dc0;background:#355774;color:#fff;border-radius:8px;padding:8px 15px}#toast{position:fixed;right:20px;bottom:55px;background:#304761;color:#fff;border-radius:9px;padding:10px 16px;font-size:12px;box-shadow:0 10px 30px #0008;z-index:90;opacity:0;pointer-events:none;transition:opacity .2s}#toast.visible{opacity:1}
@media(max-width:1120px){.app-body{grid-template-columns:150px minmax(0,1fr)}}
/* A project and its first frontier share the same baseline. Extra branches,
   not tree depth, consume rows. Expanded history wraps only within this lane. */
.project-sections{gap:14px;padding-top:12px}
.project-card{position:relative;display:grid;grid-template-columns:155px minmax(0,1fr);column-gap:10px;padding:14px}
.project-card-header{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:0;justify-content:flex-start}
.project-card-header .node-chip{width:100%;max-width:none}
.project-card-desc{display:none}
.new-branch{position:absolute;right:14px;bottom:7px;padding:5px 10px;min-height:32px}
.project-lanes{container-type:inline-size;grid-column:2;grid-row:1;gap:8px;padding:0;margin:0;border-left:1px solid #3b5268;min-width:0}
.lane{gap:8px;flex-wrap:nowrap;min-height:56px;align-items:flex-start;min-width:0}
.lane.expanded{flex-wrap:wrap}
.lane>.connector{padding-top:16px}
.lane>.node-chip{flex:0 1 195px;min-width:118px}
.node-chip{min-height:56px;padding:8px 10px}
.node-chip strong{padding-right:34px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.node-chip small{font-size:12px;max-width:100%;line-height:1.5}
.node-chip .node-state{font-size:10px}
.completed-chain{background:var(--surface2);color:var(--muted);min-height:44px;align-self:center;white-space:normal;max-width:140px;flex-shrink:0;font-size:12px}
.project-card-footer{grid-column:1/-1;margin:10px 0 0;padding-right:85px;min-height:24px}
.context-menu{max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto}
@container(max-width:400px){.lane{flex-wrap:wrap}.lane>.node-chip{max-width:calc(100% - 28px);min-width:0;flex-basis:195px}.completed-chain{max-width:calc(100% - 28px)}}
@media(max-width:720px){.project-card{grid-template-columns:106px minmax(0,1fr);padding:10px;column-gap:6px}.lane{flex-wrap:wrap}.lane>.node-chip{min-width:100px;max-width:100%;flex-basis:160px}.project-card-header .node-chip{min-width:0}.project-card-header .node-state{position:static}.completed-chain{max-width:100%}.top-actions{gap:5px}}
.drag-fx{position:fixed;inset:0;overflow:hidden;contain:paint;pointer-events:none;z-index:40}
.desktop-nav{display:grid;gap:6px;margin-bottom:26px}.desktop-tab{border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);padding:10px 12px;text-align:left;overflow-wrap:anywhere}.desktop-tab.selected{color:var(--text);background:var(--blueSoft);border-color:#446787}.desktop-tab:hover{background:var(--surface2)}#editDesktop{margin:0}.project-link strong{overflow-wrap:anywhere;min-width:0}
.pin-project{position:absolute;right:96px;bottom:7px;padding:5px 10px;min-height:32px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--muted)}.pin-project.pinned{color:#f1ce7a;border-color:#77623d}.project-card-footer{padding-right:175px}.node-chip strong{font-size:14px}.node-chip .node-state{position:static;margin-top:4px;font-size:11px}.node-chip strong{padding-right:0}.node-chip[data-state="hot"]{--hot:#efa45c}.node-chip[data-state="frozen"]{--frozen:#9bdcff}.state-mark.frozen{background:#9bdcff}
.drag-light{position:fixed;pointer-events:none;z-index:40;background:radial-gradient(ellipse,rgb(var(--glow-rgb)/.65),rgb(var(--glow-rgb)/0) 70%);filter:blur(8px)}.drag-light[data-direction="up"]{background:radial-gradient(ellipse at 50% 100%,rgb(var(--glow-rgb)/.8),transparent 70%)}.drag-light[data-direction="down"]{background:radial-gradient(ellipse at 50% 0%,rgb(var(--glow-rgb)/.8),transparent 70%)}.drag-light[data-direction="left"]{background:radial-gradient(ellipse at 100% 50%,rgb(var(--glow-rgb)/.8),transparent 70%)}.drag-light[data-direction="right"]{background:radial-gradient(ellipse at 0% 50%,rgb(var(--glow-rgb)/.8),transparent 70%)}
.node-chip.dragging{box-shadow:0 0 calc(8px + 28px * var(--drag-power,0)) rgb(var(--drag-rgb,255 255 255)/.65)}.node-chip.dragging[data-drag-ready="true"]{outline:2px solid rgb(var(--drag-rgb));outline-offset:3px}.node-chip.dragging[data-drag-direction="left"]{opacity:calc(1 - .5 * var(--drag-power,0))}
.drag-preview{position:fixed;z-index:45;pointer-events:none;width:min(410px,calc(100vw - 16px));padding:12px 16px;border:1px solid #c4ad60;background:#2c281ce8;border-radius:12px;color:#fff0b0}.drag-preview[data-color="gold"]{border-color:#ffbe3c;background:#443316ed;color:#ffdb85}.drag-preview strong{font-size:13px}.drag-preview>div{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}.ghost-thread{display:grid;place-items:center;width:42px;height:29px;border:1px dashed currentColor;border-radius:6px;opacity:.85}.drag-preview[data-parallel="true"]>div{flex-direction:column;align-items:flex-start;gap:3px}.drag-preview[data-parallel="true"] .ghost-thread{width:64px;height:18px;font-size:11px}/* parallel drafts: stacked three high, then the next column */.draft-fan{display:grid;grid-auto-flow:column;grid-template-rows:repeat(3,auto);gap:6px;flex:none}.draft-fan .draft-chip{flex:none;width:165px}
.batch-workbench{grid-column:1/-1;min-width:0;margin:20px 0 8px;padding:14px;border:1px solid #86703f;background:#211f1b;border-radius:12px;scroll-margin:20px}.batch-caption{color:#e6ca89;font-size:13px;margin-bottom:12px;overflow-wrap:anywhere}.draft-ribbon{display:flex;align-items:center;gap:9px;overflow:auto;padding:5px 5px 14px;min-width:0}.draft-origin{flex:0 0 140px;overflow-wrap:anywhere;font-size:13px;color:var(--muted)}.draft-chip{flex:0 0 165px;display:grid;gap:5px;min-height:65px;text-align:left;border:1px dashed #786747;border-radius:8px;background:#2b2922;color:var(--text);padding:9px 12px}.draft-chip.active{border:2px solid #ecc66c;background:#413623;box-shadow:0 0 0 2px #e0bb5b2b}.draft-chip small{color:#bba979}.draft-chip strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.batch-editor{display:grid;gap:8px;border-top:1px solid #5c5035;padding-top:12px}.batch-editor label{color:#e7ce94;font-size:13px}.batch-editor input{min-width:0;width:100%;padding:11px 12px;border:1px solid #97804e;border-radius:8px;color:var(--text);background:#161b23;font:inherit}.batch-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.batch-controls span{font-size:12px;color:var(--muted);margin-right:auto}#desktopProjects{display:grid;gap:10px;max-height:35vh;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:12px}#desktopProjects label{display:flex;align-items:center;gap:10px;color:var(--text)}#desktopProjects input{width:auto}
@media(max-width:720px){.sidebar .aside-head{display:flex}.desktop-nav{display:flex;overflow:auto;margin-bottom:8px}.desktop-tab{flex-shrink:0}.sidebar .aside-head{padding:4px 5px}.project-card-footer{padding-right:0;padding-bottom:34px}.batch-workbench{padding:10px}.draft-origin{flex-basis:100px}.draft-chip{flex-basis:145px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
/* Content-sized nodes, earliest unfinished paths, and contained repeatable steps. */
.project-card{grid-template-columns:fit-content(220px) minmax(0,1fr)}
.project-card-header{align-items:flex-start;min-width:0}
.project-card-header .node-chip,.node-chip,.lane>.node-chip{width:max-content;min-width:6em;max-width:220px;flex:0 0 auto}
.node-chip strong{max-width:100%;white-space:nowrap}
.lane{flex-wrap:wrap;align-items:flex-start}
.node-chip[data-state="blocked"]{border:1px dashed #67758d;background:#202737}
.node-chip[data-state="blocked"] .node-state{color:#b4bfd7}
.node-chip[data-state="closed"]{opacity:.5}
.loop-box{flex:0 1 580px;max-width:calc(100% - 28px);min-width:0;padding:12px;border:1px solid #628795;border-radius:15px;background:#172b34;box-shadow:inset 0 0 35px #55979710}
.loop-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.loop-heading .node-chip{border-color:#7499a8;max-width:100%}
.round-badge{font-size:12px;color:#b5ede3;font-weight:700;border:1px solid #517c80;background:#23454b;border-radius:20px;padding:4px 9px}
.loop-toggle{font-size:11px;margin-left:auto;padding:5px 8px}
.loop-steps{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:12px 0 0;border-top:1px solid #36515e}
.loop-steps .node-chip{max-width:100%;animation:loop-arrive .2s ease-out}
.loop-hint{font-size:11px;color:#a7bdc5;margin:10px 0 0;overflow-wrap:anywhere}
.loop-closed{opacity:.7}.round-history{font-size:12px;margin-top:12px}.round-history summary{cursor:pointer}
textarea{font:inherit;background:#111b28;color:var(--text);border:1px solid #455d76;border-radius:8px;padding:10px 12px;width:100%;resize:vertical}
@keyframes loop-arrive{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:720px){.project-card{grid-template-columns:fit-content(125px) minmax(0,1fr)}.project-card-header .node-chip{max-width:125px}.lane>.node-chip{max-width:calc(100% - 28px);min-width:0}.loop-box{padding:8px}.loop-heading .node-chip,.loop-steps .node-chip{min-width:0}}
/* The sidebar and graph area scroll independently; branches use the main vertical range. */
html,body{height:100%;overflow:hidden}
.app-shell{height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.app-body{min-height:0;overflow:hidden}
.sidebar,.main-panel{height:100%;min-height:0;overflow:auto;overscroll-behavior:auto;scrollbar-gutter:stable}
.main-panel{scroll-behavior:auto;scroll-padding:16px}
.loop-steps>.loop-box{flex:1 1 100%;margin-left:12px;background:#19343d}
.selected-thread{outline:2px solid #b8a3ff!important;outline-offset:3px;box-shadow:0 0 0 5px #a58cff20!important}
.moving-thread{opacity:.45}
.selection-box{position:fixed;z-index:70;border:1px solid #b8a3ff;background:#a58cff26;pointer-events:none}
.move-preview{position:fixed;z-index:75;pointer-events:none;padding:10px 14px;max-width:min(360px,calc(100vw - 16px));background:#302b4cef;border:1px solid #c7b8ff;border-radius:10px;font-size:13px;color:#eee7ff}
[data-drop="before"]{box-shadow:-7px 0 0 #c7b8ff!important}[data-drop="after"],[data-drop="edge"]{box-shadow:7px 0 0 #c7b8ff!important}
[data-drop="project"]{outline:3px solid #c7b8ff!important}
[data-drop="waiting"]{outline:2px solid rgb(255 208 100 / calc(.2 + var(--dwell)*.8))!important;background:#4b3b22!important}
[data-drop="loop"]{outline:3px solid #ffcf64!important;box-shadow:0 0 26px #ffcf6480!important;background:#514021!important}
@media(max-width:720px){.app-body{grid-template-columns:100px minmax(0,1fr)}.sidebar{padding:8px}.desktop-nav,.project-nav{display:grid;overflow:visible}.project-link{min-width:0}.project-card{grid-template-columns:minmax(0,1fr)}.project-card-header{grid-row:1;grid-column:1}.project-lanes{grid-row:2;grid-column:1;border-left:0;margin-top:10px}.topbar{gap:8px;padding:6px 10px}.gesture-dock{padding:3px 10px;font-size:10px}}
.loop-steps>.loop-box{flex:1 1 calc(100% - 44px);max-width:calc(100% - 32px);margin-left:0}
.subset-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:0;margin:18px 0 12px;min-width:0}
.subset-options legend{font-size:12px;color:var(--muted);margin-bottom:8px}
.subset-options label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface2);cursor:pointer;min-width:0}
.subset-options label:has(input:checked){border-color:#e6be67;background:#3a3120;box-shadow:0 0 0 1px #e6be67}
.subset-options input{width:auto;margin:0;accent-color:#e6be67;flex:0 0 auto}
.subset-options strong,.subset-options small{display:block}.subset-options small{font-size:12px;color:var(--muted);margin-top:4px}
#subsetHelp{min-height:3em}#loopDialog{max-height:calc(100dvh - 24px);overflow:auto}
#subsetError{color:#ffb8ad}
.loop-box[data-subset-kind="once"]>.loop-heading .round-badge{background:#29394d;color:#c2d7ef;border-color:#617c9c}
@media(max-width:480px){.subset-options{grid-template-columns:1fr}}
/* Details belong to the hovered thread, outside graph transforms and scroll ranges. */
.thread-peek{position:fixed;z-index:90;display:flex;flex-direction:column;width:min(360px,calc(100vw - 16px));max-height:calc(100dvh - 16px);border:1px solid #54728e;border-radius:11px;background:#1b2938;box-shadow:0 12px 35px #0008;overflow:hidden;overflow-wrap:anywhere;font-size:12px;line-height:1.55}
.peek-heading{display:flex;align-items:flex-start;gap:10px;padding:12px 12px 9px;flex-shrink:0;border-bottom:1px solid #33485e}.peek-heading>div{min-width:0;flex:1}.peek-heading small{color:var(--muted);font-size:11px}.peek-heading h2{font-size:15px;line-height:1.4;margin:3px 0 0;font-weight:650}.peek-close{width:28px;height:28px;flex-shrink:0;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:20px;line-height:1}.peek-close:hover{background:#33485e;color:var(--text)}
.peek-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:9px 12px}.peek-body p{margin:0 0 8px;white-space:pre-wrap}.peek-body p:last-child{margin-bottom:0}.peek-body strong{font-weight:600;color:#9fb7ce}.peek-body details{margin:8px 0 0}.peek-body summary{cursor:pointer;color:#b5cbe0;padding:4px 0}.peek-body details[open]>summary{margin-bottom:5px}.peek-body a{color:#a9cfff;text-underline-offset:2px}.peek-actions{display:flex;gap:7px;flex-shrink:0;padding:8px 12px;border-top:1px solid #33485e}.peek-actions .soft{font-size:12px;min-height:30px}
/* One positioned primary chip per stable ID; only edge terminals accept pointer input. */
.project-sections{width:max-content;min-width:100%;gap:12px;padding-top:4px}
.project-card{display:block;padding:0;border:0;border-radius:0;background:transparent;overflow:visible;scroll-margin:16px}
.graph-scroll{overflow:visible;padding:0}
.graph-space,.graph-canvas{position:relative}.graph-space{overflow:clip;overflow-clip-margin:32px}.graph-canvas{transform-origin:0 0;isolation:isolate}
.graph-node{position:absolute;z-index:3}.graph-node>.node-chip{width:100%;height:100%;max-width:none;min-width:0}
.graph-node strong{display:block;flex-shrink:0;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;line-height:1.35}
.graph-node:has(.dragging){z-index:10}
.graph-edges{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:visible}
.graph-edges path{fill:none;stroke:#58758f;stroke-width:1.6}
.graph-edge-handle{position:absolute;z-index:2;display:block;min-width:0;min-height:0;padding:0!important;background:transparent;border:0;pointer-events:none;outline:none;touch-action:none}
.edge-hit-region{display:block;overflow:visible}.edge-hit-path{fill:none;stroke:transparent;stroke-width:22;pointer-events:stroke;cursor:ew-resize;vector-effect:non-scaling-stroke}.edge-highlight{fill:none;stroke:#9ebcda;stroke-width:2.2;opacity:0;pointer-events:none;vector-effect:non-scaling-stroke;transition:opacity .12s}
.graph-edge-handle:hover .edge-highlight,.graph-edge-handle:focus-visible .edge-highlight,.graph-edge-handle.dragging .edge-highlight,.graph-edge-handle[data-drop="edge"] .edge-highlight{opacity:1}.graph-edge-handle:focus-visible{outline:none;outline-offset:0}.graph-edge-handle[data-drop="edge"]{box-shadow:none!important}
.graph-summary{position:absolute;z-index:3;max-width:none;justify-content:center;border-radius:10px;text-align:left;opacity:.75;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 12px}.graph-summary small{font-size:10px;color:var(--dim)}
/* Finished branches hide behind this; it sits on the corner of the item they left from. */
.done-badge{position:absolute;z-index:4;height:20px;min-width:34px;min-height:0;padding:0 7px;border-radius:10px;border:1px solid #3d5c4c;background:#1b2b25;color:#8fc2a9;font-size:11px;line-height:18px;cursor:pointer;opacity:.8}.done-badge:hover,.done-badge:focus-visible{opacity:1}
.subset-frame{position:absolute;z-index:0;border:1px solid #547d8d;border-radius:13px;background:#172b34}
.subset-frame[data-subset-kind="once"]{background:#1b283a;border-color:#4a6686}
.subset-caption{position:absolute;top:10px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.subset-caption .round-badge{font-size:11px;padding:4px 6px}.subset-caption button{pointer-events:auto;min-height:36px}
.subset-frame{pointer-events:auto}.subset-caption{pointer-events:auto;z-index:4}
.subset-hint{position:absolute;bottom:4px;left:16px;right:8px;color:var(--muted);font-size:11px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-card-footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:max-content;padding:0 16px;margin:0;min-height:26px}
.project-card-footer .new-branch,.project-card-footer .pin-project{position:static;min-height:26px;padding:3px 7px;font-size:11px}.project-card-footer .new-branch{margin-left:0}
.topbar{height:52px}.brand{flex-shrink:0}.graph-tools{display:flex;align-items:center;flex:1;min-width:0;gap:12px;color:var(--muted)}.desktop-heading{display:flex;align-items:center;gap:8px;flex:0 1 auto;max-width:28vw;min-width:0}.desktop-heading h1{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.desktop-heading button{flex-shrink:0;font-size:11px}.view-controls{display:flex;align-items:center;gap:6px;flex-shrink:0}.graph-tools output{min-width:36px;text-align:center;font-size:12px}.graph-tools button{height:30px;min-height:30px;padding:4px 9px}.graph-tools #zoomOut,.graph-tools #zoomIn{min-width:30px;padding:3px 7px}.graph-tools #locateFocus{font-size:12px}.label-short{display:none}
#fixtureLabel{font-size:11px}.desktop-info{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.main-area{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.graph-tools{position:relative;flex-wrap:nowrap}
.hierarchy-banner{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;flex-shrink:0;min-height:38px;padding:5px 16px;border-bottom:1px solid #665b83;background:#252236;color:#ddd2f4;font-size:12px}.hierarchy-banner strong{max-width:min(220px,35vw);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px}.hierarchy-banner span{flex:1 1 280px;min-width:0;white-space:normal;overflow-wrap:anywhere}.hierarchy-banner button{flex-shrink:0;padding:3px 9px}
[data-choosing-parent] .node-chip{cursor:crosshair}[data-choosing-parent] .node-chip:hover{outline:2px solid #c4a7ff;outline-offset:3px}.node-chip.hierarchy-source{border-color:#c4a7ff;box-shadow:0 0 0 2px #c4a7ff50}
.canvas-viewport{container-type:inline-size;position:relative;flex:1;min-width:0;min-height:0;overflow:hidden}
.canvas-viewport::before,.canvas-viewport::after{content:"";position:absolute;top:0;bottom:0;width:clamp(22px,4vw,56px);z-index:15;pointer-events:none;opacity:0;transition:opacity .15s}
.canvas-viewport::before{left:0;background:linear-gradient(to right,var(--bg),transparent)}.canvas-viewport::after{right:0;background:linear-gradient(to left,var(--bg),transparent)}
.canvas-viewport[data-overflow-left="true"]::before,.canvas-viewport[data-overflow-right="true"]::after{opacity:1}
.canvas-viewport>.main-panel{cursor:grab;scrollbar-width:none;scrollbar-gutter:auto}.canvas-viewport>.main-panel::-webkit-scrollbar{display:none}
.main-panel.canvas-panning,.main-panel.canvas-panning *{cursor:grabbing!important;user-select:none}
#fixtureLabel:empty{display:none}#fixtureLabel{min-width:0}#fixtureLabel select{max-width:100%;font:inherit;background:var(--surface2);color:var(--text);border:1px solid var(--line);border-radius:5px;padding:5px}
.top-actions{gap:6px}.top-actions .soft{font-size:12px}
@media(max-width:900px){.brand strong{display:none}}
@media(max-width:720px){.main-panel{padding:0 10px 16px}.graph-tools{gap:6px}.hierarchy-banner{padding:5px 10px}.project-card-footer{padding-bottom:0}.view-controls{gap:4px}.top-actions .soft{padding:5px 7px}.desktop-heading{gap:4px;max-width:24vw}.desktop-heading h1{font-size:15px}.label-full{display:none}.label-short{display:inline}}
/* Secondary controls stay available without using graph height. */
.more-menu{position:relative;font-size:12px}.more-menu>summary{list-style:none;cursor:pointer;user-select:none}.more-menu>summary::-webkit-details-marker{display:none}.more-menu>summary::after{content:"⌄";margin-left:7px;color:var(--muted)}.more-menu[open]>summary{border-color:#6385a8}.more-panel{position:absolute;right:0;top:calc(100% + 8px);display:grid;gap:5px;width:min(300px,calc(100vw - 24px));max-height:calc(100dvh - 80px);overflow:auto;padding:9px;border:1px solid #4a627c;border-radius:10px;background:var(--surface);box-shadow:0 16px 45px #0008}.more-panel>.soft{text-align:left;text-decoration:none;width:100%;min-height:34px;background:transparent;border-color:transparent}.more-panel>.soft:hover{background:var(--surface2);border-color:var(--line)}.flow-help{padding-top:6px;border-top:1px solid var(--line);margin-top:3px}.flow-help>summary{padding:7px 4px;cursor:pointer;color:var(--muted)}.help-content{padding:0 4px 5px;color:var(--muted);font-size:12px;line-height:1.6}.help-content p{margin:8px 0}.help-content ul{padding-left:18px;margin:10px 0}.help-content li+li{margin-top:7px}.help-content .legend{padding:7px 0}.more-menu summary:focus-visible,.flow-help summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:5px}
@media(max-width:520px){.brand .logo{width:26px;height:26px;flex-basis:26px;font-size:11px}.app-body{grid-template-columns:82px minmax(0,1fr)}.sidebar{padding:8px 5px}.desktop-tab{padding:8px 6px}.project-link{padding:8px 4px}.project-link strong{font-size:12px}.main-panel{padding:0 6px 12px}.graph-tools{gap:3px}.hierarchy-banner{padding:5px 6px}.desktop-heading button{padding:4px}.desktop-heading h1{font-size:14px}.view-controls{gap:2px}.graph-tools #locateFocus{font-size:11px;padding:4px 5px}.graph-tools output{min-width:31px;font-size:11px}.topbar{padding:6px 8px;gap:6px}.top-actions{gap:4px}.top-actions .soft{font-size:11px}#fullscreenToggle{max-width:64px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desktop-heading{gap:3px}}
@media(max-width:420px){#fullscreenToggle{font-size:0;width:30px;padding:4px}#fullscreenToggle::after{content:"⛶";font-size:17px;line-height:1}.brand .logo{width:24px;flex-basis:24px}.topbar{gap:4px;padding:6px}}

/* Draft controls stay readable even when another Project extends far right. */
.batch-workbench{width:min(640px,calc(100cqw - 32px));max-width:100%;margin-left:16px}.peek-actions{flex-wrap:wrap}

/* Project controls live with the Project; the canvas has no footer tool rows. */
.project-link{gap:8px}.project-link strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-link .count{flex:none;min-width:26px;padding:1px 5px;border-radius:6px;background:#2b4157;color:#e4effc;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}
.project-pin{color:#e5c77a;font-size:.82em}
.history-controls{display:flex;gap:3px;margin-left:3px}.graph-tools .history-icon{width:30px;padding:5px}
.history-icon svg{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#graphMode{font:inherit;font-size:12px;height:30px;max-width:112px;background:var(--surface2);border:1px solid var(--line);border-radius:7px;color:var(--text);padding:3px 6px;cursor:pointer}
#graphMode:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
[data-choosing-parent] .node-chip[data-hierarchy-valid="true"]{border-color:#ad9cd3}
[data-choosing-parent] .node-chip[data-hierarchy-valid="false"]{opacity:.55;cursor:not-allowed}
[data-choosing-parent] .node-chip[data-hierarchy-valid="false"]:hover{outline-color:#8a7c87}
[data-choosing-parent] .node-chip.hierarchy-carried{opacity:1;box-shadow:0 0 0 2px #c4a7ff45}
.project-sections[data-mode="overview"]{width:100%;gap:32px;padding:22px 16px}
.graph-overview{max-width:1100px;padding:8px 0 18px}
.overview-region-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 20px;margin-bottom:13px}
.overview-project-label{display:flex;align-items:center;gap:10px;max-width:100%;min-width:0;padding:0;border:0;background:none;color:var(--text);text-align:left}
.overview-project-label strong{font-size:24px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.overview-project-label:hover strong{color:#b9d6f4}.overview-counts{color:var(--muted);font-size:12px}
.overview-focus-label{font-size:11px;color:#b9d6f4}.overview-frontier{display:flex;align-items:stretch;flex-wrap:wrap;gap:10px}
.overview-target{display:flex;flex-direction:column;gap:3px;flex:0 1 260px;min-width:min(180px,100%);max-width:min(320px,100%);padding:10px 12px;background:var(--surface2);border:1px solid var(--line);border-left:3px solid var(--ready);border-radius:8px;color:var(--text);text-align:left}
.overview-target strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:14px}
.overview-target-kind,.overview-target-state{font-size:11px;color:var(--muted)}.overview-target:hover{background:#233245;border-color:#7096b8}
.overview-target[data-state="hot"]{border-left-color:var(--hot)}.overview-target[data-state="frozen"]{border-left-color:var(--frozen)}
.overview-target[data-state="done"],.overview-target[data-state="closed"],.overview-target[data-state="blocked"]{border-left-color:var(--dim)}
.overview-more{align-self:center;border:0;background:none;color:#a9c9e8;padding:10px;text-align:left;font-size:12px}.overview-note{font-size:12px;color:var(--muted);margin:6px 0}
@media(max-width:1100px){.brand strong{display:none}.topbar{gap:10px}.desktop-heading{max-width:18vw}.graph-tools{gap:8px}}
@media(max-width:720px){.brand{display:none}.desktop-heading{max-width:15vw}.graph-tools{overflow-x:auto;scrollbar-width:none}.graph-tools::-webkit-scrollbar{display:none}.desktop-heading{flex-shrink:0}.project-sections[data-mode="overview"]{padding:16px 6px}.overview-project-label strong{font-size:21px}}

/* Focus remains legible even on frozen/completed nodes; status keeps its own color. */
.node-chip.focused{opacity:1;background:#253c50;border-color:#c6eeff;box-shadow:0 0 0 2px #0b1722,0 0 0 5px #8cdbff,0 0 18px #8cdbff55}
.node-focus-label{position:absolute;top:-12px;left:10px;padding:1px 6px;border:1px solid #b4e8ff;border-radius:4px;background:#a9e4ff;color:#102337;font-size:10px;font-weight:800;letter-spacing:.8px;line-height:16px;pointer-events:none}
.node-chip .node-state{display:block;width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:17px}
.overview-target[data-focused="true"]{border-color:#c6eeff;box-shadow:0 0 0 2px #0b1722,0 0 0 4px #8cdbff;background:#253c50}
.overview-target[data-focused="true"] .overview-target-kind,.overview-focus-label{color:#c6eeff;font-weight:750}
.overview-project-label[data-focused="true"]{outline:3px solid #8cdbff;outline-offset:5px;border-radius:3px}
.overview-target-state{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.freeze-options{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.freeze-options .until-choice{display:flex;align-items:center;gap:8px;margin:0;font-size:13px}
.freeze-options input[type="checkbox"]{width:16px;height:16px;margin:0;accent-color:#9bdcff}
.freeze-options .until-field{display:block;margin-top:9px}.freeze-options small{display:block;margin-top:6px;color:var(--muted);font-size:12px}
/* Google's button frame is a light page; under the dark root Chrome paints it an opaque white box. */
#deleteDialogItem{margin-right:auto;color:var(--hot)}
.trash-panel{display:grid;gap:14px;padding:23px}#trashList{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:min(55vh,420px);overflow:auto}
#trashList li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
#trashList li>div{display:grid;min-width:0}#trashList strong{font-weight:600;overflow-wrap:anywhere}#trashList small{color:var(--muted);font-size:11px}
#taskDeleteText{line-height:1.7;color:var(--text)}
#trashList .trash-empty{justify-content:center;color:var(--muted);font-size:12px}
/* Dimensions: the level above Projects, folded like a subset */
/* minmax(0,1fr): a long Project name must ellipsize, not widen the sidebar column */
.project-nav,.dimension-group,.dimension-projects{grid-template-columns:minmax(0,1fr)}
.dimension-group{display:grid;gap:2px}.dimension-group+.dimension-group{margin-top:8px}
.dimension-row{display:flex;align-items:center;gap:2px}
.dimension-head{display:flex;align-items:center;gap:6px;flex:1;min-width:0;padding:6px 5px;border:0;border-radius:7px;background:transparent;color:var(--muted);text-align:left;font-size:12px}
.dimension-head:hover{background:var(--surface2);color:var(--text)}.dimension-head strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}
.dimension-head .count{flex:none;font-size:11px;color:var(--dim)}.dimension-caret{width:10px;flex:none;color:var(--dim)}
.dimension-sort{flex:none;padding:2px 5px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--dim);font-size:10px}
.dimension-sort:hover,.dimension-sort:focus-visible{border-color:var(--line);color:var(--text)}
.dimension-projects{display:grid;gap:4px;margin-left:10px;padding-left:6px;border-left:1px solid #2c4256}
.dimension-letter{display:inline-grid;place-items:center;flex:none;min-width:20px;height:20px;padding:0 4px;border:1px solid #50647a;border-radius:5px;color:#c0d2e4;font-size:11px;font-weight:700}
.dimension-edit{width:100%;margin-top:12px;padding:7px 8px;border:1px dashed var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:12px}
.dimension-edit:hover{border-color:#56809f;color:var(--text)}
.dimension-divider{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:0 16px;font-size:13px;font-weight:650;color:var(--muted);letter-spacing:.5px}
.dimension-divider:first-child{margin-top:0}
.dimension-list{display:grid;gap:8px}.dimension-edit-row{display:flex;align-items:center;gap:8px}.dimension-edit-row input{flex:1;min-width:0}.dimension-edit-row .soft{padding:6px 9px;font-size:12px}
.dimension-assign{display:grid;gap:8px;max-height:34vh;overflow:auto;margin:0;border:1px solid var(--line);border-radius:8px;padding:12px}
.dimension-assign label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text)}.dimension-assign label span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
dialog select{background:#111b28;color:var(--text);border:1px solid #455d76;border-radius:8px;padding:7px 9px;max-width:60%}
.dimension-choice{display:flex;align-items:center;gap:10px}.dimension-choice select{flex:1;max-width:none}
#dimensionError{color:var(--hot)}
@media(max-width:720px){.dimension-sort,.dimension-head .count,.dimension-caret{display:none}.dimension-projects{margin-left:0;padding-left:0;border-left:0}.dimension-head{padding:5px 2px;gap:4px}}
@media(max-width:720px){.sidebar .aside-head{flex-wrap:wrap;gap:4px}}@media(max-width:520px){.project-link .count{min-width:0;padding:1px 4px;font-size:12px}}
.sign-in-panel{display:grid;gap:18px;padding:26px}.sign-in-panel h2{margin:0}.sign-in-panel p{line-height:1.7;overflow-wrap:anywhere}.sign-in-panel #signInError{color:var(--hot)}.sign-in-panel .dialog-actions{flex-wrap:wrap}#googleSignIn{min-height:0;color-scheme:light}
/* Discovery, guidance and recovery stay in existing surfaces. */
.overview-line{display:flex;flex-direction:column;gap:8px;flex:0 1 280px;min-width:min(210px,100%);max-width:100%;padding:5px}.overview-line.has-steps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;flex-basis:520px}
.overview-line .overview-target{flex:none;width:100%;min-width:0;max-width:none}.overview-line .overview-target strong{white-space:normal;overflow-wrap:anywhere}
.overview-steps{display:grid;gap:8px;border-left:2px solid var(--line);padding-left:12px;margin-left:8px}.overview-next,.overview-parent{font-size:12px;color:var(--muted);margin:0}.overview-parent{font-weight:650;overflow-wrap:anywhere}.overview-parent.nested{font-weight:400}
.context-menu button{display:flex;align-items:center;justify-content:space-between;gap:18px}.context-menu .menu-divider{border-top:1px solid #41566a;border-radius:0;padding-top:12px;margin-top:4px}.context-menu kbd{font:10px inherit;color:var(--muted);white-space:nowrap}.context-menu .danger{color:#e6a8a8}
.utility-panel{display:grid;gap:16px;padding:24px}.utility-panel>input{width:100%}.utility-panel>select{width:100%;max-width:100%}.wide-dialog{width:min(660px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto}.utility-panel h2{margin:0}.utility-panel .dialog-actions{flex-wrap:wrap}
.search-results{display:grid;gap:6px;max-height:50dvh;overflow:auto}.search-results button{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--text);text-align:left}.search-results small{color:var(--muted)}.search-results strong,.search-results small{overflow-wrap:anywhere}
.version-preview{max-height:45dvh;overflow:auto;padding:4px}.history-tree{padding-left:18px}.history-tree ul{padding-left:18px}.history-tree li{padding:4px 0;overflow-wrap:anywhere}.history-tree small{color:var(--muted)}
.guide-content{display:grid;gap:16px}.guide-content p{font-size:14px;line-height:1.8}.guide-progress{font-size:12px;color:var(--muted)}.guide-example{display:grid;gap:6px;border-left:3px solid var(--ready);background:var(--surface2);padding:16px}.guide-example span{color:var(--muted);font-size:12px;margin-bottom:8px}
.direction-map{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;align-items:center;text-align:center;padding:16px 0;font-size:12px}.direction-map>div,.direction-map>strong{padding:10px 5px;border-radius:8px;background:var(--surface2)}.dir-up{grid-column:2;grid-row:1}.dir-repeat{grid-column:3;grid-row:1}.dir-done{grid-column:1;grid-row:2}.dir-center{grid-column:2;grid-row:2}.dir-add{grid-column:3;grid-row:2}.dir-down{grid-column:2;grid-row:3}.dir-once{grid-column:3;grid-row:3}
#guidePracticeArea{display:grid;gap:14px;padding:18px 12px;background:var(--bg);border-radius:12px;overflow:hidden}.practice-card{width:150px;padding:18px 12px;color:var(--text);background:#254052;border:2px solid var(--ready);border-radius:10px;touch-action:none;user-select:none}#guideTry{justify-self:start}#guideFeedback{min-height:42px;line-height:1.7}
.welcome-hint{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);flex-wrap:wrap}.welcome-hint span{flex:1;min-width:160px}#trialBanner{background:#25312f;color:#c7e5d8}.landing-design{display:grid;gap:8px;padding:18px 0;border-bottom:1px solid var(--line)}.landing-design strong{color:#b8ded2;font-size:19px}
.sidebar-toggle,.sidebar-backdrop{display:none}
@media(max-width:720px){
  .app-body{grid-template-columns:minmax(0,1fr);position:relative}.sidebar{display:none}.sidebar-toggle{display:block;flex-shrink:0;min-width:36px;min-height:36px;padding:4px!important}
  .sidebar-open .sidebar{display:block;position:absolute;left:0;top:0;bottom:0;width:min(300px,85vw);z-index:45;box-shadow:12px 0 30px #0008;padding:16px;scrollbar-gutter:stable}
  .sidebar-open .sidebar-backdrop{display:block;position:absolute;inset:0;z-index:44;border:0;background:#0008}.sidebar-open .dimension-sort,.sidebar-open .dimension-head .count,.sidebar-open .dimension-caret{display:inline}
  .sidebar-open .project-link strong{font-size:14px}.sidebar-open .project-link{padding:12px 8px}.sidebar-open .desktop-tab{padding:12px}.sidebar-open .dimension-head{padding:8px}.sidebar-open .dimension-projects{padding-left:12px}
  .topbar{gap:5px}.desktop-heading{display:none}.graph-tools{flex:1}.graph-tools #zoomOut,.graph-tools #zoomIn,.graph-tools output{display:none}.graph-tools #locateFocus{min-height:36px;padding:4px 8px}.view-controls{gap:4px}#graphMode{height:36px}.top-actions .soft{min-height:36px}.top-actions #fullscreenToggle{display:none}.main-panel{padding:0 12px 12px}.project-sections[data-mode="overview"]{padding:16px 6px}.overview-line{flex-basis:100%}
  .overview-line.has-steps{display:flex;align-items:stretch;flex-basis:100%}.welcome-hint{padding:8px 12px;gap:6px}.utility-panel{padding:18px}.direction-map{gap:4px;font-size:11px}.dialog-actions button{min-height:40px}#versionSelect{font-size:12px}.history-tree ul{padding-left:12px}
}
.channel-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;padding:7px 12px;border:1px solid #8b7042;border-radius:8px;background:#302a20;color:#edcc91;font-size:12px;flex-shrink:0}.channel-banner a,.channel-note a{color:#edcc91;white-space:nowrap}.channel-note{color:#edcc91;font-size:13px}
