:root{--bg:#fafaf7;--fg:#1d1f24;--mut:#5d6470;--line:#e3e3dc;--acc:#0b7a5c;--acc2:#e9f6f1;--warn:#a15c00;--bad:#b3261e;--card:#fff}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg)}
a{color:var(--acc)}.wrap{max-width:1180px;margin:0 auto;padding:0 16px}.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.top .wrap{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;padding:10px 16px}
.brand{font-weight:800;font-size:1.25rem;text-decoration:none;color:var(--fg)}.brand span{color:var(--acc)}
nav{display:flex;flex-wrap:wrap;gap:4px 14px}nav a{text-decoration:none;color:var(--mut);font-size:.95rem}nav a[aria-current]{color:var(--fg);font-weight:600}
h1{font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.15;margin:28px 0 8px}h2{margin-top:32px}.lede{font-size:1.1rem;color:var(--mut);max-width:760px}
.small{font-size:.85rem;color:var(--mut)}.stats{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.stat b{display:block;font-size:1.4rem}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin:16px 0}
.filters label{font-size:.8rem;color:var(--mut);display:flex;flex-direction:column;gap:3px}.filters .chk{flex-direction:row;align-items:center;gap:6px;font-size:.9rem;color:var(--fg)}
input,select,textarea,button{font:inherit}input,select,textarea{padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;width:100%}.chk input{width:auto}
button{background:var(--acc);color:#fff;border:0;border-radius:8px;padding:9px 16px;cursor:pointer}button:hover,.btn:hover{filter:brightness(1.1)}
.btn{display:inline-block;background:var(--acc);color:#fff;text-decoration:none;font-weight:600;border-radius:8px;padding:10px 18px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--card)}
table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
thead th{background:#f3f4ef;position:sticky;top:0;white-space:nowrap}th[data-sort]{cursor:pointer}th[data-sort]:after{content:" ↕";color:#aaa}th.asc:after{content:" ↑";color:var(--fg)}th.desc:after{content:" ↓";color:var(--fg)}
tbody tr:hover{background:#fbfbf8}td.name a{font-weight:600}.pill{display:inline-block;padding:1px 8px;border-radius:99px;font-size:.78rem;white-space:nowrap;border:1px solid transparent}
.yes{background:#e3f5ec;color:#0b6b4f}.no{background:#fde8e6;color:var(--bad)}.unk{background:#eee;color:#666}.any{background:#e8f0fd;color:#1f4fa8}.cond{background:#fff3df;color:var(--warn)}
.low{background:#e3f5ec;color:#0b6b4f}.med{background:#fff3df;color:var(--warn)}.high{background:#fde8e6;color:var(--bad)}
.st-closed,.st-no_commercial_tier_seen{opacity:.7}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin:14px 0}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}dl{display:grid;grid-template-columns:minmax(120px,190px) 1fr;gap:6px 14px;margin:0}dt{color:var(--mut)}dd{margin:0}
.aff{border:2px dashed #c9c9bd;border-radius:12px;padding:14px;margin:20px 0;background:#fffef6}.aff .tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--warn);display:block}
.nl{background:var(--acc2);border-radius:12px;padding:18px;margin:28px 0}.ph-form{display:flex;gap:8px;flex-wrap:wrap;max-width:520px}.ph-form input{flex:1;min-width:200px}
.stack{display:grid;gap:10px;max-width:640px}.stack label{display:grid;gap:4px;font-weight:600;font-size:.92rem}.notice{background:#fff3df;border-left:4px solid var(--warn);padding:10px 14px;border-radius:6px}
.ok{background:#e3f5ec;border-left:4px solid var(--acc);padding:10px 14px;border-radius:6px}.foot{border-top:1px solid var(--line);margin-top:48px;padding:20px 0;color:var(--mut);font-size:.9rem}
.count{color:var(--mut);font-size:.9rem;margin:6px 0}@media(max-width:640px){th,td{padding:7px}.hide-sm{display:none}}