/* fshy wiki: one stylesheet, system fonts, no build step. Tokens first. */
:root{color-scheme:light dark;--w:72rem;
--bg:#fafbfc;--sf:#fff;--sk:#f2f4f6;--fg:#16181d;--fg2:#394150;--mut:#5b6370;--ln:#e4e7eb;--ln2:#cfd4dc;--acc:#1a56db;--accb:#dde7fc;--ctl:#7b838f;
--q:#137443;--qf:#fff;--ok:#12663a;--okb:#e2f3e9;--wa:#8c4800;--wab:#fcefd9;--pd:#3240a3;--pdb:#e8ebfb;--bad:#a31f2c;--badb:#fbe7e9;--dd:#575e69;--ddb:#eaecef;
--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
--i1:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12 3 2.5 8 12 13l9.5-5z'/%3E%3Cpath d='m2.5 12.5 9.5 5 9.5-5M2.5 17l9.5 5 9.5-5'/%3E%3C/svg%3E");
--i2:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E")}
@media (prefers-color-scheme:dark){:root{--bg:#0e1013;--sf:#15181d;--sk:#1d2127;--fg:#e8eaee;--fg2:#c3c9d2;--mut:#99a1ad;--ln:#262b33;--ln2:#373e49;--acc:#82aaff;--accb:#1f3157;--ctl:#7a8390;
--q:#4bc58a;--qf:#04170c;--ok:#7dd5a2;--okb:#13281c;--wa:#f0b866;--wab:#2d2211;--pd:#aeb8ff;--pdb:#1d2142;--bad:#ff9ca4;--badb:#36191d;--dd:#a7aeb8;--ddb:#23272e}}
*,::before,::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{display:flex;flex-direction:column;min-height:100vh;margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 var(--sans)}
[hidden]{display:none!important}
a{color:var(--acc);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:2px}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.prose a,.kv a,.lede a,.s a,.sub a,footer a{text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:2px}
h1,h2,h3{line-height:1.25;color:var(--fg);text-wrap:balance}
h1{font-size:clamp(1.625rem,1.2rem + 1.6vw,2.25rem);font-weight:700;letter-spacing:-.02em;margin:.25rem 0 .5rem}
h2{font-size:1.375rem;font-weight:650;letter-spacing:-.01em;margin:2.25rem 0 .75rem}
h3{font-size:1.0625rem;font-weight:650;margin:1.75rem 0 .5rem;color:var(--fg2)}
h2 small,h3 small,summary small{display:inline-block;margin-left:.375rem;padding:0 .5rem;border-radius:999px;background:var(--sk);font-size:.8125rem;font-weight:600;letter-spacing:0;vertical-align:.15em}
p{margin:.5rem 0}small{color:var(--mut)}
code,pre{font-family:var(--mono)}
code{font-size:.85em;padding:.1em .35em;border-radius:4px;background:var(--sk);overflow-wrap:anywhere}
pre{font-size:.8125rem;line-height:1.5;padding:.75rem 1rem;border:1px solid var(--ln);border-radius:8px;background:var(--sk);overflow:auto;white-space:pre-wrap;word-break:break-word}
[id]{scroll-margin-top:1rem}

/* header, search, navigation */
.skip{position:absolute;left:.5rem;top:-4rem;z-index:40;padding:.5rem .75rem;background:var(--sf);border:1px solid var(--ln2);border-radius:6px}
.skip:focus{top:.5rem}
.top,.topics,footer{padding-left:max(1rem,calc(50% - var(--w)/2 + 1rem));padding-right:max(1rem,calc(50% - var(--w)/2 + 1rem))}
.top{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding-top:.625rem;padding-bottom:.625rem;background:var(--sf);border-bottom:1px solid var(--ln)}
.brand{display:inline-flex;align-items:center;gap:.5rem;font-size:1.1875rem;font-weight:750;letter-spacing:-.02em;color:var(--fg)}
.brand:hover{text-decoration:none}
.brand::before{content:"";width:1.375rem;height:1.375rem;background:var(--acc);-webkit-mask:var(--i1) center/contain no-repeat;mask:var(--i1) center/contain no-repeat}
form.q{position:relative;flex:1 1 16rem;max-width:34rem;margin:0}
form.q::before{content:"";position:absolute;left:.75rem;top:50%;width:1rem;height:1rem;margin-top:-.5rem;background:var(--mut);pointer-events:none;-webkit-mask:var(--i2) center/contain no-repeat;mask:var(--i2) center/contain no-repeat}
form.q input{width:100%;height:2.5rem;padding:0 2.5rem 0 2.25rem;border:1px solid var(--ctl);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit;font-size:.9375rem;-webkit-appearance:none;appearance:none}
form.q input::placeholder{color:var(--mut);opacity:1}
form.q input:focus{outline:0;border-color:var(--acc);box-shadow:0 0 0 3px var(--accb);background:var(--sf)}
form.q::after{content:"/";position:absolute;right:.625rem;top:50%;transform:translateY(-50%);padding:.15rem .45rem;border:1px solid var(--ln2);border-bottom-width:2px;border-radius:4px;color:var(--mut);font:600 .75rem/1 var(--mono);pointer-events:none}
form.q:focus-within::after,form.q:has(input:not(:placeholder-shown))::after{display:none}
.qr{position:absolute;left:0;right:0;top:calc(100% + .375rem);z-index:30;max-height:70vh;overflow:auto;padding:.25rem;background:var(--sf);border:1px solid var(--ln2);border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.16)}
.qr a{display:flex;flex-wrap:wrap;align-items:baseline;gap:.125rem .5rem;padding:.5rem .625rem;border-radius:6px;color:var(--fg)}
.qr a:hover,.qr a[aria-selected=true]{background:var(--sk);text-decoration:none}
.qr .v{order:2;margin-left:auto}.qr small{order:3;flex-basis:100%;font-size:.8125rem}
.qr .busy{margin:0;padding:.5rem .625rem;color:var(--mut)}
.qr .all{display:block;margin-top:.25rem;border-top:1px solid var(--ln);border-radius:0 0 6px 6px;color:var(--acc);font-weight:600}
.util{display:flex;gap:.125rem;margin-left:auto;font-size:.875rem}
.util a,.topics a{padding:.3125rem .625rem;border-radius:6px;color:var(--fg2);white-space:nowrap}
.util a:hover,.topics a:hover{background:var(--sk);color:var(--fg);text-decoration:none}
.util a[aria-current]{background:var(--sk);color:var(--fg);font-weight:600}
/* one scrolling line */
.topics{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;gap:.25rem;padding-top:.375rem;padding-bottom:.375rem;background:var(--sf);border-bottom:1px solid var(--ln);font-size:.875rem;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 1.5rem),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 1.5rem),transparent)}
.topics a{border-radius:999px}
.topics a[aria-current]{background:var(--accb);color:var(--acc);font-weight:600}
@media (min-width:48rem){.top{position:sticky;top:0;z-index:20}[id]{scroll-margin-top:5rem}html{scroll-padding-top:4.5rem}.topics{flex-wrap:wrap;overflow:visible;-webkit-mask-image:none;mask-image:none}}
@media (max-width:47.99rem){.util{order:3;width:100%;flex-wrap:wrap}
.qr{position:fixed;left:.5rem;right:.5rem;top:3.5rem}}

