/* Kaliestetyka — wspólne style (tokeny jasny/ciemny, szkło, karty, nawigacja, komponenty coachingu).
   Tokeny na górze: :root = jasny, :root[data-mode="dark"] = ciemny. Nie zmieniać kolorów bez decyzji Patryka. */
/* Layout: aplikacja mobilna — jedna kolumna max 520px, dolny pasek nawigacji, widoki przełączane w JS */
:root{
  color-scheme:light;
  --grid:rgba(255,255,255,.55);--nav-bg:rgba(255,255,255,.92);--glass:rgba(255,255,255,.66);--glass-strong:rgba(255,255,255,.94);--glass-solid:rgba(255,255,255,.94);--glass-line:rgba(255,255,255,.85);--glass-hi:rgba(255,255,255,.9);--glass-shadow:0 10px 30px rgba(60,40,140,.14);--glow1:rgba(107,78,240,.07);--glow2:rgba(222,47,123,.04);--frame:#24203A;--hint:#4A4460;
  --bg:#EFEDF6;--surface:#FFFFFF;--ink:#181524;--muted:#6D6883;--line:#DFDBEC;--edge:#CFC9E4;
  --kon:#6B4EF0;--kon-bg:#EEE9FF;--eks:#DE2F7B;--eks-bg:#FFE6F0;--izo:#C08A00;--izo-bg:#FFF3D2;
  --cta:#181524;--cta-btn:#6B4EF0;--cta-shadow:#4A32C0;
  --r:26px;
  --display:'Bricolage Grotesque','Trebuchet MS',sans-serif;
  --body:'Figtree',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --nav-h:56px;
}
:root[data-mode="dark"]{
  color-scheme:dark;
  --bg:#0E0C14;--surface:#191622;--ink:#F2F0FA;--muted:#A19BB8;--line:#28243A;--edge:#06050A;
  --kon:#8C74FF;--kon-bg:#251F45;--eks:#FF5E9F;--eks-bg:#3B1E2E;--izo:#E8AE2E;--izo-bg:#352A10;
  --cta:#0E0C15;--cta-btn:#6B4EF0;--cta-shadow:#3A2799;
  --grid:rgba(255,255,255,.018);--nav-bg:rgba(14,12,20,.9);--glass:rgba(26,23,36,.64);--glass-strong:rgba(25,22,34,.95);--glass-solid:rgba(25,22,34,.96);--glass-line:rgba(255,255,255,.10);--glass-hi:rgba(255,255,255,.14);--glass-shadow:0 12px 34px rgba(0,0,0,.45);--glow1:rgba(107,78,240,.075);--glow2:rgba(222,47,123,.04);--frame:#0A0910;--hint:#C9C4DD;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{background:var(--bg)}
body{
  font-family:var(--body);color:var(--ink);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;
  background-color:var(--bg);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-tap-highlight-color:transparent;
}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg)}
body{position:relative;z-index:0;min-height:100%}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(60% 40% at 10% 15%,var(--glow1),transparent 70%),radial-gradient(55% 40% at 95% 60%,var(--glow2),transparent 70%),radial-gradient(50% 35% at 20% 100%,var(--glow1),transparent 70%)}
.glass{background:var(--glass);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);border:1px solid var(--glass-line);box-shadow:inset 0 1px 0 var(--glass-hi),var(--glass-shadow)}
.glass.strong{background:var(--glass-strong);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glass{background:var(--glass-solid)}}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
a{color:inherit}
:focus-visible{outline:3px solid var(--kon);outline-offset:2px;border-radius:10px}

.app{max-width:520px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:12px calc(var(--nav-h) + 40px + env(safe-area-inset-bottom,0px))}

/* ---------- typografia ---------- */
.eyebrow{font-family:var(--mono);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
h1,h2,h3{font-family:var(--display);font-weight:800;margin:0;letter-spacing:-.02em;line-height:1.05;text-wrap:balance}
h1{font-size:32px;line-height:1.02;letter-spacing:-.03em}
h2{font-size:21px;line-height:1.1}
h3{font-size:17px;line-height:1.15}
.muted{color:var(--muted)}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:28px 4px 10px}
.sec-head .link{padding:10px 4px;margin:-10px -4px;font-family:var(--mono);font-weight:700;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--kon)}

