.ci-config-root{flex-direction:column;height:100%;display:flex}.ci-config-nav{border-bottom:1px solid var(--border);background:var(--surface-2);align-items:center;gap:4px;padding:8px 20px;display:flex}.ci-config-nav-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;padding:6px 14px;font-size:13px;transition:all .15s}.ci-config-nav-btn:hover{color:var(--text);background:var(--bg)}.ci-config-nav-btn.active{color:var(--text);background:var(--bg);border-color:var(--border-bright);font-weight:600}.ci-config-badge{background:var(--accent);color:var(--bg);border-radius:8px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.ci-config-pending{align-items:center;gap:8px;margin-left:auto;font-size:12px;display:flex}.ci-config-pending-count{color:var(--yellow);font-weight:600}.ci-config-panel{flex:1;padding:16px 20px;overflow-y:auto}.ci-config-pr-link{margin-left:8px;font-size:12px}.ci-config-pr-link a{color:var(--accent);text-decoration:none}.btn-sm{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);cursor:pointer;padding:4px 10px;font-size:12px}.btn-sm:hover{background:var(--bg);border-color:var(--border-bright)}.btn-sm:disabled{opacity:.5;cursor:default}.btn-danger{color:var(--red);border-color:var(--red)}.btn-danger:hover{background:#ff50501a}.ci-config-toggle{flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.ci-config-toggle input{opacity:0;width:0;height:0}.ci-config-toggle-slider{cursor:pointer;background-color:var(--border);border-radius:20px;transition:all .2s;position:absolute;inset:0}.ci-config-toggle-slider:before{content:"";background-color:var(--bg);border-radius:50%;width:14px;height:14px;transition:all .2s;position:absolute;bottom:3px;left:3px}.ci-config-toggle input:checked+.ci-config-toggle-slider{background-color:var(--green)}.ci-config-toggle input:checked+.ci-config-toggle-slider:before{transform:translate(16px)}.ci-config-toggle input:disabled+.ci-config-toggle-slider{opacity:.5;cursor:not-allowed}.ci-config-workflow-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:12px;display:grid}.ci-config-workflow-card.disabled{opacity:.6}.ci-config-category-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.ci-config-workflow-desc{color:var(--text-muted);margin-bottom:8px;font-size:12px;line-height:1.4}.ci-config-workflow-meta{gap:12px;margin-bottom:6px;font-size:11px;display:flex}.ci-config-workflow-file{font-family:var(--font-mono);color:var(--accent);font-size:11px}.ci-config-workflow-triggers{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.ci-config-trigger-pill{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:10px;padding:1px 8px;font-size:10px;display:inline-block}.ci-config-workflow-latest{border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:6px;padding-top:6px;font-size:11px;display:flex}.ci-config-conclusion-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.ci-config-link{color:var(--accent);font-size:11px;text-decoration:none}.ci-config-link:hover{text-decoration:underline}.ci-config-workflow-actions{margin-top:8px}.ci-config-notice{border-radius:var(--radius-sm);color:var(--text-muted);background:#64b4ee1a;border:1px solid #64b4ee33;margin-bottom:16px;padding:8px 12px;font-size:12px}.ci-config-notice code{background:var(--surface-2);border-radius:3px;padding:1px 4px;font-size:11px}.ci-config-jobs{flex-direction:column;gap:8px;display:flex}.ci-config-job-card.disabled{opacity:.6}.ci-config-job-header{justify-content:space-between;align-items:center;display:flex}.ci-config-required-badge{color:var(--green);vertical-align:middle;background:#50c87826;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.ci-config-critical-badge{color:var(--red);vertical-align:middle;background:#ff505026;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.ci-config-expand-arrow{color:var(--text-dim);font-size:10px}.ci-config-job-detail{border-top:1px solid var(--border)}.ci-config-field-row{flex-wrap:wrap;gap:16px;display:flex}.ci-config-field{flex-direction:column;gap:4px;min-width:140px;display:flex}.ci-config-field-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.ci-config-field-hint{color:var(--text-dim);font-size:10px;font-style:italic}.ci-config-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:13px;font-family:var(--font-mono);width:100%;max-width:200px;padding:4px 8px}.ci-config-input:focus{border-color:var(--accent);outline:none}.ci-config-input:disabled{opacity:.5;cursor:not-allowed}.ci-config-code{font-family:var(--font-mono);background:var(--surface-2);color:var(--text-muted);border-radius:3px;padding:2px 6px;font-size:12px}.ci-config-checkbox-group{gap:12px;display:flex}.ci-config-checkbox{cursor:pointer;align-items:center;gap:4px;font-size:13px;display:flex}.ci-config-checkbox input{cursor:pointer}.ci-config-scan-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.ci-config-scan-card.disabled{opacity:.6}.ci-config-tag-list{flex-wrap:wrap;gap:4px;display:flex}.ci-config-tag{font-size:10px;font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:3px;padding:1px 6px;display:inline-block}.ci-config-deployments{flex-direction:column;gap:16px;display:flex}.ci-config-deploy-card.disabled{opacity:.6}.ci-config-provider-badge{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);margin-left:10px;padding:2px 8px;font-size:11px;font-weight:400;display:inline-block}.ci-config-status-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.ci-config-status-dot.active{background:var(--green)}.ci-config-status-dot.inactive{background:var(--red)}.ci-config-deploy-meta{gap:16px;margin-bottom:8px;font-size:11px;display:flex}.ci-config-deploy-inputs .ci-config-field{margin-bottom:4px}.ci-config-preset-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:8px;display:grid}.ci-config-builtin-badge{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);vertical-align:middle;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:10px;display:inline-block}.ci-config-preset-preview{font-family:var(--font-mono);color:var(--text-dim);background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border);white-space:pre;max-height:100px;margin:0;padding:6px 8px;font-size:10px;overflow:hidden}.ci-config-changes-table{border-collapse:collapse;width:100%;font-size:12px}.ci-config-changes-table th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:6px 10px;font-size:11px;font-weight:600}.ci-config-changes-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}.ci-config-changes-table tr:hover td{background:var(--surface-2)}.ci-config-change-file{font-family:var(--font-mono);background:var(--surface-2);color:var(--accent);border-radius:3px;margin-right:4px;padding:1px 6px;font-size:11px;display:inline-block}:root{--bg:#0a0a0f;--surface:#12121a;--surface-2:#1a1a26;--surface-3:#222234;--border:#2a2a3a;--border-bright:#3a3a50;--text:#e0e0e8;--text-dim:#8888a0;--text-muted:#5a5a70;--accent:#7c5cfc;--accent-dim:#5a3fd4;--accent-glow:#7c5cfc26;--green:#34d399;--yellow:#fbbf24;--red:#f87171;--blue:#60a5fa;--orange:#fb923c;--purple:#a78bfa;--teal:#2dd4bf;--font-mono:"SF Mono", "Fira Code", "JetBrains Mono", "Cascadia Code", monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--radius:8px;--radius-sm:6px}:root[data-theme=blue]{--accent:#60a5fa;--accent-dim:#3b82f6;--accent-glow:#60a5fa26}:root[data-theme=green]{--accent:#34d399;--accent-dim:#10b981;--accent-glow:#34d39926}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);min-height:100vh;font-size:14px;line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}.header{background:var(--surface);border-bottom:1px solid var(--border);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;padding:10px 20px;display:flex;position:sticky;top:0}.header h1{color:var(--accent);letter-spacing:-.01em;align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}#app-title{cursor:default;-webkit-user-select:none;user-select:none}#app-title[contenteditable=true]{cursor:text;-webkit-user-select:text;user-select:text;border-bottom:1px dashed var(--accent);outline:none;padding-bottom:1px}#theme-select{width:70px;padding:3px 6px;font-size:11px}.header-controls{align-items:center;gap:8px;display:flex}select,button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;font-family:var(--font-sans);padding:5px 10px;transition:border-color .15s,background .15s}select:hover,button:hover{border-color:var(--accent);background:var(--surface-3)}select:focus,button:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.status-dot.connected{background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot.disconnected{background:var(--red)}.filter-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 20px;display:flex}.filter-bar label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500}.filter-bar select{padding:3px 6px;font-size:11px}.pipeline-gauge{align-items:center;gap:4px;padding:12px 20px;display:flex;overflow-x:auto}.gauge-badge{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);white-space:nowrap;text-align:center;align-items:center;gap:6px;padding:8px 14px;font-size:13px;transition:border-color .2s,transform .15s;display:flex}.gauge-badge[data-status]{cursor:pointer}.gauge-badge[data-status]:hover{border-color:var(--accent);box-shadow:0 2px 8px var(--accent-glow);transform:translateY(-1px)}.gauge-badge[data-status].popover-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.gauge-badge:hover{border-color:var(--border-bright);transform:translateY(-1px)}.gauge-badge .count{font-family:var(--font-mono);font-size:18px;font-weight:700;line-height:1.1}.gauge-badge .label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.gauge-badge.discovered .count{color:var(--purple)}.gauge-badge.triaged .count{color:var(--blue)}.gauge-badge.planned .count{color:var(--green)}.gauge-badge.claimed .count{color:var(--yellow)}.gauge-badge.merged .count{color:var(--teal)}.gauge-badge.pr-open .count{color:var(--blue)}.gauge-badge.active .count{color:var(--orange)}.summary-stats{flex-wrap:wrap;gap:24px;padding:8px 20px 12px;display:flex}.stat-item{align-items:baseline;gap:6px;display:flex}.stat-value{font-family:var(--font-mono);color:var(--text);font-size:18px;font-weight:700}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.gauge-arrow{color:var(--text-muted);flex-shrink:0;align-self:center;font-size:14px}.dashboard-grid{grid-template-columns:1fr 1fr;gap:12px;padding:12px 20px;display:grid}@media (width<=900px){.dashboard-grid{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.card-header{border-bottom:1px solid var(--border);color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;padding:8px 14px;font-size:12px;font-weight:600;display:flex}.card-body{padding:10px 14px}.hosts-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.host-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;transition:border-color .15s}.host-card:hover{border-color:var(--border-bright)}.host-card .host-name{align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.host-card .host-stat{color:var(--text-dim);justify-content:space-between;padding:1px 0;font-size:11px;display:flex}.host-card .host-stat .value{font-family:var(--font-mono);color:var(--text);font-weight:500}.sparkline-container{width:100%;height:80px}.sparkline-container svg{width:100%;height:100%}.event-log-section{padding:0 20px 20px}.event-log-section .card{flex-direction:column;max-height:600px;display:flex}.event-log-controls{align-items:center;gap:6px;display:flex}.search-input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);width:180px;font-size:11px;font-family:var(--font-mono);padding:4px 8px;transition:border-color .15s,width .2s}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow);outline:none;width:240px}.search-input::placeholder{color:var(--text-muted)}.pause-btn{align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:500;display:flex}.pause-btn.paused{background:var(--accent-dim);border-color:var(--accent);color:#fff}.event-count-badge{font-family:var(--font-mono);color:var(--text-dim);background:var(--surface-2);border-radius:10px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:500}.event-log{flex:1;overflow-y:auto}table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}thead th{background:var(--surface);text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);white-space:nowrap;z-index:1;padding:5px 8px;font-size:10px;font-weight:500;position:sticky;top:0}tbody td{font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #2a2a3a80;padding:3px 8px;font-size:11px;overflow:hidden}tbody tr{cursor:pointer;transition:background .1s}tbody tr:hover,tbody tr.expanded{background:var(--surface-2)}tbody tr.detail-row td{white-space:pre-wrap;word-break:break-all;color:var(--text-dim);background:var(--surface-2);border-bottom:1px solid var(--border);cursor:default;padding:8px 12px;font-size:10px}.sev-error{color:var(--red);font-weight:600}.sev-warn{color:var(--yellow)}.sev-info{color:var(--text-dim)}.type-badge{letter-spacing:-.01em;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.type-badge.session{color:var(--blue);background:#60a5fa1f}.type-badge.dispatcher{color:var(--accent);background:#7c5cfc1f}.type-badge.queue{color:var(--green);background:#34d3991f}.type-badge.issue{color:var(--yellow);background:#fbbf241f}.type-badge.other{color:var(--text-dim);background:#8888a01a}.search-highlight{color:var(--yellow);background:#fbbf244d;border-radius:2px;padding:0 1px}.empty-state{text-align:center;color:var(--text-muted);padding:40px;font-size:13px}.new-row{animation:.5s ease-out flash}@keyframes flash{0%{background:var(--accent-glow)}to{background:0 0}}.paused-banner{background:linear-gradient(90deg, var(--accent-dim), var(--surface-2));border-top:1px solid var(--accent);color:#fff;justify-content:center;align-items:center;gap:10px;padding:6px 14px;font-size:12px;font-weight:500;display:flex}.paused-banner button{background:var(--accent);color:#fff;border-radius:var(--radius-sm);border:none;padding:3px 12px;font-size:11px;font-weight:600}#auth-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-dialog{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;width:90%;max-width:380px;padding:32px}.auth-dialog h2{color:var(--text);margin:0 0 8px;font-size:18px}.auth-dialog p{color:var(--text-dim);margin:0 0 16px;font-size:13px}.auth-dialog input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);font-size:14px;font-family:var(--font-mono);box-sizing:border-box;margin-bottom:12px;padding:10px 12px}.auth-dialog input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.auth-dialog button{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;padding:10px;font-size:14px;font-weight:600;transition:opacity .15s}.auth-dialog button:hover{opacity:.9}.auth-error{color:var(--red);min-height:18px;margin:0 0 12px;font-size:13px;font-weight:500}.host-sparkline{background:var(--bg);border-radius:4px;width:100%;height:30px;margin-top:6px}kbd{font-family:var(--font-mono);background:var(--surface-3);border:1px solid var(--border);color:var(--text-dim);vertical-align:1px;border-radius:3px;margin-left:4px;padding:1px 4px;font-size:10px;display:inline-block}.tab-bar-grouped{background:var(--surface);border-bottom:1px solid var(--border)}.tab-groups{border-bottom:1px solid var(--border);gap:0;padding:0 20px;display:flex}.tab-group{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:6px 14px;font-size:11px;font-weight:600;transition:color .15s,border-color .15s}.tab-group:hover{color:var(--text)}.tab-group.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-group.has-active{color:var(--text)}.tab-group.has-active:after{content:"";background:var(--accent);vertical-align:middle;border-radius:50%;width:4px;height:4px;margin-left:4px;display:inline-block}.tab-bar{gap:0;padding:0 20px;display:flex;overflow-x:auto}.tab{color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;padding:7px 14px;font-size:12px;font-weight:500;transition:color .15s,border-color .15s;display:flex}.tab:hover{color:var(--text);background:0 0}.tab.active{color:var(--accent);border-bottom-color:var(--accent);background:0 0}.tab-count{font-family:var(--font-mono);background:var(--surface-2);color:var(--text-dim);border-radius:8px;padding:1px 5px;font-size:10px}.tab-content{display:none}.tab-content.active,.tab-panel,.tab-panel.active{display:block}.section-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 20px;display:flex}.toolbar-left,.toolbar-right{align-items:center;gap:8px;display:flex}.text-dim{color:var(--text-dim);font-size:12px}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:6px 14px;font-size:12px;font-weight:600;transition:opacity .15s}.btn-primary:hover{opacity:.85;background:var(--accent)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-sm{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);cursor:pointer;padding:3px 8px;font-size:11px}.btn-sm:hover{border-color:var(--accent);color:var(--text);background:var(--surface-3)}.btn-errors-only{color:var(--text-dim);border-radius:var(--radius-sm);padding:3px 10px;font-size:11px;font-weight:600;transition:all .15s}.btn-errors-only.active,.btn-errors-only:hover{border-color:var(--red);color:var(--red);background:#f8717126}.btn-hide{color:var(--yellow)}.btn-show{color:var(--green)}.btn-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px}.btn-close:hover{color:var(--text);background:0 0}.issue-table-wrap{padding:0 20px 20px;overflow-x:auto}#issue-table{table-layout:fixed}#issue-table td{font-family:var(--font-mono);font-size:11px}.issue-link{color:var(--blue);font-weight:500;text-decoration:none}.issue-link:hover{text-decoration:underline}.dept-badge{color:var(--accent);background:#7c5cfc1a;border-radius:4px;padding:1px 6px;font-size:10px}.status-pill{border-radius:8px;padding:1px 6px;font-size:10px;font-weight:500}.status-discovered{color:var(--purple);background:#a78bfa26}.status-triaged{color:var(--blue);background:#60a5fa26}.status-planned{color:var(--green);background:#34d39926}.status-claimed{color:var(--yellow);background:#fbbf2426}.status-merged{color:var(--teal);background:#2dd4bf26}.status-done{color:var(--blue);background:#60a5fa26}.graph-panels{grid-template-columns:1fr 1fr;gap:12px;padding:0 20px 20px;display:grid}@media (width<=900px){.graph-panels{grid-template-columns:1fr}}.hotspots-list,.conflicts-list{max-height:500px;overflow-y:auto}.hotspot-row{border-bottom:1px solid #2a2a3a80;padding:6px 10px;position:relative}.hotspot-bar{background:#7c5cfc14;border-radius:3px;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.hotspot-content{flex-direction:column;gap:2px;display:flex;position:relative}.hotspot-file{font-family:var(--font-mono);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.hotspot-count{color:var(--text-dim);font-size:10px}.conflict-row{border-bottom:1px solid #2a2a3a80;flex-wrap:wrap;align-items:baseline;gap:10px;padding:5px 10px;display:flex}.conflict-pair{flex-shrink:0;align-items:center;gap:4px;display:flex}.conflict-x{color:var(--yellow);font-size:12px}.conflict-files{color:var(--text-dim);text-overflow:ellipsis;font-size:10px;overflow:hidden}.conflict-files code{font-family:var(--font-mono);background:var(--surface-2);border-radius:2px;padding:0 3px;font-size:10px}#waves-container{flex-direction:column;gap:12px;padding:0 20px 20px;display:flex}.wave-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.wave-card.wave-active{border-color:var(--accent)}.wave-card.wave-done{border-color:var(--green);opacity:.7}.wave-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 14px;display:flex}.wave-label{color:var(--accent);font-size:13px;font-weight:600}.wave-status{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.wave-issues{padding:6px 14px}.wave-issue{border-bottom:1px solid #2a2a3a4d;align-items:center;gap:8px;padding:3px 0;font-size:11px;display:flex}.wave-issue:last-child{border-bottom:none}.wave-issue-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text);flex:1;overflow:hidden}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:90%;max-width:480px;max-height:80vh;display:flex}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{font-size:15px;font-weight:600}.modal-body{padding:12px 20px;overflow-y:auto}.host-config-row{border-bottom:1px solid #2a2a3a80;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.host-config-row:last-child{border-bottom:none}.host-config-info{flex-direction:column;gap:2px;display:flex}.host-config-name{font-size:13px;font-weight:500}.type-badge.graph{color:var(--teal);background:#34d3991f}.badge-popover{z-index:200;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);box-shadow:0 8px 32px #00000080, 0 0 0 1px var(--border);flex-direction:column;width:520px;max-height:420px;display:flex;position:absolute;overflow:hidden}.popover-header{border-bottom:1px solid var(--border);color:var(--accent);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.popover-body{flex:1;padding:6px 0;overflow-y:auto}.popover-item{border-bottom:1px solid #2a2a3a4d;align-items:center;gap:8px;padding:5px 14px;font-size:11px;transition:background .1s;display:flex}.popover-item:last-child{border-bottom:none}.popover-item:hover{background:var(--surface-2)}.popover-item .pi-number{font-family:var(--font-mono);color:var(--blue);flex-shrink:0;width:50px;font-weight:600}.popover-item .pi-number a{color:var(--blue);text-decoration:none}.popover-item .pi-number a:hover{text-decoration:underline}.popover-item .pi-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text);flex:1;overflow:hidden}.popover-item .pi-host{font-family:var(--font-mono);color:var(--text-dim);text-overflow:ellipsis;flex-shrink:0;max-width:120px;font-size:10px;overflow:hidden}.popover-item .pi-severity{flex-shrink:0;font-size:10px;font-weight:500}.popover-item .pi-wave{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;font-size:10px}.popover-session{border-bottom:1px solid #2a2a3a4d;flex-direction:column;gap:2px;padding:8px 14px;display:flex}.popover-session:last-child{border-bottom:none}.popover-session:hover{background:var(--surface-2)}.popover-session .ps-header{align-items:center;gap:8px;font-size:12px;display:flex}.popover-session .ps-name{color:var(--accent);font-weight:600}.popover-session .ps-host{font-family:var(--font-mono);color:var(--text-dim);font-size:10px}.popover-session .ps-detail{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}@media (width<=600px){.badge-popover{width:calc(100vw - 40px);left:20px!important}}#tab-events .event-log-section{padding:12px 20px 20px}#tab-events .event-log-section .card{max-height:calc(100vh - 160px)}.roadmap-board{gap:8px;min-height:calc(100vh - 200px);padding:12px 20px;display:flex;overflow-x:auto}.roadmap-column{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;flex:0 0 52px;min-width:52px;max-height:calc(100vh - 220px);transition:flex-basis .25s,min-width .25s;display:flex;overflow:hidden}.roadmap-column.expanded{flex:320px;min-width:260px}.roadmap-col-header{border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;transition:background .15s;display:flex}.roadmap-col-header:hover{background:var(--surface-2)}.roadmap-column:not(.expanded) .roadmap-col-header{border-bottom:none;flex-direction:column;gap:8px;padding:12px 8px}.roadmap-column:not(.expanded) .roadmap-col-title{writing-mode:vertical-lr;text-orientation:mixed;white-space:nowrap}.roadmap-column:not(.expanded) .roadmap-items{display:none}.roadmap-col-title{text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.roadmap-col-count{font-family:var(--font-mono);background:var(--surface-2);color:var(--text-dim);border-radius:8px;padding:1px 7px;font-size:11px}.roadmap-items{flex-direction:column;flex:1;gap:6px;min-height:60px;padding:8px;display:flex;overflow-y:auto}.roadmap-items.drag-over{background:var(--accent-glow);border-radius:0 0 var(--radius) var(--radius)}.roadmap-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:grab;padding:10px;transition:all .15s}.roadmap-card:hover{border-color:var(--accent);box-shadow:0 2px 8px var(--accent-glow)}.roadmap-card.dragging{opacity:.4;transform:rotate(2deg)}.roadmap-card-title{color:var(--text);margin-bottom:6px;font-size:12px;font-weight:500;line-height:1.3}.roadmap-card-desc{color:var(--text-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:6px;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.roadmap-card-plan{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);background:var(--surface);border-radius:var(--radius-sm);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:6px;padding:6px 8px;line-height:1.4;display:-webkit-box;overflow:hidden}.roadmap-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.roadmap-card-priority{border-radius:3px;padding:1px 5px;font-size:10px;font-weight:500}.priority-critical{color:var(--red);background:#f8717126}.priority-high{color:var(--yellow);background:#fbbf2426}.priority-medium{color:var(--blue);background:#60a5fa26}.priority-low{color:var(--text-dim);background:#8888a01a}.roadmap-card-tag{font-family:var(--font-mono);color:var(--text-muted);font-size:10px}.roadmap-card-gh{font-family:var(--font-mono);font-size:10px}.roadmap-card-gh a{color:var(--blue);text-decoration:none}.roadmap-card-gh a:hover{text-decoration:underline}.roadmap-column[data-status=draft] .roadmap-col-header{border-top:2px solid var(--text-muted)}.roadmap-column[data-status=scoping] .roadmap-col-header{border-top:2px solid var(--purple)}.roadmap-column[data-status=awaiting-approval] .roadmap-col-header{border-top:2px solid var(--yellow)}.roadmap-column[data-status=approved] .roadmap-col-header{border-top:2px solid var(--green)}.roadmap-column[data-status=building] .roadmap-col-header{border-top:2px solid var(--orange)}.roadmap-column[data-status=shipped] .roadmap-col-header{border-top:2px solid var(--teal)}.notification-dot{background:var(--yellow);border-radius:50%;width:6px;height:6px;margin-right:3px;animation:2s infinite pulse-dot;display:inline-block}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.label-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;padding:12px 20px;display:grid}.label-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:10px 14px;transition:border-color .15s;display:flex}.label-card:hover{border-color:var(--border-bright)}.label-name{color:var(--text);font-size:12px;font-weight:500}.label-count-badge{font-family:var(--font-mono);color:var(--accent);background:var(--accent-glow);text-align:center;border-radius:10px;min-width:36px;padding:2px 10px;font-size:13px;font-weight:700}.label-bar{background:var(--surface-2);border-radius:2px;width:100%;height:3px;margin-top:6px;overflow:hidden}.label-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.label-card-header{cursor:pointer;flex:1;align-items:center;gap:10px;display:flex}.label-expand-icon{color:var(--text-dim);flex-shrink:0;font-size:10px}.label-card.expanded{flex-direction:column;grid-column:1/-1}.label-issues-container{margin-top:10px}.label-issues-table{border-collapse:collapse;width:100%;font-size:12px}.label-issues-table th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:4px 8px;font-size:10px;font-weight:600}.label-issues-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 8px}.label-issues-table tr:hover td{background:var(--surface-2)}.label-issues-table tr.already-imported{opacity:.5}.on-roadmap-badge{color:var(--green);text-transform:uppercase;letter-spacing:.03em;background:#34d39926;border-radius:8px;padding:1px 6px;font-size:9px;font-weight:600}.import-toolbar{align-items:center;gap:8px;padding:6px 0;display:flex}.import-btn{font-size:12px}.form-group{margin-bottom:14px}.form-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.form-input,.form-textarea,.form-select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);font-size:13px;font-family:var(--font-sans);box-sizing:border-box;padding:8px 10px}.form-select{font-family:var(--font-sans)}.form-textarea{resize:vertical;font-family:var(--font-sans)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.form-row{gap:12px;display:flex}.form-row .form-group{flex:1}.form-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.form-error{color:var(--red);margin-top:10px;font-size:12px;font-weight:500}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.btn-approve{background:var(--green);color:#000;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:6px 14px;font-size:12px;font-weight:600}.btn-approve:hover{opacity:.85;background:var(--green)}.btn-reject{color:var(--red);border-radius:var(--radius-sm);cursor:pointer;background:#f8717126;border:1px solid #f871714d;padding:6px 14px;font-size:12px;font-weight:500}.btn-reject:hover{background:#f8717140}.scoping-plan{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);white-space:pre-wrap;margin:12px 0;padding:14px;font-size:12px;line-height:1.6}.status-awaitingapproval{color:var(--yellow);background:#fbbf2426}.status-approved{color:var(--green);background:#34d39926}.status-building{color:var(--orange);background:#fb923c26}.status-shipped{color:var(--teal);background:#2dd4bf26}.status-draft{color:var(--text-muted);background:#5a5a7026}.status-scoping{color:var(--purple);background:#a78bfa26}.ci-summary{flex-wrap:wrap;gap:24px;padding:12px 20px;display:flex}.ci-section{padding:0 20px 12px}.ci-runners-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.ci-runner-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;transition:border-color .15s}.ci-runner-card:hover{border-color:var(--border-bright)}.ci-runner-card .runner-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ci-runner-card .runner-name{align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.ci-runner-card .runner-os{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.ci-runner-card .runner-labels{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.runner-label-tag{color:var(--accent);background:#7c5cfc1a;border-radius:4px;padding:1px 6px;font-size:10px}.runner-status{text-transform:uppercase;letter-spacing:.04em;border-radius:8px;padding:2px 8px;font-size:10px;font-weight:600}.runner-status.online-idle{color:var(--green);background:#34d39926}.runner-status.online-busy{color:var(--yellow);background:#fbbf2426}.runner-status.offline{color:var(--red);background:#f8717126}th.sortable{cursor:pointer;position:relative;padding-right:18px!important}th.sortable:hover{color:var(--text)}th.sortable:after{content:"⇅";opacity:.3;font-size:10px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}th.sortable.sort-asc:after{content:"▲";opacity:.8}th.sortable.sort-desc:after{content:"▼";opacity:.8}.ci-runners-table-wrap{padding:0 20px 12px;overflow-x:auto}.ci-runners-table{border-collapse:collapse;width:100%}.ci-runners-table th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;padding:6px 10px;font-size:10px;font-weight:600}.ci-runners-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px;font-size:12px}.ci-runners-table tr:hover td{background:var(--surface-2)}.ci-runners-table .runner-name{align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.ci-runners-table .runner-os{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.ci-runners-table .runner-labels{flex-wrap:wrap;gap:4px;display:inline-flex}.ci-runs-table-wrap{padding:0 20px 20px;overflow-x:auto}#ci-runs-table{table-layout:fixed}#ci-runs-table td{font-family:var(--font-mono);font-size:11px}.ci-conclusion{border-radius:8px;padding:1px 6px;font-size:10px;font-weight:500}.ci-conclusion.success{color:var(--green);background:#34d39926}.ci-conclusion.failure{color:var(--red);background:#f8717126}.ci-conclusion.cancelled{color:var(--yellow);background:#fbbf2426}.ci-conclusion.skipped{color:var(--text-dim);background:#8888a01a}.ci-conclusion.in_progress{color:var(--blue);background:#60a5fa26}.ci-conclusion.queued{color:var(--purple);background:#a78bfa26}.ci-conclusion.waiting{color:var(--text-dim);background:#a78bfa1a}.ci-run-link{color:var(--blue);font-weight:500;text-decoration:none}.ci-run-link:hover{text-decoration:underline}.ci-branch{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ci-branch.factory-branch{color:var(--accent);font-weight:500}.ci-trigger{color:var(--text-dim);background:#8888a014;border-radius:4px;padding:1px 5px;font-size:10px}.ci-failures-list{max-height:400px;overflow-y:auto}.fd-meta{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.fd-meta-item{color:var(--text-dim);font-size:11px}.fd-meta-item strong{color:var(--text)}.fd-description{color:var(--text);white-space:pre-wrap;margin-bottom:12px;font-size:13px;line-height:1.6}.fd-section-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-top:14px;margin-bottom:6px;font-size:11px;font-weight:600}.fd-activity-section,.fd-comments-section{margin-top:8px}.fd-activity-group{margin-bottom:8px}.fd-activity-group-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:10px;font-weight:600}.fd-activity-item{align-items:center;gap:6px;padding:3px 0;font-size:11px;display:flex}@keyframes spin-pulse{0%,to{opacity:1}50%{opacity:.3}}.spinning-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.5s ease-in-out infinite spin-pulse;display:inline-block}.fd-comment{border-bottom:1px solid var(--border);padding:8px 0}.fd-comment:last-of-type{border-bottom:none}.fd-comment-header{align-items:center;gap:6px;margin-bottom:4px;font-size:11px;display:flex}.fd-comment-avatar{border-radius:50%;width:20px;height:20px}.fd-comment-body{color:var(--text);font-size:12px;line-height:1.5}.fd-comment-form{align-items:flex-end;gap:8px;margin-top:8px;display:flex}.fd-comment-form textarea{resize:vertical;flex:1;min-height:36px}.roadmap-activity-badge{vertical-align:middle;align-items:center;gap:4px;margin-left:6px;display:inline-flex}.ci-failure-item{border-bottom:1px solid #2a2a3a80;flex-direction:column;gap:4px;padding:8px 10px;transition:background .1s;display:flex}.ci-failure-item:last-child{border-bottom:none}.ci-failure-item:hover{background:var(--surface-2)}.ci-failure-header{align-items:center;gap:8px;font-size:12px;display:flex}.ci-failure-run{font-family:var(--font-mono);color:var(--red);flex-shrink:0;font-weight:600}.ci-failure-run a{color:var(--red);text-decoration:none}.ci-failure-run a:hover{text-decoration:underline}.ci-failure-workflow{text-overflow:ellipsis;white-space:nowrap;color:var(--text);flex:1;overflow:hidden}.ci-failure-branch{font-family:var(--font-mono);color:var(--text-dim);text-overflow:ellipsis;max-width:180px;font-size:10px;overflow:hidden}.ci-failure-time{color:var(--text-muted);flex-shrink:0;font-size:10px}.ci-failure-jobs{flex-wrap:wrap;gap:4px;padding-left:4px;display:flex}.ci-failure-job-tag{color:var(--red);font-size:10px;font-family:var(--font-mono);background:#f871711a;border-radius:4px;padding:1px 6px}.ci-jobs-row td{background:var(--surface-2);padding:0!important}.ci-jobs-detail{padding:6px 12px 8px 60px}.ci-job-item{font-size:11px;font-family:var(--font-mono);border-bottom:1px solid #2a2a3a4d;align-items:center;gap:8px;padding:3px 0;display:flex}.ci-job-item:last-child{border-bottom:none}.ci-job-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);flex:1;overflow:hidden}.ci-job-duration{color:var(--text-dim);flex-shrink:0;font-size:10px}.ci-job-runner{color:var(--text-muted);text-overflow:ellipsis;flex-shrink:0;max-width:120px;font-size:10px;overflow:hidden}.ci-job-link{color:var(--blue);font-size:10px;text-decoration:none}.ci-job-link:hover{text-decoration:underline}.ci-expand-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;font-size:10px;font-family:var(--font-mono);background:0 0;border-radius:4px;padding:1px 6px}.ci-expand-btn:hover{border-color:var(--accent);color:var(--text);background:0 0}.ci-category-bar{flex-wrap:wrap;gap:6px;min-height:24px;padding:0 20px 8px;display:flex}.ci-cat-pill{cursor:pointer;border:1px solid #0000;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:500;transition:border-color .15s,opacity .15s;display:inline-flex}.ci-cat-pill:hover{opacity:.85}.ci-cat-pill.active{border-color:var(--text)}.ci-cat-pill .ci-cat-count{text-align:center;min-width:14px;font-size:9px;font-weight:700}.ci-cat-build{color:var(--yellow);background:#fbbf2426}.ci-cat-unit{color:var(--blue);background:#60a5fa26}.ci-cat-e2e{color:var(--red);background:#f8717126}.ci-cat-security{color:var(--purple);background:#a78bfa26}.ci-cat-infra{color:var(--text-dim);background:#8888a01f}.ci-cat-tenant{color:#fb923c;background:#fb923c26}.ci-cat-coverage{color:var(--green);background:#34d39926}.ci-category-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:6px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600}.ci-actions{align-items:center;gap:4px;display:flex}.ci-action-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;font-size:10px;font-family:var(--font-mono);white-space:nowrap;background:0 0;border-radius:4px;padding:2px 6px;transition:all .15s}.ci-action-btn:hover{border-color:var(--accent);color:var(--text)}.ci-action-btn.retry:hover{border-color:var(--green);color:var(--green)}.ci-action-btn.cancel:hover{border-color:var(--red);color:var(--red)}.ci-action-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.ci-action-btn.loading{opacity:.6;pointer-events:none}.keyboard-hints{background:var(--surface);border-top:1px solid var(--border);color:var(--text-muted);z-index:50;opacity:.7;justify-content:center;align-items:center;gap:16px;padding:5px 20px;font-size:11px;transition:opacity .15s;display:flex;position:fixed;bottom:0;left:0;right:0}.keyboard-hints:hover{opacity:1}.tab-loading{justify-content:center;align-items:center;padding:60px 20px;display:flex}.tab-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite tab-spin}@keyframes tab-spin{to{transform:rotate(360deg)}}.auth-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-shell{min-height:100vh;padding-bottom:32px}
