:root{--bg:#fbfbfa;--fg:#1d1f21;--mut:#5d6470;--line:#e3e4e1;--card:#fff;--acc:#2f5fd0;--ok:#1f7a3f;--okb:#e5f4ea;--warn:#9a5b00;--warnb:#fbf0dc;--bad:#a8323a;--badb:#f9e3e4;--unk:#6b6f78;--unkb:#eef0f2;--star:#b07800;--starb:#fff3cf;--code:#f2f2ef;--fw:1200px}
@media (prefers-color-scheme:dark){:root{--bg:#121417;--fg:#e4e6ea;--mut:#9aa1ad;--line:#2a2e35;--card:#181b20;--acc:#7aa2ff;--ok:#6fd294;--okb:#16301f;--warn:#f0b35a;--warnb:#33270f;--bad:#ff8a93;--badb:#3a1a1d;--unk:#a3a9b3;--unkb:#23272e;--star:#f2c14e;--starb:#3a2f10;--code:#1f2329}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Noto Sans CJK SC",sans-serif}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
code,pre{font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--code);border-radius:4px}
code{padding:0 .25em}pre{padding:.7em;overflow:auto;white-space:pre-wrap;word-break:break-word}
main{max-width:var(--fw);margin:0 auto;padding:16px}
h1{font-size:1.6em;margin:.3em 0 .2em}h2{font-size:1.25em;margin:1.4em 0 .4em}h3{font-size:1.05em;margin:1.1em 0 .3em;color:var(--mut);text-transform:capitalize}
small{color:var(--mut);font-weight:normal}
.lede{color:var(--mut);margin:.2em 0 1em;max-width:70ch}.stats,.needs{margin:.3em 0}
header.top{position:sticky;top:0;z-index:5;display:flex;gap:12px;align-items:center;padding:8px 16px;background:var(--card);border-bottom:1px solid var(--line)}
.brand{font-weight:700;font-size:1.2em;color:var(--fg);letter-spacing:.02em}
form.q{flex:1;position:relative;max-width:620px}
form.q input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit}
.qr{position:absolute;left:0;right:0;top:100%;margin-top:4px;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:70vh;overflow:auto}
.qr a{display:block;padding:6px 10px;color:var(--fg);border-bottom:1px solid var(--line)}.qr a:hover,.qr a.sel{background:var(--code);text-decoration:none}
.qr small{display:block}
nav.util{display:flex;gap:12px;font-size:.92em;white-space:nowrap}
nav.topics{display:flex;flex-wrap:wrap;gap:4px 14px;padding:6px 16px;border-bottom:1px solid var(--line);font-size:.9em;background:var(--bg)}
footer{max-width:var(--fw);margin:2em auto;padding:16px;color:var(--mut);font-size:.88em;border-top:1px solid var(--line)}
.hero h1{font-size:1.9em}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:1em 0}
.tile{display:block;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg)}
.tile:hover{border-color:var(--acc);text-decoration:none}.tile b{display:block;font-size:1.05em}.tile span{color:var(--ok);font-size:.88em}.tile p{margin:.3em 0 0;color:var(--mut);font-size:.9em}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
ul.plain{padding-left:1.1em}ul.plain .d{color:var(--mut);font-variant-numeric:tabular-nums}
ul.list{list-style:none;padding:0;margin:0}
li.e{padding:7px 0;border-bottom:1px solid var(--line)}li.e .n{font-weight:600}
.s{color:var(--mut);font-size:.9em;margin-top:2px;overflow-wrap:anywhere}
.price{font-variant-numeric:tabular-nums;font-weight:600}
.b{display:inline-block;font-size:.74em;line-height:1.5;padding:0 .45em;margin:0 .15em .1em 0;border-radius:999px;background:var(--unkb);color:var(--unk);white-space:nowrap;vertical-align:1px}
.b.v-qualifies{background:var(--starb);color:var(--star);font-weight:700}
.b.v-qualifies-with-caveat{background:var(--okb);color:var(--ok)}
.b.v-trial-only,.b.v-paid-only{background:var(--warnb);color:var(--warn)}
.b.v-fails-identity,.b.v-fails-egress,.b.v-fails-quota,.b.v-dead{background:var(--badb);color:var(--bad)}
.b.ok{background:var(--okb);color:var(--ok)}.b.warn{background:var(--warnb);color:var(--warn)}.b.unk{background:var(--unkb);color:var(--unk)}
.b.r{font-family:ui-monospace,Menlo,Consolas,monospace}.b.r-measured,.b.r-documented{background:var(--okb);color:var(--ok)}
.b.fr:empty{display:none}.b.fr.fresh{background:var(--okb);color:var(--ok)}.b.fr.stale{background:var(--warnb);color:var(--warn)}
.b.t{background:var(--code);color:var(--fg)}.b.bind{background:transparent;border:1px solid var(--line)}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:.6em 0 1em;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.chips button{font:inherit;font-size:.88em;padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer}
.chips button[aria-pressed=true]{background:var(--acc);border-color:var(--acc);color:#fff}
.chips .ifilter{font:inherit;font-size:.88em;padding:3px 8px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg);min-width:180px}
.chips .count{color:var(--mut);font-size:.85em;margin-left:auto}
html.f-nocard [data-f]:not([data-f~=nocard]),html.f-nophone [data-f]:not([data-f~=nophone]),html.f-anon [data-f]:not([data-f~=anon]),
html.f-verified [data-f]:not([data-f~=verified]),html.f-fresh [data-f]:not([data-f~=fresh]),[data-f].ihide{display:none}
section.rec{scroll-margin-top:96px;margin:1.2em 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
section.rec:target{border-color:var(--acc);box-shadow:0 0 0 2px var(--acc) inset}
section.rec h2{margin:.1em 0 .3em}.meta{color:var(--mut);font-size:.88em;margin:.2em 0 .6em;overflow-wrap:anywhere}
table{border-collapse:collapse;width:100%}
table.kv th{text-align:left;vertical-align:top;width:150px;padding:6px 10px 6px 0;color:var(--mut);font-weight:600;font-size:.9em}
table.kv td{padding:6px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}table.kv ul{margin:0;padding-left:1.1em}
table.kv li.binding{font-weight:600}.sub{color:var(--mut);font-size:.88em}.na{color:var(--unk);font-style:italic}
table.ev th,table.ev td,table.need th,table.need td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.92em;overflow-wrap:anywhere}
table.ev td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}table.need td:first-child{color:var(--mut)}
details{margin:.6em 0}summary{cursor:pointer;color:var(--acc)}pre.json{max-height:480px}
.toc{list-style:none;padding:0}.toc li{padding:3px 0}.crumb{color:var(--mut);font-size:.88em;margin:0}
.warnbox{background:var(--warnb);color:var(--warn);padding:6px 10px;border-radius:8px}
article.chg{border-bottom:1px solid var(--line);padding:.4em 0}article.chg h2{font-size:1.05em;margin:.6em 0 .2em}
pre.md{background:transparent;padding:0;font:14px/1.5 system-ui,sans-serif}
.cmp th{position:sticky;left:0;background:var(--card)}.cmp td,.cmp th{border:1px solid var(--line);padding:6px;vertical-align:top;font-size:.9em}
.hit small{color:var(--mut)}
@media (max-width:720px){header.top{flex-wrap:wrap}nav.util{order:3;width:100%;overflow:auto}table.kv th{width:100px}main{padding:12px}}
