/* Layout: one narrow column, read top to bottom like a plan for the day */
:root{
  --bg:#f3f5f7; --surface:#ffffff; --ink:#18222c; --muted:#5d6b78; --line:#dde3e8;
  --accent:#2357c9; --cheap:#2e8a57; --mid:#c9932a; --dear:#c4513a;
  --display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --body:"Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#11171d; --surface:#18212a; --ink:#e7edf2; --muted:#9aa8b4; --line:#2a3540;
  --accent:#7ea2f2; --cheap:#5cc489; --mid:#e3b453; --dear:#ec7c63; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#11171d; --surface:#18212a; --ink:#e7edf2; --muted:#9aa8b4; --line:#2a3540;
  --accent:#7ea2f2; --cheap:#5cc489; --mid:#e3b453; --dear:#ec7c63; color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5}
.wrap{max-width:680px;margin:0 auto;padding-block:28px 48px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  display:flex;flex-direction:column;gap:24px}
.wrap[hidden]{display:none}
/* While a loading screen is up, the page behind it stays put */
html.lock,html.lock body{overflow:hidden;overscroll-behavior:none}
header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}
h1{font-family:var(--display);font-weight:800;font-size:2rem;margin:0;line-height:1.1;text-wrap:balance}
.date{color:var(--muted);margin:4px 0 0}
#day button,#region button{min-width:7.2em;text-align:center}
#region button{min-width:9em}
.day-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:16px}.day-note{font-size:.82rem}
.seg button:disabled{opacity:.45;cursor:not-allowed}
.hdr-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sim{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:3px 10px;white-space:nowrap}
button{font:inherit;font-weight:700;color:var(--accent);background:none;border:1px solid var(--line);
  border-radius:8px;padding:8px 14px;cursor:pointer}
