@font-face{font-family:Excalifont;src:url(/fonts/Excalifont-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Manrope Variable;src:url(/fonts/Manrope-latin.woff2) format("woff2-variations");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Variable;src:url(/fonts/Manrope-latin-ext.woff2) format("woff2-variations");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lora;src:url(/fonts/Lora-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--canvas: #f6f4f1;--surface-base: #fffefc;--surface-raised: #ffffff;--surface-sunken: #faf8f4;--surface-hover: #f2eee7;--text-primary: #1f1d1a;--text-secondary: #6b655c;--text-tertiary: #6b6357;--text-disabled: #b8b0a2;--text-accent: #2a47b8;--text-on-accent: #ffffff;--text-on-cat: #ffffff;--border-subtle: #e9e4db;--border-default: #d8d1c5;--border-strong: #bbb2a4;--accent: #3457dc;--accent-hover: #2a47b8;--accent-active: #233a95;--accent-wash: #eef1fd;--status-success: #1f8a70;--status-success-tint: #e6f4f0;--status-success-text: #155f4d;--status-warning: #cf8f3e;--status-warning-tint: #faf1e3;--status-warning-text: #8a5d1f;--status-danger: #cf4827;--status-danger-tint: #fbeae4;--status-danger-text: #8f2f17;--status-neutral-tint: #f2eee7;--status-neutral-text: #5c5548;--cat-1: #3457dc;--cat-2: #1f8a70;--cat-3: #a5671e;--cat-4: #cf4827;--cat-5: #7048c8;--cat-6: #2274a5;--cat-7: #b0447c;--cat-8: #3a7d44;--focus-ring: rgba(52, 87, 220, .32);--ring: 0 0 0 3px var(--focus-ring);--scrim: rgba(24, 21, 16, .38);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-pill: 999px;--radius-circle: 50%;--shadow-card: 0 1px 2px rgba(31, 37, 34, .04);--shadow-pop: 0 8px 28px rgba(20, 24, 22, .14);--shadow-modal: 0 24px 70px rgba(20, 24, 22, .28);--hairline-inset: inset 0 0 0 1px rgba(31, 37, 34, .12);--drop-shadow-task: drop-shadow(0 1px 1px rgba(31, 37, 34, .07)) drop-shadow(0 3px 6px rgba(31, 37, 34, .08));--drop-shadow-task-hover: drop-shadow(0 2px 3px rgba(31, 37, 34, .08)) drop-shadow(0 7px 14px rgba(31, 37, 34, .11));--dur-fast: .12s;--dur-normal: .18s;--ease: cubic-bezier(.2, 0, 0, 1);--font-sans: "Manrope Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-micro: .6875rem;--font-tiny: .71875rem;--font-caption: .75rem;--font-meta: .78125rem;--font-body: .8125rem;--font-ui: .84375rem;--font-lead: .875rem;--font-title: .9375rem;--font-headline: 1.0625rem;--lh-tight: 1.25;--lh-body: 1.45;--lh-loose: 1.6;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 12px;--space-6: 16px;--z-sink: -1;--z-flat: 0;--z-lift-1: 1;--z-lift-2: 2;--z-lift-3: 3;--z-canvas-overlay: 5;--z-view: 7;--z-view-chrome: 8;--z-dock: 9;--z-tooltip: 10;--z-popover: 19;--z-header: 20;--z-flyout: 25;--z-laser: 28;--z-toast: 30;--z-overlay: 40;--z-comment: 45;--z-menu: 50;--z-dialog: 60;--z-drop: 70;--z-rf-ghost: 999;--z-rf-node-hover: 1000;--z-rf-edge-edit: 1001;--z-rf-edge-labels: 1002;--doc-title-h: 40px;--canvas-ink: #1f1d1a;--grid-dot: #dcd6cb;--align-guide: #e64980;--projectboard-sep: #bbb2a4;--swatch-rainbow: conic-gradient(from 180deg, #d55e00, #e69f00, #009e73, #0072b2, #cc79a7, #d55e00);color-scheme:light}:root[data-theme=dark]{--canvas: #15120d;--surface-base: #1e1a13;--surface-raised: #252017;--surface-sunken: #1a1610;--surface-hover: #2c2719;--text-primary: #f4f0e7;--text-secondary: #b3ab9b;--text-tertiary: #a09788;--text-disabled: #5d564a;--text-accent: #93a6f0;--text-on-accent: #ffffff;--text-on-cat: #16130f;--border-subtle: #322d23;--border-default: #423c2f;--border-strong: #564f3f;--accent: #4a6aee;--accent-hover: #6580f3;--accent-active: #3d59d6;--accent-wash: #1d2746;--status-success: #2aa385;--status-success-tint: #12332b;--status-success-text: #63cdb1;--status-warning: #d99a4e;--status-warning-tint: #33270f;--status-warning-text: #e5b678;--status-danger: #d0441f;--status-danger-tint: #3a1710;--status-danger-text: #f0906f;--status-neutral-tint: #2c2719;--status-neutral-text: #b3ab9b;--cat-1: #5675f7;--cat-2: #2aa385;--cat-3: #b97a2a;--cat-4: #d95f3d;--cat-5: #8e6add;--cat-6: #3388bb;--cat-7: #c25c91;--cat-8: #4c9457;--focus-ring: rgba(99, 129, 244, .42);--scrim: rgba(0, 0, 0, .55);--shadow-card: 0 1px 2px rgba(0, 0, 0, .3);--shadow-pop: 0 8px 28px rgba(0, 0, 0, .4);--shadow-modal: 0 24px 70px rgba(0, 0, 0, .55);--hairline-inset: inset 0 0 0 1px rgba(255, 255, 255, .14);--drop-shadow-task: drop-shadow(0 1px 1px rgba(0, 0, 0, .3)) drop-shadow(0 3px 6px rgba(0, 0, 0, .4));--drop-shadow-task-hover: drop-shadow(0 2px 3px rgba(0, 0, 0, .35)) drop-shadow(0 7px 14px rgba(0, 0, 0, .5));--canvas-ink: #ddd6c9;--grid-dot: #332d23;--align-guide: #f783ac;--projectboard-sep: #564f3f;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);color:var(--text-primary);background:var(--canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}h1,h2,h3,h4{font-weight:var(--fw-bold);line-height:var(--lh-tight)}body{user-select:none;-webkit-user-select:none}input,textarea,select,[contenteditable=true],[contenteditable=true] *,.comment-note-body,.selectable,.selectable *{user-select:text;-webkit-user-select:text}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,textarea,select{font:inherit;color:inherit}option,optgroup{background-color:var(--surface-raised);color:var(--text-primary)}option:disabled{color:var(--text-disabled)}a{color:var(--text-accent);text-decoration:none}a:hover{text-decoration:underline}::placeholder{color:var(--text-tertiary);opacity:1}::selection{background:var(--accent-wash)}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:0}.app-shell{position:relative;width:100%;height:100%;display:flex;flex-direction:column}.app-body{position:relative;flex:1;min-height:0;display:flex}.app-center{position:relative;flex:1;min-width:0;display:flex;flex-direction:column}.app-main{position:relative;flex:1;min-height:0;overflow:hidden}.canvas-host{position:absolute;top:0;right:0;bottom:0;left:0}.canvas-host:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.react-flow{background:var(--canvas)}.canvas-host--select .react-flow__pane,.canvas-host--pan.canvas-host--ctrl .react-flow__pane{cursor:default}.canvas-host--spacepan .react-flow__pane,.canvas-host--spacepan .react-flow__node{cursor:grab}.canvas-host--spacepan .react-flow__pane.dragging,.canvas-host--spacepan .react-flow__pane:active{cursor:grabbing}.canvas-host--laser,.canvas-host--laser .react-flow__pane,.canvas-host--laser .react-flow__node{cursor:none}.laser-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-laser);pointer-events:none}.app-shell.lasering,.app-shell.lasering *{user-select:none;-webkit-user-select:none}.listview-panel.is-laser{cursor:none}.listview-panel.is-laser .lv-grid{pointer-events:none}.canvas-host--laser .react-flow__node,.canvas-host--laser .react-flow__edge,.canvas-host--laser .react-flow__handle,.canvas-host--laser .react-flow__edgelabel-renderer,.canvas-host--draw .react-flow__node,.canvas-host--draw .react-flow__edge,.canvas-host--draw .react-flow__handle,.canvas-host--draw .react-flow__edgelabel-renderer,.canvas-host--spacepan .react-flow__node,.canvas-host--spacepan .react-flow__edge,.canvas-host--spacepan .react-flow__handle,.canvas-host--spacepan .react-flow__edgelabel-renderer,.canvas-host--laser .react-flow__node *,.canvas-host--draw .react-flow__node *,.canvas-host--spacepan .react-flow__node *{pointer-events:none!important}.canvas-host--laser .task-stub,.canvas-host--laser .edge-insert,.canvas-host--draw .task-stub,.canvas-host--draw .edge-insert{display:none}.canvas-host--laser .task-node--hover .task-shape,.canvas-host--draw .task-node--hover .task-shape{filter:none}.canvas-host--draw .react-flow__pane{cursor:crosshair}.canvas-host--tool-text .react-flow__pane{cursor:text}.canvas-host--tool-select .react-flow__pane{cursor:default}.drawing-layer{position:absolute;top:0;left:0;z-index:var(--z-sink);overflow:visible;pointer-events:none}.drawing-select-layer{position:absolute;top:0;left:0;z-index:var(--z-canvas-overlay);overflow:visible;pointer-events:none}.draw-text-editor{position:absolute;z-index:var(--z-canvas-overlay);pointer-events:all;margin:0;padding:0;background:transparent;border:1px dashed var(--accent);border-radius:var(--radius-sm);outline:none;resize:none;overflow:hidden;white-space:pre}.projectboard-layer{position:absolute;top:0;left:0;z-index:var(--z-sink);overflow:visible;pointer-events:none}.align-guide-layer{position:absolute;top:0;left:0;z-index:var(--z-canvas-overlay);overflow:visible;pointer-events:none}.align-guide-layer line{stroke:var(--align-guide);stroke-width:1}.sp-switch-knob,.stg-switch:before{background:var(--text-on-accent);box-shadow:var(--shadow-card)}.swatch--custom,.sp-swatch--custom,.tb-swatch--custom{background:var(--swatch-rainbow)}.react-flow__minimap.focus-minimap{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.react-flow__minimap.focus-minimap .react-flow__minimap-node{rx:2;ry:2}.marquee-box{position:absolute;z-index:var(--z-canvas-overlay);pointer-events:none;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px dashed var(--accent)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.app-header,.hdr-ephemeral,.side-panel,.filter-bar,.toast,.coach-hint,.zen-pill,[class*=wsp],.bc-bar{display:none!important}body,.app-shell,.app-main{background:#fff!important}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}@media(forced-colors:active){:root,:root[data-theme=dark]{--canvas: Canvas;--surface-base: Canvas;--surface-raised: Canvas;--surface-sunken: Canvas;--surface-hover: Canvas;--text-primary: CanvasText;--text-secondary: CanvasText;--text-tertiary: GrayText;--text-disabled: GrayText;--text-accent: LinkText;--text-on-accent: HighlightText;--text-on-cat: Canvas;--border-subtle: CanvasText;--border-default: CanvasText;--border-strong: CanvasText;--accent: Highlight;--accent-hover: Highlight;--accent-active: Highlight;--accent-wash: color-mix(in srgb, Highlight 25%, Canvas);--focus-ring: Highlight;--scrim: color-mix(in srgb, Canvas 75%, transparent);--status-success: CanvasText;--status-success-tint: Canvas;--status-success-text: CanvasText;--status-warning: CanvasText;--status-warning-tint: Canvas;--status-warning-text: CanvasText;--status-danger: LinkText;--status-danger-tint: Canvas;--status-danger-text: LinkText;--status-neutral-tint: Canvas;--status-neutral-text: CanvasText;--canvas-ink: CanvasText;--grid-dot: GrayText;--align-guide: Highlight;--projectboard-sep: CanvasText;--shadow-card: none;--shadow-pop: none;--shadow-modal: none;--hairline-inset: inset 0 0 0 1px CanvasText;--drop-shadow-task: none;--drop-shadow-task-hover: none}:focus-visible{outline:2px solid Highlight;outline-offset:1px}.task-critical-ring{outline:2px dashed var(--status-danger);outline-offset:2px}.task-critical-ring--diamond polygon{stroke-width:2.5;stroke-dasharray:4 3}.react-flow__node.selected,.lv-row.is-selected,.pf-card.is-selected,.cap-finish-row.is-selected{outline:2px solid var(--accent);outline-offset:1px}.trends-row.is-selected{outline:2px solid var(--accent);outline-offset:-2px}.menu-item:focus,.search-filter-menu-item:focus-visible,.fb-row:focus-visible,.lv-cell.is-cursor,.lv-input:focus,.sp-rte-scroll:focus-within,.sp-tag-input:focus,.comment-author-input:focus{outline:2px solid var(--accent);outline-offset:-2px}[role=tab][aria-selected=true],.tb-view.is-active,.tb-mode.is-active,.tb-portfolio.is-active,.exp-seg button.is-active,.menu-item.is-active{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}}@media(prefers-contrast:more){:root,:root[data-theme=dark]{--border-subtle: var(--border-strong);--border-default: var(--border-strong);--focus-ring: var(--accent)}:focus-visible{outline-width:3px;outline-offset:2px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-4);font-weight:var(--fw-semibold);font-size:var(--font-ui);line-height:var(--lh-tight);height:38px;padding:0 14px;border-radius:var(--radius-md);border:1px solid transparent;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.btn:disabled{cursor:not-allowed}.btn--sm{height:32px;padding:0 10px;font-size:var(--font-body)}.btn--xs{height:28px;padding:0 var(--space-4);font-size:var(--font-caption)}.btn--full{width:100%}.btn svg{flex:none}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn--primary:active:not(:disabled){background:var(--accent-active);border-color:var(--accent-active)}.btn--primary:disabled{background:var(--surface-sunken);border-color:var(--border-subtle);color:var(--text-secondary)}.btn--secondary{background:var(--surface-raised);border-color:var(--border-default);color:var(--text-primary)}.btn--secondary:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-hover)}.btn--secondary:disabled{color:var(--text-disabled);background:var(--surface-sunken)}.btn--danger{background:var(--status-danger);border-color:var(--status-danger);color:var(--text-on-accent)}.btn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--status-danger),var(--text-primary) 12%)}.btn--danger:disabled{background:var(--border-subtle);border-color:var(--border-subtle);color:var(--text-disabled)}.btn--danger-outline{background:transparent;border-color:var(--status-danger);color:var(--status-danger-text)}.btn--danger-outline:hover:not(:disabled){background:var(--status-danger-tint)}.btn--ghost{background:transparent;color:var(--text-secondary)}.btn--ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.btn--ghost:disabled{color:var(--text-disabled)}.btn--tint{background:var(--accent-wash);border-color:transparent;color:var(--text-accent)}.btn--tint:hover:not(:disabled){background:color-mix(in srgb,var(--accent-wash),var(--accent) 12%)}.btn--tint:disabled{color:var(--text-disabled);background:var(--surface-sunken)}.iconbtn:after,.chip:after,.switch:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100%,44px);height:max(100%,44px)}@media(hover:hover)and (pointer:fine){.iconbtn:after,.chip:after,.switch:after{display:none}}.iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.iconbtn:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.iconbtn:disabled{color:var(--text-disabled);cursor:not-allowed}.iconbtn--sm{width:26px;height:26px;border-radius:var(--radius-sm)}.iconbtn--danger:hover:not(:disabled){background:var(--status-danger-tint);color:var(--status-danger-text)}.iconbtn.is-open,.iconbtn[aria-expanded=true],.iconbtn[aria-pressed=true]{background:var(--accent-wash);color:var(--text-accent)}.switch{position:relative;display:inline-flex;flex-shrink:0;width:36px;height:20px;padding:0;border:none;border-radius:var(--radius-pill);background:var(--border-default);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.switch[aria-checked=true]{background:var(--accent)}.switch:disabled{opacity:.5;cursor:not-allowed}.switch__knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--radius-circle);background:var(--text-on-accent);box-shadow:var(--shadow-card);transition:transform var(--dur-fast) var(--ease)}.switch[aria-checked=true] .switch__knob{transform:translate(16px)}.seg{position:relative;display:inline-flex;align-items:stretch;gap:var(--space-1);padding:var(--space-1);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);max-width:100%}.seg__item{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:26px;padding:0 10px;border-radius:var(--radius-sm);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-fast) var(--ease)}.seg__item:not(:disabled):hover{color:var(--text-primary)}.seg__item:disabled{cursor:default}.seg__item--off{color:var(--text-disabled);cursor:not-allowed}.seg__item.is-active,.seg__item[aria-checked=true],.seg__item[aria-pressed=true]{color:var(--text-primary);background:var(--surface-raised);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--border-subtle)}.seg--full{display:flex;width:100%}.seg--full .seg__item{flex:1}.tabs{position:relative;display:flex;gap:var(--space-6);border-bottom:1px solid var(--border-subtle)}.tabs__tab{position:relative;flex-shrink:0;display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-1) 10px;margin-bottom:-1px;border-bottom:2px solid transparent;font-size:var(--font-ui);color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-fast) var(--ease)}.tabs__tab:hover{color:var(--text-primary)}.tabs__tab.is-active,.tabs__tab[aria-selected=true]{color:var(--text-primary);border-bottom-color:var(--accent)}.card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:clip}.card__header{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border-subtle)}.card__body{padding:var(--space-6) 18px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--font-caption);font-weight:var(--fw-semibold);line-height:1;padding:var(--space-2) 10px;border-radius:var(--radius-pill);white-space:nowrap}.badge--sm{font-size:var(--font-micro);padding:var(--space-1) var(--space-3)}.badge--success{background:var(--status-success-tint);color:var(--status-success-text)}.badge--warning{background:var(--status-warning-tint);color:var(--status-warning-text)}.badge--danger{background:var(--status-danger-tint);color:var(--status-danger-text)}.badge--neutral{background:var(--status-neutral-tint);color:var(--status-neutral-text)}.badge--accent{background:var(--accent-wash);color:var(--text-accent)}.chip{position:relative;display:inline-flex;align-items:center;gap:7px;padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-raised);font-size:var(--font-meta);font-weight:var(--fw-semibold);line-height:var(--lh-tight);color:var(--text-secondary);white-space:nowrap;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.chip:hover{border-color:var(--border-strong)}.chip--selected,.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-wash);color:var(--text-accent)}.chip--sm{padding:var(--space-1) var(--space-4);font-size:var(--font-micro)}.kbd,.help-popover kbd,.tpl-kbd-hint kbd,.coach-hint kbd{display:inline-block;font-family:var(--font-sans);font-size:var(--font-micro);font-weight:var(--fw-medium);line-height:1;padding:3px 5px;border-radius:var(--radius-sm);background:var(--surface-sunken);border:1px solid var(--border-default);color:var(--text-primary);white-space:nowrap}.tip{width:max-content;max-width:min(260px,calc(100vw - 16px));background:var(--text-primary);color:var(--canvas);font-family:var(--font-sans);font-size:var(--font-caption);font-weight:var(--fw-medium);line-height:1.35;padding:var(--space-3) 10px;border-radius:var(--radius-md);box-shadow:var(--shadow-pop);pointer-events:none}.empty-dashed,.empty-plain{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px var(--space-6);text-align:center;font-size:var(--font-ui);line-height:var(--lh-body);color:var(--text-tertiary)}.empty-dashed{border:1px dashed var(--border-default);border-radius:var(--radius-lg)}.empty-plain{align-items:flex-start;text-align:left}.section-title{display:flex;align-items:center;min-height:32px;font-size:var(--font-title);font-weight:var(--fw-bold)}.toplabel{display:block;font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.faint{color:var(--text-tertiary)}.hint{font-size:var(--font-meta);line-height:var(--lh-body);color:var(--text-tertiary)}.notice-line{font-size:var(--font-meta);line-height:var(--lh-body);padding:var(--space-4) 10px;border-radius:var(--radius-md);background:var(--status-neutral-tint);color:var(--status-neutral-text)}.notice-line--warning{background:var(--status-warning-tint);color:var(--status-warning-text)}.notice-line--danger{background:var(--status-danger-tint);color:var(--status-danger-text)}@media(pointer:coarse){.btn{height:44px}.btn--sm,.btn--xs{height:40px}}.field{position:relative;--well-bg: var(--surface-raised)}.field__well{position:relative;height:56px;background:var(--well-bg);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.field--multiline .field__well{height:auto;min-height:56px;cursor:text}.field--disabled.field--multiline .field__well{cursor:default}.field__well:hover{border-color:var(--border-strong)}.field__well:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.field--disabled,.field--readonly{--well-bg: var(--surface-sunken)}.field--disabled .field__well:hover,.field--readonly .field__well:hover{border-color:var(--border-default)}.field--disabled input,.field--disabled select,.field--disabled textarea{color:var(--text-disabled);cursor:not-allowed}.field--readonly input,.field--readonly select,.field--readonly textarea{color:var(--text-secondary)}.field__well input,.field__well select,.field__well textarea{width:100%;height:100%;padding:25px 36px 7px 16px;background:transparent;border:none;outline:none;box-shadow:none;font:inherit;font-size:var(--font-lead);color:var(--text-primary);border-radius:var(--radius-md)}.field__well input:focus-visible,.field__well select:focus-visible,.field__well textarea:focus-visible{outline:none}.field__well textarea{height:auto;resize:vertical;min-height:30px;line-height:1.5;margin-top:26px;padding-top:0}.field__well select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-color:var(--well-bg)}.field__well input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.field__well input[type=number]::-webkit-inner-spin-button,.field__well input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field__well input::placeholder,.field__well textarea::placeholder{color:transparent}.field--floated .field__well input::placeholder,.field--floated .field__well textarea::placeholder{color:var(--text-tertiary)}.field__label{position:absolute;left:12px;padding:0 var(--space-2);top:50%;transform:translateY(-50%);transform-origin:left center;font-size:var(--font-lead);color:var(--text-tertiary);pointer-events:none;white-space:nowrap;--label-cap: calc(100% - 48px) ;max-width:var(--label-cap);overflow:hidden;text-overflow:ellipsis;transition:top var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.field--multiline .field__label{top:28px}.field--floated .field__label{top:6px;transform:translateY(0) scale(.74);color:var(--text-secondary);background:var(--well-bg);border-radius:var(--radius-sm);max-width:calc(var(--label-cap) / .74)}.field--floated:focus-within .field__label{color:var(--text-accent)}.field--disabled .field__label{color:var(--text-disabled)}.field__chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.field__error{margin-top:5px;font-size:var(--font-meta);color:var(--status-danger-text)}.field--required-empty .field__well:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);pointer-events:none;border-radius:var(--radius-md) 0 0 var(--radius-md)}.os-theme-focus{--os-size: 12px;--os-padding-perpendicular: 3px;--os-padding-axis: 3px;--os-handle-border-radius: 999px;--os-handle-bg: var(--border-strong);--os-handle-bg-hover: var(--text-secondary);--os-handle-bg-active: var(--text-secondary);--os-handle-min-size: 24px;--os-handle-interactive-area-offset: 3px}.ctx-menu>[data-overlayscrollbars-contents]{display:flex;flex-direction:column;gap:1px}.settings-popover>[data-overlayscrollbars-contents]{display:flex;flex-direction:column;gap:18px}.filter-popover>[data-overlayscrollbars-contents]{display:flex;flex-direction:column;gap:16px}.side-panel{position:relative;flex:none;width:min(300px,34vw);height:100%;background:var(--surface-base);border-left:1px solid var(--border-subtle);padding:var(--space-5);overflow-y:auto;z-index:var(--z-view-chrome)}.side-panel--tabbed{padding:0;overflow:hidden;display:flex;flex-direction:column}.sp-tabs{flex:none;display:flex;gap:var(--space-6);padding:0 var(--space-5);border-bottom:1px solid var(--border-subtle)}.sp-tab{display:inline-flex;align-items:center;gap:var(--space-3);padding:9px var(--space-1) 8px;font-size:var(--font-ui);color:var(--text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--dur-fast) var(--ease)}.sp-tab:hover:not(.is-active){color:var(--text-primary)}.sp-tab.is-active{color:var(--text-primary);border-bottom-color:var(--accent)}.sp-tab-count{font-size:var(--font-micro);font-weight:var(--fw-semibold);line-height:1;color:var(--text-accent);background:var(--accent-wash);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill)}.sp-tab-count.is-muted{color:var(--status-neutral-text);background:var(--status-neutral-tint)}.sp-tab-body{flex:1 1 auto;min-height:0;padding:var(--space-5)}.sp-section{margin-bottom:20px}.sp-section:last-child{margin-bottom:0}.sp-control{margin-bottom:14px}.sp-control:last-child{margin-bottom:0}.sp-label{font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);margin-bottom:var(--space-3)}.sp-count{font-size:var(--font-caption);color:var(--text-secondary)}.sp-tag-row{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;column-gap:var(--space-4);margin-bottom:var(--space-4)}.sp-tag-row:last-child{margin-bottom:0}.sp-tag-row>.sp-label{margin-bottom:0}.sp-tag-row>:not(.sp-label){min-width:0}.sp-tag-row .sp-hint{margin:var(--space-2) 0 0}.sp-tag-field{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--dur-fast) var(--ease)}.sp-tag-field:hover{border-color:var(--border-strong)}.sp-tag-field:focus-within{border-color:var(--accent)}.sp-tag-mark{flex:none;display:flex;align-items:center;width:12px;font-size:var(--font-body);line-height:1;color:var(--text-tertiary)}.sp-tag-mark svg{width:11px;height:11px}.sp-tag-input{flex:1;min-width:0;height:26px;border:0;background:none;color:var(--text-primary);font:inherit;font-size:var(--font-body)}.sp-tag-input:focus{outline:none}.sp-tag-input::placeholder{color:var(--text-tertiary)}.sp-subhead{font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:var(--space-4)}.sp-group{margin-bottom:var(--space-2)}.sp-group:last-child{margin-bottom:0}.sp-group-header{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);text-align:left;font-size:var(--font-body);font-weight:var(--fw-medium);color:var(--text-primary)}.sp-group-header:hover{background:var(--surface-hover)}.sp-group-chevron{flex:none;color:var(--text-tertiary);transition:transform var(--dur-fast) var(--ease)}.sp-group-chevron.is-open{transform:rotate(90deg)}.sp-group-title{flex:1;min-width:0}.sp-group-count{flex:none;font-size:var(--font-micro);font-weight:var(--fw-semibold);line-height:1;color:var(--text-accent);background:var(--accent-wash);padding:3px 7px;border-radius:var(--radius-pill)}.sp-group-body{padding:var(--space-3) 0 10px 22px}.sp-group-body .sp-control:last-child{margin-bottom:0}.sp-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}.sp-label-row .sp-label{margin-bottom:var(--space-3)}.sp-provenance{font-size:var(--font-micro);color:var(--text-tertiary);white-space:nowrap}.sp-provenance--action{display:inline-flex;align-items:center;padding:0 5px;border-radius:var(--radius-sm);cursor:pointer}.sp-provenance--action:hover{color:var(--text-accent);background:var(--surface-hover)}.sp-hint{margin:var(--space-3) 0 0;font-size:var(--font-meta);line-height:1.4;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-help{margin:var(--space-3) 0 0;font-size:var(--font-meta);line-height:var(--lh-body);color:var(--text-tertiary)}.sp-hint--inline{display:inline;margin:0}.sp-status-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);font-size:var(--font-caption);font-weight:var(--fw-semibold);line-height:var(--lh-tight);color:var(--status-neutral-text);background:var(--status-neutral-tint)}.sp-status-chip.is-doing{color:var(--status-warning-text);background:var(--status-warning-tint)}.sp-status-chip.is-done{color:var(--status-success-text);background:var(--status-success-tint)}.sp-status-chip.is-deactivated{color:var(--text-disabled);background:transparent;box-shadow:inset 0 0 0 1px var(--border-subtle)}.sp-tracking .sp-seg{margin-top:var(--space-4)}.sp-tracking .sp-group{margin-top:var(--space-3)}.sp-track-flags{display:flex;gap:var(--space-6);margin-top:var(--space-4)}.sp-track-flags--column{flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.sp-track-flag{display:inline-flex;align-items:center;gap:7px;font-size:var(--font-body);color:var(--text-primary);cursor:pointer;min-width:0}.sp-track-flag input{accent-color:var(--accent);margin:0;cursor:pointer}.sp-decision{margin-top:var(--space-5)}.sp-input{display:block;width:100%;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:5px var(--space-4);font-size:var(--font-body);color:var(--text-primary);transition:border-color var(--dur-fast) var(--ease)}.sp-input:hover{border-color:var(--border-strong)}.sp-input:focus{outline:none;border-color:var(--accent)}.sp-input::placeholder{color:var(--text-tertiary)}.sp-rte{display:flex;flex-direction:column;gap:var(--space-2)}.sp-rte-toolbar{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.sp-rte-btn{width:26px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--font-body);line-height:1;color:var(--text-secondary)}.sp-rte-btn:hover:not(.is-active){color:var(--text-primary)}.sp-rte-btn.is-active{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--border-subtle)}.sp-rte-scroll{max-height:240px;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--dur-fast) var(--ease)}.sp-rte-scroll:hover{border-color:var(--border-strong)}.sp-rte-scroll:focus-within{box-shadow:inset 0 0 0 1px var(--accent)}.sp-rte-body{min-height:60px;padding:var(--space-3) var(--space-4);font-size:var(--font-body);color:var(--text-primary);line-height:var(--lh-body);cursor:text;outline:none;white-space:pre-wrap;overflow-wrap:break-word}.sp-rte-body:empty:before{content:attr(data-placeholder);color:var(--text-tertiary);pointer-events:none}.sp-rte-body ul,.sp-rte-body ol{margin:0;padding-left:20px}.sp-rte-body ul{list-style:disc}.sp-rte-body ol{list-style:decimal}.sp-rte-body p{margin:0}.sp-fields{display:flex;flex-direction:column;gap:var(--space-4)}.sp-inline{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.sp-inline .sp-label{margin-bottom:0}.sp-seg{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.sp-seg button{flex:1;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);transition:color var(--dur-fast) var(--ease)}.sp-seg button:hover:not(:disabled):not(.is-active){color:var(--text-primary)}.sp-seg button.is-active{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--border-subtle)}.sp-seg button:disabled{color:var(--text-disabled);cursor:default}.sp-font-sample{font-size:var(--font-body);line-height:1}.sp-size-sample{font-size:var(--font-micro);font-weight:var(--fw-semibold);line-height:1}.sp-status-opt{display:inline-flex;align-items:center;gap:5px;font-size:var(--font-caption);font-weight:var(--fw-semibold);line-height:1;white-space:nowrap}.sp-status-opt svg{flex:none}.sp-swatches{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.sp-swatch{width:22px;height:22px;border-radius:var(--radius-md);box-shadow:var(--hairline-inset);position:relative;flex:none}.sp-swatch.is-active{box-shadow:var(--hairline-inset),0 0 0 1px var(--surface-base),0 0 0 3px var(--accent)}.sp-swatch--transparent{background:conic-gradient(var(--surface-sunken) 0 25%,var(--surface-raised) 0 50%,var(--surface-sunken) 0 75%,var(--surface-raised) 0) 0 0 / 8px 8px}.sp-swatch--none{background:linear-gradient(to top right,transparent calc(50% - 1px),var(--border-strong) calc(50% - 1px),var(--border-strong) calc(50% + 1px),transparent calc(50% + 1px)),var(--surface-raised)}.sp-custom{position:relative;display:inline-flex}.sp-swatch--custom{display:flex;align-items:center;justify-content:center}.sp-custom-inner{width:12px;height:12px;border-radius:var(--radius-circle);background:var(--surface-raised);box-shadow:var(--hairline-inset);pointer-events:none}.sp-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:var(--z-overlay);display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.sp-color-name{flex-basis:100%;order:-1;display:flex;align-items:center;gap:var(--space-4);padding-bottom:var(--space-1)}.sp-color-chip{flex:none;width:22px;height:22px;border-radius:var(--radius-circle);border:1px solid var(--border-subtle);box-shadow:var(--hairline-inset)}.sp-color-name-label{color:var(--text-primary);font-size:var(--font-caption);font-weight:var(--fw-semibold)}.sp-popover input[type=color]{width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-sm);background:none;cursor:pointer;flex:none}.sp-popover input[type=color]::-webkit-color-swatch-wrapper{padding:var(--space-1)}.sp-popover input[type=color]::-webkit-color-swatch{border:1px solid var(--border-subtle);border-radius:3px}.sp-hex{flex:1 1 0;min-width:0;max-width:84px}.sp-number{display:inline-flex;align-items:center;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);flex:1 1 0;min-width:0;max-width:96px;transition:border-color var(--dur-fast) var(--ease)}.sp-number:hover{border-color:var(--border-strong)}.sp-number:focus-within{border-color:var(--accent)}.sp-number input{width:100%;min-width:0;background:none;border:none;padding:5px 0;font-size:var(--font-body);text-align:center;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.sp-number input:focus-visible{outline:none}.sp-number input::-webkit-inner-spin-button,.sp-number input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sp-number-step{width:22px;height:26px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:var(--font-body);line-height:1}.sp-number-step:hover{color:var(--text-primary)}.sp-points{max-width:112px}.sp-size{display:flex;align-items:center;gap:var(--space-3)}.sp-size-num{width:100%;min-width:0;height:28px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary);font-size:var(--font-body);text-align:center;font-variant-numeric:tabular-nums;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.sp-size-num:hover{border-color:var(--border-strong)}.sp-size-num:focus-visible{border-color:var(--accent)}.sp-size-num::-webkit-inner-spin-button,.sp-size-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sp-size-num::placeholder{color:var(--text-tertiary)}.sp-size-x{flex:none;font-size:var(--font-caption);color:var(--text-tertiary)}.sp-points input{flex:1}.sp-points-glyph{flex:none;display:inline-flex;align-items:center;padding-left:var(--space-1);color:var(--text-accent);opacity:.85}.sp-points.is-computed input{cursor:pointer}.sp-points-override{color:var(--text-accent)}.sp-points-override:hover{color:var(--text-accent);background:var(--accent-wash)}.sp-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);font-size:var(--font-body)}.sp-switch{width:36px;height:20px;border-radius:var(--radius-pill);background:var(--border-default);padding:2px;display:flex;flex:none;transition:background var(--dur-fast) var(--ease)}.sp-switch.is-on{background:var(--accent);justify-content:flex-end}.sp-switch:disabled{opacity:.5;cursor:not-allowed}.sp-switch-knob{width:16px;height:16px;border-radius:var(--radius-circle)}.sp-role-field{position:relative}.sp-role-button{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:5px var(--space-4);font-size:var(--font-body);text-align:left;color:var(--text-primary);transition:border-color var(--dur-fast) var(--ease)}.sp-role-button:hover{border-color:var(--border-strong)}.sp-role-button svg{width:14px;height:14px;flex:none;color:var(--text-tertiary)}.sp-role-empty{color:var(--text-tertiary)}.sp-role-inherited{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--text-secondary)}.sp-role-inherited svg{width:11px;height:11px}.sp-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:var(--z-overlay);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:var(--space-2);max-height:240px;overflow-y:auto}.sp-option{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-body)}.sp-option:hover{background:var(--surface-hover)}.sp-option.is-active{color:var(--text-accent);background:var(--accent-wash)}.sp-option--create{color:var(--text-accent)}.sp-option--create svg{flex:none}.sp-option-row{display:flex;align-items:center;gap:var(--space-1)}.sp-option-row .sp-option{flex:1 1 auto;min-width:0}.sp-option-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-option-load{flex:none;margin-left:auto;padding-left:var(--space-4);font-size:var(--font-micro);color:var(--text-tertiary);white-space:nowrap}.sp-option-edit,.sp-option-del{flex:none;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary)}.sp-option-edit svg,.sp-option-del svg{width:14px;height:14px}.sp-option-edit{opacity:.4}.sp-option-del{opacity:0}.sp-option-row:hover .sp-option-edit,.sp-option-row.is-editing .sp-option-edit,.sp-option-row:hover .sp-option-del,.sp-option-edit:focus-visible,.sp-option-del:focus-visible{opacity:1}.sp-option-edit:hover{background:var(--surface-hover);color:var(--text-primary)}.sp-option-row.is-editing .sp-option-edit{color:var(--text-accent)}.sp-option-del:hover{background:var(--status-danger-tint);color:var(--status-danger-text)}.sp-role-current{display:inline-flex;align-items:center;gap:var(--space-3);min-width:0}.sp-role-swatch{flex:none;width:12px;height:12px;border-radius:3px;box-shadow:var(--hairline-inset)}.sp-role-swatch--empty{background:none;box-shadow:inset 0 0 0 1px var(--border-default)}.sp-role-editor{display:flex;flex-direction:column;gap:10px;margin:var(--space-1) var(--space-2) var(--space-3);padding:10px;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.sp-role-editor-fill .sp-label{margin-bottom:var(--space-3)}.sp-option--dimmed .sp-option-name,.sp-option--dimmed .lv-combo-option{color:var(--text-secondary)}.sp-option--dimmed .sp-role-swatch,.sp-option--dimmed .lv-role-swatch{opacity:.6}.sp-option-divider{margin:var(--space-2) var(--space-4) var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);font-size:var(--font-micro);font-weight:var(--fw-semibold);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-option--manage{margin-top:var(--space-2);border-top:1px solid var(--border-subtle);border-radius:0 0 var(--radius-sm) var(--radius-sm);color:var(--text-secondary)}.sp-option--manage:hover{color:var(--text-primary)}.sp-combo-open{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:0 var(--space-1) 0 var(--space-4);background:var(--surface-raised);border:1px solid var(--accent);border-radius:var(--radius-md)}.sp-combo-input{flex:1 1 auto;min-width:0;padding:5px 0;background:none;border:none;font-size:var(--font-body);color:var(--text-primary)}.sp-combo-input:focus-visible{outline:none}.sp-combo-input::placeholder{color:var(--text-tertiary)}.sp-combo-add,.sp-combo-toggle{flex:none;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.sp-combo-add{color:var(--text-accent)}.sp-combo-add svg{width:16px;height:16px}.sp-combo-toggle{color:var(--text-tertiary)}.sp-combo-toggle svg{width:14px;height:14px;transform:rotate(180deg)}.sp-combo-add:hover,.sp-combo-toggle:hover{background:var(--surface-hover)}.sp-combo-toggle:hover{color:var(--text-primary)}.sp-combo-fill{padding:var(--space-3) var(--space-4) var(--space-4);margin-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.sp-actions{display:flex;align-items:center;gap:var(--space-2)}.sp-action{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-tertiary)}.sp-action:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.sp-action:disabled{color:var(--text-disabled);cursor:default}.sp-action--danger{margin-left:auto}.sp-action--danger:hover:not(:disabled){background:var(--status-danger-tint);color:var(--status-danger-text)}.sp-embed{position:relative;display:flex;gap:var(--space-3)}.sp-embed-field{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);height:28px;padding:0 var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary);font-size:var(--font-caption);text-align:left}.sp-embed-field:hover{border-color:var(--border-strong);background:var(--surface-hover)}.sp-embed--compact{margin-top:var(--space-4)}.sp-embed-link{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:5px var(--space-3);border-radius:var(--radius-md);text-align:left;font-size:var(--font-caption);color:var(--text-secondary)}.sp-embed-link:hover{background:var(--surface-hover);color:var(--text-primary)}.sp-embed-link svg{flex:none}.sp-embed-field.is-broken{color:var(--status-danger-text)}.sp-embed-field svg{flex:none;color:var(--text-tertiary)}.sp-embed-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sp-embed-open{flex:none}.sp-doc-head{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.sp-doc-name-input{flex:1;min-width:0;padding:3px var(--space-3);margin:-3px -6px;font:inherit;font-size:var(--font-title);font-weight:var(--fw-bold);color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:var(--radius-md)}.sp-doc-name-input:hover{border-color:var(--border-default)}.sp-doc-name-input:focus-visible{outline:none;background:var(--surface-raised);border-color:var(--accent)}.sp-summary-name{flex:1;min-width:0;margin:0;font-size:var(--font-title);font-weight:var(--fw-bold);color:var(--text-primary);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sp-summary-rows{display:grid;grid-template-columns:auto 1fr;gap:var(--space-3) var(--space-5);margin:0;font-size:var(--font-caption)}.sp-summary-rows dt{color:var(--text-secondary)}.sp-summary-rows dd{margin:0;min-width:0;color:var(--text-primary);overflow-wrap:anywhere}.sp-summary-line{margin:0;font-size:var(--font-caption);color:var(--text-secondary)}.sp-summary-line b{color:var(--text-primary);font-weight:var(--fw-semibold)}.sp-summary-roles{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none}.sp-summary-roles li{padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);font-size:var(--font-micro);font-weight:var(--fw-semibold);color:var(--status-neutral-text);background:var(--status-neutral-tint)}.sp-doc-close{flex:none}.pj-num{width:100%;padding:5px var(--space-4);font:inherit;font-size:var(--font-body);font-variant-numeric:tabular-nums;color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--dur-fast) var(--ease)}.pj-num:hover{border-color:var(--border-strong)}.pj-num:focus-visible{outline:none;border-color:var(--accent)}.pj-pace{display:flex;align-items:center;gap:var(--space-4)}.pj-pace .pj-num{width:72px;flex:none}.pj-pace-unit{font-size:var(--font-caption);color:var(--text-secondary);white-space:nowrap}.pj-pace-policy{display:flex;flex-direction:column;gap:var(--space-3)}.pj-pace-measured{margin:0;font-size:var(--font-caption);line-height:1.5;color:var(--text-secondary)}.pj-pace-measured strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.pj-pace-mode{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3) var(--space-4);font-size:var(--font-body);color:var(--text-primary)}.pj-pace-mode-pick{display:inline-flex;align-items:center;gap:var(--space-4);cursor:pointer}.pj-pace-mode input[type=radio]{margin:0;accent-color:var(--accent)}.pj-pace-mode-label,.pj-pace-inline{display:inline-flex;align-items:center;gap:var(--space-3)}.pj-pace-inline .pj-num{width:64px;flex:none}.pj-pace-mode:not(.is-picked) .pj-pace-inline{opacity:.6}.pj-pace-mode-note{flex-basis:100%;padding-left:22px;font-size:var(--font-meta);color:var(--text-tertiary)}.pj-pace-num.is-invalid{border-color:var(--status-danger)}.pj-pace-problem{color:var(--status-danger-text)}.pj-pace-num--narrow{width:52px;flex:none}.pj-pace-uses{margin:var(--space-1) 0 0;font-size:var(--font-caption);line-height:1.5;color:var(--text-secondary)}.pj-pace-uses strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.pj-progress{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.pj-pct{font-size:22px;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;color:var(--text-primary);line-height:1}.pj-bar{height:5px;margin:var(--space-4) 0 var(--space-4);border-radius:var(--radius-pill);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--border-subtle);overflow:hidden}.pj-bar-fill{display:block;height:100%;border-radius:inherit;background:var(--status-success)}.pj-metrics{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);font-size:var(--font-caption);color:var(--text-secondary);font-variant-numeric:tabular-nums}.pj-metrics b{color:var(--text-primary);font-weight:var(--fw-semibold)}.pj-vpi b{color:var(--text-accent)}.pj-reset,.pj-start{align-self:flex-start;margin-top:10px}.pj-demote{align-self:flex-start;margin-top:var(--space-4)}.sp-rte-body a{color:var(--text-accent);text-decoration:underline;cursor:pointer}.sp-waiting{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin:var(--space-3) 0 0;font-size:var(--font-meta);color:var(--text-secondary)}.sp-waiting-chip{max-width:140px;padding:1px var(--space-4);border-radius:var(--radius-pill);background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-primary);font-size:var(--font-micro);font-weight:var(--fw-semibold);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.sp-waiting-chip:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}.sp-slack{margin-top:var(--space-3)}.pj-pace-stale{display:inline-block;margin-left:var(--space-3);padding:1px var(--space-3);font-size:var(--font-micro);font-weight:var(--fw-semibold);color:var(--status-neutral-text);background:var(--status-neutral-tint);border-radius:var(--radius-pill);white-space:nowrap;vertical-align:1px}.pj-pace-stale.is-stale{color:var(--status-warning-text);background:var(--status-warning-tint)}.pj-layout-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:28px;font-size:var(--font-body);color:var(--text-primary)}.pj-layout-row>span:first-child{flex:1 1 auto;min-width:0}.pj-layout-row .pj-num{width:72px;flex:none}.pj-layout-pair{display:inline-flex;align-items:center;gap:var(--space-1);flex:none}.pj-layout-pair .pj-num{width:60px}.pj-layout-pair .pj-layout-times{color:var(--text-tertiary);font-size:var(--font-caption)}.sp-switch.is-mixed .sp-switch-knob{transform:translate(50%);opacity:.6}.hdr-ephemeral{flex:none;display:flex;align-items:center;gap:var(--space-4);padding:7px var(--space-5);font-size:var(--font-body);color:var(--status-danger-text);background:var(--status-danger-tint);border-bottom:1px solid color-mix(in srgb,var(--status-danger) 40%,var(--border-subtle))}.hdr-ephemeral-mark{display:inline-flex;flex:none;color:var(--status-danger)}.hdr-ephemeral-btn{flex:none;margin-left:auto}button.hdr-save--action{border:none;background:transparent;padding:0;cursor:pointer}.app-header{position:relative;z-index:var(--z-header);flex:none;display:flex;align-items:center;gap:var(--space-4);height:46px;padding:0 var(--space-4);background:var(--surface-base);border-bottom:1px solid var(--border-subtle)}.hdr-pane-toggle{flex:none}.hdr-search{position:relative;flex:1;min-width:60px;height:100%}.hdr-search--icon{display:flex;align-items:center;justify-content:flex-end;min-width:0}.hdr-right{flex:none;display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.hdr-history{display:flex;align-items:center;gap:var(--space-2)}.toolbar{flex:none;display:flex;align-items:center;gap:var(--space-2)}.view-legend{position:absolute;top:40px;left:var(--space-5);z-index:var(--z-view-chrome);display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);max-width:min(60%,520px);pointer-events:none;-webkit-user-select:none;user-select:none}.view-legend-item{display:inline-flex;align-items:center;gap:5px;max-width:180px;padding:var(--space-1) 7px var(--space-1) 5px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface-raised) 86%,transparent);box-shadow:inset 0 0 0 1px var(--border-default);font-size:var(--font-micro);font-weight:var(--fw-medium);line-height:1.4;color:var(--text-primary)}.view-legend-swatch{flex:none;width:10px;height:10px;border-radius:3px;box-shadow:0 0 0 1px var(--border-strong)}.view-legend-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zen-pill{position:absolute;top:var(--space-5);left:var(--space-5);z-index:var(--z-header);display:flex;align-items:center;padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}.tb-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);color:var(--text-tertiary);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.tb-btn:hover:not(:disabled){color:var(--text-primary);background:var(--surface-hover)}.tb-btn:disabled{color:var(--text-disabled);cursor:default}.tb-btn.is-open{color:var(--text-accent);background:var(--accent-wash)}.tb-zoom{width:44px;height:30px;border-radius:var(--radius-md);font-size:var(--font-caption);font-weight:var(--fw-medium);color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}.tb-zoom:hover,.tb-zoom.is-open{color:var(--text-primary);background:var(--surface-hover)}.tb-split{position:relative;display:inline-flex;align-items:center}.tb-split-caret{width:14px;margin-left:-2px}.tb-split-caret:before,.tb-swatch:before,.toast-x:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px}.tb-swatch:before{top:-4px;right:-4px;bottom:-4px;left:-4px}.tb-views{display:inline-flex;gap:var(--space-1);padding:var(--space-1);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.tb-view{position:relative;display:inline-flex;align-items:center;gap:var(--space-3);height:26px;padding:0 10px;border-radius:var(--radius-sm);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-fast) var(--ease)}.tb-view-icon{display:inline-flex;flex:none}.tb-view-icon svg{display:block}.tb-view:hover:not(.is-active){color:var(--text-primary)}.tb-view.is-active{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--border-subtle)}.tb-view.is-disabled{color:var(--text-disabled);cursor:not-allowed}.tb-view.is-disabled:hover{color:var(--text-disabled)}.tb-portfolio{position:relative;display:inline-flex;align-items:center;gap:var(--space-3);height:30px;padding:0 10px;border-radius:var(--radius-md);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);white-space:nowrap}.tb-portfolio:hover{color:var(--text-primary);background:var(--surface-hover)}.tb-portfolio.is-active{color:var(--text-accent);background:var(--accent-wash)}.tb-portfolio .tb-num{right:3px;bottom:2px}@media(max-width:1200px){.tb-view,.tb-portfolio{gap:0;padding:0 7px}.tb-view-label{display:none}.tb-view .tb-num,.tb-portfolio .tb-num{right:1px}}.tb-modes{display:inline-flex;gap:var(--space-1);padding:var(--space-1);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.tb-mode{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:color var(--dur-fast) var(--ease)}.tb-mode:hover:not(.is-active){color:var(--text-primary)}.tb-mode.is-active{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--border-subtle)}.tb-num{position:absolute;right:2px;bottom:0;font-size:var(--font-micro);line-height:1;font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;color:var(--text-secondary);pointer-events:none}.tb-view .tb-num{right:3px;bottom:2px}.tb-btn:hover .tb-num,.tb-mode:hover .tb-num,.tb-view:hover .tb-num,.tb-portfolio:hover .tb-num,.tb-mode.is-active .tb-num,.tb-view.is-active .tb-num,.tb-portfolio.is-active .tb-num,.tb-btn.is-open .tb-num{opacity:.9}.tb-menu--left{right:auto;left:0;min-width:150px}.tb-divider{width:1px;height:16px;margin:0 var(--space-2);background:var(--border-subtle);flex-shrink:0}.tb-file{display:none}.tb-more{position:relative;display:inline-flex}.tb-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:var(--z-flyout);min-width:210px;padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:1px}.tb-menu--flyout{position:fixed;right:auto;z-index:var(--z-menu)}.menu-item{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 10px;border-radius:var(--radius-md);font-size:var(--font-body);color:var(--text-primary);text-align:left;transition:background var(--dur-fast) var(--ease)}.menu-item--described{height:auto;min-height:32px;padding-top:5px;padding-bottom:var(--space-3);align-items:flex-start}.menu-item--described>svg{margin-top:var(--space-1)}.menu-item-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.menu-item-desc{font-size:var(--font-micro);line-height:1.35;color:var(--text-tertiary);white-space:normal}.menu-item svg{flex-shrink:0;color:var(--text-tertiary)}.menu-item:hover:not(:disabled){background:var(--surface-hover)}.menu-item:focus{outline:none;background:var(--surface-hover);box-shadow:inset 0 0 0 1.5px var(--accent)}.menu-item:disabled{color:var(--text-disabled);cursor:default}.menu-item:disabled svg,.menu-item:disabled .menu-item-shortcut,.menu-item:disabled .menu-item-desc{color:var(--text-disabled)}.menu-item.is-active{background:var(--surface-hover)}.menu-item.is-active svg{color:var(--accent)}.menu-item--danger{color:var(--status-danger-text)}.menu-item--danger svg{color:var(--status-danger-text)}.menu-item--danger:hover:not(:disabled){background:var(--status-danger-tint)}.menu-item--sub{padding-left:32px}.menu-item-label{flex:1;min-width:0}.menu-item-shortcut{flex-shrink:0;font-size:var(--font-micro);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.menu-divider{height:1px;margin:var(--space-2) var(--space-3);background:var(--border-subtle)}.menu-heading{padding:var(--space-3) 10px var(--space-1);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.tb-size-dot{display:block;border-radius:var(--radius-circle);background:currentColor}.tb-swatches{display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-1)}.tb-swatch{position:relative;width:16px;height:16px;border-radius:5px;box-shadow:var(--hairline-inset);flex:none}.tb-swatch.is-active{box-shadow:var(--hairline-inset),0 0 0 1px var(--surface-base),0 0 0 2px var(--accent)}.tb-swatch--custom{position:relative;padding:0;cursor:pointer}.tb-swatch-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:none;opacity:0;cursor:pointer}.tb-color-name{font-size:var(--font-micro);font-weight:var(--fw-semibold);color:var(--text-secondary);white-space:nowrap;max-width:88px;overflow:hidden;text-overflow:ellipsis;padding:0 var(--space-1)}.tb-select{height:30px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary);font-size:var(--font-caption);cursor:pointer}.tb-select:hover{border-color:var(--border-strong)}.tb-select:focus-visible{border-color:var(--accent)}.ctx-menu{position:fixed;z-index:var(--z-menu);min-width:220px;max-width:280px;max-height:calc(100vh - 24px);overflow-y:auto;padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);animation:ctx-in var(--dur-fast) var(--ease) both}@keyframes ctx-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.ctx-submenu{position:fixed;z-index:calc(var(--z-menu) + 1);min-width:210px;max-width:280px;padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:1px;animation:ctx-in var(--dur-fast) var(--ease) both}.ctx-caret{flex-shrink:0;margin-left:var(--space-2);font-size:16px;line-height:1;color:var(--text-tertiary)}.ctx-iconrow{display:flex;gap:var(--space-1);padding:var(--space-1) var(--space-3)}.ctx-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-md);color:var(--text-tertiary)}.ctx-iconbtn:hover:not(:disabled){color:var(--text-primary);background:var(--surface-hover)}.ctx-iconbtn:disabled{color:var(--text-disabled);cursor:default}.stg-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-popover) - 1);background:transparent}.settings-popover{position:absolute;top:56px;right:var(--space-5);z-index:var(--z-popover);width:min(320px,calc(100vw - 24px));max-height:calc(100% - 68px);overflow-y:auto;padding:14px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}.stg-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin:-2px 0 var(--space-4)}.stg-head-title{margin:0;min-width:0;font-size:var(--font-title);font-weight:var(--fw-bold);color:var(--text-primary)}.stg-head-close{margin:-4px -6px -4px 0}.settings-popover:has(.cap-resources){width:380px}.stg-tabs{position:sticky;top:-14px;z-index:var(--z-lift-1);display:flex;gap:var(--space-6);padding:0 14px;margin:-14px -14px -4px;background:var(--surface-raised);border-bottom:1px solid var(--border-subtle)}.stg-panel{display:flex;flex-direction:column;gap:18px}.stg-tab{position:relative;flex:none;padding:10px var(--space-1) 9px;margin-bottom:-1px;border-bottom:2px solid transparent;font-size:var(--font-ui);color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-fast) var(--ease)}.stg-tab:hover:not(.is-active){color:var(--text-primary)}.stg-tab.is-active{color:var(--text-primary);border-bottom-color:var(--accent)}.theme-gallery-wrap{display:flex;flex-direction:column;gap:10px}.theme-gallery{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.theme-card{display:flex;flex-direction:column;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-sunken)}.theme-card.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-card-select{display:block;width:100%;padding:var(--space-3) var(--space-3) var(--space-1);background:transparent;border:none;cursor:pointer}.theme-preview{display:block;width:100%;height:auto}.theme-card-foot{position:relative;display:flex;align-items:center;padding:var(--space-1) var(--space-2) var(--space-2)}.theme-card-name{flex:1;min-width:0;height:22px;padding:0 var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:var(--font-caption);font-weight:var(--fw-medium);text-overflow:ellipsis}.theme-card-name:hover{border-color:var(--border-default)}.theme-card-name:focus{background:var(--surface-raised);border-color:var(--accent);outline:none}.theme-card-actions{position:absolute;right:var(--space-2);top:var(--space-1);bottom:var(--space-2);display:flex;align-items:center;gap:1px;padding-left:10px;background:linear-gradient(to right,transparent,var(--surface-sunken) 10px);opacity:0;transition:opacity var(--dur-fast) var(--ease)}.theme-card:hover .theme-card-actions,.theme-card.is-active .theme-card-actions,.theme-card:focus-within .theme-card-actions{opacity:1}.theme-card-act{display:grid;place-items:center;width:22px;height:22px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer}.theme-card-act:hover{background:var(--surface-raised);color:var(--text-primary)}.theme-card-act--danger:hover{color:var(--status-danger-text);background:var(--status-danger-tint)}.theme-gallery-buttons{display:flex;gap:var(--space-3)}.stg-btn{gap:var(--space-2)}.stg-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.modal-shell.theme-editor{max-height:80vh;padding:0;gap:0;overflow:hidden}.theme-editor-head{flex:none;display:flex;align-items:center;gap:var(--space-4);padding:10px 10px 10px var(--space-5);border-bottom:1px solid var(--border-subtle)}.theme-editor-preview{flex:none;width:74px}.theme-editor-preview .theme-preview{display:block;width:100%;height:auto}.theme-editor-name{flex:1;min-width:0;height:28px;padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font-size:var(--font-lead);font-weight:var(--fw-bold)}.theme-editor-name:hover{border-color:var(--border-default)}.theme-editor-name:focus{background:var(--surface-raised);border-color:var(--accent);outline:none}.theme-editor-icon{flex:none;display:grid;place-items:center;width:28px;height:28px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer}.theme-editor-icon:hover{background:var(--surface-hover);color:var(--text-primary)}.theme-editor-body{padding:var(--space-2) var(--space-5) var(--space-5)}.theme-editor-body>.sp-group>.sp-group-header .sp-group-title{font-weight:var(--fw-semibold)}.theme-editor-body .sp-group .sp-group .sp-group-body{padding-left:var(--space-4)}.theme-editor-body .sp-toggle-row{padding:3px 0}.exp-row{display:flex;flex-direction:column;gap:var(--space-3)}.exp-row-label{font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.exp-seg{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.exp-seg button{flex:1;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.exp-seg button:hover:not(:disabled):not(.is-active){color:var(--text-primary)}.exp-seg button.is-active{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--border-subtle)}.exp-seg button:disabled{color:var(--text-disabled);cursor:default}.exp-formats{display:flex;gap:var(--space-4)}.exp-btn{flex:1}.exp-group{display:flex;flex-direction:column;gap:var(--space-4)}.exp-group .stg-heading{margin:0}.exp-action{display:flex;flex-direction:column;gap:var(--space-1);width:100%;padding:var(--space-4) var(--space-5);text-align:left;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.exp-action:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.exp-action:disabled{cursor:default;background:var(--surface-sunken)}.exp-action:disabled .exp-action-label,.exp-action:disabled .exp-action-hint{color:var(--text-disabled)}.exp-action-label{font-size:var(--font-ui);font-weight:var(--fw-semibold);color:var(--text-primary)}.exp-action-hint{font-size:var(--font-meta);color:var(--text-tertiary)}.stg-section{display:flex;flex-direction:column;gap:var(--space-1)}.stg-heading{margin:0 0 var(--space-3);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.stg-advanced-toggle{display:inline-flex;align-items:center;gap:5px;margin:0 0 var(--space-3);padding:0;border:none;background:none;cursor:pointer;font:inherit;font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.stg-advanced-toggle:hover{color:var(--text-primary)}.stg-advanced-chevron{display:inline-block;transition:transform var(--dur-fast) var(--ease)}.stg-advanced-chevron.is-open{transform:rotate(90deg)}.stg-hint{margin:var(--space-2) 0 0;font-size:var(--font-meta);line-height:var(--lh-body);color:var(--text-tertiary)}.stg-hint--lead{margin:-4px 0 var(--space-4)}.stg-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:28px;font-size:var(--font-body)}.stg-row.is-indent{padding-left:var(--space-6)}.stg-row.is-indent .stg-label{font-size:var(--font-caption);color:var(--text-secondary)}.stg-label{flex:1;min-width:0}.stg-toggle{cursor:pointer}.stg-switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:36px;height:20px;margin:0;border-radius:var(--radius-pill);background:var(--border-default);position:relative;cursor:pointer;flex-shrink:0;transition:background var(--dur-fast) var(--ease)}.stg-switch:before{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--radius-circle);transition:transform var(--dur-fast) var(--ease)}.stg-switch:checked{background:var(--accent)}.stg-switch:checked:before{transform:translate(16px)}.stg-switch:disabled{opacity:.5;cursor:not-allowed}.stg-num{width:56px;height:26px;padding:0 var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-raised);font-size:var(--font-caption);text-align:center;font-variant-numeric:tabular-nums}.stg-num:hover{border-color:var(--border-strong)}.stg-num:focus-visible{border-color:var(--accent)}.stg-num::-webkit-outer-spin-button,.stg-num::-webkit-inner-spin-button{margin-left:var(--space-1)}.stg-size{display:flex;align-items:center;gap:var(--space-3)}.stg-size-x{font-size:var(--font-micro);color:var(--text-tertiary)}.stg-range{display:flex;align-items:center;gap:var(--space-4);flex:1;max-width:170px}.stg-range input[type=range]{flex:1;min-width:0;margin:0;accent-color:var(--accent)}.stg-range-value{width:28px;text-align:right;font-size:var(--font-caption);color:var(--text-secondary);font-variant-numeric:tabular-nums}.ppl-swatch{flex:none;width:18px;height:18px;border:1px solid var(--border-default);border-radius:var(--radius-circle);background:var(--surface-sunken);cursor:pointer;padding:0}.ppl-load{flex:none;font-size:var(--font-micro);color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}.ppl-colors{margin:var(--space-4) 0 0 26px}.ppl-add-btn{flex:none}.help-popover{position:absolute;top:8vh;left:50%;transform:translate(-50%);z-index:var(--z-popover);width:min(92vw,640px);max-height:84vh;overflow-y:auto;padding:14px 18px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}.help-tabs{display:flex;gap:var(--space-6);margin-bottom:var(--space-5);border-bottom:1px solid var(--border-subtle)}.help-tab{position:relative;flex:none;padding:var(--space-4) var(--space-1) 9px;margin-bottom:-1px;border-bottom:2px solid transparent;font-size:var(--font-ui);color:var(--text-secondary);white-space:nowrap;transition:color var(--dur-fast) var(--ease)}.help-tab:hover:not(.is-active){color:var(--text-primary)}.help-tab.is-active{color:var(--text-primary);border-bottom-color:var(--accent)}.help-section{margin-bottom:14px}.help-section:last-child{margin-bottom:0}.help-heading{margin:0 0 var(--space-2);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.help-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:26px;font-size:var(--font-body)}.help-keys{display:flex;align-items:center;gap:3px;flex:none}.help-cmdk-cta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);width:100%;padding:10px var(--space-5);margin-bottom:10px;border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--accent-wash);text-align:left}.help-cmdk-cta:hover{background:color-mix(in srgb,var(--accent-wash),var(--accent) 12%)}.help-cmdk-cta-text{display:flex;flex-direction:column;gap:1px;min-width:0}.help-cmdk-cta-text strong{font-size:var(--font-ui);font-weight:var(--fw-semibold);color:var(--text-accent)}.help-cmdk-cta-sub{font-size:var(--font-caption);color:var(--text-secondary)}.help-search{width:100%;height:32px;padding:0 10px;margin-bottom:var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary);font-size:var(--font-body)}.help-search::placeholder{color:var(--text-tertiary)}.help-search:hover{border-color:var(--border-strong)}.help-search:focus{outline:none;border-color:var(--accent)}.help-empty{margin:var(--space-2) 0 0;font-size:var(--font-body);color:var(--text-tertiary)}.help-modekeys{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.help-mk-row{display:grid;grid-template-columns:40px 1fr 1fr;gap:var(--space-4);align-items:center;padding:5px var(--space-4);font-size:var(--font-caption);color:var(--text-primary)}.help-mk-row+.help-mk-row{border-top:1px solid var(--border-subtle)}.help-mk-head{font-size:var(--font-micro);font-weight:var(--fw-semibold);color:var(--text-secondary);background:var(--surface-sunken)}.help-guide p{margin:0 0 10px;font-size:var(--font-body);line-height:1.55;color:var(--text-primary)}.help-guide p:last-child{margin-bottom:0}.help-guide strong{font-weight:var(--fw-semibold)}.help-lead{margin:0 0 var(--space-5);font-size:var(--font-caption);line-height:1.5;color:var(--text-secondary)}.help-glossary{margin:0}.help-term+.help-term{margin-top:var(--space-4)}.help-glossary dt{font-size:var(--font-body);font-weight:var(--fw-semibold);color:var(--text-primary)}.help-glossary dd{margin:1px 0 0;font-size:var(--font-caption);line-height:1.5;color:var(--text-secondary)}.tpl-gallery{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-canvas-overlay);display:flex;align-items:center;justify-content:center;padding:24px;pointer-events:none;animation:tpl-gallery-fade .4s var(--ease) both}@keyframes tpl-gallery-fade{0%{opacity:0}to{opacity:1}}.tpl-panel{position:relative;pointer-events:auto;width:min(92vw,640px);max-height:100%;overflow-y:auto;padding:24px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);text-align:center}.tpl-close{position:absolute;top:10px;right:10px}.tpl-title{margin:0 0 14px;font-size:var(--font-headline);font-weight:var(--fw-bold);color:var(--text-primary)}.tpl-sub{margin:0 0 var(--space-5);font-size:var(--font-lead);color:var(--text-secondary)}.tpl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:560px){.tpl-grid{grid-template-columns:repeat(6,1fr)}.tpl-grid>.tpl-card{grid-column:span 2}.tpl-grid>.tpl-card:nth-child(4){grid-column:2 / span 2}}.tpl-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-card);text-align:center;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.tpl-card:hover{border-color:var(--border-strong);background:var(--surface-hover)}.tpl-card-emoji{font-size:24px;line-height:1;color:var(--text-secondary)}.tpl-card-emoji svg{width:24px;height:24px}.tpl-card-name{font-size:var(--font-ui);font-weight:var(--fw-semibold);color:var(--text-primary)}.tpl-card-blurb{font-size:var(--font-caption);line-height:1.4;color:var(--text-secondary)}.tpl-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-4);margin-top:18px;font-size:var(--font-caption);color:var(--text-secondary)}.tpl-link{font-size:var(--font-caption);font-weight:var(--fw-medium);color:var(--text-accent)}.tpl-link:hover{text-decoration:underline}.tpl-dot{color:var(--border-strong)}.tpl-kbd-hint{display:inline-flex;align-items:center;gap:var(--space-2)}.coach-hint{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:var(--z-canvas-overlay);display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-raised);box-shadow:var(--shadow-pop);font-size:var(--font-caption);color:var(--text-secondary);pointer-events:none;white-space:nowrap;animation:tpl-gallery-fade .4s var(--ease) both}.coach-hint-sep{opacity:.5}.app-shell.has-toast .coach-hint{bottom:76px}.surface-fallback,.surface-notice{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:var(--z-header);display:flex;align-items:center;gap:var(--space-4);max-width:min(420px,calc(100% - 32px));padding:var(--space-3) var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text-secondary);font-size:var(--font-caption);line-height:var(--lh-body);white-space:nowrap;box-shadow:var(--shadow-pop);pointer-events:none}.surface-fallback{animation:tpl-gallery-fade var(--dur-normal) var(--ease) .4s both}.surface-notice{color:var(--text-primary);white-space:normal;pointer-events:auto}.surface-notice-action{flex:none}@media(prefers-reduced-motion:reduce){.surface-fallback{animation-duration:0ms}}.toast{position:absolute;bottom:20px;left:50%;z-index:var(--z-toast);display:flex;align-items:center;gap:var(--space-5);max-width:min(480px,calc(100vw - 32px));padding:10px 10px 10px var(--space-6);border:1px solid var(--border-default);border-left:3px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-raised);color:var(--text-primary);font-size:var(--font-ui);line-height:var(--lh-body);box-shadow:var(--shadow-pop);cursor:pointer;animation:toast-in var(--dur-normal) var(--ease) both}.toast--danger{border-left-color:var(--status-danger)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.toast-action{flex:none}.toast-x{position:relative;flex:none;width:22px;height:22px;margin-left:-2px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);font:inherit;font-size:15px;line-height:1;cursor:pointer}.toast-x:hover,.toast-x:focus-visible{color:var(--text-primary);background:var(--surface-hover)}.hdr-save{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-right:var(--space-1);align-self:center;flex:none;color:var(--text-tertiary)}.hdr-save svg{width:12px;height:12px}.hdr-save--saved{color:var(--status-success);opacity:.7}.hdr-save--pending,.hdr-save--saving{color:var(--status-warning);animation:hdr-save-pulse 1.1s ease-in-out infinite}.hdr-save--error{color:var(--status-danger)}.hdr-save--offline{color:var(--text-tertiary);opacity:1}@keyframes hdr-save-pulse{0%,to{opacity:.35}50%{opacity:.85}}.zen-exit-hint{position:absolute;top:20px;left:50%;z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:10px 18px;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-raised);color:var(--text-primary);font-size:var(--font-caption);box-shadow:var(--shadow-pop);animation:zen-hint-in var(--dur-normal) var(--ease) both}@keyframes zen-hint-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.zen-exit-hint kbd{display:inline-block;padding:1px var(--space-3);border-radius:var(--radius-sm);background:var(--surface-sunken);border:1px solid var(--border-default);font:inherit;font-weight:var(--fw-semibold)}.zen-exit-hint-track{width:100%;height:3px;border-radius:2px;overflow:hidden;background:var(--border-subtle)}.zen-exit-hint-fill{display:block;width:100%;height:100%;border-radius:2px;background:var(--accent);transform-origin:left center;animation:zen-hint-fill linear both}@keyframes zen-hint-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.modal-shell.process-picker{width:min(92vw,360px);max-height:64vh;padding:0;gap:0;overflow:hidden}.process-picker-head{flex:none;display:flex;align-items:center;gap:var(--space-4);padding:14px 14px 10px 18px;color:var(--text-primary)}.process-picker-title{flex:1;font-size:var(--font-title);font-weight:var(--fw-bold)}.process-picker-close{flex:none}.process-picker-search{flex:none;height:32px;margin:0 14px var(--space-4);padding:0 10px;font-size:var(--font-body);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary)}.process-picker-search:hover{border-color:var(--border-strong)}.process-picker-search:focus{outline:none;border-color:var(--accent)}.process-picker-list{flex:1;min-height:0;padding:0 10px 10px}.process-picker-item{display:flex;align-items:center;gap:var(--space-4);width:100%;padding:7px 10px;border-radius:var(--radius-md);text-align:left;font-size:var(--font-body);color:var(--text-primary)}.process-picker-item:hover{background:var(--surface-hover)}.process-picker-item.is-hl{background:var(--surface-hover);outline:1px solid var(--border-strong);outline-offset:-1px}.process-picker-item.is-active{background:var(--accent-wash);color:var(--text-accent)}.process-picker-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.process-picker-detail{flex:none;font-size:var(--font-micro);color:var(--text-tertiary)}.process-picker-empty{padding:14px 10px;text-align:center;font-size:var(--font-body);color:var(--text-tertiary)}.process-picker-hint{flex:none;margin:0;padding:var(--space-4) 18px 10px;border-top:1px solid var(--border-subtle);font-size:var(--font-meta);line-height:var(--lh-body);color:var(--text-tertiary)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:flex-start;padding:14vh 0 6vh;background:var(--scrim);animation:tpl-gallery-fade var(--dur-normal) var(--ease)}.modal-backdrop--dialog{z-index:var(--z-dialog)}.modal-backdrop--picker{z-index:var(--z-overlay)}.modal-shell{max-height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:18px 20px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);color:var(--text-primary);animation:modal-in var(--dur-normal) var(--ease)}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-shell--sm{width:min(92vw,360px)}.modal-shell--md{width:min(92vw,440px)}.modal-shell--lg{width:min(92vw,640px)}.modal-shell .stg-head{margin:0 0 var(--space-1)}.modal-shell .stg-head-title{font-size:var(--font-headline)}.modal-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin:var(--space-2) -20px 0;padding:14px 20px 0;border-top:1px solid var(--border-subtle)}.modal-actions>.btn:only-child{flex:1}.choice-dialog-title{margin:0;font-size:var(--font-title);font-weight:var(--fw-bold)}.choice-dialog-message{font-size:var(--font-lead);line-height:1.55;color:var(--text-secondary)}.choice-dialog-actions{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.choice-dialog-actions .choice-dialog-btn{width:100%}.join-dialog{width:min(94vw,460px)}.join-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:300px;overflow-y:auto;margin-top:var(--space-1)}.join-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer}.join-row:hover{border-color:var(--border-strong);background:var(--surface-hover)}.join-row.is-primary{border-color:var(--accent);background:var(--accent-wash)}.join-row input{flex:none;accent-color:var(--accent)}.join-row-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.join-row-title{font-size:var(--font-body);font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.join-row-meta{font-size:var(--font-micro);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.join-row-tag{flex:none;font-size:var(--font-micro);font-weight:var(--fw-semibold);color:var(--text-accent)}.join-diffs{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) 10px;border-radius:var(--radius-md);background:var(--surface-sunken);border:1px solid var(--border-subtle);font-size:var(--font-caption);line-height:1.4}.join-diff strong{font-weight:var(--fw-semibold)}.join-diff em{font-style:normal;font-weight:var(--fw-semibold);color:var(--text-accent)}.tb-select-area{display:none}@media(pointer:coarse){.tb-select-area{display:inline-flex}.tb-num{display:none}}@media(any-pointer:coarse){.tb-btn:before,.tb-view:before,.tb-mode:before,.menu-item:before,.pf-scope-x:before,.tb-split-caret:before,.tb-swatch:before,.toast-x:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px}.menu-item,.pf-scope-x{position:relative}.app-header,.app-header button,.tb-menu,.ctx-menu,.menu-item{touch-action:manipulation}}@media(max-width:1200px){.hdr-search{min-width:36px;flex-shrink:1}.toolbar{flex-shrink:1;min-width:0;overflow:hidden}.toolbar--draw{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.toolbar--draw::-webkit-scrollbar{display:none}.hdr-right{flex-shrink:0}}@media(max-width:900px){.app-header{gap:var(--space-3);padding:0 var(--space-3)}}@media(max-width:640px){.app-header{gap:var(--space-2);padding:0 var(--space-2)}.toolbar,.hdr-right{gap:var(--space-1)}.hdr-search--icon{min-width:0}.toolbar--compact .tb-view,.toolbar--compact .tb-portfolio{padding:0 var(--space-3)}.tb-divider{margin:0 var(--space-1)}}@media(max-width:480px){.hdr-right>.tb-divider{display:none}.toolbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.toolbar::-webkit-scrollbar{display:none}}.cpm-summary{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:var(--z-canvas-overlay);display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-raised);box-shadow:var(--shadow-pop);font-family:var(--font-sans);font-size:var(--font-caption);font-weight:var(--fw-medium);line-height:var(--lh-tight);color:var(--text-secondary);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none}.cpm-summary-length{color:var(--status-danger-text);font-weight:var(--fw-semibold)}.cpm-summary-sep{opacity:.5}.coach-hint+.cpm-summary{bottom:52px}.app-shell.has-toast .cpm-summary{bottom:76px}.app-shell.has-toast .coach-hint+.cpm-summary{bottom:112px}.zen-exit-hint--present{top:auto;bottom:20px;opacity:.85;animation:none;transform:translate(-50%)}.zen-exit-hint--present:hover{opacity:1}.help-version{margin:var(--space-4) 0 0;color:var(--text-tertiary);font-size:var(--font-micro);text-align:right}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-drop);display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--scrim);pointer-events:none;animation:tpl-gallery-fade var(--dur-fast) var(--ease)}.drop-overlay-panel{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-width:min(360px,100%);padding:28px 36px;border:2px dashed var(--accent);border-radius:var(--radius-xl);background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-modal);text-align:center}.drop-overlay-title{font-size:var(--font-headline);font-weight:var(--fw-bold)}.drop-overlay-sub{font-size:var(--font-lead);color:var(--text-secondary)}@media(prefers-reduced-motion:reduce){.drop-overlay{animation:none}}.hdr-help-dot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:var(--radius-circle);background:var(--accent);box-shadow:0 0 0 1.5px var(--surface-base);pointer-events:none}.help-release{margin:0 0 var(--space-4)}.help-release-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-2)}.help-release-title{font-size:var(--font-body);font-weight:var(--fw-semibold);color:var(--text-primary)}.help-release-version{font-size:var(--font-micro);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.help-release-date{font-size:var(--font-micro);color:var(--text-tertiary)}.help-release-list{margin:0 0 var(--space-3);padding-left:var(--space-5);font-size:var(--font-caption);line-height:var(--lh-body);color:var(--text-primary)}.help-release-list li+li{margin-top:var(--space-1)}.stg-foot{margin:var(--space-4) 0 0;font-size:var(--font-micro);color:var(--text-tertiary)}.stg-link{color:var(--text-accent);font-weight:var(--fw-medium)}.stg-link:hover{text-decoration:underline}.stg-link:disabled{color:var(--text-disabled);cursor:default;text-decoration:none}.stg-link--danger{color:var(--status-danger-text)}.stg-data-line{margin:0;font-size:var(--font-body);color:var(--text-primary)}.stg-meter{height:var(--space-3);margin:var(--space-3) 0 var(--space-2);overflow:hidden;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-pill)}.stg-meter-fill{height:100%;background:var(--accent);border-radius:inherit}.stg-data-actions{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.stg-leftovers{margin:0;padding:0;list-style:none}.stg-leftover-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:560px){.tpl-grid{grid-template-columns:repeat(8,1fr)}.tpl-grid>.tpl-card:nth-child(4){grid-column:span 2}.tpl-grid>.tpl-card:nth-child(5){grid-column:2 / span 2}}.task-node{position:relative;width:100%;height:100%;--task-ink: 30 30 30}[data-theme=dark] .task-node--transparent{--task-ink: 228 228 231}[data-theme=dark] .task-node--frame:not(.task-node--transparent) .task-shape path{fill-opacity:.8}.task-shape{position:absolute;overflow:visible;pointer-events:none;filter:var(--drop-shadow-task);transition:filter var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.task-node--hover .task-shape{filter:var(--drop-shadow-task-hover)}.task-node--frame .task-shape{transform:none;filter:none}.task-node--frame.task-node--hover .task-shape{transform:none;filter:var(--drop-shadow-task-hover)}.react-flow__node.task-frame-shell,.react-flow__node.task-frame-shell *{pointer-events:none!important}.react-flow__node.task-frame-shell .task-collapse,.react-flow__node.task-frame-shell .task-stub{pointer-events:auto!important}.react-flow__node.task-frame-shell .task-frame-header{pointer-events:auto!important;cursor:move}.react-flow__node.task-frame-growing{visibility:hidden!important}.frame-growth-preview{position:absolute;box-sizing:border-box;background:color-mix(in srgb,var(--canvas-ink) 5%,transparent);border:1.5px solid color-mix(in srgb,var(--canvas-ink) 34%,transparent);z-index:var(--z-sink);pointer-events:none}.pop-out-boundary{position:absolute;box-sizing:border-box;border:1.5px dashed color-mix(in srgb,var(--canvas-ink) 45%,transparent);border-radius:10px;z-index:var(--z-sink);pointer-events:none}.pop-out-boundary-caption{position:absolute;top:-12px;left:50%;transform:translate(-50%);padding:3px 9px;border-radius:var(--radius-pill);background:var(--text-primary);color:var(--canvas);font-family:var(--font-sans);font-size:var(--font-micro);font-weight:var(--fw-medium);white-space:nowrap;box-shadow:var(--shadow-pop)}.drop-preview-ghost{position:absolute;box-sizing:border-box;background:color-mix(in srgb,var(--canvas-ink) 5%,transparent);border:1.5px dashed color-mix(in srgb,var(--canvas-ink) 45%,transparent);z-index:var(--z-rf-ghost);pointer-events:none}.task-content{position:absolute;display:flex;flex-direction:column;pointer-events:none}.task-title-area{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.task-title{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;white-space:pre-wrap;color:rgb(var(--task-ink))}.task-diamond-title{position:absolute;overflow:hidden;color:rgb(var(--task-ink));pointer-events:none}.task-diamond-runs{overflow-wrap:break-word;white-space:pre-wrap}.task-diamond-wing{width:50%;height:100%;shape-margin:3px}.task-diamond-wing--left{float:left}.task-diamond-wing--right{float:right}.task-title-editor{pointer-events:auto;display:block;width:100%;padding:0;margin:0;border:none;background:transparent;resize:none;overflow:hidden;color:rgb(var(--task-ink));caret-color:rgb(var(--task-ink))}.task-title-editor:focus,.task-title-editor:focus-visible{outline:none}.task-portal{flex:none;height:18px;margin-top:4px;display:flex;align-items:center;gap:4px;min-width:0;font-family:var(--font-sans);font-size:10px;font-weight:var(--fw-medium);letter-spacing:.02em;line-height:14px;color:rgb(var(--task-ink) / .78)}.task-portal svg{flex:none;opacity:.7}.task-portal-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-portal-detail{flex:none;margin-left:auto;color:rgb(var(--task-ink) / .55);font-weight:var(--fw-regular);white-space:nowrap}.task-portal--broken{color:var(--status-danger-text)}.task-portal--broken svg{opacity:1}.task-footer{flex:none;height:20px;margin-top:4px;display:flex;align-items:center;gap:6px}.task-role-chip{font-family:var(--font-sans);font-size:10px;font-weight:var(--fw-medium);letter-spacing:.02em;line-height:14px;color:rgb(var(--task-ink) / .78);background:rgb(var(--task-ink) / .07);border-radius:var(--radius-pill);padding:2px 7px;min-width:0;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-chip-more{flex:none;pointer-events:auto;font-family:var(--font-sans);font-size:10px;font-weight:var(--fw-semibold);line-height:14px;color:rgb(var(--task-ink) / .7);background:rgb(var(--task-ink) / .07);border:none;border-radius:var(--radius-pill);padding:2px 6px;cursor:pointer}.task-chip-more:hover{color:rgb(var(--task-ink));background:rgb(var(--task-ink) / .14)}.task-role-chip--inherited{display:inline-flex;align-items:center;gap:3px;color:rgb(var(--task-ink) / .7);background:transparent;border:1px dashed rgb(var(--task-ink) / .28);padding:1px 6px}.task-role-glyph{flex:none}.task-category-chip{font-family:var(--font-sans);font-size:10px;font-weight:var(--fw-medium);letter-spacing:.02em;line-height:14px;color:rgb(var(--task-ink) / .7);border:1px solid rgb(var(--task-ink) / .22);border-radius:var(--radius-pill);padding:1px 6px;min-width:0;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-category-chip--inherited{display:inline-flex;align-items:center;gap:3px;color:rgb(var(--task-ink) / .7);border-style:dashed;border-color:rgb(var(--task-ink) / .28)}.task-assignee-chip{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-sans);font-size:10px;font-weight:var(--fw-medium);letter-spacing:.02em;line-height:14px;color:rgb(var(--task-ink) / .7);min-width:0;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-assignee-chip svg{flex:none}.task-assignee-chip--inherited{color:rgb(var(--task-ink) / .7);border:1px dashed rgb(var(--task-ink) / .28);border-radius:var(--radius-pill);padding:1px 6px}.task-points{margin-left:auto;font-family:var(--font-sans);font-size:11px;font-weight:var(--fw-semibold);line-height:1;color:rgb(var(--task-ink) / .85);min-width:18px;height:18px;padding:0 4px;border:1px solid rgb(var(--task-ink) / .3);border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;gap:2px}.task-points-glyph{flex:none;margin-left:-1px;opacity:.72}.task-points--editable{pointer-events:auto;cursor:text}.task-points--editable:hover{border-color:rgb(var(--task-ink) / .55);background:rgb(var(--task-ink) / .06)}.task-chip--editable{pointer-events:auto;cursor:text}.task-chip--editable:hover{color:rgb(var(--task-ink));background:rgb(var(--task-ink) / .14)}.task-points-editor{pointer-events:auto;margin-left:auto;width:40px;height:18px;padding:0 4px;font-family:var(--font-sans);font-size:11px;font-weight:var(--fw-semibold);line-height:1;text-align:right;color:rgb(var(--task-ink) / .9);caret-color:rgb(var(--task-ink) / .9);background:rgb(var(--task-ink) / .06);border:1px solid rgb(var(--task-ink) / .45);border-radius:var(--radius-pill)}.task-points-editor:focus,.task-points-editor:focus-visible{outline:none}.task-points-editor::-webkit-outer-spin-button,.task-points-editor::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.task-points-editor{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.task-field-editor{position:relative;flex:1 1 auto;min-width:0;pointer-events:auto}.task-field-input{width:100%;height:18px;padding:0 8px;font-family:var(--font-sans);font-size:10px;font-weight:var(--fw-medium);letter-spacing:.02em;line-height:14px;color:rgb(var(--task-ink) / .9);caret-color:rgb(var(--task-ink) / .9);background:rgb(var(--task-ink) / .06);border:1px solid rgb(var(--task-ink) / .45);border-radius:var(--radius-pill)}.task-field-input:focus,.task-field-input:focus-visible{outline:none}.task-field-input::placeholder{color:rgb(var(--task-ink) / .5)}.task-field-dropdown{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:var(--z-rf-edge-labels);min-width:140px;max-height:148px;overflow-y:auto;padding:4px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);font-family:var(--font-sans)}.task-field-option{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:5px 7px;border-radius:var(--radius-sm);font-size:var(--font-caption);color:var(--text-primary);cursor:pointer}.task-field-option.is-active{background:var(--surface-hover)}.task-field-option--create{color:var(--text-accent)}.task-field-option-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-field-swatch{flex:none;width:10px;height:10px;border-radius:3px}.task-desc{position:absolute;top:0;right:0;width:14px;height:14px;color:rgb(var(--task-ink) / .55);pointer-events:auto;cursor:default}.task-desc:hover{color:rgb(var(--task-ink) / .8)}.task-desc--button{cursor:pointer}.task-desc-tooltip{position:absolute;bottom:calc(100% + 6px);right:-4px;width:max-content;max-width:240px;padding:6px 9px;border-radius:var(--radius-md);background:var(--text-primary);color:var(--canvas);font-family:var(--font-sans);font-size:var(--font-caption);line-height:var(--lh-body);text-align:left;white-space:pre-wrap;overflow-wrap:break-word;box-shadow:var(--shadow-pop);opacity:0;transition:opacity var(--dur-fast) var(--ease);pointer-events:none;z-index:var(--z-tooltip)}.task-desc:hover .task-desc-tooltip{opacity:1}.task-desc--offset{right:22px}.task-project-bar{position:absolute;left:3px;top:calc(var(--task-corner-radius, 8px) + 2px);bottom:calc(var(--task-corner-radius, 8px) + 2px);width:5px;min-height:10px;border-radius:3px;pointer-events:none;box-shadow:0 0 0 1px #ffffff59}.task-project-dot{position:absolute;top:50%;left:2px;width:9px;height:9px;transform:translateY(-50%);border-radius:var(--radius-circle);pointer-events:none;box-shadow:0 0 0 1px #ffffff80}.task-comment{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;gap:2px;height:17px;padding:0 3px;border:none;border-radius:5px;background:transparent;color:var(--accent);cursor:pointer;pointer-events:auto}.task-comment:hover{background:rgb(var(--task-ink) / .08)}.task-comment--active{background:rgb(var(--task-ink) / .1)}.task-comment-count{font-family:var(--font-sans);font-size:10px;font-weight:var(--fw-semibold);line-height:1}.task-rich-text ul,.task-rich-text ol{margin:2px 0;padding-left:18px}.task-rich-text ul{list-style:disc}.task-rich-text ol{list-style:decimal}.task-rich-text li{margin:1px 0}.task-rich-text p{margin:0 0 4px}.task-rich-text p:last-child{margin-bottom:0}.task-rich-text code{font-family:var(--font-mono, monospace);font-size:.92em}.task-collapse{display:inline-flex;align-items:center;gap:2px;height:20px;padding:0 5px;border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:11px;font-weight:var(--fw-medium);line-height:1;color:rgb(var(--task-ink) / .75);background:rgb(var(--task-ink) / .06);pointer-events:auto}.task-collapse:hover{color:rgb(var(--task-ink));background:rgb(var(--task-ink) / .12)}.task-collapse-count{padding-right:2px}.task-topleft{position:absolute;top:6px;left:8px;display:inline-flex;align-items:center;gap:3px;pointer-events:none}.task-topleft>*{pointer-events:auto}.status-badge{display:inline-flex;flex:none;align-items:center;justify-content:center;width:17px;height:17px;padding:0;border:none;border-radius:5px;background:transparent;color:var(--text-tertiary);cursor:default}button.status-badge{cursor:pointer}.task-node .status-badge{color:rgb(var(--task-ink) / .55)}.task-node button.status-badge:hover{background:rgb(var(--task-ink) / .1);color:rgb(var(--task-ink) / .9)}.status-badge--doing,.task-node .status-badge--doing{color:var(--status-warning)}.status-badge--done,.task-node .status-badge--done{color:var(--status-success)}.task-node .status-badge--quiet{opacity:.3;transition:opacity 80ms ease}.task-node--hover .status-badge--quiet,.task-node.selected .status-badge--quiet,.react-flow__node.selected .status-badge--quiet,.task-node:focus-within .status-badge--quiet{opacity:1}.task-frame-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:6px;padding:0 6px 0 8px;pointer-events:all}.task-frame-header--has-desc{padding-right:28px}.task-frame-header--has-comment{padding-right:30px}.task-frame-header--has-desc.task-frame-header--has-comment{padding-right:52px}.task-frame-title{flex:1;min-width:0;font-family:var(--font-sans);font-size:13px;font-weight:var(--fw-medium);color:rgb(var(--task-ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-frame-editor{flex:1;min-width:0}.task-frame-desc{position:absolute;top:9px;right:10px;width:14px;height:14px}.task-frame-desc--offset{right:30px}.task-frame-footer{position:absolute;left:10px;right:10px;bottom:4px;height:20px;display:flex;align-items:center;gap:6px;pointer-events:none}.task-diamond-slot{position:absolute;display:flex;align-items:center;justify-content:center;min-width:0;pointer-events:none}.task-diamond-slot>*{pointer-events:auto}.task-diamond-slot .task-desc{position:static}.task-diamond-slot--comment .task-comment{position:static;top:auto;right:auto}.task-diamond-slot .task-role-chip{min-width:0;max-width:100%}.task-diamond-slot .task-points,.task-diamond-slot .task-points-editor{margin-left:0}.task-stub{position:absolute;top:50%;margin-top:-14px;z-index:var(--z-lift-1);pointer-events:auto;width:28px;height:28px;border-radius:var(--radius-circle);background:var(--surface-raised);border:1px solid var(--border-default);box-shadow:var(--shadow-pop);color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;cursor:pointer;animation:task-stub-in .1s ease backwards}.task-stub:hover{color:var(--text-primary);border-color:var(--border-strong)}.task-stub:before{content:"";position:absolute;top:-8px;bottom:-8px;width:14px}.task-stub--out:before{left:-13px}.task-stub--in:before{right:-13px}.task-stub--out{right:-14px}.task-stub--in{left:-14px}@keyframes task-stub-in{0%{opacity:0}}.task-node--frame .task-stub{top:calc(var(--parent-header, 32px) / 2)}.task-node--frame .task-collapse{position:relative}.task-node--frame .task-collapse,.task-node--frame .task-comment,.task-node--frame .task-frame-desc{z-index:var(--z-lift-2)}.task-selection-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--task-corner-radius, 2px);box-shadow:0 0 6px 1px color-mix(in srgb,var(--accent) 65%,transparent),0 0 16px 5px color-mix(in srgb,var(--accent) 38%,transparent);pointer-events:none}.task-selection-ring--diamond{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;box-shadow:none;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--accent) 95%,transparent)) drop-shadow(0 0 7px color-mix(in srgb,var(--accent) 72%,transparent)) drop-shadow(0 0 16px color-mix(in srgb,var(--accent) 45%,transparent))}.task-selection-ring--diamond polygon{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}.task-target-ring{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:2px solid var(--accent);border-radius:calc(var(--task-corner-radius, 2px) + 6px);box-shadow:0 0 0 4px var(--focus-ring);pointer-events:none;animation:task-ring-in .1s ease both}.task-target-ring--arming{border-style:dashed;border-color:color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:none;animation:task-ring-arm var(--nest-dwell, .35s) linear both}@keyframes task-ring-arm{0%{transform:scale(1.13);opacity:.3}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.task-target-ring--arming{animation-duration:var(--nest-dwell, .35s)!important}@keyframes task-ring-arm{0%{opacity:.3}to{opacity:1}}}.task-nest-caption{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);z-index:var(--z-lift-2);padding:3px 9px;border-radius:var(--radius-pill);background:var(--text-primary);color:var(--canvas);font-family:var(--font-sans);font-size:var(--font-micro);font-weight:var(--fw-medium);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-pop)}.task-target-ring--denied{border-color:var(--status-danger);border-style:dashed;box-shadow:0 0 0 4px color-mix(in srgb,var(--status-danger) 12%,transparent)}.task-target-ring--diamond{inset:auto;border:none;box-shadow:none;overflow:visible;filter:drop-shadow(0 0 4px var(--focus-ring))}.task-target-ring--diamond polygon{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}.task-target-ring--diamond.task-target-ring--denied{filter:none}.task-target-ring--diamond.task-target-ring--denied polygon{stroke:var(--status-danger);stroke-dasharray:6 4}.task-target-ring--diamond.task-target-ring--arming{filter:none}.task-target-ring--diamond.task-target-ring--arming polygon{stroke:color-mix(in srgb,var(--accent) 60%,transparent);stroke-dasharray:6 5}@keyframes task-ring-in{0%{opacity:0}to{opacity:1}}.task-cpm{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:5px;display:inline-flex;align-items:center;gap:5px;font-family:var(--font-sans);font-size:var(--font-micro);font-weight:var(--fw-medium);line-height:1;white-space:nowrap;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.task-cpm--critical{color:var(--status-danger-text);font-weight:var(--fw-semibold)}.task-cpm-slack{padding:2px 5px;border-radius:var(--radius-pill);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--border-subtle);color:var(--text-secondary);font-weight:var(--fw-semibold)}.task-critical-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--task-corner-radius, 4px);box-shadow:0 0 6px 1px color-mix(in srgb,var(--status-danger) 55%,transparent),0 0 15px 5px color-mix(in srgb,var(--status-danger) 32%,transparent);pointer-events:none}.task-critical-ring--diamond{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;box-shadow:none;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--status-danger) 65%,transparent)) drop-shadow(0 0 13px color-mix(in srgb,var(--status-danger) 38%,transparent))}.task-critical-ring--diamond polygon{fill:none;stroke:var(--status-danger);stroke-width:1.5;stroke-linejoin:round}.task-node--dropping-source{opacity:.45}.task-node--deactivated{opacity:.4}.task-node--done-gray{filter:grayscale(.9);opacity:.62;transition:opacity var(--dur-fast) var(--ease),filter var(--dur-fast) var(--ease)}.task-node--dim{opacity:.18;transition:opacity var(--dur-fast) var(--ease)}.task-node--dim.task-node--hover{opacity:1}.task-node--hidden{visibility:hidden;pointer-events:none}.react-flow__node.node-hidden,.react-flow__node.node-hidden *,.react-flow__node.node-hidden .task-collapse{pointer-events:none!important}.react-flow__node.selected{box-shadow:none}.react-flow__handle.task-handle{opacity:0;width:8px;height:8px;min-width:0;min-height:0;border:none;background:transparent;pointer-events:none}.react-flow__handle.task-handle--out{width:18px;height:18px;pointer-events:all;cursor:crosshair}.react-flow__handle.task-body-handle{opacity:0;top:0;left:0;width:100%;height:100%;transform:none;border:none;border-radius:0;min-width:0;min-height:0;background:transparent}.react-flow__node:has(>.task-node--hover:not(.task-node--frame)){z-index:var(--z-rf-node-hover)!important}.task-content--process .task-portal{margin-top:0}.task-portal-toggle{flex:none;display:grid;place-items:center;width:16px;height:16px;margin-left:2px;border-radius:var(--radius-sm);color:rgb(var(--task-ink) / .65);pointer-events:auto;cursor:pointer}.task-portal-toggle:hover{background:rgb(var(--task-ink) / .12);color:rgb(var(--task-ink) / .95)}.task-process-preview{flex:1;min-height:0;margin-top:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-md);background:rgb(var(--task-ink) / .05);border:1px solid rgb(var(--task-ink) / .14)}.task-process-img{max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.task-process-placeholder{padding:8px 14px;text-align:center;font-family:var(--font-sans);font-size:11px;line-height:1.45;color:rgb(var(--task-ink) / .55)}.connector-node{position:relative;width:100%;height:100%}.connector-node--dim{opacity:.16;transition:opacity var(--dur-fast) var(--ease)}.connector-node--hidden{visibility:hidden;pointer-events:none}.connector-dot{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-circle);pointer-events:all;cursor:grab}.connector-selection-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-circle);box-shadow:0 0 6px 1px color-mix(in srgb,var(--accent) 65%,transparent),0 0 16px 5px color-mix(in srgb,var(--accent) 38%,transparent);pointer-events:none}.connector-target-ring{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:2px solid var(--accent);border-radius:var(--radius-circle);box-shadow:0 0 0 4px var(--focus-ring);pointer-events:none;animation:task-ring-in .1s ease both}.task-rich-text a{color:inherit;text-decoration:underline}@media(any-pointer:coarse){.status-badge{position:relative}.status-badge:before{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px}.task-collapse{position:relative}.task-collapse:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.task-node--frame .task-collapse:before{left:0}.task-stub{touch-action:none}.task-stub:before{top:-12px;bottom:-12px;left:-12px;right:-12px;width:auto}.task-points--editable{position:relative}.task-points--editable:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.task-node .status-badge--quiet{opacity:.45;pointer-events:auto}}.task-cpm{pointer-events:none}.edge-marker-defs{position:absolute;width:0;height:0;overflow:hidden}.edge-halo{pointer-events:none}.edge-hover-halo{pointer-events:none;transition:opacity var(--dur-fast) var(--ease)}.canvas-host--select .react-flow__edge-interaction,.canvas-host--pan .react-flow__edge-interaction{cursor:pointer}.edge-dim{opacity:.16;transition:opacity var(--dur-fast) var(--ease)}.edge-hidden{visibility:hidden;pointer-events:none}.edge-inactive{opacity:.35}.edge-cpm-halo{pointer-events:none}.edge-loopback{opacity:.55}.edge-loopback-badge{position:absolute;pointer-events:all;display:grid;place-items:center;width:18px;height:18px;color:var(--text-secondary)}.edge-label{position:absolute;pointer-events:all;padding:2px;font-family:var(--font-sans);font-size:var(--font-caption);line-height:var(--lh-tight);color:var(--text-primary);white-space:nowrap;-webkit-user-select:none;user-select:none}.edge-label-input{display:block;pointer-events:all;height:22px;padding:1px 6px;font-family:var(--font-sans);font-size:var(--font-caption);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--accent);border-radius:var(--radius-md)}.edge-insert{position:absolute;pointer-events:all;display:grid;place-items:center;width:24px;height:24px;color:var(--text-tertiary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-circle);box-shadow:var(--shadow-pop)}.edge-insert:hover{color:var(--text-accent);border-color:var(--accent)}.edge-count{position:absolute;pointer-events:none;padding:1px 6px;font-family:var(--font-sans);font-size:var(--font-micro);line-height:16px;color:var(--text-secondary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-pill)}.react-flow__edgelabel-renderer{z-index:var(--z-rf-edge-labels)}.edge-edit-layer{position:absolute;top:0;left:0;z-index:var(--z-rf-edge-edit);overflow:visible;pointer-events:none}.edge-reconnect-ghost{pointer-events:none}.edge-handle{pointer-events:all;fill:var(--surface-raised);stroke:var(--accent)}.edge-handle--endpoint{fill:var(--accent);stroke:var(--surface-raised);cursor:crosshair}.edge-handle--waypoint{fill:var(--surface-raised);cursor:grab}.edge-handle--waypoint:hover{fill:var(--accent-wash)}.edge-add-hit{pointer-events:stroke;cursor:copy}.edge-handle--dragging{pointer-events:none;fill:var(--accent);stroke:var(--surface-raised)}.edge-phantom-glyph{position:absolute;pointer-events:all;display:grid;place-items:center;width:20px;height:20px;padding:0;font-family:var(--font-sans);font-size:10px;font-weight:var(--fw-semibold);line-height:1;color:var(--text-secondary);background:var(--surface-raised);border:1.5px solid currentColor;border-radius:var(--radius-circle);cursor:pointer;box-shadow:var(--shadow-pop)}.edge-phantom-glyph:hover{color:var(--text-accent)}.edge-ghost{position:absolute;top:0;left:0;z-index:var(--z-rf-edge-edit);overflow:visible;pointer-events:none}.edge-connection-line{pointer-events:none}.comment-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-comment);pointer-events:none}.comment-pin{position:absolute;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:3px;height:22px;min-width:22px;padding:0 5px;border-radius:var(--radius-pill) var(--radius-pill) var(--radius-pill) 5px;border:1.5px solid var(--surface-raised);background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-pop);cursor:pointer;pointer-events:auto;font-family:var(--font-sans)}.comment-pin:hover{background:var(--accent-hover)}.comment-pin--active{outline:3px solid var(--focus-ring);outline-offset:1px}.comment-pin--resolved{background:var(--text-tertiary)}.comment-pin-count{font-size:var(--font-micro);font-weight:var(--fw-semibold);line-height:1}.comment-popover{position:absolute;width:264px;max-height:62vh;display:flex;flex-direction:column;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);pointer-events:auto;font-family:var(--font-sans);color:var(--text-primary);overflow:hidden}.comment-list{overflow-y:auto;max-height:42vh;padding:var(--space-1) 0}.comment-list--flow{max-height:none;overflow:visible;padding:0}.comment-note{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5)}.comment-note+.comment-note{border-top:1px solid var(--border-subtle)}.comment-note--resolved{background:var(--surface-sunken)}.comment-note--resolved .comment-note-author,.comment-note--resolved .comment-note-body{color:var(--text-disabled)}.comment-note-check{flex:none;width:16px;height:16px;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text-on-accent);cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.comment-note-check:hover{border-color:var(--accent)}.comment-note-check.is-checked{background:var(--accent);border-color:var(--accent)}.comment-note-main{flex:1 1 auto;min-width:0}.comment-note-meta{display:flex;align-items:center;gap:var(--space-3);margin-bottom:3px}.comment-note-author{font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-primary)}.comment-note-time{font-size:var(--font-micro);color:var(--text-tertiary)}.comment-note-actions{margin-left:auto;display:inline-flex;gap:var(--space-1)}.comment-note-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer}.comment-note-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.comment-note-btn--danger:hover{background:var(--status-danger-tint);color:var(--status-danger-text)}.comment-note-body{font-size:var(--font-body);line-height:1.4;white-space:pre-wrap;word-break:break-word;color:var(--text-primary)}.comment-composer{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-top:1px solid var(--border-subtle)}.comment-composer:first-child{border-top:none}.comment-composer-actions{display:flex;justify-content:flex-end}.comment-submit{display:inline-flex;align-items:center;height:28px;font-family:var(--font-sans);font-size:var(--font-caption);font-weight:var(--fw-semibold);padding:0 var(--space-5);border:none;border-radius:var(--radius-md);background:var(--accent);color:var(--text-on-accent);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.comment-submit:hover:not(:disabled){background:var(--accent-hover)}.comment-submit:disabled{background:var(--surface-sunken);color:var(--text-disabled);cursor:default}.comment-thread--panel .comment-note,.comment-thread--panel .comment-composer{padding-left:0;padding-right:0}.comment-empty{margin:0 0 10px;font-size:var(--font-caption);color:var(--text-tertiary)}@media(any-pointer:coarse){.comment-pin:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}}.spark{display:flex;align-items:flex-end;gap:var(--space-1);height:28px;margin:0;padding:0;list-style:none}.spark-bar{--h: 0%;position:relative;flex:1 1 0;min-width:4px;height:100%;border-bottom:1px solid var(--border-subtle)}.spark-fill{position:absolute;left:0;right:0;bottom:0;height:var(--h);min-height:0;border-radius:2px 2px 0 0;background:color-mix(in srgb,var(--text-primary) 26%,var(--surface-base))}.spark-bar.is-now .spark-fill{background:color-mix(in srgb,var(--text-primary) 48%,var(--surface-base))}.spark-bar.is-empty .spark-fill{display:none}.pj-trends{margin-top:var(--space-5)}.pj-trends-label{margin:var(--space-4) 0 var(--space-2);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.pj-trends-line{margin:var(--space-4) 0 0;font-size:var(--font-caption);font-variant-numeric:tabular-nums}.spark--burndown .spark-fill{background:var(--surface-sunken);border-top:2px solid color-mix(in srgb,var(--text-primary) 40%,var(--surface-base))}.spark--burndown .spark-bar.is-now .spark-fill{border-top-color:color-mix(in srgb,var(--text-primary) 64%,var(--surface-base))}.spark-caption{margin:var(--space-1) 0 0;font-size:var(--font-meta);color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}.cap-report{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;background:var(--surface-base)}.cap-resources{flex:none}.cap-report .cap-resources{margin:var(--space-4) var(--space-6)}.cap-list{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-card);overflow:hidden}.cap-row-wrap+.cap-row-wrap{border-top:1px solid var(--border-subtle)}.cap-row{display:flex;align-items:center;gap:var(--space-4);padding:0 0 0 10px}.cap-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-4);min-height:34px;padding:var(--space-2) 10px var(--space-2) 0;border:none;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer}.cap-row:hover{background:var(--surface-hover)}.cap-row.is-open{background:var(--surface-sunken)}.cap-row-toggle{flex:none;display:inline-flex;align-items:center;cursor:pointer}.cap-row-toggle input{margin:0;cursor:pointer;accent-color:var(--accent)}.cap-row-name{flex:0 1 auto;min-width:48px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-ui);font-weight:var(--fw-semibold);color:var(--text-primary)}.cap-row-dept{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-caption);color:var(--text-secondary)}.cap-row-dept.is-missing{font-style:italic;color:var(--text-tertiary)}.cap-row-meta{flex:none;margin-left:auto;font-size:var(--font-meta);color:var(--text-tertiary);white-space:nowrap}.cap-row-tag{flex:none;margin-left:auto;padding:0 var(--space-4);font-size:var(--font-micro);font-weight:var(--fw-semibold);color:var(--text-secondary);border:1px dashed var(--border-default);border-radius:var(--radius-pill);white-space:nowrap}.cap-chevron{flex:none;display:inline-flex;color:var(--text-tertiary);transition:transform var(--dur-fast) var(--ease)}.cap-row.is-open .cap-chevron{transform:rotate(180deg)}.cap-editor{padding:10px var(--space-5) var(--space-5);background:var(--surface-sunken);border-top:1px solid var(--border-subtle)}.cap-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--space-5)}.cap-field{display:flex;flex-direction:column;gap:3px;min-width:0}.cap-field>span{font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);white-space:nowrap}.cap-field .sp-input,.cap-field .pj-num{width:100%;box-sizing:border-box}.cap-editor-project{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:10px}.cap-editor-colors{flex-basis:100%}.cap-pto{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-top:10px}.cap-editor-foot{display:flex;justify-content:flex-end;margin-top:10px}.cap-remove{height:28px;padding:0 var(--space-4);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);background:none;border:none;border-radius:var(--radius-md);cursor:pointer}.cap-remove:hover{color:var(--status-danger-text);background:var(--status-danger-tint)}.cap-promote,.cap-add-range{flex:none;height:24px;padding:0 10px;font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.cap-promote:hover,.cap-add-range:hover{color:var(--text-primary);border-color:var(--border-strong)}.cap-range{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-caption);color:var(--text-secondary)}.cap-date,.cap-range-label{height:26px;padding:0 var(--space-3);font:inherit;font-size:var(--font-caption);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md)}.cap-date:hover,.cap-range-label:hover{border-color:var(--border-strong)}.cap-date:focus-visible,.cap-range-label:focus-visible{border-color:var(--accent)}.cap-range-label{width:11em;min-width:0}.cap-range-label::placeholder{color:var(--text-tertiary)}.cap-range-x{flex:none;width:22px;height:22px;font-size:var(--font-title);line-height:1;color:var(--text-tertiary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.cap-range-x:hover{color:var(--status-danger-text);background:var(--status-danger-tint)}.cap-add-person{display:flex;gap:var(--space-4);margin-top:var(--space-4)}.cap-add-person .field{flex:1;min-width:0}.cap-holidays{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-top:10px}.cap-disclosure{display:inline-flex;align-items:center;gap:5px;padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.cap-disclosure:hover{color:var(--text-primary);background:var(--surface-hover)}.cap-disclosure .cap-chevron{color:inherit;transform:rotate(-90deg)}.cap-disclosure[aria-expanded=true] .cap-chevron{transform:none}.cap-lanes-scroll{flex:none;overflow-x:auto;padding:var(--space-4) var(--space-6) var(--space-2)}.cap-lanes{min-width:max-content}.cap-axis{display:flex;align-items:baseline;gap:var(--space-1);padding-bottom:var(--space-2);font-size:var(--font-micro);color:var(--text-secondary);-webkit-user-select:none;user-select:none}.cap-axis-head{flex:none;width:0}.cap-axis-cell{flex:0 0 44px;text-align:center}.cap-axis-label{margin-left:var(--space-4);white-space:nowrap}.cap-lane{padding:var(--space-3) 0 10px;border-radius:var(--radius-md)}.cap-lane:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.cap-lane-head{display:flex;align-items:baseline;gap:10px;margin-bottom:var(--space-2)}.cap-lane-name{font-size:var(--font-ui);font-weight:var(--fw-semibold);color:var(--text-primary)}.cap-lane-rate,.cap-lane-note{font-size:var(--font-meta);color:var(--text-secondary)}.cap-lane-note.is-critical{color:var(--status-danger-text);font-weight:var(--fw-semibold)}.cap-track{position:relative;display:flex;gap:var(--space-1);height:64px;border-bottom:1px solid var(--border-subtle)}.cap-line{position:absolute;left:0;right:0;border-top:1px dashed var(--border-strong);pointer-events:none}.cap-legend{margin:var(--space-3) var(--space-1) 0;font-size:var(--font-meta);line-height:1.5;color:var(--text-secondary)}.cap-legend-swatch{display:inline-block;vertical-align:-1px;width:14px;height:9px;margin-right:var(--space-2)}.cap-legend-swatch--bar{background:color-mix(in srgb,var(--text-secondary) 28%,transparent);border-radius:2px 2px 0 0}.cap-legend-swatch--line{height:0;border-top:1px dashed var(--border-strong);vertical-align:3px}.cap-legend-swatch--over{background:var(--status-danger-tint);border:1px solid var(--status-danger);border-radius:2px 2px 0 0}.cap-checklist{text-align:left}.cap-checklist ol{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}.cap-checklist li{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-3)}.cap-checklist li.is-done{color:var(--text-disabled)}.cap-checklist-mark{flex:none;width:18px;font-weight:var(--fw-semibold)}.cap-checklist li.is-done .cap-checklist-mark{color:var(--status-success)}.cap-checklist-lead{margin:0;font-weight:var(--fw-semibold);color:var(--text-primary)}.cap-checklist-tail{margin:var(--space-2) 0 0;color:var(--text-secondary)}.cap-cell{position:relative;flex:0 0 44px}.cap-cell:before{content:"";position:absolute;left:4px;right:4px;bottom:0;height:var(--fill, 0%);background:color-mix(in srgb,var(--text-primary) 14%,var(--surface-base));border:1px solid color-mix(in srgb,var(--text-primary) 26%,var(--surface-base));border-bottom:none;border-radius:3px 3px 0 0}.cap-cell.is-idle:before{display:none}.cap-cell.is-over:after{content:"";position:absolute;left:4px;right:4px;bottom:var(--fill, 0%);height:var(--over, 0%);background:var(--status-danger-tint);border:1px solid var(--status-danger);border-radius:3px 3px 0 0}.cap-clamp{position:absolute;top:0;left:0;right:0;font-size:var(--font-micro);font-weight:var(--fw-semibold);text-align:center;color:var(--status-danger-text)}.cap-finish{flex:none;padding:var(--space-4) var(--space-6) var(--space-6)}.cap-finish .pf-col-head{padding:0 0 var(--space-3)}.cap-finish-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-1)}.cap-finish-row{display:flex;align-items:baseline;gap:10px;width:100%;padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--font-body);text-align:left;color:var(--text-primary);background:none;border:none;border-radius:var(--radius-md);cursor:pointer}.cap-finish-row:hover{background:var(--surface-hover)}.cap-finish-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cap-finish-eta{flex:none;font-variant-numeric:tabular-nums;font-weight:var(--fw-semibold)}.cap-finish-flag{flex:none;font-size:var(--font-caption);color:var(--text-secondary)}.cap-prov,.cap-chip,.cap-stale{flex:none;padding:1px var(--space-3);font-size:var(--font-micro);font-weight:var(--fw-semibold);color:var(--status-neutral-text);background:var(--status-neutral-tint);border-radius:var(--radius-pill);white-space:nowrap}.pf-tabs{display:inline-flex;gap:var(--space-1);margin-left:var(--space-6);padding:var(--space-1);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.pf-tab{padding:3px var(--space-5);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--dur-fast) var(--ease)}.pf-tab:hover{color:var(--text-primary)}.pf-tab[aria-selected=true]{color:var(--text-primary);background:var(--surface-raised);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--border-subtle)}.cap-lane-head{position:sticky;left:0;z-index:var(--z-lift-1);background:var(--surface-base)}.cap-checklist-body{max-width:44ch;margin:0 auto}.cap-lane-weeks-toggle{margin-left:auto;font-size:var(--font-meta)}.cap-lane-weeks{margin:0 0 var(--space-3);padding:0 0 0 var(--space-6);font-size:var(--font-meta);line-height:1.5;color:var(--text-secondary)}.cap-truncated{margin:var(--space-2) var(--space-6) 0;font-size:var(--font-meta);color:var(--text-tertiary)}.cap-lane-week-detail{display:block;padding-left:1em;color:var(--text-tertiary)}.cap-axis-cell{position:relative}.cap-axis-bottleneck{--swatch: var(--status-danger-tint);display:block;width:14px;height:14px;margin:1px auto 0;font-size:var(--font-micro);font-weight:var(--fw-semibold);line-height:14px;text-align:center;color:var(--text-primary);background:var(--swatch);border:1px solid var(--status-danger);border-radius:var(--radius-circle)}.cap-finish-caption{margin:-2px 0 var(--space-3);font-size:var(--font-meta);color:var(--text-secondary)}.cap-finish-rank{flex:none;min-width:2.2em;font-size:var(--font-meta);font-variant-numeric:tabular-nums;color:var(--text-tertiary)}.cap-chip--wait{color:var(--status-danger-text);background:var(--status-danger-tint)}.cap-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4) var(--space-5);padding:var(--space-4) var(--space-6) 0}.cap-head-label{font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.cap-head .sp-seg{flex:none}.cap-head .sp-seg button{flex:none;height:24px;padding:0 10px;font-size:var(--font-caption);font-weight:var(--fw-semibold)}.cap-refreshing{font-size:var(--font-meta);color:var(--text-tertiary)}.cap-stale.is-stale{color:var(--status-warning-text);background:var(--status-warning-tint)}.cap-finish-alone{flex:none;font-size:var(--font-meta);font-weight:var(--fw-regular);color:var(--text-secondary)}.cap-try{margin:var(--space-4) var(--space-6) 0;padding:0;border:0;min-width:0}.cap-try-legend{float:left;display:flex;align-items:center;height:24px;margin:0 10px 0 0;padding:0;font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.cap-try-knobs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) 14px}.cap-try-knob{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-caption);color:var(--text-secondary);white-space:nowrap}.cap-try-verb,.cap-try-chip,.cap-try-clear{height:24px;padding:0 var(--space-4);font:inherit;font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.cap-try-verb:hover,.cap-try-verb:focus-visible,.cap-try-clear:hover,.cap-try-clear:focus-visible{background:var(--surface-hover);border-color:var(--border-strong)}.cap-try-verb:disabled{color:var(--text-disabled);background:var(--surface-sunken);cursor:default}.cap-try-select,.cap-try-num{height:24px;padding:0 var(--space-2);font:inherit;font-size:var(--font-caption);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md)}.cap-try-select{max-width:18ch;text-overflow:ellipsis}.cap-try-num{width:5ch;font-variant-numeric:tabular-nums}.cap-try-select:hover,.cap-try-num:hover{border-color:var(--border-strong)}.cap-try-select:focus-visible,.cap-try-num:focus-visible{border-color:var(--accent)}.cap-try-unit{font-size:var(--font-meta)}.cap-try-active{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 0;padding:0;list-style:none}.cap-try-chip{color:var(--text-accent);background:var(--accent-wash);border-color:var(--accent)}.cap-try-chip:hover,.cap-try-chip:focus-visible{background:color-mix(in srgb,var(--accent-wash),var(--accent) 12%)}.cap-try-chip-x{margin-left:var(--space-3);opacity:.7}.cap-try-clear{color:var(--text-secondary)}.cap-try-caption{margin:var(--space-2) 0 0;font-size:var(--font-meta);color:var(--text-tertiary)}.cap-lane-extra{color:var(--text-accent);font-weight:var(--fw-semibold)}.cap-finish-was{font-weight:var(--fw-regular);color:var(--text-secondary)}.cap-finish-arrow{color:var(--text-tertiary)}.cap-finish-delta-n{font-variant-numeric:tabular-nums}.cap-finish-delta.is-sooner .cap-finish-delta-n{color:var(--status-success-text)}.cap-finish-delta.is-later .cap-finish-delta-n,.cap-finish-delta.is-later{color:var(--status-danger-text)}.cap-finish-delta.is-sooner{color:var(--status-success-text)}.cap-finish-delta.is-none,.cap-finish-delta.is-same{color:var(--text-secondary)}.rs-head{display:flex;flex-direction:column;gap:var(--space-3)}.rs-summary{margin:0;font-size:var(--font-ui);color:var(--text-secondary)}.rs-summary strong{font-weight:var(--fw-semibold);color:var(--text-primary)}.rs-effort{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);font-size:var(--font-caption);color:var(--text-secondary)}.rs-effort-lead{font-weight:var(--fw-semibold);color:var(--text-primary)}.rs-effort-phrase{white-space:nowrap}.rs-effort-num{width:64px}.rs-screen{display:flex;flex-direction:column;gap:var(--space-6);max-width:720px;padding:var(--space-5) var(--space-6) 24px}.rs-add-role{max-width:320px}.rs-add-person{max-width:320px;margin-bottom:var(--space-4)}.rs-group-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-3);min-height:28px}.rs-role-name{width:auto;min-width:60px;max-width:220px;padding:var(--space-1) var(--space-3);font-size:var(--font-title);font-weight:var(--fw-bold);color:var(--text-primary);background:none;border:1px solid transparent;border-radius:var(--radius-md)}input.rs-role-name{border-bottom:1px dashed var(--border-default);border-radius:var(--radius-md) var(--radius-md) 0 0}input.rs-role-name:hover,input.rs-role-name:focus-visible{border-color:var(--border-default);border-bottom-style:solid;background:var(--surface-raised)}input.rs-role-name:focus-visible{border-color:var(--accent)}.rs-role-name--unplaced{color:var(--text-secondary)}.rs-group-meta{font-size:var(--font-caption);color:var(--text-secondary)}.rs-add-btn,.rs-delete-btn{height:24px;padding:0 10px;font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap}.rs-add-btn{margin-left:auto}.rs-add-btn:hover{color:var(--text-primary);border-color:var(--border-strong)}.rs-add-btn[aria-expanded=true]{color:var(--text-accent);background:var(--accent-wash);border-color:var(--accent)}.rs-delete-btn:hover{color:var(--status-danger-text);background:var(--status-danger-tint);border-color:var(--status-danger)}.rs-colors{margin:0 0 var(--space-4)}.rs-role-select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.rs-holidays{margin-top:var(--space-2)}.rs-unplaced-note{margin:-2px 0 var(--space-3)}@media(max-width:720px){.rs-group-head{row-gap:var(--space-2)}.rs-group-meta{flex-basis:100%;order:3}}.cap-row-tag.rs-assumed{margin-left:0;font-size:var(--font-micro)}.rs-assumed-note{display:flex;align-items:center;gap:var(--space-4);margin:0 0 var(--space-4)}.rs-projects{flex:none;display:inline-flex;padding-right:var(--space-4)}.rs-projects-btn{padding:1px var(--space-4);font:inherit;font-size:var(--font-micro);font-weight:var(--fw-semibold);color:var(--text-secondary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap}.rs-projects-btn:hover,.rs-projects-btn:focus-visible,.rs-projects-btn[aria-expanded=true]{color:var(--text-primary);border-color:var(--border-strong);background:var(--surface-hover)}.tb-menu.rs-projects-menu{position:fixed;top:auto;right:auto;z-index:var(--z-menu)}.rs-manage-link{margin-top:var(--space-3)}.tm-list{margin:0 0 var(--space-3);padding:0;list-style:none;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);overflow:hidden}.tm-row{padding:var(--space-2) 10px}.tm-row+.tm-row{border-top:1px solid var(--border-subtle)}.tm-main{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.tm-name{font-weight:var(--fw-semibold);color:var(--text-primary)}.tm-role{font-size:var(--font-caption);color:var(--text-secondary)}.tm-role.is-missing{color:var(--status-warning-text)}.tm-meta{margin:2px 0 0 26px;font-size:var(--font-meta);color:var(--text-secondary)}.pj-effort-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.pj-effort-lead{font-size:var(--font-caption);color:var(--text-secondary)}.pj-effort-num{width:72px}.pj-effort-reset{padding:0;font:inherit;font-size:var(--font-micro);color:var(--text-accent);background:none;border:0;cursor:pointer}.pj-effort-reset:hover{text-decoration:underline}.cap-lane-people{font-size:var(--font-meta)}.cap-lane--missing .cap-lane-head{flex-wrap:wrap;row-gap:var(--space-2)}.filter-bar{flex:none;z-index:var(--z-dock);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);row-gap:var(--space-3);min-height:38px;padding:5px 10px 5px var(--space-2);background:var(--surface-base);border-bottom:1px solid var(--border-subtle)}.fb-drops{flex:1 1 200px;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.fb-drop{display:inline-flex;align-items:stretch;flex:0 1 auto;max-width:100%;height:26px;border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text-secondary);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.fb-drop:hover{border-color:var(--border-strong);color:var(--text-primary)}.fb-drop.is-on{border-color:var(--accent);background:var(--accent-wash);color:var(--text-accent)}.fb-drop .fb-anchor{display:inline-flex;min-width:0}.fb-drop-btn{display:inline-flex;align-items:center;gap:5px;min-width:0;height:100%;padding:0 9px;border:none;border-radius:var(--radius-pill);background:transparent;color:inherit;font-size:var(--font-caption);font-weight:var(--fw-semibold);line-height:1;white-space:nowrap;cursor:pointer}.fb-drop.is-on .fb-drop-btn{padding-right:var(--space-2);border-radius:var(--radius-pill) 0 0 var(--radius-pill)}.fb-drop-btn:hover,.fb-drop-btn.is-open{background:color-mix(in srgb,var(--accent) 8%,transparent)}.fb-drop-btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.fb-drop-label{flex:none;font-weight:var(--fw-medium)}.fb-drop-value{min-width:0;font-weight:var(--fw-semibold);max-width:16ch;overflow:hidden;text-overflow:ellipsis}.fb-drop-caret{display:inline-flex;flex:none;opacity:.85}.fb-drop-x{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;border:none;border-radius:0 var(--radius-pill) var(--radius-pill) 0;background:transparent;color:inherit;opacity:.8;cursor:pointer}.fb-drop-x:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);opacity:1}.fb-drop-x:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.fb-scope{display:inline-flex;align-items:center;padding:0 var(--space-2) 0 9px;font-size:var(--font-caption);font-weight:var(--fw-semibold);line-height:1;white-space:nowrap}.fb-scope-count{margin-left:5px;font-weight:var(--fw-semibold)}.fb-toggle{flex:none;height:26px;padding:0 10px;border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text-secondary);font-size:var(--font-caption);font-weight:var(--fw-semibold);line-height:1;white-space:nowrap;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.fb-toggle:hover{border-color:var(--border-strong);color:var(--text-primary)}.fb-toggle.is-on{border-color:var(--accent);background:var(--accent-wash);color:var(--text-accent)}.fb-right{flex:none;display:flex;align-items:center;gap:10px;margin-left:auto}.fb-seg{display:inline-flex;align-items:center;gap:var(--space-1);flex:none;padding:var(--space-1);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.fb-seg-label{padding:0 var(--space-3) 0 var(--space-2);font-size:var(--font-micro);color:var(--text-secondary);white-space:nowrap}.fb-seg button{min-width:44px;height:22px;padding:0 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--font-caption);font-weight:var(--fw-semibold);cursor:pointer}.fb-seg button:hover{color:var(--text-primary)}.fb-seg button.is-on{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--border-subtle)}.fb-seg button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.fb-clear{flex:none;height:24px;padding:0 9px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:var(--font-caption);font-weight:var(--fw-semibold);white-space:nowrap;cursor:pointer}.fb-clear:hover{background:var(--surface-hover);color:var(--text-primary)}.fb-anchor{position:relative;display:inline-flex}.fb-pop{position:absolute;top:calc(100% + 6px);z-index:var(--z-dialog);display:flex;flex-direction:column;gap:1px;min-width:190px;max-width:280px;max-height:min(60vh,420px);overflow-y:auto;padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.fb-pop--left{left:0}.fb-pop--right{right:0}.fb-row{display:flex;align-items:center;gap:var(--space-4);width:100%;height:30px;padding:0 var(--space-4);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font-size:var(--font-body);text-align:left;cursor:pointer}.fb-row:hover,.fb-row:focus-visible{background:var(--surface-hover);outline:none}.fb-row-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-row-tick{display:inline-flex;align-items:center;justify-content:center;flex:none;width:14px;color:var(--accent)}.fb-row-icon{display:inline-flex;flex:none;color:var(--text-tertiary)}.fb-row.is-on .fb-row-label,.fb-row.is-on .fb-row-icon{color:var(--text-accent)}.fb-row--view{display:flex;align-items:center;gap:var(--space-2);padding-right:var(--space-2)}.fb-view-apply{flex:1 1 auto;padding:5px var(--space-4);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font-size:var(--font-caption);text-align:left;cursor:pointer}.fb-view-apply:hover{background:var(--surface-hover)}.fb-view-empty{padding:var(--space-4);font-size:var(--font-caption);color:var(--text-tertiary);text-align:center}.fb-view-save{display:flex;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--border-subtle);margin-top:var(--space-2)}.fb-view-name{flex:1 1 auto;min-width:0;padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary);font-size:var(--font-caption)}.fb-view-name:hover{border-color:var(--border-strong)}.fb-view-name:focus-visible{border-color:var(--accent)}.fb-view-add{flex:none;padding:var(--space-2) 10px;border:none;border-radius:var(--radius-md);background:var(--accent);color:var(--text-on-accent);font-size:var(--font-caption);font-weight:var(--fw-semibold);cursor:pointer}.fb-view-add:hover:not(:disabled){background:var(--accent-hover)}.fb-view-add:disabled{background:var(--surface-sunken);color:var(--text-disabled);cursor:default}.search-bar{position:absolute;top:4px;left:50%;transform:translate(-50%);z-index:calc(var(--z-flyout) - 1);width:min(440px,100%);padding:3px var(--space-3);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);display:flex;flex-direction:column;transition:border-color var(--dur-fast) var(--ease)}.search-bar:hover{border-color:var(--border-strong)}.search-bar:focus-within{border-color:var(--accent)}.search-bar.is-open{background:var(--surface-raised);box-shadow:var(--shadow-pop)}.search-bar--zen{position:fixed;top:var(--space-5);z-index:calc(var(--z-flyout) - 1);width:min(420px,calc(100vw - 32px));background:var(--surface-raised);box-shadow:var(--shadow-pop)}.search-row{display:flex;align-items:center;gap:var(--space-3);padding-left:var(--space-2)}.search-lead-wrap{display:inline-flex;align-items:center;flex:none;cursor:text}.search-lead{color:var(--text-tertiary);flex:none}.search-input{flex:1;min-width:0;height:30px;border:none;background:transparent;color:var(--text-primary);font-size:var(--font-ui)}.search-input::placeholder{color:var(--text-tertiary)}.search-input:focus{outline:none}.search-tip{position:absolute;top:calc(100% + 6px);left:0;right:0;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-5);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);font-size:var(--font-caption);color:var(--text-primary)}.search-tip kbd{display:inline-block;padding:1px 5px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-sunken);font-family:var(--font-sans);font-size:var(--font-micro);color:var(--text-secondary)}.search-tip-x{display:inline-flex;align-items:center;justify-content:center;flex:none;margin-left:auto;width:22px;height:22px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer}.search-tip-x:hover{background:var(--surface-hover);color:var(--text-primary)}.search-count{flex:none;text-align:right;font-size:var(--font-micro);color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.search-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.search-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.search-btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.search-filter{position:relative;display:inline-flex;align-items:center;flex:none}.search-toggle.is-on,.search-toggle.is-on:hover{background:var(--accent-wash);color:var(--text-accent)}.search-filter.is-filtering .search-btn{background:var(--accent);color:var(--text-on-accent)}.search-filter.is-filtering .search-btn:hover{background:var(--accent-hover);color:var(--text-on-accent)}.search-filter.is-filtering .search-toggle{border-radius:var(--radius-md) 0 0 var(--radius-md)}.search-caret{width:17px;border-radius:0 var(--radius-md) var(--radius-md) 0;border-left:1px solid rgb(255 255 255 / .35)}.search-filter-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:var(--z-dialog);min-width:130px;padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.search-filter-menu-item{display:flex;align-items:center;width:100%;height:30px;padding:0 10px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font-size:var(--font-body);text-align:left;white-space:nowrap;cursor:pointer}.search-filter-menu-item:hover,.search-filter-menu-item:focus-visible{background:var(--surface-hover);outline:none}.search-results{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--border-subtle);max-height:min(50vh,420px);overflow-y:auto}.cmdk-section+.cmdk-section{margin-top:var(--space-2)}.cmdk-section-label{padding:var(--space-3) 10px var(--space-1);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.cmdk-row{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 10px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font-size:var(--font-body);text-align:left;cursor:pointer}.cmdk-row--active{background:var(--surface-hover)}.cmdk-row--more .cmdk-row-title{color:var(--text-secondary);font-size:var(--font-caption)}.cmdk-row--more.cmdk-row--active .cmdk-row-title{color:var(--text-primary)}.cmdk-row--empty{cursor:default}.cmdk-row--empty .cmdk-row-title{color:var(--text-tertiary)}.cmdk-row-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-row-shortcut{flex:none;font-size:var(--font-micro);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.cmdk-row-hint{flex:none;font-size:var(--font-micro);color:var(--text-tertiary)}.cmdk-row-doc{flex:0 1 auto;min-width:0;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-micro);color:var(--text-tertiary)}.bc-title{position:absolute;top:0;left:0;z-index:var(--z-view-chrome);display:flex;align-items:center;height:var(--doc-title-h);padding:0 var(--space-6);font-size:var(--font-ui);font-weight:var(--fw-semibold);color:var(--text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none}button.bc-title--renamable{pointer-events:auto;height:28px;margin:var(--space-4) 0 0 var(--space-4);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;font:inherit;font-size:var(--font-ui);font-weight:var(--fw-semibold);cursor:text}button.bc-title--renamable:hover{border-color:var(--border-default);color:var(--text-primary)}input.bc-title-input{pointer-events:auto;-webkit-user-select:text;user-select:text;height:28px;margin:var(--space-4) 0 0 var(--space-4);padding:0 var(--space-4);width:min(40vw,320px);border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--surface-raised);font:inherit;font-size:var(--font-ui);font-weight:var(--fw-semibold);color:var(--text-primary)}.bc-bar{position:absolute;top:var(--space-3);left:var(--space-4);z-index:calc(var(--z-header) + 1);display:flex;align-items:center;gap:var(--space-1);max-width:min(70vw,640px);height:34px;padding:0 var(--space-3) 0 var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}.bc-crumb{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:26px;padding:0 var(--space-4);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:var(--font-caption);cursor:pointer}button.bc-crumb:hover{background:var(--surface-hover);color:var(--text-primary)}span.bc-crumb{display:inline-flex;align-items:center}.bc-crumb--current{color:var(--text-primary);cursor:default}.bc-sep{color:var(--text-tertiary);font-size:var(--font-caption);opacity:.6;flex:none}.bc-exit{margin-left:var(--space-2);border-radius:0;border-left:1px solid var(--border-subtle)}.workspace-panel{position:relative;flex:none;width:min(288px,34vw);height:100%;z-index:var(--z-dock);display:flex;flex-direction:column;background:var(--surface-base);border-right:1px solid var(--border-subtle);overflow:hidden}.wsp-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-5) 10px;border-bottom:1px solid var(--border-subtle)}.wsp-title{font-size:var(--font-ui);font-weight:var(--fw-semibold);color:var(--text-primary)}.wsp-head-actions{display:inline-flex;gap:var(--space-1)}.wsw{position:relative;min-width:0;flex:1}.wsw-trigger{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:3px var(--space-3) 3px var(--space-2);margin-left:-4px;border:1px solid transparent;border-radius:var(--radius-md);background:none;color:var(--text-primary);font:inherit;font-size:var(--font-ui);font-weight:var(--fw-semibold);text-align:left;cursor:pointer}.wsw-trigger:hover:not(:disabled),.wsw-trigger.is-open{background:var(--surface-hover);border-color:var(--border-default)}.wsw-trigger:disabled{cursor:default;color:var(--text-disabled)}.wsw-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wsw-rename{width:100%;padding:3px var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary);font:inherit;font-size:var(--font-ui);font-weight:var(--fw-semibold)}.wsw-menu{display:flex;flex-direction:column;gap:1px;min-width:248px}.wsw-menu-gutter{display:inline-block;width:14px;height:14px;flex:none}.wsp-body{flex:1;min-height:0;overflow-y:auto}.wsp-tree{min-height:100%;padding:var(--space-3) var(--space-3) 24px;border-radius:var(--radius-md)}.wsp-tree.is-root-target{box-shadow:inset 0 0 0 2px var(--accent)}.wsp-row{position:relative;display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:28px;padding:3px var(--space-3) 3px 0;border-radius:var(--radius-md);text-align:left;font-size:var(--font-body);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.wsp-row:hover:not(.is-active){background:var(--surface-hover)}.wsp-row.is-active{background:var(--accent-wash);color:var(--text-accent)}.wsp-row.is-active .wsp-glyph,.wsp-row.is-active .wsp-twist{color:var(--text-accent)}.wsp-row.is-dragging{opacity:.45}.wsp-row--all{margin-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle);border-bottom-left-radius:0;border-bottom-right-radius:0}.wsp-row--all .wsp-glyph{color:var(--text-accent)}.wsp-row.is-drop-into{box-shadow:inset 0 0 0 2px var(--accent)}.wsp-row.is-drop-before:before,.wsp-row.is-drop-after:after{content:"";position:absolute;left:var(--space-2);right:var(--space-2);height:2px;border-radius:1px;background:var(--accent)}.wsp-row.is-drop-before:before{top:-1px}.wsp-row.is-drop-after:after{bottom:-1px}.wsp-twist{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:var(--radius-sm);color:var(--text-tertiary)}.wsp-twist svg{transition:transform var(--dur-fast) var(--ease)}.wsp-twist.is-open svg{transform:rotate(90deg)}.wsp-glyph{flex:none;display:inline-flex;color:var(--text-tertiary)}.wsp-glyph--doc{margin-left:22px}.wsp-main{flex:1;min-width:0;display:flex;align-items:center}.wsp-pct{flex:none;font-size:var(--font-micro);font-variant-numeric:tabular-nums;color:var(--text-tertiary)}.wsp-row:hover .wsp-pct{display:none}.wsp-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wsp-untitled{color:var(--text-tertiary);font-style:italic}.wsp-rename{width:100%;padding:var(--space-1) var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text-primary);font-size:var(--font-body);outline:none}.wsp-actions{flex:none;display:none;gap:1px;padding-right:var(--space-1)}.wsp-row:hover .wsp-actions,.wsp-row:focus-within .wsp-actions{display:inline-flex}.wsp-action{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-sm);color:var(--text-tertiary)}.wsp-action:hover{color:var(--text-primary);background:var(--surface-hover)}.wsp-empty{padding:18px var(--space-5);font-size:var(--font-ui);line-height:var(--lh-body);color:var(--text-tertiary);text-align:center}.wsp-empty--actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-5);padding:28px var(--space-6)}.wsp-empty-line{margin:0}.wsp-empty-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4)}.wsp-empty-btn svg{flex:none}.wsp-trash{flex:none;border-top:1px solid var(--border-subtle);background:var(--surface-base)}.wsp-trash-head{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-5) var(--space-3) var(--space-4);font-size:var(--font-body);color:var(--text-secondary);text-align:left;cursor:pointer}.wsp-trash-head:hover{color:var(--text-primary);background:var(--surface-hover)}.wsp-trash-list{max-height:176px;overflow-y:auto;padding:0 var(--space-3) var(--space-4)}.wsp-trash-row{display:flex;align-items:center;gap:var(--space-3);min-height:26px;padding:var(--space-1) var(--space-2) var(--space-1) 30px;border-radius:var(--radius-md);font-size:var(--font-body);color:var(--text-secondary)}.wsp-trash-row:hover{background:var(--surface-hover);color:var(--text-primary)}.wsp-trash-main{flex:1;min-width:0;display:flex;align-items:baseline;gap:var(--space-3)}.wsp-trash-when{flex:none;font-size:var(--font-micro);color:var(--text-tertiary)}.wsp-trash-restore{flex:none}.wsp-action--danger:hover{color:var(--status-danger-text);background:var(--status-danger-tint)}.wsp-trash-bar{display:flex;align-items:center}.wsp-trash-bar .wsp-trash-head{flex:1;width:auto;min-width:0}.wsp-trash-verbs{flex:none;display:flex;gap:var(--space-2);padding-right:var(--space-4)}.wsp-trash-left{flex:none;font-size:var(--font-micro);color:var(--text-tertiary)}.wsp-trash-row.is-expiring .wsp-trash-left{color:var(--status-danger-text)}.wsp-newdoc{position:absolute;top:44px;left:10px;right:10px;max-height:calc(100% - 60px);overflow-y:auto;z-index:var(--z-lift-2);padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.wsp-newdoc-heading{padding:var(--space-4) 10px var(--space-2);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.wsp-newdoc-item{display:flex;align-items:center;gap:var(--space-4);width:100%;padding:7px 10px;border-radius:var(--radius-md);text-align:left;font-size:var(--font-body);color:var(--text-primary)}.wsp-newdoc-item:hover:not(:disabled){background:var(--surface-hover)}.wsp-newdoc-item:disabled{color:var(--text-disabled)}.wsp-newdoc-emoji{flex:none;width:18px;text-align:center;color:var(--text-tertiary)}.wsp-newdoc-name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wsp-newdoc-docs{max-height:180px;overflow-y:auto}.wsp-newdoc-filter{display:block;width:calc(100% - 16px);margin:0 var(--space-4) var(--space-3);padding:5px var(--space-4);font-size:var(--font-caption);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary)}.wsp-newdoc-filter::placeholder{color:var(--text-tertiary)}.wsp-newdoc-filter:hover{border-color:var(--border-strong)}.wsp-newdoc-filter:focus{outline:none;border-color:var(--accent)}.wsp-newdoc-note{padding:var(--space-2) 10px var(--space-3);font-size:var(--font-meta);color:var(--text-tertiary)}.wsp-newdoc-row{position:relative;display:flex;align-items:center}.wsp-newdoc-row .wsp-newdoc-item{flex:1;min-width:0;padding-right:28px}.wsp-newdoc-del{position:absolute;right:var(--space-2);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-sm);color:var(--text-tertiary);opacity:0}.wsp-newdoc-row:hover .wsp-newdoc-del,.wsp-newdoc-del:focus-visible{opacity:1}.wsp-newdoc-del:hover{color:var(--status-danger-text);background:var(--status-danger-tint)}.wsp-ctx-menu{display:flex;flex-direction:column;gap:1px}.wsp-newdoc-item--described{height:auto;align-items:flex-start;padding-top:var(--space-3);padding-bottom:var(--space-3)}.wsp-newdoc-item--described .wsp-newdoc-emoji{margin-top:1px}.wsp-newdoc-text{display:flex;flex-direction:column;gap:1px;min-width:0}.wsp-newdoc-desc{font-size:var(--font-micro);line-height:1.35;color:var(--text-tertiary);white-space:normal}.restore-dialog{width:min(94vw,440px)}.restore-list{display:flex;flex-direction:column;max-height:min(46vh,420px);overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.restore-row{display:flex;align-items:center;gap:10px;padding:var(--space-4) 10px}.restore-row+.restore-row,.restore-group+.restore-row{border-top:1px solid var(--border-subtle)}.restore-row-body{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.restore-row-stamp{font-size:var(--font-body);font-weight:var(--fw-semibold)}.restore-row-meta{font-size:var(--font-caption);color:var(--text-secondary)}.restore-group{padding:var(--space-4) 10px var(--space-2);font-size:var(--font-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);background:var(--surface-sunken)}.restore-group+.restore-group,.restore-row+.restore-group{border-top:1px solid var(--border-subtle)}.restore-row-delta{color:var(--text-primary)}.restore-row-btn{flex:none}.restore-empty{padding:10px var(--space-1);font-size:var(--font-body);color:var(--text-tertiary)}.findrep-dialog{width:min(94vw,400px)}.findrep-fields{display:flex;flex-direction:column;gap:var(--space-5)}.findrep-options{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--font-body)}.findrep-case{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.findrep-case input{accent-color:var(--accent)}.findrep-count{color:var(--text-secondary);white-space:nowrap}.findrep-preview{display:flex;flex-direction:column;gap:var(--space-2);max-height:132px;overflow-y:auto;padding:var(--space-4) 9px;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--font-caption)}.findrep-preview-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline;gap:var(--space-3)}.findrep-before,.findrep-after{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.findrep-before{color:var(--text-disabled)}.findrep-after{color:var(--text-primary)}.findrep-arrow{color:var(--text-tertiary)}.findrep-empty{color:var(--text-tertiary);font-style:italic}.findrep-preview-note{color:var(--text-tertiary)}.repair-dialog{width:min(94vw,440px)}.repair-list{max-height:190px;overflow-y:auto;margin:0;padding:var(--space-4) 9px var(--space-4) 26px;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--font-caption);color:var(--text-primary);line-height:1.5}.repair-list li+li{margin-top:3px}.repair-technical summary{font-size:var(--font-caption);color:var(--text-secondary);cursor:pointer}.repair-technical[open] summary{margin-bottom:var(--space-3)}.filtered-out-hint{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-canvas-overlay) + 1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none;text-align:center;padding:var(--space-6)}.filtered-out-msg{font-size:var(--font-ui);color:var(--text-tertiary)}.filtered-out-clear{pointer-events:auto}.board-empty{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:48px var(--space-6);font-size:var(--font-ui);color:var(--text-tertiary);text-align:center}.board-empty-door{display:inline-flex;align-items:center;gap:var(--space-5)}.release-stop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-drop);overflow-y:auto;background:var(--canvas);color:var(--text-primary);font-family:var(--font-sans)}.release-stop__card{box-sizing:border-box;max-width:34rem;margin:0 auto;padding:12vh var(--space-6) 24px}.release-stop__title{margin:0 0 var(--space-5);font-size:var(--font-headline);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.release-stop__heading{margin:24px 0 var(--space-4);font-size:var(--font-title);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.release-stop__body{margin:0 0 var(--space-5);font-size:var(--font-lead);line-height:var(--lh-loose);color:var(--text-secondary)}.release-stop__message{margin:0 0 var(--space-5);padding:var(--space-5) var(--space-6);border-left:3px solid var(--accent);border-radius:var(--radius-md);background:var(--surface-sunken);font-size:var(--font-lead);line-height:var(--lh-body)}.release-stop__exports{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:0;padding:0;list-style:none}.release-stop__actions{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:24px 0 0}.release-stop__footer{margin:var(--space-6) 0 0;font-size:var(--font-caption);color:var(--text-tertiary)}.release-banner{position:fixed;bottom:20px;left:50%;z-index:calc(var(--z-toast) + 1);display:flex;align-items:center;gap:var(--space-5);box-sizing:border-box;max-width:min(520px,calc(100vw - 32px));padding:var(--space-4) var(--space-4) var(--space-4) var(--space-6);border:1px solid var(--border-default);border-left:3px solid var(--status-warning);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-pop);font-size:var(--font-meta);line-height:var(--lh-body);color:var(--text-primary);transform:translate(-50%)}
