.app{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary)}.app-header{display:flex;align-items:center;padding:0 16px;height:52px;background:var(--bg-surface);border-bottom:1px solid var(--border);gap:16px;-webkit-app-region:drag}.app-title{display:flex;align-items:center;gap:8px}.app-title h1{font-size:16px;font-weight:600;white-space:nowrap}.version-badge{font-size:11px;color:var(--text-muted);background:var(--bg-primary);padding:2px 6px;border-radius:10px}.tab-nav{display:flex;gap:2px;flex:1;-webkit-app-region:no-drag}.tab-btn{padding:8px 16px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;border-radius:var(--radius-sm);transition:all .15s}.tab-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.tab-btn.active{background:var(--primary);color:#fff}.settings-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:var(--radius-sm);-webkit-app-region:no-drag}.settings-btn:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.app-content{flex:1;overflow-y:auto;padding:20px}.splash-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:var(--bg-primary);color:var(--text-primary);gap:16px}.spinner{width:48px;height:48px;border:4px solid var(--border);border-top:4px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.status-bar{background:var(--success-bg);color:var(--success);padding:8px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:13px}.error-bar{background:var(--error-bg);color:var(--error);padding:8px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:13px}.error-text{color:var(--error);margin-top:8px}.generate-form{max-width:900px}.generate-form h2{font-size:18px;font-weight:600;margin-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group.full-width{grid-column:1 / -1}.form-group label{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.form-group input,.form-group textarea,.form-group select{padding:8px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--border-focus)}.form-group input[type=file]{padding:6px;font-size:12px}.form-group textarea{resize:vertical;min-height:80px}.input-with-btn{display:flex;gap:8px}.input-with-btn input{flex:1}.form-actions{display:flex;gap:8px;margin-top:16px}.btn{padding:8px 16px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex;align-items:center;gap:6px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-surface-hover)}.btn-warning{background:var(--warning-bg);color:var(--warning)}.btn-warning:hover:not(:disabled){background:#92400e}.btn-danger{background:var(--error-bg);color:var(--error);padding:6px 8px}.btn-danger:hover{background:#991b1b}.context-preview{margin-top:20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.context-preview h3{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--primary)}.context-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.context-item{font-size:13px}.context-item.full-width{grid-column:1 / -1}.context-label{color:var(--text-muted);margin-right:4px}.result-panel{margin-top:20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.result-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;font-size:13px}.result-success{background:var(--success-bg);color:var(--success)}.result-error,.result-failure{background:var(--error-bg);color:var(--error)}.result-status{font-weight:700;font-size:14px}.result-stats{display:flex;gap:12px;margin-left:auto}.stat-passed{color:var(--success)}.stat-failed{color:var(--error)}.stat-skipped{color:var(--text-muted)}.result-file{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--bg-primary);font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border)}.report-link{color:var(--primary);text-decoration:none;font-weight:500}.report-link:hover{text-decoration:underline}.org-badges{display:flex;gap:6px;padding:8px 16px;flex-wrap:wrap;background:var(--bg-primary);border-bottom:1px solid var(--border)}.badge{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}.badge-module{background:#312e81;color:#818cf8}.badge-type{background:#1e3a5f;color:#60a5fa}.badge-priority{background:#78350f;color:#f59e0b}.badge-tag{background:#14532d;color:#4ade80}.healing-banner{padding:12px 16px;background:#1e3a5f;color:#60a5fa;border-bottom:1px solid var(--border);font-size:12px}.healing-item{display:flex;align-items:center;gap:8px;margin-top:4px}.healing-old{color:var(--error);font-family:monospace}.healing-new{color:var(--success);font-family:monospace}.healing-arrow{color:var(--text-muted)}.dup-banner{padding:8px 16px;background:var(--warning-bg);color:var(--warning);border-bottom:1px solid var(--border);font-size:12px}.scaffold-banner{padding:8px 16px;background:#0f3d1e;color:#4ade80;border-bottom:1px solid var(--border);font-size:12px}.result-tabs{display:flex;border-bottom:1px solid var(--border)}.result-tab{padding:8px 16px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;border-bottom:2px solid transparent;transition:all .15s}.result-tab:hover{color:var(--text-primary)}.result-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.result-content{padding:16px;max-height:400px;overflow-y:auto}.code-block{background:var(--bg-primary);padding:12px;border-radius:var(--radius-sm);font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;overflow-x:auto;white-space:pre-wrap;color:var(--text-primary)}.scenarios-list{display:flex;flex-direction:column;gap:12px}.scenario-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px}.scenario-card h4{font-size:13px;font-weight:600;margin-bottom:8px;color:var(--primary)}.scenario-steps{font-size:12px;color:var(--text-muted);white-space:pre-wrap;margin-bottom:4px}.scenario-expected{font-size:12px;color:var(--success)}.execution-details{display:flex;flex-direction:column;gap:12px}.execution-details h4{font-size:13px;font-weight:600;margin-bottom:4px}.sub-tabs{display:flex;gap:2px;margin-bottom:20px}.manual-cases{display:flex;flex-direction:column;gap:12px;margin-top:16px}.manual-case-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.case-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.case-header h4{font-size:14px;font-weight:600;color:var(--primary);flex:1}.case-badges{display:flex;gap:4px}.case-preconditions{font-size:12px;color:var(--text-muted);margin-bottom:8px}.case-steps{background:var(--bg-surface);padding:8px 12px;border-radius:var(--radius-sm);font-size:12px;white-space:pre-wrap;margin-bottom:8px;font-family:inherit;color:var(--text-primary)}.case-expected{font-size:12px;color:var(--success);margin-bottom:8px}.suites-list{display:flex;flex-direction:column;gap:12px}.suites-list h3{font-size:16px;font-weight:600}.suite-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.suite-card h4{font-size:14px;font-weight:600;margin-bottom:4px}.suite-card p{font-size:12px}.registry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.registry-header h2{font-size:18px;font-weight:600}.registry-list{display:flex;flex-direction:column;gap:8px}.registry-card{display:flex;justify-content:space-between;align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.registry-info h4{font-size:13px;font-weight:600;margin-bottom:2px}.registry-info p{font-size:12px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;align-items:flex-start;padding-top:60px;z-index:1000}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:560px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:16px;font-weight:600}.close-btn{background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:0;line-height:1}.close-btn:hover{color:var(--text-primary)}.modal-body{padding:20px}.settings-section{margin-bottom:24px}.settings-section h3{font-size:14px;font-weight:600;color:var(--primary);margin-bottom:12px;padding-bottom:4px;border-bottom:1px solid var(--border)}.settings-section p{font-size:13px;margin-bottom:8px}.path-resolve{font-size:11px;color:var(--text-dim);margin-top:2px}.info-row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px}.info-row span:last-child{color:var(--text-muted)}.text-muted{color:var(--text-muted)}.run-dialog{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin:8px 0}.run-dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.run-dialog-header h4{font-size:13px;font-weight:600}.run-dialog-actions{display:flex;gap:6px;margin-bottom:10px}.test-tree{max-height:300px;overflow-y:auto}.test-suite{margin-bottom:6px;padding:6px 8px;background:var(--bg-surface);border-radius:var(--radius);border:1px solid var(--border)}.suite-label{display:flex;align-items:center;gap:6px;cursor:pointer;padding:2px 0;-webkit-user-select:none;user-select:none}.suite-label input[type=checkbox]{accent-color:var(--primary)}.suite-name{font-size:13px;font-weight:600;color:var(--text-primary)}.suite-count{font-size:11px;color:var(--text-muted)}.test-list{margin-left:24px;margin-top:4px;display:flex;flex-direction:column;gap:2px}.test-label{display:flex;align-items:center;gap:6px;cursor:pointer;padding:2px 0;-webkit-user-select:none;user-select:none}.test-label input[type=checkbox]{accent-color:var(--primary)}.test-name{font-size:12px;color:var(--text-secondary)}.test-label:hover .test-name{color:var(--text-primary)}.exec-prompt{text-align:center;padding:24px}.exec-report-link{margin-bottom:8px}.btn-sm{padding:4px 10px;font-size:12px;border-radius:4px}.resolve-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;justify-content:center;align-items:flex-start;padding-top:60px;z-index:1000}.resolve-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:620px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow)}.resolve-header{padding:16px 20px;border-bottom:1px solid var(--border)}.resolve-header h3{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.resolve-list{padding:12px 20px;display:flex;flex-direction:column;gap:10px}.resolve-item{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.resolve-item-info{display:flex;flex-direction:column;gap:3px;margin-bottom:8px;font-size:12px}.resolve-new{color:var(--text-primary)}.resolve-existing{color:var(--text-muted)}.resolve-sim{color:var(--warning, #f59e0b);font-size:11px}.resolve-options{display:flex;gap:8px;flex-wrap:wrap}.resolve-option{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:12px;color:var(--text-muted);background:var(--bg-surface);-webkit-user-select:none;user-select:none;transition:all .15s}.resolve-option:hover{border-color:var(--primary);color:var(--text-primary)}.resolve-option.selected{border-color:var(--primary);background:#6366f11a;color:var(--primary)}.resolve-option input[type=radio]{accent-color:var(--primary)}.resolve-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border)}.test-plan-panel{padding:4px 0}.test-plan-panel .plan-title{font-size:16px;font-weight:700;color:var(--primary);margin-bottom:4px}.test-plan-panel .plan-url{font-size:12px;color:var(--text-muted);margin-bottom:8px;word-break:break-all}.test-plan-panel .plan-overview{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:16px;padding:8px 12px;background:var(--bg-hover);border-radius:var(--radius)}.plan-section{margin-bottom:16px}.plan-section h4{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border)}.plan-flows{list-style:none;padding:0}.plan-flow-item{font-size:13px;color:var(--text-secondary);padding:4px 0}.plan-scenarios{display:flex;flex-direction:column;gap:8px}.plan-scenario-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px}.plan-scenario-header h5{font-size:13px;font-weight:600;color:var(--text-primary);flex:1}.plan-scenario-badges{display:flex;gap:4px;flex-shrink:0}.plan-preconditions{font-size:12px;color:var(--text-muted);margin-bottom:4px}.plan-steps{padding-left:20px;margin:4px 0}.plan-steps li{font-size:12px;color:var(--text-secondary);line-height:1.6}.plan-expected{font-size:12px;color:var(--text-secondary);margin-top:4px}.plan-criteria{font-size:12px;color:var(--text-muted);margin-top:4px}.plan-criteria ul{padding-left:20px;margin:2px 0}.plan-criteria li{font-size:12px;color:var(--text-muted);line-height:1.5}.plan-section ul:not(.plan-flows):not(.plan-steps){padding-left:20px;margin:4px 0}.plan-section ul:not(.plan-flows):not(.plan-steps) li{font-size:12px;color:var(--text-secondary);line-height:1.6}.setup-dialog ul{list-style:none;padding:0}.setup-dialog li{font-size:13px;color:var(--text-primary)}.folder-picker .modal-body{display:flex;flex-direction:column;gap:12px}.folder-picker-path{display:flex;align-items:baseline;gap:8px;padding:10px 12px;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all}.folder-picker-path .path-resolve{font-size:13px;margin:0}.folder-picker-label{font-size:12px;font-weight:600;color:var(--text-muted);white-space:nowrap}.folder-picker-actions{display:flex;gap:8px;align-items:center}.folder-picker-actions input{flex:1;min-width:0}.folder-picker-list{border:1px solid var(--border);border-radius:var(--radius);max-height:320px;overflow-y:auto;background:var(--bg-primary)}.folder-picker-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text-primary);text-align:left;cursor:pointer;font-size:13px}.folder-picker-item:last-child{border-bottom:none}.folder-picker-item:hover{background:var(--bg-hover)}.folder-picker-icon{color:var(--primary);font-size:14px}.folder-picker-name{font-weight:500;white-space:nowrap}.folder-picker-fullpath{margin-left:auto;font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}@media (max-width: 768px){.form-grid{grid-template-columns:1fr}.app-header{flex-wrap:wrap;height:auto;padding:8px}.tab-nav{overflow-x:auto}.plan-scenario-header{flex-direction:column}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0f172a;--bg-surface: #1e293b;--bg-surface-hover: #334155;--primary: #6366f1;--primary-hover: #818cf8;--text-primary: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--border: #334155;--border-focus: #6366f1;--success: #22c55e;--success-bg: #166534;--error: #ef4444;--error-bg: #7f1d1d;--warning: #f59e0b;--warning-bg: #78350f;--radius: 8px;--radius-sm: 4px;--shadow: 0 4px 6px -1px rgba(0, 0, 0, .3)}html,body,#root{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}
