/* Spis treści: jeden komponent na całej stronie (launch/spis.py, spis.js; decyzja właściciela 12.10.2026).
   Pudełko „Spis treści” z zaznaczeniem czytanej sekcji (zakreślacz w kolorze marki) i kółkiem postępu, układ dwóch
   kolumn z przyklejonym spisem po prawej (do 1099 px spis stoi w treści nad pierwszą sekcją). Linki bez podkreśleń. */
.ins-main--z-spisem{max-width:1180px}
@media(max-width:1099px){.ins-main--z-spisem{max-width:760px}}
.ins-spis{margin:0 0 24px;padding:18px 20px;border:1px solid var(--line);border-radius:6px}
.ins-spis h2{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:18px;font-weight:600;letter-spacing:-.01em}
.ins-spis h2 .ins-ikona{color:var(--action)}
.ins-spis__lista,.ins-spis__pod{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ins-spis__nr{display:inline-block;min-width:22px;padding-right:.25em;font-variant-numeric:tabular-nums}
.ins-spis__inne{padding-left:22px}
.ins-spis__inne a{font-style:normal}
.ins-spis__pod{margin:4px 0 2px;padding-left:22px;font-size:14px}
/* Spis treści bez podkreśleń (decyzja właściciela 12.10.2026); obrys fokusu i zaznaczenie zostają. */
.ins-spis a,.ins-spis a:hover{color:var(--ink);text-decoration:none}
.ins-spis a:hover{color:var(--action)}
.ins-uklad{display:grid;grid-template-columns:48px minmax(0,760px) minmax(220px,280px);grid-template-areas:"wstecz glowa spis" "wstecz tresc spis" "wstecz dol .";grid-template-rows:auto auto 1fr;gap:0 32px;align-items:start;margin-top:8px}
.ins-uklad__wstecz{grid-area:wstecz;align-self:stretch}
.ins-uklad__glowa{grid-area:glowa;padding-bottom:32px}
.ins-uklad__glowa h1{margin-top:12px}
.ins-uklad__spis{grid-area:spis;align-self:stretch}
.ins-uklad__spis .ins-spis{position:sticky;top:var(--ins-gora);max-height:calc(100vh - var(--ins-gora) - 20px);transition:top var(--header-scroll-duration) var(--ease-out);overflow:auto;margin-top:24px}
.ins-uklad__tresc{grid-area:tresc;min-width:0}
.ins-uklad__dol{grid-area:dol;min-width:0}
.ins-wstecz{position:sticky;top:var(--ins-gora);margin-top:24px;display:inline-grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);box-shadow:0 2px 10px rgb(22 22 22 / 8%);transition:border-color 160ms ease,color 160ms ease,top var(--header-scroll-duration) var(--ease-out)}
.ins-wstecz:hover,.ins-wstecz:focus-visible{border-color:var(--action);color:var(--action)}
/* Zaznaczenie jak zakreślacz: pomarańczowe tło „maluje się” od lewej, poprzednie znika w drugą stronę. */
.ins-spis a{padding:1px 6px;margin-left:-6px;border-radius:2px;background:linear-gradient(var(--color-coral, #fd582c),var(--color-coral, #fd582c)) no-repeat right center / 0% 100%;transition:background-size 360ms cubic-bezier(.22,1,.36,1),color 200ms ease}
.ins-spis a[aria-current="true"]{background-position:left center;background-size:100% 100%;color:#161616;font-weight:600;text-decoration:none}
@media(max-width:1099px){
 .ins-uklad{grid-template-columns:0 minmax(0,1fr);grid-template-areas:"wstecz glowa" "wstecz spis" "wstecz tresc" "wstecz dol";grid-template-rows:auto auto auto 1fr;gap:0}
 .ins-uklad__glowa{padding-left:58px;padding-bottom:24px}
 .ins-wstecz{width:44px;height:44px;z-index:5}
 .ins-uklad__spis .ins-spis{position:static;max-height:none;margin:0 0 24px}
}
@media(prefers-reduced-motion:reduce){.ins-spis a{transition:none}}
.ins-spis__gora{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.ins-spis__gora h2{margin:0}
/* Przyklejone elementy stoją pod pływającym menu; gdy menu się chowa, podjeżdżają wyżej (naglowek.js). */
body{--ins-gora:calc(var(--header-height) + var(--header-glass-lift) + 16px)}
body.ps-naglowek-schowany{--ins-gora:16px}
@media(prefers-reduced-motion:reduce){.ins-uklad__spis .ins-spis,.ins-wstecz{transition:none}}
/* Kółko postępu czytania: 52 px, liczba i mniejszy znak %, na 100% zielony znaczek. */
.ins-postep{position:relative;display:grid;place-items:center;width:52px;height:52px;flex:0 0 auto}
.ins-postep__kolo{position:absolute;inset:0;width:52px;height:52px;transform:rotate(-90deg)}
.ins-postep circle{fill:none;stroke-width:4}
.ins-postep__tlo{stroke:var(--line)}
.ins-postep__pasek{stroke:var(--color-coral, #fd582c);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 160ms linear,stroke 300ms ease}
.ins-postep__liczba{position:relative;display:inline-flex;align-items:baseline;gap:1px;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1;transition:opacity 200ms ease,transform 260ms cubic-bezier(.22,1,.36,1)}
.ins-postep__liczba b{font-size:14px;font-weight:700}
.ins-postep__liczba small{font-size:9px;font-weight:600;color:var(--muted)}
.ins-postep__gotowe{position:absolute;width:22px;height:22px;fill:none;stroke:var(--color-green, #357151);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);transition:opacity 200ms ease,transform 320ms cubic-bezier(.34,1.56,.64,1)}
.ins-postep--koniec .ins-postep__pasek{stroke:var(--color-green, #357151)}
.ins-postep--koniec .ins-postep__liczba{opacity:0;transform:scale(.6)}
.ins-postep--koniec .ins-postep__gotowe{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.ins-postep__pasek,.ins-postep__liczba,.ins-postep__gotowe{transition:none}}
