:root{--bg:#f5f5f7;--text:#1a1a1a;--text-subtle:#697080;--text-muted:#686d75;--nav-bg:#161b33;--nav-text:#c7c9e0;--nav-text-active:#fff;--nav-accent:#2dd4bf;--card-bg:#fff;--border:#e5e7eb;--border-subtle:#eef0f2;--card-shadow:0 1px 2px #0f172a0a, 0 2px 10px #0f172a0f;--input-bg:#fff;--input-border:#d1d5db;--input-text:#1a1a1a;--focus-ring:#0f766e;--table-header-bg:#fafafa;--table-row-hover:#fafbff;--status-pill-bg:#eef0f4;--status-pill-text:#374151;--primary:#0f766e;--primary-hover:#115e59;--primary-text:#fff;--secondary-bg:#fff;--secondary-text:#374151;--secondary-border:#d1d5db;--secondary-hover:#f3f4f6;--danger:#dc2626;--danger-hover:#b91c1c;--icon-btn-hover:#f0f1f5;--modal-overlay:#11111b80;--modal-bg:#fff;--modal-shadow:#0003;--error-text:#b91c1c;--chart-closed:#15803d;--primary-shadow-tint:#0f766e40;--primary-shadow-tint-hover:#0f766e4d}:root[data-theme=dark]{--bg:#14151f;--text:#e6e7eb;--text-subtle:#9299b8;--text-muted:#8288a0;--nav-bg:#0a0e1f;--nav-text:#9ea3c4;--nav-text-active:#fff;--nav-accent:#2dd4bf;--card-bg:#1c1e2b;--border:#2e3042;--border-subtle:#262838;--card-shadow:0 1px 2px #00000040, 0 4px 14px #0000004d;--input-bg:#20222f;--input-border:#3a3d52;--input-text:#e6e7eb;--focus-ring:#2dd4bf;--table-header-bg:#191a26;--table-row-hover:#20222f;--status-pill-bg:#2a2c3d;--status-pill-text:#cbd0e0;--primary:#2dd4bf;--primary-hover:#14b8a6;--primary-text:#0a0e1f;--secondary-bg:#20222f;--secondary-text:#cbd0e0;--secondary-border:#3a3d52;--secondary-hover:#262838;--danger:#ef4444;--danger-hover:#dc2626;--icon-btn-hover:#262838;--modal-overlay:#0009;--modal-bg:#1c1e2b;--modal-shadow:#00000080;--error-text:#f87171;--chart-closed:#4ade80;--primary-shadow-tint:#2dd4bf40;--primary-shadow-tint-hover:#2dd4bf4d}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;transition:background-color .15s,color .15s}button{cursor:pointer;font-family:inherit;font-size:.9rem}.app-shell{min-height:100vh}.top-nav{background:var(--nav-bg);color:#fff;align-items:center;gap:1rem;padding:.9rem 1.25rem;display:flex;position:relative}.top-nav .brand{white-space:nowrap;align-items:center;gap:.55rem;margin-right:.5rem;font-weight:600;display:inline-flex}.app-logo{color:var(--nav-accent);flex-shrink:0}.nav-links{gap:1.1rem;display:flex}.top-nav a{color:var(--nav-text);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:2px solid #0000;padding:.3rem 0;font-size:.8rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s}.top-nav a:hover{color:var(--nav-text-active)}.top-nav a.active{color:var(--nav-text-active);border-bottom-color:var(--nav-accent);font-weight:700}.theme-toggle{color:var(--nav-text-active);background:0 0;border:1px solid #ffffff40;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;margin-left:auto;font-size:1rem;line-height:1;display:flex}.theme-toggle:hover{background:#ffffff1a}.nav-toggle{color:var(--nav-text-active);background:0 0;border:1px solid #ffffff40;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;font-size:1.1rem;line-height:1;display:none}.nav-toggle:hover{background:#ffffff1a}.app-main{max-width:1080px;margin:0 auto;padding:2rem}@media (width<=900px){.top-nav{flex-wrap:wrap;gap:.75rem}.nav-toggle{display:flex}.nav-links{background:var(--nav-bg);z-index:40;border-top:1px solid #ffffff1a;flex-direction:column;gap:0;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 8px 20px #00000040}.nav-links.open{display:flex}.top-nav a{border-bottom:1px solid #ffffff14;border-left:3px solid #0000;width:100%;padding:.9rem 1.5rem}.top-nav a.active{border-bottom-color:#ffffff14;border-left-color:var(--nav-accent);background:#ffffff0f}.app-main{padding:1.25rem 1rem}}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;display:flex}.page-header h1{margin:0 0 .15rem}.subtle{color:var(--text-subtle);margin:0;font-size:.85rem}.toolbar{gap:.75rem;margin-bottom:1rem;display:flex}.search-input{flex:1;max-width:320px}input,select,textarea{border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);border-radius:8px;padding:.5rem .65rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}input:focus,select:focus,textarea:focus{outline:2px solid var(--focus-ring);outline-offset:1px}button.primary{background:var(--primary);color:var(--primary-text);box-shadow:0 1px 2px #0f172a0f, 0 1px 3px var(--primary-shadow-tint);border:none;border-radius:8px;padding:.55rem 1rem;font-weight:600;transition:background-color .15s,box-shadow .15s}button.primary:hover{background:var(--primary-hover);box-shadow:0 2px 6px var(--primary-shadow-tint-hover)}button.primary:disabled{opacity:.6;cursor:default;box-shadow:none}button.secondary{background:var(--secondary-bg);color:var(--secondary-text);border:1px solid var(--secondary-border);border-radius:8px;padding:.55rem 1rem;font-weight:500;transition:background-color .15s,border-color .15s}button.secondary:hover{background:var(--secondary-hover)}button.danger{background:var(--danger);color:#fff;border:none;border-radius:8px;padding:.55rem 1rem;font-weight:600;transition:background-color .15s}button.danger:hover{background:var(--danger-hover)}.table-wrap{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;overflow-x:auto}.test-case-table{border-collapse:collapse;width:100%;font-size:.9rem}.test-case-table th,.test-case-table td{text-align:left;border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:.7rem 1rem}.test-case-table th{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.03em;background:var(--table-header-bg);font-size:.78rem;font-weight:600}.test-case-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.test-case-table th.sortable:hover{color:var(--text)}.test-case-table tbody tr:last-child td{border-bottom:none}.test-case-table tbody tr:hover{background:var(--table-row-hover)}.test-case-table tbody tr.clickable-row{cursor:pointer}.title-cell{white-space:normal;flex-direction:column;gap:.15rem;min-width:220px;display:flex}.code{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.75rem}.empty-row{text-align:center;color:var(--text-subtle);padding:2rem 1rem}.actions{gap:.4rem;display:flex}.actions button{background:0 0;border:none;border-radius:5px;padding:.2rem .35rem;font-size:1rem}.actions button:hover{background:var(--icon-btn-hover)}.status-pill{background:var(--status-pill-bg);color:var(--status-pill-text);text-transform:capitalize;border-radius:999px;padding:.2rem .55rem;font-size:.78rem;display:inline-block}.badge{border:1px solid #0000;border-radius:999px;padding:.2rem .6rem;font-size:.78rem;font-weight:600;display:inline-block}.badge-critical{color:#fff;background:#dc2626;border-color:#b91c1c}.badge-major{color:#7c2d12;background:#fdba74;border-color:#fb923c}.badge-minor{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.badge-trivial{color:#8a8f99;background:#eceef1;border-color:#0000}.suite-status-draft{color:#43494f;background:#e6e8eb;border-color:#c7ccd1}.suite-status-ready{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.suite-status-in-progress{color:#6d28d9;background:#ede9fe;border-color:#c4b5fd}.suite-status-passed{color:#15803d;background:#dcfce7;border-color:#86efac}.suite-status-failed{color:#9c1c13;background:#fde2e1;border-color:#f3aca7}.row-link{color:var(--text);font-weight:500;text-decoration:none}.row-link:hover{text-decoration:underline}.back-link{color:var(--text-subtle);margin-bottom:1rem;font-size:.85rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--text)}.detail-header-actions{align-items:center;gap:.6rem;display:flex}.drag-handle-cell{white-space:nowrap;align-items:center;gap:.4rem;width:1%;display:flex}.drag-handle{cursor:grab;color:var(--text-muted);text-align:center;width:1.5rem}.test-case-table tbody tr[draggable=true]:active .drag-handle{cursor:grabbing}.reorder-buttons{flex-direction:column;gap:1px;display:flex}.reorder-buttons button{color:var(--text-subtle);background:0 0;border:none;border-radius:3px;padding:.15rem .3rem;font-size:.6rem;line-height:1}.reorder-buttons button:hover:not(:disabled){background:var(--icon-btn-hover);color:var(--text)}.reorder-buttons button:disabled{opacity:.3;cursor:default}.test-case-table tbody tr.drag-over{background:var(--table-row-hover);box-shadow:inset 0 2px 0 var(--nav-accent)}.add-case-row{gap:.75rem;margin-top:1.25rem;display:flex}.add-case-row select{flex:1;max-width:360px}.bug-status-open{color:#9c1c13;background:#fde2e1;border-color:#f3aca7}.bug-status-in-progress{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.bug-status-resolved{color:#15803d;background:#dcfce7;border-color:#86efac}.bug-status-closed{color:#43494f;background:#e6e8eb;border-color:#c7ccd1}.bug-status-reopened{color:#6d28d9;background:#ede9fe;border-color:#c4b5fd}.bug-priority-low{color:#8a8f99;background:#eceef1;border-color:#0000}.bug-priority-medium{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.bug-priority-high{color:#7c2d12;background:#fdba74;border-color:#fb923c}.bug-priority-urgent{color:#fff;background:#dc2626;border-color:#b91c1c}.bug-expected-actual{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.status-change-panel{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;margin-top:1.5rem;padding:1.25rem}.status-change-panel h3{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);margin:0 0 .6rem;font-size:.78rem}.status-change-form{flex-wrap:wrap;gap:.75rem;display:flex}.status-change-form select{min-width:140px}.status-change-form input{flex:1;min-width:200px}.activity-timeline{margin-top:1.5rem}.activity-timeline h3{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);margin:0 0 .75rem;font-size:.78rem}.activity-timeline ul{flex-direction:column;gap:.9rem;margin:0;padding:0;list-style:none;display:flex}.activity-entry{border-left:2px solid var(--border);padding-left:.9rem}.activity-entry p{margin:.15rem 0 0}.activity-timestamp{font-size:.75rem}.activity-comment{background:var(--table-header-bg);border-radius:8px;padding:.5rem .7rem;margin-top:.3rem!important}.add-comment-form{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:1.25rem;display:flex}.add-comment-form textarea{width:100%}.pagination{color:var(--secondary-text);justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem;font-size:.85rem;display:flex}.pagination button{background:var(--secondary-bg);border:1px solid var(--secondary-border);color:var(--secondary-text);border-radius:6px;padding:.35rem .8rem}.pagination button:disabled{opacity:.5;cursor:default}.modal-overlay{background:var(--modal-overlay);z-index:50;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--modal-bg);color:var(--text);width:100%;max-width:480px;max-height:90vh;box-shadow:0 20px 40px var(--modal-shadow);border-radius:12px;padding:1.5rem;overflow-y:auto}.modal h2{margin-top:0}.modal form{flex-direction:column;gap:.9rem;display:flex}.modal label{color:var(--secondary-text);flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;display:flex}.form-row{gap:1rem;display:flex}.form-row label{flex:1}.form-error{color:var(--error-text);margin:0;font-size:.85rem}.modal-actions{justify-content:flex-end;gap:.6rem;margin-top:.25rem;display:flex}.confirm-dialog p{color:var(--secondary-text);font-size:.9rem}.detail-header{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.detail-header h2{margin:0}.detail-badges{gap:.5rem;margin:.6rem 0 1.1rem;display:flex}.detail-section{margin-bottom:1rem}.detail-section h3{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);margin:0 0 .3rem;font-size:.78rem}.detail-section p,.detail-section ol{color:var(--text);margin:0;font-size:.92rem}.detail-section ol{padding-left:1.2rem}.detail-section ol li{margin-bottom:.25rem}.detail-timestamps{margin:.5rem 0 0}.run-status-in-progress{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.run-status-completed{color:#15803d;background:#dcfce7;border-color:#86efac}.result-pending{color:#43494f;background:#e6e8eb;border-color:#c7ccd1}.result-passed{color:#15803d;background:#dcfce7;border-color:#86efac}.result-failed{color:#9c1c13;background:#fde2e1;border-color:#f3aca7}.result-skipped{color:#43494f;background:#e6e8eb;border-color:#c7ccd1}.run-notes-cell{min-width:220px}.run-notes-cell textarea{width:100%;font-size:.85rem}.run-result-actions{white-space:nowrap;gap:.35rem;display:flex}.run-result-actions button{padding:.35rem .6rem;font-size:.8rem}.metric-cards{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem;display:grid}.metric-card{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;flex-direction:column;gap:.4rem;padding:1.25rem;display:flex}.metric-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);font-size:.78rem}.metric-value{color:var(--text);font-size:1.8rem;font-weight:600}.metric-hint{color:var(--primary);font-size:.78rem;text-decoration:none}.metric-hint:hover{text-decoration:underline}.dashboard-section{margin-bottom:2rem}.dashboard-section-chart{margin-bottom:2.5rem}.dashboard-section h3{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);margin:0 0 .75rem;font-size:.78rem}.dashboard-activity-list{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;flex-direction:column;gap:.9rem;margin:0;padding:1rem 1.25rem;list-style:none;display:flex}.dashboard-empty{border:1px dashed var(--border);text-align:center;color:var(--text-subtle);border-radius:12px;padding:1.5rem 1.25rem}.dashboard-empty a{color:var(--primary)}.skeleton-line{background:var(--table-header-bg);border-radius:4px;height:.9rem;animation:1.2s ease-in-out infinite skeleton-pulse}.skeleton-line-short{width:40%;height:.7rem}.skeleton-line-long{width:100%;margin-top:.5rem}.skeleton-card{gap:.6rem}.skeleton-table{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;display:flex}@keyframes skeleton-pulse{0%,to{opacity:.6}50%{opacity:1}}@media (width<=900px){.metric-cards{grid-template-columns:repeat(2,1fr)}}.chart-card{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;padding:1.25rem 1.25rem .75rem}.chart-wrap{position:relative}.chart-wrap-donut{flex-direction:column;align-items:center;display:flex}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-svg-donut{max-width:260px}.chart-svg circle,.chart-svg path[tabindex],.chart-svg rect[tabindex]{outline:none}.chart-svg circle:focus-visible,.chart-svg path:focus-visible,.chart-svg rect:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.chart-empty{border:1px dashed var(--border);text-align:center;color:var(--text-subtle);border-radius:12px;padding:1.5rem 1.25rem}.chart-legend{color:var(--text-subtle);gap:1.25rem;margin-bottom:.5rem;font-size:.8rem;display:flex}.chart-legend-list{flex-direction:column;align-items:center;gap:.5rem;width:100%;margin-top:1.1rem}.chart-legend-item{border-radius:6px;align-items:center;gap:.55rem;padding:.15rem .4rem;display:inline-flex}.chart-legend-list .chart-legend-item{justify-content:space-between;width:100%;max-width:220px}.chart-legend-item-active{background:var(--table-row-hover)}.chart-legend-swatch{border-radius:3px;flex-shrink:0;width:.75rem;height:.75rem;display:inline-block}.chart-legend-label{text-align:left;flex:1;margin-left:.1rem}.chart-legend-count{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.chart-tooltip{background:var(--card-bg);border:1px solid var(--border);pointer-events:none;white-space:nowrap;z-index:1;border-radius:8px;flex-direction:column;gap:.15rem;margin-top:-10px;padding:.5rem .65rem;font-size:.78rem;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 4px 12px #11111b1f}.chart-tooltip strong{font-size:.95rem}.chart-tooltip-subtle{color:var(--text-muted);font-size:.72rem}.chart-data-table{margin-top:.5rem}.chart-data-table summary{cursor:pointer;color:var(--text-subtle);padding:.5rem 0;font-size:.78rem}.chart-data-table summary:hover{color:var(--text)}.chart-data-table table{margin-bottom:.75rem}.import-stage{flex-direction:column;gap:1rem;display:flex}.import-upload-card{background:var(--card-bg);border:1px dashed var(--border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.5rem;display:flex}.import-file-label{background:var(--primary);color:var(--primary-text);cursor:pointer;border-radius:6px;padding:.55rem 1.1rem;font-size:.9rem;font-weight:500;display:inline-block;position:relative}.import-file-label:hover{background:var(--primary-hover)}.import-file-label input{opacity:0;cursor:pointer;position:absolute;inset:0}.import-template-link{color:var(--primary);font-size:.85rem;text-decoration:none}.import-template-link:hover{text-decoration:underline}.import-actions{justify-content:flex-end;gap:.6rem;margin-top:1rem;display:flex}.page-header-actions{gap:.6rem;display:flex}.settings-form{flex-direction:column;gap:1.5rem;max-width:480px;display:flex}.settings-group{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.settings-group h3{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);margin:0;font-size:.78rem}.settings-group label{color:var(--secondary-text);flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;display:flex}.settings-actions{align-items:center;gap:.75rem;display:flex}.settings-saved{color:#15803d;font-size:.85rem;font-weight:600}.quick-search-modal{max-width:560px;padding:0;overflow:hidden}.quick-search-input{border:none;border-bottom:1px solid var(--border);background:var(--modal-bg);border-radius:0;width:100%;padding:1rem 1.5rem;font-size:1.05rem}.quick-search-input:focus{border-bottom-color:var(--focus-ring);outline:none}.quick-search-hint{margin:0;padding:1rem 1.5rem}.quick-search-modal .form-error{margin-top:.75rem;padding:0 1.5rem}.quick-search-group{padding:.5rem 0 .75rem}.quick-search-group h4{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);margin:0;padding:.4rem 1.5rem;font-size:.72rem}.quick-search-group ul{margin:0;padding:0;list-style:none}.quick-search-group li button{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;padding:.6rem 1.5rem;font-size:.9rem;display:flex}.quick-search-group li button:hover,.quick-search-group li button:focus-visible{background:var(--table-row-hover);outline:none}.quick-search-group li button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.quick-search-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.shortcuts-help-modal{max-width:420px}.shortcuts-group{margin-bottom:1.25rem}.shortcuts-group h4{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);margin:0 0 .6rem;font-size:.72rem}.shortcuts-group dl{margin:0}.shortcut-row{justify-content:space-between;align-items:center;gap:1rem;padding:.4rem 0;display:flex}.shortcut-row dt{margin:0}.shortcut-row dd{color:var(--text-subtle);text-align:right;margin:0;font-size:.85rem}kbd{background:var(--status-pill-bg);color:var(--status-pill-text);border:1px solid var(--border);white-space:nowrap;border-bottom-width:2px;border-radius:5px;padding:.15rem .5rem;font-family:ui-monospace,monospace;font-size:.78rem;display:inline-block}@media (width<=640px){.bug-expected-actual{grid-template-columns:1fr}.test-case-table td:first-child:not(.drag-handle-cell),.test-case-table th:first-child:not([aria-label=Reorder]){z-index:1;position:sticky;left:0}.test-case-table td:first-child:not(.drag-handle-cell){background:var(--card-bg)}.test-case-table th:first-child:not([aria-label=Reorder]){background:var(--table-header-bg)}}
