/* 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; --volt:#f5b400;
  --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; --volt:#f7c948; 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; --volt:#f7c948; color-scheme:dark}
a{color:var(--accent)}
/* Logo: "Strøm" in ink, "sparer" in the saving green, and an ø whose slash is a lightning bolt */
.logo,.logo>span{display:flex;align-items:baseline}
.logo{width:fit-content;align-self:flex-start;font-family:var(--display);font-weight:800;letter-spacing:-.035em;line-height:1;white-space:nowrap;color:var(--ink)}
.logo-s{color:var(--cheap)}
a.logo{text-decoration:none;border-radius:6px}
a.logo:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.logo-o{width:.62em;height:.86em;margin:0 .01em 0 .02em;overflow:visible;transform:translateY(.06em)}
.land-logo{font-size:2.1rem;margin-bottom:-2px}
.onb-logo{font-size:1.35rem;margin-bottom:22px;--logo-cut:var(--surface)}
.main-logo{font-size:1.3rem;margin-bottom:-8px}
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}
/* Hover only where there is a mouse: on a phone the hover look would stick after a tap */
@media (hover:hover){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}
@media (hover:hover){.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}}
/* The carousel reaches the section's edges, so cards slide out at the edge instead of being cut off inside it */
/* No scrollbar: phones swipe, and wider screens have the ‹ › buttons */
.lane-car{grid-auto-flow:column;grid-auto-columns:200px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:none;
  margin-inline:-20px;padding-inline:20px;scroll-padding-inline:20px}
