:root{--bg:#f6f7fb;--surface:#fff;--surface-muted:#f3f4f8;--text:#0f172a;--muted:#5f6b7c;--border:#e2e8f0;--primary:#2563eb;--primary-dark:#1d4ed8;--danger:#dc2626;--success:#059669;--warning:#d97706;--radius:.75rem;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;font-family:inherit}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.loader-beeline{background:#ffd200;border-radius:50%;width:64px;height:64px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #ffd200}.loader-beeline:before,.loader-beeline:after{content:"";background:repeating-linear-gradient(#0000 0 10px,#000 10px 20px);animation:1.2s linear infinite beeline-fill;position:absolute;inset:0}.loader-beeline:after{opacity:.5;filter:blur(1px)}@keyframes beeline-fill{0%{transform:translateY(100%)}to{transform:translateY(-100%)}}button,input,select,textarea{font:inherit}.app-shell{background:var(--bg);min-height:100vh}.app-header{z-index:10;border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:1.5rem;padding:.85rem 2rem;display:flex;position:sticky;top:0;box-shadow:0 4px 20px #0f172a0d}.app-brand{color:var(--text);font-size:1.05rem;font-weight:600}.app-nav{gap:1rem;display:flex}.app-nav a{color:var(--muted);font-weight:500}.app-nav a.active-link{color:var(--primary)}.app-user{color:var(--muted);align-items:center;gap:1rem;margin-left:auto;font-size:.9rem;display:flex}.app-user span{line-height:1.2;display:block}.app-main{max-width:2200px;margin:0 auto;padding:2rem 1.5rem 3rem}.page-heading{justify-content:space-between;align-items:flex-start;gap:1.25rem;margin-bottom:1.5rem;display:flex}.page-heading h1{margin:0;font-size:1.75rem}.page-heading p{color:var(--muted);margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:0 20px 45px #0f172a14}.link-button{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.modal-overlay{z-index:40;background:#0f172a80;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:16px;flex-direction:column;width:min(960px,100%);max-height:85vh;display:flex;box-shadow:0 18px 48px #0f172a33}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.preview-body{padding:1rem 1.25rem 1.25rem;overflow:auto}.text-preview,.json-preview{color:#e2e8f0;background:#0f172a;border-radius:12px;padding:1rem;font-size:.9rem;line-height:1.4;overflow-x:auto}.json-key{color:#60a5fa}.json-string{color:#fcd34d}.json-number{color:#f87171}.json-boolean{color:#34d399}.json-null{color:#a78bfa}.raw-sources-layout{grid-template-columns:280px 1fr;min-height:60vh;display:grid}.raw-sources-list{border-right:1px solid var(--border);flex-direction:column;gap:.5rem;padding:1rem;display:flex;overflow:auto}.raw-source-item{color:#0f172a;text-align:left;cursor:pointer;background:#f8fafc;border:1px solid #0000;border-radius:10px;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;display:flex}.raw-source-item.active{border-color:var(--primary);background:#2563eb14}.raw-sources-content{padding:1rem 1.25rem;overflow:auto}.card+.card{margin-top:1.25rem}.card-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.card-title{margin:0;font-size:1.1rem}.muted{color:var(--muted);font-size:.9rem}.section-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.table-container{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem .5rem}.table th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.8rem}.status-pill{border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.status-pill.queued{color:#a16207;background:#eab30826}.status-pill.running{color:#1d4ed8;background:#3b82f626}.status-pill.completed{color:#15803d;background:#22c55e26}.status-pill.failed,.status-pill.critical{color:#b91c1c;background:#f8717133}.status-pill.major{color:#c2410c;background:#f9731633}.status-pill.minor{color:#15803d;background:#22c55e26}.status-pill.warning{color:#a16207;background:#eab30833}.status-pill.info{color:#1d4ed8;background:#3b82f626}.btn{cursor:pointer;border:none;border-radius:.55rem;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1.2rem;font-weight:600;transition:background .2s,color .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--surface-muted);color:var(--text)}.btn-ghost{color:var(--muted);background:0 0}.btn:disabled{opacity:.6;cursor:not-allowed}.field{flex-direction:column;gap:.35rem;display:flex}.field label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.85rem}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:.55rem;padding:.55rem .75rem}.field textarea{resize:vertical;min-height:140px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.9rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.module-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.alert{border-radius:.65rem;margin-top:.75rem;padding:.85rem 1rem;font-size:.9rem}.alert-error{color:#b91c1c;background:#f8717126}.alert-success{color:#15803d;background:#4ade8026}.login-wrapper{background:radial-gradient(circle at top,#e0e7ff,#f5f7fb 65%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;width:min(460px,100%);padding:2rem;box-shadow:0 40px 80px #0f172a33}.login-card h1{margin-top:0;margin-bottom:.6rem}.tab-switch{gap:1rem;margin-bottom:1.5rem;display:flex}.tab-switch button{flex:1}.segmented-control{border:1px solid var(--border);background:var(--surface-muted);border-radius:999px;gap:.5rem;padding:.35rem;display:flex}.segmented-control button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:.5rem 1rem;font-weight:600}.segmented-control button.active{background:var(--surface);color:var(--text);box-shadow:0 8px 20px #0f172a1f}.segmented-control button:disabled{cursor:not-allowed;opacity:.6}.compact-list .card.finding-card{padding:.9rem;box-shadow:0 12px 24px #0f172a14}.compact-list .card+.card{margin-top:.75rem}.compact-list .card-header{margin-bottom:.35rem}.compact-list .muted{font-size:.82rem}.finding-card details{margin-top:.5rem}.finding-card pre{background:var(--surface-muted);border-radius:.5rem;padding:.75rem;overflow-x:auto}.chip{background:var(--surface-muted);color:var(--muted);border-radius:999px;align-items:center;padding:.35rem .75rem;font-size:.8rem;display:inline-flex}.balance-chip{color:#0369a1;background:#e0f2fe;border-radius:999px;align-items:center;gap:.35rem;padding:.6rem 1rem;font-weight:600;display:inline-flex}.tabs{flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem;display:flex}.sticky-tabs{z-index:12;background:var(--surface);padding:.75rem 0;position:sticky;top:4.5rem}.tab-button{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:600;transition:all .2s;display:inline-flex}.sticky-norm-toolbar{z-index:11;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:.85rem 1rem;display:flex;position:sticky;top:8.2rem;box-shadow:0 10px 24px #0f172a14}.tab-button:hover{color:var(--text);border-color:var(--primary)}.tab-button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.tab-count{background:#0f172a1a;border-radius:999px;padding:.1rem .5rem;font-size:.8rem}.tab-button.active .tab-count{background:#fff3}.card-list{gap:1rem;display:grid}.pill-row{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.empty-state{background:var(--surface-muted);color:var(--muted);text-align:center;border-radius:.5rem;padding:1rem}.table-badge{background:var(--surface-muted);color:var(--text);border-radius:999px;padding:.2rem .6rem;font-size:.8rem}.diff-view{flex-direction:column;gap:1.25rem;display:flex}.diff-snippet{background:var(--surface-muted);border-radius:.65rem;padding:.75rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.85rem;overflow-x:auto}.diff-line{gap:.75rem;padding:.1rem 0;display:flex}.diff-line-number{color:var(--muted);text-align:right;min-width:3.5rem}.diff-line-text{white-space:pre-wrap;flex:1}.diff-line-changed{background:#3b82f626;border-radius:.4rem;margin-left:-.4rem;padding-left:.4rem}@media (width<=768px){.app-header{flex-wrap:wrap;padding:.75rem 1.2rem}.app-nav{width:100%}.app-user{justify-content:space-between;width:100%}.app-main{padding:1.5rem 1rem 2.5rem}.sticky-tabs{top:6.2rem}.sticky-norm-toolbar{top:10.2rem}}
