@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300..800;1,300..800&family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&display=swap";:root,[data-theme=light]{--font-heading: "Plus Jakarta Sans", sans-serif;--font-body: "DM Sans", sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 100px;--transition: .2s cubic-bezier(.4, 0, .2, 1);--bg-primary: #faf8f5;--bg-surface: #ffffff;--bg-surface-hover: #f5f2ee;--bg-sidebar: #ffffff;--border: #ebe6df;--border-hover: #d9d2c8;--text-primary: #2c2418;--text-secondary: #8b7e6e;--text-muted: #b5aa9a;--accent: #d4603a;--accent-hover: #c0532e;--accent-subtle: rgba(212, 96, 58, .08);--error: #c44b4b;--error-bg: #f8e0e0;--success: #4a9e5c;--success-bg: #e8f5eb;--status-live: #4a9e5c;--status-live-bg: #e8f5eb;--status-building: #3d8fca;--status-building-bg: #e0eef8;--status-planning: #7c5cbf;--status-planning-bg: #ede8f8;--status-approved: #4a9e5c;--status-approved-bg: #e8f5eb;--status-draft: #8b7e6e;--status-draft-bg: #f0ece6;--status-failed: #c44b4b;--status-failed-bg: #f8e0e0;--shadow-sm: 0 1px 3px rgba(44, 36, 24, .04);--shadow-md: 0 4px 12px rgba(44, 36, 24, .06);--shadow-hover: 0 8px 24px rgba(44, 36, 24, .08);--canvas-dot: rgba(44, 36, 24, .06);--canvas-line: rgba(44, 36, 24, .1);--canvas-line-blocking: rgba(212, 96, 58, .25);--attention-bg: rgba(212, 96, 58, .06);--shadow-elevated: 0 16px 48px rgba(44, 36, 24, .12);--accent-strong: rgba(212, 96, 58, .18);--kbd-bg: #f0ece6;--kbd-border: #d9d2c8;--kbd-text: #8b7e6e;--status-reviewing: #b07cd4;--status-reviewing-bg: #f0e8f8;--status-merging: #4a9e5c;--status-merging-bg: #e8f5eb}[data-theme=dark]{--bg-primary: #161616;--bg-surface: #1e1e1d;--bg-surface-hover: #272726;--bg-sidebar: #1e1e1d;--border: #2e2e2c;--border-hover: #3d3d3a;--text-primary: #ededea;--text-secondary: #9c9b94;--text-muted: #5e5d58;--accent: #e87b52;--accent-hover: #f09070;--accent-subtle: rgba(232, 123, 82, .12);--error: #d46060;--error-bg: rgba(212, 96, 96, .12);--success: #5cb870;--success-bg: rgba(92, 184, 112, .12);--status-live: #5cb870;--status-live-bg: rgba(92, 184, 112, .12);--status-building: #5ba3d9;--status-building-bg: rgba(91, 163, 217, .12);--status-planning: #9b82d4;--status-planning-bg: rgba(155, 130, 212, .12);--status-approved: #5cb870;--status-approved-bg: rgba(92, 184, 112, .12);--status-draft: #9a8e7d;--status-draft-bg: rgba(154, 142, 125, .12);--status-failed: #d46060;--status-failed-bg: rgba(212, 96, 96, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-hover: 0 8px 24px rgba(0, 0, 0, .35);--canvas-dot: rgba(255, 255, 255, .03);--canvas-line: rgba(255, 255, 255, .06);--canvas-line-blocking: rgba(232, 123, 82, .25);--attention-bg: rgba(232, 123, 82, .08);--shadow-elevated: 0 16px 48px rgba(0, 0, 0, .5);--accent-strong: rgba(232, 123, 82, .22);--kbd-bg: #2e2e2c;--kbd-border: #3d3d3a;--kbd-text: #9c9b94;--status-reviewing: #c49be0;--status-reviewing-bg: rgba(196, 155, 224, .12);--status-merging: #5cb870;--status-merging-bg: rgba(92, 184, 112, .12)}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);overflow:hidden;height:100vh;-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topnav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:48px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0}.topnav-left{display:flex;align-items:center;gap:14px}.topnav-right{display:flex;align-items:center;gap:10px}.logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--text-primary)}.logo-icon{width:22px;height:22px;background:linear-gradient(135deg,var(--accent),#f2a07b);border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:12px;font-weight:800;color:#fff;flex-shrink:0}.logo-text{font-family:var(--font-heading);font-size:14px;font-weight:700;letter-spacing:-.03em}.sep{color:var(--text-muted);font-size:12px;-webkit-user-select:none;user-select:none}.breadcrumb{font-size:12px;color:var(--text-secondary);font-weight:500}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;padding:24px;text-align:center}.error-boundary h2{font-family:var(--font-heading);font-size:18px;font-weight:700;color:var(--text-primary)}.error-message{font-size:13px;color:var(--error);background:var(--error-bg);padding:8px 12px;border-radius:var(--radius-sm);max-width:480px;word-break:break-word}.error-reset{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition)}.error-reset:hover{background:var(--accent-hover)}.canvas-surface{position:relative;width:100%;height:calc(100vh - 48px);overflow:hidden;background-color:var(--bg-primary);background-image:radial-gradient(circle,var(--canvas-dot) 1px,transparent 1px);background-size:24px 24px;cursor:grab;-webkit-user-select:none;user-select:none}.canvas-surface.bead-drag{cursor:grabbing}.canvas{position:absolute;top:0;left:0;width:100%;height:100%;transform-origin:0 0}.conn-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;transform-origin:0 0}.zoom-ind{position:absolute;bottom:16px;right:16px;background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);padding:3px 8px;font-size:9px;font-weight:600;font-family:var(--font-body);border-radius:var(--radius-sm);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:10}.bead-card{--bead-stage-color: var(--text-muted)}.bead-card[data-stage=planning]{--bead-stage-color: var(--status-planning)}.bead-card[data-stage=building]{--bead-stage-color: var(--status-building)}.bead-card[data-stage=reviewing]{--bead-stage-color: var(--status-reviewing)}.bead-card[data-stage=merging]{--bead-stage-color: var(--status-merging)}.bead-card[data-stage=done]{--bead-stage-color: var(--status-live)}.bead-card[data-stage=draft]{--bead-stage-color: var(--status-draft)}.bead-card{position:absolute;width:210px;padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:grab;transition:border-color var(--transition),box-shadow var(--transition),opacity var(--transition),transform var(--transition)}.bead-card:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 2px 2px 0;background:var(--bead-stage-color)}.bead-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-hover)}.bead-card:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent),var(--shadow-hover);border-color:var(--accent);z-index:10}.bead-card.needs-attention{background:var(--attention-bg);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-subtle),0 4px 20px var(--accent-subtle);transform:scale(1.04);z-index:15}.bead-card.needs-attention:before{width:4px;background:var(--accent)}.bead-card.intercepted{border-color:#c49a30;box-shadow:0 0 12px #c49a301a}.bead-card.done{opacity:.4}.bead-card.dragging{z-index:50;box-shadow:var(--shadow-elevated);opacity:.9}.bead-top-row{display:flex;align-items:center;gap:4px;margin-bottom:5px}.bead-id{font-family:monospace;font-size:10px;color:var(--text-muted);flex-shrink:0;margin-right:2px}.bead-title{font-family:var(--font-heading);font-size:12px;font-weight:600;line-height:1.3;color:var(--text-primary);margin-bottom:6px}.bead-footer{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.stage-pill{display:inline-block;font-size:8px;text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:3px;background:var(--bead-stage-color);color:#fff;opacity:.85}.type-badge{display:inline-block;font-size:8px;text-transform:uppercase;padding:1px 4px;border-radius:3px}.type-badge[data-type=task]{background:var(--status-building-bg);color:var(--status-building)}.type-badge[data-type=bug]{background:var(--status-failed-bg);color:var(--status-failed)}.type-badge[data-type=epic]{background:var(--status-planning-bg);color:var(--status-planning)}.priority-tag{display:inline-block;font-size:9px;padding:1px 6px;border-radius:var(--radius-pill);font-weight:500}.priority-tag[data-priority=P0]{background:var(--status-failed-bg);color:var(--status-failed)}.priority-tag[data-priority=P1]{background:var(--accent-subtle);color:var(--accent)}.priority-tag:not([data-priority=P0]):not([data-priority=P1]){background:var(--bg-surface-hover);color:var(--text-secondary)}.agent-badge{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:600;color:var(--status-live)}.agent-spinner{display:inline-block;width:7px;height:7px;border:1.5px solid var(--status-live);border-top-color:transparent;border-radius:50%;animation:agent-spin .7s linear infinite;flex-shrink:0}@keyframes agent-spin{to{transform:rotate(360deg)}}.progress-bar{height:2px;background:var(--border);border-radius:1px;margin-top:7px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--status-building),var(--status-live));border-radius:1px;transition:width .3s ease}.attention-reason{font-size:10px;color:var(--accent);border-top:1px solid var(--accent-subtle);margin-top:6px;padding-top:5px;line-height:1.4}.conn-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:1}.conn-path{fill:none;stroke:var(--canvas-line);stroke-width:1.5}.conn-path.blocking{stroke:var(--canvas-line-blocking);stroke-width:2}.conn-path.related{stroke-dasharray:5 4}.canvas-status{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:calc(100vh - 48px);gap:12px;background:var(--bg-primary)}.canvas-status-text{font-size:13px;color:var(--text-muted);font-family:var(--font-body);-webkit-user-select:none;user-select:none}.canvas-status-error{color:var(--error, #e05b5b)}.canvas-retry-btn{padding:6px 14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition)}.canvas-retry-btn:hover{background:var(--accent-hover)}.bead-expanded{position:absolute;background:var(--bg-surface);border:1px solid var(--border-hover);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);display:flex;flex-direction:column;overflow:hidden;cursor:default;transition:box-shadow var(--transition),border-color var(--transition)}.bead-expanded:focus-within{border-color:var(--accent)}.bead-expanded-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid var(--border);background:var(--bg-surface-hover);flex-shrink:0}.bead-expanded-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}.bead-expanded-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;flex-shrink:0;transition:background var(--transition),color var(--transition)}.bead-expanded-close:hover{background:var(--border);color:var(--text-primary)}.bead-expanded-title{font-family:var(--font-heading);font-size:13px;font-weight:600;line-height:1.4;color:var(--text-primary);padding:10px 14px 6px;flex-shrink:0}.bead-expanded-body{flex:1;min-height:120px;padding:0 14px 8px;overflow-y:auto}.bead-expanded-input{flex-shrink:0;min-height:40px;border-top:1px solid var(--border);background:var(--bg-surface-hover)}.canvas.is-animating,.conn-svg.is-animating{transition:transform .35s cubic-bezier(.4,0,.2,1)}.bead-detail-content{display:flex;flex-direction:column;gap:12px}.bead-detail-description{font-family:var(--font-body);font-size:12px;line-height:1.6;color:var(--text-secondary)}.bead-deps-list,.bead-children-list{display:flex;flex-direction:column;gap:4px}.bead-deps-list-label,.bead-children-list-label{font-family:var(--font-body);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.bead-dep-item,.bead-child-item{display:flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:11px;color:var(--text-secondary);padding:3px 6px;border-radius:var(--radius-sm);transition:background var(--transition)}.bead-dep-item:hover,.bead-child-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.bead-dep-item .bead-id,.bead-child-item .bead-id{flex-shrink:0}.input-mode-toggle{display:flex;gap:2px;padding:8px 12px 0}.input-mode-tab{flex:1;padding:5px 10px;background:transparent;border:none;border-bottom:2px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:color var(--transition),border-color var(--transition),background var(--transition)}.input-mode-tab:hover{color:var(--text-secondary);background:var(--bg-surface-hover)}.input-mode-tab--active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-subtle)}.input-mode-tab--active:hover{color:var(--accent-hover);border-bottom-color:var(--accent-hover)}.note-input{display:flex;flex-direction:column;gap:6px;padding:8px 12px 10px}.note-textarea{width:100%;min-height:64px;max-height:160px;resize:vertical;padding:8px 10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:12px;line-height:1.5;color:var(--text-primary);outline:none;transition:border-color var(--transition)}.note-textarea::placeholder{color:var(--text-muted)}.note-textarea:focus{border-color:var(--accent)}.note-submit{align-self:flex-end;padding:5px 14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:12px;font-weight:600;cursor:pointer;transition:background var(--transition)}.note-submit:hover{background:var(--accent-hover)}.note-submit:disabled{opacity:.5;cursor:not-allowed}.chat-messages{display:flex;flex-direction:column;gap:8px;padding:0 0 4px;overflow-y:auto}.chat-bubble{max-width:85%;padding:7px 10px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:12px;line-height:1.5;word-break:break-word}.chat-bubble-user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:3px}.chat-bubble-assistant{align-self:flex-start;background:var(--bg-surface-hover);color:var(--text-primary);border:1px solid var(--border);border-bottom-left-radius:3px}.token-usage{font-family:var(--font-body);font-size:9px;color:var(--text-muted);text-align:right;padding:0 12px 4px;-webkit-user-select:none;user-select:none}.action-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-top:1px solid var(--border)}.btn-intercept{padding:5px 12px;background:transparent;border:1.5px solid #c49a30;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:11px;font-weight:600;color:#c49a30;cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition)}.btn-intercept:hover{background:#c49a301a;border-color:#a8831a;color:#a8831a}[data-theme=dark] .btn-intercept{color:#e0b840;border-color:#e0b840}[data-theme=dark] .btn-intercept:hover{background:#e0b8401f;color:#f0cc60;border-color:#f0cc60}.btn-dispatch{padding:5px 14px;background:var(--accent);border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:11px;font-weight:600;color:#fff;cursor:pointer;transition:background var(--transition);margin-left:auto}.btn-dispatch:hover{background:var(--accent-hover)}.btn-dispatch:disabled{opacity:.5;cursor:not-allowed}.resize-handle{position:absolute;z-index:10}.resize-handle--e{right:-4px;top:8px;bottom:8px;width:8px;cursor:ew-resize}.resize-handle--s{bottom:-4px;left:8px;right:8px;height:8px;cursor:ns-resize}.resize-handle--se{right:-4px;bottom:-4px;width:12px;height:12px;cursor:nwse-resize}.bead-expanded{max-width:calc(100vw - 48px);max-height:calc(100vh - 80px)}.bead-expanded-drag-handle{cursor:move;-webkit-user-select:none;user-select:none}.bead-expanded.panel-dragging{opacity:.92;box-shadow:var(--shadow-elevated),0 0 0 2px var(--accent-subtle);cursor:grabbing}.bead-expanded.panel-resizing{-webkit-user-select:none;user-select:none}.bead-resize-handle--e{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:ew-resize;z-index:10}.bead-resize-handle--s{position:absolute;bottom:-4px;left:0;width:100%;height:8px;cursor:ns-resize;z-index:10}.bead-resize-handle--se{position:absolute;bottom:-4px;right:-4px;width:16px;height:16px;cursor:se-resize;z-index:11}.bead-note-input{display:flex;flex-direction:column;gap:0}.bead-comments-list{list-style:none;margin:0;padding:8px 12px;display:flex;flex-direction:column;gap:6px;max-height:140px;overflow-y:auto;border-bottom:1px solid var(--border)}.bead-comment{display:flex;flex-direction:column;gap:2px}.bead-comment-actor{font-size:10px;font-weight:600;color:var(--text-muted)}.bead-comment-text{font-size:12px;color:var(--text-primary);line-height:1.4;word-break:break-word}.bead-input-tabs{display:flex;border-bottom:1px solid var(--border)}.bead-input-tab{flex:1;padding:6px 0;font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color var(--transition),border-color var(--transition)}.bead-input-tab:hover{color:var(--text-primary)}.bead-input-tab.active,.bead-input-tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.bead-input-error{font-size:11px;color:var(--error, #e05b5b);padding:4px 12px;background:var(--error-bg, rgba(224, 91, 91, .08))}.bead-note-mode{display:flex;flex-direction:column;gap:6px;padding:8px 12px 10px}.bead-note-textarea{width:100%;min-height:64px;padding:6px 8px;font-family:var(--font-body);font-size:12px;line-height:1.5;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;box-sizing:border-box;transition:border-color var(--transition)}.bead-note-textarea:focus{outline:none;border-color:var(--accent)}.bead-note-textarea:disabled{opacity:.5;cursor:not-allowed}.bead-note-submit{align-self:flex-end;padding:5px 14px;font-family:var(--font-body);font-size:12px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),opacity var(--transition)}.bead-note-submit:hover:not(:disabled){background:var(--accent-hover)}.bead-note-submit:disabled{opacity:.5;cursor:not-allowed}.bead-chat-mode,.bead-chat-input{display:flex;flex-direction:column;flex:1;min-height:0}.bead-chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:10px 12px;min-height:80px;max-height:200px}.bead-chat-bubble{display:flex;flex-direction:column;max-width:85%}.bead-chat-bubble--user{align-self:flex-end;align-items:flex-end}.bead-chat-bubble--assistant{align-self:flex-start;align-items:flex-start}.bead-chat-bubble-content{display:inline-block;padding:6px 10px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:12px;line-height:1.5;word-break:break-word;white-space:pre-wrap}.bead-chat-bubble--user .bead-chat-bubble-content{background:var(--accent);color:#fff;border-bottom-right-radius:3px}.bead-chat-bubble--assistant .bead-chat-bubble-content{background:var(--bg-surface-hover);color:var(--text-primary);border-bottom-left-radius:3px}.bead-chat-typing{display:inline-flex;gap:3px;align-items:center;height:14px}.bead-chat-typing:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--text-muted);animation:bead-chat-pulse 1s ease-in-out infinite}.bead-chat-typing:after{content:"";width:5px;height:5px;border-radius:50%;background:var(--text-muted);animation:bead-chat-pulse 1s ease-in-out .2s infinite}@keyframes bead-chat-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.bead-chat-token-usage{font-family:var(--font-body);font-size:10px;color:var(--text-muted);margin-top:3px;padding:0 2px}.bead-chat-input-bar{display:flex;gap:6px;align-items:flex-end;padding:8px 12px 10px;border-top:1px solid var(--border)}.bead-chat-textarea{flex:1;padding:6px 8px;font-family:var(--font-body);font-size:12px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);resize:none;box-sizing:border-box;transition:border-color var(--transition);min-height:40px}.bead-chat-textarea:focus{outline:none;border-color:var(--accent)}.bead-chat-textarea:disabled{opacity:.5;cursor:not-allowed}.bead-chat-send{flex-shrink:0;padding:5px 12px;font-family:var(--font-body);font-size:12px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),opacity var(--transition)}.bead-chat-send:hover:not(:disabled){background:var(--accent-hover)}.bead-chat-send:disabled{opacity:.5;cursor:not-allowed}.bead-expanded-actions{display:flex;align-items:center;gap:6px;padding:6px 14px;border-top:1px solid var(--border);flex-shrink:0}.bead-action-btn{padding:4px 10px;font-family:var(--font-body);font-size:11px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface-hover);color:var(--text-secondary);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.bead-action-btn:hover:not(:disabled){background:var(--border);color:var(--text-primary)}.bead-action-btn:disabled{opacity:.5;cursor:not-allowed}.bead-action-btn--active{background:#c49a301f;border-color:#c49a30;color:#c49a30}.bead-action-btn--active:hover:not(:disabled){background:#c49a3033}.topnav-center{display:flex;align-items:center;position:absolute;left:50%;transform:translate(-50%)}.view-toggle{display:flex;align-items:center;gap:2px;background:var(--bg-surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px}.view-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:transparent;border:none;border-radius:calc(var(--radius-sm) - 2px);font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition),box-shadow var(--transition);-webkit-user-select:none;user-select:none;white-space:nowrap}.view-btn:hover:not(.view-btn--disabled):not(.view-btn--active){background:var(--border);color:var(--text-primary)}.view-btn--active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-sm);font-weight:600}.view-btn--disabled{color:var(--text-muted);cursor:not-allowed}.kbd-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:17px;padding:0 4px;background:var(--kbd-bg);border:1px solid var(--kbd-border);border-radius:3px;font-family:var(--font-body);font-size:9px;font-weight:600;color:var(--kbd-text);line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none;font-style:normal}.kbd-badge--small{min-width:14px;height:13px;font-size:8px;padding:0 3px}.bead-kbd{position:absolute;top:-10px;right:-6px;opacity:0;transition:opacity var(--transition)}.bead-card:focus-visible .bead-kbd{opacity:1}.bead-expanded-close-wrapper{position:relative;display:inline-flex;align-items:center}.close-kbd{position:absolute;top:-8px;right:-4px;opacity:0;transition:opacity var(--transition)}.bead-expanded-close:focus-visible~.close-kbd,.bead-expanded-close-wrapper:focus-within .close-kbd{opacity:1}.btn-kbd{margin-left:4px;vertical-align:middle}.view-btn--active .kbd-badge{background:var(--accent-subtle);border-color:var(--accent-subtle);color:var(--accent)}.view-btn--disabled .kbd-badge{opacity:.5}.filter-toggle{position:relative;display:inline-flex;align-items:center;gap:6px;padding:5px 12px;font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.filter-toggle:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-hover)}.filter-toggle--open{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.filter-active-badge{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.filter-chip:hover{background:var(--bg-surface-hover);border-color:var(--border-hover);color:var(--text-primary)}.filter-chip--active{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent);font-weight:600}.filter-chip--color-planning.filter-chip--active{background:var(--status-planning-bg);border-color:var(--status-planning);color:var(--status-planning)}.filter-chip--color-building.filter-chip--active{background:var(--status-building-bg);border-color:var(--status-building);color:var(--status-building)}.filter-chip--color-reviewing.filter-chip--active{background:var(--status-reviewing-bg);border-color:var(--status-reviewing);color:var(--status-reviewing)}.filter-chip--color-merging.filter-chip--active{background:var(--status-merging-bg);border-color:var(--status-merging);color:var(--status-merging)}.filter-chip--color-done.filter-chip--active{background:var(--success-bg);border-color:var(--success);color:var(--success)}.filter-chip--color-draft.filter-chip--active{background:var(--status-draft-bg);border-color:var(--status-draft);color:var(--status-draft)}.filter-chip-count{font-size:10px;font-weight:600;color:var(--text-muted);background:var(--bg-surface-hover);border-radius:10px;padding:1px 5px;min-width:16px;text-align:center}.filter-chip--active .filter-chip-count{background:#fff3;color:inherit}.filter-panel{position:absolute;top:0;right:0;width:260px;max-height:100%;overflow-y:auto;background:var(--bg-surface);border-left:1px solid var(--border);box-shadow:var(--shadow-md);z-index:50;display:flex;flex-direction:column}.filter-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.filter-panel-title{font-family:var(--font-heading);font-size:13px;font-weight:700;color:var(--text-primary)}.filter-panel-actions{display:flex;align-items:center;gap:8px}.filter-panel-clear{font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--text-muted);background:transparent;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);transition:color var(--transition),background var(--transition)}.filter-panel-clear:hover{color:var(--accent);background:var(--accent-subtle)}.filter-panel-close{font-family:var(--font-body);font-size:12px;color:var(--text-muted);background:transparent;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);line-height:1;transition:color var(--transition)}.filter-panel-close:hover{color:var(--text-primary)}.filter-panel-body{padding:12px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.filter-section{display:flex;flex-direction:column;gap:8px}.filter-section-label{font-family:var(--font-heading);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.filter-section-chips{display:flex;flex-wrap:wrap;gap:6px}.canvas-wrapper-inner{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;overflow:hidden}.canvas-toolbar{display:flex;align-items:center;padding:6px 16px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;gap:12px}.active-filter-bar{display:flex;align-items:center;gap:8px;padding:6px 16px;background:var(--accent-subtle);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}.active-filter-chips{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;flex:1;min-width:0}.active-filter-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px 2px 8px;font-family:var(--font-body);font-size:11px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0}.active-filter-chip-dim{color:var(--text-muted);font-size:10px}.active-filter-chip-val{color:var(--text-primary);font-weight:500}.active-filter-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:9px;color:var(--text-muted);background:transparent;border:none;cursor:pointer;border-radius:50%;padding:0;line-height:1;transition:color var(--transition),background var(--transition)}.active-filter-chip-remove:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.active-filter-clear-all{font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--accent);background:transparent;border:none;cursor:pointer;padding:2px 8px;border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0;transition:background var(--transition)}.active-filter-clear-all:hover{background:var(--accent-subtle)}.blueprint-filter{display:flex;align-items:center;gap:8px}.blueprint-filter-select{font-family:var(--font-body);font-size:12px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;cursor:pointer;transition:border-color var(--transition);max-width:180px}.blueprint-filter-select:focus{outline:none;border-color:var(--accent)}.blueprint-progress{font-family:var(--font-body);font-size:11px;font-weight:600;color:var(--text-muted);white-space:nowrap}.kb-overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;padding-bottom:48px;background:#00000040}.kb-overlay-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);padding:20px 24px;width:min(600px,calc(100vw - 48px));max-height:70vh;overflow-y:auto}.kb-overlay-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.kb-overlay-title{font-family:var(--font-heading);font-size:15px;font-weight:600;color:var(--text-primary)}.kb-overlay-close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:14px;padding:4px;line-height:1;transition:color var(--transition)}.kb-overlay-close:hover{color:var(--text-primary)}.kb-overlay-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 24px}.kb-group-label{font-family:var(--font-body);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px}.kb-group-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.kb-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.kb-row-desc{font-family:var(--font-body);font-size:12px;color:var(--text-secondary)}.kb-badge{display:inline-flex;align-items:center;background:var(--kbd-bg);border:1px solid var(--kbd-border);border-radius:4px;color:var(--kbd-text);font-family:var(--font-body);font-size:11px;font-weight:600;padding:1px 5px;white-space:nowrap;flex-shrink:0}.kb-badge--sm{font-size:9px;padding:1px 4px}.kb-hint-bar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-pill);padding:4px 12px;z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.45;transition:opacity var(--transition)}.kb-hint-bar:hover,.canvas-surface:focus-within .kb-hint-bar{opacity:1}.kb-hint-bar--hidden{opacity:0;pointer-events:none}.kb-hint-item{display:flex;align-items:center;gap:4px}.kb-hint-label{font-family:var(--font-body);font-size:10px;color:var(--text-muted);white-space:nowrap}.skip-link{position:absolute;top:-100%;left:8px;z-index:9999;padding:8px 16px;background:var(--accent);color:#fff;font-family:var(--font-body);font-size:14px;font-weight:600;border-radius:var(--radius-sm);text-decoration:none;transition:top .1s}.skip-link:focus{top:8px}.app-main{flex:1;overflow:hidden;display:flex;flex-direction:column}.filter-announcer{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.canvas-bead-list{position:relative;width:100%;height:100%}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.help-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.bead-action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bead-expanded-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.canvas-retry-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.view-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent);border-color:var(--accent)}.filter-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent);border-color:var(--accent)}.filter-panel-clear:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent);border-color:var(--accent)}.filter-panel-close:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent);border-color:var(--accent)}.filter-chip:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent);border-color:var(--accent)}.help-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--bg-surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition),color var(--transition)}.help-btn:hover{background:var(--border);color:var(--text-primary)}.help-overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;display:flex;align-items:center;justify-content:center}.help-overlay{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg, 0 20px 60px rgba(0, 0, 0, .4));width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);overflow:hidden;display:flex;flex-direction:column}.help-overlay-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.help-overlay-title{margin:0;font-family:var(--font-heading);font-size:15px;font-weight:700;color:var(--text-primary)}.help-overlay-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:18px;cursor:pointer;transition:background var(--transition),color var(--transition)}.help-overlay-close:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.help-overlay-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.help-overlay-body{overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px}.help-group-heading{margin:0 0 8px;font-family:var(--font-heading);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.help-list{margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.help-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.help-key{flex-shrink:0}.help-key kbd{display:inline-block;padding:2px 7px;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;font-family:var(--font-body);font-size:11px;font-weight:600;color:var(--text-secondary);white-space:nowrap}.help-desc{margin:0;font-size:12px;color:var(--text-secondary);text-align:right}.auth-page{font-family:var(--font-body);background:var(--bg-primary);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;-webkit-font-smoothing:antialiased}.auth-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:40px;width:100%;max-width:420px}.auth-logo{font-family:var(--font-heading);font-size:22px;font-weight:700;color:var(--accent);letter-spacing:-.02em;margin-bottom:32px;display:block}.auth-heading{font-family:var(--font-heading);font-size:24px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:6px}.auth-subheading{font-size:14px;color:var(--text-secondary);margin-bottom:28px;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:500;color:var(--text-primary)}.form-input{font-family:var(--font-body);font-size:14px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;outline:none;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.form-input::placeholder{color:var(--text-muted)}.auth-submit{font-family:var(--font-body);font-size:14px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-sm);padding:11px 16px;cursor:pointer;transition:background var(--transition);margin-top:4px;width:100%}.auth-submit:hover:not(:disabled){background:var(--accent-hover)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-error{font-size:13px;border-radius:var(--radius-sm);padding:10px 14px;line-height:1.5;background:var(--error-bg);color:var(--error)}
