/* Driver pages (/app/*): mobile-first, 390 px design (Main/Week/Offer of K25). Builds on ui.css. */
body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.app{max-width:560px;margin:0 auto;padding:calc(18px + env(safe-area-inset-top)) 16px calc(40px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}
.app .card{margin:0}
.apphead{display:flex;align-items:center;justify-content:space-between;gap:12px}
.apphead .ttl{display:flex;flex-direction:column;gap:2px;min-width:0}
.apphead h1{margin:0;font-size:clamp(21px,6.4vw,26px);font-weight:700;line-height:1.15}
.apphead .cap{font-size:13px;color:var(--mut);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.apphead .nav{display:flex;gap:8px;flex:none}
.live{width:8px;height:8px;border-radius:99px;background:var(--acc);display:inline-block;box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 25%,transparent)}
.hero{padding:20px;display:flex;flex-direction:column;gap:18px}
.hero .top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.hero .big{font-size:clamp(34px,11vw,44px);font-weight:700;line-height:1}.hero .big small{font-size:.55em;color:var(--mut);font-weight:600}
.hero .src{font-size:13px;color:var(--mut)}
.hero .col{display:flex;flex-direction:column;gap:6px;min-width:0}
.delta{font-size:13px;font-weight:600;color:var(--fg2);white-space:nowrap}
.mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.three.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.three .stat{padding:14px;border-radius:10px}.three .stat .v{font-size:28px}
.three .stat .lbl{text-transform:none;letter-spacing:0;font-size:13px;color:var(--fg2);font-weight:500}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.two .stat{padding:16px;gap:8px}.two .stat .v{font-size:26px}.two .stat .v.big{font-size:32px}
.two .stat .lbl{letter-spacing:.08em}
.chart{padding:16px 16px 12px}
.chart .hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:8px;flex-wrap:wrap}
.chart .hd span:last-child{font-size:12px;color:var(--mut)}
.sechd{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 4px 0}
.sechd h2{margin:0;font-size:20px}
.list{display:flex;flex-direction:column;gap:12px}
/* ride card (K124): 6 px decision rail on the left (colour = verdict by the driver's thresholds, grey = no verdict) */
.ride{text-decoration:none;color:var(--fg);scroll-margin-top:12px;margin:0}
a.ride:active{background:var(--s2)}
.ride .in{padding:12px 14px;display:grid;gap:8px;min-width:0}
.ride .rtop{display:flex;align-items:center;gap:8px;min-width:0}
.ride .price{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:6px;font-family:var(--f-num);font-size:22px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1;white-space:nowrap}
.ride .price .muted{font-family:var(--f-txt);font-size:14px;font-weight:400;letter-spacing:0}
.ride .when{flex:0 1 auto;min-width:0;font-size:13px;color:var(--mut);text-align:right;line-height:1.25}
.ride .thumbbox{width:48px;height:50px;border-radius:8px}
.ride .rates{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ride .rates .chip{font-size:13px;min-height:32px}
.ride .rates .fare{font-size:13px;color:var(--fg2)}
.ride .rates .badge{font-size:12px}
.ride .rm{font-size:12px;color:var(--mut)}
.ride[hidden]{display:none}
.ride .stack{display:flex;flex-direction:column;gap:6px}
.thumbbox{width:64px;height:66px;border-radius:12px;background:var(--s2);border:1px solid var(--line2);flex:none;overflow:hidden;display:grid;place-items:center;font-size:10px;color:var(--mut);text-align:center;line-height:1.2}
.thumbbox img{width:100%;height:100%;object-fit:cover;display:block}
.route{display:grid;grid-template-columns:12px minmax(0,1fr);column-gap:8px;row-gap:4px;align-items:start}
.route .pin{width:10px;height:10px;margin-top:5px;border-radius:99px;border:2px solid var(--mut)}.route .sq{width:10px;height:10px;margin-top:5px;border-radius:2px;background:var(--mut)}
.route .rt{display:flex;flex-direction:column;min-width:0}
.route span.t{font-size:14px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--fg2)}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chips .chip{font-size:13px}
.phasetxt{font-size:12px;color:var(--mut)}
/* week */
.wbars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end;height:140px}
.wbars a{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:6px;height:140px;text-decoration:none;color:var(--mut)}
.wbars .amt{font-size:11px;text-align:center}
.wbars .bar{border-radius:8px;background:var(--q);min-height:4px}.wbars .bar.zero{background:var(--line2)}
.wbars a.sel .bar{background:var(--q-hi)}
.wlbl{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:8px}
.wlbl span{text-align:center;font-size:12px;font-weight:600;color:var(--mut)}.wlbl span.sel{color:var(--fg)}
a.dayrow{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;text-decoration:none;color:var(--fg)}
a.dayrow .dt{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:var(--s2)}
a.dayrow .dt small{font-size:11px;color:var(--mut);text-transform:uppercase}.dt b{font-size:20px}
a.dayrow .tx{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:14px}.dayrow .tx small{font-size:12px;color:var(--mut)}
a.dayrow .amt{font-size:20px;font-weight:700;white-space:nowrap}
/* offer view */
.ovtop{display:flex;align-items:center;gap:12px}
.ovtop .ttl{display:flex;flex-direction:column;min-width:0}.ovtop .cap{font-size:13px;color:var(--mut)}.ovtop .h{font-size:20px;font-weight:600}
.ovmap{overflow:hidden;padding:0}
.ovmap .map{height:240px;border-radius:0;margin:0}
.ovmap .mapbtn{margin:12px;width:calc(100% - 24px);min-height:52px}
.ovbody{padding:18px;display:flex;flex-direction:column;gap:14px}
.ovbody .row1{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ovbody .bigp{font-size:34px;font-weight:700;line-height:1}
.rt2{display:grid;grid-template-columns:14px minmax(0,1fr);column-gap:10px;row-gap:4px}
.rt2 .pin{width:10px;height:10px;margin-top:6px;border-radius:99px;border:2px solid var(--acc)}.rt2 .sq{width:10px;height:10px;margin-top:6px;border-radius:2px;background:var(--fg)}
.rt2 .ln{width:2px;height:18px;background:var(--line2);margin-left:4px}
.rt2 .a{font-size:15px;overflow-wrap:anywhere}.rt2 .b{font-size:12px;color:var(--mut)}
.tl{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;font-size:14px;align-items:center}
.tl .tm{color:var(--mut)}.tl .st{display:flex;align-items:center;gap:8px}.tl .du{font-size:13px}.tl small{font-size:12px;color:var(--mut)}
.shotcard{display:flex;gap:12px;align-items:center;padding:14px;text-decoration:none;color:var(--fg)}
.shotcard .thumbbox{width:92px;height:96px}
.shotcard .tx{display:flex;flex-direction:column;gap:6px}.shotcard .tx b{font-size:15px;font-weight:600}.shotcard .tx span{font-size:13px;color:var(--mut)}
.bigbtn{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;border-radius:16px;border:0;background:var(--acc);color:var(--on-acc);font:600 16px var(--f-txt);cursor:pointer;margin:0}
.saved{margin:0;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--acc) 14%,transparent);color:var(--acc);font-weight:600}
/* bottom sheet (dialog) */
dialog.sheet{margin:auto 0 0;width:100%;max-width:none;border:0;border-top:1px solid var(--line2);border-radius:24px 24px 0 0;background:var(--s1);color:var(--fg);padding:12px 16px calc(24px + env(safe-area-inset-bottom))}
dialog.sheet::backdrop{background:var(--shade)}
dialog.sheet form{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.grab{width:40px;height:4px;border-radius:99px;background:var(--line2);align-self:center;margin-bottom:6px}
.sheet h2{margin:0;font-size:20px}.sheet p{margin:0 0 4px;font-size:13px;color:var(--mut)}
.opt{min-height:52px;border-radius:14px;border:1px solid var(--line2);background:var(--s2);color:var(--fg);font:500 15px var(--f-txt);padding:0 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;margin:0}
.opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0;min-height:0}
.opt .mk{color:var(--acc);font-weight:700;visibility:hidden}
.opt:has(input:checked){border-color:var(--acc)}.opt:has(input:checked) .mk{visibility:visible}
.opt:has(input:focus-visible){outline:2px solid var(--link)}
.sheet .save{min-height:52px;border-radius:14px;border:0;background:var(--acc);color:var(--on-acc);font:600 16px var(--f-txt);cursor:pointer;margin-top:6px}
.sheet .cancel{min-height:44px;border:0;background:none;color:var(--mut);cursor:pointer}
.foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;color:var(--mut);font-size:13px}
.loginbox{margin:8vh auto 0}
.about summary{cursor:pointer;color:var(--mut);min-height:44px;display:flex;align-items:center}
.about p{font-size:.85rem;color:var(--mut)}
/* /join/<code>: public invitation page (K28) */
.join{max-width:560px;margin:0 auto}
.joinhead{padding:18px 4px 4px}.joinhead h1{font-size:clamp(30px,9vw,40px);margin:.1em 0 .3em}
.steps{list-style:none;margin:12px 0;padding:0}
.step{display:flex;gap:14px;align-items:flex-start}.step h2{margin:.1em 0 .4em}
.step .n{flex:none;width:34px;height:34px;border-radius:12px;background:var(--inv);color:var(--on-inv);display:grid;place-items:center;font-weight:700}
.step>div{min-width:0;flex:1}
.join .bigcode{font-size:clamp(20px,6.4vw,28px);letter-spacing:.08em}
.shotcard{width:100%;font:inherit;text-align:left;cursor:pointer}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.92);display:flex}
.lightbox[hidden]{display:none}
.lbscroll{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;touch-action:pinch-zoom pan-x pan-y;padding:max(64px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom))}
.lbscroll img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.lbclose{position:absolute;top:max(10px,env(safe-area-inset-top));right:10px;z-index:101;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(30,30,30,.85);color:#fff;font-size:24px;line-height:1;cursor:pointer}
body.lbopen{overflow:hidden}
/* K42: week page, grouped offers per day */
details.daygrp{padding:0;overflow:hidden}
details.daygrp>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;min-height:44px}
details.daygrp>summary::-webkit-details-marker{display:none}
details.daygrp>summary .dt{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:var(--s2)}
details.daygrp>summary .dt small{font-size:11px;color:var(--mut);text-transform:uppercase}details.daygrp>summary .dt b{font-size:20px}
details.daygrp>summary .tx{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:14px}details.daygrp>summary .tx small{font-size:12px;color:var(--mut)}
details.daygrp>summary .amt{font-size:20px;font-weight:700;white-space:nowrap}
details.daygrp[open]>summary{border-bottom:1px solid var(--line)}
.daylist{padding:12px;display:flex;flex-direction:column;gap:12px}.daylist .ride{margin:0}
.daymore{padding:0 16px}.daylink{margin:0 12px 12px;display:inline-flex;min-height:44px;align-items:center;text-decoration:none}
/* heat map: weekday x hour */
.heatbest{margin:0 0 10px;font-size:14px;color:var(--fg2)}
.hgrid{display:grid;grid-template-columns:28px repeat(7,minmax(0,1fr));gap:3px;align-items:stretch}
.hgrid .wd{text-align:center;font-size:12px;font-weight:600;color:var(--mut);padding-bottom:2px}
.hgrid .hr{font-size:11px;color:var(--mut);display:grid;place-items:center;font-variant-numeric:tabular-nums}
.hgrid .cell{all:unset;box-sizing:border-box;min-height:30px;border-radius:7px;display:grid;place-items:center;font-size:12px;font-weight:600;cursor:pointer;color:var(--fg)}
.hgrid .cell.e{background:var(--line2);opacity:.45;cursor:default}
.hgrid .cell:focus-visible{outline:2px solid var(--link);outline-offset:1px}
.hgrid .cell.l0{background:var(--line2)}
.hgrid .cell.l1{background:var(--h1)}.hgrid .cell.l2{background:var(--h2)}
.hgrid .cell.l3{background:var(--h3);color:var(--h3t)}.hgrid .cell.l4{background:var(--h4);color:var(--h4t)}
.hgrid .cell.l5{background:var(--q-hi);color:var(--bg)}
.hgrid .cell.best{outline:2px solid var(--fg);outline-offset:1px}.hgrid .cell.on{box-shadow:0 0 0 2px var(--link)}
.heatempty{display:inline-block;width:14px;height:10px;border-radius:3px;border:1px dashed var(--line2);margin-right:6px;vertical-align:-1px}
.heatscale{display:inline-flex;gap:2px;vertical-align:middle}.heatscale i{width:14px;height:10px;border-radius:3px;display:block}
.heatscale .l1{background:var(--h1)}.heatscale .l2{background:var(--h2)}
.heatscale .l3{background:var(--h3)}.heatscale .l4{background:var(--h4)}.heatscale .l5{background:var(--q-hi)}
/* S2: "Coś się nie zgadza" box */
.rw{display:flex;flex-direction:column;gap:6px;min-width:0}.rw[hidden]{display:none}
.repbox{border-radius:14px;padding:0 4px}
.repbox>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;color:var(--mut);font-size:14px;font-weight:600}
.repbox>summary::-webkit-details-marker{display:none}
.repbox>summary::before{content:"\2691";margin-right:8px}
.repbox form{display:flex;flex-direction:column;gap:6px;padding:4px 0 8px}
.repbox textarea{margin:0;resize:vertical}
.repbox.big{margin-top:4px}
form.repbox{padding:0}
/* Desktop (>= 900 px): wider centered column, offer lists in two columns, bottom sheet becomes a centered dialog. Phone layout stays as above. */
@media (min-width:900px){
  .app{max-width:1100px;padding:28px 32px 56px;gap:20px}
  .app>*{min-width:0}
  .apphead h1{font-size:30px}
  .apphead .cap{font-size:14px}
  .segmented{max-width:420px}
  .list,.daylist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
  .dflow .list{display:flex;flex-direction:column;align-items:stretch;gap:10px}
  .daylist{padding:16px}
  .mini{gap:12px}
  .two{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  .three{gap:12px}
  .wbars{height:200px;gap:14px}.wbars a{height:200px}
  .wlbl{gap:14px}
  .ovmap .map{height:420px}
  .ovbody{padding:24px}
  .shotcard .thumbbox{width:140px;height:146px}
  .route span.t{white-space:normal}
  dialog.sheet{margin:auto;max-width:520px;border:1px solid var(--line2);border-radius:24px;padding:20px 24px}
  .foot{padding-top:8px;border-top:1px solid var(--line)}
}

/* K118: top bar, auth page, empty states, primary actions (K124: solid accent, no gradient). */
.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--s1) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:env(safe-area-inset-top) 16px 0}
.topin{display:flex;align-items:center;gap:10px;min-height:60px;max-width:528px;margin:0 auto}
.brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--fg);font:700 19px var(--f-num);letter-spacing:-.02em;min-height:44px;flex:none}
.brand img{display:block;border-radius:7px}
.tabs{display:inline-flex;gap:2px;padding:3px;border-radius:14px;background:var(--s2);border:1px solid var(--line);margin:0 auto}
.tabs a{display:grid;place-items:center;min-height:44px;padding:0 16px;border-radius:11px;color:var(--fg2);font-weight:600;font-size:15px;text-decoration:none}
.tabs a:hover{background:var(--line)}
.tabs a.on,.tabs a.on:hover{background:var(--inv);color:var(--on-inv)}
.tools{display:flex;align-items:center;gap:6px;flex:none}
.tools form{margin:0}
.tbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:0 12px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--fg2);font:600 14px var(--f-txt);cursor:pointer;text-decoration:none;margin:0}
.tbtn:hover{background:var(--s2);color:var(--fg)}
.tbtn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.tbtn span{display:none}
.app.hasbar{padding-top:16px}
.todaychip{min-height:44px;text-decoration:none}
.apphead{flex-direction:column;align-items:stretch;gap:6px}
.aprow{display:flex;align-items:center;justify-content:space-between;gap:12px}
.aprow .nav{display:flex;gap:8px;align-items:center}
.aprow h1{margin:0;font-size:clamp(21px,5.8vw,28px);line-height:1.15;min-width:0}
/* auth page */
.app.authpage{max-width:420px;min-height:100vh;min-height:100dvh;justify-content:center;gap:14px}
.authbox{display:flex;flex-direction:column;gap:14px;align-items:stretch;text-align:center}
.authlogo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:6px}
.authlogo img{display:block}
.authlogo .wm{font:700 34px var(--f-num);letter-spacing:-.03em}
.authbox h1{margin:0;font-size:clamp(24px,7vw,30px);line-height:1.2}
.authbox .lead{margin:0;color:var(--mut)}
.idps{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:6px}
.gbtn{min-height:44px;display:flex;justify-content:center}
.idp{width:100%;max-width:320px;margin:0;min-height:44px;border-radius:999px}
.idp[disabled]{opacity:.55;cursor:not-allowed}
.tokbox{margin-top:8px;text-align:left}
.tokbox summary{cursor:pointer;color:var(--mut);min-height:44px;display:flex;align-items:center;justify-content:center;font-size:14px;list-style:none}
.tokbox summary::-webkit-details-marker{display:none}
.tokbox summary:hover{color:var(--fg)}
.tokbox[open] summary{color:var(--fg)}
.tokbox form{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line2);border-radius:16px;background:var(--s1)}
.tokbox form p{margin:0;font-size:13px}
.tokbox label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.app.authpage .foot{justify-content:center;gap:16px}
.footl{display:inline-flex;gap:16px;flex-wrap:wrap}
.foot a{color:var(--mut);display:inline-flex;align-items:center;min-height:44px}
.foot a:hover{color:var(--fg)}
/* empty state */
.emptystate{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:36px 24px}
.emptystate svg{width:56px;height:56px;fill:none;stroke:var(--mut);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:4px}
.emptystate h2{margin:0;font-size:20px}
.emptystate p{margin:0;max-width:46ch;color:var(--mut)}
.emptystate .btn{margin-top:10px}
p.empty.card{padding:20px;text-align:center}
/* primary actions: inverse pill (green is reserved for decisions) */
.app .btn:not(.sec):not(.bad):not(.off):not(.acc),.app .bigbtn,.sheet .save{background:var(--inv);color:var(--on-inv);border:0;border-radius:999px}
.app .btn:not(.sec):not(.bad):not(.off):not(.acc):hover,.app .bigbtn:hover,.sheet .save:hover{filter:brightness(1.12)}
.app .btn.sec{border-radius:999px}
.app .bigbtn,.sheet .save{min-height:52px}
.app :is(.btn,.bigbtn,.tbtn,.chip,.iconbtn,.tabs a,.brand):focus-visible,.sheet .save:focus-visible{outline:3px solid var(--link);outline-offset:2px}
.fbbtn,.opt,.sheet .cancel,.repbox>summary,.filters .chip{min-height:44px}
@media (min-width:640px){.tbtn span{display:inline}}
@media (min-width:600px) and (max-width:899px){.topin{max-width:528px}}
@media (min-width:900px){
  .topbar{padding-left:32px;padding-right:32px}
  .topin{max-width:960px;gap:16px}
  .tabs{margin:0 auto}
  .app.hasbar{max-width:1024px;padding-top:24px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:start}
  .app.hasbar>*{grid-column:1/-1}
  .app.hasbar .hero .mini{gap:14px}
  .aprow h1{font-size:30px}
  .app.hasbar .wbars{height:170px}.app.hasbar .wbars a{height:170px}
  .app .foot{border-top:1px solid var(--line)}
}
.app.authpage{width:100%}

