:root{--bg: #fbfbfc;--bg2: #f4f5f8;--surface: #ffffff;--line: #e8eaef;--border: var(--line);--ink: #101418;--ink2: #444c5b;--muted: #697586;--accent: #4f46e5;--accent-soft: #eef0ff;--accent-d: #3730a3;--good: #16a34a;--warn: #ea580c;--crit: #dc2626;--high: #ea580c;--med: #ca8a04;--low: #16a34a;--radius: 12px;--shadow: 0 1px 2px rgba(16,20,24,.05);--shadow-lg: 0 8px 28px rgba(16,20,24,.12);--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", monospace}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:4px}::selection{background:#e0e7ff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d7dae2;border-radius:8px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}.shell{display:flex;min-height:100vh}.side{width:232px;background:var(--surface);border-right:1px solid var(--line);padding:16px 12px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column}.side .logo{display:flex;align-items:center;gap:9px;padding:4px 10px 16px;font-weight:700;font-size:15px;color:var(--ink);letter-spacing:-.01em}.side .logo .mark{width:27px;height:27px;border-radius:8px;background:linear-gradient(135deg,#4f46e5,#7c6cf5);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;font-family:var(--mono)}.side .logo .env{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:2px 6px}.side .grp{padding:14px 12px 5px;font-size:9.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600;font-family:var(--mono)}.side a.nav{display:flex;align-items:center;gap:9px;padding:7px 10px;color:var(--ink2);font-size:13px;font-weight:500;border-radius:8px;transition:background .15s,color .15s}.side a.nav svg{width:15px;height:15px;stroke:#8a93a6;flex:none}.side a.nav:hover{background:var(--bg2);color:var(--ink);text-decoration:none}.side a.nav.on{background:var(--accent-soft);color:var(--accent-d);font-weight:600}.side a.nav.on svg{stroke:var(--accent)}.side a.nav .ct{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--muted);background:var(--bg2);border-radius:5px;padding:1px 7px}.side a.nav.on .ct{background:#e0e7ff;color:var(--accent)}.side a.nav .dot{display:none}.side .me{margin-top:auto;display:flex;align-items:center;gap:9px;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--surface)}.side .me .av{width:28px;height:28px;border-radius:50%;flex:none;background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}.side .me .who-txt{font-size:12px;line-height:1.3;min-width:0}.side .me .who-txt b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side .me .who-txt small{color:var(--muted);font-family:var(--mono);font-size:10px}.main{flex:1;padding:0 30px 56px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 15px;border-bottom:1px solid var(--line);margin-bottom:22px}.topbar .crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.topbar .crumb b{color:var(--ink);font-weight:600}.topbar h1{font-size:20px;margin:0;font-weight:700;letter-spacing:-.02em}.topbar .who{display:flex;gap:8px;align-items:center}.chip-user{background:var(--accent-soft);color:var(--accent-d);padding:5px 12px;border-radius:99px;font-weight:600;font-size:12px}.kbd{font-family:var(--mono);font-size:10px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:2px 6px;color:var(--muted);background:var(--surface)}.tsearch{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 12px;width:220px;color:var(--muted);font-size:12.5px;transition:border-color .15s,box-shadow .15s}.tsearch:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #4f46e51f}.tsearch input{border:none;outline:none;background:none;font:inherit;font-size:12.5px;color:var(--ink);width:100%}.tsearch .kbd{margin-left:auto;flex:none}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px 17px;transition:box-shadow .18s,transform .18s}.stat:hover{box-shadow:0 4px 14px #1014180f;transform:translateY(-1px)}.stat .n{font-size:27px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:5px}.stat .l{font-size:11px;font-weight:500;color:var(--muted)}.stat.c-crit{border-top:2.5px solid var(--crit)}.stat.c-crit .n{color:var(--crit)}.stat.c-high{border-top:2.5px solid var(--high)}.stat.c-high .n{color:var(--high)}.stat.c-zero{border-top:2.5px solid #e0245e}.stat.c-zero .n{color:#e0245e}.stat.c-exp{border-top:2.5px solid #b91c63}.stat.c-exp .n{color:#b91c63}.stat.c-total{border-top:2.5px solid var(--accent)}.stat.c-total .n{color:var(--accent)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px}.panel h2{margin:0 0 12px;font-size:13.5px;font-weight:600;letter-spacing:-.01em}.panel h3{font-size:12.5px;font-weight:600}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:600;letter-spacing:.01em}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.b-crit{background:#fef2f2;color:var(--crit)}.b-high{background:#fff7ed;color:var(--high)}.b-med{background:#fefce8;color:var(--med)}.b-low{background:#f0fdf4;color:var(--low)}.b-zero{background:#fdf2f8;color:#be185d}.b-kev{background:#fef2f2;color:#b91c1c}.b-poc{background:#f5f3ff;color:#6d28d9}.b-src{background:var(--bg2);color:var(--ink2);border:1px solid var(--line);margin:0 4px 4px 0;font-weight:500}.b-src:before{display:none}.b-src.b-red{background:#fef2f2;color:var(--crit);border-color:#fecaca}.b-status{padding:3px 11px}.b-pending{background:var(--bg2);color:var(--muted)}.b-accepted{background:#f0fdf4;color:var(--good)}.b-rejected{background:#fef2f2;color:var(--crit)}.b-sent{background:#f0fdf4;color:var(--good)}.b-failed{background:#fef2f2;color:var(--crit)}.b-draft{background:var(--bg2);color:var(--muted)}.b-log{background:var(--accent-soft);color:var(--accent-d)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;padding:10px 16px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line)}.tbl td{padding:11px 16px;border-bottom:1px solid var(--bg2);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:#fafafc}.mono{font-family:var(--mono);font-size:11.5px}.cve-id{color:var(--accent);font-weight:600;font-family:var(--mono);font-size:12px}.cve-id:hover{text-decoration:underline}.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 14px;font-size:12.5px;font-weight:600;color:var(--ink2);transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:#c9cedb;color:var(--ink);text-decoration:none;box-shadow:0 1px 3px #10141814}.btn.pri{background:var(--ink);border-color:var(--ink);color:#fff}.btn.pri:hover{background:#2a3140;border-color:#2a3140;color:#fff}.btn.ok{background:var(--good);border-color:var(--good);color:#fff}.btn.ok:hover{background:#12833d;border-color:#12833d;color:#fff}.btn.danger{color:var(--crit)}.btn.danger:hover{border-color:#fecaca;background:#fef2f2;color:var(--crit)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn.sm{padding:4px 11px;font-size:11.5px;border-radius:7px}a.btn{text-decoration:none}.inp,select.inp,textarea.inp{width:100%;padding:8px 11px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px;background:var(--surface);color:var(--ink);transition:border-color .15s,box-shadow .15s}.inp::placeholder{color:#9aa3b5}.inp:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f46e51f}select.inp{cursor:pointer}.field{margin-bottom:12px}.field label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:5px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.filters{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;align-items:center}.filters .inp{width:auto;min-width:140px}.cve-card{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--crit);border-radius:var(--radius);padding:14px 18px;margin-bottom:12px;transition:box-shadow .15s}.cve-card:hover{box-shadow:var(--shadow)}.cve-card.high{border-left-color:var(--high)}.cve-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.cve-head .id{font-family:var(--mono);font-weight:700;font-size:13.5px}.cve-body{font-size:13px;color:var(--ink2);line-height:1.55;margin:6px 0}.cve-foot{font-size:12px;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap}.src-chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 14px}.alert{padding:10px 14px;border-radius:8px;font-size:12.5px;margin-bottom:12px;border:1px solid transparent}.alert.err{background:#fef2f2;color:#991b1b;border-color:#fecaca}.alert.ok{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.alert.info{background:var(--accent-soft);color:var(--accent-d);border-color:#e0e7ff}.muted{color:var(--muted);font-size:12.5px}.empty{text-align:center;color:var(--muted);padding:38px 0;font-size:13px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#10141873;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:50;animation:fade .15s}@keyframes fade{0%{opacity:0}}.modal{background:var(--surface);border-radius:14px;width:min(880px,94vw);max-height:88vh;overflow-y:auto;padding:22px 26px;box-shadow:var(--shadow-lg);animation:pop .18s cubic-bezier(.2,.9,.3,1.2)}@keyframes pop{0%{transform:scale(.97) translateY(6px);opacity:0}}.modal h3{margin-top:0;font-size:16px;letter-spacing:-.01em}.modal h4,.panel h4{font-size:12px;font-weight:600;color:var(--ink2);margin:16px 0 8px;letter-spacing:.02em}.modal p{margin:6px 0 10px;line-height:1.55}.bar-track{background:var(--bg2);border-radius:6px;height:8px;overflow:hidden}.bar-fill{height:100%;background:var(--accent);border-radius:6px;transition:width .5s cubic-bezier(.2,.8,.2,1)}.bars{display:flex;align-items:flex-end;gap:6px;height:96px;padding-top:6px}.bars .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.bars .v{background:linear-gradient(180deg,#8b83f3,var(--accent));width:100%;border-radius:4px 4px 0 0;min-height:3px;transition:filter .15s}.bars .col:hover .v{filter:brightness(1.12)}.bars .d{font-size:9px;color:var(--muted);font-family:var(--mono);transform:rotate(-45deg);white-space:nowrap}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 70% -10%,#eef0ff,transparent),linear-gradient(160deg,#fbfbfc,#f0f1f7)}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:34px 38px;width:380px;box-shadow:var(--shadow-lg)}.login-card .mark-lg{width:40px;height:40px;margin:0 auto 12px;border-radius:11px;background:linear-gradient(135deg,#4f46e5,#7c6cf5);color:#fff;display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:15px}.login-card h1{text-align:center;font-size:21px;margin:0 0 4px;letter-spacing:-.02em}.login-card .sub{text-align:center;color:var(--muted);font-size:12.5px;margin-bottom:22px}.spin{display:inline-block;width:14px;height:14px;border:2px solid #dfe3ec;border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px}@keyframes sp{to{transform:rotate(360deg)}}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--line)}.tabs button{background:none;border:none;padding:9px 14px;font-size:13px;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s}.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}@media (max-width: 900px){.side{width:58px;padding:16px 8px}.side .nav span.lbl,.side .grp,.side .logo span.lbl,.side .logo .env,.side .me .who-txt,.side .me .btn{display:none}.side a.nav{justify-content:center}.side .me{justify-content:center;border:none;padding:4px}}.zd-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;margin-top:10px}.zd-col{min-width:214px;flex:0 0 214px;background:var(--bg2);border-radius:10px;padding:10px}.zd-col-h{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:2px solid var(--line);padding-bottom:7px;margin-bottom:9px;font-family:var(--mono)}.zd-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}.zd-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10141814;border-color:#c9cedb}.zd-timeline{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto}.zd-ev{border-left:2px solid var(--line);padding:4px 10px}.zd-ev-head{display:flex;gap:6px;font-size:12px;align-items:baseline}.zd-ev-note{font-size:12px;color:var(--muted);margin-top:2px}html{scroll-behavior:smooth}.btn{display:inline-flex;align-items:center;gap:5px}.btn.sm{gap:4px}table.tbl thead th{position:sticky;top:0;background:var(--surface);z-index:2;box-shadow:0 1px 0 var(--line)}.modal table.tbl thead th{top:0}.zd-flow{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}.zd-step{display:inline-flex;align-items:center;gap:7px;padding:3px 10px 3px 4px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:20px;font-size:11.5px;color:var(--ink2);background:var(--surface)}.zd-step b{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:700}
