:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#111827}body{margin:0;background-color:#f3f4f6}.app-root{min-height:100vh;background:radial-gradient(circle at top left,#eff6ff 0,#f3f4f6 50%)}.app-header{border-bottom:1px solid #e5e7eb;background-color:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.app-header-inner{max-width:1120px;margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.app-title-block{display:flex;align-items:center;gap:.75rem}.app-logo{width:32px;height:32px;display:block;filter:drop-shadow(0 6px 14px rgba(15,23,42,.18))}.app-logo-dot{width:32px;height:32px;border-radius:999px;background:conic-gradient(from 200deg,#38bdf8,#22c55e,#a855f7,#38bdf8);box-shadow:0 6px 14px #0f172a2e}.app-title{font-size:1.4rem;margin:0;letter-spacing:.01em}.app-subtitle{margin:0;font-size:.8rem;color:#6b7280}.app-header-meta{display:flex;gap:.5rem;align-items:center}.chip{border-radius:999px;padding:.2rem .65rem;font-size:.75rem;border:1px solid transparent;display:inline-flex;align-items:center;gap:.3rem}.chip-muted{background-color:#eff6ff;border-color:#dbeafe;color:#1d4ed8}.app-main{padding:1.5rem 0 2.5rem}.qc-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;width:100%;max-width:none;margin:0;padding:0}.qc-left,.qc-right,.card,.qc-runs,.qc-detail{width:100%;max-width:none!important}.qc-left-trends,.qc-left-baselines{grid-column:1 / -1}.qc-left-trends .card-runs .card-body{overflow:visible}.card{background-color:#fff;border-radius:1rem;box-shadow:0 12px 30px #0f172a14;border:1px solid #e5e7eb;display:flex;flex-direction:column;min-height:0}.card-header{padding:.9rem 1.1rem .5rem;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.card-title{font-size:.95rem;font-weight:600;margin:0;text-transform:uppercase;letter-spacing:.08em;color:#6b7280}.card-body{padding:.75rem 1.1rem 1rem;min-height:0}.card-runs,.card-detail{max-height:none;overflow:visible}.card-runs .card-body,.card-detail .card-body{overflow:visible}.qc-left-baselines .card-runs{max-height:none;overflow:visible}.qc-left-baselines .card-runs .card-body,.card-analyte-distribution,.card-analyte-distribution .card-body{overflow:visible}.card-runs{max-height:none}.card-detail{max-height:none;overflow:visible;max-width:500px;margin-left:0}.table-wrapper{border-radius:.75rem;border:1px solid #e5e7eb;overflow:visible;background-color:#f9fafb}.control-panel-card .table-wrapper{overflow:visible}.runs-table{width:100%;border-collapse:collapse;font-size:.8rem}.runs-table thead{background-color:#f3f4f6}.runs-table th,.runs-table td{padding:.5rem .55rem;text-align:left;border-bottom:1px solid #e5e7eb}.runs-table th{font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#6b7280}.runs-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;padding-right:1.2rem;transition:background-color .12s ease}.runs-table th.th-sortable:hover{background-color:#e5e7eb}.sort-indicator{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);font-size:.75rem;color:#2563eb;font-weight:600}.runs-row{cursor:pointer;transition:background-color .12s ease,box-shadow .12s ease}.runs-row:nth-child(odd){background-color:#f9fafb}.runs-row:hover{background-color:#e5f0ff}.runs-row-selected{background-color:#e0ecff;box-shadow:inset 3px 0 #2563eb}.th-num,.td-num{text-align:right}.status-badge{padding:.12rem .45rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.status-good{background-color:#dcfce7;color:#166534}.status-warn{background-color:#fef9c3;color:#92400e}.status-fail{background-color:#fee2e2;color:#b91c1c}.status-skip{background-color:#e5e7eb;color:#374151}.hint-text{margin:.45rem 0 0;font-size:.75rem;color:#9ca3af}.empty-text{font-size:.8rem;color:#6b7280;margin:.25rem 0}.pill{font-size:.7rem;padding:.15rem .5rem;border-radius:999px;border:1px solid transparent}.pill-loading{background-color:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.pill-error{background-color:#fef2f2;border-color:#fecaca;color:#b91c1c}.run-meta{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-bottom:1rem;font-size:.8rem;align-items:flex-start}.meta-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;margin-bottom:.25rem}.meta-value{font-size:.85rem;font-weight:500;line-height:1.4}.flags-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.flags-title{font-size:.85rem;font-weight:600;margin:0}.flags-table-wrapper{max-height:none;overflow:visible;max-width:100%}.flags-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.8rem;background-color:#fff}.flags-table thead{position:sticky;top:0;z-index:1;background-color:#f3f4f6}.flags-table th,.flags-table td{padding:.45rem .5rem;border-bottom:1px solid #e5e7eb;vertical-align:middle}.flags-table th:nth-child(1),.flags-table td:nth-child(1){width:28%;text-align:left}.flags-table th:nth-child(2),.flags-table td:nth-child(2){width:18%;text-align:left}.flags-table th:nth-child(3),.flags-table td:nth-child(3){width:22%;text-align:right}.flags-table th:nth-child(4),.flags-table td:nth-child(4){width:32%;text-align:right}.flags-table th{font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#6b7280}.flags-row{cursor:pointer;transition:background-color .12s ease}.flags-row:nth-child(odd){background-color:#f9fafb}.flags-row:hover{background-color:#eff6ff}.flags-row-selected{background-color:#e0ebff}.flags-analyte-cell{font-weight:500}.flag{font-size:.7rem;padding:.12rem .4rem;border-radius:999px;text-transform:lowercase}.flag-good{background-color:#dcfce7;color:#166534}.flag-warn{background-color:#fef3c7;color:#92400e}.flag-fail{background-color:#fee2e2;color:#b91c1c}.flag-skip{background-color:#e5e7eb;color:#374151}.analyte-stats-block{margin-top:.75rem;font-size:.8rem}.analyte-card{border-radius:.75rem;border:1px solid #e5e7eb;background-color:#f9fafb;padding:.7rem .8rem}.analyte-card-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.analyte-name{font-weight:600;font-size:.9rem}.analyte-chip{font-size:.7rem;border-radius:999px;padding:.1rem .45rem;background-color:#eef2ff;color:#4f46e5}.analyte-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .75rem;margin-bottom:.4rem}.analyte-footer{font-size:.7rem;color:#9ca3af}.analyte-error{color:#b91c1c;font-size:.8rem}.card-analyte-distribution{margin-top:1rem;overflow:visible}.analyte-distribution-body{padding-top:.75rem;overflow:visible}.analyte-visual-toggle{display:inline-flex;gap:.35rem;margin-bottom:.35rem}.toggle-btn{border:1px solid #e5e7eb;background:#f9fafb;color:#374151;padding:.35rem .75rem;border-radius:999px;font-size:.75rem;cursor:pointer}.toggle-btn-active{background:#2563eb;color:#fff;border-color:#1d4ed8;box-shadow:0 4px 10px #2563eb40}.normal-chart{background:linear-gradient(to bottom,#f9fafb,#fff);border:1px solid #e5e7eb;border-radius:.75rem;padding:.5rem;margin-top:.5rem}.normal-chart-controls{margin-bottom:.5rem;display:flex;justify-content:flex-end}.normal-chart-reset{border:1px solid #d1d5db;background:#fff;color:#374151;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;cursor:pointer;transition:background-color .12s ease}.normal-chart-reset:hover{background:#f3f4f6}.normal-chart-plot{-webkit-user-select:none;user-select:none}.normal-chart-plot svg{width:100%;height:180px}.normal-curve{fill:#3b82f633;stroke:#2563eb;stroke-width:.8}.normal-bar{fill:#3b82f640}.normal-axis{stroke:#d1d5db;stroke-width:.5}.normal-line{stroke-width:1.2}.normal-line-mean{stroke:#2563eb}.normal-line-warn{stroke:#eab308}.normal-line-fail{stroke:#dc2626}.normal-line-current{stroke:#16a34a;stroke-dasharray:2 2}.normal-chart-meta{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.75rem;color:#4b5563;margin-top:.5rem}.normal-chart-axis{position:relative;display:flex;justify-content:space-between;font-size:.75rem;color:#6b7280;margin-top:.25rem;height:1.2rem}.normal-chart-axis-labels{display:flex;justify-content:space-between;font-size:.75rem;color:#6b7280;margin-top:.15rem}.normal-chart-x-label{text-align:left}.normal-chart-y-label{text-align:right}.normal-chart-empty{font-size:.75rem;color:#6b7280;padding:.5rem 0}.card-title-with-help{display:inline-flex;align-items:center;gap:.35rem}.analyte-help{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid #d1d5db;color:#4b5563;font-size:.75rem;cursor:help;background-color:#f9fafb}.boxplot{padding:.5rem .25rem .25rem}.boxplot-track{position:relative;height:26px;border-radius:999px}.boxplot-rail{position:absolute;inset:9px 0;border-radius:999px;background:linear-gradient(to right,#f3f4f6,#e5e7eb)}.boxplot-iqr{position:absolute;top:7px;height:12px;border-radius:999px;background:#3b82f640}.boxplot-median{position:absolute;top:6px;width:2px;height:14px;border-radius:999px;background:#2563eb}.boxplot-threshold{position:absolute;top:0;bottom:0;width:3px;border-radius:2px;transform:translate(-50%);z-index:2;box-shadow:0 0 2px #0003}.boxplot-threshold-warn{background-color:#eab308e6;border-left:1px solid rgba(234,179,8,1);border-right:1px solid rgba(234,179,8,1)}.boxplot-threshold-fail{background-color:#dc2626e6;border-left:1px solid rgba(220,38,38,1);border-right:1px solid rgba(220,38,38,1)}.boxplot-marker{position:absolute;top:3px;width:14px;height:14px;border-radius:999px;border:2px solid #ffffff;box-shadow:0 0 0 3px #0f172a0f;transform:translate(-50%);z-index:3}.boxplot-marker-good{background-color:#16a34a}.boxplot-marker-warn{background-color:#eab308}.boxplot-marker-fail{background-color:#dc2626}.boxplot-marker-skip{background-color:#9ca3af}.boxplot-labels{display:flex;justify-content:space-between;margin-top:.375rem;font-size:.6875rem;color:#6b7280}.boxplot-label-right{text-align:right}.boxplot-meta{margin-top:.125rem;font-size:.625rem;color:#9ca3af}.boxplot-dot-separator{margin:0 .25rem}.boxplot-empty{padding:.625rem 0}.boxplot-empty-text{font-size:.6875rem;color:#9ca3af}.analyte-stats-grid{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1rem;font-size:.75rem}.analyte-stat-section{flex:1;min-width:200px}.analyte-stat-section-title{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;padding-bottom:.25rem;border-bottom:1px solid #e5e7eb}.analyte-stat-block{display:flex;flex-direction:column;gap:.125rem}.analyte-stat-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;font-size:.625rem}.analyte-stat-value{color:#111827;font-weight:500}.analyte-updated-at{margin-top:.5rem;font-size:.625rem;color:#9ca3af}.analyte-history-meta{margin-top:.75rem;font-size:.8rem;color:#555}.view-mode-toggle{display:inline-flex;gap:.35rem;margin:.75rem 1rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.report-picker{padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;gap:.5rem;background-color:#f9fafb}.report-picker-label{font-size:.85rem;font-weight:500;color:#374151;white-space:nowrap}.report-picker-select{flex:1;padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem;background-color:#fff;color:#111827;cursor:pointer}.report-picker-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.trends-view{padding:1rem}.trends-root{display:grid;grid-template-columns:minmax(520px,640px) minmax(420px,1fr);gap:1rem;align-items:flex-start}.trends-left,.trends-right{min-width:0}@media(max-width:980px){.trends-root{grid-template-columns:1fr}}.analyte-list-card{max-height:none;overflow:visible}.trends-chart-card{min-width:420px;overflow:visible}@media(max-width:980px){.trends-chart-card{min-width:0}}.trends-header{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.trends-title{font-size:1.25rem;font-weight:600;color:#111827;margin:0}.trends-progress,.trends-error,.trends-info{margin-top:.5rem}.trends-table{width:100%;border-collapse:collapse;font-size:.85rem}.trends-table thead{background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.trends-table th{text-align:left;padding:.5rem .75rem;font-weight:600;color:#374151;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.trends-table td{padding:.5rem .75rem;border-bottom:1px solid #e5e7eb}.trends-row{transition:background-color .15s}.trends-row:hover{background-color:#f9fafb}.trends-analyte-cell{font-weight:500;color:#111827}.trends-count{color:#6b7280}.trends-row-selected{background-color:#eff6ff!important;border-left:3px solid #2563eb}.trends-chart-panel{margin-top:2rem;padding:1.5rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem}.trends-chart-header{margin-bottom:1rem}.trends-chart-title{font-size:1.1rem;font-weight:600;color:#111827;margin:0 0 .5rem}.trends-chart-note{font-size:.85rem;color:#6b7280;margin:0}.trends-chart-container{width:100%;min-height:350px;height:350px;-webkit-user-select:none;user-select:none}.trends-y-controls{margin:.5rem 0 .75rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;font-size:.8rem}.trends-y-toggle{display:inline-flex;align-items:center;gap:.35rem}.trends-y-manual{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.trends-y-manual label{display:inline-flex;align-items:center;gap:.25rem}.trends-y-manual input[type=number]{width:80px;padding:.15rem .3rem;font-size:.8rem;border:1px solid #d1d5db;border-radius:4px}.trends-y-reset{padding:.25rem .6rem;font-size:.75rem}.trends-tooltip{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem;box-shadow:0 4px 6px -1px #0000001a;font-size:.85rem}.trends-tooltip div{margin-bottom:.25rem}.trends-tooltip div:last-child{margin-bottom:0}.trends-tooltip strong{color:#374151;margin-right:.5rem}.trends-select-hint{margin-top:1.5rem;text-align:center;color:#6b7280;font-size:.9rem;font-style:italic}.runs-filter{margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.filter-label{font-size:.85rem;font-weight:500;color:#374151}.filter-input{flex:1;max-width:300px;padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem;background-color:#fff;color:#111827}.filter-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.add-result-tags{display:flex;flex-wrap:wrap;gap:.25rem}.tag{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:500}.tag-addresult{background-color:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.analyte-context-header{padding:.75rem 1rem;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:1rem;font-size:.8rem}.context-item{display:flex;align-items:center;gap:.4rem}.context-label{font-weight:600;color:#6b7280}.context-value{color:#111827;font-weight:500}.window-size-selector{margin-bottom:1rem;padding:.75rem;background-color:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.window-size-label{display:block;margin-bottom:.5rem;font-size:.85rem;font-weight:500;color:#374151}.window-size-label strong{color:#1e40af}.window-size-slider{width:100%;height:6px;border-radius:3px;background:#e5e7eb;outline:none;appearance:none;-webkit-appearance:none;margin-bottom:.5rem}.window-size-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#3b82f6;cursor:pointer}.window-size-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#3b82f6;cursor:pointer;border:none}.window-size-slider:disabled{opacity:.5;cursor:not-allowed}.window-size-bounds{font-size:.75rem;color:#6b7280;text-align:center}.qc-thresholds-toggle{margin-bottom:1rem;padding:.5rem .75rem;background-color:#f9fafb;border-radius:4px;border:1px solid #e5e7eb}.qc-thresholds-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#374151;cursor:pointer}.qc-thresholds-checkbox{cursor:pointer}.boxplot-baseline-info,.normal-chart-baseline-info{margin-top:.5rem;font-size:.75rem;color:#6b7280;font-style:italic}.status-pill{padding:.12rem .45rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.status-pill-good{background-color:#dcfce7;color:#166534}.status-pill-warn{background-color:#fef9c3;color:#92400e}.status-pill-fail{background-color:#fee2e2;color:#b91c1c}.status-pill-skip{background-color:#e5e7eb;color:#374151}.card-title-group{display:flex;flex-direction:column;gap:.25rem}.card-subtitle{font-size:.75rem;color:#6b7280;margin:0}@media(max-width:1200px){.qc-layout{gap:20px}}@media(max-width:900px){.qc-layout{grid-template-columns:1fr;gap:1.5rem}.card-runs,.card-detail{max-height:none}.run-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.flags-table-wrapper{max-height:none}}@media(max-width:600px){.qc-layout{gap:1rem}.run-meta{grid-template-columns:1fr}}.long-term-trends-view{padding:1rem 1.5rem}.long-term-trends-header{margin-bottom:1.25rem}.long-term-trends-title{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:#111827}.long-term-trends-progress,.long-term-trends-error{margin-top:.5rem}.long-term-trends-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-bottom:1.5rem;padding:1rem;background-color:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.long-term-trends-control-group{display:flex;flex-direction:column;gap:.25rem}.long-term-trends-control-group label{font-size:.85rem;font-weight:500;color:#374151}.long-term-trends-select,.long-term-trends-input{padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem;background-color:#fff;color:#111827;min-width:150px}.long-term-trends-select:focus,.long-term-trends-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.long-term-trends-load-btn{padding:.5rem 1rem;background-color:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background-color .2s}.long-term-trends-load-btn:hover:not(:disabled){background-color:#2563eb}.long-term-trends-load-btn:disabled{background-color:#9ca3af;cursor:not-allowed}.long-term-trends-chart-card{margin-top:1.5rem;max-width:1600px;margin-left:auto;margin-right:auto}.long-term-trends-chart-header{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb;text-align:left}.long-term-trends-chart-title{font-size:1.5rem;font-weight:600;margin:0;color:#111827;letter-spacing:-.01em}.long-term-trends-chart-container{margin:1rem auto;padding:0 1rem}.long-term-trends-chart-footer{display:flex;justify-content:flex-start;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.long-term-trends-chart-meta{display:flex;align-items:center}.long-term-trends-meta-text{font-size:.85rem;color:#6b7280}.long-term-trends-tooltip{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem;box-shadow:0 4px 6px -1px #0000001a;font-size:.85rem}.long-term-trends-tooltip p{margin:.25rem 0}.long-term-trends-tooltip p:last-child{margin-bottom:0}.long-term-trends-tooltip strong{color:#374151;margin-right:.5rem}.long-term-trends-legend{display:flex;gap:1.5rem;justify-content:flex-start}.long-term-trends-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#374151}.long-term-trends-legend-color{width:12px;height:12px;border-radius:50%;display:inline-block}@media(max-width:768px){.long-term-trends-controls{flex-direction:column;align-items:stretch}.long-term-trends-control-group,.long-term-trends-select,.long-term-trends-input{width:100%}.long-term-trends-legend{flex-direction:column;gap:.75rem}}.baselines-view{padding:.75rem 1rem}.baselines-header{display:flex;justify-content:flex-end;align-items:flex-start;margin-bottom:.75rem;gap:1rem}.baselines-title{margin:0;font-size:1.125rem;font-weight:600;color:#111827;line-height:1.4}.baselines-subtitle{margin:.125rem 0 0;font-size:.8125rem;color:#6b7280;line-height:1.4}.baselines-refresh-btn{padding:.375rem .875rem;background-color:#3b82f6;color:#fff;border:none;border-radius:.375rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .2s;white-space:nowrap}.baselines-refresh-btn:hover:not(:disabled){background-color:#2563eb}.baselines-refresh-btn:disabled{background-color:#9ca3af;cursor:not-allowed}.baselines-error{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.625rem;background-color:#fef2f2;border:1px solid #fecaca;border-radius:.375rem}.baselines-retry-btn{padding:.3125rem .625rem;background-color:#dc2626;color:#fff;border:none;border-radius:.25rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .2s}.baselines-retry-btn:hover{background-color:#b91c1c}.baselines-loading{padding:.75rem;text-align:center}.baselines-filter{margin-bottom:.625rem;display:flex;align-items:center;gap:.625rem}.baselines-filter .filter-label{font-size:.8125rem;margin:0}.baselines-filter .filter-input{padding:.375rem .625rem;font-size:.8125rem}.baselines-table{width:100%;border-collapse:collapse;background-color:#fff;border-radius:.375rem;overflow:visible;font-size:.8125rem}.baselines-table thead{background-color:#f9fafb}.baselines-table th,.baselines-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #e5e7eb;line-height:1.4}.baselines-table th{font-weight:600;font-size:.75rem;color:#374151;text-transform:uppercase;letter-spacing:.05em;padding-top:.625rem;padding-bottom:.625rem}.baselines-table td{font-size:.8125rem;color:#111827}.baselines-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.baselines-table th.th-sortable:hover{background-color:#f3f4f6}.baselines-table tbody tr:hover{background-color:#f9fafb}.baselines-table tbody tr:last-child td{border-bottom:none}.control-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start;max-width:1600px;margin:0 auto;width:100%}.control-panel-card{display:flex;flex-direction:column}.control-panel-card .card-body{overflow:visible}.control-panel-card .baselines-view,.control-panel-card .qc-rules-view{padding:0}.control-panel-card .baselines-header,.control-panel-card .qc-rules-header-card{margin-bottom:.75rem}@media(max-width:1200px){.control-panel-grid{grid-template-columns:1fr}.control-panel-card{max-height:none}}.qc-rules-view{padding:0}.qc-rules-header-section{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.qc-rules-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.qc-rules-title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:#111827;line-height:1.4}.qc-rules-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.5rem;font-size:.8125rem;color:#6b7280}.qc-rules-meta span{display:flex;align-items:center;gap:.25rem}.qc-rules-meta strong{color:#111827;font-weight:600}.qc-rules-rollback-info{color:#dc2626;font-weight:500}.qc-rules-header-actions{display:flex;gap:.5rem}.qc-rules-refresh-btn,.qc-rules-rollback-btn{padding:.375rem .875rem;background-color:#3b82f6;color:#fff;border:none;border-radius:.375rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .2s;white-space:nowrap}.qc-rules-refresh-btn:hover:not(:disabled),.qc-rules-rollback-btn:hover:not(:disabled){background-color:#2563eb}.qc-rules-refresh-btn:disabled,.qc-rules-rollback-btn:disabled{background-color:#9ca3af;cursor:not-allowed}.qc-rules-rollback-btn{background-color:#f59e0b}.qc-rules-rollback-btn:hover:not(:disabled){background-color:#d97706}.qc-rules-error{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.625rem;background-color:#fef2f2;border:1px solid #fecaca;border-radius:.375rem}.qc-rules-retry-btn{padding:.3125rem .625rem;background-color:#dc2626;color:#fff;border:none;border-radius:.25rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .2s}.qc-rules-retry-btn:hover{background-color:#b91c1c}.qc-rules-loading{padding:.75rem;text-align:center}.qc-rules-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.qc-rules-section:last-of-type{border-bottom:none;margin-bottom:1rem}.qc-rules-section-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#111827}.qc-rules-defaults-form{display:flex;flex-direction:column;gap:1rem}.qc-rules-input-group{display:flex;flex-direction:column;gap:.375rem}.qc-rules-input-group label{font-size:.8125rem;font-weight:500;color:#374151;display:flex;flex-direction:column;gap:.375rem}.qc-rules-input-group input,.qc-rules-input-group select{padding:.5rem .75rem;font-size:.8125rem;border:1px solid #d1d5db;border-radius:.375rem;background-color:#fff;color:#111827;transition:border-color .2s}.qc-rules-input-group input:focus,.qc-rules-input-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.qc-rules-input-group input.input-error,.qc-rules-input-group select.input-error{border-color:#dc2626}.error-text{font-size:.75rem;color:#dc2626;margin-top:-.25rem}.qc-rules-save-btn,.qc-rules-save-all-btn{padding:.5rem 1rem;background-color:#10b981;color:#fff;border:none;border-radius:.375rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .2s;align-self:flex-start}.qc-rules-save-btn:hover:not(:disabled),.qc-rules-save-all-btn:hover:not(:disabled){background-color:#059669}.qc-rules-save-btn:disabled,.qc-rules-save-all-btn:disabled{background-color:#9ca3af;cursor:not-allowed}.qc-rules-analytes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.qc-rules-add-btn{padding:.375rem .875rem;background-color:#3b82f6;color:#fff;border:none;border-radius:.375rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .2s}.qc-rules-add-btn:hover{background-color:#2563eb}.qc-rules-table{width:100%;border-collapse:collapse;background-color:#fff;border-radius:.375rem;overflow:hidden;font-size:.8125rem}.qc-rules-table thead{background-color:#f9fafb}.qc-rules-table th,.qc-rules-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #e5e7eb;line-height:1.4}.qc-rules-table th{font-weight:600;font-size:.75rem;color:#374151;text-transform:uppercase;letter-spacing:.05em}.qc-rules-table td{color:#111827}.qc-rules-table tbody tr:hover{background-color:#f9fafb}.qc-rules-table tbody tr:last-child td{border-bottom:none}.qc-rules-edit-btn,.qc-rules-delete-btn{padding:.25rem .5rem;margin-right:.5rem;border:none;border-radius:.25rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .2s}.qc-rules-edit-btn{background-color:#3b82f6;color:#fff}.qc-rules-edit-btn:hover{background-color:#2563eb}.qc-rules-delete-btn{background-color:#dc2626;color:#fff}.qc-rules-delete-btn:hover{background-color:#b91c1c}.qc-rules-actions{margin-top:1rem;display:flex;justify-content:flex-end}.qc-rules-rollback-warning{padding:.75rem;background-color:#fef3c7;border:1px solid #fbbf24;border-radius:.375rem;color:#92400e;font-size:.8125rem;margin-bottom:1rem}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background-color:#fff;border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a;max-width:600px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3{margin:0;font-size:1.125rem;font-weight:600;color:#111827}.modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:background-color .2s}.modal-close:hover{background-color:#f3f4f6}.modal-body{padding:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.modal-cancel-btn,.modal-save-btn{padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .2s}.modal-cancel-btn{background-color:#f3f4f6;color:#374151}.modal-cancel-btn:hover{background-color:#e5e7eb}.modal-save-btn{background-color:#10b981;color:#fff}.modal-save-btn:hover:not(:disabled){background-color:#059669}.modal-save-btn:disabled{background-color:#9ca3af;cursor:not-allowed}.app-root{min-height:100vh;background:#f3f4f6;padding:24px 32px;display:flex;flex-direction:column;box-sizing:border-box}@media(max-width:1200px){.app-root{padding:20px 24px}}@media(max-width:768px){.app-root{padding:16px}}.app-header{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:12px;padding:16px 24px;margin-bottom:24px;box-shadow:0 4px 20px #0000000d;flex-wrap:wrap;gap:1rem}@media(max-width:768px){.app-header{padding:12px 16px;margin-bottom:16px}.app-header-left{flex-direction:column;align-items:flex-start;gap:8px}}.app-header-left{display:flex;align-items:center;gap:16px}.app-header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.app-logo{width:40px;height:40px}.app-title{margin:0;font-size:20px;font-weight:600}.app-subtitle{margin:0;font-size:13px;color:#586270}.app-main{max-width:1600px;margin:0 auto;padding:2rem 3rem;width:100%;box-sizing:border-box}@media(max-width:1200px){.app-main{padding:2rem}}@media(max-width:768px){.app-main{padding:1.5rem 1rem}}.pill-muted{background:#eef1f4;padding:6px 14px;border-radius:20px;font-size:13px;color:#4c5563;border:1px solid #d3d8de}.app-header-right button{padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500;background:#1f2937;color:#fff;border:none;cursor:pointer;transition:background-color .2s}.app-header-right button:hover{background:#374151}.app-header-right button:active{background:#111827}