/* K124 day page (/app/day, also the "Oferty" tab of the Android WebView): mobile first, desktop = hero + two columns */
.pfilter{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:0 4px;min-width:0}
.pfilter .pchips{display:flex;gap:6px;max-width:100%;overflow-x:auto}
.pfilter .chip{min-height:44px;padding:0 16px;text-decoration:none;flex:none}
.pfilter .pnote{font-size:12px}
.dhero{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hk{background:var(--s1);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.hk .lbl{font-size:12px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--mut)}
.hk .v{font-family:var(--f-num);font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.hk .v small{font-size:.5em;font-weight:600;color:var(--mut);margin-left:3px}
.hk .s{font-size:12px;color:var(--mut)}
.hk .s b.up{color:var(--g)}.hk .s b.dn{color:var(--y)}
.hk .goal{margin:6px 0 2px}
.hk.main{background:var(--inv);color:var(--on-inv);border-color:transparent}
.hk.main .lbl,.hk.main .s,.hk.main .v small{color:var(--on-inv-mut)}
.est{margin:-8px 4px 0;font-size:12px;color:var(--mut)}
.note{margin:-8px 4px 0}
.dgrid{display:flex;flex-direction:column;gap:16px;min-width:0}
.dgrid>*{margin:0;min-width:0}
.dextra{display:flex;flex-direction:column;gap:16px}
.dextra>*{margin:0}
.dextra .three.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cardhd{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ct{margin:0;font-size:17px;font-weight:700}
.colsplit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.colsplit .c{border-radius:var(--r-sm);padding:12px;display:grid;gap:2px;min-width:0}
.colsplit .c.g{background:var(--g-fill);color:var(--g)}.colsplit .c.y{background:var(--y-fill);color:var(--y)}.colsplit .c.r{background:var(--r-fill);color:var(--r)}
.colsplit .v{font-family:var(--f-num);font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.colsplit .k{font-size:12px;font-weight:500}
.dflow .sechd{padding:4px 0 8px}
.dflow .list{gap:10px}
.dflow .segmented.filters{display:grid}
.dflow .segmented button{padding:0 14px}
@media (min-width:900px){
  .dhero{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:12px}
  .hk{padding:18px 20px}
  .hk .v{font-size:34px}
  .dgrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start;
    grid-template-areas:"co fl" "ho fl" "ri fl" "ex fl";grid-template-rows:auto auto auto 1fr}
  .dgrid.nc{grid-template-areas:"ho fl" "ri fl" "ex fl";grid-template-rows:auto auto 1fr}
  .dgrid.nh{grid-template-areas:"co fl" "ri fl" "ex fl";grid-template-rows:auto auto 1fr}
  .dgrid.nc.nh{grid-template-areas:"ri fl" "ex fl";grid-template-rows:auto 1fr}
  .dgrid>.colors{grid-area:co}.dgrid>.dflow{grid-area:fl}.dgrid>.hchart{grid-area:ho}.dgrid>.ringc{grid-area:ri}.dgrid>.dextra{grid-area:ex}
}

/* offer page (K124 stage 3): verdict card with the overlay replica, "Na tle dnia", two columns on desktop */
.ovl{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px 5px;border-radius:14px;color:#fff;font-family:var(--f-num);font-weight:700;background:var(--n)}
.ovl .pills{display:flex;gap:6px}
.ovl .pills span{background:#fff;border-radius:9px;padding:4px 10px;font-size:18px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;color:#4b5568}
.ovl small{font-family:var(--f-txt);font-weight:600;font-size:11px;opacity:.95}
.ovl.g{background:#1b8a4c}.ovl.g .pills span{color:#1b8a4c}
.ovl.y{background:#e5a400}.ovl.y .pills span{color:#9a6700}
.ovl.r{background:#d7262d}.ovl.r .pills span{color:#c0262d}
.ovl.n small{color:#1a2338}
.vc .in{padding:16px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}
.vc .ovl .pills{flex-direction:column;align-items:stretch;text-align:center}
.vc .verdict{margin:0;font-size:26px;font-weight:700;line-height:1.1}
.vc .verdict.g{color:var(--g)}.vc .verdict.y{color:var(--y)}.vc .verdict.r{color:var(--r)}
.vc .why{margin:6px 0 0;font-size:15px;line-height:1.35;color:var(--fg);overflow-wrap:anywhere}
.vc .mut13{margin:6px 0 0;font-size:13px;color:var(--mut)}
.pricecard .pc{display:flex;flex-direction:column;gap:4px;min-width:0}
.pricecard .chips{display:flex;flex-wrap:wrap;gap:6px}
.dayvs{display:flex;flex-direction:column;gap:14px}
.dayvs .lbl{margin:0}
.cmpg .gt{margin:0 0 8px;font-size:13px;color:var(--mut);font-weight:600}
.cmp{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;font-size:14px;align-items:center}
.cmp .bar{grid-column:1/-1;height:6px;border-radius:3px;background:var(--s2);position:relative;margin-bottom:6px}
.cmp .bar b{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--fg2)}
.cmp .num{text-align:right}.cmp .num.g{color:var(--g)}.cmp .num.y{color:var(--y)}.cmp .num.r{color:var(--r)}.cmp small{font-family:var(--f-txt);font-size:12px}
.ovstats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ovstats .stat{padding:16px;gap:8px}.ovstats .stat .v{font-size:26px}
.ovgrid,.ovcol{display:flex;flex-direction:column;gap:16px;min-width:0}
.ovgrid>*,.ovcol>*{margin:0;min-width:0}
.acts{display:flex;flex-direction:column;gap:4px}
@media (max-width:899px){.ovgrid,.ovcol{display:contents}}
@media (min-width:900px){
  .ovgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
  .ovcol.r .ovmap{order:-2}.ovcol.r .shotcard{order:-1}
  .vc .in{padding:20px}
}

/* K124 week page (stage 4): hero tiles like the day page, "Dni" card (bars + day groups), two columns on desktop */
.whero .hk.main{grid-column:1/-1}
.hk.acc,.hk.wide{grid-column:1/-1}.hk.acc{gap:8px}
.hk .ap{display:grid;gap:4px}
.hk .aph{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.hk .aph .v{font-size:24px}
.hk .ap+.ap{border-top:1px solid var(--line);padding-top:8px}
.wgrid,.wcol{display:flex;flex-direction:column;gap:16px;min-width:0}
.wgrid>*,.wcol>*{margin:0;min-width:0}
.wdays .wbars{margin-top:4px}
.wdays .wlist{margin-top:16px;gap:10px}
.wdays details.daygrp{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md)}
.wdays details.daygrp>summary{grid-template-columns:56px minmax(0,1fr) auto;align-items:start}
.wdays details.daygrp>summary .amt{font-family:var(--f-num);align-self:center}
.dcol{display:flex;gap:6px;flex-wrap:wrap}
.dcol .chip{padding:2px 7px;font-size:12px;font-weight:600}
.rates .kvt td{padding:10px 6px}
.rates .kvt td.n{text-align:right;white-space:nowrap}
.rates .kvt td.d{font-size:12px;color:var(--fg2);text-align:right}
.rates .kvt td:first-child{padding-left:0}.rates .kvt td:last-child{padding-right:0}
.wcol .three.two .stat .v{font-size:26px}
@media (min-width:900px){
  .whero{grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr}
  .whero .hk.main,.whero .hk.acc,.whero .hk.wide{grid-column:auto}
  .whero .hk .v{white-space:nowrap;font-size:clamp(24px,2.3vw,34px)}
  /* per-platform acceptance (current week): a wide tile under the four others, platforms side by side */
  .whero:has(.hk.acc){grid-template-columns:1.4fr 1fr 1fr 1fr}
  .whero .hk.acc{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 24px;align-items:start}
  .whero .hk.acc>.lbl{grid-column:1/-1}
  .whero .hk.acc .ap+.ap{border-top:0;padding-top:0}
  .wgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}
  .wdays .wlist,.wdays .daylist{grid-template-columns:minmax(0,1fr)}
  .wdays .daylist{padding:12px}
  .wdays .wbars{height:170px}.wdays .wbars a{height:170px}
}

/* K124 etap 6/7: three or more sections in the top bar (K125: Moje jazdy · Stawki · Ustawienia); up to 899 px the tab row drops to a second line, one equal cell per section (44 px cells) */
.tabs{max-width:100%;overflow-x:auto;scrollbar-width:none;flex:0 1 auto}.tabs::-webkit-scrollbar{display:none}
.tabs a{white-space:nowrap}
@media (max-width:899px){
  .topin:has(.tabs a:nth-child(3)){flex-wrap:wrap;min-height:0;padding:6px 0 8px;row-gap:6px}
  .topin:has(.tabs a:nth-child(3)) .brand{min-height:40px}
  .topin:has(.tabs a:nth-child(3)) .tabs{order:3;width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);overflow:visible}
  .topin:has(.tabs a:nth-child(3)) .tabs a{padding:0 6px;font-size:14px;min-height:44px;overflow:hidden;text-overflow:ellipsis}
  .topin:has(.tabs a:nth-child(3)) .tools{margin-left:auto}
}
@media (max-width:640px){.tabs a{padding:0 12px;font-size:14px}
  .topin:has(.tabs a:nth-child(3)) .tabs a{padding:0 4px;font-size:14px}
}

/* K124 etap 7 (review fixes) */
.app .card:not(.rtable) :is(.cardhd,p,td,li,.hint,.small)>a:not(.btn):not(.chip):not(.iconbtn):not(.plain){color:var(--acc);text-decoration:none}
.app .card:not(.rtable) :is(.cardhd,p,td,li,.hint,.small)>a:not(.btn):not(.chip):not(.iconbtn):not(.plain):hover{text-decoration:underline}
.about summary{cursor:pointer;color:var(--fg2);font-size:15px;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none}
.about summary::-webkit-details-marker{display:none}
.about summary::after{content:"\25BE";font-size:16px;transition:transform .15s}
.about[open] summary::after{transform:rotate(180deg)}
.hk.main{border-color:var(--inv-bd)}
.vc{grid-template-columns:minmax(0,1fr)}.vc>i{display:none}
.wsub{margin:-8px 0 12px;font-size:12px}
.wdays details.daygrp .daylist{background:var(--s2);margin:0 12px 12px;border-radius:var(--r-md);padding:12px}
.tilecard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;padding:16px}
.tcell{display:flex;flex-direction:column;gap:4px;min-width:0}
.tcell .v{font-family:var(--f-num);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.1}
.tcell .s{font-size:12px;color:var(--mut)}
.tcell.km{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px}
.plat{padding:12px 16px}
.ptab{margin-top:4px}
.ptab th,.ptab td{padding:8px 6px;font-size:14px;vertical-align:middle;border-bottom:1px solid var(--line)}
.ptab thead th{font-size:11px;padding-top:4px}
.ptab tbody th{text-transform:none;letter-spacing:0;font-size:14px;font-weight:700;color:var(--fg)}
.ptab th.n,.ptab td.n{text-align:right;white-space:nowrap}
.ptab th:first-child,.ptab td:first-child{padding-left:0}.ptab th:last-child,.ptab td:last-child{padding-right:0}
.ptab tbody tr:last-child th,.ptab tbody tr:last-child td{border-bottom:0}
.pfilter .pchips{display:inline-grid;max-width:420px}
.pfilter .pchips a{padding:0 8px;white-space:nowrap}
.ride .rm{font-size:12px;color:var(--fg2);line-height:1.3}
.ride .phasetxt{color:var(--fg2)}
.ride .thumbbox{flex:none}.ride .when,.ride .meta{min-width:0}
.ride .rates:empty{display:none}
.ride .rates.r1 .chip{white-space:nowrap}
@media (min-width:700px){
  .dhero,.whero:has(.hk.acc){grid-template-columns:1.4fr 1fr 1fr 1fr}
  /* a past week has five tiles (the acceptance tile is a plain one): the earnings tile takes a full row on a tablet, five columns on a desktop */
  .whero:not(:has(.hk.acc)){grid-template-columns:repeat(2,minmax(0,1fr))}
  .whero:not(:has(.hk.acc)) .hk.main{grid-column:1/-1}
  .whero:has(.hk.acc) .hk.main,.whero .hk.wide{grid-column:auto}
  .whero .hk.acc:has(.ap+.ap){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;align-items:start}
  .whero .hk.acc>.lbl{grid-column:1/-1}
  .whero .hk.acc .ap+.ap{border-top:0;padding-top:0}
  .hk{padding:16px}
  .hk .v{font-size:clamp(24px,3.4vw,34px)}
}
@media (min-width:700px) and (max-width:899px){
  .app{max-width:760px}
  .topin{max-width:728px}
  .whero>.hk:last-child:not(.main){grid-column:1/-1}
  .tilecard{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:900px){
  .dhero{grid-template-columns:1.4fr 1fr 1fr 1fr}
  .tilecard{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tcell.km{grid-column:auto;border-top:0;padding-top:0}
  .tcell+.tcell{border-left:1px solid var(--line);padding-left:16px}
  .whero .hk.acc{grid-column:1/-1}
}
.app.reportpage{max-width:624px}
.idps .idp,.idps .gbtn{width:100%;max-width:320px}
.tokbox .bigbtn{width:100%;max-width:320px;margin:12px auto 0}
@media (min-width:900px){.whero:not(:has(.hk.acc)){grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr}.whero:not(:has(.hk.acc)) .hk.main{grid-column:auto}}
/* K118 cz. 2: PL · EN switch in the footer of the driver pages */
.langsw{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--mut)}
.foot .langsw a{min-height:44px;min-width:32px;justify-content:center;font-weight:600;text-decoration:none;border-radius:8px}
.foot .langsw a[aria-current]{color:var(--fg);text-decoration:underline;text-underline-offset:4px}
a.authlogo{text-decoration:none;color:inherit}