/* page frame */
main{display:block;flex:1 0 auto;width:100%;max-width:var(--w);margin:0 auto;padding:1.5rem 1rem 2.5rem}
.crumb{margin:0 0 .25rem;color:var(--mut);font-size:.875rem}
.crumb a{color:var(--mut)}.crumb a:hover{color:var(--acc)}
.lede{max-width:48rem;margin:.25rem 0 1rem;color:var(--fg2);font-size:1.0625rem}
footer{margin-top:1rem;padding-top:1.5rem;padding-bottom:2.5rem;border-top:1px solid var(--ln);background:var(--sf);color:var(--mut);font-size:.8125rem}
footer p{max-width:60rem;margin:.25rem 0}

/* home */
.hero{padding:.75rem 0 .25rem}
.hero h1{font-size:clamp(1.75rem,1.2rem + 2.4vw,2.75rem);max-width:24ch}
.hero .lede{font-size:1.125rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15.5rem),1fr));gap:.75rem;margin:1rem 0 2rem}
.tile{display:flex;flex-direction:column;gap:.3rem;padding:.875rem 1rem;border:1px solid var(--ln);border-radius:10px;background:var(--sf);color:var(--fg2);font-size:.875rem}
.tile:hover{border-color:var(--acc);text-decoration:none;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.tile b{color:var(--fg);font-size:1.0625rem;font-weight:650}
.tile .m{color:var(--mut);font-size:.8125rem;font-variant-numeric:tabular-nums}
.bar{display:block;height:4px;border-radius:2px;background:var(--sk);overflow:hidden}
.bar i{display:block;height:100%;background:var(--q)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:0 2.5rem}
ul.plain{list-style:none;margin:0;padding:0;border-top:1px solid var(--ln)}
ul.plain li{padding:.45rem 0;border-bottom:1px solid var(--ln)}
@media (min-width:40rem){ul.plain.two{columns:2;column-gap:2.5rem}ul.plain.two li{break-inside:avoid}}
.d{margin-right:.5rem;color:var(--mut);font-size:.8125rem;font-variant-numeric:tabular-nums}
dl.legend{display:grid;grid-template-columns:auto 1fr;gap:.375rem .875rem;align-items:baseline;margin:0;font-size:.9375rem}
dl.legend dt{justify-self:start}dl.legend dd{margin:0;color:var(--fg2)}

/* counts and jump links */
.stats{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0;padding:0;list-style:none}
.st{display:flex;flex-direction:column;min-width:7rem;padding:.45rem .875rem;border:1px solid var(--ln);border-left:3px solid var(--ln2);border-radius:8px;background:var(--sf);color:var(--mut);font-size:.8125rem;line-height:1.35}
a.st:hover{border-color:var(--acc);text-decoration:none}
.st b{color:var(--fg);font-size:1.375rem;font-weight:700;font-variant-numeric:tabular-nums}
@media (max-width:40rem){footer a,.crumb a,ul.plain a,.lede a,.key a,.chg a,.prose li>a{display:inline-block;padding:.25rem 0}.stats>*{flex:1 1 4.75rem}.st{min-width:0;height:100%}.tiles.compact{grid-template-columns:1fr 1fr;gap:.5rem}.compact .tile>span:last-child{display:none}}
.st.usable{border-left-color:var(--q)}.st.trial{border-left-color:var(--wa)}.st.paid{border-left-color:var(--pd)}.st.rejected,.st.dead{border-left-color:var(--bad)}
.needs,.jump{margin:.5rem 0;font-size:.875rem;color:var(--mut)}
.needs a,.jump a{display:inline-block;margin-right:.75rem;padding:.125rem 0}
.prose a{overflow-wrap:anywhere}
.needs b,.jump b{margin-right:.5rem;color:var(--fg2)}

/* filter bar */
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem .5rem;margin:1.25rem 0 .5rem;padding:.5rem .625rem;border:1px solid var(--ln);border-radius:10px;background:var(--sf);font-size:.8125rem}
.chips::before{content:"Filter";margin-right:.25rem;color:var(--mut);font-weight:650}
.chips button{padding:.25rem .7rem;border:1px solid var(--ctl);border-radius:999px;background:var(--bg);color:var(--fg2);font:inherit;cursor:pointer}
.chips button:hover{border-color:var(--acc);color:var(--fg)}
.chips button[aria-pressed=true]{background:var(--acc);border-color:var(--acc);color:var(--sf)}
.chips button[aria-pressed=true]::before{content:"\2713\a0"}
.chips .ifilter{flex:1 1 11rem;max-width:16rem;padding:.25rem .625rem;border:1px solid var(--ctl);border-radius:6px;background:var(--bg);color:var(--fg);font:inherit}
.chips .count{margin-left:auto;color:var(--mut);font-variant-numeric:tabular-nums}
.chips .clear{border-style:dashed}
details.key{margin:.25rem 0 1rem;font-size:.875rem}details.key dl{margin:.5rem 0}
html.f-free [data-f]:not([data-f~=free]),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]),html.f-live [data-f]:not([data-f~=live]),[data-f].ihide{display:none}

