/* Aplikacja time4china (PWA, /aplikacja/) – wygląd jak strony pobierania. Kolory: jasny/ciemny motyw (localStorage „theme” jak na stronie). */
:root{--ink:#13221E;--ink-soft:#4F5E59;--ink-faint:#8A9893;--line:#DDE3DF;--line-strong:#C5CEC9;--bg:#ECEFEA;--surface:#FFFFFF;--surface-2:#F4F6F3;--accent:#B23A2B;--accent-soft:rgba(178,58,43,.1);--jade:#2E6A5C;--jade-soft:rgba(46,106,92,.11);--shadow:0 12px 32px rgba(19,34,30,.1);--top:56px;--tabs:62px;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ink:#EDF1EE;--ink-soft:#B4C0BB;--ink-faint:#7E8C87;--line:#2E3734;--line-strong:#3D4844;--bg:#141817;--surface:#1D2321;--surface-2:#242B28;--accent:#D24E3C;--accent-soft:rgba(210,78,60,.14);--jade:#7FB9A8;--jade-soft:rgba(127,185,168,.13);--shadow:0 12px 32px rgba(0,0,0,.35);color-scheme:dark}}
:root[data-theme="dark"]{--ink:#EDF1EE;--ink-soft:#B4C0BB;--ink-faint:#7E8C87;--line:#2E3734;--line-strong:#3D4844;--bg:#141817;--surface:#1D2321;--surface-2:#242B28;--accent:#D24E3C;--accent-soft:rgba(210,78,60,.14);--jade:#7FB9A8;--jade-soft:rgba(127,185,168,.13);--shadow:0 12px 32px rgba(0,0,0,.35);color-scheme:dark}
html[lang="en"] [data-l="pl"],html[lang="pl"] [data-l="en"]{display:none !important}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:400 16px/1.55 "Manrope",system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;padding-bottom:calc(var(--tabs) + env(safe-area-inset-bottom))}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none !important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- górny pasek ---------- */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;height:calc(var(--top) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.logo{display:block;height:30px}
.logo img{display:block;height:30px;width:auto}
.logo .dark{display:none}
:root[data-theme="dark"] .logo .light{display:none} :root[data-theme="dark"] .logo .dark{display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo .light{display:none} :root:not([data-theme="light"]) .logo .dark{display:block}}
.tools{display:flex;align-items:center;gap:8px}
.seg{display:flex;gap:2px;padding:3px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
.seg button{border:0;background:none;color:var(--ink-soft);font-size:.74rem;font-weight:800;letter-spacing:.04em;padding:5px 11px;border-radius:999px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.icon-btn{display:grid;place-items:center;width:36px;height:36px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.icon-btn svg{width:18px;height:18px}
.theme .i-sun{display:none}
:root[data-theme="dark"] .theme .i-sun{display:block} :root[data-theme="dark"] .theme .i-moon{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme .i-sun{display:block} :root:not([data-theme="light"]) .theme .i-moon{display:none}}

/* ---------- treść ---------- */
.view{max-width:640px;margin:0 auto;padding:18px 16px 28px}
.h1{margin:4px 0 4px;font-size:1.6rem;line-height:1.2;letter-spacing:-.02em}
.sub{margin:0 0 18px;color:var(--ink-soft);font-size:.95rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}
.card + .card,.card + .plans,.plans + .card{margin-top:14px}
.card h2{margin:0 0 6px;font-size:1.1rem;line-height:1.3}
.card p{margin:0 0 10px;color:var(--ink-soft);font-size:.92rem}
.card p:last-child{margin-bottom:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border:0;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:.95rem;text-decoration:none;cursor:pointer}
.btn svg{width:18px;height:18px}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.btn.block{width:100%}
.btn:focus-visible,.icon-btn:focus-visible,.seg button:focus-visible,.tab:focus-visible,.plan-card:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.steps{margin:6px 0 14px;padding:0;list-style:none;counter-reset:s}
.steps li{position:relative;padding:6px 0 6px 38px;font-size:.92rem;color:var(--ink-soft)}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:4px;width:26px;height:26px;border-radius:50%;background:var(--jade-soft);color:var(--jade);display:grid;place-items:center;font-weight:800;font-size:.85rem}
.steps b{color:var(--ink)}
.field{display:flex;gap:8px}
.field input{flex:1;min-width:0;min-height:44px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);font-size:.95rem}
.field input:focus{outline:2px solid var(--jade);outline-offset:1px;border-color:transparent}
.msg{margin:10px 0 0;padding:10px 14px;border-radius:12px;font-size:.88rem;font-weight:600;background:var(--jade-soft);color:var(--jade)}
.msg.err{background:var(--accent-soft);color:var(--accent)}
.muted{color:var(--ink-faint);font-size:.82rem}
.link{color:var(--ink-soft);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-strong)}

/* instalacja */
.install{display:flex;gap:14px;align-items:flex-start;background:var(--jade-soft);border-color:transparent;box-shadow:none}
.install img{flex:none;width:44px;height:44px}
.install h2{font-size:1rem}
.install .btn{margin-top:4px}
.install .x{margin-left:auto;flex:none;border:0;background:none;color:var(--ink-faint);font-size:1.3rem;line-height:1;cursor:pointer;padding:0 2px}
.ios-share{display:inline-block;width:18px;height:18px;vertical-align:-3px;color:var(--jade)}

/* lista planów */
.plans{display:grid;gap:12px}
.plan-card{display:grid;grid-template-columns:96px 1fr;gap:0;align-items:stretch;min-height:104px;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:var(--shadow);cursor:pointer;text-align:left;padding:0;width:100%}
.plan-card img{width:100%;height:100%;object-fit:cover;background:var(--surface-2)}
.plan-card .pc{padding:12px 14px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.plan-card b{font-size:1rem;line-height:1.25}
.plan-card small{display:block;margin-top:2px;color:var(--ink-soft);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ok{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:.76rem;font-weight:800;color:var(--jade)}
.ok svg{width:14px;height:14px}
.add-more{margin-top:18px}
.add-more summary{cursor:pointer;color:var(--ink-soft);font-weight:700;font-size:.92rem;list-style:none;display:flex;align-items:center;gap:8px}
.add-more summary::-webkit-details-marker{display:none}
.add-more summary::before{content:"+";display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);font-weight:800}
.add-more[open] summary::before{content:"–"}
.add-more .card{margin-top:12px}

/* ---------- konto (logowanie kodem) ---------- */
.login{display:grid;gap:10px}
.login p{margin:0}
.lbl{font-weight:700;font-size:.9rem}
.login input{min-height:48px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);font-size:1rem;width:100%}
.login input:focus{outline:2px solid var(--jade);outline-offset:1px;border-color:transparent}
.login .code-in{font-size:1.6rem;font-weight:800;letter-spacing:.3em;text-align:center}
.login .btn[disabled]{opacity:.6}
.linkbtn{border:0;background:none;padding:0;color:var(--ink-soft);font-weight:700;font-size:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.back-link{display:inline-block;margin:0 0 6px;font-size:.9rem}
.back-link::before{content:"‹ "}
.acct-line{display:flex;align-items:center;gap:8px;margin:-6px 0 14px;font-size:.86rem;color:var(--ink-soft);text-decoration:none}
.acct-line svg{flex:none;width:16px;height:16px}
.acct-line b{color:var(--ink)}
.card.acct{margin-top:14px}
.btns{display:flex;flex-wrap:wrap;gap:8px}

/* ---------- kurs juana ---------- */
.conv{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.conv-row{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;border:1px solid var(--line-strong);border-radius:16px;background:var(--surface)}
.conv-row:has(input:focus){outline:2px solid var(--jade);outline-offset:1px;border-color:transparent}
.conv-row input{flex:1;width:0;min-width:0;border:0;background:none;font-size:1.6rem;font-weight:800;padding:4px 0;outline:none}
.conv-row .sel-btn{min-height:40px;border-color:var(--line);border-radius:12px;background:var(--surface-2);font-size:.9rem}
.swap{justify-self:center;margin:-4px 0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
.chips button{min-height:36px;padding:6px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);font-weight:700;font-size:.88rem;cursor:pointer}
.rate-info{margin:12px 0 0;font-size:.84rem;color:var(--ink-soft)}
.rate-info b{color:var(--ink)}
.rate-tbl{width:100%;border-collapse:collapse;margin-top:6px;font-size:.92rem}
.rate-tbl td{padding:8px 0;border-top:1px solid var(--line)}
.rate-tbl td:last-child{text-align:right;font-weight:700}

/* ---------- info ---------- */
.list{margin:0;padding:0;list-style:none}
.list li{padding:10px 0;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink-soft)}
.list li:first-child{border-top:0;padding-top:0}
.list b{display:block;color:var(--ink)}
.links{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:4px}

/* ---------- listy w stylu ustawień (Informacje, Konto) ---------- */
.group-h{margin:24px 4px 8px;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.view > .group:first-of-type,.h1 + .group-h{margin-top:12px}
.group{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.group-note{margin:8px 6px 0;font-size:.8rem;line-height:1.45;color:var(--ink-faint)}
.row{display:flex;align-items:center;gap:14px;width:100%;min-height:58px;padding:12px 14px 12px 16px;border:0;border-top:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.row:first-child{border-top:0}
.row:not(.static):hover{background:var(--surface-2)}
.row:not(.static):active{background:var(--line)}
.row:focus-visible{outline:2px solid var(--jade);outline-offset:-2px}
.row.static{cursor:default}
.ri{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--jade-soft);color:var(--jade)}
.ri svg{width:19px;height:19px}
.rt{flex:1;min-width:0}
.rt b{display:block;font-size:.95rem;font-weight:700;line-height:1.3}
.rt small{display:block;margin-top:2px;font-size:.84rem;line-height:1.45;color:var(--ink-soft)}
.rt small b{display:inline;font-size:inherit;color:var(--ink)}
.rv{flex:none;font-weight:800;font-size:1rem;color:var(--ink)}
.chev{flex:none;display:grid;color:var(--ink-faint)}
.chev svg{width:18px;height:18px}
.row.danger .rt b{color:var(--accent)}
.row.danger .ri{background:var(--accent-soft);color:var(--accent)}
.ver{margin:26px 0 4px;text-align:center;font-size:.78rem;color:var(--ink-faint)}
/* konto */
.avatar{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--bg);font-weight:800;font-size:1.4rem}
.avatar svg{width:28px;height:28px}
.profile{display:flex;align-items:center;gap:14px;margin:4px 0 0;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.pt{min-width:0}
.pt b{display:block;font-size:1rem;line-height:1.3;overflow-wrap:anywhere}
.pt small{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:.84rem;color:var(--ink-soft)}
.dot{width:8px;height:8px;border-radius:50%;background:#34A853}
.acct-hero{margin:4px 0 0;padding:26px 20px 20px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:18px}
.acct-hero .avatar{margin:0 auto 14px;width:64px;height:64px;background:var(--jade-soft);color:var(--jade)}
.acct-hero h2{margin:0 0 6px;font-size:1.25rem;line-height:1.25}
.acct-hero p{margin:0 auto 18px;max-width:34ch;color:var(--ink-soft);font-size:.92rem}
.acct-hero + .group{margin-top:14px}

/* ---------- dolne zakładki ---------- */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:center;height:calc(var(--tabs) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line)}
.tab{flex:1;max-width:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;color:var(--ink-faint);font-size:.72rem;font-weight:700;text-decoration:none;cursor:pointer}
.tab svg{width:23px;height:23px}
.tab[aria-current="page"]{color:var(--accent)}

/* ---------- czytnik planu ----------
   Telefon: jeden pasek (wstecz, tytuł + bieżący dzień, spis, ustawienia) + pasek postępu; spis i ustawienia w panelu wysuwanym.
   Komputer (od 1000 px): panel boczny – plan, język, waluta, PDF i spis z podświetleniem bieżącej strony. */
body.reading{padding-bottom:0}
body.reading .top,body.reading .tabs{display:none}
body.sheet-open{overflow:hidden}
.rd-side{display:none}
.rd-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:6px;min-height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 8px 0;background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.rd-bar .icon-btn{flex:none;border-color:transparent;background:transparent}
.rd-bar .icon-btn:hover{background:var(--surface-2)}
.rd-bar-t{flex:1;min-width:0;padding:0 2px;line-height:1.25}
.rd-bar-t b{display:block;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-bar-t small{display:block;margin-top:1px;font-size:.78rem;font-weight:600;color:var(--jade);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-prog{position:sticky;top:calc(60px + env(safe-area-inset-top));z-index:21;display:block;height:3px;width:0;margin-top:-3px;background:var(--accent);border-radius:0 2px 2px 0}
.reader{display:block;max-width:860px;margin:0 auto}
.reader-loading{padding:60px 16px;text-align:center;color:var(--ink-soft)}
@media (min-width:1000px){
  .rd{display:grid;grid-template-columns:304px minmax(0,1fr);min-height:100vh}
  .rd-side{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;padding:22px 16px 28px;background:var(--surface);border-right:1px solid var(--line)}
  .rd-bar{display:none}
  .rd-prog{position:fixed;top:0;left:304px;margin:0;z-index:30}
  .reader{padding:28px 36px 64px}
}
.rd-back{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin:0 0 18px;padding:6px 10px 6px 6px;border-radius:10px;color:var(--ink-soft);font-weight:700;font-size:.9rem;text-decoration:none}
.rd-back:hover{background:var(--surface-2);color:var(--ink)}
.rd-back svg{width:18px;height:18px}
.rd-plan{display:flex;gap:12px;align-items:center;margin:0 0 16px}
.rd-plan img{flex:none;width:58px;height:58px;border-radius:14px;object-fit:cover;background:var(--surface-2)}
.rd-plan b{display:block;font-size:1rem;line-height:1.25}
.rd-plan small{display:block;margin-top:3px;font-size:.8rem;line-height:1.35;color:var(--ink-soft)}
.rd-opts{display:grid;gap:10px;margin:0 0 18px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rd-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.86rem;font-weight:700;color:var(--ink-soft)}
.rd-opt .sel-btn{min-height:36px}
.rd-pdf{min-height:40px;font-size:.88rem}
.rd-toc-h{margin:0 8px 6px;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.toc{list-style:none;margin:0;padding:0}
.toc button{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border:0;border-radius:10px;background:none;color:var(--ink);font:inherit;font-size:.88rem;line-height:1.3;text-align:left;cursor:pointer}
.toc button:hover{background:var(--surface-2)}
.toc button.on{background:var(--jade-soft);color:var(--jade)}
.toc button:focus-visible{outline:2px solid var(--jade);outline-offset:-2px}
.toc-n{flex:none;display:grid;place-items:center;min-width:28px;height:28px;padding:0 4px;border-radius:8px;background:var(--surface-2);color:var(--ink-soft);font-weight:800;font-size:.8rem}
.toc button.on .toc-n{background:var(--jade);color:var(--surface)}
.toc-dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.55}
.toc-t{min-width:0}
.toc-t small{display:block;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}
.toc button.on .toc-t small{color:inherit;opacity:.8}
/* panel wysuwany (telefon): spis i ustawienia */
.sheet-bg{position:fixed;inset:0;z-index:40;background:rgba(10,16,14,.45)}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;display:flex;flex-direction:column;max-height:80vh;padding:6px 14px calc(16px + env(safe-area-inset-bottom));background:var(--bg);border-radius:22px 22px 0 0;box-shadow:0 -14px 40px rgba(0,0,0,.25)}
.sheet-grip{width:40px;height:4px;margin:6px auto 8px;border-radius:2px;background:var(--line-strong)}
.sheet-h{display:flex;align-items:center;justify-content:space-between;margin:0 4px 10px}
.sheet-h b{font-size:1.1rem}
.sheet-h .icon-btn{font-size:1.4rem;line-height:1}
.sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.sheet .toc{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:6px}
.sheet .row .seg{flex:none}
.cur-ri{font-weight:800;font-size:.92rem}
.chk{flex:none;display:grid;color:var(--jade)}
.chk svg{width:20px;height:20px}
@media (min-width:1000px){.sheet,.sheet-bg{display:none !important}}

/* powiększony adres dla kierowcy */
.zoom{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));background:#fff;color:#13221E;text-align:center}
.zoom-zh{font-family:"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;font-weight:700;font-size:clamp(40px,13vw,104px);line-height:1.25;word-break:break-all}
.zoom-sub{max-width:520px;font-size:1.05rem;color:#4F5E59}
.zoom-hint{position:absolute;left:0;right:0;bottom:calc(18px + env(safe-area-inset-bottom));font-size:.82rem;color:#8A9893}
.zoom-acts{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:4px}
.zoom-a{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:10px 18px;border-radius:999px;border:1px solid #C5CEC9;background:#fff;color:#13221E;font:700 .95rem/1.2 "Manrope",system-ui,sans-serif;text-decoration:none;cursor:pointer}
.zoom-a svg{width:19px;height:19px}
.zoom-a:active{background:#F4F6F3}
.zoom-x{position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;width:44px;height:44px;border-radius:50%;border:1px solid #DDE3DF;background:#fff;font-size:1.5rem;line-height:1;cursor:pointer;color:#13221E}

/* gotowe do wylotu: wynik sprawdzenia planu w telefonie; zachęta do instalacji na iPhonie w czytniku */
.ready-card{margin:0 0 14px;box-shadow:none}
.ready-card.is-ok{background:var(--jade-soft);border-color:transparent}
.ready-card.is-warn{background:var(--accent-soft);border-color:transparent}
.ready-card .tc-k{color:var(--ink-soft);opacity:1}
.ready-card.is-ok .tc-k{color:var(--jade)}
.ready-card.is-warn .tc-k{color:var(--accent)}
.ready-card h2{display:flex;align-items:center;gap:8px;margin:4px 0 6px;font-size:1.08rem;line-height:1.3}
.ready-card h2 svg{width:20px;height:20px;flex:none;color:var(--jade)}
.ready-card p small{color:var(--ink-faint)}
.ready-ios{padding:10px 12px;border-radius:12px;background:var(--surface);color:var(--ink) !important;font-size:.86rem !important}
.ready-card .btn{min-height:40px;padding:8px 16px;font-size:.9rem}
.ios-tip{display:flex;align-items:flex-start;gap:10px;margin:10px 12px 0;padding:10px 12px;border-radius:12px;background:var(--jade-soft);font-size:.86rem;line-height:1.45}
.ios-tip p{flex:1;margin:0}
.ios-tip .x{flex:none;border:0;background:none;color:var(--ink-faint);font-size:1.3rem;line-height:1;cursor:pointer;padding:0 2px}
@media (min-width:1000px){.ios-tip{margin:16px 36px 0}}

/* prośba o opinię po podróży */
.review-card{margin:0 0 14px;background:var(--accent-soft);border-color:transparent;box-shadow:none}
.review-card .tc-k{color:var(--accent);opacity:1}
.review-card h2{margin:4px 0 6px;font-size:1.08rem;line-height:1.3}
.rv-acts{display:flex;align-items:center;gap:18px;margin-top:6px}
.rd-rate{display:flex;align-items:center;gap:8px;margin:2px 0 0;padding:6px 8px;border-radius:10px;color:var(--ink-soft);font-weight:700;font-size:.86rem;text-decoration:none}
.rd-rate:hover{background:var(--surface-2);color:var(--ink)}
.rd-rate svg{width:17px;height:17px;flex:none;color:#E0A100}

/* inne plany (katalog): przewijane karty + pakiet */
.more{margin-top:28px}
.more .group-h{margin-top:0}
.more-sub{margin:-2px 4px 12px}
.more-row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:2px 16px 12px;scrollbar-width:none}
.more-row::-webkit-scrollbar{display:none}
@media (min-width:700px){.more-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));overflow:visible;margin:0;padding:2px 0 12px}}
.mp{flex:0 0 216px;scroll-snap-align:start;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:var(--shadow)}
.mp img{display:block;width:100%;height:118px;object-fit:cover;background:var(--surface-2)}
.mp-b{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px 12px}
.mp-b b{font-size:.95rem;line-height:1.25}
.mp-b small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.78rem;line-height:1.35;color:var(--ink-soft)}
.mp-p{margin-top:auto;padding-top:6px;font-weight:800;font-size:.92rem;color:var(--accent)}
.mp-bundle{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;margin-top:6px;padding:14px 16px;border-radius:16px;background:var(--jade-soft);color:inherit;text-decoration:none}
.mp-bundle .tc-k{grid-column:1 / -1;color:var(--jade);opacity:1}
.mp-bundle b{font-size:1rem;line-height:1.3}
.mp-bundle small{grid-column:1;font-size:.8rem;color:var(--ink-soft)}
.mp-bundle .mp-p{grid-column:2;grid-row:2 / span 3;margin:0;padding:0;font-size:1.05rem}
.mp-bundle + .mp-bundle{margin-top:10px}
.mp-link{flex:1;display:flex;flex-direction:column;min-width:0;color:inherit;text-decoration:none}
.mp-f{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px 12px}
.mp-f .mp-p{margin:0;padding:0}
.mp-buy{min-height:34px;padding:6px 16px;font-size:.84rem}
.mp-cta{grid-column:1;margin-top:6px;font-size:.84rem;font-weight:800;color:var(--jade)}
.more-note{margin-top:12px}
.mp-link:focus-visible,.mp-bundle:focus-visible{outline:2px solid var(--jade);outline-offset:2px}

/* dziś w podróży: karta na liście planów, plakietka na karcie planu, data dnia 1 w czytniku */
.today-card{display:block;margin:0 0 14px;padding:16px 18px;border-radius:18px;background:var(--ink);color:var(--bg);text-decoration:none;box-shadow:var(--shadow)}
.today-card:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.tc-k{display:block;font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;opacity:.72}
.today-card b{display:block;margin-top:5px;font-size:1.12rem;line-height:1.3}
.today-card small{display:block;margin-top:3px;font-size:.84rem;opacity:.75}
.today-card .btn{margin-top:12px;min-height:40px;padding:8px 16px;font-size:.9rem}
.pc-f{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px}
.pc-f .ok{margin-top:0}
.trip-chip{font-size:.76rem;font-weight:800;color:var(--ink-soft)}
.trip-chip.on{color:var(--accent)}
.trip-in{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:38px;max-width:210px;padding:6px 12px 6px 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);font-weight:700;font-size:.86rem;white-space:nowrap;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.trip-in svg{flex:none;width:17px;height:17px;color:var(--accent)}
.trip-in span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.trip-in.is-empty{color:var(--ink-soft);font-weight:600}
.trip-in:hover{border-color:var(--ink-faint)}
.trip-in:focus-visible,.trip-in[aria-expanded="true"]{outline:none;border-color:var(--jade);box-shadow:0 0 0 3px var(--jade-soft)}
/* kalendarz daty dnia 1 (popover przy przycisku; telefon – karta od dołu) */
.dpk{position:fixed;z-index:57;width:308px;padding:14px 14px 12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 18px 48px rgba(10,16,14,.24)}
.dpk-bg{position:fixed;inset:0;z-index:56;background:rgba(10,16,14,.45)}
/* lista wyboru (waluta, plan): przycisk jak pole daty, opcje w tym samym okienku co kalendarz */
.sel-btn{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:38px;max-width:210px;padding:6px 10px 6px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;font-size:.86rem;white-space:nowrap;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.sel-btn .sel-v{min-width:0;overflow:hidden;text-overflow:ellipsis}
.sel-btn svg{flex:none;width:16px;height:16px;color:var(--ink-faint);transition:transform .15s}
.sel-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.sel-btn:hover{border-color:var(--ink-faint)}
.sel-btn:focus-visible,.sel-btn[aria-expanded="true"]{outline:none;border-color:var(--jade);box-shadow:0 0 0 3px var(--jade-soft)}
.dpk.sel-pop{width:auto;max-width:min(340px,calc(100vw - 24px));max-height:min(420px,calc(100vh - 24px));padding:6px;overflow-y:auto}
.dpk.sel-pop.is-sheet{max-width:420px;max-height:70vh;padding:8px}
.sel-o{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;border-radius:10px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.sel-o + .sel-o{margin-top:2px}
.sel-o:hover{background:var(--surface-2)}
.sel-o:focus-visible{outline:2px solid var(--jade);outline-offset:-2px}
.sel-o.is-on{background:var(--jade-soft)}
.sel-b{flex:none;display:grid;place-items:center;min-width:36px;height:36px;padding:0 6px;border-radius:10px;background:var(--surface-2);color:var(--ink);font-weight:800;font-size:.84rem}
.sel-o.is-on .sel-b{background:var(--jade);color:var(--surface)}
.sel-img{flex:none;width:44px;height:44px;border-radius:10px;object-fit:cover;background:var(--surface-2)}
.sel-t{flex:1;min-width:0}
.sel-t b{display:block;font-size:.92rem;font-weight:700;line-height:1.3}
.sel-t small{display:block;margin-top:1px;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--ink-faint)}
.sel-c{flex:none;display:grid;color:var(--jade);visibility:hidden}
.sel-c svg{width:18px;height:18px}
.sel-o.is-on .sel-c{visibility:visible}
.is-sheet .sel-o{padding:11px 12px}
.dpk.is-sheet{left:12px;right:12px;top:auto;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;max-width:420px;margin:0 auto;padding:16px}
.dpk-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
.dpk-head b{font-size:1rem;font-weight:800;text-transform:capitalize}
.dpk-nav{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:10px;background:var(--surface-2);color:var(--ink);cursor:pointer}
.dpk-nav:hover{background:var(--line)}
.dpk-nav svg{width:18px;height:18px}
.dpk-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:3px}
.dpk-wd{padding:2px 0 6px;text-align:center;font-size:.7rem;font-weight:800;letter-spacing:.04em;color:var(--ink-faint)}
.dpk-day{position:relative;height:38px;padding:0;border:0;border-radius:10px;background:none;color:var(--ink);font:inherit;font-size:.88rem;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer}
.is-sheet .dpk-day{height:42px}
.dpk-day:hover{background:var(--surface-2)}
.dpk-day.out{color:var(--ink-faint)}
.dpk-day.today::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--accent)}
.dpk-day.in{border-radius:0;background:var(--accent-soft)}
.dpk-day.s,.dpk-day.e{background:var(--accent);color:#fff}
.dpk-day.s:not(.e){border-radius:10px 0 0 10px}
.dpk-day.e:not(.s){border-radius:0 10px 10px 0}
.dpk-day.s.today::after,.dpk-day.e.today::after{background:#fff}
.dpk-grid.is-pv .dpk-day.s,.dpk-grid.is-pv .dpk-day.e{background:color-mix(in srgb,var(--accent) 72%,var(--surface))}
.dpk-grid.is-pv .dpk-day.in{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.dpk-day:focus-visible,.dpk-nav:focus-visible,.dpk-btns button:focus-visible{outline:2px solid var(--jade);outline-offset:-2px}
.dpk-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.dpk-sum{min-width:0;font-size:.8rem;line-height:1.4;color:var(--ink-soft)}
.dpk-sum b{display:block;color:var(--ink);font-weight:700}
.dpk-sum small{display:block;font-size:inherit}
.dpk-btns{flex:none;display:flex;gap:2px}
.dpk-btns button{padding:7px 10px;border:0;border-radius:8px;background:none;color:var(--jade);font:inherit;font-size:.82rem;font-weight:800;cursor:pointer}
.dpk-btns button:hover{background:var(--jade-soft)}
@media (prefers-reduced-motion:no-preference){.dpk{animation:dpkIn .16s ease-out}.dpk.is-sheet{animation:dpkUp .2s ease-out}}
@keyframes dpkIn{from{opacity:0;transform:translateY(-4px)}}
@keyframes dpkUp{from{opacity:0;transform:translateY(18px)}}
.trip-row label{cursor:pointer}
.rd-help{margin:-2px 0 0;font-size:.78rem;line-height:1.45;color:var(--ink-faint)}
.rd-today{min-height:40px;font-size:.88rem}
.sheet-today{margin:0 0 10px}
.sheet-sos{margin-top:14px}
.toc button.is-today .toc-n{box-shadow:inset 0 0 0 2px var(--accent)}
.toc-t small em{font-style:normal;color:var(--accent)}
.toc button.is-done .toc-n{background:var(--jade);color:var(--surface)}
.toc-n svg{width:15px;height:15px}
.toc-prog{flex:none;margin-left:auto;padding-left:6px;font-size:.72rem;font-weight:800;color:var(--jade)}

/* szukaj w planie (panel boczny na komputerze, panel wysuwany na telefonie) */
.find{position:relative;display:block}
.find-ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);display:grid;color:var(--ink-faint);pointer-events:none}
.find-ic svg{width:18px;height:18px}
.find-in{display:block;width:100%;min-height:44px;padding:8px 12px 8px 38px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);font-size:16px;-webkit-appearance:none;appearance:none}
.find-in:focus{outline:2px solid var(--jade);outline-offset:0}
.rd-side .find{margin:0 0 14px}
.rd-side .find-in{min-height:38px;font-size:.9rem}
.sheet.find-sheet{height:80vh}
.hits-n,.hits-empty{margin:12px 6px 8px;font-size:.8rem;color:var(--ink-faint)}
.hits-l{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hits-l button{display:block;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:.88rem;line-height:1.4;text-align:left;cursor:pointer}
.hits-l button:hover{background:var(--surface-2)}
.hits-l small{display:block;margin-bottom:2px;font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint)}
.hits-l mark{background:rgba(255,196,0,.42);color:inherit;border-radius:3px;padding:0 1px}
.rd-side .hits{margin-bottom:14px}
.rd-sos{display:flex;align-items:center;gap:8px;margin-top:auto;padding:16px 8px 0;color:var(--accent);font-weight:800;font-size:.86rem;text-decoration:none}
.rd-toc-h + nav + .rd-sos{margin-top:18px;border-top:1px solid var(--line)}
.rd-sos svg{width:18px;height:18px;flex:none}

/* przycisk SOS w nagłówku i widok „Pomoc w nagłych wypadkach” */
.sos-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 13px;border-radius:999px;background:var(--accent);color:#fff;font-weight:800;font-size:.76rem;letter-spacing:.08em;text-decoration:none}
.sos-btn:focus-visible,.sos-num:focus-visible,.sos-back:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.sos-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px -6px;padding:6px 10px 6px 6px;border-radius:10px;color:var(--ink-soft);font-weight:700;font-size:.9rem;text-decoration:none}
.sos-back svg{width:18px;height:18px}
.sos-nums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sos-num{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);color:inherit;text-decoration:none;box-shadow:var(--shadow)}
.sos-num b{font-size:2rem;line-height:1.05;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}
.sos-num span{font-size:.86rem;font-weight:700;color:var(--ink-soft)}
.sos-num:active{background:var(--surface-2)}
.post + .post{margin-top:12px}
.post-h{padding:14px 16px 12px}
.post-h b{display:block;font-size:.98rem;line-height:1.3}
.post-h small{display:block;margin-top:3px;font-size:.8rem;line-height:1.45;color:var(--ink-faint)}
.ri.hot{background:var(--accent-soft);color:var(--accent)}
.zh-t{font-family:"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;font-size:1.1rem}
.sos .steps{margin:0 0 6px}
.sos .steps span[lang="zh"]{font-family:"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;color:var(--ink)}
.sos .card .muted{margin:0}
.sos-note{display:block;width:100%;min-height:120px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface);font-size:.95rem;line-height:1.5;resize:vertical}
.sos-note:focus{outline:2px solid var(--jade);outline-offset:1px}
.group-h label{cursor:pointer}

/* lista przed wylotem: karta na liście planów i widok #lista (punkty checklisty do odhaczenia, daty sprzedaży biletów) */
.list-card{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding:14px 12px 14px 16px;color:inherit;text-decoration:none;box-shadow:none}
.list-card:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.lc-ic{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--jade-soft);color:var(--jade)}
.lc-ic svg{width:22px;height:22px}
.lc-b{flex:1;min-width:0}
.list-card .tc-k{color:var(--jade);opacity:1}
.list-card.is-now .tc-k{color:var(--accent)}
.list-card b{display:block;margin-top:2px;font-size:1.02rem;line-height:1.3}
.list-card small{display:block;margin-top:1px;font-size:.84rem;color:var(--ink-soft)}
.list-card.is-done{background:var(--jade-soft);border-color:transparent}
.list-card.is-done .lc-ic{background:var(--jade);color:var(--surface)}
.lc-bar{display:block;height:5px;margin-top:8px;border-radius:3px;background:var(--line);overflow:hidden}
.lc-bar i{display:block;height:100%;border-radius:3px;background:var(--jade);transition:width .25s}
.lp-prog{margin:0;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.lp-prog b{font-size:.95rem}
.lp-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.lp-n{flex:none;font-variant-numeric:tabular-nums;color:var(--jade)}
.lp-item{align-items:flex-start}
.lp-chk{flex:none;display:grid;place-items:center;width:26px;height:26px;margin-top:1px;border:2px solid var(--line-strong);border-radius:8px;color:transparent;transition:background .15s,border-color .15s}
.lp-chk svg{width:16px;height:16px}
.lp-item.is-done .lp-chk{background:var(--jade);border-color:var(--jade);color:var(--surface)}
.lp-t{display:block;font-size:.95rem;line-height:1.35}
.rt .lp-t b{display:inline;font-size:inherit;font-weight:800}
.lp-t .zh{font-family:"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;font-weight:600}
.lp-item.is-done .lp-t{color:var(--ink-faint);text-decoration:line-through;text-decoration-color:var(--line-strong)}
.lp-item.is-done .rt small{color:var(--ink-faint)}
.rt .lp-hint{margin-top:6px;padding:6px 10px;border-radius:10px;background:var(--jade-soft);color:var(--jade);font-weight:600}
.lp-item.is-now:not(.is-done) .lp-hint{background:var(--accent-soft);color:var(--accent)}
.lp-item.is-done .lp-hint{background:var(--surface-2);color:var(--ink-faint)}
.lp-hint em{font-style:normal;font-weight:800;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.lp-item.is-done .lp-hint em{display:none}
.rt .lp-when{color:var(--jade);font-weight:700}
.sel-btn.lp-sel{max-width:58%}
.lp-tip{background:var(--jade-soft);border-color:transparent;box-shadow:none}
.lp-tip p{color:var(--ink)}
.lp-py{font-style:normal;color:var(--ink-faint)}
.lp-foot{margin-top:22px}
.rd-list{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--surface-2);color:var(--ink);font-weight:700;font-size:.86rem;text-decoration:none}
.rd-list:hover{background:var(--line)}
.rd-list:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.rd-list svg{flex:none;width:18px;height:18px;color:var(--jade)}
.rd-list small{margin-left:auto;font-weight:800;font-size:.8rem;color:var(--jade);font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){.lc-bar i,.lp-chk{transition:none}}

/* komunikat na dole */
.toast{position:fixed;left:50%;bottom:calc(var(--tabs) + 14px + env(safe-area-inset-bottom));z-index:60;transform:translateX(-50%);max-width:calc(100% - 32px);padding:11px 18px;border-radius:14px;background:var(--ink);color:var(--bg);font-size:.9rem;font-weight:700;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s}
.toast.on{opacity:1}
body.reading .toast{bottom:calc(18px + env(safe-area-inset-bottom))}
body:has(.zoom) .toast{bottom:calc(58px + env(safe-area-inset-bottom))}
.busy{position:fixed;inset:0;z-index:55;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 80%,transparent)}
.busy .card{display:flex;align-items:center;gap:12px;max-width:320px}
.spin{width:22px;height:22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:2.4s}.toast{transition:none}}
