.diagram-page{display:flex;gap:0;height:calc(100vh - 4rem);overflow:hidden}.diagram-main{flex:1;min-width:0;overflow:hidden;padding:1rem 2rem 0;display:flex;flex-direction:column;align-items:center}.diagram-status-bar{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#22c55e;margin-bottom:.5rem;padding:.4rem 1rem;background:#22c55e0d;border:1px solid rgba(34,197,94,.15);border-radius:8px;flex-shrink:0}.status-indicator{width:8px;height:8px;border-radius:50%;background:#22c55e;animation:dot-pulse 1.5s ease-in-out infinite}.status-jira{font-family:var(--font-mono);font-weight:600}.diagram-canvas{position:relative;flex:1;display:flex;align-items:center;justify-content:center;width:100%;min-height:0}.diagram-connections{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.diagram-grid{display:grid;grid-template-columns:auto auto;gap:1.8vh 3vw;align-items:start}.grid-jira,.grid-intake{display:flex;justify-content:center;align-items:center}.grid-planner,.grid-review,.grid-test,.grid-done{display:flex;justify-content:center}.jira-pill{font-size:.75rem;font-weight:500;color:#0052cce6;border:1px solid rgba(0,82,204,.3);background:#0052cc14;border-radius:20px;padding:.25rem .75rem;text-align:center;position:relative;z-index:1}.diagram-node{background:#1a1d27cc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:.75rem 1.25rem;text-align:center;min-width:180px;position:relative;z-index:1;transition:all .4s cubic-bezier(.4,0,.2,1)}.diagram-node.active{border-color:#22c55e99;box-shadow:0 0 20px #22c55e26,0 0 60px #22c55e0d,inset 0 0 20px #22c55e08;animation:glow-pulse 2s ease-in-out infinite}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px #22c55e26,0 0 60px #22c55e0d,inset 0 0 20px #22c55e08}50%{box-shadow:0 0 30px #22c55e40,0 0 80px #22c55e1a,inset 0 0 30px #22c55e0d}}.diagram-node.active .diagram-node-label{color:#22c55e}.diagram-node .status-dot{width:8px;height:8px;border-radius:50%;background:#4b5563;display:inline-block;transition:all .4s ease}.diagram-node .status-dot.active{background:#22c55e;box-shadow:0 0 8px #22c55e99;animation:dot-pulse 1.5s ease-in-out infinite}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.5}}.diagram-node-header{display:flex;align-items:center;justify-content:center;gap:.5rem}.diagram-node-label{font-weight:600;font-size:.95rem;transition:color .4s ease}.diagram-node-sub{font-size:.7rem;color:var(--text-muted);margin-top:.15rem;opacity:.8}.diagram-model-select{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:var(--text-muted);font-size:.7rem;font-family:var(--font-mono);padding:.15rem .35rem;cursor:pointer;margin-left:auto;transition:border-color .15s,color .15s}.diagram-model-select:hover,.diagram-model-select:focus{border-color:var(--accent);color:var(--text);outline:none}.diagram-loop{background:#6c8cff08;border:1px solid rgba(108,140,255,.12);border-radius:16px;padding:1.2rem;margin:0;position:relative;display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;z-index:1}.diagram-loop-label{position:absolute;top:-.6rem;left:1rem;background:var(--bg);padding:0 .5rem;font-size:.7rem;font-weight:500;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.diagram-loop-meta{position:absolute;top:-.6rem;right:1rem;background:var(--bg);padding:0 .5rem;font-size:.65rem;color:var(--text-muted)}.done-node{background:#1a1d2780;border-style:dashed}.diagram-connection-label{fill:#6b7280;font-size:.65rem;font-weight:500;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.panel-toggle{position:fixed;right:0;top:50%;transform:translateY(-50%);background:var(--surface);border:1px solid var(--border);border-right:none;border-radius:8px 0 0 8px;padding:.75rem .5rem;color:var(--text-muted);font-size:.75rem;cursor:pointer;writing-mode:vertical-rl;transition:all .2s;z-index:10}.panel-toggle:hover{background:var(--surface-hover);color:var(--text)}.panel-toggle.panel-open{right:380px}.output-panel{width:380px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;animation:panel-slide-in .2s ease-out}@keyframes panel-slide-in{0%{width:0;opacity:0}to{width:380px;opacity:1}}.output-panel-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.output-panel-header h3{font-size:.9rem;font-weight:600;margin:0}.output-panel-close{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;padding:.25rem;line-height:1}.output-panel-close:hover{color:var(--text)}.output-panel-body{flex:1;overflow-y:auto;font-family:var(--font-mono);font-size:.78rem;line-height:1.5}.output-message{padding:.3rem 1rem;border-bottom:1px solid rgba(255,255,255,.04);display:flex;gap:.75rem;align-items:baseline}.output-message:last-child{border-bottom:none}.output-message-time{color:#6b7280;font-size:.7rem;white-space:nowrap;flex-shrink:0}.output-message-text{color:#d1d5db;word-break:break-word}.output-empty{padding:2rem;text-align:center;color:#6b7280;font-size:.85rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d27;--surface-hover: #242836;--border: #2a2e3a;--text: #e1e4eb;--text-muted: #8b8fa3;--accent: #6c8cff;--accent-hover: #5a7aee;--status-pending: #6b7280;--status-in-progress: #3b82f6;--status-done: #22c55e;--status-failed: #ef4444;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", "Fira Mono", Menlo, monospace;--radius: 8px;--radius-sm: 4px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.app-layout{display:flex;min-height:100vh}.app-content{flex:1;padding:2rem;margin-left:220px}.sidenav{position:fixed;top:0;left:0;width:220px;height:100vh;background:var(--surface);border-right:1px solid var(--border);padding:1.5rem 0;display:flex;flex-direction:column}.sidenav-title{font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:0 1.25rem;margin-bottom:1.5rem}.sidenav a{display:block;padding:.6rem 1.25rem;color:var(--text-muted);text-decoration:none;font-size:.95rem;transition:background .15s,color .15s}.sidenav a:hover{background:var(--surface-hover);color:var(--text)}.sidenav a.active{color:var(--accent);background:#6c8cff1a;border-right:2px solid var(--accent)}.sidenav-version{margin-top:auto;padding:0 1.25rem 1rem;font-size:.75rem;color:var(--text-muted);opacity:.5}.page{max-width:1000px;margin:0 auto}.page-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.section{margin-bottom:2rem}.section-title{font-size:1.1rem;font-weight:600;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.section-count{font-size:.8rem;color:var(--text-muted);font-weight:400}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:.75rem}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.card-title{font-weight:600;font-size:.95rem}.card-meta{font-size:.8rem;color:var(--text-muted);font-family:var(--font-mono)}.badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-transform:uppercase}.badge-backend{background:#8b5cf626;color:#a78bfa}.badge-frontend{background:#3b82f626;color:#60a5fa}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot-ingesting{background:#f59e0b}.status-dot-pending{background:var(--status-pending)}.status-dot-in_progress{background:var(--status-in-progress)}.status-dot-done{background:var(--status-done)}.status-dot-failed{background:var(--status-failed)}.btn{padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-sm{padding:.3rem .65rem;font-size:.8rem}.btn-danger{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.4)}.btn-danger:hover{background:#ef444440}.btn-danger-outline{background:transparent;color:#ef4444;border:1px solid rgba(239,68,68,.4)}.btn-danger-outline:hover{background:#ef44441a}.btn-secondary{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-3, var(--surface-2));color:var(--text)}.form-group{margin-bottom:.75rem}.form-label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}.form-input,.form-select,.form-textarea{width:100%;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;font-family:var(--font-sans)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent)}.form-textarea{min-height:80px;resize:vertical}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.calendar-nav{background:none;border:1px solid var(--border);color:var(--text);padding:.3rem .6rem;border-radius:var(--radius-sm);cursor:pointer}.calendar-nav:hover{background:var(--surface-hover)}.calendar-container{max-width:720px;width:100%;margin:0 auto}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3vw}.calendar-day-header{text-align:center;font-size:.75rem;color:var(--text-muted);padding:.5rem 0}.calendar-cell{aspect-ratio:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.25rem;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:min(60px,8vw)}.calendar-cell-empty{background:transparent;border-color:transparent}.calendar-cell-day{font-size:.75rem;color:var(--text-muted)}.calendar-cell-tokens{font-size:.7rem;font-family:var(--font-mono);color:var(--accent);margin-top:.15rem}.calendar-cell-has-data{background:#6c8cff14}.failure-report{background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);padding:.75rem;font-family:var(--font-mono);font-size:.8rem;color:var(--status-failed);white-space:pre-wrap;overflow-x:auto;margin-top:.5rem}.tasks-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.tasks-page-header .page-title{margin-bottom:0}.tasks-filter-bar{display:flex;justify-content:flex-end;margin-bottom:1rem}.tasks-filter-select{width:auto;min-width:140px}.task-compact{display:flex;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.65rem 1rem;margin-bottom:.5rem;cursor:pointer;transition:background .15s,border-color .15s}.task-compact:hover{background:var(--surface-hover);border-color:var(--accent)}.task-compact-title{font-weight:600;font-size:.9rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-compact-jira{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);flex-shrink:0}.task-compact-branch{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);background:var(--surface-hover);padding:2px 6px;border-radius:4px;flex-shrink:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-compact-pr{font-size:.8rem;color:var(--accent);text-decoration:none;flex-shrink:0}.task-compact-pr:hover{text-decoration:underline}.badge-status-ingesting{background:#f59e0b26;color:#fbbf24}.badge-status-pending{background:#6b728026;color:#9ca3af}.badge-status-in_progress{background:#3b82f626;color:#60a5fa}.badge-status-done{background:#22c55e26;color:#4ade80}.badge-status-failed{background:#ef444426;color:#f87171}.task-detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.task-detail-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;max-width:640px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0006}.task-detail-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.task-detail-title{font-size:1.1rem;font-weight:600;margin:0;flex:1;min-width:0}.task-detail-jira{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted)}.task-detail-close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:.9rem;padding:.1rem .3rem;line-height:1;margin-left:auto}.task-detail-close:hover{color:var(--text)}.task-detail-section{margin-bottom:1.25rem}.task-detail-section-title{font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.5rem}.task-detail-description{font-size:.9rem;line-height:1.6;color:var(--text);margin:0}.task-detail-plan{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;font-family:var(--font-mono);font-size:.8rem;color:var(--text);white-space:pre-wrap;overflow-x:auto;max-height:40vh;overflow-y:auto}.task-detail-meta{display:flex;gap:1.5rem;font-size:.85rem;font-family:var(--font-mono);color:var(--text-muted)}.task-detail-actions{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:1rem}.task-detail-confirm-text{font-size:.85rem;color:var(--text-muted)}.task-form-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.task-form-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;max-width:480px;width:90%;box-shadow:0 8px 32px #0006}.task-form-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.task-form-modal-title{font-size:1rem;font-weight:600}.task-form-modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:.9rem;padding:.1rem .3rem;line-height:1}.task-form-modal-close:hover{color:var(--text)}.task-form-modal .card{background:none;border:none;padding:0;margin-bottom:0}.token-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.token-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;max-width:480px;width:90%;box-shadow:0 8px 32px #0006}.token-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.token-modal-title{font-size:1rem;font-weight:600;color:var(--text)}.token-modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:.9rem;padding:.1rem .3rem;line-height:1}.token-modal-close:hover{color:var(--text)}.token-modal-total{font-size:.85rem;font-family:var(--font-mono);color:var(--accent);margin-bottom:1rem}.token-modal-list{display:flex;flex-direction:column;gap:.5rem}.token-modal-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#6c8cff0d;border-radius:var(--radius-sm)}.token-modal-agent{font-size:.85rem;font-weight:500;color:var(--text);min-width:80px}.token-modal-tokens{font-size:.85rem;font-family:var(--font-mono);color:var(--accent);flex:1;text-align:right}.token-modal-executions{font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted);min-width:50px;text-align:right}.token-modal-empty{font-size:.85rem;color:var(--text-muted);text-align:center;padding:1rem}.skills-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.skills-page-header .page-title{margin-bottom:0}.skills-char-warnings{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.skill-char-summary{font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .5rem}.skill-char-warning{color:#f59e0b;border-color:#f59e0b66;background:#f59e0b14}.skills-scope-tabs{display:flex;gap:.25rem;margin-bottom:1rem;flex-wrap:wrap}.skills-tab{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);padding:.3rem .75rem;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:background .15s,color .15s}.skills-tab:hover{background:var(--surface-hover);color:var(--text)}.skills-tab-active{background:#6c8cff1a;border-color:var(--accent);color:var(--accent)}.skill-card{margin-bottom:.5rem;transition:opacity .15s}.skill-card-disabled{opacity:.5}.skill-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.skill-card-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.skill-card-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.skill-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-name-input{font-weight:600;max-width:260px}.skill-scope-select{width:auto;padding:.2rem .5rem;font-size:.8rem}.skill-card-actions{display:flex;align-items:center;gap:.25rem}.skill-confirm-text{font-size:.8rem;color:var(--text-muted)}.skill-btn-edit{background:var(--surface-hover);color:var(--text-muted);border:1px solid var(--border)}.skill-btn-edit:hover{color:var(--text)}.skill-btn-danger{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.skill-btn-danger:hover{background:#ef444433}.skill-content-preview{font-size:.8rem;color:var(--text-muted);font-family:var(--font-mono);margin-top:.4rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.skill-content-textarea{font-family:var(--font-mono);font-size:.85rem;resize:none;overflow:hidden;min-height:unset}.skill-char-count{font-size:.7rem;color:var(--text-muted);font-family:var(--font-mono);margin-left:.5rem}.skill-file-path{font-size:.7rem;color:var(--text-muted);font-family:var(--font-mono);margin-top:.25rem;opacity:.6}.skill-toggle{position:relative;display:inline-flex;align-items:center;cursor:pointer;flex-shrink:0}.skill-toggle input{opacity:0;width:0;height:0;position:absolute}.skill-toggle-slider{display:inline-block;width:32px;height:18px;background:var(--border);border-radius:9px;transition:background .2s;position:relative}.skill-toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;transition:transform .2s}.skill-toggle input:checked+.skill-toggle-slider{background:var(--accent)}.skill-toggle input:checked+.skill-toggle-slider:after{transform:translate(14px)}.skill-scope-global{background:#22c55e1f;color:#4ade80}.skill-scope-planner{background:#a855f71f;color:#c084fc}.skill-scope-executor{background:#3b82f61f;color:#60a5fa}.skill-scope-reviewer{background:#f59e0b1f;color:#fbbf24}.skill-scope-tester{background:#ef44441f;color:#f87171}.skill-form{margin-bottom:1.25rem}.skill-form-title{font-size:1rem;font-weight:600;margin-bottom:.75rem}.skill-form-row{display:flex;gap:.75rem}.skill-form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.token-value{font-family:var(--font-mono);font-weight:600}.empty-state{text-align:center;padding:2rem;color:var(--text-muted);font-size:.9rem}.loading{text-align:center;padding:2rem;color:var(--text-muted)}.error-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);padding:.75rem 1rem;color:var(--status-failed);font-size:.85rem;margin-bottom:1rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem 2rem;width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:1rem;box-shadow:0 8px 32px #0006}.login-title{font-size:1.25rem;font-weight:700;color:var(--text);text-align:center;margin:0}.login-subtitle{font-size:.85rem;color:var(--text-muted);text-align:center;margin:0}.login-btn-container{margin-top:.5rem;min-height:44px;display:flex;align-items:center;justify-content:center}.login-error{font-size:.8rem;color:var(--status-failed);text-align:center;margin:0}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text-muted);font-size:.9rem}
