@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap";:root{--bg-primary:#07090e;--bg-secondary:#0d121f;--bg-tertiary:#131b2e;--bg-card:#101828a6;--bg-card-hover:#162138cc;--bg-glass:#0d121fb3;--border-subtle:#ffffff14;--border-focus:#6366f180;--accent-cyan:#06b6d4;--accent-indigo:#6366f1;--accent-violet:#8b5cf6;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-heading:"Plus Jakarta Sans", sans-serif;--font-mono:"JetBrains Mono", monospace;--text-main:#f8fafc;--text-muted:#94a3b8;--text-dim:#64748b;--shadow-glow-cyan:0 0 25px #06b6d440;--shadow-glow-indigo:0 0 25px #6366f140;--shadow-card:0 8px 32px 0 #0000005e;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--transition-smooth:all .25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-main);-webkit-font-smoothing:antialiased;background-image:radial-gradient(at 10% 10%,#6366f11f 0,#0000 50%),radial-gradient(at 90% 90%,#06b6d417 0,#0000 50%);background-attachment:fixed;min-height:100vh;line-height:1.5}.app-container{flex-direction:column;min-height:100vh;display:flex}.top-nav{z-index:50;background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:.85rem 2rem;display:flex;position:sticky;top:0}.brand-section{align-items:center;gap:1rem;display:flex}.logo-badge{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent-indigo), var(--accent-cyan));width:40px;height:40px;font-family:var(--font-heading);color:#fff;box-shadow:var(--shadow-glow-cyan);justify-content:center;align-items:center;font-size:1.25rem;font-weight:800;display:flex}.brand-titles h1{font-family:var(--font-heading);letter-spacing:-.02em;background:linear-gradient(90deg,#fff,#94a3b8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.15rem;font-weight:700}.brand-titles .tagline{color:var(--text-dim);font-size:.75rem}.system-status-pills{align-items:center;gap:.6rem;display:flex}.status-pill{border-radius:var(--radius-full);border:1px solid var(--border-subtle);color:var(--text-muted);background:#ffffff0a;align-items:center;gap:.4rem;padding:.3rem .75rem;font-size:.75rem;font-weight:500;display:inline-flex}.status-dot{background-color:var(--accent-emerald);width:7px;height:7px;box-shadow:0 0 8px var(--accent-emerald);border-radius:50%;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.tenant-chip{color:#a5b4fc;border-radius:var(--radius-full);background:#6366f11a;border:1px solid #6366f14d;align-items:center;gap:.4rem;padding:.35rem .85rem;font-size:.8rem;font-weight:600;display:flex}.dashboard-main{flex-direction:column;flex:1;gap:2rem;width:100%;max-width:1400px;margin:0 auto;padding:2rem;display:flex}.hero-grid{grid-template-columns:320px 1fr;gap:1.5rem;display:grid}@media (width<=960px){.hero-grid{grid-template-columns:1fr}}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:var(--transition-smooth);padding:1.5rem}.card:hover{border-color:#ffffff26;transform:translateY(-2px)}.compliance-score-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.compliance-score-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#6366f114 0%,#0000 70%);width:200%;height:200%;position:absolute;top:-50%;left:-50%}.circular-gauge{width:160px;height:160px;margin:1rem 0;position:relative}.circular-gauge svg{width:100%;height:100%;transform:rotate(-90deg)}.circular-gauge circle{fill:none;stroke-width:12px;stroke-linecap:round}.gauge-bg{stroke:#ffffff0f}.gauge-fill{stroke:url(#cyan-indigo-gradient);transition:stroke-dashoffset 1s ease-out}.gauge-center-text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gauge-percentage{font-family:var(--font-heading);letter-spacing:-.03em;color:#fff;font-size:2.2rem;font-weight:800}.gauge-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.stat-item{flex-direction:column;justify-content:space-between;display:flex}.stat-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.stat-title{color:var(--text-muted);font-size:.85rem;font-weight:500}.stat-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;display:flex}.stat-icon.scans{color:var(--accent-indigo);background:#6366f126}.stat-icon.barriers{color:var(--accent-rose);background:#f43f5e26}.stat-icon.fixed{color:var(--accent-emerald);background:#10b98126}.stat-icon.speed{color:var(--accent-cyan);background:#06b6d426}.stat-number{font-family:var(--font-heading);color:#fff;letter-spacing:-.02em;font-size:2rem;font-weight:800}.stat-trend{align-items:center;gap:.3rem;margin-top:.5rem;font-size:.75rem;display:flex}.stat-trend.positive{color:var(--accent-emerald)}.stat-trend.warning{color:var(--accent-amber)}.scan-launcher-bar{background:linear-gradient(135deg,#1e293bcc,#0f172acc);border:1px solid #6366f140;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;display:flex;box-shadow:0 12px 40px #0006}.launcher-inputs{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#00000059;flex:1;align-items:center;gap:.75rem;min-width:300px;padding:.4rem .85rem;display:flex}.url-input{font-family:var(--font-sans);color:#fff;background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.url-input::placeholder{color:var(--text-dim)}.btn-primary{background:linear-gradient(135deg, var(--accent-indigo), #4f46e5);color:#fff;font-family:var(--font-heading);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-smooth);border:none;align-items:center;gap:.6rem;padding:.75rem 1.6rem;font-size:.95rem;font-weight:600;display:inline-flex;box-shadow:0 4px 20px #4f46e566}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#6366f1,#4338ca);transform:translateY(-1px);box-shadow:0 6px 25px #4f46e599}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.content-columns{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (width<=1024px){.content-columns{grid-template-columns:1fr}}.section-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.section-title{font-family:var(--font-heading);color:#fff;align-items:center;gap:.5rem;font-size:1.2rem;font-weight:700;display:flex}.pill-count{border-radius:var(--radius-full);color:var(--text-muted);background:#ffffff14;padding:.2rem .55rem;font-size:.75rem}.scans-table-container{flex-direction:column;gap:.75rem;display:flex}.scan-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:var(--transition-smooth);background:#ffffff05;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.scan-card:hover{background:#ffffff0a;border-color:#ffffff1f}.scan-card-top{justify-content:space-between;align-items:center;display:flex}.scan-target-url{font-family:var(--font-mono);color:var(--accent-cyan);align-items:center;gap:.4rem;font-size:.85rem;text-decoration:none;display:flex}.badge-status{border-radius:var(--radius-full);letter-spacing:.04em;text-transform:uppercase;padding:.2rem .6rem;font-size:.7rem;font-weight:700}.badge-status.COMPLETED{color:var(--accent-emerald);background:#10b98126}.badge-status.RUNNING{color:var(--accent-cyan);background:#06b6d426}.badge-status.FAILED{color:var(--accent-rose);background:#f43f5e26}.scan-metrics-row{align-items:center;gap:.75rem;font-size:.75rem;display:flex}.metric-pill{border-radius:var(--radius-sm);background:#ffffff0a;padding:.15rem .5rem}.metric-pill.new{color:var(--accent-rose)}.metric-pill.open{color:var(--accent-amber)}.metric-pill.fixed{color:var(--accent-emerald)}.scan-actions-row{border-top:1px solid #ffffff0d;justify-content:flex-end;align-items:center;gap:.5rem;padding-top:.5rem;display:flex}.btn-secondary{border:1px solid var(--border-subtle);color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-smooth);background:#ffffff0d;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-secondary:hover{background:#ffffff1a;border-color:#fff3}.filter-tabs{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#00000040;gap:.4rem;padding:.25rem;display:flex}.tab-btn{color:var(--text-dim);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-smooth);background:0 0;border:none;padding:.35rem .75rem;font-size:.75rem;font-weight:600}.tab-btn.active{background:var(--accent-indigo);color:#fff}.issues-list{flex-direction:column;gap:.85rem;max-height:520px;padding-right:.25rem;display:flex;overflow-y:auto}.issue-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:var(--transition-smooth);background:#ffffff05;flex-direction:column;gap:.6rem;padding:1rem;display:flex}.issue-card:hover{background:#ffffff0a;border-color:#6366f14d}.issue-card-header{justify-content:space-between;align-items:center;display:flex}.issue-rule{font-family:var(--font-heading);color:#fff;font-size:.95rem;font-weight:700}.impact-badge{text-transform:uppercase;border-radius:var(--radius-full);padding:.15rem .5rem;font-size:.65rem;font-weight:700}.impact-badge.critical{color:var(--accent-rose);background:#f43f5e33}.impact-badge.serious{color:var(--accent-amber);background:#f59e0b33}.impact-badge.moderate{color:var(--accent-cyan);background:#06b6d433}.impact-badge.minor{color:var(--text-muted);background:#94a3b833}.code-snippet{font-family:var(--font-mono);border-radius:var(--radius-sm);color:#38bdf8;white-space:nowrap;background:#00000073;border:1px solid #ffffff0d;padding:.5rem .75rem;font-size:.75rem;overflow-x:auto}.ai-remediate-btn{color:#c7d2fe;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-smooth);background:linear-gradient(135deg,#6366f133,#8b5cf633);border:1px solid #6366f166;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.75rem;font-weight:600;display:inline-flex}.ai-remediate-btn:hover{color:#fff;background:linear-gradient(135deg,#6366f159,#8b5cf659);border-color:#6366f1b3}.modal-overlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;opacity:0;pointer-events:none;transition:var(--transition-smooth);background:#000000d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-dialog{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:800px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #000000b3}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{font-family:var(--font-heading);color:#fff;font-size:1.1rem;font-weight:700}.modal-close-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;font-size:1.25rem}.modal-close-btn:hover{color:#fff}.modal-body{padding:1.5rem;font-size:.85rem;overflow-y:auto}.remediation-box{border-radius:var(--radius-md);white-space:pre-wrap;font-family:var(--font-mono);color:#a7f3d0;background:#00000080;border:1px solid #6366f14d;padding:1rem;font-size:.8rem;line-height:1.6}.screenshot-preview{border-radius:var(--radius-md);border:1px solid var(--border-subtle);width:100%}.spinner{border:2px solid #fff3;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
