:root{--bg-base: #0a0b14;--bg-surface: #111224;--bg-panel: #161830;--bg-elevated: #1d1f3a;--bg-hover: #232545;--border: rgba(255,255,255,.08);--border-subtle: rgba(255,255,255,.04);--primary: #6366f1;--primary-light: #818cf8;--primary-dim: rgba(99,102,241,.15);--primary-glow: rgba(99,102,241,.3);--accent: #f59e0b;--accent-dim: rgba(245,158,11,.15);--diff-added: #22c55e;--diff-added-bg: rgba(34,197,94,.1);--diff-removed: #ef4444;--diff-removed-bg:rgba(239,68,68,.1);--diff-changed: #f59e0b;--diff-changed-bg:rgba(245,158,11,.1);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--text-link: #818cf8;--swot-strengths: rgba(34,197,94,.12);--swot-weaknesses: rgba(239,68,68,.12);--swot-opportunities: rgba(99,102,241,.12);--swot-threats: rgba(245,158,11,.12);--swot-strengths-border: rgba(34,197,94,.35);--swot-weaknesses-border: rgba(239,68,68,.35);--swot-opportunities-border: rgba(99,102,241,.35);--swot-threats-border: rgba(245,158,11,.35);--tows-SO: #6366f1;--tows-ST: #f59e0b;--tows-WO: #22c55e;--tows-WT: #ef4444;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--font: "Inter", system-ui, sans-serif;--font-mono: "Fira Mono", "Cascadia Code", monospace;--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .32s ease;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.4);--shadow-lg: 0 8px 32px rgba(0,0,0,.5);--shadow-glow: 0 0 24px var(--primary-glow);--sidebar-width: 280px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font);background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}h1{font-size:1.5rem;font-weight:700;line-height:1.3}h2{font-size:1.25rem;font-weight:600;line-height:1.4}h3{font-size:1.05rem;font-weight:600;line-height:1.4}h4{font-size:.95rem;font-weight:600}p{line-height:1.7;font-size:.9rem}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-sm{font-size:.8rem}.text-xs{font-size:.73rem}.font-mono{font-family:var(--font-mono)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.min-w-0{min-width:0}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 8px;border-radius:var(--radius-full);font-size:.7rem;font-weight:600;letter-spacing:.03em;white-space:nowrap}.badge-primary{background:var(--primary-dim);color:var(--primary-light);border:1px solid rgba(99,102,241,.3)}.badge-success{background:var(--diff-added-bg);color:var(--diff-added);border:1px solid rgba(34,197,94,.3)}.badge-danger{background:var(--diff-removed-bg);color:var(--diff-removed);border:1px solid rgba(239,68,68,.3)}.badge-warning{background:var(--diff-changed-bg);color:var(--diff-changed);border:1px solid rgba(245,158,11,.3)}.badge-neutral{background:#ffffff12;color:var(--text-secondary);border:1px solid var(--border)}.badge-high{background:#22c55e26;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.badge-medium{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.badge-low{background:#94a3b826;color:#94a3b8;border:1px solid rgba(148,163,184,.3)}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);transition:border-color var(--transition-base)}.card:hover{border-color:#ffffff24}.card-elevated{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.glass{background:#161830b3;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:8px 16px;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;font-family:var(--font);cursor:pointer;border:1px solid transparent;transition:all var(--transition-fast);white-space:nowrap;text-decoration:none}.btn:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-light);border-color:var(--primary-light)}.btn-secondary{background:var(--bg-elevated);color:var(--text-secondary);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:#ef444426;color:var(--diff-removed);border-color:#ef44444d}.btn-danger:hover{background:#ef444440}.btn-sm{padding:4px 10px;font-size:.78rem;border-radius:var(--radius-sm)}.btn-icon{padding:6px;width:32px;height:32px}.btn:disabled{opacity:.4;cursor:not-allowed}.input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 12px;color:var(--text-primary);font-family:var(--font);font-size:.85rem;width:100%;transition:border-color var(--transition-fast)}.input:focus{outline:none;border-color:var(--primary)}.input::placeholder{color:var(--text-muted)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-elevated) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 32px 8px 12px;color:var(--text-primary);font-family:var(--font);font-size:.85rem;cursor:pointer;transition:border-color var(--transition-fast)}.select:focus{outline:none;border-color:var(--primary)}.tab-bar{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border);flex-wrap:wrap}.tab-btn{padding:6px 14px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;cursor:pointer;border:none;background:transparent;color:var(--text-secondary);font-family:var(--font);transition:all var(--transition-fast);white-space:nowrap}.tab-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.tab-btn.active{background:var(--primary);color:#fff}.tab-btn:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}.accordion-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:background var(--transition-fast);-webkit-user-select:none;user-select:none}.accordion-header:hover{background:var(--bg-hover)}.accordion-icon{transition:transform var(--transition-base);color:var(--text-muted);flex-shrink:0}.accordion-icon.open{transform:rotate(180deg)}.accordion-body{animation:slideDown var(--transition-base) ease;overflow:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.diff-added{border-left:3px solid var(--diff-added);background:var(--diff-added-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.diff-removed{border-left:3px solid var(--diff-removed);background:var(--diff-removed-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.diff-changed{border-left:3px solid var(--diff-changed);background:var(--diff-changed-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.signal-chip{display:inline-flex;align-items:center;padding:1px 7px;background:var(--primary-dim);border:1px solid rgba(99,102,241,.25);border-radius:var(--radius-full);font-size:.68rem;font-weight:600;color:var(--primary-light);font-family:var(--font-mono);white-space:nowrap;cursor:default}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-6);animation:fadeIn var(--transition-fast) ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-6);width:100%;max-width:520px;box-shadow:var(--shadow-lg);animation:modalIn var(--transition-base) ease}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.divider{height:1px;background:var(--border);margin:var(--space-4) 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-10);color:var(--text-muted);text-align:center}.empty-state-icon{font-size:2.5rem;opacity:.6}.empty-state h3{font-size:1rem;color:var(--text-secondary)}.empty-state p{font-size:.85rem;max-width:360px}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}[data-tooltip]{position:relative;cursor:default}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-4px);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);font-size:.75rem;padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:50}[data-tooltip]:hover:after{opacity:1}.app-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.primary-topbar{height:56px;flex-shrink:0;display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-5);background:var(--bg-surface);border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden}.primary-topbar::-webkit-scrollbar{height:0}.topbar-logo{display:flex;align-items:center;gap:var(--space-2);font-weight:800;font-size:1rem;color:var(--text-primary);flex-shrink:0;margin-right:var(--space-2)}.topbar-logo-icon{width:30px;height:30px;background:linear-gradient(135deg,var(--primary),#8b5cf6);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;box-shadow:0 0 12px #6366f166}.topbar-divider{width:1px;height:24px;background:var(--border);flex-shrink:0}.topbar-upload-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 12px;border-radius:var(--radius-md);border:1px dashed var(--border);background:var(--bg-elevated);color:var(--text-secondary);font-size:.82rem;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;flex-shrink:0}.topbar-upload-btn:hover{border-color:var(--primary);color:var(--primary-light);background:var(--primary-dim)}.run-selector-wrap{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.run-selector-label{font-size:.75rem;color:var(--text-muted);font-weight:600;white-space:nowrap}.version-strip{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.version-strip-label{font-size:.72rem;color:var(--text-muted);font-weight:600;white-space:nowrap;margin-right:2px}.topbar-version-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius-full);background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;font-family:var(--font);font-size:.76rem;font-weight:600;color:var(--text-secondary);transition:all var(--transition-fast);white-space:nowrap}.topbar-version-chip:hover{border-color:var(--primary-light);color:var(--text-primary)}.topbar-version-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 10px var(--primary-glow)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.flow-nav-bar{flex-shrink:0;display:flex;align-items:center;gap:4px;padding:var(--space-2) var(--space-5);background:var(--bg-surface);border-bottom:1px solid var(--border);overflow-x:auto}.flow-nav-bar::-webkit-scrollbar{height:0}.main-view{flex:1;overflow-y:auto;padding:var(--space-6) var(--space-8);max-width:1400px;width:100%;margin:0 auto;box-sizing:border-box}.welcome-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh;text-align:center;gap:var(--space-6)}.welcome-hero{font-size:3rem;font-weight:800;background:linear-gradient(135deg,var(--primary-light),#a78bfa,#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2;margin-bottom:var(--space-2)}.welcome-sub{font-size:1rem;color:var(--text-secondary);max-width:480px;line-height:1.7}.welcome-features{display:flex;gap:var(--space-4);flex-wrap:wrap;justify-content:center;margin-top:var(--space-4)}.welcome-feature{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);text-align:left;max-width:200px}.welcome-feature .icon{font-size:1.4rem;margin-bottom:var(--space-2);display:block}.welcome-feature h4{font-size:.85rem;margin-bottom:var(--space-1)}.welcome-feature p{font-size:.78rem;color:var(--text-muted);line-height:1.5}@media(max-width:768px){.primary-topbar{padding:0 var(--space-3)}.main-view{padding:var(--space-4)}}.upload-drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn var(--transition-fast) ease}.upload-drop-box{background:var(--bg-panel);border:2px dashed var(--primary);border-radius:var(--radius-xl);padding:60px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);box-shadow:var(--shadow-glow),var(--shadow-lg);animation:modalIn var(--transition-base) ease}
