:root{--ground: #fbfbfd;--surface: #ffffff;--ink: #14161a;--muted: #5c6470;--faint: #8b93a1;--rule: #e3e6ec;--rule-strong: #ced4de;--signal: #1f5eff;--signal-wash: #eef3ff;--risk: #b4232b;--added: #1a7f4b;--removed: #b4232b;--sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "Geist Mono", ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--signal);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:var(--mono);font-size:.92em}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.011em}h1{font-size:22px}h2{font-size:15px}.shell{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:center;gap:20px;height:52px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20}.wordmark{font-family:var(--mono);font-size:15px;font-weight:500;color:var(--ink);letter-spacing:-.02em}.wordmark:hover{text-decoration:none}.topbar select{font-family:var(--mono);font-size:13px;color:var(--ink);background:var(--ground);border:1px solid var(--rule-strong);border-radius:5px;padding:4px 8px}.crumbs{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12.5px;color:var(--muted);overflow:hidden;white-space:nowrap}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--signal)}.crumb-sep{color:var(--faint)}main{flex:1;padding:20px;max-width:1600px;width:100%;margin:0 auto}main.wide{max-width:none;padding:0}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:8px}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--rule)}.panel-head .count{font-family:var(--mono);font-size:12px;color:var(--faint)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;font-weight:500;color:var(--muted);padding:8px 16px;border-bottom:1px solid var(--rule);white-space:nowrap}td{padding:9px 16px;border-bottom:1px solid var(--rule);vertical-align:baseline}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--ground)}td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.months{display:flex;flex-direction:column;gap:10px}.month{display:grid;grid-template-columns:190px 1fr;gap:24px;padding:18px 20px;background:var(--surface);border:1px solid var(--rule);border-radius:8px}.month:hover{border-color:var(--rule-strong)}.month-code{font-family:var(--mono);font-size:20px;font-weight:500;letter-spacing:-.02em}.month-date{font-size:12.5px;color:var(--faint);margin-top:2px}.month-figures{display:flex;flex-wrap:wrap;gap:28px;align-items:baseline}.figure-value{font-family:var(--mono);font-size:19px;font-variant-numeric:tabular-nums}.figure-label{font-size:12px;color:var(--muted)}.exploited{color:var(--risk)}.browse{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}.tree{position:sticky;top:68px;max-height:calc(100vh - 88px);overflow:auto;padding:8px}.tree-row{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:none;border-radius:5px;background:none;font:inherit;font-family:var(--mono);font-size:12.5px;color:var(--ink);text-align:left;cursor:pointer}.tree-row:hover{background:var(--ground)}.tree-row.current{background:var(--signal-wash);color:var(--signal)}.tree-row .tally{margin-left:auto;font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}.tree-up{color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--rule)}.filters label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.filters select,.filters input{font:inherit;font-size:13px;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:5px;padding:4px 8px}.filters input{font-family:var(--mono);min-width:170px}.filters .clear{border:none;background:none;font:inherit;font-size:12.5px;color:var(--signal);cursor:pointer;padding:4px}.pager{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--rule);font-size:12.5px;color:var(--muted)}.pager button{font:inherit;font-size:12.5px;padding:4px 10px;border:1px solid var(--rule-strong);border-radius:5px;background:var(--surface);color:var(--ink);cursor:pointer}.pager button:disabled{color:var(--faint);cursor:default}.pager .position{margin-left:auto;font-family:var(--mono);font-variant-numeric:tabular-nums}.severity{font-family:var(--mono);font-size:11.5px;padding:1px 6px;border-radius:4px;border:1px solid var(--rule-strong);color:var(--muted);white-space:nowrap}.severity.critical,.severity.high{color:var(--risk);border-color:currentColor}.delta-added{color:var(--added);font-variant-numeric:tabular-nums}.delta-removed{color:var(--removed);font-variant-numeric:tabular-nums}.case{padding:18px 20px}.case-title{font-size:17px;font-weight:600;letter-spacing:-.011em}.case-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:6px;font-size:12.5px;color:var(--muted)}.case-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:16px}.case-body h3{font-size:12.5px;font-weight:500;color:var(--muted);margin-bottom:4px}.case-body p{margin:0;max-width:68ch}.case-cves{margin-top:18px;padding-top:14px;border-top:1px solid var(--rule)}.cve-row{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;padding:6px 0}.cve-id{font-family:var(--mono);font-weight:500}.cve-why{color:var(--muted);font-size:12.5px;flex:1 1 320px}.function-head{display:flex;flex-wrap:wrap;gap:16px;align-items:baseline;padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--rule)}.function-name{font-family:var(--mono);font-size:16px;font-weight:500}.function-facts{display:flex;flex-wrap:wrap;gap:18px;margin-left:auto;font-size:12.5px;color:var(--muted);font-family:var(--mono)}.diff-surface{padding:0}.state{padding:40px 20px;text-align:center;color:var(--muted)}.state.error{color:var(--risk)}.empty{padding:28px 16px;color:var(--muted)}.hint{color:var(--faint);font-size:12.5px}.tree-file .unchanged{color:var(--faint)}.tree-file .tally{font-size:11px}
