:root{
  --ink:#0f1b2d;--body:#465a75;--muted:#7287a3;--line:#e2e8f1;--tint:#f6f8fb;--us:#2563eb;--us-bg:#eef4ff;--us-ln:#c3d8fb;
  --crit:#b91c1c;--crit-bg:#fef2f2;--crit-ln:#f8caca;--high:#c2410c;--high-bg:#fff4ec;--high-ln:#fbd5bb;
  --med:#a16207;--med-bg:#fdf9e7;--med-ln:#eadca5;--low:#2f7a4f;--low-bg:#f0f8f3;--low-ln:#c7e5d2;--r:12px;
}
*{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
nav{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
nav .in{max-width:1240px;margin:0 auto;padding:11px 28px;display:flex;gap:14px;align-items:center}
nav b{font-size:14px}
.grow{flex:1}
.muted{color:var(--muted)}
.small{font-size:13px}
.hidden{display:none!important}
.wrap{max-width:1240px;margin:0 auto;padding:28px 28px 80px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px}
.narrow{max-width:560px;margin:60px auto}
.eyebrow{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--us);background:var(--us-bg);border:1px solid var(--us-ln);padding:4px 11px;border-radius:999px}
h1{font-size:30px;line-height:1.15;margin:14px 0 6px;letter-spacing:-.02em}
h2{font-size:18px;margin:0 0 14px}
h4{margin:0 0 6px;font-size:15px}
.sub{color:var(--body);margin:0 0 18px;max-width:72ch}
.hint{color:var(--muted);font-size:13px}
.err{color:var(--crit);font-size:14px;min-height:1em}
form{display:flex;gap:10px}
input,textarea,select{width:100%;font:inherit;color:var(--ink);border:1px solid #cfd9e6;border-radius:9px;padding:9px 11px;background:#fff}
textarea{resize:vertical;font:13.5px/1.5 ui-monospace,Menlo,Consolas,monospace}
input:focus,textarea:focus,select:focus{outline:2px solid var(--us-ln);border-color:var(--us)}
label{display:block;font-weight:600;font-size:13.5px;margin:14px 0 6px}
button{font:inherit;cursor:pointer;border-radius:9px;border:1px solid #cfd9e6;background:#fff;padding:9px 16px}
button.primary{background:var(--us);border-color:var(--us);color:#fff;font-weight:600;white-space:nowrap}
button.primary:disabled{opacity:.55;cursor:wait}
button.link{border:none;background:none;color:var(--us);padding:4px}
button.ex{font-size:12.5px;padding:4px 10px;margin:3px 4px 3px 0;border-radius:999px;background:var(--tint)}
button.ex:hover{border-color:var(--us);color:var(--us)}
.hero{margin-bottom:18px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:12px}
@media(max-width:980px){.grid2,.grid3{grid-template-columns:1fr}}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.actions{display:flex;align-items:center;gap:14px;margin-top:18px}
.examples{margin-bottom:4px}
.result.empty{display:flex;align-items:center;justify-content:center;min-height:300px;background:var(--tint)}
.overall{display:flex;gap:16px;align-items:center;border-radius:10px;padding:14px 16px;border:1px solid}
.overall .big{font:800 44px/1 -apple-system,Segoe UI,Roboto,sans-serif;min-width:70px;text-align:center}
.overall .lvl{font-weight:700;font-size:17px}
.overall.critical{background:var(--crit-bg);border-color:var(--crit-ln);color:var(--crit)}
.overall.high{background:var(--high-bg);border-color:var(--high-ln);color:var(--high)}
.overall.medium{background:var(--med-bg);border-color:var(--med-ln);color:var(--med)}
.overall.low{background:var(--low-bg);border-color:var(--low-ln);color:var(--low)}
.overall .small{color:var(--body)}
.summary{margin:14px 0 6px;color:var(--ink)}
.flag{background:var(--crit-bg);border:1px solid var(--crit-ln);color:var(--crit);border-radius:8px;padding:8px 12px;font-size:14px;font-weight:600}
.chips{margin:6px 0 4px}
.chip{display:inline-block;font-size:12px;background:var(--tint);border:1px solid var(--line);border-radius:999px;padding:2px 9px;margin:2px 4px 2px 0;color:var(--body)}
.risk{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:12px}
.risk.critical{border-left-color:var(--crit)}.risk.high{border-left-color:var(--high)}.risk.medium{border-left-color:var(--med)}.risk.low{border-left-color:var(--low)}
.rh{display:flex;gap:10px;align-items:center}
.rid{font:700 12px ui-monospace,Menlo,monospace;color:var(--muted)}
.pill{font:700 11px ui-monospace,Menlo,monospace;padding:3px 9px;border-radius:999px;border:1px solid}
.pill.critical{color:var(--crit);background:var(--crit-bg);border-color:var(--crit-ln)}
.pill.high{color:var(--high);background:var(--high-bg);border-color:var(--high-ln)}
.pill.medium{color:var(--med);background:var(--med-bg);border-color:var(--med-ln)}
.pill.low{color:var(--low);background:var(--low-bg);border-color:var(--low-ln)}
.bars{margin:10px 0 4px}
.bar{display:grid;grid-template-columns:78px 1fr 32px;gap:10px;align-items:center;font-size:12.5px;color:var(--body);margin:3px 0}
.bar b{text-align:right;font:600 12px ui-monospace,Menlo,monospace;color:var(--ink)}
.track{height:7px;background:var(--tint);border-radius:9px;overflow:hidden;border:1px solid var(--line)}
.fill{height:100%;border-radius:9px}
.fill.critical{background:var(--crit)}.fill.high{background:var(--high)}.fill.medium{background:#d4a017}.fill.low{background:#5fae80}.fill.none{width:0}
.reason{margin:8px 0 4px;font-size:14px}
.ev{margin:4px 0;padding-left:18px;font-size:13px;color:var(--body)}
details{margin-top:6px;font-size:13px}
summary{cursor:pointer;color:var(--us)}
.hits{padding-left:18px;margin:6px 0}
.hits li{margin:5px 0}
code{font:12px ui-monospace,Menlo,monospace;background:var(--tint);border-radius:4px;padding:1px 4px;word-break:break-word}
.foot{margin-top:14px}
.about{margin-top:22px}
.layer{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--tint)}
.layer .n{font:700 10.5px ui-monospace,Menlo,monospace;letter-spacing:.1em;color:var(--us);margin-bottom:6px}
.layer p{margin:0;font-size:13.5px;color:var(--body)}
.risks-legend{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;font-size:13.5px;color:var(--body);margin-top:10px}
@media(max-width:780px){.risks-legend{grid-template-columns:1fr}}
