/* ═══ PLAN (jeden widok) i POSTĘP — o2-planer.js, z26-postep.js (7.10) ═══
   Ruch: wybór dnia w planie to czynność powtarzana wiele razy, więc
   bez animacji (zmienia się od razu). Słupki i linia wyników rosną raz,
   przy wejściu na ekran postępu. Krzywa ease-out mocniejsza niż wbudowana. */
:root{--z26-ease:cubic-bezier(.23,1,.32,1);}

/* ── PLAN ─────────────────────────────────────────────────── */
.pl3-gora{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s4);}
.pl3-ust{margin:0;font-size:var(--t-sm);color:var(--ink-2);}
.pl3-ust b{color:var(--ink);font-weight:600;}
.pl3-dopostepu{margin-left:auto;font-size:var(--t-sm);color:var(--accent-ink,var(--accent));text-decoration:none;
  border:1px solid var(--line);border-radius:999px;padding:6px 14px;min-height:36px;display:inline-flex;align-items:center;gap:6px;
  transition:transform 160ms var(--z26-ease),border-color 160ms ease;}
.pl3-dopostepu::after{content:'→';}
.pl3-dopostepu:active{transform:scale(.97);}
[data-theme="dark"] .pl3-dopostepu{color:var(--accent);}

/* pasek 14 dni: słupek = minuty w planie, kreska = czas dnia */
.pl3-pas{display:grid;grid-template-columns:repeat(14,minmax(44px,1fr));gap:4px;margin:0 0 var(--s4);
  overflow-x:auto;scrollbar-width:none;padding:2px;scroll-snap-type:x proximity;}
.pl3-pas::-webkit-scrollbar{display:none;}
.pl3-d{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px 6px;
  border:1px solid transparent;border-radius:12px;background:var(--surface);color:var(--ink-2);cursor:pointer;
  font:inherit;min-height:44px;scroll-snap-align:start;transition:transform 140ms var(--z26-ease),background-color 140ms ease;}
.pl3-d:active{transform:scale(.96);}
.pl3-d small{font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);}
.pl3-d b{font-size:15px;font-weight:600;color:var(--ink);line-height:1.1;}
.pl3-d em{font-style:normal;font-family:var(--f-mono);font-size:10px;color:var(--ink-3);min-height:12px;}
.pl3-slup{position:relative;width:14px;height:34px;border-radius:5px;background:var(--bg-2);overflow:hidden;margin:2px 0;}
.pl3-slup i{position:absolute;left:0;right:0;bottom:0;height:var(--h);border-radius:5px;background:var(--accent);opacity:.85;}
.pl3-slup s{position:absolute;left:-2px;right:-2px;bottom:var(--h);height:0;border-top:1.5px dashed var(--ink-3);opacity:.6;text-decoration:none;}
.pl3-d.pn::before{content:'';position:absolute;left:-3px;top:12px;bottom:12px;width:1px;background:var(--line);}
.pl3-d.dzis small{color:var(--accent-ink,var(--accent));font-weight:600;}
.pl3-d.wolny{background:transparent;}
.pl3-d.wolny b{color:var(--ink-3);}
.pl3-d.egz em{color:var(--warn);font-weight:600;}
.pl3-d.egz::after{content:'';position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--warn);}
.pl3-d.on{border-color:var(--ink);box-shadow:0 1px 0 var(--line);}
.pl3-d:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
@media (hover:hover) and (pointer:fine){.pl3-d:hover{background:var(--bg-2);}}

.pl3-dzien .card-h h2{display:flex;flex-direction:column;gap:2px;}
.pl3-dzien .card-h h2 small{font-size:var(--t-xs);font-weight:400;color:var(--ink-3);font-family:var(--f-sans);}
.pl3-dzien .card-h .pill{margin-left:auto;}
.pl3-czas{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);padding:0 var(--s5) var(--s3);
  font-size:var(--t-sm);color:var(--ink-2);}
.pl3-czas > span{margin-right:var(--s1);}
.pl3-czas b{min-width:64px;text-align:center;color:var(--ink);font-variant-numeric:tabular-nums;}
.pl3-st{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);
  font-size:18px;line-height:1;cursor:pointer;transition:transform 140ms var(--z26-ease);}
.pl3-st:active{transform:scale(.94);}
.pl3-st:disabled{opacity:.35;cursor:default;transform:none;}
.pl3-link{background:none;border:0;padding:6px 4px;font:inherit;font-size:var(--t-sm);color:var(--accent-ink,var(--accent));
  cursor:pointer;text-decoration:underline;text-underline-offset:2px;min-height:36px;}
