:root{--bg:#0f172a;--bg-secondary:#1e293b;--bg-elevated:#273548;--text:#e2e8f0;--text-muted:#94a3b8;--text-dim:#64748b;--accent-blue:#3b82f6;--accent-green:#10b981;--accent-amber:#f59e0b;--accent-red:#ef4444;--border:#334155;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"SF Mono","Fira Code","Fira Mono",monospace;--radius-sm:4px;--radius-md:6px;--radius-lg:8px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.6}a{color:var(--accent-blue);text-decoration:none}a:hover{text-decoration:underline}main{max-width:1200px;margin:0 auto;padding:1.5rem}h1{font-size:1.5rem}h1,h2{font-weight:600}h2{font-size:1.15rem;color:var(--text)}h3{font-size:1rem;font-weight:600;color:var(--accent-blue)}.panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.tag{font-size:.7rem;padding:.1rem .35rem;border-radius:3px;font-weight:600;display:inline-block}.tag-def{background:#7f1d1d;color:#fca5a5}.tag-req{background:#1e3a5f;color:#93c5fd}.tag-task{background:#365314;color:#bef264}.tag-inbox{background:#4c1d95;color:#c4b5fd}.tag-done{background:#064e3b;color:#6ee7b7}.tag-outstanding{background:#78350f;color:#fcd34d}button{font-family:inherit;cursor:pointer}.btn{padding:.5rem 1rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);transition:border-color .15s}.btn:hover{border-color:var(--accent-blue)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.btn-danger{background:var(--accent-red);color:#fff;border-color:var(--accent-red)}.input{width:100%;padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-size:.9rem;font-family:inherit;transition:border-color .15s}.input:focus{outline:none;border-color:var(--accent-blue)}.label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.25rem}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table th{text-align:left;color:var(--text-muted);font-weight:500}.table td,.table th{padding:.5rem .75rem;border-bottom:1px solid var(--border)}.table tr:hover{background:var(--bg-elevated)}.grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:1fr}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.page-header .input{width:auto}.flex-spacer{flex:1 1}.form-stack{flex-direction:column}.form-grid,.form-stack{display:flex;gap:.75rem}.form-grid{flex-wrap:wrap}.form-field{flex:1 1;min-width:120px}.list-stack{gap:.75rem}.list-stack,.list-stack-sm{display:flex;flex-direction:column}.list-stack-sm{gap:.3rem}.list-stack-xs{display:flex;flex-direction:column;gap:.4rem}.row-between{display:flex;justify-content:space-between}.row-center{display:flex;align-items:center;gap:.5rem}.row-start{display:flex;align-items:flex-start;gap:1rem}.mb-sm{margin-bottom:.5rem}.mb-md{margin-bottom:.75rem}.mb-lg{margin-bottom:1.5rem}.text-sm{font-size:.85rem}.text-xs{font-size:.8rem}.text-body{font-size:.875rem}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}.text-error{color:var(--accent-red)}.text-success{color:var(--accent-green)}.fw-500{font-weight:500}.fw-600{font-weight:600}.stat-value{font-size:2rem;font-weight:700}.stat-label{font-size:.85rem;color:var(--text-muted)}.metadata{display:flex;gap:.75rem;font-size:.8rem;color:var(--text-dim)}.form-error{color:var(--accent-red);font-size:.85rem}.form-success{color:var(--accent-green);font-size:.85rem}.tag-btn{cursor:pointer;border:none;font-family:inherit}.btn-xs{font-size:.75rem;padding:.2rem .5rem}.btn-sm{font-size:.8rem}.btn-ghost{background:none;border:none;color:var(--text-dim);cursor:pointer}.section-divider{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.panel-flush{padding:0;overflow:auto}.card-link,.card-link:hover{text-decoration:none}.self-start{align-self:flex-start}.w-full{width:100%}.resize-y{resize:vertical}.nowrap{white-space:nowrap}.max-w-form{max-width:28rem}.line-through{text-decoration:line-through}.assign-panel{padding:.5rem;background:var(--bg);border-radius:var(--radius-md)}.breakdown-list{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem}.app-nav{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-wrap:wrap}.app-nav-brand{font-weight:600;font-size:1rem;color:var(--text);margin-right:1.5rem;text-decoration:none}.app-nav-project-select{font-size:.8rem;padding:.2rem .4rem;border-radius:5px;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);margin-right:.5rem;cursor:pointer}.app-nav-links{display:flex;gap:.25rem}.app-nav-link{font-size:.85rem;padding:.3rem .7rem;border-radius:5px;color:var(--text-muted);background:transparent;text-decoration:none}.app-nav-link.active{color:var(--text);background:var(--bg-elevated)}.app-nav-signout,.app-nav-user{font-size:.8rem;color:var(--text-dim)}.app-nav-signout{background:none;border:none;cursor:pointer}.nav-badge{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent-amber);margin-left:.3rem;vertical-align:middle}.approval-prompt,.nav-badge{animation:pipeline-pulse 1.5s ease-in-out infinite}.approval-prompt{font-size:.75rem;font-weight:600;color:var(--accent-amber);text-decoration:none;margin-right:.5rem}.timeline{display:flex;flex-direction:column;gap:.25rem;padding-left:.75rem;border-left:2px solid var(--border)}.timeline-item{display:flex;align-items:center;gap:.5rem;position:relative}.timeline-dot{width:8px;height:8px;border-radius:50%;position:absolute;left:-.95rem;flex-shrink:0}.timeline-content{display:flex;align-items:center;gap:.25rem;padding:.15rem 0;width:100%}.progress-bar{width:100%;height:6px;background:var(--bg);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:3px;transition:width .3s}.pipeline-graph{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding:1rem 0}.pipeline-segment{display:flex;flex-direction:column;align-items:center;gap:.4rem;position:relative;flex-shrink:0}.pipeline-node{width:28px;height:28px;border-radius:50%;border:2.5px solid var(--border);cursor:pointer;transition:box-shadow .15s,transform .15s;padding:0;font-size:0}.pipeline-node:hover{transform:scale(1.15)}.pipeline-node.active{box-shadow:0 0 0 3px var(--accent-blue)}.pipeline-node.stale{opacity:.5}.pipeline-node.in-progress{animation:pipeline-pulse 1.5s ease-in-out infinite}@keyframes pipeline-pulse{0%,to{box-shadow:0 0 0 0 rgba(59,130,246,.4)}50%{box-shadow:0 0 0 6px rgba(59,130,246,0)}}.pipeline-connector{width:36px;height:2.5px;position:absolute;top:14px;right:100%;margin-right:0}.pipeline-node-label{font-size:.7rem;color:var(--text-muted);white-space:nowrap;text-align:center}.pipeline-stale-badge{font-size:.6rem;color:var(--accent-amber);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.pipeline-segment+.pipeline-segment{margin-left:36px}.update-banner{display:flex;align-items:center;gap:.75rem;padding:.5rem 1.5rem;background:var(--accent-blue);color:#fff;font-size:.8rem}.update-banner .btn{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.3);color:#fff}.update-banner .btn-ghost{color:rgba(255,255,255,.7)}.pipeline-layout{display:flex;gap:1rem;min-height:400px}.execution-list{width:200px;flex-shrink:0;gap:.25rem;overflow-y:auto;max-height:60vh}.execution-item,.execution-list{display:flex;flex-direction:column}.execution-item{gap:.15rem;padding:.5rem .6rem;border-radius:var(--radius-md);cursor:pointer;border:1px solid transparent;transition:background .1s,border-color .1s}.execution-item.active,.execution-item:hover{background:var(--bg-elevated)}.execution-item.active{border-color:var(--accent-blue)}.execution-sha{font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--text)}.execution-status{font-size:.7rem;font-weight:600}.execution-time{font-size:.7rem;color:var(--text-dim)}.execution-detail{flex:1 1;min-width:0}@media (max-width:640px){.pipeline-layout{flex-direction:column}.execution-list{width:100%;flex-direction:row;overflow-x:auto;overflow-y:hidden;max-height:none}.execution-item{flex-shrink:0}}.docs-layout{display:flex;gap:1rem;min-height:400px}.docs-sidebar{width:240px;flex-shrink:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.75rem;overflow-y:auto;max-height:70vh}.docs-content{flex:1 1;min-width:0}.docs-tabs{display:flex;gap:.25rem;margin-bottom:1rem}.docs-tab{padding:.4rem 1rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.docs-tab.active{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.docs-editor{resize:vertical;min-height:200px;font-family:var(--font-mono);font-size:.85rem;line-height:1.5}.docs-markdown h1,.docs-markdown h2,.docs-markdown h3{margin-top:1rem;margin-bottom:.5rem}.docs-markdown p{margin-bottom:.4rem}.tree-item{display:flex;align-items:center;gap:.25rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s}.tree-item.active,.tree-item:hover{background:var(--bg-elevated)}.tree-item.active{border-left:2px solid var(--accent-blue)}.tree-toggle{color:var(--text-dim);font-size:.6rem;padding:.15rem;flex-shrink:0;width:1rem;text-align:center}.tree-label,.tree-toggle{background:none;border:none;cursor:pointer}.tree-label{color:var(--text);font-size:.8rem;text-align:left;padding:.25rem;flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:640px){.grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){main{padding:1rem}h1{font-size:1.25rem}.panel{padding:1rem}.app-nav{padding:.5rem 1rem}.app-nav-brand{margin-right:.75rem}.app-nav-link{font-size:.75rem;padding:.25rem .5rem}.app-nav-user{display:none}.table{font-size:.8rem}.table td,.table th{padding:.4rem .5rem}}