/* offer rows */
ul.list,ol.list{--lane:7.25rem;list-style:none;margin:0;padding:0;border-top:1px solid var(--ln)}
.list.lm{--lane:5.75rem}.list.ls{--lane:3.75rem}
.e{display:grid;grid-template-columns:var(--lane) minmax(0,1fr) auto;column-gap:1rem;align-items:start;padding:.7rem .25rem;border-bottom:1px solid var(--ln)}
.e>.v{grid-column:1;grid-row:1/span 3;justify-self:start;margin-top:.1rem}
.e>.n{grid-column:-3;grid-row:1;justify-self:start;font-weight:600}
.e>.pr{grid-column:-2;grid-row:1}
.e>.s,.e>.f{grid-column:-3/-1}
ol.rank{counter-reset:r}
ol.rank>.e{counter-increment:r;grid-template-columns:2rem var(--lane) minmax(0,1fr) auto}
ol.rank>.e::before{content:counter(r);grid-column:1;grid-row:1/span 3;padding-top:.1rem;color:var(--mut);font-size:.875rem;font-variant-numeric:tabular-nums;text-align:right}
ol.rank>.e>.v{grid-column:2}
@media (max-width:40rem){.e{grid-template-columns:minmax(0,1fr) auto}ol.rank>.e{grid-template-columns:1.5rem minmax(0,1fr) auto}
.e>.n{grid-column:-3/-1}.e>.v{grid-row:2;margin:.25rem 0 .1rem}.e>.pr{grid-row:2;align-self:center}ol.rank>.e::before{grid-row:1/span 4}form.q::after{display:none}}
.v{display:inline-block;padding:0 .5rem;border-radius:4px;background:var(--ddb);color:var(--dd);font-size:.75rem;font-weight:650;line-height:1.375rem;white-space:nowrap}
.v-qualifies{background:var(--q);color:var(--qf)}
.v-qualifies-with-caveat{background:var(--okb);color:var(--ok)}
.v-trial-only{background:var(--wab);color:var(--wa)}
.v-paid-only{background:var(--pdb);color:var(--pd)}
.v-fails-identity,.v-fails-egress,.v-fails-quota{background:var(--badb);color:var(--bad)}
.pr{color:var(--fg);font-size:.875rem;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.s{margin:.125rem 0 0;color:var(--fg2);font-size:.9375rem;overflow-wrap:anywhere}
.f{display:flex;flex-wrap:wrap;row-gap:.125rem;margin:.3rem 0 0;color:var(--fg2);font-size:.8125rem}
.f>*+*,.meta>*+*{margin-left:.5rem;padding-left:.5rem;border-left:1px solid var(--ln2)}
.e i{font-style:normal;color:var(--mut)}
.f .tp{color:var(--fg);font-weight:600}
.ok,.fresh{color:var(--ok)}.w,.stale{color:var(--wa)}.u,.mt{color:var(--mut)}.mt{overflow-wrap:anywhere}
.fr:empty{display:none}

/* record */
section.rec{margin:1.5rem 0;padding:1.25rem 1.5rem 1rem;border:1px solid var(--ln);border-radius:12px;background:var(--sf)}
section.rec:target{border-color:var(--acc);box-shadow:0 0 0 3px var(--accb)}
section.rec.solo{margin-top:0;padding:0;border:0;background:none;box-shadow:none}
.rh{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem}
.rh h1,.rh h2{margin:0}.rh h2 a{color:inherit}
.rh .tp{padding:0 .5rem;border:1px solid var(--ln2);border-radius:999px;color:var(--fg2);font-size:.8125rem}
.meta{display:flex;flex-wrap:wrap;row-gap:.125rem;margin:.375rem 0 0;color:var(--mut);font-size:.8125rem;overflow-wrap:anywhere}
dl.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:1rem 0 1.25rem;border:1px solid var(--ln);border-radius:10px;background:var(--sf);overflow:hidden}
.facts>div{margin:-1px 0 0 -1px;padding:.625rem .875rem;border-top:1px solid var(--ln);border-left:1px solid var(--ln)}
.facts dt{color:var(--mut);font-size:.6875rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase}
.facts dd{margin:.25rem 0 0;font-weight:600;overflow-wrap:anywhere}
.facts dd small{display:block;margin-top:.125rem;font-size:.8125rem;font-weight:400}
.facts>.wide{grid-column:1/-1}.facts>.wide dd{font-weight:400}
@media (min-width:40rem){dl.facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
table{border-collapse:collapse}
table.kv{width:100%;font-size:.9375rem}
.kv th{width:10rem;padding:.6rem 1rem .6rem 0;border-top:1px solid var(--ln);color:var(--mut);font-size:.8125rem;font-weight:600;text-align:left;vertical-align:top}
.kv td{padding:.6rem 0;border-top:1px solid var(--ln);overflow-wrap:anywhere}
.kv ul{margin:0;padding-left:1.1rem}.kv li+li{margin-top:.25rem}
.sub{margin-top:.25rem;color:var(--mut);font-size:.8125rem}
.na{color:var(--mut);font-style:italic;font-weight:400}
@media (max-width:40rem){.kv tr,.kv th,.kv td{display:block}.kv th{width:auto;padding-bottom:0}.kv td{padding-top:.125rem;border:0}section.rec{padding:1rem}}
table.ev{width:100%;font-size:.875rem}
.ev th{padding:.5rem .75rem .5rem 0;border-bottom:1px solid var(--ln2);color:var(--mut);font-size:.75rem;font-weight:650;letter-spacing:.04em;text-align:left;text-transform:uppercase}
.ev td{padding:.5rem .75rem .5rem 0;border-bottom:1px solid var(--ln);vertical-align:top;overflow-wrap:anywhere}
.ev td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}.ev td:nth-child(2){min-width:10rem}
@media (max-width:40rem){.ev thead{display:none}.ev tr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.125rem .75rem;padding:.5rem 0;border-bottom:1px solid var(--ln)}.ev td{padding:0;border:0}.ev td:nth-child(n+3){grid-column:1/-1}
.led td:nth-child(5)::before{content:"evidence ";color:var(--mut)}}
details{margin:1rem 0}
summary{padding:.25rem 0;color:var(--fg);font-weight:650;cursor:pointer}
summary:hover{color:var(--acc)}
.warnbox{margin:1rem 0 .25rem;padding:.5rem .875rem;border-left:4px solid var(--wa);border-radius:6px;background:var(--wab)}
.tw{max-width:100%;overflow-x:auto;margin:.75rem 0}

