@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";.app-shell[data-v-e4d3383f]{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100%;overflow:hidden}.app-main[data-v-e4d3383f]{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.app-route[data-v-e4d3383f]{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.app-route[data-v-e4d3383f]>*{flex:1;min-height:0}.module-icon[data-v-bf327e68]{flex-shrink:0;color:var(--sidebar-icon, #94a3b8);transition:color .15s}.module-icon.active[data-v-bf327e68]{color:var(--color-teal-400, #2dd4bf)}.qa-lab-brand--icon[data-v-d83b2b62]{display:inline-flex;flex-shrink:0}.qa-lab-brand--icon[data-v-d83b2b62] svg{width:100%;height:100%;display:block}.qa-lab-brand--horizontal[data-v-d83b2b62]{display:inline-flex;align-items:center}.qa-lab-brand--horizontal[data-v-d83b2b62] svg{height:100%;width:auto;display:block}.evidence-thumb .file-thumb[data-v-1da21cfd]{width:80px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-gray-light);text-decoration:none;color:var(--color-text-secondary);padding:8px}.file-name[data-v-1da21cfd]{font-size:9px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:4px}.broken-thumb[data-v-1da21cfd]{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--color-gray-light);color:var(--color-text-secondary)}.exec-edit-panel[data-v-b3803de0]{margin:12px 0 16px;padding:14px;border:2px solid var(--color-primary);border-radius:var(--radius);background:var(--color-primary-xlight)}.exec-edit-header[data-v-b3803de0]{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.exec-edit-actions[data-v-b3803de0]{display:flex;gap:8px}.exec-edit-field[data-v-b3803de0]{margin-bottom:12px}.exec-edit-field label[data-v-b3803de0],.exec-edit-subsection>label[data-v-b3803de0]{display:block;font-size:12px;font-weight:600;color:var(--color-primary-dark);margin-bottom:4px}.exec-edit-subsection[data-v-b3803de0]{margin-bottom:12px}.row-edit[data-v-b3803de0]{display:flex;gap:6px;align-items:center;margin-bottom:6px}.step-num[data-v-b3803de0]{width:22px;text-align:center;font-size:11px;font-weight:700;color:var(--color-primary-dark);flex-shrink:0}.flex1[data-v-b3803de0]{flex:1}.btn-dashed[data-v-b3803de0]{width:100%;padding:8px;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:12px;color:var(--color-text-secondary)}.structured-notes[data-v-769b6a33]{margin:12px 0;padding:14px;border:1px solid var(--color-primary);border-radius:var(--radius);background:#f8fffe}.structured-header[data-v-769b6a33]{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}.structured-title[data-v-769b6a33]{font-weight:600;font-size:14px;color:var(--color-primary-dark)}.structured-done[data-v-769b6a33]{font-size:11px;color:#059669;background:#d1fae5;padding:2px 8px;border-radius:99px}.structured-hint[data-v-769b6a33]{font-size:12px;color:var(--color-text-muted);margin:0 0 14px}.structured-field[data-v-769b6a33]{margin-bottom:14px}.structured-field[data-v-769b6a33]:last-child{margin-bottom:0}.field-label[data-v-769b6a33]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#334155;margin-bottom:8px}.req[data-v-769b6a33]{font-size:10px;font-weight:600;text-transform:uppercase;color:#b45309;background:#fef3c7;padding:1px 6px;border-radius:4px}.locked-tag[data-v-769b6a33]{font-size:10px;font-weight:600;text-transform:uppercase;color:#059669;background:#d1fae5;padding:1px 6px;border-radius:4px}.option-group[data-v-769b6a33]{display:flex;flex-wrap:wrap;gap:6px}.option-btn[data-v-769b6a33]{padding:8px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;font-size:13px;cursor:pointer;transition:all .15s;font-family:inherit}.option-btn[data-v-769b6a33]:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary-dark)}.option-btn.selected[data-v-769b6a33],.option-btn:disabled.selected[data-v-769b6a33]{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary-dark);cursor:default;opacity:1}.option-btn[data-v-769b6a33]:disabled:not(.selected){opacity:.45;cursor:not-allowed}.locked-value[data-v-769b6a33]{display:inline-block;padding:8px 12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-weight:500}.structured-text[data-v-769b6a33]{width:100%}.locked-text[data-v-769b6a33]{padding:10px 12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;line-height:1.5;white-space:pre-wrap;color:#334155}.exec-edit-bar[data-v-9e98fd9a]{margin-bottom:12px}.exec-edit-btn[data-v-9e98fd9a]{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:#fff;color:var(--color-primary-dark);font-size:12px;font-weight:600;cursor:pointer}.evidence-req-badge[data-v-9e98fd9a]{font-size:12px;margin-left:4px}.evidence-hint[data-v-9e98fd9a]{font-size:12px;color:var(--color-warning, #b45309);margin:0 0 8px;padding:8px 10px;background:#fffbeb;border-radius:var(--radius-sm);border:1px solid #fde68a}.tmpl-btn.tmpl-active[data-v-9e98fd9a]{border-color:var(--color-primary);background:var(--color-primary-light);font-weight:600}.obs-hint[data-v-9e98fd9a]{font-size:12px;color:var(--color-text-muted);margin:0 0 8px}.obs-prompt[data-v-9e98fd9a],.obs-empty[data-v-9e98fd9a]{font-size:13px;color:var(--color-text-secondary);font-style:italic;margin:8px 0 0}.locked-classic-note[data-v-9e98fd9a]{margin-top:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#f8fafc}.locked-classic-note .locked-tag[data-v-9e98fd9a]{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;color:#059669;background:#d1fae5;padding:2px 8px;border-radius:4px;margin-bottom:8px}.classic-note-text[data-v-9e98fd9a]{margin:0;font-size:13px;line-height:1.5;white-space:pre-wrap;font-family:inherit;color:#334155}.draft-panel[data-v-f2531e74]{margin:0 20px 10px;border:1px dashed var(--color-border);border-radius:var(--radius);background:var(--color-primary-xlight)}.draft-toggle[data-v-f2531e74]{width:100%;display:flex;align-items:center;gap:8px;padding:10px 14px;border:none;background:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--color-primary-dark)}.draft-badge[data-v-f2531e74]{background:var(--color-primary);color:#fff;font-size:11px;padding:1px 7px;border-radius:var(--radius-full)}.draft-toggle .rotated[data-v-f2531e74]{transform:rotate(180deg)}.draft-body[data-v-f2531e74]{padding:0 14px 14px;border-top:1px solid var(--color-border)}.draft-hint[data-v-f2531e74]{font-size:12px;color:var(--color-text-muted);margin:10px 0}.draft-form[data-v-f2531e74]{display:flex;flex-direction:column;gap:8px}.draft-list[data-v-f2531e74]{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.draft-list li[data-v-f2531e74]{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;background:#fff;border-radius:var(--radius-sm);border:1px solid var(--color-border);font-size:13px}.draft-meta[data-v-f2531e74]{display:block;font-size:11px;color:var(--color-text-muted);margin-top:2px}.draft-actions[data-v-f2531e74]{display:flex;gap:4px;flex-shrink:0}.danger-text[data-v-f2531e74]{color:var(--color-danger)}.run-modal-backdrop[data-v-d1a04788]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px}.run-modal[data-v-d1a04788]{background:var(--color-surface, #fff);border-radius:var(--radius-md, 8px);max-width:480px;width:100%;padding:20px;box-shadow:0 8px 32px #00000026}.run-modal-head[data-v-d1a04788]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.run-modal-head h2[data-v-d1a04788]{margin:0;font-size:18px}.run-modal-desc[data-v-d1a04788]{font-size:13px;color:var(--color-text-muted, #666);margin:0 0 16px}.run-field[data-v-d1a04788]{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;font-size:13px;font-weight:600}.run-field input[data-v-d1a04788]{font-weight:400;padding:8px 10px;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm, 4px)}.run-strategy[data-v-d1a04788]{border:none;padding:0;margin:0 0 16px}.run-strategy legend[data-v-d1a04788]{font-size:13px;font-weight:600;margin-bottom:8px}.radio-row[data-v-d1a04788]{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--color-border, #eee);border-radius:var(--radius-sm, 4px);margin-bottom:8px;cursor:pointer}.radio-row small[data-v-d1a04788]{display:block;font-weight:400;color:var(--color-text-muted, #666);margin-top:2px}.redo-results[data-v-d1a04788]{margin-bottom:16px}.run-field-label[data-v-d1a04788]{font-size:13px;font-weight:600;display:block;margin-bottom:8px}.redo-chips[data-v-d1a04788]{display:flex;flex-wrap:wrap;gap:8px}.redo-chip[data-v-d1a04788]{padding:6px 12px;border-radius:999px;border:1px solid var(--color-border, #ddd);background:#fff;font-size:12px;cursor:pointer}.redo-chip.active[data-v-d1a04788]{background:var(--color-primary-light, #e0f5f3);border-color:var(--color-primary, #2bbdad);color:var(--color-primary-dark, #1e9080);font-weight:600}.run-modal-foot[data-v-d1a04788]{display:flex;justify-content:flex-end;gap:8px}.icon-btn[data-v-d1a04788]{background:none;border:none;cursor:pointer;padding:4px;color:var(--color-text-muted, #666)}.execution-run-bar[data-v-166878b0]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--color-border, #eee);background:var(--color-gray-light, #f8f8f8)}.run-select-label[data-v-166878b0]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.run-select[data-v-166878b0]{font-weight:400;min-width:220px;padding:6px 8px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, #ddd)}.run-hint[data-v-166878b0]{font-size:12px;color:var(--color-primary-dark, #1e9080)}.run-hint.readonly[data-v-166878b0]{color:var(--color-text-muted, #666)}.btn-new-run[data-v-166878b0]{margin-left:auto}.admin-shell[data-v-e92cc6bb]{flex:1;min-height:0;overflow-y:auto;background:var(--color-neutral)}.admin-content[data-v-e92cc6bb]{max-width:960px;margin:0 auto;padding:24px}.cases-shell[data-v-c15407ca]{flex:1;min-height:0;overflow-y:auto;background:var(--color-neutral)}.cases-content[data-v-c15407ca]{max-width:1080px;margin:0 auto;padding:24px}.icon-picker[data-v-15f9765b]{display:flex;flex-direction:column}.icon-picker-trigger[data-v-15f9765b]{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-white);cursor:pointer;font-family:inherit;text-align:left;transition:all .15s}.icon-picker-trigger[data-v-15f9765b]:hover,.icon-picker-trigger.open[data-v-15f9765b]{border-color:var(--color-primary)}.icon-picker-trigger.open[data-v-15f9765b]{border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--color-primary-xlight)}.icon-preview[data-v-15f9765b]{display:flex;align-items:center;justify-content:center;width:28px;color:var(--color-text-secondary)}.icon-picker-label[data-v-15f9765b]{flex:1;font-size:14px;color:var(--color-text-secondary)}.icon-chevron[data-v-15f9765b]{color:var(--color-text-muted);transition:transform .15s}.icon-chevron.rotated[data-v-15f9765b]{transform:rotate(180deg)}.icon-picker-panel[data-v-15f9765b]{padding:12px;background:var(--color-white);border:1px solid var(--color-primary);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:var(--shadow-md)}.icon-picker-hint[data-v-15f9765b]{margin:0 0 10px;font-size:12px;color:var(--color-text-muted)}.icon-grid[data-v-15f9765b]{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.icon-option[data-v-15f9765b]{min-height:40px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-gray-light);cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:all .15s}.icon-option[data-v-15f9765b]:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.icon-option.active[data-v-15f9765b]{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}@media(max-width:520px){.icon-grid[data-v-15f9765b]{grid-template-columns:repeat(4,1fr)}}.note-editor[data-v-f302f5bb]{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;margin-bottom:20px;background:#fff}.note-editor-head[data-v-f302f5bb]{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-end;padding:16px;border-bottom:1px solid var(--color-border);background:var(--color-gray-light)}.note-editor-title[data-v-f302f5bb]{flex:1;min-width:220px}.note-editor-key[data-v-f302f5bb]{flex:0 0 200px;min-width:160px}.note-editor-key label[data-v-f302f5bb],.note-editor-title label[data-v-f302f5bb]{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:#64748b}.note-editor-key small[data-v-f302f5bb]{display:block;font-size:10px;color:var(--color-text-muted);margin-top:2px}.note-editor-key .mono[data-v-f302f5bb],.admin-inp.mono[data-v-f302f5bb]{font-family:ui-monospace,Consolas,monospace;font-size:12px}.note-editor-title label[data-v-f302f5bb]{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:#64748b}.mode-toggle[data-v-f302f5bb]{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.mode-btn[data-v-f302f5bb]{padding:8px 14px;border:none;background:#fff;font-size:13px;cursor:pointer;font-family:inherit}.mode-btn.active[data-v-f302f5bb]{background:var(--color-primary);color:#fff;font-weight:600}.note-editor-grid[data-v-f302f5bb]{display:grid;grid-template-columns:1fr 280px;gap:0}.note-editor-main[data-v-f302f5bb]{padding:16px}.classic-block label[data-v-f302f5bb]{display:block;font-size:13px;font-weight:500;margin-bottom:6px}.builder-intro[data-v-f302f5bb]{font-size:13px;color:var(--color-text-secondary);margin:0 0 16px;line-height:1.5}.field-card[data-v-f302f5bb]{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:14px;margin-bottom:12px;background:#fafafa}.field-card-head[data-v-f302f5bb]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.field-num[data-v-f302f5bb]{font-size:12px;font-weight:700;color:var(--color-primary-dark);text-transform:uppercase;letter-spacing:.04em}.field-card label[data-v-f302f5bb]{display:block;font-size:12px;font-weight:600;margin:10px 0 4px;color:#475569}.field-card label[data-v-f302f5bb]:first-of-type{margin-top:0}.type-hint[data-v-f302f5bb]{display:block;font-size:11px;color:var(--color-text-muted);margin-top:4px}.check-inline[data-v-f302f5bb]{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:13px;font-weight:500;cursor:pointer}.btn-dashed[data-v-f302f5bb]{width:100%;padding:10px;border:2px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-size:13px;color:var(--color-text-secondary);font-family:inherit}.note-preview[data-v-f302f5bb]{padding:16px;border-left:1px solid var(--color-border);background:#f8fafc}.note-preview h4[data-v-f302f5bb]{margin:0 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.preview-card[data-v-f302f5bb]{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px}.preview-tmpl-btn[data-v-f302f5bb]{display:inline-block;padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;font-size:12px;margin-bottom:12px;opacity:.9}.preview-field[data-v-f302f5bb]{margin-bottom:10px}.preview-label[data-v-f302f5bb]{display:block;font-size:11px;font-weight:600;margin-bottom:4px;color:#334155}.preview-label em[data-v-f302f5bb]{color:#b45309;font-style:normal}.preview-options[data-v-f302f5bb]{display:flex;flex-wrap:wrap;gap:4px}.preview-opt[data-v-f302f5bb]{font-size:10px;padding:4px 8px;border:1px solid #ddd;border-radius:4px;background:#f1f5f9}.preview-text[data-v-f302f5bb]{font-size:11px;color:#94a3b8;padding:8px;border:1px dashed #cbd5e1;border-radius:4px}.preview-text-body[data-v-f302f5bb]{font-size:11px;white-space:pre-wrap;color:#64748b;margin:0;font-family:inherit}@media(max-width:900px){.note-editor-grid[data-v-f302f5bb]{grid-template-columns:1fr}.note-preview[data-v-f302f5bb]{border-left:none;border-top:1px solid var(--color-border)}}.config-row[data-v-17d33ece]{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}.config-row .flex-1[data-v-17d33ece]{flex:1;min-width:160px}.inp-color[data-v-17d33ece]{max-width:56px;padding:4px}.settings-header[data-v-17d33ece]{margin-bottom:24px}.settings-eyebrow[data-v-17d33ece]{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary);margin-bottom:4px}.settings-header h1[data-v-17d33ece]{font-size:24px;font-weight:600;color:var(--color-text-primary)}.inp-color[data-v-17d33ece]{height:42px;padding:4px;cursor:pointer;max-width:80px}.color-swatch[data-v-17d33ece]{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-shrink:0}.module-list[data-v-17d33ece]{display:flex;flex-direction:column;gap:12px;margin-top:16px}.module-card[data-v-17d33ece]{border:1px solid var(--color-border);border-radius:var(--radius);overflow:visible;background:var(--color-white);margin-bottom:0}.module-card-header[data-v-17d33ece]{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--color-border)}.module-preview[data-v-17d33ece]{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px}.module-preview-code[data-v-17d33ece]{font-size:12px;background:var(--color-gray-light);color:#334155;padding:2px 8px;border-radius:var(--radius-full);font-weight:600;font-family:ui-monospace,Consolas,monospace}.module-card-actions[data-v-17d33ece]{display:flex;gap:4px}.module-fields[data-v-17d33ece]{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 20px;padding:16px}.admin-field-row[data-v-17d33ece]{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-top:16px}.flex-1[data-v-17d33ece]{flex:1;min-width:200px}.align-end[data-v-17d33ece]{margin-bottom:2px}.tag-list[data-v-17d33ece]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;min-height:32px}.tag-chip[data-v-17d33ece]{display:inline-flex;align-items:center;gap:6px;background:var(--color-primary-light);color:var(--color-primary-dark);padding:4px 12px;border-radius:var(--radius-full);font-size:13px;font-weight:500}.tag-chip button[data-v-17d33ece]{border:none;background:none;cursor:pointer;font-size:16px;line-height:1;opacity:.7;display:flex;align-items:center}.tag-chip button[data-v-17d33ece]:hover{opacity:1}.empty-hint[data-v-17d33ece]{font-size:13px;color:var(--color-text-muted);font-style:italic}.template-block[data-v-17d33ece]{margin-bottom:16px}.template-block label[data-v-17d33ece]{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:#334155}.head-actions[data-v-17d33ece]{display:flex;gap:8px;flex-wrap:wrap}.note-template-wrap[data-v-17d33ece]{margin-bottom:8px}.remove-note-btn[data-v-17d33ece]{margin:-4px 0 16px;font-size:13px;color:var(--color-danger)}.preset-picker[data-v-17d33ece]{margin-bottom:20px;padding:14px;background:var(--color-gray-light);border-radius:var(--radius)}.preset-picker label[data-v-17d33ece]{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.preset-row[data-v-17d33ece]{display:flex;gap:8px;flex-wrap:wrap}.preset-row .admin-inp[data-v-17d33ece]{flex:1;min-width:200px}.fields-section[data-v-17d33ece]{margin-top:12px;padding-top:12px;border-top:1px dashed var(--color-border)}.fields-head[data-v-17d33ece]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px}.fields-empty[data-v-17d33ece]{font-size:12px;color:var(--color-text-muted);font-style:italic;margin:0 0 8px}.field-editor[data-v-17d33ece]{margin-bottom:10px;padding:10px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.check-inline[data-v-17d33ece]{display:flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap}@media(max-width:720px){.module-fields[data-v-17d33ece]{grid-template-columns:1fr}}.case-tree[data-v-c166b67e]{display:flex;flex-direction:column;gap:12px}.tree-module[data-v-c166b67e]{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-white);overflow:hidden}.tree-module-head[data-v-c166b67e]{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--color-gray-light);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;font-size:14px}.tree-module-label[data-v-c166b67e]{flex:1}.tree-module-code[data-v-c166b67e]{font-size:11px;font-family:ui-monospace,Consolas,monospace;background:#fff;padding:2px 8px;border-radius:var(--radius-full);color:var(--color-text-secondary)}.tree-count[data-v-c166b67e]{font-size:12px;color:var(--color-text-muted)}.tree-cases[data-v-c166b67e]{list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:4px}.tree-case[data-v-c166b67e]{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid transparent;transition:background .15s}.tree-case[data-v-c166b67e]:hover{background:var(--color-primary-xlight)}.tree-case.selected[data-v-c166b67e]{background:var(--color-primary-light);border-color:var(--color-primary)}.tree-case.inactive[data-v-c166b67e]{opacity:.6}.tree-check input[data-v-c166b67e]{cursor:pointer}.drag-handle[data-v-c166b67e]{color:var(--color-text-muted);cursor:grab;flex-shrink:0}.tree-case-main[data-v-c166b67e]{flex:1;text-align:left;border:none;background:none;cursor:pointer;padding:0;min-width:0}.case-id[data-v-c166b67e]{font-size:11px;font-family:ui-monospace,Consolas,monospace;color:var(--color-text-muted);margin-right:8px}.case-title[data-v-c166b67e]{font-size:13px;font-weight:500;color:var(--color-dark)}.case-meta[data-v-c166b67e]{display:block;font-size:11px;color:var(--color-text-muted);margin-top:2px}.bulk-toolbar[data-v-a503c15b]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;margin-bottom:16px;background:var(--color-primary-xlight);border:1px solid var(--color-primary-light);border-radius:var(--radius)}.bulk-count[data-v-a503c15b]{font-size:13px;font-weight:600;color:var(--color-primary-dark)}.bulk-actions[data-v-a503c15b]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1}.bulk-actions .admin-inp[data-v-a503c15b]{width:auto;min-width:140px}.danger-text[data-v-a503c15b]{color:var(--color-danger)}.list-toolbar[data-v-9b2d90d0]{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.type-filter-tabs[data-v-9b2d90d0]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.view-toggle[data-v-9b2d90d0]{display:flex;gap:4px}.case-card.selected[data-v-9b2d90d0]{border-color:var(--color-primary);background:var(--color-primary-xlight)}.case-check[data-v-9b2d90d0]{display:flex;align-items:center;padding-right:4px}.case-check input[data-v-9b2d90d0]{cursor:pointer}.filter-select[data-v-9b2d90d0]{width:auto;min-width:160px}.check-inactive[data-v-9b2d90d0]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-gray-dark);cursor:pointer}.case-cards[data-v-9b2d90d0]{display:flex;flex-direction:column;gap:10px}.case-card[data-v-9b2d90d0]{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-white);transition:all .15s}.case-card[data-v-9b2d90d0]:hover{box-shadow:var(--shadow-md)}.case-card.inactive[data-v-9b2d90d0]{opacity:.65}.case-card-main[data-v-9b2d90d0]{display:flex;gap:14px;align-items:flex-start;flex:1;min-width:200px}.case-id[data-v-9b2d90d0]{font-size:12px;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--color-gray-light);color:#334155;font-family:ui-monospace,Consolas,monospace;white-space:nowrap}.case-info h3[data-v-9b2d90d0]{font-size:14px;margin:0 0 6px;color:var(--color-dark);line-height:1.35}.case-meta[data-v-9b2d90d0]{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:#888;margin:0}.case-meta span[data-v-9b2d90d0]{background:var(--color-gray-light);padding:2px 8px;border-radius:var(--radius-full);font-size:12px;color:var(--color-text-secondary)}.badge-inactive[data-v-9b2d90d0]{background:var(--color-danger-bg)!important;color:var(--color-danger)}.case-card-actions[data-v-9b2d90d0]{display:flex;gap:8px;flex-wrap:wrap}.danger-text[data-v-9b2d90d0]{color:var(--color-danger);border-color:var(--color-danger-bg)}.import-actions[data-v-9b2d90d0]{display:flex;gap:10px;flex-wrap:wrap}.admin-inp.mono[data-v-9b2d90d0]{font-family:Consolas,Courier New,monospace;font-size:12px}.import-result[data-v-9b2d90d0]{margin-top:20px;padding:14px;background:var(--color-primary-xlight);border-radius:6px;font-size:13px}.import-result ul[data-v-9b2d90d0]{margin:8px 0 0;padding-left:18px;color:var(--color-danger)}.form-context[data-v-55e63cf9]{font-size:14px;color:var(--color-text-secondary);margin-top:4px}.template-picker[data-v-55e63cf9]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:20px;padding:12px 16px;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius)}.template-picker-label[data-v-55e63cf9]{font-size:13px;color:var(--color-text-secondary);font-weight:500}.admin-inp.mono[data-v-55e63cf9]{font-family:Consolas,Courier New,monospace;font-size:13px}.tag-list[data-v-55e63cf9]{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.tag-chip[data-v-55e63cf9]{padding:6px 14px;border-radius:99px;border:1.5px solid #ddd;background:#fff;cursor:pointer;font-size:12px;font-family:inherit;transition:border-color .15s,background .15s}.tag-chip.on[data-v-55e63cf9]{border-color:var(--tag-color, var(--color-primary));background:color-mix(in srgb,var(--tag-color, var(--color-primary)) 15%,white)}.tag-empty[data-v-55e63cf9]{font-size:12px;color:#aaa}.check-field[data-v-55e63cf9]{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;cursor:pointer}.subsection[data-v-55e63cf9]{margin-bottom:28px}.subsection h3[data-v-55e63cf9]{font-size:14px;margin:0 0 12px;color:var(--color-primary-dark)}.subsection-empty[data-v-55e63cf9]{padding:20px;margin-bottom:12px}.row-edit[data-v-55e63cf9]{display:flex;gap:8px;align-items:center;margin-bottom:8px}.row-num[data-v-55e63cf9]{width:28px;text-align:center;font-size:12px;font-weight:700;color:#999;flex-shrink:0}.row-num.step[data-v-55e63cf9]{background:var(--color-primary-xlight);color:var(--color-primary-dark);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.btn-dashed[data-v-55e63cf9]{width:100%;padding:10px 16px;border:2px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:14px;cursor:pointer;transition:all .15s;font-family:inherit;text-align:center}.btn-dashed[data-v-55e63cf9]:hover{border-color:var(--color-primary);color:var(--color-primary)}.flex1[data-v-55e63cf9]{flex:1}.row-add[data-v-55e63cf9]{margin-top:4px}.form-footer[data-v-55e63cf9]{background:transparent;border:none;padding:0;box-shadow:none}.revision-list[data-v-55e63cf9]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.revision-list li[data-v-55e63cf9]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px}.rev-meta[data-v-55e63cf9]{display:block;font-size:11px;color:var(--color-text-muted);margin-top:2px}.rev-note[data-v-55e63cf9]{margin:6px 0 0;font-size:12px;color:var(--color-text-secondary)}.rev-actions[data-v-55e63cf9]{display:flex;gap:6px;flex-shrink:0}.revision-detail[data-v-55e63cf9]{margin-top:16px;padding:14px;background:var(--color-gray-light);border-radius:var(--radius);font-size:13px}.rev-diff[data-v-55e63cf9]{font-size:12px;color:var(--color-primary-dark);margin-bottom:8px}.pie-chart-wrap[data-v-861bede6]{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.pie-chart[data-v-861bede6]{width:180px;height:180px}.pie-legend[data-v-861bede6]{list-style:none;font-size:13px;line-height:1.8}.dot[data-v-861bede6]{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.muted[data-v-861bede6]{color:#888}.bar-chart[data-v-ef22e939]{display:flex;flex-direction:column;gap:12px}.bar-row[data-v-ef22e939]{display:grid;grid-template-columns:1fr 2fr 48px;gap:12px;align-items:center;font-size:14px}.bar-label[data-v-ef22e939]{color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track[data-v-ef22e939]{height:8px;background:var(--color-gray-light);border-radius:var(--radius-full);overflow:hidden}.bar-fill[data-v-ef22e939]{height:100%;border-radius:var(--radius-full);transition:width .4s ease}.bar-meta[data-v-ef22e939]{text-align:right;font-size:12px;color:var(--color-text-muted)}.empty[data-v-ef22e939]{color:var(--color-text-muted);font-size:14px}.login-page[data-v-098e438a]{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef1f3,#e0f5f3);padding:24px}.login-card[data-v-098e438a]{background:#fff;padding:40px;border-radius:16px;box-shadow:0 8px 32px #00000014,0 1px 4px #0000000a;width:100%;max-width:400px;border:1px solid rgba(226,232,240,.8)}.login-brand[data-v-098e438a]{display:flex;justify-content:center;margin:0 auto 12px}.login-sub[data-v-098e438a]{text-align:center;color:#888;font-size:13px;margin:0 0 24px}label[data-v-098e438a]{display:block;font-size:12px;color:#666;margin-bottom:14px}input[data-v-098e438a]{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid var(--color-gray-mid);border-radius:6px;font-size:14px}.login-btn[data-v-098e438a]{width:100%;padding:13px;background:var(--color-primary);color:#fff;border:none;border-radius:10px;font-weight:700;cursor:pointer;margin-top:8px;font-size:15px;letter-spacing:.01em;transition:all .15s;box-shadow:0 2px 8px #2bbdad4d}.login-btn[data-v-098e438a]:not(:disabled):hover{filter:brightness(1.05);box-shadow:0 4px 12px #2bbdad66;transform:translateY(-1px)}.login-btn[data-v-098e438a]:disabled{opacity:.7}.login-hint[data-v-098e438a]{margin-top:20px;font-size:11px;color:#999;line-height:1.5}code[data-v-098e438a]{font-size:10px}.system-admin[data-v-5554ca69]{flex:1;min-height:0;overflow-y:auto;background:#eef1f3;max-width:960px;margin:0 auto;padding:24px;width:100%}.system-header[data-v-5554ca69]{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.admin-tab-btn[data-v-5554ca69]{text-decoration:none;display:inline-block}.project-cards[data-v-7d2a4692]{display:flex;flex-direction:column;gap:10px}.project-card[data-v-7d2a4692]{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 16px;border:1px solid #e8e8e8;border-radius:8px;background:#fafafa;border-left:4px solid var(--color-primary)}.project-slug[data-v-7d2a4692]{font-size:11px;font-family:Consolas,monospace;color:var(--color-primary-dark);background:var(--color-primary-xlight);padding:2px 8px;border-radius:4px}.project-card h3[data-v-7d2a4692]{margin:6px 0 0;font-size:15px}.project-actions[data-v-7d2a4692]{display:flex;gap:8px}.admin-inp.mono[data-v-7d2a4692]{font-family:Consolas,monospace}.danger-text[data-v-7d2a4692]{color:var(--color-danger);border-color:var(--color-danger-bg)}.admin-empty-state[data-v-7d2a4692]{padding:24px;text-align:center;background:#fafafa;border:1px dashed #ddd;border-radius:8px}.admin-empty-state p[data-v-7d2a4692]{margin:0 0 8px}.user-cards[data-v-d9fad22b]{display:flex;flex-direction:column;gap:10px}.user-card[data-v-d9fad22b]{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border:1px solid #e8e8e8;border-radius:8px;background:#fafafa}.user-card.inactive[data-v-d9fad22b]{opacity:.65}.user-card h3[data-v-d9fad22b]{margin:0 0 6px;font-size:15px}.user-meta[data-v-d9fad22b]{display:flex;flex-wrap:wrap;gap:8px;margin:0;font-size:12px;color:#888}.user-meta span[data-v-d9fad22b]{background:#eee;padding:2px 8px;border-radius:99px}.badge-off[data-v-d9fad22b]{background:var(--color-danger-bg)!important;color:var(--color-danger)}.check-row[data-v-d9fad22b]{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:28px;cursor:pointer}.project-scope-block[data-v-d9fad22b]{margin-top:20px;padding-top:16px;border-top:1px solid #eee}.project-scope-block h3[data-v-d9fad22b]{font-size:14px;margin:0 0 6px;color:var(--color-primary-dark)}.project-checks[data-v-d9fad22b]{display:flex;flex-direction:column;gap:8px;margin-top:10px}.project-check[data-v-d9fad22b]{display:flex;align-items:center;gap:8px;font-size:13px;padding:8px 10px;background:#fafafa;border-radius:6px;border:1px solid #eee;cursor:pointer}.project-check .slug[data-v-d9fad22b]{font-family:Consolas,monospace;font-size:11px;background:var(--color-primary-xlight);padding:2px 6px;border-radius:4px}.global-note[data-v-d9fad22b]{margin-top:16px}.roles-list[data-v-a2b2ba75]{display:flex;flex-direction:column;gap:12px}.role-card[data-v-a2b2ba75]{border:1px solid #e8e8e8;border-radius:8px;padding:16px;background:#fafafa}.role-head[data-v-a2b2ba75]{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.role-key[data-v-a2b2ba75]{font-size:11px;font-family:Consolas,monospace;color:var(--color-primary-dark)}.role-card h3[data-v-a2b2ba75]{margin:4px 0 0;font-size:15px}.role-badges[data-v-a2b2ba75]{display:flex;gap:8px;font-size:11px}.badge-sys[data-v-a2b2ba75]{background:var(--color-primary-xlight);color:var(--color-primary-dark);padding:2px 8px;border-radius:99px}.badge-count[data-v-a2b2ba75]{background:#eee;padding:2px 8px;border-radius:99px;color:#666}.perm-summary[data-v-a2b2ba75]{margin:10px 0;font-size:12px;color:#888}.perm-grid[data-v-a2b2ba75]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin:12px 0}.perm-group h4[data-v-a2b2ba75]{font-size:12px;margin:0 0 8px;color:var(--color-primary-dark)}.perm-check[data-v-a2b2ba75]{display:flex;align-items:flex-start;gap:6px;font-size:12px;margin-bottom:6px;cursor:pointer}.perm-check.all[data-v-a2b2ba75]{grid-column:1 / -1;font-weight:600}.role-actions[data-v-a2b2ba75]{display:flex;gap:8px;margin-top:8px}.danger-text[data-v-a2b2ba75]{color:var(--color-danger)}.admin-inp.mono[data-v-a2b2ba75]{font-family:Consolas,monospace}.profile-page[data-v-3d24ebe0]{flex:1;min-height:0;overflow-y:auto;max-width:720px;margin:0 auto;padding:24px;width:100%;background:#eef1f3}.project-list[data-v-3d24ebe0]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.project-list li[data-v-3d24ebe0]{padding:10px 12px;background:#fafafa;border-radius:6px;border:1px solid #eee;font-size:14px}.slug[data-v-3d24ebe0]{font-family:Consolas,monospace;font-size:11px;background:var(--color-primary-xlight);color:var(--color-primary-dark);padding:2px 8px;border-radius:4px;margin-right:8px}:root{--color-primary: #0d9488;--color-primary-hover: #0f766e;--color-primary-dark: #0f766e;--color-primary-light: #ccfbf1;--color-primary-xlight: #f0fdfa;--color-teal-400: #2dd4bf;--color-teal-900: #134e4a;--color-dark: #0f172a;--color-gray-dark: #64748b;--color-gray-mid: #e2e8f0;--color-gray-light: #f1f5f9;--color-white: #ffffff;--color-surface: #ffffff;--color-neutral: #f1f5f9;--color-border: #e2e8f0;--color-text-primary: #0f172a;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-success: #16a34a;--color-success-bg: #dcfce7;--color-danger: #dc2626;--color-danger-bg: #fee2e2;--color-warning: #d97706;--color-warning-bg: #fef3c7;--color-info-bg: #dbeafe;--color-info-text: #1d4ed8;--sidebar-bg: #0f172a;--sidebar-text: #cbd5e1;--sidebar-active-bg: #1e293b;--sidebar-active-text: #ffffff;--sidebar-icon: #94a3b8;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--shadow: var(--shadow-sm);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-full: 9999px;--teal: var(--color-primary);--teal-dark: var(--color-primary-dark);--teal-light: var(--color-primary-light);--teal-xlight: var(--color-primary-xlight);--dark: var(--color-dark);--gray-dark: var(--color-gray-dark);--gray-mid: var(--color-gray-mid);--gray-light: var(--color-gray-light);--white: var(--color-white);--green: var(--color-success);--green-bg: var(--color-success-bg);--red: var(--color-danger);--red-bg: var(--color-danger-bg);--yellow: var(--color-warning);--yellow-bg: var(--color-warning-bg)}*{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--color-neutral);color:var(--color-text-primary);font-size:14px;line-height:1.625;height:100%;overflow:hidden}#app{height:100%;min-height:0;width:100%;overflow:hidden}.btn-primary{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .15s;font-family:inherit;display:inline-flex;align-items:center;gap:8px;justify-content:center}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--color-primary)}.btn-secondary{background:var(--color-white);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;cursor:pointer;transition:all .15s;font-family:inherit;display:inline-flex;align-items:center;gap:8px}.btn-secondary:hover:not(:disabled){border-color:#94a3b8}.btn-ghost{background:transparent;border:none;color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;cursor:pointer;transition:all .15s;font-family:inherit;display:inline-flex;align-items:center;gap:8px}.btn-ghost:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-gray-light)}.btn-danger{background:var(--color-danger-bg);border:1px solid #fecaca;color:var(--color-danger);border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;cursor:pointer;transition:all .15s;font-family:inherit}.btn-danger:hover:not(:disabled){background:#fecaca}.btn-icon{padding:8px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover:not(:disabled){background:var(--color-gray-light);color:var(--color-text-primary)}.btn-icon:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-ghost:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-primary)}.icon-success{color:var(--color-success)}.icon-danger{color:var(--color-danger)}.icon-warning{color:var(--color-warning)}.icon-muted{color:var(--color-text-muted)}.route-shell{flex:1;min-height:0;height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden}.route-shell>.loading-state{flex:1}.app-layout{display:flex;flex:1;min-height:0;height:100%;width:100%;overflow:hidden;position:relative}.main-panel{flex:1;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:var(--color-neutral)}.execution-panel{min-height:0}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;z-index:40}.sidebar-overlay.open{display:block}.sidebar-toggle{display:none;position:fixed;bottom:16px;left:16px;z-index:50;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);padding:10px;cursor:pointer;box-shadow:var(--shadow-md)}.app-topbar{background:var(--color-white);border-bottom:1px solid var(--color-border);height:56px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0;z-index:50;box-shadow:0 1px 4px #0000000a}.topbar-left{display:flex;align-items:center;gap:8px;min-width:0}.topbar-breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--color-text-secondary)}.topbar-breadcrumb a{color:var(--color-primary);text-decoration:none;transition:all .15s}.topbar-breadcrumb a:hover{text-decoration:underline}.topbar-breadcrumb .sep{color:var(--color-text-muted)}.topbar-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.topbar-user{font-size:14px;color:var(--color-text-secondary)}.topbar-role{background:var(--color-gray-light);color:var(--color-text-secondary);font-size:12px;padding:2px 10px;border-radius:var(--radius-full);font-weight:500}.topbar-logout{background:none;border:none;font-size:14px;color:var(--color-text-secondary);cursor:pointer;transition:color .15s;font-family:inherit}.topbar-logout:hover{color:var(--color-danger)}.sidebar{width:272px;min-width:260px;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;height:100%;overflow-y:auto;overflow-x:hidden;flex-shrink:0;z-index:45;transition:transform .2s ease;border-right:1px solid rgba(255,255,255,.06)}.sidebar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(13,148,136,.04) 0%,transparent 40%);pointer-events:none;z-index:0}.sidebar>*{position:relative;z-index:1}.sidebar-logo{padding:24px 20px 20px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;text-align:center}.sidebar-logo-brand{display:flex;justify-content:center;width:100%}.sidebar-logo-brand img,.sidebar-logo-brand :deep(.qa-lab-brand--horizontal){margin:0 auto}.sidebar-logo img{display:block;height:42px;max-width:100%;object-fit:contain}.sidebar-tagline{margin-top:8px;font-size:11px;color:#cbd5e18c;letter-spacing:.1em;font-weight:500;text-transform:uppercase}.sidebar-progress{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06)}.prog-label{font-size:12px;color:var(--color-text-muted);margin-bottom:8px;display:flex;justify-content:space-between}.progress-bar{background:#334155;border-radius:var(--radius-full);height:6px;overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width .4s ease;box-shadow:0 0 8px #2bbdad66}.sidebar-section{padding:16px 20px 8px}.sidebar-section-label{font-size:12px;font-weight:500;color:#64748b;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}.sidebar-project-select{width:100%;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid #334155;background:var(--sidebar-active-bg);color:var(--sidebar-text);font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s}.sidebar-project-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #0d94884d}.sidebar-nav{flex:1;padding:4px 0}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 20px;cursor:pointer;transition:all .15s;font-size:13px;color:var(--sidebar-text);border-left:3px solid transparent;border-top:none;border-right:none;border-bottom:none;background:none;width:100%;text-align:left;font-family:inherit}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.active{background:linear-gradient(90deg,#2bbdad1f,#2bbdad0a);border-left-color:var(--color-primary);color:var(--sidebar-active-text, #ffffff);font-weight:600}.nav-item svg{opacity:.65;transition:opacity .15s}.nav-item.active svg,.nav-item:hover svg{opacity:1}.nav-badge{margin-left:auto;background:#334155;color:var(--sidebar-text);border-radius:var(--radius-full);font-size:12px;padding:2px 8px;font-weight:500}.nav-badge.done{background:var(--color-teal-900);color:var(--color-teal-400)}.sidebar-divider{border:none;border-top:1px solid #1e293b;margin:8px 0}.sidebar-actions{padding:12px 16px;display:flex;flex-direction:column;gap:4px}.btn-sidebar{padding:8px 16px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;justify-content:flex-start;transition:all .15s;font-family:inherit;width:100%;background:transparent;color:var(--color-text-muted)}.btn-sidebar:hover:not(:disabled){color:#fff;background:var(--sidebar-active-bg)}.btn-sidebar:disabled{opacity:.5;cursor:not-allowed}.btn-sidebar-primary{background:var(--color-primary);color:#fff;justify-content:center;margin-bottom:4px}.btn-sidebar-primary:hover:not(:disabled){background:var(--color-primary-hover);color:#fff}.btn-sidebar-danger{color:#f87171;margin-top:8px}.btn-sidebar-danger:hover:not(:disabled){color:#fca5a5;background:#450a0a}.sidebar-footer{padding:12px 16px 16px;margin-top:auto;border-top:1px solid #1e293b}.execution-workspace-header{flex-shrink:0;background:var(--color-neutral);border-bottom:1px solid var(--color-border);z-index:5}.execution-toolbar{padding:0 20px 10px;display:flex;flex-direction:column;gap:8px}.execution-toolbar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.execution-toolbar-row .test-toolbar{flex:1;min-width:0;padding:0}.execution-actions{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}.execution-actions a{text-decoration:none}.execution-actions .btn-primary,.execution-actions .btn-secondary{padding:6px 12px;font-size:13px;white-space:nowrap}.type-filter-row{display:flex;flex-wrap:wrap;gap:6px;padding:0 20px 8px}.type-filter-row .filter-btn{padding:4px 12px;font-size:12px}.page-header{background:var(--color-neutral);padding:20px 28px 0}.page-header--compact{padding:12px 20px 10px}.page-header-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-header-titles{min-width:0;flex:1}.page-header--compact .page-breadcrumb{font-size:12px;margin-bottom:4px}.page-header--compact .page-title{font-size:17px;font-weight:600;margin-bottom:0;line-height:1.3}.page-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.page-header-actions a{text-decoration:none}.page-header-actions .btn-primary,.page-header-actions .btn-secondary{padding:5px 11px;font-size:12px;white-space:nowrap}.stat-pills{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stat-pill{display:inline-flex;align-items:baseline;gap:4px;padding:4px 10px;border-radius:var(--radius-full);background:var(--color-white);border:1px solid var(--color-border);font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap}.stat-pill small{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;opacity:.75}.stat-pill.green{color:var(--color-success);border-color:#99f6e4}.stat-pill.red{color:var(--color-danger);border-color:#fecaca}.stat-pill.amber{color:var(--color-warning);border-color:#fde68a}.stat-pill.slate{color:#475569;border-color:#cbd5e1}.page-breadcrumb{font-size:14px;margin-bottom:8px}.page-breadcrumb a{color:var(--color-primary);text-decoration:none;transition:all .15s}.page-breadcrumb a:hover{text-decoration:underline}.page-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin-bottom:16px}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.stat-card{background:var(--color-white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 20px;border-top:3px solid var(--color-border);transition:all .15s}.stat-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.stat-card .val{font-size:32px;font-weight:700;line-height:1}.stat-card .lbl{font-size:12px;color:var(--color-text-secondary);text-transform:uppercase;margin-top:4px;letter-spacing:.03em}.stat-card.green{border-top-color:var(--color-success)}.stat-card.green .val{color:var(--color-success)}.stat-card.red{border-top-color:var(--color-danger)}.stat-card.red .val{color:var(--color-danger)}.stat-card.amber{border-top-color:var(--color-warning)}.stat-card.amber .val{color:var(--color-warning)}.stat-card.slate{border-top-color:#94a3b8}.stat-card.slate .val{color:#475569}.test-toolbar{background:transparent;padding:0 28px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.test-toolbar--compact{padding:0;gap:6px}.test-toolbar--compact .filter-btn{padding:4px 12px;font-size:12px}.test-toolbar--compact .search-box{padding:6px 14px 6px 32px;font-size:13px;width:200px}.test-toolbar--compact .search-icon{left:10px}.filter-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-btn{padding:6px 16px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-white);color:var(--color-text-secondary);font-size:14px;cursor:pointer;transition:all .15s;font-weight:500;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.search-wrap{position:relative;margin-left:auto}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.search-box{padding:8px 16px 8px 36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;width:240px;outline:none;font-family:inherit;background:var(--color-white);transition:all .15s}.search-box:focus{border-color:transparent;box-shadow:0 0 0 2px var(--color-primary)}.test-list{padding:12px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.test-card{background:var(--color-white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:hidden;transition:all .15s;margin-bottom:0;flex-shrink:0}.test-card:hover{box-shadow:var(--shadow-md);border-color:#5eead4}.test-card.open{border-left:3px solid var(--color-primary)}.card-header{padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.card-header:hover{background:#fafbfc}.test-card.open>.card-header{background:#f0fdfb;border-bottom:none}.card-header-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.card-header-status{display:flex;align-items:center;gap:8px;flex-shrink:0}.card-id{font-size:12px;font-weight:600;font-family:ui-monospace,Consolas,monospace;color:#334155;background:var(--color-gray-light);padding:2px 8px;border-radius:6px;white-space:nowrap;flex-shrink:0}.card-title{font-size:14px;font-weight:500;color:#1e293b;line-height:1.4;min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.cat-badge{font-size:12px;font-weight:500;padding:2px 12px;border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.cat-previsto{background:var(--color-info-bg);color:var(--color-info-text)}.cat-extra{background:var(--color-gray-light);color:var(--color-text-secondary)}.cat-pendente{background:var(--color-warning-bg);color:#b45309}.result-pill{font-size:12px;font-weight:500;padding:2px 12px;border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:4px}.rp-aprovado{background:#dcfce7!important;color:#16a34a!important}.rp-reprovado{background:var(--color-danger-bg);color:#b91c1c}.rp-parcial{background:var(--color-warning-bg);color:#b45309}.draft-pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);background:#fef3c7;color:#b45309;flex-shrink:0}.tester-chip{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;flex-shrink:1;min-width:0}.rp-pendente{background:var(--color-gray-light);color:var(--color-text-secondary)}.expand-icon{color:var(--color-text-muted);transition:transform .2s;flex-shrink:0}.test-card.open .expand-icon{transform:rotate(180deg)}.card-body{display:none;background:#f8fafb;border-top:2px solid var(--color-primary);border-radius:0 0 var(--radius) var(--radius);padding:20px 24px}.test-card.open .card-body{display:block}.card-meta{display:flex;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--color-border);margin-bottom:4px}.meta-item{display:flex;flex-direction:column;gap:2px}.meta-item .meta-label{font-size:12px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.meta-item .meta-value{font-size:14px;color:#334155;font-weight:500}.meta-chip{font-size:12px;background:var(--color-gray-light);padding:2px 8px;border-radius:var(--radius-full);color:var(--color-text-secondary)}.section-label{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin:18px 0 8px}.section-label:first-child{margin-top:12px}.steps-list{list-style:none;display:flex;flex-direction:column;gap:8px}.steps-list li{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;color:#334155}.step-num{background:var(--color-primary-xlight);color:var(--color-primary-dark);border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;margin-top:1px}.url-links{display:flex;flex-wrap:wrap;gap:8px}.url-link{font-size:12px;font-family:ui-monospace,Consolas,monospace;color:var(--color-text-secondary);background:var(--color-white);padding:4px 12px;border-radius:var(--radius-full);text-decoration:none;border:1px solid var(--color-border);transition:all .15s;cursor:pointer;box-shadow:0 1px 2px #0000000a}.url-link:hover{border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 1px 3px #0d948826}.result-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.result-btn{padding:8px 20px;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);cursor:pointer;font-size:14px;font-weight:500;transition:all .15s;background:var(--color-white);color:var(--color-text-secondary);font-family:inherit;box-shadow:0 1px 2px #0000000d}.result-btn:hover:not(:disabled){border-color:#94a3b8;background:#f8fafb;transform:translateY(-1px);box-shadow:0 2px 4px #00000014}.result-btn:disabled{cursor:default;opacity:.7}.result-btn.sel-aprovado{background:#16a34a!important;color:#fff;border-color:#16a34a!important;box-shadow:var(--shadow-sm)}.result-btn.sel-reprovado{background:var(--color-danger);color:#fff;border-color:var(--color-danger);box-shadow:var(--shadow-sm)}.result-btn.sel-parcial{background:#f59e0b;color:#fff;border-color:#f59e0b;box-shadow:var(--shadow-sm)}.result-btn.sel-pendente{background:#94a3b8;color:#fff;border-color:#94a3b8;box-shadow:var(--shadow-sm)}.notes-area{width:100%;min-height:80px;padding:12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;resize:vertical;outline:none;margin-top:8px;line-height:1.5;color:var(--color-text-primary);background:var(--color-white);transition:all .15s;box-shadow:0 1px 3px #0000000f}.notes-area:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2bbdad26}.template-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.tmpl-btn{font-size:12px;padding:4px 12px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-white);color:var(--color-text-secondary);cursor:pointer;transition:all .15s;font-family:inherit;font-weight:500}.tmpl-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.tmpl-btn:disabled{opacity:.7;cursor:default}.img-upload-area{border:2px dashed var(--color-border);border-radius:var(--radius);padding:32px;text-align:center;margin-top:8px;background:var(--color-white);color:var(--color-text-secondary);font-size:14px;cursor:pointer;transition:all .15s;box-shadow:inset 0 1px 4px #00000008}.img-upload-area:hover,.img-upload-area.drag{border-color:var(--color-primary);background:var(--color-primary-xlight)}.img-upload-area .upload-icon{color:var(--color-text-muted);margin:0 auto 8px}.img-preview-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.img-thumb{position:relative;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-shrink:0}.img-thumb img{width:80px;height:80px;object-fit:cover;display:block;cursor:zoom-in}.img-thumb video{width:80px;height:80px;object-fit:cover;display:block}.img-thumb .img-caption{font-size:10px;padding:2px 6px;background:#00000080;color:#fff;position:absolute;bottom:0;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.img-del{position:absolute;top:4px;right:4px;background:var(--color-danger);color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1;transition:all .15s}.img-del:hover{filter:brightness(1.1)}#lightbox{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e0;z-index:9999;align-items:center;justify-content:center;flex-direction:column;gap:12px}#lightbox.open{display:flex}#lightbox img{max-width:90vw;max-height:82vh;border-radius:var(--radius);object-fit:contain;box-shadow:var(--shadow-xl)}#lightbox-close{position:absolute;top:20px;right:24px;color:#fff;font-size:28px;cursor:pointer;line-height:1;-webkit-user-select:none;user-select:none;background:none;border:none}#lightbox-close:hover{opacity:.85}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;border:none;color:#fff;font-size:28px;width:44px;height:56px;cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all .15s}.lightbox-nav:hover{background:#ffffff47}.lightbox-nav.prev{left:16px}.lightbox-nav.next{right:16px}.lightbox-counter{color:#ffffffbf;font-size:13px}.empty-state{text-align:center;padding:60px 20px;color:var(--color-text-secondary)}.empty-state-icon{color:#e2e8f0;margin:0 auto 12px}.empty-state h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.loading-state{flex:1;display:flex;align-items:center;justify-content:center;padding:48px;text-align:center;color:var(--color-text-secondary)}#toast{position:fixed;bottom:24px;right:24px;background:var(--color-dark);color:#fff;padding:12px 18px;border-radius:var(--radius-sm);font-size:14px;box-shadow:var(--shadow-xl);z-index:9998;opacity:0;transition:opacity .3s;pointer-events:none;border-left:4px solid var(--color-primary)}#toast.show{opacity:1}.phase-hint{font-size:12px;color:var(--color-text-secondary);font-style:italic;margin-top:6px}.dashboard-panel{padding:0;min-height:0;overflow:hidden}.dashboard-toolbar{display:flex;flex-direction:column;gap:12px;padding:12px 20px 16px;background:var(--color-gray-light, #f8fafc);border-bottom:1px solid var(--color-border, #e2e8f0)}.dash-segmented{display:inline-flex;align-self:flex-start;padding:3px;background:var(--color-white);border:1px solid var(--color-border, #e2e8f0);border-radius:10px;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04))}.dash-segmented button{padding:7px 16px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--color-text-secondary, #64748b);font-family:inherit;transition:background .15s,color .15s,box-shadow .15s}.dash-segmented button:hover{color:var(--color-text-primary, #0f172a)}.dash-segmented button.active{background:var(--color-white);color:var(--color-primary-dark, #1e9080);font-weight:600;box-shadow:0 1px 3px #00000014}.dash-control-panel{display:flex;flex-direction:column;gap:0;background:var(--color-white);border:1px solid var(--color-border, #e2e8f0);border-radius:12px;overflow:visible;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04))}.dash-control-section{padding:14px 16px}.dash-control-section+.dash-control-section{border-top:1px solid var(--color-border, #e2e8f0)}.dash-control-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.dash-control-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--color-text-primary, #0f172a)}.dash-control-count{font-size:11px;font-weight:500;color:var(--color-text-muted, #94a3b8);padding:2px 8px;background:var(--color-gray-light, #f1f5f9);border-radius:999px}.dash-control-actions{display:flex;gap:8px}.dash-link-btn{display:inline-flex;align-items:center;gap:5px;border:none;background:none;padding:0;font-size:12px;font-weight:500;color:var(--color-primary, #2bbdad);cursor:pointer;font-family:inherit}.dash-link-btn:hover{color:var(--color-primary-dark, #1e9080);text-decoration:underline}.run-chip-row{display:flex;flex-wrap:wrap;gap:8px}.run-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--color-border, #e2e8f0);border-radius:10px;background:var(--color-gray-light, #f8fafc);cursor:pointer;font-family:inherit;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s;max-width:100%}.run-chip:hover{border-color:var(--color-primary-light, #99ded6);background:var(--color-white)}.run-chip.active{border-color:var(--color-primary, #2bbdad);background:var(--color-primary-xlight, #f0fafa);box-shadow:0 0 0 1px #2bbdad40}.run-chip-check{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--color-border, #cbd5e1);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--color-white);flex-shrink:0}.run-chip.active .run-chip-check{background:var(--color-primary, #2bbdad);border-color:var(--color-primary, #2bbdad)}.run-chip-body{display:flex;flex-direction:column;gap:1px;min-width:0}.run-chip-name{font-size:13px;font-weight:600;color:var(--color-text-primary, #0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.run-chip-meta{font-size:11px;color:var(--color-text-muted, #94a3b8)}.run-chip-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:4px;background:var(--color-primary-light, #e0f5f3);color:var(--color-primary-dark, #1e9080);flex-shrink:0}.dash-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;align-items:end}.dash-field{display:flex;flex-direction:column;gap:5px;min-width:0}.dash-field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #94a3b8)}.dash-field select,.dash-field input,.dash-input{width:100%;padding:8px 10px;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;font-size:13px;font-family:inherit;background:var(--color-white);color:var(--color-text-primary);transition:border-color .15s,box-shadow .15s}.dash-field select:focus,.dash-field input:focus,.dash-input:focus{outline:none;border-color:var(--color-primary, #2bbdad);box-shadow:0 0 0 3px #2bbdad26}.dash-control-section--filters{overflow:visible}.dash-field--period{grid-column:span 2}.dash-field--period-open{grid-column:1 / -1}.dash-period-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;background:var(--color-white);font-size:13px;font-family:inherit;color:var(--color-text-primary);cursor:pointer;transition:border-color .15s,box-shadow .15s}.dash-period-toggle:hover{border-color:var(--color-primary-light, #99ded6)}.dash-period-toggle.open{border-color:var(--color-primary, #2bbdad);box-shadow:0 0 0 3px #2bbdad1f}.dash-period-label{flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-secondary, #64748b)}.dash-period-toggle.open .dash-period-label{color:var(--color-text-primary, #0f172a)}.dash-period-chevron{flex-shrink:0;margin-left:auto;color:var(--color-text-muted, #94a3b8);transition:transform .15s}.dash-period-toggle.open .dash-period-chevron{transform:rotate(180deg)}.dash-period-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px;padding:12px;background:var(--color-gray-light, #f8fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:10px}.dash-field--inline label{font-size:10px}.dash-filter-badge{font-size:10px;font-weight:700;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--color-primary, #2bbdad);color:#fff}.dash-active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--color-border, #e2e8f0)}.dash-active-label{font-size:11px;font-weight:600;color:var(--color-text-muted, #94a3b8);margin-right:4px}.dash-active-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 10px;border:none;border-radius:999px;background:var(--color-gray-light, #f1f5f9);font-size:12px;color:var(--color-text-primary, #334155);cursor:pointer;font-family:inherit}.dash-active-chip:hover{background:#e2e8f0}.dash-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.dash-kpi{background:var(--color-white);border:1px solid var(--color-border, #e2e8f0);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04))}.dash-kpi-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #94a3b8)}.dash-kpi-value{font-size:28px;font-weight:700;line-height:1.1;color:var(--color-text-primary, #0f172a)}.dash-kpi-sub{font-size:11px;color:var(--color-text-secondary, #64748b);margin-top:2px}.dash-kpi--ok .dash-kpi-value{color:var(--color-success, #16a34a)}.dash-kpi--fail .dash-kpi-value{color:var(--color-danger, #dc2626)}.dash-kpi--warn .dash-kpi-value{color:var(--color-warning, #d97706)}.dash-kpi--muted .dash-kpi-value{color:#64748b}.dash-kpi--ok-soft{background:linear-gradient(180deg,#f0fdf4,#fff)}.dash-kpi--fail-soft{background:linear-gradient(180deg,#fef2f2,#fff)}.dash-kpi--rate .dash-kpi-value{font-size:24px}.dash-kpi--primary{grid-column:span 1;border-left:3px solid var(--color-primary, #2bbdad)}.dash-card{background:var(--color-white);border:1px solid var(--color-border, #e2e8f0);border-radius:12px;padding:20px;box-shadow:var(--shadow-sm)}.dash-card-head h2{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--color-text-primary)}.dash-card-head p{margin:0 0 16px;font-size:13px;color:var(--color-text-secondary)}.dash-table-wrap{overflow-x:auto;border:1px solid var(--color-border, #e2e8f0);border-radius:10px}.dash-table--pro{margin:0;border:none}.dash-table--pro th{background:var(--color-gray-light, #f8fafc);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.campaign-form--inline{display:flex;gap:10px;margin-bottom:16px;max-width:480px}.campaign-form--inline .dash-input{flex:1}.compare-select--pro{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px}.compare-select--pro label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);min-width:200px}.compare-select--pro select{padding:8px 10px;border:1px solid var(--color-border);border-radius:8px;font-size:13px;font-family:inherit}.dash-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px 24px 28px;background:var(--color-gray-light, #f8fafc)}.dash-page-header{padding:20px 28px 0}.dash-page-header h1{font-size:20px;font-weight:600;color:var(--color-text-primary);margin-top:4px}.dash-actions{display:flex;gap:8px}.dash-tabs{display:flex;gap:0;padding:0 20px;border-bottom:1px solid var(--color-border);margin-bottom:0}.dash-tabs--compact{padding:0 20px}.dash-tabs button{padding:10px 16px;border:none;background:transparent;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-size:14px;font-weight:500;color:var(--color-text-secondary);transition:all .15s;font-family:inherit}.dash-tabs--compact button{padding:7px 12px;font-size:13px}.dash-tabs button:hover{color:var(--color-text-primary)}.dash-tabs button.active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.dash-filters{display:flex;flex-wrap:wrap;gap:12px;margin:16px 28px 20px;padding:0;background:transparent}.dash-filters--compact{gap:8px;margin:0;padding:8px 20px 10px}.dash-filters label{font-size:12px;color:var(--color-text-secondary);display:flex;flex-direction:column;gap:4px}.dash-filters--compact label{font-size:11px;gap:2px}.dash-filters select,.dash-filters input{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;background:var(--color-white);min-width:140px;transition:all .15s}.dash-filters--compact select,.dash-filters--compact input{padding:5px 8px;font-size:12px;min-width:108px}.dash-filters select:focus,.dash-filters input:focus{outline:none;box-shadow:0 0 0 2px var(--color-primary);border-color:transparent}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}.sum-card{background:var(--color-white);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm);text-align:center;border-top:3px solid var(--color-border);transition:all .15s}.sum-card:hover{box-shadow:var(--shadow-md)}.sum-card.ok{border-top-color:var(--color-success)}.sum-card.ok .sum-val{color:var(--color-success)}.sum-card.fail{border-top-color:var(--color-danger)}.sum-card.fail .sum-val{color:var(--color-danger)}.sum-card.warn{border-top-color:var(--color-warning)}.sum-card.ok-outline{border-top-color:var(--color-success);background:var(--color-success-bg, #e0f5f3)}.sum-card.fail-outline{border-top-color:var(--color-danger);background:var(--color-danger-bg, #fdeaea)}.sum-sub{display:block;font-size:11px;font-weight:500;opacity:.85;margin-top:2px}.dash-run-context{font-size:13px;color:var(--color-text-secondary);margin:0 0 12px}.dash-run-hint{opacity:.75;margin-left:4px}.dash-footnote{font-size:11px;color:var(--color-text-muted, #888);margin:-8px 0 16px}.filter-block--runs{grid-column:1 / -1}.filter-block-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:6px}.run-check-list{display:flex;flex-wrap:wrap;gap:8px 16px;max-height:88px;overflow-y:auto;padding:8px 10px;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.run-check-item{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.run-check-item small{opacity:.7}.executor-section h3{display:flex;align-items:center;gap:8px}.executor-table .cell-ok{color:var(--color-success);font-weight:600}.executor-table .cell-fail{color:var(--color-danger);font-weight:600}.rate-pill{display:inline-block;min-width:42px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;text-align:center}.rate-pill.ok{background:var(--color-success-bg, #e0f5f3);color:var(--color-success)}.rate-pill.fail{background:var(--color-danger-bg, #fdeaea);color:var(--color-danger)}.rate-pill.muted{opacity:.45;font-weight:500}.sum-card.warn .sum-val{color:var(--color-warning)}.sum-card.slate{border-top-color:#94a3b8}.sum-card.slate .sum-val{color:#475569}.sum-val{font-size:30px;font-weight:700}.sum-lbl{font-size:12px;color:var(--color-text-secondary);margin-top:4px;text-transform:uppercase}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:20px}.chart-box{background:var(--color-white);border-radius:12px;padding:20px;border:1px solid var(--color-border, #e2e8f0);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04))}.chart-box h3{font-size:13px;font-weight:600;margin-bottom:16px;color:var(--color-text-primary, #0f172a);letter-spacing:-.01em}.dash-table{width:100%;border-collapse:collapse;font-size:14px}.dash-table th,.dash-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;text-align:left}.dash-table th{background:var(--color-gray-light);color:var(--color-text-secondary);font-size:12px;text-transform:uppercase;font-weight:500;letter-spacing:.03em}.dash-table tbody tr{transition:background .15s}.dash-table tbody tr:hover{background:var(--color-gray-light)}.campaign-form{display:flex;gap:8px;margin-bottom:16px}.campaign-form input{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:14px}.badge{font-size:12px;background:var(--color-primary-light);color:var(--color-primary-dark);padding:2px 8px;border-radius:var(--radius-full)}.actions button{margin-right:6px;font-size:13px;cursor:pointer;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-white);transition:all .15s;font-family:inherit}.actions button:hover{border-color:var(--color-primary);color:var(--color-primary)}.compare-select{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.compare-select label{font-size:12px;color:var(--color-text-secondary);display:flex;flex-direction:column;gap:4px}.compare-select select{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px}.compare-grid{display:flex;gap:12px;margin-bottom:16px}.compare-card{flex:1;background:var(--color-white);padding:16px;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.compare-card h4{font-size:14px;font-weight:600;margin-bottom:8px}.compare-stat{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--color-text-secondary)}.admin-secondary-nav{background:var(--color-white);border-bottom:1px solid var(--color-border);padding:0 24px;display:flex;gap:0;align-items:center;height:44px}.admin-secondary-nav a,.admin-secondary-nav button{color:var(--color-text-secondary);text-decoration:none;font-size:14px;background:none;border:none;cursor:pointer;font-family:inherit;padding:10px 16px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;font-weight:500}.admin-secondary-nav a:hover,.admin-secondary-nav button:hover{color:var(--color-text-primary)}.admin-secondary-nav a.router-link-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:9999px}@media(max-width:1023px){.sidebar{position:fixed;left:0;top:56px;transform:translate(-100%);height:calc(100dvh - 56px)}.sidebar.open{transform:translate(0)}.sidebar-toggle{display:flex}.stat-cards{grid-template-columns:repeat(2,1fr)}.search-wrap{margin-left:0;width:100%}.search-box{width:100%}.test-toolbar{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.test-toolbar::-webkit-scrollbar{display:none}.filter-tabs{flex-wrap:nowrap}}@media(max-width:1100px){.dash-filter-grid,.dash-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.dash-filter-grid{grid-template-columns:1fr}.dash-field--period{grid-column:span 1}.dash-kpi-grid{grid-template-columns:1fr 1fr}.run-chip-name{max-width:140px}.stat-cards{grid-template-columns:1fr 1fr}.app-topbar{padding:0 16px}.page-header,.page-header--compact,.execution-toolbar,.dashboard-toolbar,.dash-filters--compact,.type-filter-row,.test-list,.test-toolbar,.dash-body,.dash-filters,.dash-tabs,.dash-tabs--compact,.dash-page-header{padding-left:16px;padding-right:16px}}input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],select,textarea{transition:border-color .15s,box-shadow .15s}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary)!important;box-shadow:0 0 0 3px #2bbdad26!important}.admin-page-header{margin-bottom:24px}.admin-eyebrow{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary);margin-bottom:4px}.admin-page-header h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0}.admin-tabs{display:flex;gap:0;flex-wrap:wrap;margin-bottom:24px;border-bottom:1px solid var(--color-border)}.admin-tab-btn{padding:10px 16px;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;color:var(--color-text-secondary);transition:all .15s;display:inline-flex;align-items:center;gap:6px}.admin-tab-btn:hover{color:var(--color-text-primary)}.admin-tab-btn.active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.admin-panel{background:var(--color-white);padding:24px;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:visible}.admin-panel h2{font-size:16px;font-weight:600;margin:0 0 6px;color:var(--color-text-primary)}.admin-panel-desc{font-size:14px;color:var(--color-text-secondary);margin:0 0 20px;line-height:1.5}.admin-panel-desc code{background:var(--color-gray-light);padding:1px 6px;border-radius:4px;font-size:12px}.admin-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:4px}.admin-panel-head .admin-panel-desc{margin-bottom:0}.admin-field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 20px}.admin-field{display:flex;flex-direction:column;gap:4px}.admin-field-wide{grid-column:1 / -1}.admin-field label{font-size:14px;font-weight:500;color:#334155;margin-bottom:2px}.admin-field small{font-size:12px;color:var(--color-text-muted);line-height:1.35;margin-top:4px}.admin-inp{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;background:var(--color-white);transition:all .15s}.admin-inp:focus{outline:none;border-color:transparent;box-shadow:0 0 0 2px var(--color-primary)}.admin-inp.area{font-size:14px;line-height:1.55;resize:vertical;min-height:88px}.admin-inp.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}.admin-panel-actions{margin-top:24px;padding-top:16px;border-top:1px solid var(--color-border);display:flex;gap:10px;flex-wrap:wrap}.admin-btn-primary,.admin-btn-secondary,.admin-btn-ghost{padding:8px 16px;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;font-family:inherit;font-size:14px;transition:all .15s;display:inline-flex;align-items:center;gap:6px}.admin-btn-primary{background:var(--color-primary);color:#fff;border:none;box-shadow:var(--shadow-sm)}.admin-btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.admin-btn-secondary{background:var(--color-white);color:var(--color-text-primary);border:1px solid var(--color-border)}.admin-btn-secondary:hover:not(:disabled){border-color:#94a3b8}.admin-btn-ghost{background:var(--color-white);border:1px solid var(--color-border);color:#334155}.admin-btn-ghost:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.admin-btn-ghost.danger-text{border-color:#fecaca;color:var(--color-danger)}.admin-btn-ghost.danger-text:hover:not(:disabled){background:var(--color-danger-bg)}.admin-btn-icon{width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:var(--color-gray-light);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s;color:var(--color-text-secondary)}.admin-btn-icon:hover:not(:disabled){background:#e2e8f0}.admin-btn-icon:disabled{opacity:.35;cursor:default}.admin-btn-icon.danger{background:var(--color-danger-bg);color:var(--color-danger)}.admin-btn-icon.danger:hover:not(:disabled){background:#fecaca}.admin-search{max-width:320px;flex:1;min-width:180px}.admin-empty{text-align:center;padding:48px 20px;color:var(--color-text-muted);font-size:14px}@media(max-width:720px){.admin-field-grid{grid-template-columns:1fr}}