[data-theme="dark"] .pl3-link{color:var(--accent);}
.pl3-czas .pl3-pierwszy{margin-left:auto;}
.pl3-pusto{padding:var(--s2) var(--s5) var(--s5);margin:0;color:var(--ink-2);font-size:var(--t-sm);}
.pl3-zapas{padding:0 var(--s5) var(--s4);}
.pl3-zapas h3{font-size:var(--t-xs);font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);
  margin:var(--s3) 0 0;font-weight:500;}
.pl2-ik-egzamin{background:var(--ok-bg,#EDF3EF);color:var(--ok);}
.pl2-poz[data-typ="egzamin"] .pl2-nazwa{font-weight:600;}
.pl3 .pl2-przesun{min-height:32px;transition:transform 140ms var(--z26-ease);}
.pl3 .pl2-przesun:active{transform:scale(.96);}
.pl3 .pl-bx{position:relative;}
/* kratka 15 px, ale cel dotyku 44 px */
.pl3 .pl-bx::before{content:'';position:absolute;inset:-14px;}

@media (max-width:700px){
  .pl3-pas{grid-template-columns:repeat(14,52px);margin-inline:calc(var(--s4) * -1);padding-inline:var(--s4);scroll-padding-inline:var(--s4);}
  .pl3-czas{padding-inline:var(--s4);}
  .pl3-czas .pl3-pierwszy{margin-left:0;}
  .pl3-dopostepu{margin-left:0;}
}

/* ── POSTĘP ──────────────────────────────────────────────── */
.pst{max-width:820px;margin-inline:auto;}
.pst-kafle{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);margin-bottom:var(--s5);}
.pst-kafel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg,14px);padding:var(--s4) var(--s5);
  display:flex;flex-direction:column;gap:4px;min-height:112px;}
.pst-kafel b{font-size:30px;line-height:1.1;font-weight:650;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;}
.pst-kafel small{font-size:var(--t-xs);color:var(--ink-2);line-height:1.4;}
.pst-pasek{display:block;height:6px;border-radius:3px;background:var(--bg-2);overflow:hidden;margin-top:auto;}
.pst-pasek i{display:block;height:100%;width:var(--p);background:var(--accent);border-radius:3px;
  transform-origin:left;animation:pst-rosnij-x 600ms var(--z26-ease) both 120ms;}
.pst-wzrost{color:var(--ok);font-weight:600;}
.pst-spadek{color:var(--warn);font-weight:600;}
.pst-karta{margin-bottom:var(--s5);}
.pst-pusto{color:var(--ink-2);font-size:var(--t-sm);margin:0;}
.pst-blad{background:var(--warn-bg);color:var(--warn);border-radius:var(--r-2,10px);padding:var(--s3) var(--s4);font-size:var(--t-sm);}

/* 14 dni: słupek złożony z rodzajów nauki, kreska = czas w planie */
.pst-slupki{display:grid;grid-template-columns:repeat(14,1fr);gap:6px;align-items:end;height:170px;}
.pst-dz{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;}
.pst-kol{position:relative;flex:1;width:100%;max-width:26px;display:flex;align-items:flex-end;}
.pst-kol s{position:absolute;left:-3px;right:-3px;height:0;border-top:1.5px dashed var(--ink-3);opacity:.55;text-decoration:none;}
.pst-stos{width:100%;display:flex;flex-direction:column-reverse;border-radius:5px;overflow:hidden;min-height:0;
  transform-origin:bottom;animation:pst-rosnij-y 520ms var(--z26-ease) both;animation-delay:calc(var(--j) * 30ms);}
