.scan-ops{--so-bg:#fafafa;--so-surface:#fff;--so-border:#e5e7eb;--so-border-strong:#d1d5db;--so-text:#111827;--so-muted:#6b7280;--so-accent:#2563eb;--so-accent-soft:#eff6ff;--so-success:#059669;--so-success-soft:#ecfdf5;--so-warn:#d97706;--so-warn-soft:#fffbeb;--so-danger:#dc2626;--so-danger-soft:#fef2f2;--so-mono:ui-monospace,"Geist Mono","JetBrains Mono",monospace;--so-radius:10px;--so-shadow:0 1px 2px rgba(0,0,0,.04),0 4px 12px rgba(0,0,0,.04);font-family:var(--font-body),system-ui,sans-serif;color:var(--so-text);background:var(--so-bg);min-height:100%}.scan-ops .so-page{padding:1.5rem 1.75rem 2.5rem;max-width:1440px}.scan-ops .so-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.scan-ops .so-title{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;margin:0}.scan-ops .so-subtitle{font-size:.875rem;color:var(--so-muted);margin:.25rem 0 0}.scan-ops .so-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.scan-ops .so-btn{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:600;padding:.5rem .875rem;border-radius:8px;border:1px solid var(--so-border);background:var(--so-surface);color:var(--so-text);cursor:pointer;transition:background .15s,border-color .15s}.scan-ops .so-btn:hover{background:#f3f4f6}.scan-ops .so-btn-primary{background:var(--so-text);border-color:var(--so-text);color:#fff}.scan-ops .so-btn-primary:hover{background:#1f2937}.scan-ops .so-card{background:var(--so-surface);border:1px solid var(--so-border);border-radius:var(--so-radius);box-shadow:var(--so-shadow)}.scan-ops .so-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem}@media (max-width:1024px){.scan-ops .so-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.scan-ops .so-stat{padding:1rem 1.125rem;display:flex;align-items:center;gap:.75rem}.scan-ops .so-stat-icon{width:2.25rem;height:2.25rem;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.scan-ops .so-stat-value{font-size:1.375rem;font-weight:700;line-height:1.1}.scan-ops .so-stat-label{font-size:.75rem;color:var(--so-muted)}.scan-ops .so-table-wrap{overflow-x:auto}.scan-ops .so-table{width:100%;border-collapse:collapse;font-size:.8125rem}.scan-ops .so-table thead th{text-align:left;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--so-muted);padding:.75rem 1rem;background:#f9fafb;border-bottom:1px solid var(--so-border)}.scan-ops .so-table tbody td{padding:.875rem 1rem;border-bottom:1px solid #f3f4f6;vertical-align:middle}.scan-ops .so-table tbody tr:hover{background:#f9fafb}.scan-ops .so-mono{font-family:var(--so-mono);font-size:.75rem;color:var(--so-muted)}.scan-ops .so-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.6875rem;font-weight:600;text-transform:capitalize;padding:.2rem .5rem;border-radius:999px}.scan-ops .so-chip-running{background:var(--so-accent-soft);color:var(--so-accent)}.scan-ops .so-chip-completed{background:var(--so-success-soft);color:var(--so-success)}.scan-ops .so-chip-failed{background:var(--so-danger-soft);color:var(--so-danger)}.scan-ops .so-chip-pending{background:#f3f4f6;color:var(--so-muted)}.scan-ops .so-pulse{width:6px;height:6px;border-radius:50%;background:currentColor;animation:so-pulse 1.5s ease-in-out infinite}@keyframes so-pulse{0%,to{opacity:1}50%{opacity:.35}}.scan-ops .so-terminal{border-radius:var(--so-radius);overflow:hidden;border:1px solid #374151;margin-bottom:1.25rem}.scan-ops .so-terminal-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem .875rem;background:#161b22;border-bottom:1px solid #30363d}.scan-ops .so-terminal-body{background:#0d1117;color:#c9d1d9;font-family:var(--so-mono);font-size:.75rem;line-height:1.55;padding:1rem;height:18rem;overflow-y:auto}.scan-ops .so-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media (max-width:768px){.scan-ops .so-form-grid{grid-template-columns:1fr}}.scan-ops .so-input,.scan-ops .so-select{width:100%;border:1px solid var(--so-border);border-radius:8px;padding:.5rem .75rem;font-size:.8125rem;background:#fff}.scan-ops .so-label{display:block;font-size:.6875rem;font-weight:600;color:var(--so-muted);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.04em}.scan-ops .so-empty{text-align:center;padding:2.5rem 1rem;color:var(--so-muted);font-size:.875rem}