:root{--color-passed: #22c55e;--color-failed: #ef4444;--color-broken: #eab308;--color-skipped: #94a3b8;--color-bg: #f8fafc;--color-card: #ffffff;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #64748b}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5}.container{max-width:1280px;margin:0 auto;padding:0 1.5rem}.page-title{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:.75rem;padding:1.25rem;transition:box-shadow .15s,border-color .15s;border-left:4px solid var(--color-border)}.card.status-pass{border-left-color:var(--color-passed)}.card.status-fail{border-left-color:var(--color-failed)}.card.status-warn{border-left-color:var(--color-broken)}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.4rem;flex-shrink:0;vertical-align:middle}.status-dot.status-pass{background-color:var(--color-passed)}.status-dot.status-fail{background-color:var(--color-failed)}.status-dot.status-warn{background-color:var(--color-broken)}.card:hover{box-shadow:0 4px 12px #00000014}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.9rem;margin-bottom:.75rem}.card-title-wrap{min-width:0;flex:1}.card-title{font-size:1.1rem;font-weight:600;line-height:1.25;word-break:break-word}.stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.5rem}.stat{display:flex;flex-direction:column;align-items:flex-start}.stat-value{font-size:1.15rem;font-weight:700}.stat-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase}.badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:600}.badge-passed{background:#dcfce7;color:#166534}.badge-failed{background:#fee2e2;color:#991b1b}.badge-broken{background:#ffedd5;color:#9a3412}.badge-skipped{background:#f1f5f9;color:#475569}.pass-rate{font-size:1.85rem;font-weight:800;line-height:1;white-space:nowrap;flex-shrink:0}.card-meta{margin-top:.6rem;font-size:.75rem;color:var(--color-text-muted)}.pass-rate.good{color:var(--color-passed)}.pass-rate.warning{color:var(--color-broken)}.pass-rate.bad{color:var(--color-failed)}table{width:100%;border-collapse:collapse;background:var(--color-card);border-radius:.75rem;overflow:hidden;border:1px solid var(--color-border)}th,td{padding:.75rem 1rem;text-align:center}th{background:#f1f5f9;font-weight:600;font-size:.8rem;text-transform:uppercase;color:var(--color-text-muted)}tr:not(:last-child) td{border-bottom:1px solid var(--color-border)}tr:hover td{background:#f8fafc}.loading{text-align:center;padding:3rem;color:var(--color-text-muted)}.error{text-align:center;padding:2rem;color:var(--color-failed);background:#fee2e2;border-radius:.75rem}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}.breadcrumb{display:flex;gap:.5rem;margin-bottom:1rem;font-size:.875rem;color:var(--color-text-muted)}.breadcrumb a{color:var(--color-text-muted)}.breadcrumb span{color:var(--color-text);font-weight:600}.navbar{background:#0f172a;color:#fff;padding:.75rem 0;margin-bottom:2rem}.navbar .container{display:flex;justify-content:space-between;align-items:center}.navbar-brand{font-size:1.125rem;font-weight:700;color:#fff;text-decoration:none}.navbar-brand:hover{text-decoration:none;opacity:.9}.navbar-version{font-size:.75rem;color:#94a3b8;font-weight:400}.sync-btn{background:#2563eb;color:#fff;border:none;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:.875rem;font-weight:500}.sync-btn:hover{background:#1d4ed8}.sync-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn{border:1px solid var(--color-border);background:#fff;color:var(--color-text);padding:.5rem .85rem;border-radius:.5rem;cursor:pointer;font-size:.875rem;font-weight:600}.action-btn:hover{background:#f8fafc}.action-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.action-btn-primary:hover{background:#1d4ed8}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-message{margin-bottom:1rem;padding:.6rem .85rem;border:1px solid var(--color-border);border-radius:.5rem;background:#f8fafc;color:var(--color-text-muted);font-size:.875rem}.sync-progress-panel{margin-bottom:1rem;padding:.75rem .85rem;border:1px solid var(--color-border);border-radius:.5rem;background:#eff6ff}.sync-progress-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;font-size:.875rem;color:#1e3a8a}.sync-progress-bar{width:100%;height:8px;border-radius:9999px;background:#dbeafe;overflow:hidden}.sync-progress-bar-fill{height:100%;background:#2563eb;transition:width .25s ease}.discovery-panel{margin-bottom:1.5rem;padding:1rem;border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-card)}.discovery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.discovery-header h2{font-size:1rem}.discovery-header span{font-size:.875rem;color:var(--color-text-muted)}.discovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.discovery-grid h3{margin-bottom:.5rem;font-size:.875rem;color:var(--color-text-muted);text-transform:uppercase}.discovery-list{list-style:none;border:1px solid var(--color-border);border-radius:.5rem;max-height:300px;overflow-y:auto}.discovery-list li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .75rem;border-bottom:1px solid var(--color-border);font-size:.875rem}.discovery-list li:last-child{border-bottom:none}.env-badge{display:inline-block;padding:.1rem .45rem;border-radius:9999px;font-size:.7rem;font-weight:700;background:#dbeafe;color:#1d4ed8;text-transform:uppercase;letter-spacing:.04em;margin-top:.2rem}.env-badge-lg{font-size:.8rem;padding:.2rem .6rem}@media(max-width:640px){.card-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.pass-rate{font-size:1.55rem}}.filter-bar{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-bar select,.filter-bar input{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:.5rem;font-size:.875rem}.squad-indicator{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:.5rem}.test-detail-section{margin-top:1.5rem}.test-detail-section h3{font-size:.875rem;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.5rem}.trace-block{background:#1e293b;color:#e2e8f0;padding:1rem;border-radius:.5rem;font-family:Fira Code,monospace;font-size:.8rem;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap}.squad-title-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.squad-title-row .squad-env-tabs{margin-left:auto}.squad-project-count{color:var(--color-text-muted);font-size:1rem}.squad-summary-shell{margin-bottom:1.5rem;padding:1.1rem;border:1px solid var(--color-border);border-radius:.95rem;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 12px 24px #0f172a0a}.squad-summary-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.squad-summary-head h2{font-size:1.2rem;font-weight:700}.squad-env-tabs{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem;border:1px solid var(--color-border);border-radius:.7rem;background:#fff}.squad-env-tab{border:none;background:transparent;color:#475569;border-radius:.55rem;padding:.35rem .55rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.squad-env-tab:hover{background:#f1f5f9}.squad-env-tab.active{background:#0f172a;color:#f8fafc}.squad-env-tab-count{border-radius:9999px;min-width:1.2rem;height:1.2rem;padding:0 .3rem;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;background:#e2e8f0;color:#334155}.squad-env-tab.active .squad-env-tab-count{background:#1d4ed8;color:#dbeafe}.squad-stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem}.squad-stat-card{border-radius:.8rem;border:1px solid var(--color-border);background:#fff;padding:.75rem}.squad-stat-label{font-size:.67rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.squad-stat-value{margin-top:.5rem;font-size:2.05rem;line-height:1;font-weight:800}.squad-stat-total{border-color:#bfdbfe;background:#eff6ff}.squad-stat-total .squad-stat-value{color:#2563eb}.squad-stat-passed{border-color:#bbf7d0;background:#ecfdf5}.squad-stat-passed .squad-stat-value{color:#16a34a}.squad-stat-failed{border-color:#fecaca;background:#fef2f2}.squad-stat-failed .squad-stat-value{color:#ef4444}.squad-stat-broken{border-color:#fed7aa;background:#fff7ed}.squad-stat-broken .squad-stat-value{color:#f97316}.squad-stat-skipped{border-color:#cbd5e1;background:#f8fafc}.squad-stat-skipped .squad-stat-value{color:#64748b}.squad-stat-rate{border-color:#c7d2fe;background:#eef2ff}.squad-stat-rate .squad-stat-value{color:#4f46e5}.squad-env-summary{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem}.squad-env-summary-item{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--color-border);border-radius:9999px;padding:.2rem .45rem;background:#fff;font-size:.75rem;color:#475569}@media(max-width:640px){.squad-project-count{font-size:.9rem}.squad-env-tabs{width:100%;justify-content:space-between}.squad-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.squad-stat-value{font-size:1.7rem}}@media(min-width:641px)and (max-width:1024px){.squad-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.health-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.health-title{font-size:1rem;font-weight:700;color:var(--color-text)}.health-pass-badge{padding:.3rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:800;background:#ecfdf5;color:#16a34a;border:1px solid #bbf7d0}.health-bar-section{margin-bottom:1rem}.health-bar{display:flex;height:14px;border-radius:9999px;overflow:hidden;background:#f1f5f9}.health-bar-seg{transition:width .3s}.health-bar-passed{background:var(--color-passed)}.health-bar-failed{background:var(--color-failed)}.health-bar-broken{background:var(--color-broken)}.health-bar-legend{display:flex;gap:1.5rem;margin-top:.75rem;font-size:.9rem;font-weight:700;color:var(--color-text-muted);flex-wrap:wrap}.health-legend-item{display:inline-flex;align-items:center;gap:.4rem;color:var(--color-passed)}.health-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.health-legend-failed{color:var(--color-failed)}.health-legend-broken{color:var(--color-broken)}.health-legend-skipped{color:var(--color-skipped)}.health-legend-total{color:var(--color-text);font-weight:800}.squad-stat-duration{border-color:#e2e8f0;background:#f8fafc}.squad-stat-duration .squad-stat-value{color:var(--color-text)}.pcard{display:block;background:var(--color-card);border:1px solid var(--color-border);border-radius:.75rem;padding:1.1rem;text-decoration:none;color:inherit;transition:box-shadow .15s,border-color .15s;border-left:4px solid var(--color-border)}.pcard:hover{box-shadow:0 4px 16px #00000014;text-decoration:none}.pcard.status-pass{border-left-color:var(--color-passed)}.pcard.status-fail{border-left-color:var(--color-failed);border-color:#fecaca}.pcard.status-warn{border-left-color:var(--color-broken);border-color:#fed7aa}.pcard-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.pcard-top-left{display:flex;align-items:center;gap:.5rem}.pcard-build{font-size:.75rem;color:var(--color-text-muted)}.pcard-status-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700}.pcard-status-icon.status-pass{background:#dcfce7;color:#16a34a;border:2px solid #bbf7d0}.pcard-status-icon.status-fail{background:#fee2e2;color:#ef4444;border:2px solid #fecaca}.pcard-status-icon.status-warn{background:#fef3c7;color:#d97706;border:2px solid #fde68a}.pcard-name{font-size:1rem;font-weight:700;line-height:1.3;margin-bottom:.75rem;word-break:break-word}.pcard-rate-row{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:.5rem}.pcard-rate-label{font-size:.65rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.pcard-rate-value{font-size:2rem;font-weight:800;line-height:1}.pcard-rate-value.good{color:var(--color-passed)}.pcard-rate-value.warning{color:var(--color-broken)}.pcard-rate-value.bad{color:var(--color-failed)}.pcard-duration{display:flex;flex-direction:column;align-items:flex-end}.pcard-duration-label{font-size:.65rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase}.pcard-duration-value{font-size:.85rem;font-weight:600;color:var(--color-text)}.pcard-bar{display:flex;height:8px;border-radius:9999px;overflow:hidden;background:#f1f5f9;margin-bottom:.75rem}.pcard-bar-passed{background:var(--color-passed)}.pcard-bar-failed{background:var(--color-failed)}.pcard-bar-broken{background:var(--color-broken)}.pcard-footer{display:flex;justify-content:space-between;align-items:flex-end}.pcard-counts{display:flex;gap:1rem}.pcard-count{display:flex;flex-direction:column}.pcard-count-label{font-size:.6rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.pcard-count-value{font-size:1.1rem;font-weight:700}.pcard-logs-btn{font-size:.75rem;font-weight:700;color:var(--color-text);padding:.35rem .7rem;border:1px solid var(--color-border);border-radius:.4rem;cursor:pointer;background:var(--color-card);transition:background .15s}.pcard-logs-btn:hover{background:#f1f5f9}.ptable-shell{border:1px solid var(--color-border);border-radius:.75rem;overflow:hidden;background:var(--color-card);box-shadow:0 1px 3px #0000000a}.ptable{width:100%;border-collapse:collapse}.ptable thead th{padding:.85rem 1.25rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);background:#f8fafc;border-bottom:1px solid var(--color-border);text-align:left}.ptable thead th:nth-child(1){width:100px;text-align:center}.ptable thead th:nth-child(2){width:35%;text-align:left}.ptable thead th:nth-child(3){width:auto}.ptable thead th:nth-child(4){width:100px;text-align:right}.ptable-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ptable-sortable:hover{color:var(--color-text)}.ptable-sort-icon{font-size:.65rem;margin-left:.25rem;color:var(--color-text-muted);opacity:.4}.ptable-sort-icon.active{opacity:1;color:var(--color-text)}.ptable tbody tr{transition:background .12s}.ptable tbody tr:hover{background:#f8fbff}.ptable tbody tr:not(:last-child) td{border-bottom:1px solid var(--color-border)}.ptable tbody td{padding:1rem 1.25rem;vertical-align:middle}.ptable tbody td:nth-child(1){text-align:center}.ptable tbody td:nth-child(2){text-align:left}.ptable tbody td:nth-child(4){text-align:right}.ptable-status-link{text-decoration:none}.ptable-status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:800;letter-spacing:.03em}.ptable-status-icon{font-size:.85rem;line-height:1}.ptable-status-pass{background:#dcfce7;color:#16a34a;border:1.5px solid #bbf7d0}.ptable-status-fail{background:#fee2e2;color:#ef4444;border:1.5px solid #fecaca}.ptable-status-warn{background:#fef9c3;color:#a16207;border:1.5px solid #fde047}.ptable-project-link{text-decoration:none;color:inherit;display:block;text-align:left}.ptable-project-link:hover{text-decoration:none}.ptable-project-name{font-size:1rem;font-weight:700;color:var(--color-text);line-height:1.3}.ptable-project-meta{display:inline-flex;align-items:center;gap:.3rem;margin-top:.35rem}.ptable-build{font-size:.8rem;color:var(--color-text-muted)}.ptable-env-icon{font-size:.75rem;color:var(--color-text-muted);line-height:1}.ptable-env-tag{font-size:.65rem;font-weight:700;color:#1e40af;background:#dbeafe;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .4rem;border-radius:4px}.ptable-project-meta-row{display:flex;align-items:center;gap:.4rem;margin-top:.2rem;font-size:.72rem;color:var(--color-text-muted)}.ptable-meta-sep{opacity:.4}.ptable-meta-text{white-space:nowrap}.ptable-run-info{font-size:.7rem;color:var(--color-text-muted)}.ptable-health-bar{display:flex;height:10px;border-radius:9999px;overflow:hidden;background:#f1f5f9;min-width:200px}.ptable-bar-passed{background:var(--color-passed)}.ptable-bar-failed{background:var(--color-failed)}.ptable-bar-broken{background:var(--color-broken)}.ptable-bar-skipped{background:var(--color-skipped)}.ptable-health-counts{display:flex;gap:.75rem;margin-top:.35rem;font-size:.75rem;font-weight:700}.ptable-pass-rate{font-size:1.75rem;font-weight:800;white-space:nowrap}.ptable-search{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--color-border)}.ptable-search-icon{font-size:1rem;color:var(--color-text-muted)}.ptable-search-input{flex:1;border:none;outline:none;font-size:.9rem;color:var(--color-text);background:transparent}.ptable-search-input::placeholder{color:var(--color-text-muted)}.ptable-filter-btn{flex-shrink:0;padding:.35rem .75rem;border:1.5px solid var(--color-border);border-radius:9999px;font-size:.75rem;font-weight:700;cursor:pointer;background:var(--color-card);color:var(--color-text-muted);transition:all .15s;white-space:nowrap}.ptable-filter-btn:hover{border-color:var(--color-passed);color:var(--color-passed)}.ptable-filter-btn.active{background:#dcfce7;border-color:#bbf7d0;color:#16a34a}.ptable-pass-rate.good{color:var(--color-passed)}.ptable-pass-rate.warning{color:var(--color-broken)}.ptable-pass-rate.bad{color:var(--color-failed)}.trigger-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;border:none;border-radius:.5rem;font-size:.85rem;font-weight:700;background:#2563eb;color:#fff;cursor:pointer;transition:background .15s,opacity .15s;white-space:nowrap}.trigger-btn:hover{background:#1d4ed8}.trigger-btn:disabled{opacity:.6;cursor:not-allowed}.trigger-link{font-size:.8rem;font-weight:600;color:#2563eb;text-decoration:none}.trigger-link:hover{text-decoration:underline}.trigger-error{font-size:.8rem;font-weight:600;color:var(--color-failed)}.exec-section{margin-top:.5rem}.exec-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.exec-title{font-size:1.15rem;font-weight:700;color:var(--color-text);margin:0}.exec-view-all{font-size:.85rem;font-weight:600;color:#3b82f6;text-decoration:none}.exec-view-all:hover{text-decoration:underline}.exec-list{display:flex;flex-direction:column;background:var(--color-card);border:1px solid var(--color-border);border-radius:.75rem;overflow:hidden}.exec-row{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;transition:background .12s;border-bottom:1px solid #f1f5f9}.exec-row:last-child{border-bottom:none}.exec-row:hover{background:#f8fafc}.exec-status-bar{width:4px;align-self:stretch;border-radius:9999px;flex-shrink:0}.exec-status-bar.exec-rate-perfect-bar{background:var(--color-passed)}.exec-status-bar.exec-rate-warn-bar{background:var(--color-broken)}.exec-status-bar.exec-rate-bad-bar{background:var(--color-failed)}.exec-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem;overflow:hidden}.exec-build-name{font-size:.875rem;font-weight:600;color:var(--color-text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exec-build-name:hover{color:#3b82f6}.exec-date{font-size:.7rem;color:var(--color-text-muted)}.exec-branch{font-size:.65rem;color:var(--color-text-muted);opacity:.8}.exec-stats{display:flex;gap:2rem;width:90px;flex-shrink:0;justify-content:center}.exec-stat{display:flex;flex-direction:column;align-items:center;gap:.15rem}.exec-stat-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.exec-stat-value{font-size:1.05rem;font-weight:700;color:var(--color-text)}.exec-rate-perfect,.exec-rate-good{color:var(--color-passed)}.exec-rate-warn{color:var(--color-broken)}.exec-rate-bad{color:var(--color-failed)}.exec-actions{display:flex;gap:.5rem;flex-shrink:0;width:80px;justify-content:flex-end}.exec-action-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:.375rem;background:#f1f5f9;text-decoration:none;font-size:.85rem;transition:background .12s}.exec-action-btn:hover{background:#e2e8f0}.exec-action-devops{color:#0078d4}.exec-subtitle{font-size:1rem;font-weight:700;color:var(--color-text);margin:1.5rem 0 .75rem}.exec-metrics{display:flex;flex-direction:column;align-items:center;gap:.3rem;width:190px;flex-shrink:0}.exec-metrics-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.exec-metrics-badges{display:flex;gap:.4rem}.exec-metric-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;padding:.1rem .4rem;border-radius:9999px;font-size:.7rem;font-weight:700}.exec-metric-passed{background:#dcfce7;color:#16a34a}.exec-metric-failed{background:#fee2e2;color:#ef4444}.exec-metric-broken{background:#fff7ed;color:#ea580c}.exec-metric-skipped{background:#f1f5f9;color:#64748b}.exec-passrate{display:flex;flex-direction:column;align-items:center;gap:.2rem;width:100px;flex-shrink:0}.exec-passrate-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.exec-passrate-value{font-size:.95rem;font-weight:800}.exec-passrate-bar{width:100%;height:4px;border-radius:9999px;background:#e2e8f0;overflow:hidden}.exec-passrate-fill{height:100%;border-radius:9999px;transition:width .3s}.exec-rate-perfect-bg,.exec-rate-good-bg{background:var(--color-passed)}.exec-rate-warn-bg{background:var(--color-broken)}.exec-rate-bad-bg{background:var(--color-failed)}.pstats-row{display:flex;gap:1rem;margin-bottom:2rem}.pstats-row-chart{flex:3;min-width:0}.pstats-row-health{flex:1;min-width:0}.pstats-grid{height:100%}.pstats-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column}.pstats-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.pstats-icon{font-size:1.25rem}.pstats-card-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.025em}.pstats-card-value{font-size:1.75rem;font-weight:700;color:var(--color-text);margin:.25rem 0}.pstats-card-sub{font-size:.75rem;color:var(--color-text-muted)}.pstats-result{color:#fff;border:none;display:flex;flex-direction:column;justify-content:center}.pstats-result-stable{background:linear-gradient(135deg,#22c55e,#16a34a)}.pstats-result-unstable{background:linear-gradient(135deg,#f97316,#ea580c)}.pstats-result-critical{background:linear-gradient(135deg,#ef4444,#dc2626)}.pstats-result-label{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.9;margin-bottom:.25rem}.pstats-result-value{font-size:1.75rem;font-weight:800;line-height:1.2}.pstats-result-rate{font-size:.85rem;opacity:.9;margin-bottom:.75rem}.pstats-result-bar{width:100%;height:5px;border-radius:9999px;background:#ffffff4d;overflow:hidden}.pstats-result-bar-fill{height:100%;border-radius:9999px;background:#fff;transition:width .3s}.pstats-health{height:100%;display:flex;flex-direction:column;gap:.75rem}.pstats-health-title{font-size:.7rem;font-weight:700;letter-spacing:.05em;color:var(--color-text-muted)}.pstats-cal-header{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:2px}.pstats-cal-day-label{font-size:.55rem;font-weight:700;text-align:center;color:var(--color-text-muted);text-transform:uppercase}.pstats-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;flex:1}.pstats-cal-cell{display:flex;align-items:center;justify-content:center;border-radius:6px;padding:.25rem 0;min-height:2rem;cursor:default;transition:opacity .12s}.pstats-cal-cell:hover{opacity:.85}.pstats-cal-pass{background:#dcfce7;color:#16a34a}.pstats-cal-fail{background:#fee2e2;color:#ef4444}.pstats-cal-none{background:#f1f5f9;color:#cbd5e1}.pstats-cal-empty{visibility:hidden}.pstats-cal-date{font-size:.65rem;font-weight:700;line-height:1}.pstats-health-density{font-size:.75rem;font-weight:700;color:var(--color-text)}.trend-charts{display:flex;gap:1rem;margin-bottom:2rem}.trend-chart-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:1.25rem}.trend-chart-main{flex:2;min-width:0}.trend-chart-side{flex:1;min-width:0}.trend-chart-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0}.trend-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.trend-filter{position:relative}.trend-filter-btn{background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;color:var(--color-text);cursor:pointer;white-space:nowrap}.trend-filter-btn:hover{background:#e2e8f0}.trend-filter-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:.5rem;box-shadow:0 4px 12px #0000001a;z-index:50;min-width:150px;overflow:hidden}.trend-filter-option{display:block;width:100%;padding:.5rem .75rem;border:none;background:none;text-align:left;font-size:.8rem;color:var(--color-text);cursor:pointer}.trend-filter-option:hover{background:var(--color-bg)}.trend-filter-option.active{color:#3b82f6;font-weight:600}.trend-filter-divider{height:1px;background:var(--color-border);margin:.25rem 0}.trend-filter-custom{padding:.5rem .75rem}.trend-filter-custom-label{font-size:.7rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.trend-filter-dates{display:flex;align-items:center;gap:.35rem;margin-top:.4rem}.trend-filter-date{border:1px solid var(--color-border);border-radius:.375rem;padding:.3rem .4rem;font-size:.75rem;color:var(--color-text);background:var(--color-bg);width:120px}.trend-filter-date:focus{outline:none;border-color:#3b82f6}.trend-filter-date-sep{font-size:.75rem;color:var(--color-text-muted)}@media(max-width:900px){.pstats-row,.trend-charts{flex-direction:column}}.tc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:0;padding:.65rem 1rem;background:var(--color-card);border:1px solid var(--color-border);border-bottom:none;border-radius:.75rem .75rem 0 0}.tc-search{display:flex;align-items:center;gap:.5rem;flex:1}.tc-search-icon{color:var(--color-text-muted);font-size:.9rem}.tc-search-input{flex:1;border:none;outline:none;font-size:.875rem;color:var(--color-text);background:transparent}.tc-search-input::placeholder{color:var(--color-text-muted)}.tc-toolbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.tc-status-dropdown{position:relative}.tc-dropdown-trigger{padding:.35rem .75rem;border:1.5px solid var(--color-border);border-radius:9999px;font-size:.78rem;font-weight:700;cursor:pointer;background:var(--color-card);color:var(--color-text-muted);white-space:nowrap;transition:all .15s}.tc-dropdown-trigger:hover{border-color:#94a3b8;color:var(--color-text)}.tc-dropdown-trigger.active{background:#eff6ff;border-color:#93c5fd;color:#2563eb}.tc-dropdown-menu{position:absolute;top:100%;right:0;margin-top:.35rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:.5rem;box-shadow:0 8px 24px #0000001f;z-index:100;min-width:180px;padding:.5rem 0}.tc-dropdown-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .85rem;font-size:.85rem;cursor:pointer;color:var(--color-text);transition:background .1s}.tc-dropdown-item:hover{background:#f8fafc}.tc-dropdown-item input[type=checkbox]{width:16px;height:16px;cursor:pointer}.tc-dropdown-divider{height:1px;background:var(--color-border);margin:.35rem 0}.tc-dropdown-clear{display:flex;align-items:center;gap:.35rem;width:100%;padding:.45rem .85rem;border:none;background:none;font-size:.85rem;color:var(--color-text-muted);cursor:pointer;text-align:left}.tc-dropdown-clear:hover{background:#f8fafc;color:var(--color-text)}.tc-shell{border:1px solid var(--color-border);border-top:none;border-radius:0 0 .75rem .75rem;overflow:hidden;background:var(--color-card)}.tc-summary-row{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-bottom:1px solid var(--color-border);font-size:.875rem;font-weight:600;cursor:default}.tc-summary-pass{background:#f8fafc}.tc-summary-fail{background:#fffbfb}.tc-summary-icon{font-size:.9rem;font-weight:700}.tc-summary-label{color:var(--color-text)}.tc-table{width:100%;border-collapse:collapse;border:none;border-radius:0}.tc-table thead th{padding:.6rem 1rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);background:#f8fafc;border-bottom:1px solid var(--color-border);text-align:left}.tc-th-test{width:auto}.tc-th-duration{width:130px}.tc-th-suite{width:180px}.tc-th-failing-since{width:130px}.tc-th-flaky{width:60px;text-align:center!important}.tc-row td{padding:.55rem 1rem;vertical-align:middle;border-bottom:1px solid #f1f5f9;font-size:.875rem}.tc-row:last-child td{border-bottom:none}.tc-row:hover td{background:#fafbff}.tc-td-test{display:flex;align-items:center;gap:.5rem}.tc-status-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:.75rem;font-weight:700;flex-shrink:0}.tc-icon-passed{color:var(--color-passed)}.tc-icon-failed{color:var(--color-failed)}.tc-icon-broken{color:var(--color-broken)}.tc-icon-skipped{color:var(--color-skipped)}.tc-test-link{color:var(--color-text);text-decoration:none;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tc-test-link:hover{color:#2563eb;text-decoration:none}.tc-td-duration{font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-size:.85rem}.tc-td-suite{color:var(--color-text-muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.tc-td-flaky{text-align:center}.tc-td-failing-since{font-size:.85rem}.tc-failing-since-badge{color:var(--color-failed);font-weight:600;font-size:.8rem;cursor:default}.td2-page{background:var(--color-card);border:1px solid var(--color-border);border-radius:.75rem;overflow:hidden}.td2-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--color-border);gap:1rem}.td2-header-left{flex:1;min-width:0}.td2-header-top{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.td2-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:.35rem;font-size:.8rem;font-weight:800;letter-spacing:.04em;flex-shrink:0}.td2-status-passed{background:#dcfce7;color:#166534}.td2-status-failed{background:#fee2e2;color:#991b1b}.td2-status-broken{background:#ffedd5;color:#9a3412}.td2-status-skipped{background:#f1f5f9;color:#475569}.td2-name{font-size:1.25rem;font-weight:700;color:var(--color-text);margin:0;line-height:1.3;word-break:break-word}.td2-flaky-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:.35rem;font-size:.75rem;font-weight:700;background:#fef3c7;color:#92400e;flex-shrink:0}.td2-category{margin-top:.35rem;font-size:.85rem;color:var(--color-text-muted)}.td2-open-trace-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem 1rem;border:1px solid var(--color-border);border-radius:.45rem;font-size:.85rem;font-weight:600;color:var(--color-text);background:#f8fafc;text-decoration:none;flex-shrink:0;white-space:nowrap;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s}.td2-open-trace-btn:hover{background:#f1f5f9;border-color:#94a3b8}.td2-meta-row{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--color-border)}.td2-meta-cell{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.5rem;border-right:1px solid var(--color-border)}.td2-meta-cell:last-child{border-right:none}.td2-meta-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;color:var(--color-text-muted);text-transform:uppercase}.td2-meta-value{font-size:.95rem;font-weight:600;color:var(--color-text)}.td2-meta-status.td2-status-failed{color:#dc2626}.td2-meta-status.td2-status-broken{color:#ea580c}.td2-meta-status.td2-status-passed{color:#16a34a}.td2-meta-status.td2-status-skipped{color:#64748b}.td2-failure-summary{border-bottom:1px solid var(--color-border);border-left:4px solid #dc2626;background:#fef2f2}.td2-failure-header{padding:.75rem 1.5rem 0;font-size:.75rem;font-weight:800;letter-spacing:.05em;color:#b91c1c;text-transform:uppercase}.td2-failure-title{padding:.25rem 1.5rem .75rem;font-size:.95rem;font-weight:600;color:#991b1b;line-height:1.4}.td2-failure-detail{margin:0;padding:.75rem 1.5rem 1rem;background:#1e1e2e;color:#e2e8f0;font-family:Fira Code,Consolas,monospace;font-size:.78rem;line-height:1.6;overflow-x:auto;max-height:300px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.td2-section{border-bottom:1px solid var(--color-border)}.td2-section:last-child{border-bottom:none}.td2-section-header{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.5rem;font-size:.9rem;font-weight:700;color:var(--color-text);background:#f8fafc;border:none;width:100%;text-align:left;font-family:inherit}.td2-section-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.td2-section-toggle:hover{background:#f1f5f9}.td2-section-icon{font-size:.85rem;flex-shrink:0}.td2-section-title{flex:1}.td2-section-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.td2-copy-btn{font-size:.85rem;color:var(--color-text-muted);text-decoration:none;cursor:pointer;padding:.15rem .3rem;border-radius:.25rem}.td2-copy-btn:hover{color:#2563eb;background:#e0e7ff}.td2-chevron{font-size:.75rem;color:var(--color-text-muted)}.td2-section-body{padding:0}.td2-output-label{padding:.5rem 1.5rem;font-size:.7rem;font-weight:700;letter-spacing:.06em;color:var(--color-text-muted);text-transform:uppercase;background:#f1f5f9;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.td2-output-pre{background:#1e1e2e;color:#cdd6f4;padding:1rem 1.5rem;font-family:Fira Code,Consolas,monospace;font-size:.78rem;line-height:1.6;overflow-x:auto;max-height:500px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;margin:0}.td2-trace-lines{background:#1e1e2e;max-height:500px;overflow-y:auto;overflow-x:auto;font-family:Fira Code,Consolas,monospace;font-size:.78rem;line-height:1.6}.td2-trace-line{display:flex;gap:0}.td2-trace-line:hover{background:#ffffff0a}.td2-trace-num{display:inline-block;min-width:3rem;padding:0 .75rem;text-align:right;color:#64748b;-webkit-user-select:none;user-select:none;flex-shrink:0;border-right:1px solid #334155}.td2-trace-text{padding:0 1rem;color:#e2e8f0;white-space:pre-wrap;word-break:break-word}.td2-artifacts-grid{display:flex;flex-wrap:wrap;gap:.75rem;padding:1rem 1.5rem}.td2-artifact-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:.5rem;background:#fff;text-decoration:none;color:var(--color-text);transition:border-color .15s,box-shadow .15s;min-width:220px}.td2-artifact-card:hover{border-color:#94a3b8;box-shadow:0 2px 8px #0000000f}.td2-artifact-icon{font-size:1.5rem;flex-shrink:0}.td2-artifact-info{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0}.td2-artifact-name{font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td2-artifact-meta{font-size:.75rem;color:var(--color-text-muted)}.td2-artifact-action{font-size:1.1rem;color:var(--color-text-muted);flex-shrink:0}.td2-artifact-card:hover .td2-artifact-action{color:#2563eb}.td2-param-row{display:flex;gap:.5rem;padding:.4rem 1.5rem;font-size:.875rem;line-height:1.5}.td2-param-name{color:var(--color-text-muted);font-weight:600;flex-shrink:0}.td2-param-value{font-family:Fira Code,Consolas,monospace;font-size:.82rem;color:var(--color-text)}@media(max-width:768px){.td2-meta-row{grid-template-columns:repeat(2,1fr)}.td2-meta-cell:nth-child(2){border-right:none}.td2-meta-cell:nth-child(1),.td2-meta-cell:nth-child(2){border-bottom:1px solid var(--color-border)}}.ph-date-input{padding:.35rem .5rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--text-primary);font-size:.85rem}.ph-date-input:focus{outline:none;border-color:var(--color-accent, #2563eb)}.ph-clear-btn{padding:.3rem .7rem;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--text-secondary);font-size:.8rem;cursor:pointer}.ph-clear-btn:hover{background:var(--color-surface)}.ph-page-btn{padding:.45rem 1.1rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--text-primary);font-size:.85rem;cursor:pointer;transition:background .15s}.ph-page-btn:hover:not(:disabled){background:var(--color-border)}.ph-page-btn:disabled{opacity:.4;cursor:not-allowed}.stats-link-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1rem;background:#f0f9ff;color:#2563eb;border:1px solid #bfdbfe;border-radius:.5rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s}.stats-link-btn:hover{background:#dbeafe;border-color:#93c5fd}.stats-date-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:.75rem;padding:.75rem 1.25rem;flex-wrap:wrap}.stats-date-presets{display:flex;gap:.4rem}.stats-date-preset{padding:.45rem 1rem;border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-bg);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s;color:var(--color-text-muted)}.stats-date-preset:hover{background:#e2e8f0;color:var(--color-text)}.stats-date-preset.active{background:#2563eb;color:#fff;border-color:#2563eb;font-weight:600}.stats-date-custom{display:flex;align-items:center;gap:.5rem}.stats-date-input{padding:.45rem .65rem;border:1px solid var(--color-border);border-radius:.4rem;font-size:.85rem;outline:none;transition:border-color .15s;color:var(--color-text)}.stats-date-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.stats-date-sep{color:var(--color-text-muted);font-size:.9rem}.stats-summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem}.stats-summary-card{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:.75rem;border-top:3px solid var(--color-border)}.stats-summary-stable{border-top-color:var(--color-passed)}.stats-summary-flaky{border-top-color:var(--color-broken)}.stats-summary-broken{border-top-color:var(--color-failed)}.stats-metrics-row{display:flex;gap:.5rem;align-items:baseline}.stats-metric{font-size:1.75rem;font-weight:700;line-height:1.2}.stats-metric-passed{color:var(--color-passed)}.stats-metric-failed{color:var(--color-failed)}.stats-metric-broken{color:var(--color-broken)}.stats-metric-skipped{color:var(--color-text-muted)}.stats-summary-value{font-size:1.75rem;font-weight:700;line-height:1.2}.stats-summary-label{font-size:.8rem;color:var(--color-text-muted);margin-top:.25rem}.stats-tc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;gap:1rem;flex-wrap:wrap}.stats-filters{display:flex;align-items:center;gap:1.25rem;margin-bottom:1rem;flex-wrap:wrap;padding-bottom:.75rem;border-bottom:1px solid #f1f5f9}.stats-filter-group{display:flex;align-items:center;gap:.5rem}.stats-filter-search-group{margin-left:auto}.stats-filter-label{font-size:.78rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.stats-filter-pills{display:flex;gap:.3rem}.stats-filter-pill{padding:.3rem .7rem;border:1px solid var(--color-border);border-radius:2rem;background:var(--color-bg);font-size:.78rem;cursor:pointer;transition:all .15s;color:var(--color-text-muted);white-space:nowrap}.stats-filter-pill:hover{background:#e2e8f0;color:var(--color-text)}.stats-filter-pill.active{background:#1e293b;color:#fff;border-color:#1e293b}.stats-filter-select{padding:.3rem .5rem;border:1px solid var(--color-border);border-radius:.4rem;font-size:.82rem;outline:none;background:var(--color-bg);cursor:pointer}.stats-filter-select:focus{border-color:#93c5fd}.stats-tc-search{padding:.4rem .75rem;border:1px solid var(--color-border);border-radius:.4rem;font-size:.85rem;width:100%;outline:none;transition:border-color .15s;margin-bottom:.5rem;box-sizing:border-box}.stats-tc-search:focus{border-color:#93c5fd}.stats-tc-table-wrap{overflow-x:auto}.stats-tc-table thead th{-webkit-user-select:none;user-select:none;white-space:nowrap}.stats-th-name{width:auto;min-width:300px;text-align:right!important}.stats-td-name{max-width:500px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;text-align:right}.stats-test-link{color:var(--color-text);text-decoration:none;transition:color .15s}.stats-test-link:hover{color:#2563eb;text-decoration:underline}.stats-badge{display:inline-block;min-width:28px;padding:.1rem .4rem;border-radius:.3rem;font-size:.8rem;font-weight:600;text-align:center}.stats-badge-passed{background:#dcfce7;color:#166534}.stats-badge-failed{background:#fee2e2;color:#991b1b}.stats-badge-broken{background:#fef9c3;color:#854d0e}.stats-badge-zero{background:#f1f5f9;color:#94a3b8}.stats-pct{font-weight:600;font-size:.85rem}.stats-pct-good{color:#16a34a}.stats-pct-warn{color:#ca8a04}.stats-pct-bad{color:#dc2626}.stats-tc-count{margin-top:.75rem;font-size:.8rem;color:var(--color-text-muted)}@media(max-width:768px){.stats-summary-cards{grid-template-columns:repeat(2,1fr)}.stats-date-bar{flex-direction:column;align-items:stretch}.stats-date-presets{flex-wrap:wrap}.stats-filters{flex-direction:column;align-items:stretch}.stats-filter-search-group{margin-left:0}.td2-header,.td2-artifacts-grid{flex-direction:column}}} .td-console-fallback{padding:.75rem 1rem;background:#fef3c7;border:1px solid #f59e0b;border-radius:.5rem;font-size:.85rem;color:#92400e}.td-console-fallback a{color:#2563eb;text-decoration:underline;font-weight:600}.td2-artifact-card-btn{cursor:pointer;font-family:inherit}.td2-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:2rem;animation:td2-fade-in .15s ease-out}@keyframes td2-fade-in{0%{opacity:0}to{opacity:1}}.td2-modal-content{background:var(--color-card);border-radius:.75rem;overflow:hidden;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.td2-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);gap:1rem}.td2-modal-title{font-size:.85rem;font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td2-modal-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.td2-modal-newtab{font-size:.9rem;color:var(--color-text-muted);text-decoration:none;padding:.25rem .4rem;border-radius:.25rem}.td2-modal-newtab:hover{color:#2563eb;background:#e0e7ff}.td2-modal-close{background:none;border:none;font-size:1rem;color:var(--color-text-muted);cursor:pointer;padding:.25rem .4rem;border-radius:.25rem;font-family:inherit}.td2-modal-close:hover{color:#dc2626;background:#fee2e2}.td2-modal-body{overflow:auto;display:flex;align-items:center;justify-content:center;background:#0f172a}.td2-modal-img{display:block;max-width:100%;max-height:calc(90vh - 3.5rem);object-fit:contain}.td2-history-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem 1rem;border:1px solid #3b82f6;border-radius:.45rem;font-size:.85rem;font-weight:600;color:#3b82f6;background:#eff6ff;text-decoration:none;flex-shrink:0;white-space:nowrap;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s}.td2-history-btn:hover{background:#dbeafe;border-color:#2563eb;color:#2563eb}.run-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;gap:1rem}.run-header-left{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.run-header-date{font-size:.95rem;color:var(--color-text-muted);white-space:nowrap}.run-header-actions{display:flex;gap:.5rem;flex-shrink:0}.run-action-link{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;border:1px solid var(--color-border);border-radius:.4rem;font-size:.8rem;font-weight:600;color:var(--color-text);background:#f8fafc;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s}.run-action-link:hover{background:#f1f5f9;border-color:#94a3b8}.run-action-devops{color:#0078d4;border-color:#0078d4;background:#f0f7ff}.run-action-devops:hover{background:#e1efff;border-color:#005a9e}.th-page{max-width:960px;margin:0 auto;background:var(--color-card);border:1px solid var(--color-border);border-radius:.75rem;overflow:hidden}.th-header{display:flex;align-items:center;gap:1rem;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--color-border)}.th-header-icon{font-size:2rem;width:3.2rem;height:3.2rem;display:flex;align-items:center;justify-content:center;background:#f0f4ff;border-radius:.75rem;flex-shrink:0}.th-header-info{min-width:0}.th-title{font-size:1.25rem;font-weight:700;margin:0 0 .5rem}.th-test-name{font-size:1.05rem;font-weight:700;color:var(--color-text);word-break:break-word}.th-full-name{font-size:.8rem;color:#64748b;margin-top:.25rem;word-break:break-all}.th-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));border-bottom:1px solid var(--color-border)}.th-stat{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.5rem;border-right:1px solid var(--color-border)}.th-stat:last-child{border-right:none}.th-stat-label{font-size:.65rem;font-weight:700;letter-spacing:.06em;color:#64748b;text-transform:uppercase}.th-stat-value{font-size:1.35rem;font-weight:700}.th-stat-pass{color:#16a34a}.th-stat-fail{color:#dc2626}.th-chart{padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.th-chart-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:.75rem}.th-chart-container{overflow-x:auto}.th-chart-bars{display:flex;align-items:flex-end;gap:2px;min-height:140px;padding-top:10px}.th-chart-bar-wrapper{display:flex;flex-direction:column;align-items:center;gap:4px}.th-chart-bar{width:100%;border-radius:2px 2px 0 0;min-height:4px;transition:opacity .15s;cursor:default}.th-chart-bar:hover{opacity:.8}.th-chart-label{font-size:.55rem;color:#94a3b8;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}.th-chart-legend{display:flex;gap:1rem;margin-top:.75rem}.th-legend-item{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:#64748b;text-transform:capitalize}.th-legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.th-table-wrapper{overflow-x:auto}.th-table{width:100%;border-collapse:collapse;font-size:.85rem}.th-table thead th{text-align:left;padding:.65rem 1rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:#f8fafc;border-bottom:1px solid var(--color-border)}.th-table tbody tr{border-bottom:1px solid var(--color-border);transition:background .1s}.th-table tbody tr:hover{background:#f8fafc}.th-table tbody td{padding:.6rem 1rem}.th-current-row{background:#eff6ff!important;font-weight:600}.th-build-cell{font-weight:600;font-variant-numeric:tabular-nums}.th-badge{display:inline-block;padding:.15rem .5rem;border-radius:.25rem;font-size:.7rem;font-weight:700;letter-spacing:.04em}.th-status-passed{background:#dcfce7;color:#166534}.th-status-failed{background:#fee2e2;color:#991b1b}.th-status-broken{background:#ffedd5;color:#9a3412}.th-status-skipped{background:#f1f5f9;color:#475569}.th-actions-cell{text-align:right;display:flex;gap:.4rem;justify-content:flex-end}.th-action-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border:1px solid var(--color-border);border-radius:.35rem;font-size:.75rem;font-weight:600;color:var(--color-text);background:#f8fafc;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s}.th-action-btn:hover{background:#f1f5f9;border-color:#94a3b8}.th-action-run{color:#0078d4;border-color:#bfdbfe;background:#f0f7ff}.th-action-run:hover{background:#e1efff;border-color:#0078d4}.th-link{color:#3b82f6;text-decoration:none;font-size:.8rem;font-weight:600}.th-link:hover{text-decoration:underline}.pipeline-status-banner{background:var(--color-card);border:1px solid var(--color-border);border-left:4px solid #3b82f6;border-radius:.75rem;padding:1rem 1.25rem;margin-bottom:1.5rem}.pipeline-status-title{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.pipeline-status-list{display:flex;flex-direction:column;gap:.5rem}.pipeline-status-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:.5rem;text-decoration:none;transition:background .15s ease;color:var(--color-text)}.pipeline-status-item:hover{background:var(--color-bg)}.pipeline-status-inProgress{background:#eff6ff;border:1px solid #bfdbfe}.pipeline-status-notStarted{background:#fefce8;border:1px solid #fde68a}.pipeline-status-icon{font-size:1.125rem}.pipeline-status-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.pipeline-status-number{font-weight:600;color:var(--color-text);font-size:.875rem}.pipeline-status-state{font-size:.7rem;font-weight:500;color:#2563eb;background:#dbeafe;padding:.125rem .5rem;border-radius:1rem}.pipeline-status-notStarted .pipeline-status-state{color:#a16207;background:#fef3c7}.pipeline-status-branch,.pipeline-status-time{font-size:.75rem;color:var(--color-text-muted)}
