:root{--bg:#f4f6fb;--surface:#fff;--surface-2:#f8fafc;--border:#e3e8f0;--text:#0f172a;--muted:#64748b;--brand:#1d4ed8;--brand-600:#2563eb;--brand-50:#eff6ff;--sidebar:#0b1735;--sidebar-text:#c7d2fe;--critical:#7f1d1d;--high:#dc2626;--medium:#d97706;--low:#2563eb;--info:#64748b;--ok:#059669;--radius:12px;--shadow:0 1px 2px #0f172a0a, 0 4px 16px #0f172a0d;color:var(--text);background:var(--bg);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:var(--brand-600);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 4px;font-size:22px}h2{margin:0 0 12px;font-size:16px}h3{margin:0 0 8px;font-size:14px}code,pre{font-family:JetBrains Mono,Consolas,monospace;font-size:12px}pre{color:#e2e8f0;background:#0f172a;border-radius:8px;max-height:480px;padding:12px;overflow:auto}.shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:var(--sidebar-text);flex-direction:column;gap:4px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:#fff;align-items:center;gap:10px;padding:4px 8px 18px;font-size:16px;font-weight:700;display:flex}.brand small{color:var(--sidebar-text);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:500;display:block}.nav-section{text-transform:uppercase;letter-spacing:.06em;color:#7c8dbf;margin:14px 8px 4px;font-size:11px}.nav a{color:var(--sidebar-text);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;display:flex}.nav a:hover{background:#ffffff0f;text-decoration:none}.nav a.active{background:var(--brand);color:#fff}.sidebar .spacer{flex:1}.main{width:100%;max-width:1400px;padding:24px 32px 48px}.topbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.subtitle{color:var(--muted);margin:0}.demo-banner{color:#78350f;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;margin-bottom:16px;padding:8px 12px;font-weight:500}.grid{gap:16px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.card.flush{padding:0;overflow:hidden}.card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.stat .value{margin-top:4px;font-size:28px;font-weight:700}.stat .hint{color:var(--muted);font-size:12px}@media (width<=1100px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:1fr}}@media (width<=800px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.grid.cols-2{grid-template-columns:1fr}.main{padding:16px}}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2);border-bottom:1px solid var(--border);padding:10px 14px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 14px}tr:last-child td{border-bottom:0}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--brand-50)}.truncate{text-overflow:ellipsis;white-space:nowrap;max-width:360px;overflow:hidden}.badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.sev-critical{color:var(--critical);background:#fee2e2}.sev-high{color:var(--high);background:#fee2e2}.sev-medium{color:#92400e;background:#fef3c7}.sev-low{color:#1e40af;background:#dbeafe}.sev-info{color:#475569;background:#f1f5f9}.st-open,.st-reopened{color:#991b1b;background:#fee2e2}.st-acknowledged,.st-in_progress,.st-queued,.st-running,.st-pending{color:#3730a3;background:#e0e7ff}.st-fixed,.st-completed,.st-done,.st-active{color:#065f46;background:#d1fae5}.st-accepted_risk,.st-false_positive,.st-partial,.st-skipped,.st-discovered,.st-pending_approval,.st-wont_fix{color:#334155;background:#f1f5f9}.st-failed,.st-timeout,.st-cancelled,.st-suspended,.st-archived{color:#7f1d1d;background:#fee2e2}.kev{color:#fff;background:#7f1d1d}.prio{color:#fff;background:#0f172a}label{color:#334155;margin-bottom:4px;font-size:12px;font-weight:600;display:block}input,select,textarea{width:100%;font:inherit;color:var(--text);background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:9px 11px}input:focus,select:focus,textarea:focus{border-color:var(--brand-600);outline:2px solid #bfdbfe}textarea{resize:vertical;min-height:80px}.field{margin-bottom:12px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row>.field{flex:1;min-width:160px}.checkbox{align-items:flex-start;gap:8px;font-weight:500;display:flex}.checkbox input{width:auto;margin-top:3px}button,.btn{background:var(--brand);color:#fff;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-weight:600;display:inline-flex}button:hover{background:var(--brand-600)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{color:var(--text);background:#fff;border-color:#cbd5e1}button.secondary:hover{background:var(--surface-2)}button.danger{background:#b91c1c}button.link{color:var(--brand-600);background:0 0;border:0;padding:0}.filters{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.filters select,.filters input{width:auto;min-width:150px}.alert{border-radius:8px;margin-bottom:12px;padding:10px 12px}.alert.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.alert.success{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.alert.info{background:var(--brand-50);color:#1e3a8a;border:1px solid #bfdbfe}.muted{color:var(--muted)}.small{font-size:12px}.mono{word-break:break-all;font-family:JetBrains Mono,Consolas,monospace;font-size:12px}.empty{text-align:center;color:var(--muted);padding:32px}.spinner{border:2px solid #c7d2fe;border-top-color:var(--brand);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.progress{background:#e2e8f0;border-radius:999px;height:8px;overflow:hidden}.progress>div{background:var(--brand);height:100%;transition:width .4s}details{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;margin-top:10px;padding:8px 12px}details summary{cursor:pointer;font-weight:600}.kv{grid-template-columns:170px 1fr;gap:6px 12px;display:grid}.kv dt{color:var(--muted);font-weight:600}.kv dd{margin:0}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--border);padding:8px 0 8px 18px;position:relative}.timeline li:before{content:"";background:var(--brand);border-radius:50%;width:10px;height:10px;position:absolute;top:13px;left:-6px}.timeline li.fixed:before{background:var(--ok)}.timeline li.reopened:before,.timeline li.detected:before{background:var(--high)}.auth-wrap{background:radial-gradient(circle at 20% 20%,#1e3a8a 0,#0b1735 55%);place-items:center;min-height:100vh;padding:16px;display:grid}.auth-card{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:32px;box-shadow:0 20px 60px #00000059}.auth-card .brand{color:var(--text);padding:0 0 18px}.auth-card .brand small{color:var(--muted)}.score{align-items:center;gap:18px;display:flex}.score-ring{width:104px;height:104px}.grade{background:var(--brand-50);color:var(--brand);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}.action-list{margin:0;padding:0;list-style:none}.action-list li{border-bottom:1px solid var(--border);gap:14px;padding:14px 0;display:flex}.action-list li:last-child{border-bottom:0}.action-num{background:var(--brand);color:#fff;border-radius:50%;flex:0 0 28px;place-items:center;height:28px;font-weight:700;display:grid}.bars{flex-direction:column;gap:8px;display:flex}.bar-row{grid-template-columns:110px 1fr 48px;align-items:center;gap:10px;font-size:13px;display:grid}.bar-track{background:#eef2f7;border-radius:999px;height:10px;overflow:hidden}.bar-fill{border-radius:999px;height:100%}