.pst-stos i{display:block;min-height:2px;}
.pst-dz small{font-family:var(--f-mono);font-size:10px;color:var(--ink-3);white-space:nowrap;}
.pst-dz.dzis small{color:var(--accent-ink,var(--accent));font-weight:600;}
.pst-r-czytanie{background:var(--accent);}
.pst-r-test{background:#3F6B55;}
.pst-r-fiszki{background:#5B7FA6;}
.pst-r-zadania{background:#9C6B98;}
.pst-r-ustny{background:#C27B4A;}
.pst-r-feynman{background:#7A8B5A;}
.pst-legenda{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);margin-top:var(--s4);font-size:var(--t-xs);color:var(--ink-2);}
.pst-legenda span{display:inline-flex;align-items:center;gap:6px;}
.pst-legenda i{width:10px;height:10px;border-radius:3px;display:inline-block;}
.pst-legenda s{width:14px;height:0;border-top:1.5px dashed var(--ink-3);display:inline-block;text-decoration:none;}

/* wyniki testów: punkty = testy, linia = średnia z trzech ostatnich */
.pst-wyk{padding:6px 0 0 30px;}
.pst-wyk-pole{position:relative;height:180px;margin:8px 4px 0 0;}
.pst-wyk-s,.pst-wyk-prog{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--line);}
.pst-wyk-s span{position:absolute;right:calc(100% + 8px);top:-7px;white-space:nowrap;font-family:var(--f-mono);font-size:10px;color:var(--ink-3);}
.pst-wyk-prog{border-top:1px dashed var(--ok);opacity:.8;}
.pst-wyk-prog span{position:absolute;right:0;bottom:4px;font-family:var(--f-mono);font-size:10px;color:var(--ok);}
.pst-wyk-pole svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;
  animation:pst-odslon 900ms var(--z26-ease) 120ms both;}
.pst-sr{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}
.pst-wyk-p{position:absolute;width:9px;height:9px;margin:0 0 -4.5px -4.5px;border-radius:50%;background:var(--surface);
  border:1.5px solid var(--ink-3);animation:pst-pkt 260ms var(--z26-ease) both;animation-delay:calc(120ms + var(--k) * 18ms);}
.pst-wyk-p.ok{border-color:var(--ok);background:var(--ok-bg,#EDF3EF);}
.pst-wyk-x{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--f-mono);font-size:10px;color:var(--ink-3);}
.pst-poprawa{margin:var(--s4) 0 0;font-size:var(--t-sm);color:var(--ink-2);}
.pst-poprawa b{color:var(--ink);}

/* przedmioty */
.pst-p{display:grid;gap:6px;padding:var(--s3) 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;}
.pst-p:last-of-type{border-bottom:0;}
.pst-p-g{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;}
.pst-p-g b{font-weight:600;}
.pst-p-g .pill{margin-left:auto;}
.pst-p-pas{display:block;height:8px;border-radius:4px;background:var(--bg-2);overflow:hidden;}
.pst-p-pas i{display:block;height:100%;width:var(--p);border-radius:4px;background:linear-gradient(90deg,var(--accent),#d9a234);
  transform-origin:left;animation:pst-rosnij-x 700ms var(--z26-ease) both 100ms;}
.pst-p-m{font-size:var(--t-xs);color:var(--ink-2);}
.pst-p-m b{color:var(--ink);}
@media (hover:hover) and (pointer:fine){.pst-p:hover .pst-p-g b{color:var(--accent-ink,var(--accent));}}
.pst-op{font-size:var(--t-xs);color:var(--ink-3);margin:var(--s3) 0 0;}

.pst-pow-b{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);}
.pst-pow-b a{display:flex;flex-direction:column;gap:2px;padding:var(--s3) var(--s4);border-radius:var(--r-2,10px);background:var(--bg-2);
  color:inherit;text-decoration:none;transition:transform 140ms var(--z26-ease);}
.pst-pow-b a:active{transform:scale(.97);}
.pst-pow-b b{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums;}
.pst-pow-b span{font-size:var(--t-xs);color:var(--ink-2);}
.pst-stopka{text-align:center;margin-top:var(--s5);max-width:560px;margin-inline:auto;}

/* szkielet na czas wczytywania historii */
.pst-laduje .pst-kafel,.pst-szkielet{background:linear-gradient(90deg,var(--bg-2),var(--surface),var(--bg-2));background-size:200% 100%;
  animation:pst-szkielet 1.1s linear infinite;border-color:transparent;}
.pst-szkielet{height:240px;border-radius:var(--r-lg,14px);}

@keyframes pst-rosnij-y{from{transform:scaleY(.04);opacity:.4}to{transform:none;opacity:1}}
@keyframes pst-rosnij-x{from{transform:scaleX(.02)}to{transform:none}}
@keyframes pst-odslon{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes pst-pkt{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes pst-szkielet{from{background-position:200% 0}to{background-position:-200% 0}}

@media (max-width:700px){
  .pst-kafle{grid-template-columns:1fr 1fr;}
  .pst-kafle .pst-kafel:last-child{grid-column:1 / -1;min-height:0;}
  .pst-kafel{padding:var(--s3) var(--s4);min-height:100px;}
  .pst-kafel b{font-size:26px;}
  .pst-slupki{gap:3px;height:150px;}
  .pst-dz small{font-size:9px;}
  .pst-pow-b{gap:var(--s2);}
  .pst-pow-b a{padding:var(--s3);}
}
@media (prefers-reduced-motion:reduce){
  .pst-stos,.pst-pasek i,.pst-p-pas i{animation:none;}
  .pst-wyk-pole svg,.pst-wyk-p{animation:none;}
  .pst-laduje .pst-kafel,.pst-szkielet{animation:none;}
  .pl3-d,.pl3-st,.pl3-dopostepu,.pst-pow-b a{transition:none;}
}
@media print{.pst-stos,.pst-pasek i,.pst-p-pas i,.pst-wyk-pole svg,.pst-wyk-p{animation:none;}}