.lane-car::-webkit-scrollbar{display:none}
.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)}
/* Drawn inside the card: an outline would be cut off by the carousel's edge */
.lc-top{box-shadow:inset 0 0 0 2px var(--lc)}
/* Last card of a carousel: see them all in the table */
.lcard.lc-end{display:flex !important;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;text-decoration:none;
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--lc) 35%,transparent)}
.lc-end-n{font-family:var(--display);font-weight:800;font-size:1.45rem;line-height:1.15;color:var(--lc)}
.lc-end-how{font-size:.85rem;color:var(--lt)}
.lc-end-go{font-size:1.6rem;line-height:1;color:var(--lc);margin-top:8px;transition:transform .2s}
.lc-end:focus-visible{outline:2px solid var(--lc);outline-offset:-5px}
@media (hover:hover){.lc-end:hover{box-shadow:inset 0 0 0 2px var(--lc)}.lc-end:hover .lc-end-go{transform:translateX(4px)}}
@media (prefers-reduced-motion:reduce){.lc-end-go{transition:none}}
.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}
/* The figures shrink to fit a narrow button (five of them in "5+" on a phone) */
.ppl{max-width:100%;padding-inline:6px;box-sizing:border-box}
.ppl svg{fill:currentColor;flex:0 1 auto;min-width:0;height:auto}
.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,minmax(0,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:var(--surface);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:focus-visible{border-color:var(--accent)}
@media (hover:hover){.onb-list button:hover{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)}
.day td:last-child{white-space:nowrap;padding-left:12px}
@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}
@media (hover:hover){.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%;margin-inline:-14px;padding-inline:14px;scroll-padding-inline:14px}
  .lane-bridge{margin:-4px auto 4px}
  .teaser{padding:16px;border-radius:16px}
  .onb-card{padding:20px 18px;border-radius:20px}
  .onb-step{gap:16px}
}
/* Landing page: the spread in price and stars, then into onboarding */
.land{min-height:100vh;min-height:100dvh;box-sizing:border-box;display:flex;justify-content:center;align-items:center;padding:56px 16px 32px}
.land[hidden]{display:none}
.land-in{width:100%;max-width:600px;display:flex;flex-direction:column;gap:18px}
.land-main,.land-side{display:contents}
.land .onb-kicker{margin-bottom:-8px}
.land h1{font-size:2.5rem;line-height:1.08;text-wrap:balance}
.land h1 em{font-style:normal;color:var(--accent);white-space:nowrap}
.land-lead{margin:0;color:var(--muted);font-size:1.05rem}
.land-bars{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.lb{display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:baseline}
.lb-l{display:flex;gap:6px;align-items:center;font-size:.88rem;color:var(--muted)}
.lb-green .lb-l{color:var(--cheap);font-weight:700}
.lb-v{font-family:var(--display);font-weight:800;font-size:1.1rem;font-variant-numeric:tabular-nums}
.lb-bar{grid-column:1/-1;height:12px;border-radius:6px;background:color-mix(in srgb,var(--line) 60%,var(--bg));overflow:hidden}
.lb-bar i{display:block;height:100%;border-radius:6px;background:var(--c);transform-origin:left;animation:lb-grow .8s ease-out both}
.lb-dear{--c:var(--dear)}.lb-green{--c:var(--cheap)}.lb-cheap{--c:var(--accent)}
@keyframes lb-grow{from{transform:scaleX(0)}}
@media (prefers-reduced-motion:reduce){.lb-bar i{animation:none}}
.land-green{margin:-6px 0 0;font-size:.95rem;background:color-mix(in srgb,var(--cheap) 10%,var(--surface));border-radius:10px;padding:9px 12px}
.land-green[hidden]{display:none}
.land-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.lf{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px}
.lf-k{margin:0;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lf-big{margin:0;font-family:var(--display);font-weight:800;font-size:1.45rem;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap}
.lf-to{color:var(--muted);font-weight:400}
.lf-p{margin:0;font-size:.85rem;color:var(--muted)}
.land-go{margin-top:2px}
.land-small{margin:0;font-size:.78rem;color:var(--muted)}
/* Landing and getting started are dark, the pages after them light: ease the change */
body{transition:background-color .4s,color .4s}
@media (prefers-reduced-motion:reduce){body{transition:none}}
/* Under the button: we only show prices, we don't sell */
.land-neutral{margin:-6px 0 0;font-size:.82rem;color:var(--muted);text-align:center;text-wrap:balance}
.land-neutral svg{vertical-align:-2px;margin-right:5px}
@media (max-width:600px){
  .land{align-items:flex-start;padding-top:52px}
  .land-in{gap:16px}
  .land h1{font-size:2rem}
  .land-facts{grid-template-columns:1fr}
}
/* Phones: each product is a block instead of a table row too wide for the screen.
   The column heads stay as a row of sort buttons. */
@media (max-width:600px){
  .tablebox{overflow:visible}
  .cmp,.cmp thead,.cmp tbody{display:block;min-width:0}
  .cmp thead tr{display:flex;flex-wrap:wrap;gap:6px 20px;padding:10px 14px;border-bottom:1px solid var(--line)}
  .cmp th{width:auto !important;padding:0;border:0}
  .cmp th.num,.cmp th:nth-child(4){display:none}
  .cmp tbody tr{display:grid;grid-template-columns:1.6em 1fr auto auto;column-gap:12px;
    grid-template-areas:"num prod prod yr" "num prod prod vs" "num gr tp sc";padding:12px 14px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,var(--surface))}
  .cmp tbody tr:last-child{border-bottom:0}
  .cmp tr.is-cheaper{background:color-mix(in srgb,var(--cheap) 10%,var(--surface))}
  .cmp td,.cmp tr.is-cheaper td{padding:0;border:0;background:none}
  .cmp td.num{grid-area:num;padding:1px 0 0;width:auto;text-align:left}
  .cmp td.prod{grid-area:prod;min-width:0}
  .cmp td.yr{grid-area:yr;font-weight:700}
  .cmp td.vs{grid-area:vs;align-self:start}
  .cmp td.gr{grid-area:gr;text-align:left}.cmp td.tpc{grid-area:tp}.cmp td.sc{grid-area:sc}
  .cmp td.gr,.cmp td.tpc,.cmp td.sc{margin-top:8px;font-size:.8rem}
  .cmp td[data-label]::before{content:attr(data-label) " ";color:var(--muted)}
}
/* 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 Strømsparer 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)}
/* Desktop: a top bar with the pages, a wider page, and room used side by side */
.topbar{display:none}
@media (min-width:1024px){
  .lang-btn{position:fixed;top:17px}
  .wrap{max-width:1200px;padding-top:0;padding-left:32px;padding-right:32px}
  .topbar{display:flex;align-items:center;gap:28px;position:sticky;top:0;z-index:40;height:64px;padding-right:110px;
    background:var(--surface);box-shadow:0 0 0 100vmax var(--surface),0 1px 0 100vmax var(--line);clip-path:inset(0 -100vmax -1px)}
  .top-logo{font-size:1.4rem;align-self:center;margin-right:12px}
  .topbar a[data-nav]{color:var(--muted);font-weight:700;text-decoration:none;padding:20px 0;border-bottom:3px solid transparent}
  .topbar a[data-nav][aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
  .main-logo,.back{display:none}
  h1{font-size:2.2rem}
  /* Compare: your product stays in view on the left while the sections run on the right */
  .cmp-grid{display:grid;grid-template-columns:300px minmax(0,1fr);column-gap:28px;align-items:start}
  .cmp-grid>*{grid-column:2}
  .cmp-grid>.yours{grid-column:1;grid-row:1/span 30;position:sticky;top:88px;flex-direction:column;align-items:stretch;margin-bottom:0}
  .cmp-grid .yours-l{flex:none}
  .cmp-grid .yours-r{align-items:flex-start;text-align:left;margin-left:0;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--accent) 22%,var(--surface))}
  .cmp-grid .combo{max-width:none}
  .lane-car{grid-auto-columns:210px;padding-top:4px}
  /* Plan: the day's total and prices on the left, what to do on the right */
  #panel-plan:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);grid-template-rows:auto auto 1fr auto;gap:24px 36px;align-items:start}
  #panel-plan>*{grid-column:1/-1}
  #panel-plan>.total{grid-column:1;grid-row:2}
  #panel-plan>.plan-chart{grid-column:1;grid-row:3}
  #panel-plan>.plan-list{grid-column:2;grid-row:2/span 2}
  #panel-plan>.plan-note{grid-row:4}
  /* All products: the whole table fits, and its heads stay under the top bar */
  .tablebox{overflow:visible}
  .cmp thead th{position:sticky;top:64px;z-index:2;background:var(--surface)}
  .cmp thead tr th:first-child{border-top-left-radius:14px}.cmp thead tr th:last-child{border-top-right-radius:14px}
  /* Landing: one column, so the bars, the green line, the button and the row of three facts share one width */
  .land{align-items:center}
  .land-in{max-width:816px}
  .land-facts{margin-top:10px}
  .land h1{font-size:3rem}
}
@media (min-width:1024px) and (hover:hover){
  .lane-car .lcard{transition:transform .15s,box-shadow .15s}
  .lane-car .lcard:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(24,34,44,.12)}
  .cmp tbody tr:hover td{background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
  .topbar a[data-nav]:hover{color:var(--ink)}
}
@media (min-width:1024px) and (prefers-reduced-motion:reduce){.lane-car .lcard{transition:none}}
/* Landing and getting started: a dark green-black with only the logo's colours on it,
   the saving green for everything you can pick or press and the bolt's yellow for the big number */
:root[data-intro][data-theme]{
  --bg:#0d1310; --surface:#151e19; --ink:#edf3ef; --muted:#9db0a5; --line:#24312a;
  --accent:#3ecf8e; --cheap:#3ecf8e; --dear:#c9705c; --volt:#ffd23f}
:root[data-intro] .land h1 em{color:var(--volt)}
:root[data-intro] .onb-next{background:var(--volt);color:#141a16}
/* The loading checklist on the dark page: plain dark rows; the colour sits in the icon and the result */
:root[data-intro] .ck-deal{--ckc:#f2883a}:root[data-intro] .ck-cheap{--ckc:#5b8dff}:root[data-intro] .ck-green{--ckc:#3ecf8e}:root[data-intro] .ck-trust{--ckc:#ac7dff}
:root[data-intro] .ck-row{background:#1b2520;box-shadow:inset 0 0 0 1px var(--line)}
:root[data-intro] .ck-ic{background:var(--ckc);color:#10160f}
:root[data-intro] .ck-val{color:var(--ckc)}