/* ---------- karty ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 6px 0 var(--edge);isolation:isolate;-webkit-mask-image:-webkit-radial-gradient(white,black)}
.tap{cursor:pointer;transition:transform .16s cubic-bezier(.34,1.4,.64,1),box-shadow .16s}
@media (hover:hover){.tap:hover{transform:translateY(-3px);box-shadow:0 9px 0 var(--edge)}}
.tap:active{transform:translateY(4px);box-shadow:0 1px 0 var(--edge)}
.tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:100px;background:var(--kon-bg);color:var(--kon);white-space:nowrap}
.tag.pink{background:var(--eks-bg);color:var(--eks)}
.tag.amber{background:var(--izo-bg);color:var(--izo)}
.tag.ghost{background:var(--bg);color:var(--muted)}

/* ---------- topbar ---------- */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;display:flex;align-items:center;gap:12px;padding:10px 16px;margin:0 -16px 6px;border-radius:0 0 22px 22px;transition:background .2s,box-shadow .2s,border-color .2s;border:1px solid transparent;border-top:0}
.top.scrolled{background:var(--glass);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);border-color:var(--glass-line);box-shadow:var(--glass-shadow)}
.logo{width:34px;height:34px;border-radius:10px;background:var(--kon);color:#fff;display:grid;place-items:center;font-family:var(--display);font-size:19px;flex:none}
.top .t{min-width:0;flex:1}
.top .t b{display:block;font-family:var(--display);font-size:17px;line-height:1.1}
.back{width:42px;height:42px;border-radius:50%;background:var(--surface);border:1px solid var(--line);box-shadow:0 3px 0 var(--edge);display:grid;place-items:center;flex:none;transition:.15s}
.back:active{transform:translateY(2px);box-shadow:0 1px 0 var(--edge)}
.back svg{width:20px;height:20px}

/* ---------- start ---------- */
.hello{margin:6px 4px 16px}
.hello h1 span{color:var(--kon)}
.cycle{padding:18px}
.cycle-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.weeks{display:grid;grid-template-columns:repeat(4,1fr) 1.15fr;gap:6px;margin-top:16px}
.wk{height:46px;border-radius:14px;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;color:var(--muted)}
.wk{font-weight:700}.wk small{font-family:var(--body);font-size:10px;font-weight:600;opacity:.8}
.wk.done{background:var(--kon-bg);color:var(--kon)}
.wk.now{background:var(--kon);color:#fff;box-shadow:0 3px 0 var(--cta-shadow)}
.wk.dl{background:var(--izo-bg);color:var(--izo)}
.wk.dl.now{background:var(--izo);color:#fff;box-shadow:0 3px 0 #8f6700}

.today{margin-top:14px;padding:3px;border-radius:var(--r);background:linear-gradient(135deg,#6B4EF0,#DE2F7B);box-shadow:0 6px 0 var(--edge)}
.today-in{background:var(--cta);color:#fff;border-radius:calc(var(--r) - 3px);padding:18px;display:flex;flex-direction:column;gap:14px}
.today-in .eyebrow{color:#B9B3D4}
.today-in h2{font-size:26px}
.today-in p{margin:0;color:#CFCAE4;font-size:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:50px;padding:0 24px;border-radius:100px;background:var(--cta-btn);color:#fff;font-family:var(--display);font-weight:800;font-size:16px;box-shadow:0 5px 0 var(--cta-shadow);text-decoration:none;transition:.15s}
@media (hover:hover){.btn:hover{transform:translateY(-2px);box-shadow:0 7px 0 var(--cta-shadow)}}
.btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--cta-shadow)}
.btn svg{width:18px;height:18px}

.strip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:12px}
.sd{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0 10px;border-radius:14px}
.sd .dn{font-family:var(--mono);font-weight:700;letter-spacing:.06em;font-size:10px;color:var(--muted);text-transform:uppercase}
.sd .dd{font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}
.sd .dt{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;font-family:var(--display);font-size:13px;background:var(--bg);color:var(--line)}
.sd .dt.on{background:var(--kon-bg);color:var(--kon)}
.sd .dt.dl{background:var(--izo-bg);color:var(--izo)}
.sd.is-today{background:var(--kon-bg)}
.sd.is-today .dd{color:var(--kon)}
.sd.past .dd{color:var(--muted)}

.daylist{display:grid;gap:12px}
.dayrow{display:flex;align-items:center;gap:14px;padding:14px 16px;text-align:left;width:100%}
.dayletter{width:48px;height:48px;border-radius:14px;flex:none;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:24px;color:#fff}
.dayrow .info{flex:1;min-width:0}
.dayrow .info b{display:block;font-family:var(--display);font-size:17px;line-height:1.15}
.dayrow .info span{font-size:13px;color:var(--muted)}
.chev{width:18px;height:18px;color:var(--muted);flex:none}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{padding:16px;text-align:left;display:flex;flex-direction:column;gap:10px;min-height:128px;width:100%}
.tile .ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center}
.tile .ic svg{width:20px;height:20px}
.tile b{font-family:var(--display);font-weight:800;font-size:16px;line-height:1.15}
.tile span{font-size:12.5px;color:var(--muted);line-height:1.35}
.tile.wide{grid-column:1/-1;min-height:0;flex-direction:row;align-items:center;gap:14px}
.tile.wide .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}

/* ---------- widok dnia ---------- */
.dayhero{padding:18px;display:flex;flex-direction:column;gap:14px;margin-bottom:6px}
.dayhero .row{display:flex;gap:14px;align-items:center}
.weekpick{display:grid;grid-template-columns:repeat(4,1fr) 1.35fr;gap:6px;padding:2px}
.wp{min-width:0;height:40px;border-radius:100px;background:var(--bg);border:1px solid var(--line);font-family:var(--mono);font-weight:700;font-size:10.5px;letter-spacing:.08em;color:var(--muted);position:relative}
.wp.cur::after{content:"";position:absolute;top:4px;right:8px;width:6px;height:6px;border-radius:50%;background:var(--kon)}
.wp[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.wp.cur[aria-pressed="true"]::after{background:var(--bg)}
.wp.dl[aria-pressed="true"]{background:var(--izo);border-color:var(--izo)}
.summary{display:flex;gap:8px;flex-wrap:wrap}

.stage{display:flex;align-items:center;gap:10px;margin:26px 4px 12px}
.stage h2{font-size:22px}
.stage .line{flex:1;height:2px;background:var(--line);border-radius:2px}
.stage-note{margin:-6px 4px 12px;font-size:13px;color:var(--muted)}

.group{margin-bottom:14px}
.group-head{display:flex;align-items:center;gap:8px;margin:0 6px 8px}
.group-head .gl{font-family:var(--mono);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}
.group-head .gs{font-size:12px;color:var(--muted)}
.superset{position:relative;display:grid;gap:10px}
.superset.multi{padding:10px;border-radius:calc(var(--r) + 8px);border:2px dashed var(--edge)}

.ex{padding:16px;display:flex;flex-direction:column;gap:12px;scroll-margin-top:80px}
.ex-top{display:flex;gap:12px;align-items:flex-start}
.ex-num{width:36px;height:36px;flex:none;border-radius:12px;display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:12px;background:var(--bg);color:var(--ink)}
.ex-name{flex:1;min-width:0}
.ex-name .cat{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--kon);display:block;margin-bottom:2px}
.ex-name h3{font-size:18px;overflow-wrap:anywhere}
.dose{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.dose div{background:var(--bg);border-radius:14px;padding:9px 10px 8px;min-width:0;position:relative}
.dose .k{display:block;font-family:var(--mono);font-weight:700;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.dose .v{display:block;font-family:var(--display);font-weight:800;font-size:20px;line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dose .v small{font-family:var(--body);font-size:12px;font-weight:600;color:var(--muted)}
.dose .chg{background:var(--kon-bg)}
.dose .chg::after{content:"";position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--kon)}
.dose div.empty .v{color:var(--line)}
.note{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--izo);border-radius:0 18px 18px 0;padding:10px 14px;font-size:14px;line-height:1.45}
.note b{font-family:var(--mono);font-weight:700;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:3px}
.vids{display:flex;gap:8px;flex-wrap:wrap}
.vbtn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px 0 6px;border-radius:100px;background:var(--kon-bg);color:var(--kon);font-weight:800;font-size:14px;text-decoration:none;transition:.15s}
.vbtn:active{transform:translateY(2px)}
.vbtn .pl{width:30px;height:30px;border-radius:50%;background:var(--kon);color:#fff;display:grid;place-items:center}
.vbtn .pl svg{width:12px;height:12px}
.novid{font-size:10px;color:var(--muted);font-family:var(--mono);font-weight:700;letter-spacing:.14em}
.ex.later{opacity:.55}
.warm{display:flex;align-items:center;gap:14px;padding:14px 16px;width:100%;text-align:left}
.legend{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin:10px 6px 0}
.legend i{width:8px;height:8px;border-radius:50%;background:var(--kon);display:inline-block}

/* ---------- kalendarz ---------- */
.cal{padding:14px}
.cal-head,.cal-week{display:grid;grid-template-columns:44px repeat(7,1fr);gap:4px;align-items:center}
.cal-head span{font-family:var(--mono);font-weight:700;font-size:10px;text-transform:uppercase;color:var(--muted);text-align:center}
.cal-week{margin-top:6px}
.cal-wl{font-family:var(--mono);font-weight:700;font-size:10.5px;color:var(--muted);line-height:1.1}
.cal-wl.dl{color:var(--izo)}
.cc{aspect-ratio:1/1.15;max-width:100%;border-radius:11px;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-variant-numeric:tabular-nums}
.cc small{font-size:10px;color:var(--muted);font-weight:600}
.cc b{font-family:var(--display);font-weight:800;font-size:15px;line-height:1}
.cc.on{background:var(--kon-bg)}
.cc.on b{color:var(--kon)}
.cc.dl.on{background:var(--izo-bg)}
.cc.dl.on b{color:var(--izo)}
.cc.today{outline:2.5px solid var(--ink);outline-offset:-2.5px}
.cc.past{opacity:.5}
.sched{display:grid;gap:8px;padding:14px 16px}
.sched-row{display:flex;align-items:center;gap:12px}
.sched-row .d{width:96px;font-weight:600}
.sched-row .x{flex:1;min-width:0;color:var(--muted);font-size:14px;display:flex;align-items:center}

/* ---------- biblioteka / artykuł ---------- */
.lock{display:inline-flex;align-items:center;gap:4px}
.article{padding:20px;display:flex;flex-direction:column;gap:12px}
.article p{margin:0;max-width:62ch}
.article h3{margin-top:6px}
.article ul{margin:0;padding-left:18px;display:grid;gap:6px}
.notation{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:center;background:var(--bg);border-radius:16px;padding:12px 14px}
.notation code{font-family:var(--mono);font-weight:700;font-size:12.5px;background:var(--surface);padding:3px 7px;border-radius:7px}
.placeholder{border:2px dashed var(--edge);border-radius:18px;padding:14px;color:var(--muted);font-size:13.5px}

/* ---------- dolna nawigacja ---------- */
.nav{position:fixed;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:40;max-width:496px;margin:0 auto;border-radius:100px;padding:6px}
.nav-in{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;height:var(--nav-h)}
.nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:100px;font-size:10.5px;font-weight:600;color:var(--muted);transition:background .2s,color .2s}
.nav button svg{width:22px;height:22px}
.nav button[aria-current="page"]{color:var(--kon);background:var(--kon-bg)}

.sets{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sets .k{font-family:var(--mono);font-weight:700;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.dot{width:34px;height:34px;border-radius:50%;border:2px solid var(--edge);background:var(--surface);display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:11px;color:var(--muted);transition:.12s}
.dot.on{background:var(--kon);border-color:var(--kon);color:#fff}
.dot svg{width:14px;height:14px}
.ex.done{box-shadow:0 6px 0 var(--kon-bg);border-color:var(--kon-bg)}
.ex.done .ex-num{background:var(--kon);color:#fff}
.restbtn{display:block;width:100%;text-align:left;background:var(--bg);border-radius:14px;padding:9px 10px 8px;position:relative}
.restbtn .tm{position:absolute;top:7px;right:7px;width:20px;height:20px;border-radius:50%;background:var(--kon);color:#fff;display:grid;place-items:center}
.restbtn .tm svg{width:11px;height:11px}
.restbtn:active{transform:translateY(2px)}
.progress{display:flex;align-items:center;gap:10px}
.bar{flex:1;height:8px;border-radius:100px;background:var(--bg);overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,#6B4EF0,#DE2F7B);border-radius:100px;transition:width .3s}
.progress span{font-family:var(--mono);font-weight:700;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.minibtn{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 10px;border-radius:100px;border:1px solid var(--line);background:var(--surface)}
.timer{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + 30px + env(safe-area-inset-bottom,0px));z-index:45;padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}
.timer-in{max-width:520px;margin:0 auto;color:var(--ink);border-radius:var(--r);padding:12px 12px 12px 18px;display:flex;align-items:center;gap:10px}
.timer-in.end{background:var(--kon);color:#fff;border-color:transparent}
.timer .tl{flex:1;min-width:0}
.timer .tl span{display:block;font-family:var(--mono);font-weight:700;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.timer-in.end .tl span{color:#fff}
.timer .tl b{font-family:var(--display);font-weight:800;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}
.timer button{height:40px;min-width:48px;padding:0 10px;border-radius:100px;background:var(--glass-line);color:inherit;font-family:var(--mono);font-weight:700;font-size:12px}
.timer button.x{background:var(--ink);color:var(--bg)}
.timer-in.end button{background:rgba(255,255,255,.18)}.timer-in.end button.x{background:#fff;color:#181524}
.timer-ring{height:4px;border-radius:100px;background:var(--line);margin-top:7px;overflow:hidden}
.timer-ring i{display:block;height:100%;background:linear-gradient(90deg,#6B4EF0,#DE2F7B);border-radius:100px}
.has-timer .app{padding-bottom:calc(var(--nav-h) + 130px + env(safe-area-inset-bottom,0px))}
.cta-b{margin-top:28px;background:linear-gradient(135deg,#6B4EF0,#DE2F7B);border-radius:22px;padding:3px}
.cta-b-in{background:var(--surface);border-radius:19px;padding:20px;display:flex;flex-direction:column;gap:8px}
.cta-b-in .lab{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--kon)}
.cta-b-in p{margin:0;color:var(--muted);font-size:14px}
.btn.dark{background:var(--ink);color:var(--bg);box-shadow:0 4px 0 var(--edge);height:46px;font-size:15px;width:fit-content}
.donebadge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.14);color:#fff;border-radius:100px;padding:6px 12px;font-family:var(--mono);font-weight:700;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;width:fit-content}
.dayhead{margin:4px 4px 14px}
.dayhead h1{margin-top:4px}
.warmrow{display:flex;align-items:center;gap:12px;width:100%;margin-top:16px;padding:12px 16px;border-radius:100px;background:var(--surface);border:1px solid var(--line);font-weight:600;text-align:left}
.warmrow > span:nth-child(2){flex:1}
.wdot{width:30px;height:30px;border-radius:50%;background:var(--izo-bg);color:var(--izo);display:grid;place-items:center}
.wdot svg{width:16px;height:16px}
h2.stage{display:block;margin:30px 4px 10px;font-size:22px}
.grp{margin-bottom:12px}
.grp-l{display:block;margin:0 6px 6px;font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.rows{padding:2px 0}
.rx{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 18px}
.rx + .rx{border-top:1px solid var(--line)}
.rx-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.rx-main b{font-family:var(--display);font-weight:800;font-size:18px;line-height:1.15;letter-spacing:-.01em;overflow-wrap:anywhere}
.rx-cat{font-family:var(--mono);font-weight:700;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--kon)}
.rx-dose{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.rx-dose em{font-style:normal;color:var(--kon);font-weight:600}
.rx-dose .sep{opacity:.5}
.rx-rest{display:inline-flex;align-items:center;gap:3px;color:inherit;font-size:inherit;padding:4px 0;margin:-4px 0}
.rx-rest svg{width:13px;height:13px;opacity:.7}
.rx-note{font-size:13px;color:var(--muted);font-style:italic;line-height:1.4;margin-top:2px}
.rx-vids{display:flex;gap:6px;flex:none}
.play{position:relative;width:44px;height:44px;border-radius:50%;background:var(--kon);color:#fff;display:grid;place-items:center;box-shadow:0 3px 0 var(--cta-shadow);transition:.15s}
.play:active{transform:translateY(2px);box-shadow:0 1px 0 var(--cta-shadow)}
.play svg{width:15px;height:15px;margin-left:2px}
.play small{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:100px;background:var(--surface);color:var(--kon);border:1px solid var(--line);font-family:var(--mono);font-weight:700;font-size:10px;display:grid;place-items:center}
.article .rows{box-shadow:none;margin:0 -6px}
.xc{padding:18px;display:flex;flex-direction:column;gap:14px}
.xc + .xc{margin-top:12px}
.xc-head .rx-cat{display:block;margin-bottom:3px}
.xc-head h3{font-size:21px;line-height:1.12;overflow-wrap:anywhere}
.vframe{position:relative;width:100%;aspect-ratio:4/5;max-width:100%;border-radius:18px;overflow:hidden;background:var(--frame);isolation:isolate;-webkit-mask-image:-webkit-radial-gradient(white,black)}
.vframe .ph{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;background:radial-gradient(120% 80% at 20% 0%,rgba(107,78,240,.32),transparent 60%),radial-gradient(100% 70% at 100% 100%,rgba(222,47,123,.18),transparent 60%),var(--frame)}
.vframe .ph b{font-family:var(--display);font-weight:800;font-size:56px;line-height:1;color:rgba(255,255,255,.08)}
.vframe img{position:absolute;left:50%;top:50%;width:238%;height:auto;transform:translate(-50%,-50%);max-width:none}
.vframe .shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.35),transparent 40%)}
.vframe .big{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:70px;height:70px;border-radius:50%;background:rgba(255,255,255,.2);-webkit-backdrop-filter:blur(14px) saturate(180%);backdrop-filter:blur(14px) saturate(180%);border:1px solid rgba(255,255,255,.45);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 8px 26px rgba(0,0,0,.3);color:#fff;display:grid;place-items:center;transition:transform .15s}
.vframe .big svg{width:22px;height:22px;margin-left:3px}
.vframe button.cover{position:absolute;inset:0;width:100%;height:100%}
.vframe button.cover:active .big{transform:translate(-50%,-50%) scale(.94)}
.vframe iframe{position:absolute;top:0;bottom:0;left:50%;height:100%;width:auto;aspect-ratio:9/16;max-width:100%;transform:translateX(-50%);border:0;background:#000}
/* rozmyte tło za pionowym filmem — wypełnia boczne pasy */
.vframe img.vbg{width:300%;filter:blur(22px) saturate(1.3) brightness(.55);opacity:0;transition:opacity .25s}
.vframe.playing img.vbg{opacity:1}
.vframe.playing img.vmain,.vframe.playing .shade,.vframe.playing .cover,.vframe.playing .vov.b{display:none}
.vframe.none .ph{justify-content:center;align-items:center;text-align:center}
.vframe.none .ph span{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#B9B3D4}
.vov{position:absolute;left:10px;right:10px;display:flex;gap:6px;align-items:center;z-index:2;pointer-events:none}
.vov > *{pointer-events:auto}
.vov.t{top:10px}.vov.b{bottom:10px;justify-content:flex-end}
.gchip{height:32px;padding:0 13px;border-radius:100px;display:inline-flex;align-items:center;gap:5px;background:rgba(20,16,32,.32);-webkit-backdrop-filter:blur(14px) saturate(180%);backdrop-filter:blur(14px) saturate(180%);border:1px solid rgba(255,255,255,.28);color:#fff;font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.08em;text-decoration:none}
.gchip[aria-pressed="true"]{background:rgba(255,255,255,.88);color:#181524;border-color:transparent}
.vframe iframe{z-index:3}
.vframe .vov.t{z-index:4}
.ytl{font-family:var(--body);font-weight:600;font-size:12px;letter-spacing:0}
.xc-dose{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:4px}
.xc-dose .lab{font-family:var(--mono);font-weight:700;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.xc-dose .val{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.xc-dose .val b{font-family:var(--display);font-weight:800;font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}
.xc-dose .val b em{font-style:normal;color:var(--kon)}
.xc-rest{display:inline-flex;align-items:center;gap:5px;font-size:14.5px;font-weight:600;color:var(--muted);padding:6px 12px;border-radius:100px;border:1px solid var(--line);background:var(--bg)}
.xc-rest svg{width:14px;height:14px}
.xc-rest em{font-style:normal;color:var(--kon)}
.xc-note .lab{font-family:var(--mono);font-weight:700;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:4px}
.xc-note p{margin:0;font-size:14.5px;line-height:1.5;color:var(--hint)}
.pair{position:relative}
.pair .xc + .xc::before{content:"";position:absolute;left:50%;top:-14px;width:2px;height:16px;background:var(--line);transform:translateX(-50%)}
.pair .xc{position:relative}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:100px;background:var(--bg);border:1px solid var(--line)}
.seg button{height:38px;border-radius:100px;font-size:13.5px;font-weight:600;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 2px 0 var(--edge)}
.themebtn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;color:var(--ink)}
.themebtn svg{width:19px;height:19px}
.hello{margin:6px 4px 16px}
.today-in{gap:12px}
.today-in h2{font-size:27px;line-height:1.08}
.restday{padding:18px;display:flex;flex-direction:column;gap:10px}
.restday h2{font-size:26px}
.nextrow{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.nextrow .muted b{color:var(--ink);font-weight:600}
.restday .dayrow{box-shadow:none;background:var(--bg)}
.btn.wa{width:fit-content}
.btn.wa svg{width:17px;height:17px}
.cta-b-in .lab{font-size:11px;line-height:1.5;letter-spacing:.1em}
.blockline{margin:4px 4px 14px;display:flex;flex-direction:column;gap:4px}
.blockline h2{font-size:26px}
.blockline p{margin:0;font-size:14px}
.wpcard{padding:10px 10px 8px}
.wp-note{margin:8px 6px 0;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.sw-cur{width:12px;height:12px;border-radius:4px;background:var(--kon)}
.wp.cur{background:var(--kon);border-color:var(--kon);color:#fff}
.wp.cur::after{display:none}
.wp.dl.cur{background:var(--izo);border-color:var(--izo)}
.wp[aria-pressed="true"]:not(.cur){background:transparent;border:2px solid var(--ink);color:var(--ink)}
.wp.cur[aria-pressed="true"]{border:2px solid var(--ink);box-shadow:inset 0 0 0 2px var(--kon)}
.calw{margin-top:18px}
.calw-h{display:flex;align-items:baseline;gap:10px;margin:0 6px 8px}
.calw-h b{font-family:var(--display);font-weight:800;font-size:19px}
.calw-h span{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.calw-h .tag{margin-left:auto;align-self:center;background:var(--kon);color:#fff}
.calw.now .calw-list{border-color:var(--kon);box-shadow:0 6px 0 var(--kon-bg)}
.calw.past{opacity:.55}
.calw-list{padding:0}
.crow{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;text-align:left;min-height:48px}
.crow + .crow{border-top:1px solid var(--line)}
.crow .cd{width:72px;flex:none;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.crow .cd b{color:var(--ink);font-weight:700;text-transform:capitalize}
.crow .cn{flex:1;min-width:0;font-weight:700;font-size:15px}
.crow .cn span{font-weight:500;color:var(--muted)}
.crow .cn.rest{font-weight:500;color:var(--muted)}
.crow.is-today{background:var(--kon-bg);box-shadow:inset 3px 0 0 var(--kon)}
.crow.is-today .cd b,.crow.is-today .cd{color:var(--kon)}
.crow.is-today + .crow,.crow + .crow.is-today{border-top-color:transparent}
.crow.gone .cn,.crow.gone .cd{opacity:.6}
.list{padding:2px 0}
.lrow{display:flex;align-items:center;gap:14px;width:100%;padding:13px 16px;text-align:left;text-decoration:none;color:inherit}
.lrow + .lrow{border-top:1px solid var(--line)}
.lic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--bg);color:var(--muted)}
.lic svg{width:19px;height:19px}
.lt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.lt b{font-weight:700;font-size:15.5px}
.lt span{font-size:13px;color:var(--muted)}
.lrow.off .lt b{color:var(--muted)}
.soon{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-weight:700;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ext{color:var(--kon);font-weight:700}
.kal{margin-top:30px;padding-top:22px;border-top:1px dashed var(--edge);display:flex;flex-direction:column;gap:8px}
.kal-h{display:flex;align-items:center;gap:8px}
.kal-h .eyebrow{color:var(--kon);text-transform:none;letter-spacing:.06em;font-size:12px}
.kdot{width:10px;height:10px;border-radius:50%;background:var(--kon);box-shadow:0 0 0 4px var(--kon-bg)}
.kal h2{font-size:22px}
.kal p{margin:0 0 6px;font-size:14px}
.tdate{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tdate b{font-family:var(--display);font-weight:800;font-size:22px;line-height:1;color:var(--kon)}
.today-in .tdate b{color:#A996FF}
.tdate span:last-child{font-size:15px;font-weight:600;color:var(--muted)}
.today-in .tdate span:last-child{color:#CFCAE4}
.tchip{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;border-radius:100px;background:var(--kon);color:#fff}
h2.tname{font-size:21px;line-height:1.2}
h2.tname span{color:#A996FF}
.restday h2.tname span{color:var(--muted);font-weight:800}
.tfoot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.tfoot p{margin:0;font-size:13.5px;line-height:1.45}
.btn.sm{height:42px;padding:0 18px;font-size:15px;gap:7px;flex:none}
.btn.sm svg{width:15px;height:15px}
/* tygodnie v2: dwie linijki, mieszczą się na każdym telefonie */
.weekpick{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:0}
.wp{height:54px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;overflow:hidden;border:2px solid transparent;background:var(--bg);color:var(--muted);letter-spacing:0}
.wp small{font-family:var(--mono);font-weight:700;font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;line-height:1;white-space:nowrap}
.wp b{font-family:var(--display);font-weight:800;font-size:20px;line-height:1}
.wp.dl small{color:var(--izo)}
.wp.cur{background:var(--kon);color:#fff}
.wp.cur small{color:rgba(255,255,255,.8)}
.wp.dl.cur{background:var(--izo)}
.wp[aria-pressed="true"]:not(.cur){background:transparent;border-color:var(--ink);color:var(--ink)}
.wp.cur[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 2px var(--surface)}
.wpcard{padding:8px 8px 6px}
/* dni bez kafelków z literą: kolorowy podpis */
.dayrow{padding:16px 18px}
.dcap{display:flex!important;align-items:center;gap:7px;font-family:var(--mono);font-weight:700;font-size:10px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--tone)!important;margin-bottom:4px}
.dcap i{width:8px;height:8px;border-radius:50%;background:var(--tone);box-shadow:0 0 0 3px color-mix(in srgb,var(--tone) 22%,transparent)}
.dayrow .info b{font-size:19px}
.xc-cl{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:100px;background:var(--kon-bg);color:var(--kon);align-self:center}
.demo{margin:22px 4px 0;font-size:12px;color:var(--muted);text-align:center}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.wp .sh{display:none}
@media (max-width:380px){.wp .lg{display:none}.wp .sh{display:inline}.strip{gap:3px;padding:8px}.dose .v{font-size:17px}h1{font-size:27px}.dose{gap:5px}.dose div,.restbtn{padding:8px 8px 7px}}

/* logowanie */
.authwrap{display:flex;justify-content:center;margin-top:10px}
.authcard{width:100%;max-width:440px;padding:24px 20px;display:flex;flex-direction:column;gap:14px}
.authcard h1{font-size:28px}
.authcard p{margin:0}
.authform{display:flex;flex-direction:column;gap:6px}
.authform label{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.authform input{height:50px;border-radius:16px;border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:0 16px;font:inherit;font-size:16px}
.authform input:focus{outline:2px solid var(--kon);outline-offset:1px}
.authform .btn{margin-top:14px;width:100%}
.authform .btn[disabled]{opacity:.7}
.linkbtn{align-self:center;font-size:14px;font-weight:600;color:var(--kon);padding:8px;text-decoration:none}
.autherr{background:var(--eks-bg);color:var(--eks);border-radius:14px;padding:10px 14px;font-size:14px;font-weight:600}
.authok{background:var(--kon-bg);color:var(--kon);border-radius:14px;padding:10px 14px;font-size:14px;font-weight:600}
