:root{--bg: #0d1117;--bg-elevated: #161b22;--bg-hover: #21262d;--bg-card: #161b22;--text: #f0f6fc;--text-muted: #8b949e;--accent: #539bf5;--accent-hover: #6cb6ff;--accent-dim: #388bfd;--border: #30363d;--border-subtle: #21262d;--success: #3fb950;--success-bg: rgba(63, 185, 80, .12);--warning: #d29922;--warning-bg: rgba(210, 153, 34, .12);--danger: #f85149;--danger-bg: rgba(248, 81, 73, .12);--radius: 10px;--radius-sm: 6px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;font-size:15px}a{color:var(--accent);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent-hover);text-decoration:underline}#root{min-height:100vh}.layout{min-height:100vh;display:flex;flex-direction:column}.header{padding:.875rem 1.75rem;background:var(--bg-elevated);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:1.5rem;box-shadow:var(--shadow-sm)}.logo{font-weight:700;font-size:1.25rem;letter-spacing:-.02em;color:var(--text);display:flex;align-items:center;gap:.5rem}.logo:hover{text-decoration:none;color:var(--accent-hover)}.logo-icon{font-size:1.25em;line-height:1;opacity:.9}.tagline{font-size:.75rem;color:var(--text-muted)}.main{flex:1;padding:1.75rem 2rem;max-width:1280px;margin:0 auto;width:100%}.page{width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.page-header h1{margin:0;font-size:1.625rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.filters{display:flex;align-items:center;gap:.5rem}.filter-label{color:var(--text-muted);font-size:.875rem;font-weight:500}.filter-select{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);padding:.5rem .875rem;border-radius:var(--radius-sm);font-size:.875rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.filter-select:focus{outline:none;border-color:var(--accent)}.muted{color:var(--text-muted);font-size:.875rem;margin:0 0 1rem;line-height:1.5}.loading{padding:3rem 2rem;text-align:center;color:var(--text-muted);font-size:.9375rem}.error-banner{background:var(--danger-bg);border:1px solid rgba(248,81,73,.4);color:#ff7b72;padding:.875rem 1.25rem;border-radius:var(--radius);margin-bottom:1.25rem;font-size:.875rem}.empty{color:var(--text-muted);text-align:center;padding:2.5rem 1.5rem;font-size:.9375rem}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow-sm)}.pr-table{width:100%;border-collapse:collapse;font-size:.875rem}.pr-table th,.pr-table td{padding:.875rem 1.25rem;text-align:left;border-bottom:1px solid var(--border-subtle)}.pr-table th{color:var(--text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;background:#0003}.pr-table tbody tr{transition:background .15s ease}.pr-table tbody tr:hover{background:var(--bg-hover)}.pr-table tbody tr:last-child td{border-bottom:none}.repo{font-family:ui-monospace,SF Mono,monospace;font-size:.8125rem}.pr-num{color:var(--accent);font-weight:600}.title{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.changes{color:var(--text-muted);font-size:.8125rem}.link-button{display:inline-block;padding:.35rem .75rem;background:var(--bg-hover);border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;transition:background .15s ease,color .15s ease}.link-button:hover{background:var(--accent);color:var(--bg);text-decoration:none}.risk-badge{display:inline-flex;align-items:center;padding:.3rem .65rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;letter-spacing:.02em}.risk-badge.low{background:var(--success-bg);color:#56d364}.risk-badge.medium{background:var(--warning-bg);color:#e3b341}.risk-badge.high{background:var(--danger-bg);color:#ff7b72}.risk-badge .score{font-weight:500;margin-left:.35rem;opacity:.95}.risk-score-bar{display:flex;align-items:center;gap:.5rem;min-width:80px}.bar-track{flex:1;height:8px;background:var(--bg-hover);border-radius:999px;overflow:hidden}.bar-fill{height:100%;border-radius:999px;transition:width .25s ease}.bar-fill.low{background:#56d364}.bar-fill.medium{background:#e3b341}.bar-fill.high{background:#ff7b72}.bar-label{font-size:.75rem;font-weight:500;color:var(--text-muted);white-space:nowrap}.back{margin-bottom:1.25rem}.back a{font-size:.875rem;font-weight:500;color:var(--text-muted);display:inline-flex;align-items:center;gap:.35rem;transition:color .15s ease}.back a:hover{color:var(--accent)}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.detail-header h1{margin:0;font-size:1.375rem;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.mr-state-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;line-height:1}.mr-state-badge.mr-state-open{background:#d1fae5;color:#065f46}.mr-state-badge.mr-state-closed{background:#fee2e2;color:#991b1b}.mr-state-badge.mr-state-merged{background:#ede9fe;color:#5b21b6}.mr-closed-banner{display:flex;align-items:flex-start;gap:.75rem;padding:.9rem 1.1rem;margin-bottom:1.25rem;border-radius:var(--radius);background:#fff7ed;border:1px solid #fdba74;color:#7c2d12;font-size:.875rem;line-height:1.5}.mr-closed-banner strong{color:#9a3412}.mr-closed-icon{font-size:1.1rem;flex-shrink:0;margin-top:.05rem}.detail-header-actions{display:flex;align-items:center;gap:.75rem}.btn-reanalyze{padding:.45rem .9rem;font-size:.8125rem;font-weight:500;font-family:inherit;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s ease}.btn-reanalyze:hover:not(:disabled){opacity:.9}.btn-reanalyze:disabled{opacity:.6;cursor:not-allowed}.pr-detail .title{max-width:none;white-space:normal;margin:0 0 .35rem;font-size:1.0625rem;font-weight:500}.meta{color:var(--text-muted);font-size:.875rem;margin:0 0 1.5rem;line-height:1.5}.external{font-size:.875rem;font-weight:500}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.25rem;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md)}.card h2{margin:0 0 1rem;font-size:1.2rem;font-weight:600;letter-spacing:-.01em;color:var(--text)}.card h3{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:var(--text)}.risk-section{border-left:3px solid var(--accent)}.risk-section .risk-summary{display:flex;align-items:center;gap:1.25rem;margin-bottom:1rem;flex-wrap:wrap}.risk-section .risk-summary .risk-score-bar{min-width:120px}.risk-drivers{margin:1rem 0}.risk-drivers h3{font-size:.875rem;font-weight:600;color:var(--text-muted);margin-bottom:.5rem}.risk-drivers ul{margin:.25rem 0 0;padding-left:1.25rem;line-height:1.6}.recommendation{margin:1rem 0 0;padding:1rem;background:var(--bg);border-radius:var(--radius-sm);font-size:.875rem;border-left:3px solid var(--accent);color:var(--text-muted);line-height:1.5}.reports-section{margin-top:1.75rem}.reports-section h2{margin:0 0 1.25rem;font-size:1.2rem;font-weight:600}.report-card{margin-bottom:1.25rem;padding:1.5rem}.report-card h3{font-size:1rem;font-weight:600;margin-bottom:.5rem}.report-card .summary{margin:.5rem 0 1rem;font-size:.875rem;color:var(--text-muted);line-height:1.5}.findings{list-style:none;padding:0;margin:0}.findings li{margin:.75rem 0;padding:.75rem;background:var(--bg);border-radius:var(--radius);font-size:.875rem}.findings .file{color:var(--text-muted);font-size:.8125rem}.findings p{margin:.35rem 0 0;color:var(--text-muted)}.findings-by-location{margin-top:1rem}.findings-by-location h2{margin:0 0 .5rem}.finding-blocks{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.finding-block{padding:1.25rem;background:var(--bg);border-radius:var(--radius);border-left:4px solid var(--accent);transition:opacity .2s ease}.finding-block.ignored{opacity:.7;border-left-color:var(--text-muted)}.finding-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.35rem}.finding-type{font-size:.75rem;font-weight:600;color:var(--accent)}.finding-path{font-family:ui-monospace,monospace;font-size:.8125rem;color:var(--text-muted)}.finding-title{margin:0 0 .35rem;font-size:.9375rem}.finding-code-label{display:block;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:.5rem 0 .25rem}.finding-desc{margin:0 0 .75rem;font-size:.875rem;color:var(--text-muted);line-height:1.45}.finding-snippet{margin:.5rem 0 .75rem;padding:1rem;font-family:ui-monospace,Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.5;background:#1e1e2e;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);overflow-x:auto;white-space:pre;color:#cdd6f4}.finding-snippet:before{content:"Code";display:block;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.finding-suggestion{margin-top:.75rem;padding:.75rem 1rem;background:#a6e3a114;border:1px solid rgba(166,227,161,.25);border-left:3px solid #a6e3a1;border-radius:var(--radius)}.suggestion-label{display:block;font-size:.7rem;font-weight:600;color:#a6e3a1;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.suggestion-content{margin:0;font-family:ui-monospace,Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--text)}.btn-ignore{padding:.4rem .85rem;font-size:.8125rem;font-weight:500;font-family:inherit;background:var(--bg-hover);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;margin-top:.5rem;transition:background .15s ease,color .15s ease,border-color .15s ease}.btn-ignore:hover:not(:disabled){background:var(--warning-bg);color:#e3b341;border-color:#d2992266}.btn-ignore:disabled{opacity:.6;cursor:not-allowed}.finding-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.btn-fix{padding:.4rem .85rem;font-size:.8125rem;font-weight:500;font-family:inherit;background:var(--accent);color:#fff;border:1px solid var(--accent-dim);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,opacity .15s ease,transform .05s ease}.btn-fix:hover:not(:disabled){background:var(--accent-hover);color:#fff}.btn-fix:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-hover);color:var(--text-muted);border-color:var(--border)}.fix-feedback.success{margin-top:.5rem;font-size:.8125rem;color:var(--success)}.fix-error{margin-bottom:1rem}.fix-success{margin-bottom:1rem;padding:.65rem 1rem;background:#228b221f;color:var(--success, #2a8a2a);border-radius:var(--radius-sm);border:1px solid rgba(34,139,34,.25);font-size:.875rem}.apply-selected-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;background:var(--bg-hover);border-radius:var(--radius-sm);border:1px solid var(--border)}.apply-selected-label{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.btn-apply-selected{padding:.45rem 1rem;font-size:.875rem;font-weight:500;font-family:inherit;background:var(--accent);color:#fff;border:1px solid var(--accent-dim);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,opacity .15s ease}.btn-apply-selected:hover:not(:disabled){background:var(--accent-hover);color:#fff}.btn-apply-selected:disabled{opacity:.5;cursor:not-allowed}.btn-clear-selection{padding:.35rem .65rem;font-size:.8125rem;font-family:inherit;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.btn-clear-selection:hover{color:var(--text);border-color:var(--text-muted)}.finding-checkbox{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;font-size:.8125rem;color:var(--text-muted);margin-right:.5rem}.finding-checkbox input{cursor:pointer}.finding-checkbox .checkbox-label{-webkit-user-select:none;user-select:none}.ignored-badge{font-size:.7rem;padding:.15rem .4rem;background:var(--text-muted);color:var(--bg);border-radius:4px;font-weight:500}.diff-excerpt{font-size:.75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-all;margin:0;max-height:300px;overflow-y:auto}.resolved-section{border-left:3px solid var(--success)}.resolved-section h2{color:var(--success)}.resolved-intro{margin:0 0 1rem;font-size:.875rem;color:var(--text-muted)}.resolved-list{display:flex;flex-direction:column;gap:.5rem}.resolved-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#3fb9501a;border-radius:var(--radius);flex-wrap:wrap}.resolved-badge{font-size:.7rem;font-weight:600;padding:.15rem .4rem;background:var(--success);color:var(--bg);border-radius:4px;text-transform:uppercase}.resolved-title{flex:1;font-size:.875rem;text-decoration:line-through;color:var(--text-muted)}.resolved-date{font-size:.75rem;color:var(--text-muted)}.resolved-item-detail{padding:1rem;background:#3fb95014;border:1px solid rgba(63,185,80,.25);border-radius:var(--radius);display:flex;flex-direction:column;gap:.75rem}.resolved-item-detail .resolved-item-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.resolved-item-detail .resolved-title{flex:1;text-decoration:line-through}.resolved-location{font-size:.8125rem;color:var(--text);font-family:ui-monospace,Fira Code,monospace}.resolved-diff{display:flex;flex-direction:column;gap:.75rem}.resolved-block{font-size:.8125rem}.resolved-block strong{display:block;margin-bottom:.25rem}.resolved-code{margin:0;padding:.75rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-height:180px;overflow-y:auto}.resolved-code-new{border-color:#3fb95066;background:#3fb9500f}.resolved-fix{font-size:.8125rem}.resolved-fix-code{margin:.35rem 0 0;padding:.75rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-height:200px;overflow-y:auto}.analysis-count{margin:.5rem 0 0;font-size:.8rem}.nav{display:flex;gap:.25rem;margin-left:auto}.nav-link{padding:.5rem 1rem;color:var(--text-muted);font-size:.875rem;font-weight:500;border-radius:var(--radius-sm);transition:color .15s ease,background .15s ease}.nav-link:hover{color:var(--text);background:var(--bg-hover);text-decoration:none}.nav-link.active{color:var(--accent);background:#539bf51f;text-decoration:none}.add-project-form{margin-bottom:1.5rem}.add-project-form h3{margin:0 0 1rem;font-weight:600}.form-row{display:flex;gap:.75rem;margin-bottom:.5rem;align-items:center}.input{flex:1;padding:.6rem 1rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.875rem;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #539bf526}.input::placeholder{color:var(--text-muted);opacity:.8}.btn-primary{padding:.6rem 1.25rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit;transition:background .15s ease,transform .05s ease;box-shadow:0 1px 2px #0003}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-secondary{padding:.5rem 1rem;background:var(--bg-hover);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s ease,border-color .15s ease}.btn-secondary:hover{background:var(--border);border-color:var(--text-muted);text-decoration:none}.btn-danger{padding:.5rem 1rem;background:transparent;color:#ff7b72;border:1px solid rgba(248,81,73,.5);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s ease,color .15s ease}.btn-danger:hover{background:var(--danger-bg);color:#ff7b72;border-color:var(--danger)}.gitlab-projects-section{margin-bottom:1.5rem}.gitlab-projects-section h3{margin-top:0;font-weight:600}.gitlab-projects-dropdown-row{display:flex;gap:.75rem;align-items:center;margin-top:1rem;flex-wrap:wrap}.gitlab-projects-dropdown-row .select-project{flex:1;min-width:200px;max-width:100%;cursor:pointer}.section-title{margin:1.75rem 0 .875rem;font-size:1.125rem;font-weight:600;color:var(--text)}.mrs-section{margin-bottom:1.5rem}.mrs-section h2{margin-top:0;font-weight:600}.mrs-table-wrap{overflow-x:auto;margin-top:.75rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg)}.mrs-table{width:100%;border-collapse:collapse;font-size:.875rem}.mrs-table th,.mrs-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-subtle)}.mrs-table th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:#00000026}.mrs-table tbody tr:hover{background:var(--bg-hover)}.mrs-table .btn-secondary.small{padding:.3rem .65rem;font-size:.8125rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem}.project-card{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;transition:transform .15s ease,box-shadow .2s ease}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.project-header h3{margin:0;font-size:1.125rem;font-weight:600;line-height:1.3}.project-header h3 a:hover{text-decoration:none;color:var(--accent-hover)}.project-path{font-family:ui-monospace,SF Mono,monospace;font-size:.8125rem;color:var(--text-muted);margin:0}.project-desc{font-size:.875rem;color:var(--text-muted);margin:0;line-height:1.45}.project-meta{font-size:.8125rem;color:var(--text-muted)}.last-scan{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.75rem;background:var(--bg);border-radius:var(--radius-sm);font-size:.8125rem;border:1px solid var(--border-subtle)}.last-scan .label{color:var(--text-muted)}.last-scan .branch{font-family:ui-monospace,monospace;font-weight:500}.project-actions{display:flex;gap:.5rem;margin-top:auto;padding-top:.5rem}.external-link{font-size:.8125rem;font-weight:500}.scan-section h2,.webhook-section h2{font-weight:600;margin-top:0}.scan-section,.webhook-section{margin-bottom:1.5rem}.scan-controls{display:flex;gap:.75rem;margin:1rem 0;align-items:center}.branch-select{flex:1;max-width:380px;padding:.6rem 1rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.875rem;font-family:inherit;cursor:pointer}.branch-select:focus{outline:none;border-color:var(--accent)}.branch-info{margin-top:.75rem}.commit-info{font-size:.8125rem;color:var(--text-muted);margin:0}.commit-info code{background:var(--bg-hover);padding:.2rem .4rem;border-radius:var(--radius-sm);margin-right:.5rem;font-size:.75rem}.commit-message{color:var(--text-muted)}.scans-list{display:flex;flex-direction:column;gap:.75rem}.scan-item{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:1rem;padding:1.25rem;transition:background .15s ease,transform .1s ease;border-radius:var(--radius);border:1px solid transparent}.scan-item:hover{background:var(--bg-hover);text-decoration:none;border-color:var(--border-subtle)}.scan-header{display:flex;align-items:center;gap:.75rem}.branch-name{font-family:ui-monospace,monospace;font-weight:600;font-size:.9375rem}.status-badge{font-size:.7rem;padding:.25rem .55rem;border-radius:var(--radius-sm);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.status-badge.status-pending,.status-badge.status-scanning{background:var(--warning-bg);color:#e3b341}.status-badge.status-completed{background:var(--success-bg);color:#56d364}.status-badge.status-failed{background:var(--danger-bg);color:#ff7b72}.scan-meta{display:flex;gap:1rem;font-size:.8125rem;color:var(--text-muted)}.scan-date{font-size:.8125rem;color:var(--text-muted)}.scanning-indicator{color:var(--warning)}.error-text{color:#ff7b72}.scan-detail .back a{color:var(--text-muted)}.scanning-banner{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--warning-bg);border:1px solid rgba(210,153,34,.35);border-radius:var(--radius);margin-bottom:1.25rem;font-size:.9375rem;color:#e3b341}.spinner{width:22px;height:22px;border:2px solid var(--warning);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.success-banner{padding:.875rem 1.25rem;background:var(--success-bg);border:1px solid rgba(63,185,80,.35);color:#56d364;border-radius:var(--radius);margin-bottom:1rem;font-size:.875rem}.scan-stats{display:flex;gap:2.5rem;margin-bottom:1.25rem;flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:.25rem}.stat-value{font-size:1.5rem;font-weight:700;color:var(--accent);letter-spacing:-.02em}.stat-label{font-size:.8125rem;color:var(--text-muted);font-weight:500}.dashboard-page .page-header h1{margin-bottom:.25rem}.dashboard-intro{margin-bottom:1.5rem}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{padding:1.25rem;margin-bottom:0;position:relative;display:flex;flex-direction:column;gap:.25rem}.stat-card-value{font-size:1.75rem;font-weight:700;color:var(--accent);letter-spacing:-.02em;line-height:1.2}.stat-card-label{font-size:.8125rem;color:var(--text-muted);font-weight:500}.stat-card-link{margin-top:.5rem;font-size:.8125rem;font-weight:500}.stat-card-link:hover{text-decoration:none;color:var(--accent-hover)}.dashboard-section{margin-bottom:1.5rem}.dashboard-section h2{margin-top:0;margin-bottom:.5rem}.dashboard-section .muted{margin-bottom:1rem}.dashboard-empty{padding:2rem;text-align:center;color:var(--text-muted)}.dashboard-empty p{margin:0 0 1rem}.dashboard-table-wrap{overflow-x:auto;margin-top:.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.dashboard-table{width:100%;border-collapse:collapse;font-size:.875rem}.dashboard-table th,.dashboard-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-subtle)}.dashboard-table th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:#00000026}.dashboard-table tbody tr:hover{background:var(--bg-hover)}.dashboard-table tbody tr:last-child td{border-bottom:none}.dashboard-project-name{font-weight:600;color:var(--text)}.dashboard-project-name:hover{text-decoration:none;color:var(--accent)}.dashboard-path{font-family:ui-monospace,monospace;font-size:.8125rem;color:var(--text-muted)}.dashboard-branch{font-family:ui-monospace,monospace;margin-right:.5rem;font-weight:500}.dashboard-repo{font-family:ui-monospace,monospace;font-size:.8125rem;color:var(--text-muted)}.dashboard-mr-title{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-table .btn-secondary.small{padding:.3rem .65rem;font-size:.8125rem}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