button:hover{border-color:var(--accent)}
button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.total{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.total{display:flex;flex-direction:column;gap:6px}
.total p{margin:0}
.total .year strong{font-size:1.25rem}
.total strong{font-family:var(--display);font-size:1.6rem;color:var(--cheap);font-variant-numeric:tabular-nums}
h2{font-family:var(--display);font-weight:600;font-size:1.15rem;margin:0 0 10px}
.strip{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;align-items:end;height:90px}
.strip div{border-radius:2px 2px 0 0;min-height:4px}
.hours{display:grid;grid-template-columns:repeat(4,1fr);color:var(--muted);font-size:.8rem;margin-top:4px;font-variant-numeric:tabular-nums}
.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:.85rem;color:var(--muted);margin-top:8px}
.legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;background:var(--c)}
.plan{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.item{display:grid;grid-template-columns:96px 1fr;gap:16px 16px;background:var(--surface);
  border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.time{font-family:var(--display);font-weight:800;font-size:1.5rem;line-height:1.1;font-variant-numeric:tabular-nums}
.time small{display:block;font-family:var(--body);font-weight:400;font-size:.8rem;color:var(--muted);margin-top:4px}
.item h3{margin:0;font-size:1.05rem}
.item p{margin:4px 0 0;color:var(--muted)}
.save{color:var(--cheap);font-weight:700}
.item p.use{margin-top:2px;font-size:.85rem;font-variant-numeric:tabular-nums}
.note{color:var(--muted);font-size:.85rem;margin:0}
.opts{display:flex;flex-direction:column;gap:10px}
.opts label{display:flex;gap:10px;align-items:center;cursor:pointer}
.opts input{width:18px;height:18px;accent-color:var(--accent)}
.opts-box{background:var(--surface);border:1px solid var(--line);border-radius:12px}
.opts-box summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:10px;padding:14px 18px}
.opts-box summary::-webkit-details-marker{display:none}
.opts-box summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:12px}
.sum-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.sum-label{font-weight:700}
.sum-edit{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:700;font-size:.9rem}
.sum-edit svg{width:12px;height:12px;transition:transform .2s}
.opts-box[open] .sum-edit svg{transform:rotate(180deg)}
.when-open,.opts-box[open] .when-closed{display:none}
.opts-box[open] .when-open{display:inline}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips span{font-size:.85rem;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 10px;white-space:nowrap}
.opts-box[open] .chips{display:none}
@media (prefers-reduced-motion:reduce){.sum-edit svg{transition:none}}
.opts-box .opts{padding:0 18px 18px}
.hh{display:flex;flex-direction:column;gap:10px;margin-bottom:-8px}
.hh-sum{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}
.hh-toggle{font-size:.85rem}
#hh-body{padding:14px 18px 16px}#hh-body[hidden]{display:none}
.hh-title{margin:0 0 8px;font-size:1rem;font-weight:700;font-family:inherit}
.hh-row,.pick-row{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:12px 32px}
.hh-row .age{flex:1 1 280px;margin:0}.hh-row .age:has(#region){flex:0 0 auto}.hh-ev{padding-bottom:4px}
.hh-row .age label{display:block}
.pick{margin-bottom:24px;padding:14px 18px 16px}.pick .opts{padding:0}.pick-row .age{margin:0}.pick-row .age:first-child{flex:1 1 300px}
.age{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.age select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;max-width:100%}
.age input{width:100%;max-width:360px;height:auto;accent-color:var(--accent)}
.costs td:first-child{color:var(--muted)}
.cmp-head{display:flex;flex-direction:column;gap:2px;margin-bottom:16px}
.vs-line{margin:-2px 0 0;font-size:.92rem;color:var(--muted)}
.total .vs-line strong{color:var(--ink);font-family:inherit;font-size:inherit;font-variant-numeric:tabular-nums}
.best-line{margin:4px 0 0;font-size:.92rem;background:color-mix(in srgb,var(--cheap) 9%,var(--surface));border-radius:8px;padding:9px 12px}
.total .best-line strong{color:var(--cheap);font-family:inherit;font-size:inherit}
.best{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.best-day{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.best-top{display:flex;align-items:baseline;gap:12px}
.best-rank{font-family:var(--display);font-weight:800;color:var(--muted);min-width:1em}
.best-date{flex:1;font-weight:700}
.best-amt{font-family:var(--display);font-weight:800;font-size:1.3rem;color:var(--cheap);font-variant-numeric:tabular-nums}
.best-day ul{margin:6px 0 0 calc(1em + 12px);padding:0;list-style:none;font-size:.85rem;color:var(--muted);display:flex;flex-direction:column;gap:2px}
.muted{margin:2px 0 0;color:var(--muted);font-size:.9rem}
.deals-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}
.deals-head h3,.list-head h3{margin:0;font-family:var(--display);font-weight:800;font-size:1.35rem}
.car-btns{display:flex;gap:6px}
.car-btns button{width:38px;height:38px;border-radius:50%;padding:0;font-size:1.1rem;background:var(--surface)}
.carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;margin-bottom:24px;scrollbar-width:thin}
.carousel:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:14px}
.deal-card{flex:0 0 236px;scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}
.fx-tag{font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-radius:999px;padding:1px 7px;vertical-align:2px;white-space:nowrap}
.dc-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dc-unv{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--line);border-radius:999px;padding:2px 8px}
.deal-card h4{margin:0;font-size:1rem}
.dc-type{align-self:flex-start;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-radius:999px;padding:3px 9px}
.deal-card.warn .dc-type{color:var(--dear);background:color-mix(in srgb,var(--dear) 12%,var(--surface))}
.dc-what{margin:2px 0 0;font-size:.85rem;color:var(--muted)}
.dc-tp{margin:4px 0 0;font-size:.78rem;color:var(--muted)}
.star{color:#00a86b;font-weight:700}
.deal-card dl{margin:0;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line);padding-top:10px;font-size:.82rem}
.deal-card dl div{display:flex;justify-content:space-between;gap:8px}
.deal-card dt{color:var(--muted)}
.deal-card dd{margin:0;font-weight:700;text-align:right}
.deal-card dd.exit{font-weight:400;color:var(--dear);text-align:left}
.dc-gain{margin:auto 0 0;display:flex;flex-direction:column}
.dc-gain strong{font-family:var(--display);font-weight:800;font-size:1.6rem;line-height:1.1;color:var(--muted);font-variant-numeric:tabular-nums}
.dc-gain.pos strong{color:var(--cheap)}
.dc-gain.neg strong{color:var(--dear)}
.dc-gain span{font-size:.76rem;color:var(--muted)}
.dc-btn{text-align:center;color:var(--accent);font-weight:700;border:1px solid var(--line);border-radius:8px;padding:8px 12px;text-decoration:none;font-size:.9rem}
.yours{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--surface));border-radius:14px;padding:14px 18px;margin-bottom:24px}
.yours-l{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 300px}
.yours .combo{margin:4px 0 2px}.yours .combo input{background:var(--surface);font-weight:700}
.yours-l .eyebrow{color:var(--accent);font-weight:700}
.yours-r{display:flex;flex-direction:column;align-items:flex-end;text-align:right;margin-left:auto}
.yours .big{font-family:var(--display);font-weight:800;font-size:1.5rem;font-variant-numeric:tabular-nums}
.yours .sub{font-size:.8rem;color:var(--muted)}
.yours .rank{font-size:.8rem;font-weight:700;color:var(--accent);margin-top:2px}
.tp{white-space:nowrap;font-size:.85rem}
.cmp tr.is-cheaper td{background:color-mix(in srgb,var(--cheap) 10%,var(--surface))}
.combo{position:relative;max-width:380px}
.combo input{width:100%;box-sizing:border-box;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 12px}
.combo input:focus{outline:2px solid var(--accent);outline-offset:1px}
.combo-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(24,34,44,.16);max-height:320px;overflow-y:auto}
.combo-list li{padding:8px 10px;border-radius:6px;cursor:pointer;font-size:.92rem}
.combo-list li[aria-selected="true"]{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.combo-list li.current{font-weight:700}
.combo-list li.none{color:var(--muted);cursor:default}
.age input[type=number]{width:9em;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px}
.cmp-title{margin:0;font-family:var(--display);font-weight:800;font-size:1.6rem;line-height:1.15;text-wrap:balance}
.cmp-intro{margin:0;color:var(--muted)}
.picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:26px}
.pick{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.pick h4{margin:0;font-size:1.02rem}
.pick-sub{margin:2px 0 0;font-size:.85rem;color:var(--muted)}
.pick-label{align-self:flex-start;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--bg);border-radius:999px;padding:3px 9px}
.pick-tag{align-self:flex-start;font-size:.78rem;font-weight:700;color:var(--cheap);background:color-mix(in srgb,var(--cheap) 12%,var(--surface));border-radius:6px;padding:2px 8px}
.pick-tag.warn{color:var(--dear);background:color-mix(in srgb,var(--dear) 12%,var(--surface))}
.pick-amount{margin:auto 0 0;display:flex;align-items:baseline;gap:8px}
.pick-amount strong{font-family:var(--display);font-weight:800;font-size:1.9rem;line-height:1;color:var(--cheap);font-variant-numeric:tabular-nums}
.pick-amount.deal strong{color:var(--accent)}
.pick-amount span{font-size:.85rem;color:var(--muted)}
.pick-btn{text-align:center;color:var(--accent);font-weight:700;border:1px solid var(--line);border-radius:8px;padding:9px 12px;text-decoration:none}
.pick-btn:hover{border-color:var(--accent)}
.pick.main{background:var(--accent);border-color:var(--accent);color:var(--surface)}
.pick.main .pick-sub,.pick.main .pick-amount span{color:var(--surface);opacity:.85}
.pick.main .pick-label,.pick.main .pick-tag{color:var(--surface);background:color-mix(in srgb,var(--surface) 18%,transparent)}
.pick.main .pick-amount strong{color:var(--surface)}
.pick.main .pick-btn{background:var(--surface);color:var(--accent);border-color:var(--surface)}
.lane{border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px;margin-bottom:20px;--lc:#2357c9;--ld:#183f94;--lt:#3d4f73;background:#eaf0fb}
.lane.l-deal{--lc:#a8520f;--ld:#7a3c0a;--lt:#6b4a2e;background:#fdf1e4}
.lane.l-trust{--lc:#6a3fb5;--ld:#4b2a85;--lt:#5a4d73;background:#f1ebfa}
.lane.l-green{--lc:#25744a;--ld:#1b5536;--lt:#3e5f4c;background:#e7f4ec}
.lane-head{display:flex;gap:14px;align-items:center}
.lane-icon{flex:0 0 52px;height:52px;border-radius:16px;background:var(--lc);color:#fff;display:flex;align-items:center;justify-content:center}
.lane h3{margin:0;font-family:var(--display);font-weight:800;font-size:1.5rem;color:var(--ld)}
.lane-sub{display:block;font-size:.9rem;color:var(--lt)}
/* Cards share rows (subgrid) so badge, name, text, big number, breakdown, note and link line up across a section */
.lane-grid,.lane-car{display:grid;grid-template-rows:repeat(7,auto);grid-auto-rows:auto;row-gap:0;column-gap:10px}
.lane-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.lane-grid .lcard{margin-bottom:10px}
.lcard{grid-row:span 7;display:grid !important;grid-template-rows:subgrid;row-gap:4px;align-content:start}
.lc-slot{display:block}
.lane-btns{margin-left:auto;align-self:flex-start}
@media (max-width:520px){.lane-btns{display:none}}
.lane-car{grid-auto-flow:column;grid-auto-columns:200px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:thin}
.lane-car .lcard{scroll-snap-align:start}
.lane-car:focus-visible{outline:2px solid var(--lc);outline-offset:4px;border-radius:14px}
.lcard{background:var(--surface);color:var(--ink);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px}
.lcard h4{margin:0;font-size:1rem}
.lc-sub{margin:0;font-size:.78rem;color:var(--muted)}
.lc-big{margin:6px 0 0;font-family:var(--display);font-weight:800;font-size:1.65rem;color:var(--lc);line-height:1.1}
.lc-break{margin:0;font-size:.78rem;font-weight:700;color:var(--ink)}
.lc-note{margin:0;font-size:.78rem;color:var(--muted)}
.lc-link{align-self:end;padding-top:8px;font-size:.85rem;font-weight:700;color:var(--lc)}
.lc-top{outline:2px solid var(--lc)}
.lc-badge{justify-self:start;align-self:start;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--lc);border-radius:999px;padding:2px 8px}
.lane-bridge{align-self:center;text-align:center;margin:-10px auto 10px;max-width:520px;font-size:.85rem;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:6px 14px}
.lane-bridge span{color:var(--cheap);font-weight:700}.lane-bridge strong{color:var(--ink)}
.lane .see-all{align-self:flex-start;color:var(--ld)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .lane{--lc:#7ea2f2;background:color-mix(in srgb,var(--lc) 14%,var(--bg));--ld:var(--ink);--lt:var(--muted)}
  :root:not([data-theme="light"]) .lane.l-deal{--lc:#e8a066}:root:not([data-theme="light"]) .lane.l-green{--lc:#5cc489}:root:not([data-theme="light"]) .lane.l-trust{--lc:#b49af0}}
:root[data-theme="dark"] .lane{--lc:#7ea2f2;background:color-mix(in srgb,var(--lc) 14%,var(--bg));--ld:var(--ink);--lt:var(--muted)}
:root[data-theme="dark"] .lane.l-deal{--lc:#e8a066}:root[data-theme="dark"] .lane.l-green{--lc:#5cc489}:root[data-theme="dark"] .lane.l-trust{--lc:#b49af0}
.teaser{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-bottom:12px}
.teaser h3{margin:0;font-family:var(--display);font-weight:800;font-size:1.3rem}
.teaser p{margin:0;color:var(--muted)}.teaser strong{color:var(--cheap)}
.teaser .dc-btn{margin-top:6px;padding-inline:20px}
.onb{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;box-sizing:border-box}
.onb[hidden]{display:none}
.onb-card{width:100%;max-width:480px;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:28px 24px;box-sizing:border-box;box-shadow:0 12px 40px rgba(24,34,44,.08)}
.onb-dots{display:flex;gap:6px;margin-bottom:18px}.onb-dots span{width:28px;height:6px;border-radius:3px;background:var(--line)}.onb-dots span.on{background:var(--accent)}.onb-dots[hidden]{display:none}
.onb-step{display:flex;flex-direction:column;gap:16px}.onb-step[hidden]{display:none}
.onb-kicker{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.onb h1{margin:-8px 0 0;font-size:1.7rem}
.onb-step{gap:22px}
.onb-hero{margin:-6px -4px 4px;border-radius:16px;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,var(--surface)),var(--surface))}
.onb-hero svg{display:block}
.hs-sun{fill:#f5c542}.hs-hill{fill:color-mix(in srgb,var(--cheap) 30%,var(--surface))}
.hs-mast{fill:#cfd8e3}.hs-blades path{fill:#e8edf2;stroke:#b8c3cf;stroke-width:1}.hs-hub{fill:#b8c3cf}
.hs-blades{transform-origin:64px 44px;animation:hs-spin 6s linear infinite}
@keyframes hs-spin{to{transform:rotate(360deg)}}
.hs-wall{fill:var(--surface);stroke:var(--ink);stroke-width:2}.hs-roof{fill:var(--accent)}.hs-chim{fill:var(--ink)}
.hs-win{fill:#f5c542;stroke:var(--ink);stroke-width:2}.hs-door{fill:color-mix(in srgb,var(--accent) 60%,var(--ink))}
.hs-badge circle{fill:#f5a623}.hs-badge path{fill:#fff}
.ppl{display:flex;align-items:flex-end;justify-content:center;gap:2px;height:26px;color:#b8c3cf}
.ppl svg{fill:currentColor}
.onb-chips button[aria-pressed="true"] .ppl{color:var(--accent)}
.onb-tiles button{align-items:center}
.dk{display:block;width:100%;max-width:130px;height:auto;margin:0 auto 6px}
.dk path{fill:var(--line);transition:fill .2s}
[data-r="W"] .dk-w,[data-r="E"] .dk-e{fill:color-mix(in srgb,var(--accent) 45%,var(--line))}
[data-r="W"][aria-pressed="true"] .dk-w,[data-r="E"][aria-pressed="true"] .dk-e{fill:var(--accent)}
.ev-car{margin-left:auto;flex:0 0 auto}
.ev-body{fill:#cfd8e3}.ev-win{fill:var(--surface)}.ev-wheel{fill:var(--ink)}.ev-hub{fill:#cfd8e3}.ev-bolt{fill:#fff}
.onb-ev:has(input:checked) .ev-body{fill:var(--accent)}.onb-ev:has(input:checked) .ev-bolt{fill:#f5c542}
@media (prefers-reduced-motion:reduce){.hs-blades{animation:none}}
.onb-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.onb-chips button{display:flex;flex-direction:column;align-items:center;gap:4px;font:inherit;font-weight:700;font-size:1.1rem;color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:12px;padding:12px 0;cursor:pointer}
.onb-chips button[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.onb-exact{align-self:flex-start;font-size:.85rem}.onb-exact[hidden]{display:none}
.onb-kwhin{display:flex;align-items:center;gap:8px;color:var(--muted)}.onb-kwhin[hidden]{display:none}
.onb-kwhin input{font:inherit;font-weight:700;color:var(--ink);width:7em;background:var(--bg);border:2px solid var(--line);border-radius:10px;padding:9px 10px}
.onb-q{display:flex;flex-direction:column;gap:8px}
.onb-ql{font-weight:700}
.onb-kwh{font-family:var(--display);color:var(--ink)}.onb-kwh strong{font-size:2rem;font-weight:800}.onb-kwh span{color:var(--muted);font-weight:700}
.onb-q input[type=range]{width:100%;accent-color:var(--accent);margin:0}
.onb-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.onb-tiles button{font:inherit;color:var(--ink);text-align:center;background:var(--bg);border:2px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:2px;cursor:pointer}
.onb-tiles button span{font-size:.78rem;color:var(--muted)}
.onb-tiles button[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.onb-ev{display:flex;gap:12px;align-items:center;cursor:pointer;background:var(--bg);border:2px solid var(--line);border-radius:14px;padding:12px;font-weight:700}
.onb-ev:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.onb-ev input{width:20px;height:20px;accent-color:var(--accent);margin:0}
.onb-field{display:flex;flex-direction:column;gap:6px}
.onb-field input[type=range]{width:100%;accent-color:var(--accent)}
.onb-hint{font-size:.8rem;color:var(--muted)}
.onb-check{display:flex;gap:10px;align-items:center;cursor:pointer}.onb-check input{width:18px;height:18px;accent-color:var(--accent)}
.onb-next{align-self:stretch;margin-top:4px;background:var(--accent);color:#fff;border:0;border-radius:12px;padding:13px;font-weight:700;font-size:1rem;cursor:pointer}
.onb-search{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px 12px}
.onb-list{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.onb-list button{width:100%;text-align:left;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px 12px;cursor:pointer;display:flex;justify-content:space-between;gap:8px}
.onb-list button:hover,.onb-list button:focus-visible{border-color:var(--accent)}
.onb-list .tp{color:var(--muted)}
.onb-row{display:flex;justify-content:space-between}
.onb-load{gap:12px}
.ck-title{margin:0 0 4px;font-family:var(--display);font-weight:800;font-size:1.4rem}
.ck-row{display:flex;align-items:center;gap:12px;border-radius:14px;padding:10px 12px;background:var(--ckb);opacity:0;transform:translateX(-16px);transition:opacity .35s,transform .35s}
.ck-row.in{opacity:1;transform:none}
.ck-ic{flex:0 0 36px;height:36px;border-radius:10px;background:var(--ckc);color:#fff;display:flex;align-items:center;justify-content:center}
.ck-label{flex:1;font-weight:700;font-size:.9rem}
.ck-val{font-family:var(--display);font-weight:800;color:var(--ckc);opacity:0;transform:scale(.6);transition:opacity .3s .25s,transform .3s .25s}
.ck-row.in .ck-val{opacity:1;transform:none}
.ck-deal{--ckc:#a8520f;--ckb:#fdf1e4}.ck-cheap{--ckc:#2357c9;--ckb:#eaf0fb}.ck-green{--ckc:#25744a;--ckb:#e7f4ec}.ck-trust{--ckc:#6a3fb5;--ckb:#f1ebfa}
.ck-ready{align-self:center;margin:6px 0 0;font-family:var(--display);font-weight:800;font-size:1.1rem;color:var(--cheap);opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
.ck-ready.in{opacity:1;transform:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ck-row{background:color-mix(in srgb,var(--ckc) 18%,var(--surface))}:root:not([data-theme="light"]) .ck-val{color:var(--ink)}}
:root[data-theme="dark"] .ck-row{background:color-mix(in srgb,var(--ckc) 18%,var(--surface))}:root[data-theme="dark"] .ck-val{color:var(--ink)}
@media (prefers-reduced-motion:reduce){.ck-row,.ck-val,.ck-ready{transition:none}}
.bolt-wrap{width:96px;height:96px;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,var(--surface));display:flex;align-items:center;justify-content:center;color:var(--accent)}
.bolt{animation:zap 1s ease-in-out infinite}
@keyframes zap{0%,100%{transform:scale(1) rotate(0);opacity:1}40%{transform:scale(1.18) rotate(-8deg)}55%{opacity:.55}70%{transform:scale(.95) rotate(4deg);opacity:1}}
.load-text{margin:0;font-weight:700;min-height:1.5em}
.load-bar{width:100%;max-width:280px;height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.load-bar span{display:block;height:100%;width:0;background:var(--accent);border-radius:4px;transition:width .5s ease}
@media (prefers-reduced-motion:reduce){.bolt{animation:none}.load-bar span{transition:none}}
.wl{position:fixed;inset:0;z-index:50;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:16px;overscroll-behavior:contain;touch-action:none}
.wl[hidden]{display:none}
.wl-card{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.wl-bars{position:relative;width:100%;height:120px;display:flex;align-items:flex-end;gap:3px}
.wl-bars i{flex:1;border-radius:3px 3px 0 0;background:#cfd8e3;transform-origin:bottom;animation:wl-grow .45s ease-out both;transition:background .35s}
.wl-bars.lit i.c{background:var(--cheap)}.wl-bars.lit i.d{background:var(--dear)}
@keyframes wl-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.wl-scan{position:absolute;top:-6px;bottom:0;left:0;width:3px;border-radius:2px;background:var(--accent);opacity:0}
.wl-bars.scan .wl-scan{animation:wl-scan .9s ease-in-out forwards}
@keyframes wl-scan{0%{left:0;opacity:1}100%{left:calc(100% - 3px);opacity:1}}
.wl-legend{font-size:.8rem;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.wl-bars i{animation:none}.wl-bars.scan .wl-scan{animation:none}}
.see-all{font-size:.85rem;font-weight:700}
.back{align-self:flex-start;font-weight:700;margin-bottom:-12px;text-decoration:none}.back[hidden]{display:none}
.dc-green{font-size:.72rem;font-weight:700;color:var(--cheap)}
.list-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.list-head h3{margin:0;font-family:var(--display);font-weight:600;font-size:1.15rem}
.seg{display:flex;width:fit-content;flex-wrap:wrap;gap:2px;background:color-mix(in srgb,var(--line) 70%,var(--bg));border-radius:10px;padding:3px}
.seg button{font-size:.82rem;font-weight:400;color:var(--muted);border:0;border-radius:8px;padding:5px 12px;background:none}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 1px 2px rgba(24,34,44,.15)}
.tablebox{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow-x:auto}
.cmp{width:100%;min-width:620px;border-collapse:collapse;font-variant-numeric:tabular-nums}
.cmp th{font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:400;text-align:left;padding:10px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.cmp th.r{text-align:right}.cmp th.c{text-align:center}.cmp th.num,.cmp td.num{text-align:left;padding-left:14px}
.cmp th:nth-child(1){width:1.6em}.cmp th:nth-child(3){width:7em}.cmp th:nth-child(4){width:6.5em}.cmp th:nth-child(5){width:5.5em}.cmp th:nth-child(6){width:7em}
.cmp th button{position:relative;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;border:0;padding:0;background:none;cursor:pointer}
.cmp th button[aria-sort="ascending"]::after,.cmp th button[aria-sort="descending"]::after{position:absolute;left:100%;margin-left:3px}
.cmp th button[aria-sort="ascending"]::after{content:"↓"}
.cmp th button[aria-sort="descending"]::after{content:"↑"}
.cmp th button[aria-sort="ascending"],.cmp th button[aria-sort="descending"]{color:var(--ink);font-weight:700}
.cmp td{padding:10px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,var(--surface));vertical-align:middle;font-size:.93rem}
.cmp tr:last-child td{border-bottom:0}
.cmp .num{width:2em;color:var(--muted);text-align:right;font-size:.82rem;padding-right:2px}
.cmp .r{text-align:right;white-space:nowrap}
.deal-star{color:var(--accent);font-weight:700}
.cmp .yr .sub{font-size:.72rem}
.cmp .c{text-align:center;white-space:nowrap}
.cmp .prod{min-width:13em}
.cmp .pname{display:block;font-weight:700}
.cmp .sub{display:block;font-size:.76rem;color:var(--muted)}
.save{font-size:.82rem;font-weight:700;color:var(--cheap);background:color-mix(in srgb,var(--cheap) 12%,var(--surface));border-radius:6px;padding:2px 7px}
.save,.more-cost,.nodiff{display:inline-block}.cmp .save,.cmp .more-cost,.cmp .nodiff{margin-right:-7px}
.more-cost{font-size:.82rem;color:var(--dear);padding:2px 7px}
.nodiff{font-size:.82rem;color:var(--muted);padding:2px 7px}
.green-yes{font-size:.76rem;font-weight:700;color:var(--cheap)}
.dash{color:var(--muted)}
.catch-tag{display:inline-block;font-size:.76rem;color:var(--dear);background:color-mix(in srgb,var(--dear) 12%,var(--surface));border-radius:6px;padding:2px 7px;max-width:14em}
.cmp tr.mine td{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-top:1px solid color-mix(in srgb,var(--accent) 22%,var(--surface))}
.cmp tr.mine .num{color:var(--accent);font-weight:700}
.you{font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--surface);background:var(--accent);border-radius:999px;padding:1px 7px;vertical-align:2px}
.cmp tr.skip td{padding:4px 16px;border-bottom:0}
.cmp tr.skip span{display:flex;align-items:center;gap:12px;font-size:.76rem;color:var(--muted)}
.cmp tr.skip span::before,.cmp tr.skip span::after{content:"";flex:1;border-top:1px dashed var(--line)}
.deal-inline{display:flex;gap:4px;align-items:center;font-size:.76rem;margin-top:3px}
.cmp-foot{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:10px 0 8px}
.cmp-foot .note{flex:1 1 300px}
.p-year{font-size:1.05rem}
.alts-head{margin:0 0 4px;font-weight:700}
.alts li.is-cheaper{background:color-mix(in srgb,var(--cheap) 10%,var(--surface));border-radius:8px;padding-inline:10px;margin-inline:-10px;border-top-color:transparent}
.alts li.is-cheaper+li{border-top-color:transparent}
.pill{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cheap);border:1px solid var(--cheap);border-radius:999px;padding:1px 7px;vertical-align:2px;margin-left:4px}
.alts li.is-cheaper+li.is-cheaper{margin-top:4px}
.panel{display:flex;flex-direction:column;gap:24px}
.panel[hidden]{display:none}
.hint{margin:0;color:var(--muted)}
.hint strong{color:var(--ink)}
.link{border:0;padding:0;background:none;color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.more{align-self:flex-start;margin-top:6px;font-size:.9rem;padding:6px 12px}
.cheaper{color:var(--cheap);font-weight:700;font-size:.85rem}
.dearer{color:var(--dear);font-size:.85rem}
.same{color:var(--muted);font-size:.85rem}
.rules{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:12px;line-height:1.5}
.chips-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.chip{font-size:.72rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px;white-space:nowrap}
.chip.green{color:var(--cheap);border-color:var(--cheap);font-weight:700}
.chip.warn{color:var(--dear);border-color:var(--dear)}
.terms{font-size:.8rem;color:var(--muted);margin-top:3px}
.filters{display:flex;flex-wrap:wrap;gap:4px 16px;margin:2px 0 6px}
.filters .filter{margin:0}
.filter{display:flex;gap:8px;align-items:center;font-size:.9rem;margin:2px 0 6px;cursor:pointer}
.filter input{accent-color:var(--accent)}
.deal-note{font-size:.75rem;color:var(--accent);font-weight:700;white-space:normal;max-width:12em}
.deal{font-size:.85rem;color:var(--ink);margin-top:4px}
.deal-pill{color:var(--accent);border-color:var(--accent);margin-left:0;margin-right:4px}
.p-price a{color:var(--accent)}
.p-name{font-weight:700}
.p-price{color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}
.p-year{font-family:var(--display);font-weight:800;font-size:1.2rem;font-variant-numeric:tabular-nums;margin-top:auto}
.p-year small{font-family:var(--body);font-weight:400;font-size:.8rem;color:var(--muted)}
.day{grid-column:1/-1;width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.95rem}
.day th,.day td{text-align:right;padding:6px 0;border-top:1px solid var(--line)}
.day th:first-child,.day td:first-child{text-align:left}
.day th{color:var(--muted);font-weight:400;font-size:.85rem}
.day tr.sv td{font-weight:700;color:var(--cheap)}
@media (max-width:420px){.item{grid-template-columns:1fr;gap:6px}}
/* Texts come from texts.js: hide the page for the moment before they are filled in */
.i18n body{visibility:hidden}
/* Language switch, top right on every page */
.lang-btn{position:absolute;top:12px;right:16px;z-index:60;border:1px solid var(--line);border-radius:999px;padding:4px 12px;background:var(--surface);color:var(--ink);font:inherit;font-size:.85rem;font-weight:700;cursor:pointer}
.lang-btn:hover{border-color:var(--muted)}
@media (max-width:600px){.onb{padding-top:48px}.wrap{padding-top:16px}
  /* The language button sits beside the first line instead of on its own row */
  .back,.back[hidden]+header>div{padding-right:84px}}
/* Phones: less air, and the card sections swipe sideways instead of stacking */
@media (max-width:600px){
  .wrap{gap:18px;padding-bottom:32px}
  h1{font-size:1.7rem}
  .total{padding:14px 16px}
  .item{padding:12px 14px}
  .yours{padding:12px 14px;margin-bottom:14px;gap:10px}
  .lane{padding:14px;border-radius:16px;gap:10px;margin-bottom:14px}
  .lane-head{gap:10px}
  .lane-icon{flex-basis:40px;height:40px;border-radius:12px}.lane-icon svg{width:22px;height:22px}
  .lane h3{font-size:1.25rem}
  .lane-sub{font-size:.85rem}
  .lane-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:thin}
  .lane-grid .lcard{margin-bottom:0;scroll-snap-align:start}
  .lane-car{grid-auto-columns:78%}
  .lane-bridge{margin:-4px auto 4px}
  .teaser{padding:16px;border-radius:16px}
  .onb-card{padding:20px 18px;border-radius:20px}
  .onb-step{gap:16px}
}
/* Trustpilot score: a white star on Trustpilot's colour for that many stars */
.tps{display:inline-grid;place-items:center;width:1.2em;height:1.2em;border-radius:2px;color:#fff;font-size:.85em;line-height:1;vertical-align:-.1em}
.tps1{background:#ff3722}.tps2{background:#ff8622}.tps3{background:#ffce00}.tps4{background:#73cf11}.tps5{background:#00b67a}
/* A parent utility's score: hollow star in the same colour */
.tp-parent .tps{background:transparent;box-shadow:inset 0 0 0 1.5px currentColor}
.tp-parent .tps1{color:#ff3722}.tp-parent .tps2{color:#ff8622}.tp-parent .tps3{color:#e0b400}.tp-parent .tps4{color:#5fb00c}.tp-parent .tps5{color:#00b67a}
/* Best overall: the Power Switch score section */
.lane.l-best{--lc:#0f7c86;--ld:#0a5960;--lt:#3c5c5f;background:#e4f3f4}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .lane.l-best{--lc:#5fc9d1}}
:root[data-theme="dark"] .lane.l-best{--lc:#5fc9d1}
.lc-of{font-size:.55em;font-weight:600;margin-left:2px;opacity:.7}
.lc-parts{font-size:.78rem;color:var(--muted)}
.lc-break.lc-save{color:var(--cheap);font-size:.9rem}
.score-cell{font-weight:700}
.score-partial{font-weight:600;color:var(--muted)}