/* changes, compare, about */
article.chg{padding:.875rem 0;border-bottom:1px solid var(--ln)}
article.chg h3{margin:0 0 .125rem;color:var(--fg)}
#sr,#cmp{min-height:40rem}
.cmp{min-width:100%;font-size:.875rem}
.cmp thead td{min-width:8rem}.cmp th,.cmp td{min-width:13rem;padding:.5rem .625rem;border:1px solid var(--ln);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.cmp th{position:sticky;left:0;min-width:8rem;background:var(--sk);color:var(--fg2);font-weight:600}.cmp thead th{position:static;background:var(--sf);color:var(--fg)}
form.add{margin:1rem 0;font-size:.875rem}form.add input{padding:.25rem .5rem;border:1px solid var(--ctl);border-radius:6px;background:var(--bg);color:var(--fg);font:inherit}form.add button{padding:.25rem .7rem;border:1px solid var(--ctl);border-radius:999px;background:var(--bg);color:var(--fg2);font:inherit;cursor:pointer}
@media print{:root{color-scheme:light;--bg:#fff;--sf:#fff;--sk:#f2f2f2;--fg:#000;--fg2:#222;--mut:#444;--acc:#00e;--ln:#ccc;--ln2:#999}.top,.topics,.chips,.skip,footer,details.key{display:none}section.rec{border:0;padding:0}details>*{display:block}}
@media (forced-colors:active){.v,.st,.tile,.chips button{border:1px solid}.bar i,.brand::before{background:CanvasText}}
.v-self-hosted{white-space:normal}
