:root{--bg:#12141a;--bg-accent:#14161d;--bg-elevated:#1a1d25;--bg-hover:#262a35;--card:#181b22;--secondary:#1e2028;--text:#e4e4e7;--text-strong:#fafafa;--muted:#71717a;--border:#27272a;--border-strong:#3f3f46;--accent:#ff5c5c;--accent-hover:#ff7070;--accent-subtle:#ff5c5c26;--accent-2:#14b8a6;--accent-2-subtle:#14b8a61f;--ok:#22c55e;--ok-subtle:#22c55e1f;--warn:#f59e0b;--warn-subtle:#f59e0b1f;--danger:#ef4444;--danger-subtle:#ef44441f;--danger-border:#ef444459;--warn-border:#f59e0b59;--ok-border:#22c55e59;--info:#3b82f6;--info-subtle:#3b82f61f;--hue-1:#5b6b82;--hue-1-fg:#e6ecf5;--hue-1-soft:color-mix(in srgb, var(--hue-1) 18%, transparent);--hue-1-canvas:color-mix(in srgb, var(--hue-1) 35%, #0a0c10);--hue-1-ring:#7d8da6;--hue-1-ring-soft:color-mix(in srgb, var(--hue-1-ring) 25%, transparent);--hue-2:#3e7a78;--hue-2-fg:#dff0ee;--hue-2-soft:color-mix(in srgb, var(--hue-2) 18%, transparent);--hue-2-canvas:color-mix(in srgb, var(--hue-2) 35%, #0a0c10);--hue-2-ring:#5a9694;--hue-2-ring-soft:color-mix(in srgb, var(--hue-2-ring) 25%, transparent);--hue-3:#6b6fa8;--hue-3-fg:#e7e8f7;--hue-3-soft:color-mix(in srgb, var(--hue-3) 18%, transparent);--hue-3-canvas:color-mix(in srgb, var(--hue-3) 35%, #0a0c10);--hue-3-ring:#8a8fc5;--hue-3-ring-soft:color-mix(in srgb, var(--hue-3-ring) 25%, transparent);--hue-4:#607a5c;--hue-4-fg:#e2ecde;--hue-4-soft:color-mix(in srgb, var(--hue-4) 18%, transparent);--hue-4-canvas:color-mix(in srgb, var(--hue-4) 35%, #0a0c10);--hue-4-ring:#7f997a;--hue-4-ring-soft:color-mix(in srgb, var(--hue-4-ring) 25%, transparent);--hue-5:#7e5a7a;--hue-5-fg:#efe2ed;--hue-5-soft:color-mix(in srgb, var(--hue-5) 18%, transparent);--hue-5-canvas:color-mix(in srgb, var(--hue-5) 35%, #0a0c10);--hue-5-ring:#9d7899;--hue-5-ring-soft:color-mix(in srgb, var(--hue-5-ring) 25%, transparent);--hue-6:#8a6a4a;--hue-6-fg:#f2e6d6;--hue-6-soft:color-mix(in srgb, var(--hue-6) 18%, transparent);--hue-6-canvas:color-mix(in srgb, var(--hue-6) 35%, #0a0c10);--hue-6-ring:#a88968;--hue-6-ring-soft:color-mix(in srgb, var(--hue-6-ring) 25%, transparent);--hue-7:#4e6e7a;--hue-7-fg:#dfe9ee;--hue-7-soft:color-mix(in srgb, var(--hue-7) 18%, transparent);--hue-7-canvas:color-mix(in srgb, var(--hue-7) 35%, #0a0c10);--hue-7-ring:#6d8b97;--hue-7-ring-soft:color-mix(in srgb, var(--hue-7-ring) 25%, transparent);--hue-8:#6a5f82;--hue-8-fg:#ebe6f2;--hue-8-soft:color-mix(in srgb, var(--hue-8) 18%, transparent);--hue-8-canvas:color-mix(in srgb, var(--hue-8) 35%, #0a0c10);--hue-8-ring:#897ea3;--hue-8-ring-soft:color-mix(in srgb, var(--hue-8-ring) 25%, transparent);--chart-1:var(--hue-2-ring);--chart-1-soft:var(--hue-2-soft);--chart-2:var(--hue-3-ring);--chart-2-soft:var(--hue-3-soft);--chart-3:var(--hue-6-ring);--chart-3-soft:var(--hue-6-soft);--card-highlight:#ffffff0d;--shadow-sm:0 1px 2px #0003;--shadow-md:0 4px 12px #00000040, 0 0 0 1px #ffffff08;--shadow-lg:0 8px 24px #0006, 0 0 0 1px #ffffff08;--shadow-card:0 12px 28px #00000059;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--duration-fast:.15s;--duration-normal:.2s;--duration-slow:.35s;--ease-out:cubic-bezier(.16, 1, .3, 1);--sidebar-width:220px;--status-backlog:#666;--status-open:#888;--status-in-progress:#f0c000;--status-review:#e07020;--status-done:#d04040;--status-blocked:#ef4444;--tree-line:#3f3f46}*{box-sizing:border-box;margin:0;padding:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{color:var(--text);background:var(--bg);height:100vh;font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}*{scrollbar-width:none!important}.cscroll-wrap{flex-direction:column;display:flex;position:relative;overflow:hidden}.cscroll-wrap>.cscroll-inner{flex:1;overflow:hidden auto}.cscroll-track{z-index:50;border-radius:9999px;width:5px;position:absolute;top:16px;bottom:16px;right:4px}.cscroll-track.hidden{display:none}.file-preview>.cscroll-track{top:54px}.file-tree>.cscroll-track{bottom:58px}.cscroll-thumb{background:var(--border);cursor:grab;border-radius:9999px;width:100%;min-height:24px;transition:background .15s;position:absolute}.cscroll-thumb:hover,.cscroll-thumb.dragging{background:var(--muted)}.app{grid-template-rows:auto auto 1fr;grid-template-columns:var(--sidebar-width) 1fr;height:100dvh;transition:grid-template-columns var(--duration-normal) var(--ease-out);display:grid}.sidebar{grid-row:2/4}.app.sidebar-collapsed{grid-template-columns:0 1fr}.header{padding:calc(12px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px)) 12px calc(14px + env(safe-area-inset-left,0px));background:var(--bg);border-bottom:1px solid var(--border);grid-area:1/1/auto/-1;justify-content:space-between;align-items:center;height:auto;min-height:56px;display:flex}.column-body{padding-bottom:env(safe-area-inset-bottom,0px)}[data-detail-panel]{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.header-left{align-items:center;gap:12px;display:flex}.sidebar-toggle{width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration-normal);background:0 0;border:none;justify-content:center;align-items:center;font-size:18px;display:flex}.sidebar-toggle:hover{color:var(--text);background:var(--bg-hover)}.header-logo{align-items:center;line-height:1;display:flex}.header-logo img{vertical-align:middle;width:auto;height:30px}.header-brand{flex-direction:column;display:flex}.header-title{letter-spacing:.05em;color:var(--text-strong);text-transform:uppercase;font-size:15px;font-weight:700}.header-subtitle{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:500}.header-right{align-items:center;gap:10px;display:flex}.header-project{color:var(--text-strong);letter-spacing:.02em;font-size:13px;font-weight:600}.badge-active{border-radius:var(--radius-full);color:var(--accent);background:var(--accent-subtle);text-transform:uppercase;letter-spacing:.04em;border:1px solid #ff5c5c59;padding:3px 10px;font-size:10px;font-weight:600;display:inline-flex}.sidebar{background:var(--bg);transition:opacity var(--duration-normal);border-right:1px solid var(--border);flex-direction:column;padding:0;display:flex;overflow:hidden}.app.sidebar-collapsed .sidebar{opacity:0;pointer-events:none}.sidebar-head{padding:calc(12px + env(safe-area-inset-top,0px)) 14px 8px;justify-content:space-between;align-items:center;display:flex}.sidebar-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;padding:0;font-size:10px;font-weight:600}.sidebar-new{color:var(--accent);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast);background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:3px 9px 3px 7px;font-family:inherit;font-size:11px;font-weight:600;display:inline-flex}.sidebar-new:hover{background:var(--accent-subtle);border-color:#ff5c5c40}.sidebar-new svg{width:11px;height:11px}.sidebar-scroll{padding:0 10px calc(12px + env(safe-area-inset-bottom,0px));flex-direction:column;flex:1;display:flex;overflow-y:auto}.project-item{border-radius:var(--radius-md);color:var(--muted);cursor:pointer;transition:all var(--duration-normal);border:1px solid #0000;align-items:center;gap:6px;margin-bottom:2px;padding:8px 14px;font-size:13px;font-weight:500;display:flex;position:relative}.project-item:hover{background:var(--bg-hover);color:var(--text-strong)}.project-item.viewed{background:var(--accent-subtle);color:var(--text-strong);border:1px solid var(--accent);box-shadow:0 0 12px #ff5c5c26,inset 0 1px #ff5c5c1a}.project-item .proj-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.project-item.archived{opacity:.55}.project-item.dragging{opacity:.4}.sidebar-scroll .project-item{border-radius:var(--radius-sm);margin-bottom:1px;padding:6px 10px;font-size:12.5px}.project-badge{background:var(--secondary);border-radius:var(--radius-full);color:var(--muted);padding:2px 8px;font-size:11px;font-weight:500}.agent-pulse{flex-shrink:0;justify-content:center;align-items:center;width:8px;height:8px;margin-right:2px;display:inline-flex;position:relative}.agent-pulse-dot{z-index:1;background:#b4c8dcd9;border-radius:50%;width:6px;height:6px;position:relative}.agent-pulse-halo{pointer-events:none;background:#b4c8dc99;border-radius:50%;animation:2.2s ease-out infinite fb-agent-pulse;position:absolute;inset:0}@keyframes fb-agent-pulse{0%{opacity:.6;transform:scale(1)}70%{opacity:0;transform:scale(2.2)}to{opacity:0;transform:scale(2.2)}}@media (prefers-reduced-motion:reduce){.agent-pulse-halo{opacity:.3;animation:none;transform:scale(1.4)}}.agent-chip-pulse-wrap{display:inline-flex;position:relative}.agent-chip-pulse-halo{background:var(--agent-pulse-color,#b4c8dc99);animation:2.4s ease-out infinite fb-chip-pulse;animation-delay:var(--agent-pulse-delay,0s);pointer-events:none;z-index:0;border-radius:50%;position:absolute;inset:-2px}@keyframes fb-chip-pulse{0%{opacity:.55;transform:scale(1)}70%{opacity:0;transform:scale(1.6)}to{opacity:0;transform:scale(1.6)}}@media (prefers-reduced-motion:reduce){.agent-chip-pulse-halo{opacity:.35;animation:none;transform:scale(1.2)}}.task-card.task-card-active-claim,.task-card.task-card-active-claim:hover,.subtask-card.subtask-card-active-claim,.subtask-card.subtask-card-active-claim:hover{border-color:var(--agent-claim-color,#7f8ea6);animation:2.4s ease-in-out infinite fb-card-claim-pulse;animation-delay:var(--agent-pulse-delay,0s)}@keyframes fb-card-claim-pulse{0%,to{border-color:var(--agent-claim-color-soft,#7f8ea666)}50%{border-color:var(--agent-claim-color,#7f8ea6)}}@media (prefers-reduced-motion:reduce){.task-card.task-card-active-claim,.subtask-card.subtask-card-active-claim{border-color:var(--agent-claim-color,#7f8ea6);animation:none}}.active-agents-bar{background:var(--bg-accent);border-bottom:1px solid var(--border);border-top:1px solid var(--border);flex-shrink:0;margin:0 -16px 10px;padding:12px 20px 14px}.active-agents-bar__label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;font-size:10px;font-weight:600}.active-agents-bar:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.active-agents-bar__list{position:relative}.active-agents-bar__measure,.active-agents-bar__visible{flex-wrap:wrap;gap:10px;display:flex}.active-agents-bar__measure{visibility:hidden;pointer-events:none;width:100%;position:absolute;inset:0 auto auto 0}.active-agents-pill-wrap{min-width:0;display:inline-flex;position:relative}.active-agents-overflow-wrap{display:inline-flex;position:relative}.active-agents-overflow{border:1px solid var(--border);border-radius:var(--radius-full);background:var(--card);min-height:32px;color:var(--text-strong);font:inherit;cursor:pointer;align-self:center;padding:4px 10px;font-size:11px}.active-agents-overflow:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.active-agents-overflow-popover{z-index:1001;border:1px solid var(--border-strong);background:var(--bg-elevated);max-width:min(360px,100vw - 24px);max-height:280px;box-shadow:var(--shadow-lg);border-radius:9px;padding:6px;position:absolute;top:calc(100% + 8px);left:0;overflow:auto}.active-agents-overflow-popover__row{white-space:nowrap;width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;gap:18px;padding:6px 8px;font-size:11px;display:flex}.active-agents-overflow-popover__row:hover,.active-agents-overflow-popover__row:focus-visible{background:var(--bg-hover)}.active-agents-overflow-popover__row:disabled{opacity:.65;cursor:default}.active-agents-overflow-popover__agent+.active-agents-overflow-popover__agent{border-top:1px solid var(--border)}.active-agents-overflow-popover__tasks{border-top:1px solid var(--border);padding:0 2px 4px}.active-agents-mobile-summary,.active-agents-mobile-overlay,.active-agents-mobile-sheet{display:none}.active-agents-overflow-popover__row span:last-child{color:var(--muted)}.active-agents-pill{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-full);box-sizing:border-box;max-width:min(360px,100%);height:32px;min-height:32px;color:var(--text);font:inherit;text-align:left;transition:background var(--duration-fast), border-color var(--duration-fast), box-shadow var(--duration-fast);align-items:center;gap:8px;padding:4px 8px 4px 4px;display:inline-flex}.active-agents-pill--trigger{cursor:pointer}.active-agents-pill--trigger:hover{background:var(--bg-hover);border-color:var(--border-strong)}.active-agents-pill--trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.active-agents-pill--multi[aria-expanded=true]{background:var(--bg-hover);border-color:var(--border-strong)}.active-agents-pill--idle{max-width:240px}.active-agents-pill__avatar{flex:none;align-items:center;display:inline-flex}.active-agents-pill__meta{flex-direction:column;min-width:0;line-height:1.2;display:inline-flex}.active-agents-pill__name{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:500;overflow:hidden}.active-agents-pill__task{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:150px;font-size:11px;overflow:hidden}.active-agents-pill__task--idle{opacity:.75;font-style:italic}.active-agents-pill__task-id{font-family:JetBrains Mono,monospace}.active-agents-pill__count{color:var(--muted);white-space:nowrap;flex:none;font-size:11px}.active-agents-pill__caret{color:var(--muted);transition:transform var(--duration-fast);flex:none}.active-agents-pill--multi[aria-expanded=true] .active-agents-pill__caret{color:var(--text);transform:rotate(180deg)}.active-agents-health{flex:none;align-items:center;gap:6px;min-width:0;display:inline-flex}.active-agents-health__dot{background:var(--muted);border-radius:50%;flex:none;width:6px;height:6px;display:inline-block;box-shadow:0 0 0 2px #ffffff0a}.active-agents-health--current .active-agents-health__dot{background:var(--hue-8-ring)}.active-agents-health--stale .active-agents-health__dot,.active-agents-health--expired .active-agents-health__dot{background:var(--warn)}.active-agents-health__label{color:var(--muted);white-space:nowrap;flex:none;font-size:9.5px}.active-agents-task-row__progress{background:var(--secondary);border-radius:2px;flex:auto;min-width:16px;max-width:60px;height:2px;overflow:hidden}.active-agents-task-row__progress-fill{opacity:.8;background:var(--muted);border-radius:2px;height:100%;display:block}.active-agents-health--current .active-agents-task-row__progress-fill{background:var(--hue-8-ring)}.active-agents-health--stale .active-agents-task-row__progress-fill,.active-agents-health--expired .active-agents-task-row__progress-fill{background:var(--warn)}.active-agents-popover{z-index:1000;box-sizing:border-box;border:1px solid var(--border-strong);background:var(--bg-elevated);width:min(300px,100vw - 24px);max-height:min(360px,100vh - 24px);box-shadow:var(--shadow-lg);animation:active-agents-popover-in var(--duration-fast) var(--ease-out);border-radius:9px;padding:4px;position:fixed;overflow:hidden}.active-agents-popover__header{border-bottom:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 6px 6px;font-size:9.5px;font-weight:600;display:flex}.active-agents-popover__header h2{font:inherit;margin:0}.active-agents-popover__list{flex-direction:column;gap:2px;max-height:min(310px,100vh - 84px);margin:0;padding-top:4px;list-style:none;display:flex;overflow-y:auto}.active-agents-popover__list>li{min-width:0}.active-agents-task-row{border-radius:var(--radius-sm);width:100%;min-width:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast);background:0 0;border:1px solid #0000;grid-template-columns:minmax(44px,auto) 1fr auto;align-items:start;gap:10px;padding:7px 10px;display:grid}.active-agents-task-row:hover,.active-agents-task-row:focus-visible{border-color:var(--border-strong);background:var(--bg-hover);outline:none}.active-agents-task-row__body{min-width:0}.active-agents-task-row__id{color:var(--muted);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:10.5px}.active-agents-task-row__title{min-width:0;color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;display:block;overflow:hidden}.active-agents-task-row__meta{align-items:center;gap:6px;width:100%;min-width:0;margin-top:3px;display:flex}.active-agents-task-row__checkpoint{color:var(--muted);white-space:nowrap;text-align:right;font-size:9.5px}@keyframes active-agents-popover-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.active-agents-popover{animation:none}}@media (width<=640px){.active-agents-bar__label,.active-agents-bar__visible,.active-agents-bar__measure{display:none}.active-agents-bar__list{height:46px;display:block}.active-agents-mobile-summary{width:100%;height:46px;color:var(--text);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0 12px;font-size:12px;display:flex}.active-agents-mobile-summary__avatars{display:flex}.active-agents-mobile-summary__avatars .active-agents-pill__avatar+.active-agents-pill__avatar{margin-left:-5px}.active-agents-mobile-overlay{z-index:1000;background:#00000052;align-items:flex-end;width:100vw;max-width:100%;display:flex;position:fixed;inset:0;overflow:hidden}.active-agents-mobile-sheet{box-sizing:border-box;width:100%;min-width:0;max-width:100vw;height:min(80dvh,640px);max-height:calc(100dvh - env(safe-area-inset-top) - 12px);padding:0 0 env(safe-area-inset-bottom);border-top:1px solid var(--border);background:var(--bg-elevated);border-radius:14px 14px 0 0;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 -8px 30px #0005}.active-agents-mobile-sheet__header{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:16px 16px 10px;display:flex}.active-agents-mobile-sheet h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:15px;overflow:hidden}.active-agents-mobile-sheet__close{color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none}.active-agents-mobile-sheet__content{box-sizing:border-box;overscroll-behavior:contain;flex-direction:column;flex:auto;gap:8px;width:100%;min-width:0;min-height:0;padding:10px 16px 16px;display:flex;overflow:hidden auto}.active-agents-mobile-sheet__agent{flex-direction:column;gap:4px;display:flex}.active-agents-mobile-sheet__row{border:1px solid var(--border);min-height:44px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border-radius:8px;justify-content:space-between;gap:12px;padding:10px;display:flex}.active-agents-mobile-sheet__row:disabled{opacity:.65;cursor:default}.active-agents-mobile-sheet__row span{color:var(--muted);white-space:nowrap}.active-agents-mobile-sheet__tasks{border:1px solid var(--border);border-top:0;border-radius:0 0 8px 8px;flex-direction:column;gap:2px;padding:0 2px 4px;display:flex}.active-agents-mobile-sheet__tasks .active-agents-task-row{min-height:44px;padding-inline:8px}.active-agents-bar{padding-inline:12px}.active-agents-bar__list{gap:8px}.active-agents-pill-wrap,.active-agents-pill{max-width:100%}.active-agents-pill__task{max-width:min(140px,32vw)}.active-agents-health__label{font-size:9px}}.project-item .row-grip,.project-item .row-kebab{cursor:pointer;color:var(--muted);opacity:0;transition:opacity var(--duration-fast), color var(--duration-fast);background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-family:inherit;display:inline-flex}.project-item .row-grip{cursor:grab;touch-action:none;flex-shrink:0;width:12px;height:16px}@media (hover:none){.project-item .row-grip{opacity:.55;width:40px;height:40px;margin:-12px -6px -12px -10px}}.project-item .row-kebab{border-radius:var(--radius-sm);width:20px;height:20px}.project-item:hover .row-grip{opacity:.5}.project-item:hover .row-kebab,.project-item .row-kebab[aria-expanded=true]{opacity:1}.project-item .row-kebab:hover{background:var(--bg-hover);color:var(--text-strong)}.project-item .proj-rename{background:var(--bg);min-width:0;color:var(--text-strong);border:1px solid var(--accent);border-radius:var(--radius-sm);font:inherit;outline:none;flex:1;padding:2px 6px}.drop-line{background:var(--accent);pointer-events:none;border-radius:1px;flex-shrink:0;height:2px;min-height:2px;margin:1px 2px}.sort-mode-menu{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);flex-direction:column;gap:2px;padding:4px;display:flex}.sort-mode-item{cursor:pointer;width:100%;color:var(--text);text-align:left;border-radius:var(--radius-sm);transition:background var(--duration-normal);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:6px 8px;font-size:12px;display:flex}.sort-mode-item:hover{background:var(--card-highlight)}.sort-mode-item.active{color:var(--accent)}.drop-into{box-shadow:inset 0 0 0 1px var(--accent);border-radius:var(--radius-sm)}.folder-group{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff04;margin:8px 0 4px;padding:3px 4px 5px}.folder-head{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm);text-align:left;background:0 0;border:0;align-items:center;gap:6px;width:100%;padding:6px 8px 4px;font-family:inherit;font-size:10px;font-weight:600;display:flex}.folder-head:hover{color:var(--text)}.folder-head .chev{opacity:.7;width:10px;height:10px;transition:transform var(--duration-fast);align-items:center;display:inline-flex}.folder-head.collapsed .chev{transform:rotate(-90deg)}.folder-head .folder-ico{opacity:.55;align-items:center;width:11px;height:11px;display:inline-flex}.folder-body{flex-direction:column;padding:2px 2px 0;display:flex}.archive-section{margin-top:auto;padding-top:18px}.archive-head{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;opacity:.75;text-align:left;background:0 0;border:0;align-items:center;gap:6px;width:100%;padding:8px 10px 6px;font-family:inherit;font-size:10px;font-weight:600;display:flex}.archive-head:hover{opacity:1;color:var(--text)}.archive-head .chev{width:10px;height:10px;transition:transform var(--duration-fast);align-items:center;display:inline-flex}.archive-head.collapsed .chev{transform:rotate(-90deg)}.archive-head .folder-ico{opacity:.8;align-items:center;width:11px;height:11px;display:inline-flex}.archive-head .folder-count{opacity:.8;margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10.5px}.sidebar-empty{color:var(--muted);text-align:center;padding:12px;font-size:12px}.sidebar-actions{border-top:1px solid var(--border);margin:0 10px 12px;padding-top:12px}.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--text);transition:all var(--duration-normal);justify-content:center;align-items:center;padding:7px 14px;font-family:inherit;font-size:12px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#ff4040}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-secondary{border-color:var(--border);color:var(--muted);background:0 0}.btn-secondary:hover{color:var(--text)}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text);background:var(--bg-hover)}.btn-sm{padding:4px 10px;font-size:11px}.btn-full{width:100%}.content{flex-direction:column;grid-area:3/2;min-height:0;padding:12px 18px 16px 22px;display:flex;overflow:hidden}.content:has(.canvas-wrap){padding:8px 18px 16px 22px}.cscroll-wrap.content-wrapper{grid-row:3}.empty-state{min-height:60vh;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.kanban{grid-template-columns:repeat(5,minmax(240px,340px));gap:12px;width:100%;min-width:0;max-width:1748px;margin-inline:auto;display:grid;overflow-x:auto}.column{background:var(--bg-accent);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;min-height:200px;transition:background var(--duration-normal), border-color var(--duration-normal);flex-direction:column;padding:12px;display:flex}.column.drag-over{border-color:var(--accent);background:#ff5c5c0d}.column-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.column-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text);font-size:12px;font-weight:600}.column-header-right{align-items:center;gap:4px;display:flex}.column-count{background:var(--secondary);border-radius:var(--radius-full);color:var(--muted);padding:2px 8px;font-size:11px;font-weight:600}.column-body{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow-y:auto}.column-empty{color:var(--muted);text-align:center;opacity:.5;padding:24px 0;font-size:12px}.column.column-highlight{animation:1.6s ease-out colFlash}@keyframes colFlash{0%,40%{box-shadow:inset 0 0 0 2px var(--accent)}to{box-shadow:inset 0 0 0 2px #0000}}.task-card.highlighted-from-back,.subtask-card.highlighted-from-back{animation:2s ease-out cardFlash}@keyframes cardFlash{0%,45%{box-shadow:inset 0 0 0 2px var(--accent)}to{box-shadow:inset 0 0 0 2px #0000}}.task-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);overflow-wrap:break-word;word-break:break-word;min-width:0;box-shadow:var(--shadow-sm), inset 0 1px 0 var(--card-highlight);transition:border-color var(--duration-normal), box-shadow var(--duration-normal), opacity var(--duration-normal);cursor:grab;padding:12px;position:relative}.task-card.new-card{animation:rise var(--duration-slow) var(--ease-out) both}.task-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.task-card.dragging{opacity:.4}.task-card.removing{animation:shrink .25s var(--ease-out) forwards}.card-drag-handle{cursor:grab;color:var(--muted);border-radius:var(--radius-sm);touch-action:none;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:none}.card-drag-handle:active{cursor:grabbing}@media (hover:none){.card-drag-handle{opacity:.6;width:40px;height:40px;margin:-12px -6px -12px -10px;display:inline-flex}}.drag-ghost{box-shadow:var(--shadow-lg);opacity:.92;transform:rotate(1.5deg)scale(1.02)}.kanban.is-dragging{scroll-snap-type:none}.task-card.is-blocked{border:1px dashed var(--status-blocked);opacity:.65;background:#ef44440a}.task-card.is-blocked:hover{border-color:var(--status-blocked);box-shadow:none}.subtask-card.is-blocked{border:1px dashed var(--status-blocked);opacity:.65;background:#ef44440a}.subtask-card.is-blocked:hover{border-color:var(--status-blocked);box-shadow:none}.task-card.is-archived{box-shadow:none;cursor:pointer;background:0 0;border-color:#ffffff0a}.task-card.is-archived:hover{box-shadow:none;background:#ffffff05;border-color:#ffffff14}.task-card.is-archived .task-title{color:var(--muted)}.task-card.is-archived .task-id{opacity:.7}.task-card.is-archived .task-meta,.task-card.is-archived .priority-pill-wrap{filter:grayscale();opacity:.7}.task-card.is-archived .priority-pill,.task-card.is-archived .spec-badge,.task-card.is-archived .subtask-add-btn,.task-card.is-archived .delete-btn,.task-card.is-archived .blocked-toggle{pointer-events:none}.task-card.is-archived .card-hover-actions,.task-card.is-archived .card-hover-btn{pointer-events:auto;filter:none}.task-card.is-archived .card-hover-btn{opacity:.6;border-color:var(--border)}.task-card.is-archived .card-hover-btn:hover{opacity:1;color:var(--text);border-color:var(--border-strong);background:#ffffff0f}.task-card.is-archived .card-hover-btn-restore:hover{color:var(--ok);background:var(--ok-subtle);border-color:#22c55e4d}.task-card.is-archived .card-hover-btn-delete:hover{color:var(--danger);background:var(--danger-subtle);border-color:#ef44444d}.blocked-badge{vertical-align:middle;color:var(--status-blocked);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;pointer-events:none;background:#ef444426;border:1px solid #ef44444d;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:700;line-height:1.4;display:inline-block}.blocked-toggle{cursor:pointer;color:var(--muted);opacity:0;border-radius:var(--radius-sm);transition:opacity var(--duration-fast), background var(--duration-fast);background:0 0;border:none;align-items:center;padding:2px 4px;font-size:13px;line-height:1;display:inline-flex}.task-card:hover .blocked-toggle{opacity:.6}.task-card:hover .blocked-toggle:hover{opacity:1;color:var(--status-blocked);background:#ef44441f}.task-card.is-blocked .blocked-toggle{opacity:1;color:var(--status-blocked)}.archive-toggle{cursor:pointer;color:var(--muted);border-radius:var(--radius-sm);transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:none;align-items:center;gap:3px;padding:2px 6px;font-size:11px;display:inline-flex}.archive-toggle:hover{color:var(--text);background:#ffffff0f}.archive-toggle.active{color:var(--text)}.restore-btn{align-items:center;gap:3px;display:inline-flex}.restore-btn svg{flex-shrink:0}.archive-btn{cursor:pointer;color:var(--muted);opacity:0;border-radius:var(--radius-sm);transition:opacity var(--duration-fast), background var(--duration-fast);background:0 0;border:none;align-items:center;padding:2px 4px;font-size:13px;line-height:1;display:inline-flex}.task-card:hover .archive-btn{opacity:.6}.task-card:hover .archive-btn:hover{opacity:1;color:var(--text);background:#ffffff14}.archive-group{opacity:.35}.archive-divider{border:none;border-top:1px dashed var(--border);opacity:.5;margin:6px 0}.task-id{color:var(--muted);align-items:center;gap:6px;margin-bottom:4px;font-size:11px;display:flex}.task-id[data-action]{cursor:pointer}.task-id[data-action]:hover{color:var(--text);text-decoration:underline}.agent-id-badge{color:var(--accent-2);opacity:.8;font-size:10px;font-weight:600}.stale-warning{color:var(--warn);cursor:help;align-items:center;animation:2s ease-in-out infinite stale-pulse;display:inline-flex}@keyframes stale-pulse{0%{opacity:.4;transform:scale(.95)}50%{opacity:1;transform:scale(1.1)}to{opacity:.4;transform:scale(.95)}}.task-card.is-stale{border-left:3px solid var(--warn)}.task-title{color:var(--text);cursor:pointer;margin-bottom:8px;font-size:13px;font-weight:500;line-height:1.4}.task-title-input{color:var(--text);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;width:100%;margin-bottom:8px;padding:4px 6px;font-family:inherit;font-size:13px;font-weight:500}.task-title-input:focus{border-color:var(--accent)}.task-meta{justify-content:space-between;align-items:center;display:flex}.spec-badge{cursor:pointer;border-radius:var(--radius-sm);width:26px;height:26px;color:var(--accent);background:var(--accent-subtle);transition:all var(--duration-fast);border:1px solid #ff5c5c33;justify-content:center;align-items:center;display:inline-flex}.spec-badge:hover{background:#ff5c5c40;border-color:#ff5c5c66}.spec-badge-add{opacity:0;color:var(--muted);background:0 0;border:1px solid #0000}.task-card:hover .spec-badge-add{opacity:.5;border-color:var(--border)}.task-card:hover .spec-badge-add:hover{opacity:1;color:var(--text);border-color:var(--border-strong);background:#ffffff0f}.task-meta-actions{align-items:center;gap:4px;display:flex}.subtask-add-btn{cursor:pointer;border-radius:var(--radius-sm);opacity:0;width:26px;height:26px;color:var(--muted);transition:all var(--duration-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.task-card:hover .subtask-add-btn{opacity:.5;border-color:var(--border)}.task-card:hover .subtask-add-btn:hover{opacity:1;color:var(--text);border-color:var(--border-strong);background:#ffffff0f}.add-subtask-form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-left:0;padding:8px 12px;position:relative}.subtask-container .add-subtask-form:before{content:"";background:var(--tree-line);pointer-events:none;width:1.5px;position:absolute;top:-4px;bottom:50%;left:-15px}.subtask-container .add-subtask-form:after{content:"";background:var(--tree-line);width:10px;height:1.5px;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.subtask-container .add-subtask-form .tree-dot-form{background:var(--tree-line);pointer-events:none;border-radius:50%;width:5px;height:5px;position:absolute;top:50%;left:-6px;transform:translateY(-50%)}.add-subtask-form .subtask-input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);outline:none;padding:6px 8px;font-family:inherit;font-size:12px}.add-subtask-form .subtask-input:focus{border-color:var(--accent)}.priority-pill{border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-normal);padding:4px 10px;font-size:11px;font-weight:500;display:inline-flex}.priority-high{color:var(--danger);border:1px solid var(--danger-border);background:var(--danger-subtle)}.priority-medium{color:var(--warn);border:1px solid var(--warn-border);background:var(--warn-subtle)}.priority-low{color:var(--ok);border:1px solid var(--ok-border);background:var(--ok-subtle)}.priority-popover{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);z-index:1200;width:max-content;animation:popIn var(--duration-fast) var(--ease-out);flex-flow:row;gap:4px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 12px 28px #00000059,0 0 0 1px #ffffff08}.priority-popover .priority-pill{opacity:.5;transition:opacity var(--duration-fast);white-space:nowrap}.priority-popover .priority-pill:hover,.priority-popover .priority-pill.current{opacity:1}.priority-pill-wrap{position:relative}@keyframes popIn{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.delete-btn{opacity:0;cursor:pointer;width:24px;height:24px;color:var(--muted);border-radius:var(--radius-sm);transition:all var(--duration-normal);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.task-card:hover .delete-btn{opacity:1}.file-preview-actions .delete-btn{opacity:.6}.file-preview-actions .delete-btn:hover{opacity:1}.delete-btn:hover{color:var(--danger);background:var(--danger-subtle)}.trash-toolbar-btn{color:var(--muted);position:relative}.trash-toolbar-btn:hover{color:var(--danger)}.trash-toolbar-count{background:var(--danger-subtle);min-width:16px;height:16px;color:var(--danger);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.card-hover-actions{align-items:center;gap:4px;display:inline-flex}.card-hover-btn{cursor:pointer;border-radius:var(--radius-sm);opacity:0;width:26px;height:26px;color:var(--muted);transition:all var(--duration-fast);pointer-events:none;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.task-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.task-card:focus-within .card-hover-btn,.task-card:hover .card-hover-btn,.card-hover-btn:focus-visible{opacity:.5;border-color:var(--border);pointer-events:auto}@media (hover:none){.card-hover-btn{opacity:.5;border-color:var(--border);pointer-events:auto}}.task-card:hover .card-hover-btn:hover{opacity:1;color:var(--text);border-color:var(--border-strong);background:#ffffff0f}.task-card:hover .card-hover-btn-delete:hover{color:var(--danger);background:var(--danger-subtle);border-color:#ef44444d}.task-card:hover .card-hover-btn-archive:hover{color:var(--warn);background:var(--warn-subtle);border-color:#f59e0b4d}.subtask-progress{border-top:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}.expand-chevron{color:var(--muted);transition:transform var(--duration-fast);flex-shrink:0;width:12px;font-size:10px}.expand-chevron.expanded{transform:rotate(90deg)}.progress-bar{background:var(--secondary);border-radius:2px;flex:1;height:4px;display:flex;overflow:hidden}.progress-done{background:var(--status-done);height:100%;transition:width var(--duration-normal)}.progress-review{background:var(--status-review);height:100%;transition:width var(--duration-normal)}.progress-active{background:var(--status-in-progress);height:100%;transition:width var(--duration-normal)}.progress-text{color:var(--muted);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:10px}.subtask-container{flex-direction:column;gap:4px;margin-top:4px;margin-left:10px;padding-left:22px;display:flex;position:relative}.subtask-card:before{content:"";background:var(--tree-line);pointer-events:none;width:1.5px;position:absolute;top:-4px;bottom:0;left:-15px}.subtask-card:last-child:before{bottom:50%}.subtask-card{background:var(--bg-accent);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:34px;transition:background var(--duration-normal);flex-direction:column;align-items:stretch;gap:4px;padding:7px 10px;display:flex;position:relative}.subtask-card:hover{background:var(--bg-hover)}.subtask-card-row{align-items:center;gap:8px;min-height:20px;display:flex;position:relative}.subtask-card-blocked{align-items:center;padding-left:28px;display:flex}.subtask-card-row:after{content:"";background:var(--tree-line);width:10px;height:1.5px;position:absolute;top:50%;left:-24px;transform:translateY(-50%)}.tree-dot{background:var(--tree-line);pointer-events:none;border-radius:50%;width:5px;height:5px;position:absolute;top:50%;left:-16px;transform:translateY(-50%)}.subtask-card .subtask-title{min-width:0;color:var(--text);word-break:break-word;flex:1;font-size:12px;line-height:1.4}.subtask-title-input{min-width:0;color:var(--text);background:var(--bg);border:1px solid var(--accent);resize:none;border-radius:3px;outline:none;flex:1;padding:2px 6px;font-family:inherit;font-size:12px;line-height:1.4;overflow:hidden}.subtask-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.subtask-card.editing{align-items:flex-start}.subtask-card.editing .subtask-actions{display:none}.subtask-card.editing .subtask-title-input{flex:1}.status-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.status-dot-done{background:var(--status-done)}.status-dot-in-progress{background:var(--status-in-progress)}.status-dot-open{background:var(--status-open)}.status-dot-review{background:var(--status-review)}.status-dot-backlog{background:var(--status-backlog)}.status-dot-wrap{border-radius:var(--radius-sm);cursor:pointer;width:20px;height:20px;transition:background var(--duration-fast);justify-content:center;align-items:center;display:inline-flex;position:relative}.status-dot-wrap:hover{background:#ffffff14}.status-popover{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);z-index:100;width:max-content;animation:popIn var(--duration-fast) var(--ease-out);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 12px 28px #00000059,0 0 0 1px #ffffff08}.status-option{border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast);align-items:center;gap:8px;padding:5px 10px;font-size:11px;display:flex}.status-option:hover{background:var(--bg-hover);color:var(--text)}.status-option.current{color:var(--text-strong)}.spec-badge-sm{width:22px;height:22px}.spec-badge-sm svg{width:12px;height:12px}.subtask-card .spec-badge-add{opacity:0}.subtask-card:hover .spec-badge-add{opacity:.5}.subtask-card:hover .spec-badge-add:hover{opacity:1;color:var(--text);border-color:var(--border-strong);background:#ffffff0f}.subtask-card .delete-btn{opacity:0;width:20px;height:20px}.subtask-card:hover .delete-btn{opacity:.6}.subtask-card:hover .delete-btn:hover{opacity:1}.add-task-btn{border:1px dashed var(--border-strong);border-radius:var(--radius-md);text-align:center;color:var(--muted);cursor:pointer;transition:all var(--duration-normal);background:0 0;width:100%;padding:12px;font-family:inherit;font-size:12px}.add-task-btn:hover{border-color:var(--accent);color:var(--accent)}.add-task-form{background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:12px}.add-task-form input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);outline:none;margin-bottom:10px;padding:8px 10px;font-family:inherit;font-size:13px}.add-task-form input:focus{border-color:var(--accent)}.priority-selector{gap:6px;margin-bottom:10px;display:flex}.priority-option{border-radius:var(--radius-full);cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--muted);transition:all var(--duration-normal);padding:4px 10px;font-family:inherit;font-size:11px;font-weight:500}.priority-option.selected{color:var(--text-strong)}.priority-option[data-p=high].selected{color:var(--danger);border-color:var(--danger-border);background:var(--danger-subtle)}.priority-option[data-p=medium].selected{color:var(--warn);border-color:var(--warn-border);background:var(--warn-subtle)}.priority-option[data-p=low].selected{color:var(--ok);border-color:var(--ok-border);background:var(--ok-subtle)}.form-actions{gap:8px;display:flex}.toast-container{z-index:900;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--text);border-left:3px solid var(--info);min-width:200px;animation:slideUp .25s var(--ease-out);padding:10px 16px;font-size:12px}.toast.success{border-left-color:var(--ok)}.toast.error{border-left-color:var(--danger)}.toast.info{border-left-color:var(--info)}.toast.warn{border-left-color:#f0ad4e}.toast.loading{border-left-color:var(--accent);align-items:center;gap:8px;display:flex}.toast.removing{animation:slideDown .2s var(--ease-out) forwards}.toast-spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:90%;max-width:360px;box-shadow:var(--shadow-lg);animation:modalIn .2s var(--ease-out);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);padding:24px;overflow-y:auto}.modal-title{color:var(--text-strong);margin-bottom:8px;font-size:15px;font-weight:600}.modal-body{color:var(--muted);margin-bottom:20px;font-size:13px;line-height:1.5}.modal-options{flex-direction:column;gap:8px;margin-top:12px;display:flex}.modal-checkbox{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:13px;display:flex}.modal-checkbox input[type=checkbox]{display:none}.modal-checkbox .check-box{border:1.5px solid var(--border-strong);background:var(--bg);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:background .15s,border-color .15s;display:flex}.modal-checkbox .check-box svg{opacity:0;transition:opacity .15s}.modal-checkbox input:checked+.check-box{background:var(--accent);border-color:var(--accent)}.modal-checkbox input:checked+.check-box svg{opacity:1}.modal-actions{justify-content:flex-end;gap:8px;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shrink{to{opacity:0;border:0;height:0;margin:0;padding:0;overflow:hidden;transform:scale(.95)translateY(-4px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{to{opacity:0;transform:translateY(10px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.tab-bar{background:var(--bg);grid-area:2/2;align-items:center;gap:4px;padding:12px 22px 0;display:flex}.tab-bar-spacer{flex:1}.tab{color:var(--text);cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-full);transition:all var(--duration-normal);background:var(--card);align-items:center;gap:6px;padding:6px 16px;font-family:inherit;font-size:12px;font-weight:500;display:flex}.tab:hover{background:var(--bg-hover);border-color:var(--border-strong)}.tab.active{color:#fff;background:var(--accent);border-color:var(--accent)}.tab.active:hover{background:#ff4040}.tab-icon{font-size:13px}.file-explorer{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:260px 1fr;gap:0;width:100%;max-width:1500px;height:100%;min-height:0;margin-inline:auto;display:grid;overflow:hidden}.file-tree{border-right:1px solid var(--border);background:var(--bg-accent);flex-direction:column;padding:12px 0;display:flex;position:relative;overflow:hidden}.file-tree-items{flex:1;overflow-y:auto}.file-upload-area{border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;align-items:stretch;gap:6px;padding:12px 14px;display:flex}.file-upload-area.drag-over{background:var(--bg-hover);border:2px dashed var(--accent);border-radius:6px;justify-content:center;margin:8px;padding:24px 14px}.file-upload-btn{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;width:100%;padding:6px 12px;font-size:12px;transition:all .15s;display:inline-flex}.file-upload-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.file-upload-btn:disabled{opacity:.5;cursor:not-allowed}.file-upload-hint{color:var(--muted);font-size:11px}.file-tree-footer{border-top:1px solid var(--border);color:var(--muted);padding:12px 14px;font-size:11px}.tree-item{color:var(--text);cursor:pointer;transition:all var(--duration-normal);-webkit-user-select:none;user-select:none;border-left:2px solid #0000;align-items:center;gap:8px;padding:6px 14px;font-size:13px;display:flex}.tree-item:hover{background:var(--bg-hover)}.tree-item.is-hidden{opacity:.55}.tree-item.is-hidden.selected{opacity:1}.tree-item.selected{background:var(--accent-subtle);border-left-color:var(--accent);color:var(--text-strong)}.tree-item.directory{color:var(--muted);font-weight:500}.tree-item.directory:hover{color:var(--text)}.tree-indent{display:inline-block}.tree-icon{text-align:center;flex-shrink:0;width:18px;font-size:14px}.tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tree-meta{color:var(--muted);flex-shrink:0;font-size:10px}.tree-badge{border-radius:50%;flex-shrink:0;width:6px;height:6px}.tree-badge.always{background:var(--ok)}.tree-badge.lazy{background:var(--warn)}.tree-badge.optional{background:var(--info)}.file-preview{background:var(--card);flex-direction:column;display:flex;position:relative;overflow:hidden}.file-preview.editing .file-preview-body{overflow:hidden}.file-back-btn{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;transition:all var(--duration-normal);background:0 0;align-items:center;gap:4px;margin-right:8px;padding:4px 10px;font-family:inherit;font-size:13px;display:flex}.file-back-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.file-back-to-list{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;transition:all var(--duration-normal);background:0 0;align-items:center;gap:4px;margin-right:8px;padding:4px 10px;font-family:inherit;font-size:13px;display:none}.file-back-to-list:hover{border-color:var(--border-strong);background:var(--bg-hover)}.file-preview-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 18px;display:flex}.file-preview-info{align-items:center;gap:10px;font-size:13px;display:flex}.file-preview-name{color:var(--text-strong);font-weight:600}.file-preview-size{color:var(--muted);font-size:11px}.file-preview-badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;font-size:10px;font-weight:500;display:inline-flex}.file-preview-badge.always{color:var(--ok);border:1px solid var(--ok-border);background:var(--ok-subtle)}.file-preview-badge.lazy{color:var(--warn);border:1px solid var(--warn-border);background:var(--warn-subtle)}.file-preview-badge.optional{color:var(--info);background:var(--info-subtle);border:1px solid #3b82f659}.file-preview-actions{gap:6px;display:flex}.file-conflict-banner{border-bottom:1px solid var(--warn-border);background:var(--warn-subtle);color:var(--text);flex-shrink:0;align-items:center;gap:8px;padding:8px 18px;font-size:12px;display:flex}.file-conflict-banner span{color:var(--text-strong);flex:1}.file-preview-body{flex:1;padding:18px 24px;overflow-y:auto}.file-preview-empty{height:100%;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.md-content{color:var(--text);line-height:1.65}.md-content h1{color:var(--text-strong);border-bottom:1px solid var(--border);margin:0 0 16px;padding-bottom:8px;font-size:22px;font-weight:700}.md-content h2{color:var(--text-strong);margin:24px 0 10px;font-size:17px;font-weight:600}.md-content h3{color:var(--text-strong);margin:18px 0 8px;font-size:14px;font-weight:600}.md-content h4{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:14px 0 6px;font-size:13px;font-weight:600}.md-content p{margin:0 0 12px}.md-content a{color:var(--accent);text-decoration:none}.md-content a:hover{text-decoration:underline}.md-content strong{color:var(--text-strong);font-weight:600}.md-content em{font-style:italic}.md-content ul,.md-content ol{margin:0 0 12px;padding-left:24px}.md-content li{margin:4px 0}.md-content li::marker{color:var(--muted)}.md-content blockquote{border-left:3px solid var(--accent);background:var(--accent-subtle);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text);margin:0 0 12px;padding:8px 16px;font-size:13px}.md-content code{background:var(--bg-elevated);color:var(--accent);border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:12px}.md-content pre{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);margin:0 0 14px;padding:14px 16px;overflow-x:auto}.md-content pre code{color:var(--text);background:0 0;padding:0;font-size:12px;line-height:1.5}.md-content table{border-collapse:collapse;width:100%;margin:0 0 14px;font-size:13px}.md-content th{text-align:left;border-bottom:2px solid var(--border);color:var(--text-strong);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;font-size:11px;font-weight:600}.md-content td{border-bottom:1px solid var(--border);padding:6px 12px}.md-content tr:hover td{background:var(--bg-hover)}.md-content hr{border:none;border-top:1px solid var(--border);margin:20px 0}.md-content img{border-radius:var(--radius-md);max-width:100%}.json-content{white-space:pre-wrap;color:var(--text);font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.5}.json-key{color:var(--accent)}.json-string{color:var(--ok)}.json-number{color:var(--info)}.json-bool{color:var(--warn)}.json-null{color:var(--muted)}.file-editor,.markdown-editor{resize:none;background:var(--bg);width:100%;height:100%;color:var(--text);border:none;outline:none;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.6;overflow-y:auto}.markdown-editor{flex-direction:column;display:flex;overflow:hidden}.file-editor{padding:18px 24px}.file-editor:focus,.markdown-editor:focus{outline:none}.markdown-editor-toolbar{border-bottom:1px solid var(--border);background:var(--bg-elevated);flex:none;align-items:center;gap:4px;padding:7px 10px;display:flex}.markdown-editor-tool{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--muted);cursor:pointer;transition:background var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.markdown-editor-tool:hover{color:var(--text);background:var(--bg-hover);border-color:var(--border)}.markdown-editor-tool:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.markdown-editor-body{flex:auto;min-height:0}.markdown-editor-body>div{height:100%}.markdown-editor .cm-editor{background:var(--bg);height:100%}.unsaved-dot{background:var(--warn);border-radius:50%;width:8px;height:8px;margin-left:6px;display:inline-block}@media (width<=900px){.app{grid-template-columns:0 1fr}.file-explorer{grid-template-columns:minmax(132px,38%) minmax(0,1fr);height:100%;display:grid;overflow:hidden}.file-explorer .file-tree,.file-explorer .file-preview{flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}.file-upload-area{padding:8px 10px}.file-upload-hint{display:none}.file-upload-btn{padding:6px 8px;font-size:11px}.file-back-btn{display:flex}.file-preview-header{flex-wrap:wrap;gap:4px;padding:8px 12px}.file-back-btn{order:0}.file-preview-actions{order:1;margin-left:auto}.file-preview-info{flex:100%;order:2}.file-preview-name{font-size:12px}.file-preview-size{display:none}.file-preview-badge{font-size:9px}.sidebar{z-index:200;opacity:1;pointer-events:none;width:260px;box-shadow:none;transition:transform .25s,box-shadow .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app:not(.sidebar-collapsed) .sidebar{pointer-events:auto;transform:translate(0);box-shadow:4px 0 20px #0000004d}.sidebar-backdrop{z-index:199;background:#0006;display:none;position:fixed;inset:0}.app:not(.sidebar-collapsed) .sidebar-backdrop{display:block}.content,.cscroll-wrap.content-wrapper,.tab-bar{grid-column:1/-1}.cscroll-wrap>.cscroll-inner{overflow-x:auto}.cscroll-wrap.content-wrapper>.cscroll-track{display:none}.kanban{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:10px;height:100%;padding:0 12px 16px;overflow-x:auto;flex-direction:row!important;display:flex!important}.column{scroll-snap-align:start;flex-shrink:0;width:300px;min-width:300px;max-width:300px;height:100%;overflow-y:auto}}@media (width<=600px){.content,.cscroll-wrap.content-wrapper,.tab-bar{grid-column:1/-1}.file-explorer{grid-template-columns:1fr}.file-explorer[data-view=preview] .file-tree,.file-explorer[data-view=list] .file-preview{display:none}.file-explorer .file-tree{border-right:none}.file-back-to-list{order:0;display:inline-flex}.column{min-width:82vw;max-width:82vw}.task-card{min-height:44px;padding:12px 14px}.task-card .task-actions,.task-card .delete-btn{opacity:1}.task-card .spec-badge-add,.subtask-card .spec-badge-add{opacity:.5}.header{padding:calc(8px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-right,0px)) 8px calc(12px + env(safe-area-inset-left,0px))}.header-logo{display:none}.sidebar-toggle{width:36px;height:36px;font-size:18px}}.canvas-wrap{background:var(--bg);cursor:default;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:relative;overflow:hidden}.canvas-viewport{transform-origin:0 0;width:100%;height:100%;position:absolute;top:0;left:0}.canvas-svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.canvas-svg .conn-line{stroke:var(--border-strong);stroke-width:2px;fill:none;cursor:pointer;pointer-events:stroke}.canvas-svg .conn-line:hover{stroke:var(--accent)}.canvas-svg .conn-line-temp{stroke:var(--muted);stroke-width:2px;stroke-dasharray:6 4;fill:none;pointer-events:none}.canvas-empty{color:var(--muted);pointer-events:none;text-align:center;flex-direction:column;align-items:center;gap:12px;font-size:14px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.canvas-empty-icon{opacity:.4;font-size:32px}.canvas-toolbar{z-index:10;gap:6px;display:flex;position:absolute;top:12px;right:12px}.note{border-radius:var(--radius-md);border:1px solid var(--border);width:160px;box-shadow:var(--shadow-md);transition:box-shadow var(--duration-normal);border-left-width:4px;flex-direction:column;display:flex;position:absolute}.note:hover{box-shadow:var(--shadow-lg)}.note.selected{outline:2px solid var(--accent);outline-offset:2px}.note.color-yellow{background:var(--hue-6-canvas);border-left-color:var(--hue-6-ring)}.note.color-blue{background:var(--hue-3-canvas);border-left-color:var(--hue-3-ring)}.note.color-green{background:var(--hue-4-canvas);border-left-color:var(--hue-4-ring)}.note.color-red{background:var(--hue-5-canvas);border-left-color:var(--hue-5-ring)}.note.color-teal{background:var(--hue-2-canvas);border-left-color:var(--hue-2-ring)}.note-header{cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;height:28px;padding:5px 6px 5px 8px;display:flex}.note-header:active{cursor:grabbing}.note-color-dot{cursor:pointer;width:12px;height:12px;transition:transform var(--duration-normal);border-radius:50%;flex-shrink:0}.note-color-dot:hover{transform:scale(1.2)}.note.color-yellow .note-color-dot{background:var(--hue-6-ring)}.note.color-blue .note-color-dot{background:var(--hue-3-ring)}.note.color-green .note-color-dot{background:var(--hue-4-ring)}.note.color-red .note-color-dot{background:var(--hue-5-ring)}.note.color-teal .note-color-dot{background:var(--hue-2-ring)}.note-id{color:var(--muted);opacity:.5;flex:1;margin-left:4px;font-family:JetBrains Mono,monospace;font-size:9px}.note-body{cursor:grab;flex:1;min-height:40px;padding:4px 10px 8px}.note-text{color:var(--text);white-space:pre-wrap;word-break:break-word;min-height:20px;font-size:12px;line-height:1.5}.note-text.md-content p{margin:0}.note-text.md-content br{content:"";display:block}.note-text.md-content ul{margin:2px 0;padding-left:14px}.note-text.md-content li{margin:1px 0}.note-textarea{width:100%;height:100%;min-height:60px;color:var(--text);resize:none;background:0 0;border:none;outline:none;font-family:inherit;font-size:12px;line-height:1.5;display:block}.note.editing .note-body{cursor:text!important;max-height:none!important;padding-bottom:0!important;overflow:visible!important}.note.editing .note-body:after,.note.editing .note-body:before{display:none!important}.note.editing .note-textarea{box-sizing:border-box!important;width:100%!important;min-height:60px!important;padding-bottom:10px!important;display:block!important}.note .delete-btn{opacity:0;width:18px;height:18px}.note:hover .delete-btn,.note.selected .delete-btn{opacity:.5}.note .delete-btn:hover{opacity:1!important}.conn-dot{background:var(--accent);box-sizing:border-box;cursor:crosshair;z-index:5;width:8px;height:8px;transition:opacity var(--duration-normal), transform var(--duration-normal);opacity:0;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.conn-dot:hover{transform:translate(-50%,-50%)scale(1.5)}.conn-dot:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.canvas-promote-btn{background:var(--accent);color:#fff;border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--shadow-md);transition:background var(--duration-normal);z-index:10;white-space:nowrap;border:none;align-items:center;gap:4px;padding:5px 12px;font-family:inherit;font-size:11px;font-weight:600;display:flex;position:absolute}.canvas-promote-btn:hover{background:#ff4040}.color-popover{z-index:200;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:popIn var(--duration-normal) var(--ease-out);gap:6px;padding:8px;display:flex;position:absolute}.color-swatch{cursor:pointer;width:18px;height:18px;transition:transform var(--duration-normal), border-color var(--duration-normal);border:2px solid #0000;border-radius:50%}.color-swatch:hover{transform:scale(1.2)}.color-swatch.selected{border-color:var(--text-strong)}.color-swatch-yellow{background:var(--hue-6-ring)}.color-swatch-blue{background:var(--hue-3-ring)}.color-swatch-green{background:var(--hue-4-ring)}.color-swatch-red{background:var(--hue-5-ring)}.color-swatch-teal{background:var(--hue-2-ring)}.color-swatch-grey{background:var(--hue-1-ring)}.canvas-lasso{border:1px dashed var(--accent);background:var(--accent-subtle);pointer-events:none;z-index:5;display:none;position:absolute}@media (width<=600px){.conn-dot{box-sizing:border-box;width:12px;height:12px}}.task-card-click-area{cursor:pointer;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.task-card-click-area:hover{background:var(--bg-hover)}.task-card-click-area [data-action]{z-index:2;position:relative}.migration-chip{background:var(--warn-subtle);border-radius:var(--radius-sm);color:var(--warn);cursor:pointer;letter-spacing:.02em;transition:all var(--duration-fast);border:1px solid #f59e0b59;align-items:center;gap:7px;padding:5px 11px 5px 9px;font-family:inherit;font-size:11.5px;font-weight:600;display:inline-flex}.migration-chip:hover{background:#f59e0b2e;border-color:#f59e0b8c}.migration-chip.migration-chip-info{color:var(--accent-2);background:#14b8a61f;border:1px solid #14b8a659}.migration-chip.migration-chip-info:hover{background:#14b8a633;border-color:#14b8a68c}.migration-chip-icon{display:flex}.migration-chip-icon svg{width:13px;height:13px}.header-divider{background:var(--border);width:1px;height:20px}.snippet-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overscroll-behavior:contain;background:#0009;justify-content:center;align-items:center;padding:24px;animation:.18s ease-out snippetFadeIn;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes snippetFadeIn{0%{opacity:0}to{opacity:1}}@keyframes snippetModalIn{0%{opacity:0;transform:scale(.97)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.upgrade-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:1080px;height:100%;max-height:720px;animation:snippetModalIn .22s var(--ease-out);grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);display:grid;overflow:hidden}.upgrade-modal .modal-header-left{flex:auto;min-width:0}.upgrade-modal .modal-header-left>*{min-width:0}.upgrade-modal .modal-title,.upgrade-modal .modal-subtitle,.upgrade-modal .footer-hint{overflow-wrap:anywhere;word-break:break-word}.upgrade-modal .footer-left{flex-wrap:wrap;min-width:0}.upgrade-modal .modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin:0;padding:16px 20px;display:flex}.upgrade-modal .modal-header-left{align-items:center;gap:12px;display:flex}.upgrade-modal .modal-header-icon{border-radius:var(--radius-sm);background:var(--accent-subtle);width:32px;height:32px;color:var(--accent);justify-content:center;align-items:center;display:flex}.upgrade-modal .modal-header-icon svg{width:16px;height:16px}.upgrade-modal .modal-title{color:var(--text-strong);letter-spacing:.01em;font-size:15px;font-weight:600}.upgrade-modal .modal-subtitle{color:var(--muted);margin-top:2px;font-size:11px}.upgrade-modal .modal-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:all var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.upgrade-modal .modal-close:hover{color:var(--text);background:var(--bg-hover)}.upgrade-modal .modal-close svg{width:16px;height:16px}.upgrade-modal .modal-body-wrap{min-height:0}.upgrade-modal .modal-body-wrap>.modal-body-v2{overscroll-behavior:contain;background:var(--bg);flex-direction:column;gap:18px;min-height:0;margin:0;padding:14px 18px 18px;display:flex}.upgrade-modal .group{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-md);flex-shrink:0;overflow:hidden}.upgrade-modal .group-header{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;display:grid}.upgrade-modal .group-header.group-header-v2{background:var(--bg-accent);border-bottom:1px solid var(--border);grid-template-columns:auto auto minmax(0,1fr)}.upgrade-modal .group-header-text{min-width:0}.upgrade-modal .group-title{color:var(--text-strong);letter-spacing:.02em;font-size:12px;font-weight:600}.upgrade-modal .group-sub{color:var(--muted);margin-top:2px;font-size:11px}.upgrade-modal .group-header-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:22px;height:22px;display:flex}.upgrade-modal .group-header-icon.warn{background:var(--warn-subtle);color:var(--warn)}.upgrade-modal .group-header-icon.info{color:var(--accent-2);background:#14b8a61f}.upgrade-modal .group-header-icon.ok{background:var(--ok-subtle);color:var(--ok)}.upgrade-modal .cb-button{cursor:pointer;font:inherit;color:inherit;appearance:none;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.upgrade-modal .cb-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.upgrade-modal .cb-button[aria-pressed=true] .checkbox-box,.upgrade-modal .cb-button[aria-pressed=mixed] .checkbox-box{background:var(--accent);border-color:var(--accent)}.upgrade-modal .group-body{flex-direction:column;display:flex}.upgrade-modal .group-checkbox,.upgrade-modal .file-row-checkbox{cursor:pointer;align-items:center;display:inline-flex;position:relative}.upgrade-modal .group-checkbox input,.upgrade-modal .file-row-checkbox input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.upgrade-modal .checkbox-box{border:1.5px solid var(--border-strong);background:var(--bg);color:#fff;width:16px;height:16px;transition:all var(--duration-fast);border-radius:4px;justify-content:center;align-items:center;display:flex}.upgrade-modal .group-checkbox input:checked+.checkbox-box,.upgrade-modal .file-row-checkbox input:checked+.checkbox-box{background:var(--accent);border-color:var(--accent)}.upgrade-modal .checkbox-dash{background:#fff;border-radius:1px;width:8px;height:2px}.upgrade-modal .group-checkbox.indeterminate .checkbox-box{background:var(--accent);border-color:var(--accent)}.upgrade-modal .file-row+.file-row{border-top:1px solid var(--border)}.upgrade-modal .file-row-main{cursor:pointer;transition:background var(--duration-fast);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 14px;display:grid}.upgrade-modal .file-row-main:hover{background:var(--bg-hover)}.upgrade-modal .file-row.expanded .file-row-main{background:var(--bg-hover);z-index:2;box-shadow:0 1px 0 var(--border);position:sticky;top:0}.upgrade-modal .file-row.upgraded .file-row-main{opacity:.55}.upgrade-modal .file-row-marker{justify-content:center;align-items:center;width:16px;height:16px;display:flex}.upgrade-modal .file-row-marker.warn{color:var(--warn)}.upgrade-modal .file-row-text{min-width:0}.upgrade-modal .file-row-path{color:var(--text-strong);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.upgrade-modal .file-row-bytes{color:var(--muted);background:var(--bg-accent);border:1px solid var(--border);border-radius:var(--radius-full);letter-spacing:.02em;padding:1px 6px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.upgrade-modal .file-row-summary{color:var(--muted);margin-top:3px;font-size:11.5px;line-height:1.5}.upgrade-modal .file-row-toggle{border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-fast);white-space:nowrap;background:0 0;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:11px;display:inline-flex}.upgrade-modal .file-row-toggle:hover{color:var(--text);border-color:var(--border-strong);background:var(--bg-accent)}.upgrade-modal .file-row-toggle svg{transition:transform var(--duration-fast)}.upgrade-modal .file-row-toggle svg.rot{transform:rotate(90deg)}.upgrade-modal .file-row-detail{background:var(--bg-accent);border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 14px 14px 42px;display:flex}.upgrade-modal .chip{border-radius:var(--radius-full);letter-spacing:.03em;border:1px solid #0000;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:500;display:inline-flex}.upgrade-modal .chip.ok{color:var(--ok);background:var(--ok-subtle);border-color:#22c55e59}.upgrade-modal .chip.warn{color:var(--warn);background:var(--warn-subtle);border-color:#f59e0b59}.upgrade-modal .diff{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;line-height:1.55;display:flex;overflow:hidden}.upgrade-modal .diff-body{padding:6px 0}.upgrade-modal .diff-line{-moz-column-gap:8px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;color:var(--text);grid-template-columns:14px 32px minmax(0,1fr);align-items:start;column-gap:8px;padding:1px 12px;display:grid}.upgrade-modal .diff-sigil{text-align:center;-webkit-user-select:none;user-select:none;opacity:.8;font-weight:700}.upgrade-modal .diff-ln{color:var(--muted);opacity:.7;text-align:right;-webkit-user-select:none;user-select:none}.upgrade-modal .diff-text{min-width:0}.upgrade-modal .diff-line.add{background:#22c55e14}.upgrade-modal .diff-line.add .diff-sigil{color:var(--ok);opacity:1}.upgrade-modal .diff-line.del{background:#ef444414}.upgrade-modal .diff-line.del .diff-sigil{color:var(--danger);opacity:1}.upgrade-modal .diff-line.conflict{background:#f59e0b1a}.upgrade-modal .diff-line.conflict .diff-sigil{color:var(--warn);opacity:1}.upgrade-modal .diff-line.ctx{color:var(--muted)}.upgrade-modal .diff-line.ctx .diff-sigil{color:var(--muted);opacity:.35}.upgrade-modal .diff-line.hunk{color:var(--muted);background:var(--bg-accent);border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:1fr;margin:4px 0;padding:4px 12px;font-size:10px}.upgrade-modal .modal-footer{background:var(--bg-elevated);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.upgrade-modal .footer-left{color:var(--muted);align-items:center;gap:10px;min-width:0;font-size:11.5px;display:flex}.upgrade-modal .footer-hint{color:var(--muted)}.upgrade-modal .footer-status{align-items:center;gap:6px;font-weight:500;display:inline-flex}.upgrade-modal .footer-status.ok{color:var(--ok)}.upgrade-modal .footer-actions{gap:8px;display:flex}@media (width<=640px){.snippet-modal-overlay{height:100dvh;padding:8px}.upgrade-modal{border-radius:var(--radius-md);max-width:100%;max-height:100dvh}.upgrade-modal .modal-header{padding:12px 14px}.upgrade-modal .modal-title{font-size:14px}.upgrade-modal .modal-subtitle{font-size:10.5px}.upgrade-modal .modal-body-v2{gap:12px;padding:10px 10px 14px}.upgrade-modal .group-header{padding:10px 12px}.upgrade-modal .file-row-main{gap:10px;padding:10px 12px}.upgrade-modal .file-row-detail{padding-left:14px;padding-right:12px}.upgrade-modal .file-row-toggle{gap:0;padding:4px 6px}.upgrade-modal .file-row-toggle>span{display:none}.upgrade-modal .modal-footer{flex-direction:column;align-items:stretch;gap:8px;padding:10px 14px 12px}.upgrade-modal .footer-left{order:-1;font-size:11px;line-height:1.4}.upgrade-modal .footer-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.upgrade-modal .footer-actions>.btn{width:100%}.upgrade-modal .diff-line{padding:1px 10px;font-size:11px}}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{border-style:solid;border-width:0;border-color:var(--border)}button{font:inherit;color:inherit;background:0 0}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-6{bottom:1.5rem}.left-3{left:.75rem}.right-0{right:0}.right-2{right:.5rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[1500\]{z-index:1500}.z-\[1600\]{z-index:1600}.z-\[1700\]{z-index:1700}.z-\[1800\]{z-index:1800}.z-\[1900\]{z-index:1900}.z-\[2000\]{z-index:2000}.col-span-2{grid-column:span 2/span 2}.m-0{margin:0}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mr-1{margin-right:-.25rem}.-mt-1{margin-top:-.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[22px\]{height:22px}.h-\[24px\]{height:24px}.h-\[28px\]{height:28px}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:0}.min-h-11{min-height:2.75rem}.min-h-\[44px\]{min-height:44px}.min-h-\[62px\]{min-height:62px}.w-1\.5{width:.375rem}.w-2{width:.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-11{min-width:2.75rem}.min-w-\[44px\]{min-width:44px}.max-w-2xl{max-width:42rem}.max-w-\[1500px\]{max-width:1500px}.max-w-\[220px\]{max-width:220px}.max-w-\[480px\]{max-width:480px}.max-w-\[calc\(100vw-16px\)\]{max-width:calc(100vw - 16px)}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pop-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-pop-in{animation:pop-in var(--duration-fast) var(--ease-out)}.animate-rise{animation:rise var(--duration-slow) var(--ease-out) both}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scale-in var(--duration-fast) var(--ease-out)}.animate-shrink{animation:shrink .25s var(--ease-out) forwards}@keyframes slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in-right{animation:slide-in-right var(--duration-slow) var(--ease-out)}.animate-spin{animation:1s linear infinite spin}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-\[4px\]{gap:4px}.gap-\[6px\]{gap:6px}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-center{align-self:center}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[3px\]{border-radius:3px}.rounded-\[6px\]{border-radius:6px}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-accent{border-color:var(--accent)}.border-accent-2{border-color:var(--accent-2)}.border-accent-subtle{border-color:var(--accent-subtle)}.border-border{border-color:var(--border)}.border-border-strong{border-color:var(--border-strong)}.border-danger{border-color:var(--danger)}.border-danger-subtle{border-color:var(--danger-subtle)}.border-info{border-color:var(--info)}.border-info-subtle{border-color:var(--info-subtle)}.border-ok{border-color:var(--ok)}.border-ok-subtle{border-color:var(--ok-subtle)}.border-transparent{border-color:#0000}.border-warn{border-color:var(--warn)}.border-warn-subtle{border-color:var(--warn-subtle)}.bg-\[rgba\(100\,116\,139\,0\.18\)\]{background-color:#64748b2e}.bg-accent{background-color:var(--accent)}.bg-accent-2-subtle{background-color:var(--accent-2-subtle)}.bg-accent-subtle{background-color:var(--accent-subtle)}.bg-bg{background-color:var(--bg)}.bg-bg-accent{background-color:var(--bg-accent)}.bg-bg-elevated{background-color:var(--bg-elevated)}.bg-bg-hover{background-color:var(--bg-hover)}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-border{background-color:var(--border)}.bg-border-strong{background-color:var(--border-strong)}.bg-card{background-color:var(--card)}.bg-card-highlight{background-color:var(--card-highlight)}.bg-danger{background-color:var(--danger)}.bg-danger-subtle{background-color:var(--danger-subtle)}.bg-info-subtle{background-color:var(--info-subtle)}.bg-ok-subtle{background-color:var(--ok-subtle)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-warn-subtle{background-color:var(--warn-subtle)}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.px-\[11px\]{padding-left:11px;padding-right:11px}.px-\[8px\]{padding-left:8px;padding-right:8px}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-9{padding-top:2.25rem;padding-bottom:2.25rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.py-\[3px\]{padding-top:3px;padding-bottom:3px}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.py-\[6px\]{padding-top:6px;padding-bottom:6px}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-\[10px\]{padding-bottom:10px}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pl-\[3px\]{padding-left:3px}.pl-\[4px\]{padding-left:4px}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-8{padding-right:2rem}.pr-\[3px\]{padding-right:3px}.pr-\[9px\]{padding-right:9px}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-\[12vh\]{padding-top:12vh}.pt-\[9px\]{padding-top:9px}.text-left{text-align:left}.text-center{text-align:center}.font-\[inherit\]{font-family:inherit}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.font-sans{font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[8\.5px\]{font-size:8.5px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[0\.02em\]{letter-spacing:.02em}.tracking-\[0\.09em\]{letter-spacing:.09em}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[\#94a3b8\]{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-accent{color:var(--accent)}.text-accent-2{color:var(--accent-2)}.text-current{color:currentColor}.text-danger{color:var(--danger)}.text-info{color:var(--info)}.text-inherit{color:inherit}.text-muted{color:var(--muted)}.text-ok{color:var(--ok)}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-text{color:var(--text)}.text-text-strong{color:var(--text-strong)}.text-warn{color:var(--warn)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.accent-accent{accent-color:var(--accent)}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[-4px_0_24px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:-4px 0 24px #0000004d;--tw-shadow-colored:-4px 0 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-card{--tw-shadow:var(--shadow-card);--tw-shadow-colored:var(--shadow-card);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-focus-accent{--tw-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-focus-danger{--tw-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 25%, transparent);--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:var(--shadow-md);--tw-shadow-colored:var(--shadow-md);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-card{--tw-shadow-color:var(--card);--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.duration-fast{transition-duration:var(--duration-fast)}.duration-normal{transition-duration:var(--duration-normal)}.duration-slow{transition-duration:var(--duration-slow)}.ease-out{transition-timing-function:var(--ease-out)}.connection-state-marker{display:none}.connection-screen{z-index:500;padding:calc(24px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));background:radial-gradient(circle at 50% 30%, #ff5c5c14, transparent 34rem), var(--bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.connection-card{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-elevated) 94%, transparent);width:min(100%,520px);box-shadow:var(--shadow-lg);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:12px;padding:clamp(28px,7vw,48px);display:flex}.connection-icon{width:58px;height:58px;color:var(--accent);background:var(--accent-subtle);border:1px solid #ff5c5c47;border-radius:16px;place-items:center;margin-bottom:2px;display:grid}.connection-icon.is-error{color:var(--danger);border-color:var(--danger-border);background:var(--danger-subtle)}.connection-kicker{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:10px;font-weight:700}.connection-card h1{color:var(--text-strong);letter-spacing:-.025em;font-size:clamp(24px,6vw,32px);line-height:1.08}.connection-message{max-width:44ch;color:var(--muted);font-size:14px;line-height:1.55}.connection-code{border:1px solid var(--border);border-radius:var(--radius-full);color:var(--muted);background:var(--bg);padding:3px 8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px;display:inline-flex}.connection-retry{min-width:112px;margin-top:4px}.connection-banner{z-index:180;top:calc(68px + env(safe-area-inset-top,0px));left:calc(var(--sidebar-width) + 22px);border:1px solid var(--danger-border);max-width:920px;color:var(--text);background:color-mix(in srgb, var(--bg-elevated) 97%, transparent);box-shadow:var(--shadow-lg);border-radius:12px;align-items:center;gap:12px;margin-inline:auto;padding:10px 12px;display:flex;position:fixed;right:22px}.connection-banner-icon{color:var(--danger);flex:none}.connection-banner-copy{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:12px;line-height:1.35;display:flex}.connection-banner-copy strong{color:var(--text-strong);font-size:13px}.connection-banner-copy span{color:var(--muted)}.connection-banner .connection-retry{min-width:92px;min-height:40px;margin-top:0}.file-tree-error{border:1px solid var(--warning-border,var(--danger-border));color:var(--warning,var(--danger));border-radius:6px;margin:8px 10px;padding:7px 9px;font-size:11px}.bundle-modal-body{overscroll-behavior:contain;max-height:min(68vh,720px);padding-right:2px;overflow-y:auto}@media (width<=600px){.bundle-modal-body{max-height:calc(100dvh - 180px)}#modalRoot>div:has(.bundle-modal-body){align-items:stretch}#modalRoot>div:has(.bundle-modal-body)>div{border-radius:0;flex-direction:column;height:100dvh;max-height:100dvh;margin:0;display:flex}#modalRoot>div:has(.bundle-modal-body)>div>div:nth-child(2){flex:1;min-height:0;overflow-y:auto}#modalRoot>div:has(.bundle-modal-body)>div>div:last-child:not(:has(.bundle-modal-body)){min-height:68px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--card);position:sticky;bottom:0}#modalRoot>div:has(.bundle-modal-body)>div>div:last-child:not(:has(.bundle-modal-body)) button{min-height:44px}}@media (width<=900px){.connection-banner{left:12px;right:12px}}@media (width<=600px){.connection-screen{padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));align-items:stretch}.connection-card{min-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:14px;justify-content:center;padding:28px 22px}.connection-retry{width:100%;min-height:44px}.connection-banner{top:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));flex-wrap:wrap;padding:12px}.connection-banner-copy{flex-basis:calc(100% - 34px)}.connection-banner .connection-code{margin-left:30px}.connection-banner .connection-retry{flex:1}}.placeholder\:text-muted::placeholder{color:var(--muted)}.hover\:border-accent:hover{border-color:var(--accent)}.hover\:border-border-strong:hover{border-color:var(--border-strong)}.hover\:bg-accent-hover:hover{background-color:var(--accent-hover)}.hover\:bg-bg-accent:hover{background-color:var(--bg-accent)}.hover\:bg-bg-hover:hover{background-color:var(--bg-hover)}.hover\:bg-danger-subtle:hover{background-color:var(--danger-subtle)}.hover\:bg-ok-subtle:hover{background-color:var(--ok-subtle)}.hover\:bg-warn-subtle:hover{background-color:var(--warn-subtle)}.hover\:text-accent-hover:hover{color:var(--accent-hover)}.hover\:text-danger:hover{color:var(--danger)}.hover\:text-ok:hover{color:var(--ok)}.hover\:text-text:hover{color:var(--text)}.hover\:text-warn:hover{color:var(--warn)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:brightness-110:hover{--tw-brightness:brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-125:hover{--tw-brightness:brightness(1.25);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-0:focus{border-width:0}.focus\:border-accent:focus{border-color:var(--accent)}.focus\:border-accent-subtle:focus{border-color:var(--accent-subtle)}.focus\:shadow-focus-accent:focus,.focus-visible\:shadow-focus-accent:focus-visible{--tw-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.active\:bg-accent-hover:active{background-color:var(--accent-hover)}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media not all and (width>=768px){.max-md\:hidden{display:none}}@media (width>=640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.note.selected{outline-offset:2px;outline:2px solid #fff}.note.canvas-note-highlighted{z-index:5;animation:2s ease-out canvasNoteFlash}@keyframes canvasNoteFlash{0%,45%{box-shadow:0 0 0 3px var(--accent), 0 0 16px 4px var(--accent-subtle)}to{box-shadow:0 0 0 3px #0000,0 0 16px 4px #0000}}.canvas-wrap{background-color:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-sizing:border-box}.canvas-viewport .note{border-style:solid;border-width:1.5px}.canvas-viewport .note.color-yellow{background:var(--hue-6-canvas);border-color:var(--hue-6-ring)}.canvas-viewport .note.color-blue{background:var(--hue-3-canvas);border-color:var(--hue-3-ring)}.canvas-viewport .note.color-green{background:var(--hue-4-canvas);border-color:var(--hue-4-ring)}.canvas-viewport .note.color-red{background:var(--hue-5-canvas);border-color:var(--hue-5-ring)}.canvas-viewport .note.color-teal{background:var(--hue-2-canvas);border-color:var(--hue-2-ring)}.canvas-viewport .note.color-grey{background:var(--hue-1-canvas);border-color:var(--hue-1-ring)}.canvas-svg-underlay{z-index:0}.note{z-index:1}.canvas-svg-overlay{z-index:2;pointer-events:none}.conn-path{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;cursor:pointer;pointer-events:stroke;transition:opacity .15s}.conn-path:hover{opacity:.7}.conn-path-hit{fill:none;stroke:#0000;stroke-width:20px;cursor:pointer;pointer-events:stroke}.conn-preview-path{fill:none;stroke:var(--muted);stroke-width:2px;stroke-dasharray:6 4;stroke-linecap:round;pointer-events:none}.canvas-viewport .conn-dot.conn-dot-target-active{opacity:1}.canvas-viewport .conn-dot.conn-dot-snap{transform:translate(-50%,-50%)scale(1.5)}.note.color-yellow .conn-dot{background:var(--hue-6-ring);color:var(--hue-6-ring)}.note.color-blue .conn-dot{background:var(--hue-3-ring);color:var(--hue-3-ring)}.note.color-green .conn-dot{background:var(--hue-4-ring);color:var(--hue-4-ring)}.note.color-red .conn-dot{background:var(--hue-5-ring);color:var(--hue-5-ring)}.note.color-teal .conn-dot{background:var(--hue-2-ring);color:var(--hue-2-ring)}.note.color-grey .conn-dot{background:var(--hue-1-ring);color:var(--hue-1-ring)}.canvas-viewport .conn-dot.conn-dot-free{background:var(--bg);box-shadow:0 0 0 1.5px var(--bg);opacity:0;border:2px solid;transition:opacity .15s}.note:hover .conn-dot-free,.note.selected .conn-dot-free{opacity:.85}.canvas-viewport .conn-dot.conn-dot-active{opacity:1}.canvas-viewport .conn-dot.conn-dot-connected{box-shadow:0 0 0 1.5px var(--bg);opacity:1}.canvas-floating-toolbar{z-index:25;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);pointer-events:auto;-webkit-user-select:none;user-select:none;align-items:center;gap:2px;padding:4px 6px;display:flex;position:absolute}.toolbar-section{align-items:center;gap:2px;display:flex}.toolbar-separator{background:var(--border);width:1px;height:20px;margin:0 4px}.toolbar-btn{cursor:pointer;color:var(--text);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 6px;font-size:14px;line-height:1}.toolbar-btn:hover{background:var(--bg-hover)}.toolbar-btn-danger:hover{color:var(--danger)}.toolbar-popover{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);gap:6px;padding:8px;animation:.12s ease-out toolbarPopIn;display:flex;position:absolute}@keyframes toolbarPopIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.toolbar-size-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px}.toolbar-size-btn.active{background:var(--border);color:var(--text-strong)}.toolbar-size-btn:hover{border-color:var(--text)}.note.size-medium{width:280px}.note-body{max-height:200px;position:relative;overflow:hidden}.note.size-medium .note-body{max-height:300px}.note:hover .note-body{overflow-y:hidden}.note-body.truncated~.note-overflow-fade{display:block}.note-overflow-fade{background:linear-gradient(transparent, var(--bg));pointer-events:none;border-radius:0 0 var(--radius-md) var(--radius-md);z-index:2;height:48px;display:none;position:absolute;bottom:0;left:0;right:0}.note-overflow-fade:after{content:"⋯";color:var(--muted);pointer-events:none;font-size:14px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.canvas-sidebar{background:var(--card);border-left:1px solid var(--border);z-index:30;pointer-events:none;flex-direction:column;width:320px;height:100%;transition:transform .2s ease-out;display:flex;position:absolute;top:0;right:0;transform:translate(100%)}.canvas-sidebar.open{pointer-events:auto;transform:translate(0)}@media (width<=600px){.canvas-sidebar{border-left:none;border-top:1px solid var(--border);opacity:0;visibility:hidden;width:100%;transition:none;left:0;right:0;transform:none}.canvas-sidebar.open{opacity:1;visibility:visible}}.canvas-sidebar-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:12px;display:flex}.canvas-sidebar-color-bar{border-radius:2px;width:4px;height:20px}.sidebar-color-yellow{background:var(--hue-6-ring)}.sidebar-color-blue{background:var(--hue-3-ring)}.sidebar-color-green{background:var(--hue-4-ring)}.sidebar-color-red{background:var(--hue-5-ring)}.sidebar-color-teal{background:var(--hue-2-ring)}.sidebar-color-grey{background:var(--hue-1-ring)}.canvas-sidebar-id{color:var(--muted);flex:1;font-family:JetBrains Mono,monospace;font-size:11px}.canvas-sidebar-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1}.canvas-sidebar-close:hover{color:var(--text)}.canvas-sidebar-body{-webkit-overflow-scrolling:touch;flex:1;padding:12px;overflow-y:auto}.canvas-sidebar-format{border-bottom:1px solid var(--border);gap:6px;margin-bottom:8px;padding-bottom:8px;display:flex}.canvas-sidebar-textarea{width:100%;height:100%;color:var(--text);resize:none;background:0 0;border:none;outline:none;font-family:inherit;font-size:13px;line-height:1.6}.canvas-viewport .note.editing .conn-dot-free{display:none}.conn-dot:before{content:"";border-radius:50%;width:36px;height:36px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.note.selected .note-body{overflow-y:auto}.canvas-viewport .note.selected .note-overflow-fade{display:none}.cluster-frame{fill-opacity:.04;stroke-opacity:.35;stroke-width:1.5px;stroke-dasharray:6 3;rx:12}
