:root{--bg-primary: #0a0a0f;--bg-card: #12121a;--bg-card-hover: #181825;--bg-input: #0e0e16;--border-color: #1e1e2e;--border-hover: #2e2e42;--accent: #6366f1;--accent-hover: #818cf8;--accent-dim: rgba(99, 102, 241, .15);--success: #22c55e;--success-dim: rgba(34, 197, 94, .15);--warning: #f59e0b;--warning-dim: rgba(245, 158, 11, .15);--error: #ef4444;--error-dim: rgba(239, 68, 68, .15);--info: #3b82f6;--info-dim: rgba(59, 130, 246, .15);--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--font-family: "Inter", system-ui, -apple-system, sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow: 0 4px 24px rgba(0, 0, 0, .4);--transition: .2s ease}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#12121ad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100}.header-inner{max-width:1280px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text-primary);font-weight:700;font-size:18px}.logo-icon{color:var(--accent);font-size:22px}.logo-text{background:linear-gradient(135deg,var(--text-primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-links{display:flex;gap:8px}.nav-link{text-decoration:none;color:var(--text-secondary);padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;transition:all var(--transition)}.nav-link:hover{color:var(--text-primary);background:var(--accent-dim)}.nav-link.active{color:var(--accent);background:var(--accent-dim)}.app-main{flex:1;max-width:1280px;width:100%;margin:0 auto;padding:32px 24px}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;transition:border-color var(--transition),box-shadow var(--transition)}.card:hover{border-color:var(--border-hover)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.card-title{font-size:18px;font-weight:600;color:var(--text-primary)}.card-subtitle{font-size:13px;color:var(--text-secondary);margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;font-family:var(--font-family);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);text-decoration:none;line-height:1.4}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 0 20px #6366f14d}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#16a34a;box-shadow:0 0 20px #22c55e4d}.btn-error{background:var(--error);color:#fff}.btn-error:hover:not(:disabled){background:#dc2626}.btn-outline{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.btn-sm{padding:6px 12px;font-size:12px}.btn-lg{padding:14px 28px;font-size:16px}.form-group{margin-bottom:20px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;font-size:14px;font-family:var(--font-family);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:border-color var(--transition),box-shadow var(--transition);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}.form-select option{background:var(--bg-card);color:var(--text-primary)}.form-textarea{min-height:100px;resize:vertical}.badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:20px}.badge-critical{background:var(--error-dim);color:var(--error)}.badge-high{background:#f9731626;color:#f97316}.badge-medium{background:var(--warning-dim);color:var(--warning)}.badge-low{background:var(--info-dim);color:var(--info)}.badge-pending{background:var(--warning-dim);color:var(--warning)}.badge-analyzing{background:var(--info-dim);color:var(--info);animation:pulse-badge 1.5s ease-in-out infinite}.badge-complete{background:var(--success-dim);color:var(--success)}.badge-failed{background:var(--error-dim);color:var(--error)}.badge-queued{background:#94a3b826;color:var(--text-secondary)}.badge-executing{background:var(--info-dim);color:var(--info);animation:pulse-badge 1.5s ease-in-out infinite}.badge-manual_required{background:var(--warning-dim);color:var(--warning)}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.5}}.progress-bar-container{width:100%;height:8px;background:var(--bg-input);border-radius:4px;overflow:hidden;margin:12px 0}.progress-bar-fill{height:100%;border-radius:4px;transition:width .5s ease;background:linear-gradient(90deg,var(--accent),var(--accent-hover))}.progress-bar-fill.success{background:linear-gradient(90deg,var(--success),#34d399)}.score-display{display:flex;flex-direction:column;align-items:center;gap:8px}.score-value{font-size:72px;font-weight:800;line-height:1;letter-spacing:-2px}.score-label{font-size:14px;color:var(--text-secondary);font-weight:500}.score-a{color:var(--success)}.score-b{color:#34d399}.score-c{color:var(--warning)}.score-d{color:#f97316}.score-f{color:var(--error)}.table-container{overflow-x:auto;border-radius:var(--radius-md)}table{width:100%;border-collapse:collapse}th,td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-color);font-size:14px}th{font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:11px;letter-spacing:.7px;background:#0003}tr{transition:background var(--transition)}tbody tr:hover{background:#6366f10d}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:#6366f11a}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color);margin-bottom:24px;overflow-x:auto}.tab{padding:10px 20px;font-size:14px;font-weight:500;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:all var(--transition);font-family:var(--font-family)}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-count{margin-left:6px;font-size:11px;background:var(--accent-dim);color:var(--accent);padding:1px 7px;border-radius:10px}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.section{margin-bottom:32px}.section-title{font-size:20px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:10px}.section-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:16px}.spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-text{color:var(--text-secondary);font-size:14px}.error-container{text-align:center;padding:60px 20px}.error-icon{font-size:48px;margin-bottom:16px}.error-title{font-size:20px;font-weight:600;margin-bottom:8px;color:var(--error)}.error-message{color:var(--text-secondary);margin-bottom:20px}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state-icon{font-size:48px;margin-bottom:12px;opacity:.4}.log-viewer{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:16px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;line-height:1.7;max-height:300px;overflow-y:auto;color:var(--text-secondary);white-space:pre-wrap;word-break:break-all}.expandable-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:8px 0;color:var(--text-secondary);font-size:13px;transition:color var(--transition)}.expandable-header:hover{color:var(--text-primary)}.expandable-arrow{transition:transform var(--transition);font-size:10px}.expandable-arrow.open{transform:rotate(90deg)}.expandable-content{overflow:hidden;transition:max-height .3s ease}.value-row{display:flex;gap:16px;font-size:13px;margin-top:8px}.value-item{display:flex;align-items:center;gap:4px}.value-label{color:var(--text-muted)}.value-you{color:var(--accent);font-weight:600}.value-avg{color:var(--text-secondary);font-weight:600}.value-best{color:var(--success);font-weight:600}.two-col{display:grid;grid-template-columns:420px 1fr;gap:32px;align-items:start}.gap-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.fix-actions-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:24px}.fix-actions-bar .cost-estimate{font-size:13px;color:var(--text-secondary);margin-left:auto}@media (max-width: 1024px){.two-col{grid-template-columns:1fr}.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.header-inner{padding:0 16px}.app-main{padding:20px 16px}.grid-2,.grid-3,.grid-4,.gap-cards-grid{grid-template-columns:1fr}.fix-actions-bar{flex-direction:column;align-items:stretch}.fix-actions-bar .cost-estimate{margin-left:0;text-align:center}.score-value{font-size:56px}}@media (max-width: 480px){.logo-text{font-size:15px}.tabs{gap:0}.tab{padding:8px 12px;font-size:13px}}
