:root{
  --bg:#f5f7f4; --surface:#ffffff; --fg:#1d2a24; --muted:#5c6b63; --line:#dbe2dc;
  --accent:#2f6b4f; --accent-soft:#e3efe7; --star:#c98a12; --star-off:#d9ded9; --bar:#cfd9d2;
  --neg:#a2452f; --neg-soft:#f6e7e2; --warn-soft:#fbf1dc;
  --display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --body:"Source Sans 3","Segoe UI",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#121815; --surface:#1a221e; --fg:#e4ebe6; --muted:#9aa9a0; --line:#2c3832;
  --accent:#7cc39f; --accent-soft:#1f3329; --star:#e6b04a; --star-off:#3a463f; --bar:#34423b;
  --neg:#e48b74; --neg-soft:#35231e; --warn-soft:#332a18; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#121815; --surface:#1a221e; --fg:#e4ebe6; --muted:#9aa9a0; --line:#2c3832;
  --accent:#7cc39f; --accent-soft:#1f3329; --star:#e6b04a; --star-off:#3a463f; --bar:#34423b;
  --neg:#e48b74; --neg-soft:#35231e; --warn-soft:#332a18; color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 var(--body);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 56px}
a{color:var(--accent)} a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:32px}
h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;line-height:1.15}
.site-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-block:20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.logo{font:700 22px var(--display);color:var(--fg);text-decoration:none;letter-spacing:-.01em}
.logo span{color:var(--accent)}
.site-head nav{display:flex;gap:18px;font-size:15px}
.eyebrow{font:500 12px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.crumbs{font-size:14px;color:var(--muted)} .crumbs a{color:var(--muted)}
.module{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:26px}
.prod{display:flex;flex-direction:column;gap:6px}
.prod h1{font-size:clamp(24px,4.4vw,32px);font-weight:700}
.prices{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:15px;color:var(--muted)}
.prices a{font-weight:600}
.score{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center}
.big{display:flex;flex-direction:column;gap:4px;min-width:0}
.num{font:700 64px/1 var(--display);letter-spacing:-.02em}
.num small{font-size:22px;color:var(--muted);font-weight:500}
.stars{position:relative;display:inline-block;font-size:20px;letter-spacing:2px;line-height:1;color:var(--star-off);white-space:nowrap}
.stars i{position:absolute;inset:0 auto 0 0;overflow:hidden;color:var(--star);font-style:normal}
.stars.sm{font-size:14px;letter-spacing:1px}
.sub{font-size:14px;color:var(--muted)}
.dist{display:flex;flex-direction:column;gap:6px;min-width:0}
.row{display:grid;grid-template-columns:2.2em 1fr 4.6em;gap:10px;align-items:center;font:13px var(--mono);font-variant-numeric:tabular-nums;color:var(--muted)}
.track{height:8px;background:var(--bar);border-radius:4px;overflow:hidden}
.fill{height:100%;background:var(--star)}
.row span:last-child{text-align:right}
.retailers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.ret{border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:3px}
.ret .name{font-weight:600;display:flex;justify-content:space-between;gap:8px}
.ret .r{font:500 22px var(--display);display:flex;align-items:center;gap:8px}
.ret .c{font-size:14px;color:var(--muted)}
.badge{display:inline-block;font:500 11px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.05em;padding:0 7px;border-radius:999px;background:var(--warn-soft);color:var(--fg)}
.pn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.pn section{display:flex;flex-direction:column;gap:10px;min-width:0}
.pn h2{font-size:18px;display:flex;align-items:center;gap:8px}
.dot{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;font:700 15px var(--body)}
.pos .dot{background:var(--accent-soft);color:var(--accent)} .neg .dot{background:var(--neg-soft);color:var(--neg)}
.pn ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.pn li{font-size:15px;padding-left:14px;border-left:2px solid var(--accent)}
.neg li{border-color:var(--neg)}
.pn li .k{font:12px var(--mono);color:var(--muted);white-space:nowrap}
.pn .none{font-size:15px;color:var(--muted)}
.overall{margin:0;font-size:16px}
.note{border-radius:10px;padding:12px 16px;font-size:14px;background:var(--warn-soft)}
.note.prov{background:var(--accent-soft)} .note.alert{background:var(--neg-soft)}
.notes{display:flex;flex-direction:column;gap:10px}
.foot{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}
.site-foot{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:6px}
/* index */
.hero{display:flex;flex-direction:column;gap:10px;padding-top:12px}
.hero h1{font-size:clamp(28px,5vw,40px)}
.hero p{margin:0;color:var(--muted);max-width:62ch}
.tools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.tools input[type=search]{flex:1 1 260px;min-width:0;font:inherit;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--fg)}
.tools label{font-size:14px;display:flex;gap:6px;align-items:center}
.tools select{font:inherit;font-size:14px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg)}
.count{font-size:14px;color:var(--muted)}
.list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.list li{border-bottom:1px solid var(--line)} .list li:last-child{border-bottom:0}
.list a{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:12px 16px;color:var(--fg);text-decoration:none}
.list a:hover{background:var(--accent-soft)}
.list .t{font-weight:600;min-width:0}
.list .b{font-size:13px;color:var(--muted);display:flex;gap:6px 10px;flex-wrap:wrap;align-items:center}
.list .s{grid-row:span 2;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.list .s b{font:600 20px var(--display);font-variant-numeric:tabular-nums}
.list .s span{font:12px var(--mono);color:var(--muted)}
.prose{max-width:65ch;display:flex;flex-direction:column;gap:14px} .prose p{margin:0}
@media (max-width:600px){.module{padding:20px}.score{grid-template-columns:1fr;gap:18px}.pn{grid-template-columns:1fr}.num{font-size:52px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

.awards{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.award{font:500 12px/1.9 var(--mono);text-transform:uppercase;letter-spacing:.04em;padding:0 10px;border-radius:999px;border:1px solid var(--line);color:var(--fg);text-decoration:none}
.award.win{background:var(--accent);border-color:var(--accent);color:var(--surface)}
.bests{display:flex;flex-direction:column;gap:14px}
.bests h2{font-size:22px}
.bfgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.bf{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--fg);text-decoration:none;min-width:0}
.bf:hover{border-color:var(--accent)}
.bf b{font:600 17px var(--display)}
.bf .w{font-size:14px;line-height:1.35}
.bf .k,.ranked .k{font:12px var(--mono);color:var(--muted)}
.ranked{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.ranked li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ranked li:first-child{border-color:var(--accent)}
.ranked .rk{font:700 28px/1 var(--display);color:var(--accent);min-width:1.2em}
.ranked p{margin:4px 0}
.allh{font-size:22px;margin-bottom:-12px}
