
.nkml{--acc:#F4A228;--acc-2:#e0901a;--acc-soft:#FFF3DD;--acc-line:#F6D699;--navy:#20344b;--muted:#6a7686;
  --line:#e7ecf2;--gr:#16a34a;--gr-soft:#eaf7f0;--rd:#dc2626;--rd-soft:#fdeceb;--rd-line:#f5c9c4;
  font-family:'Nunito',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#2a3646;line-height:1.75;font-size:17px}
.nkml h1{font-family:'Baloo 2',system-ui,sans-serif;background:linear-gradient(100deg,var(--navy) 35%,var(--acc-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:38px;line-height:1.18;margin:10px 0 14px;letter-spacing:-.01em}
.nkml h2{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:26px;margin:40px 0 10px;padding-bottom:8px;border-bottom:2px solid var(--acc-line)}
.nkml h3{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:20px;margin:26px 0 6px}
.nkml p{margin:12px 0;max-width:none}
/* Odnośnik rozpoznaje się po granacie i grubości, nie po podkreśleniu. Pomarańcz zostaje
   wyłącznie akcentem (numerki spisu, ramki) — jako kolor tekstu gryzł się z kremowym tłem. */
.nkml a{color:var(--navy);font-weight:700;text-decoration:none}
.nkml a:hover{color:var(--acc-2);text-decoration:none}
.nkml .krsz{font-size:13.5px;color:var(--muted);margin:0 0 4px}
.nkml .krsz a{color:var(--muted);text-decoration:none}
.nkml .krsz a:hover{color:var(--acc-2)}
.nkml .lead{font-size:16.5px;color:#3c4a5c;max-width:none;background:#fff;border:1px solid var(--line);border-left:5px solid var(--acc);border-radius:0 16px 16px 0;padding:14px 20px;box-shadow:0 4px 16px rgba(20,30,60,.06)}
.nkml .lead .katex{font-size:1em}
.nkml .meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--navy);text-transform:uppercase;letter-spacing:.03em;margin:18px 0 22px;max-width:none}
.nkml .meta span{background:var(--acc-soft);border:1px solid var(--acc-line);border-radius:999px;padding:6px 14px;font-weight:700}
.nkml .meta b{color:var(--acc-2)}
.nkml .spis{background:linear-gradient(135deg,#fff,var(--acc-soft) 220%);border:1px solid var(--acc-line);border-radius:18px;padding:18px 24px 16px;margin:28px 0 8px;box-shadow:0 6px 20px rgba(20,30,60,.06)}
.nkml .spis p{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);margin:0 0 10px;font-size:15px;text-transform:uppercase;letter-spacing:.05em}
.nkml .spis ol{margin:0;padding-left:0;columns:2;column-gap:28px;list-style:none;counter-reset:spis}
.nkml .spis li{padding:4px 0;break-inside:avoid;counter-increment:spis}
.nkml .spis li::before{content:counter(spis);display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:8px;border-radius:50%;background:var(--acc);color:#fff;font-size:11px;font-weight:800}
.nkml .spis a{text-decoration:none}
.nkml .spis a:hover{color:var(--acc-2)}
.nkml .spis li{padding:2px 0;break-inside:avoid}
.nkml .lst{margin:12px 0;padding-left:24px;max-width:none}
.nkml .lst li{margin:5px 0}
.nkml .wzor{margin:18px 0;text-align:center}
.nkml .tabwrap{margin:18px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:16px;box-shadow:0 6px 20px rgba(20,30,60,.06)}
.nkml table.ttab{border-collapse:separate;border-spacing:0;background:#fff;font-size:15.5px;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:0;width:100%}
.nkml table.ttab th,.nkml table.ttab td{border-bottom:1px solid #eef1f5;padding:11px 17px;vertical-align:middle}
.nkml table.ttab th{background:linear-gradient(120deg,var(--navy),#2c4666);color:#fff;font-weight:800;text-align:left}
.nkml table.ttab tr:nth-child(even) td{background:#f8fafd}
.nkml table.ttab tr:hover td{background:var(--acc-soft)}
.nkml .ramka{background:var(--acc-soft);border:1px solid var(--acc-line);border-radius:16px;padding:4px 20px 10px;margin:20px 0;box-shadow:0 3px 12px rgba(20,30,60,.05)}
.nkml .ramka .rt{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:17px;margin:14px 0 2px}
.nkml .ramka p{max-width:none}
.nkml .przyk{background:#fff;border:1px solid var(--line);border-radius:18px;padding:0 24px 20px;margin:26px 0;box-shadow:0 6px 20px rgba(20,30,60,.07);transition:box-shadow .18s,transform .18s}
.nkml .przyk:hover{box-shadow:0 12px 30px rgba(20,30,60,.11);transform:translateY(-2px)}
.nkml .przyk .ph{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:19.5px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 -24px 18px;padding:15px 24px;background:linear-gradient(120deg,#FFF6E7,#fffdf9);border-bottom:1px solid var(--acc-line);border-radius:17px 17px 0 0}
.nkml .pnr{display:inline-block;background:linear-gradient(120deg,var(--acc),var(--acc-2));border:none;color:#fff;
  font-family:'Nunito',sans-serif;font-weight:800;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;border-radius:20px;padding:4px 13px;margin:0;vertical-align:baseline;box-shadow:0 3px 8px rgba(244,162,40,.32)}
.nkml .przyk .pol{position:relative;font-weight:500;color:var(--navy);font-size:16.5px;line-height:1.65;
  background:#F5F9FD;border:1px solid #dfe8f2;border-left:4px solid var(--navy);border-radius:0 12px 12px 0;padding:32px 18px 14px;margin:0 0 20px}
.nkml .przyk .pol::before{content:"Zadanie";position:absolute;top:10px;left:18px;font-family:'Nunito',sans-serif;font-weight:800;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#7b8ca0}
.nkml .kroki{list-style:none;margin:0;padding:16px 18px;counter-reset:krok;background:#fff;border:1px solid #eef2f7;border-radius:14px}
.nkml .kroki::before{content:"Rozwiązanie krok po kroku";display:inline-block;font-family:'Nunito',sans-serif;font-weight:800;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:linear-gradient(120deg,var(--acc),var(--acc-2));border-radius:20px;padding:5px 14px;margin:0 0 14px;box-shadow:0 3px 8px rgba(244,162,40,.28)}
.nkml .kroki li{position:relative;counter-increment:krok;margin:0 0 9px;padding:14px 16px 14px 54px;border-radius:12px;border:1px solid transparent;font-weight:400;line-height:1.75;color:#33455a}
.nkml .kroki li:nth-child(odd){background:#FFFAF0;border-color:#F7E6C6}
.nkml .kroki li:nth-child(even){background:#F5F9FD;border-color:#dfe8f2}
.nkml .kroki li:last-child{margin-bottom:0}
.nkml .kroki li::before{content:counter(krok);position:absolute;left:14px;top:13px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;z-index:1;
  border-radius:50%;background:linear-gradient(120deg,var(--acc),var(--acc-2));color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;box-shadow:0 3px 8px rgba(244,162,40,.28)}
.nkml .kroki li:nth-child(even)::before{background:linear-gradient(120deg,var(--navy),#2c4666);box-shadow:0 3px 8px rgba(20,52,75,.26)}
.nkml .kroki .katex{font-size:1.12em;color:var(--navy)}
.nkml .przyk .wyn{position:relative;background:linear-gradient(120deg,#eaf7f0,#fff);border:1px solid #bfe6cf;border-left:4px solid var(--gr);border-radius:0 12px 12px 0;padding:14px 18px 14px 56px;display:block;margin:18px 0 0;font-size:16px;color:var(--navy)}
.nkml .przyk .wyn::before{content:"✓";position:absolute;left:16px;top:15px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--gr);color:#fff;font-size:13px;font-weight:800}
.nkml .przyk .pkom{color:var(--muted);font-size:14.5px;line-height:1.65;margin:16px 0 0;padding-left:14px;border-left:3px dotted var(--acc-line)}
.nkml .bld{background:var(--rd-soft);border:1px solid var(--rd-line);border-radius:16px;padding:4px 20px 12px;margin:16px 0;box-shadow:0 3px 12px rgba(20,30,60,.05)}
.nkml .bld .bh{font-family:'Baloo 2',system-ui,sans-serif;color:#9b1c14;font-size:17.5px;margin:14px 0 2px}
.nkml .bld .bh::before{content:"⚠ ";}
.nkml .bld p{max-width:none;margin:8px 0}
.nkml details.faq{background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 20px;margin:12px 0;box-shadow:0 3px 10px rgba(20,30,60,.04);transition:border-color .18s,box-shadow .18s,background .18s}
.nkml details.faq:hover{border-color:var(--acc-line);box-shadow:0 6px 18px rgba(20,30,60,.08)}
.nkml details.faq[open]{background:linear-gradient(135deg,#fffdf9,#fff);border-color:var(--acc-line);box-shadow:0 8px 22px rgba(20,30,60,.09)}
.nkml details.faq>summary{position:relative;font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:17.5px;line-height:1.35;cursor:pointer;padding:17px 44px 17px 0;list-style:none;transition:color .15s}
.nkml details.faq>summary:hover{color:var(--acc-2)}
.nkml details.faq>summary::-webkit-details-marker{display:none}
.nkml details.faq>summary::before{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--acc-soft);border:1px solid var(--acc-line);color:var(--acc-2);font-family:'Nunito',sans-serif;font-weight:800;font-size:17px;line-height:1;transition:.2s}
.nkml details.faq[open]>summary::before{content:"−";background:linear-gradient(120deg,var(--acc),var(--acc-2));border-color:transparent;color:#fff;box-shadow:0 3px 8px rgba(244,162,40,.3)}
.nkml details.faq[open]>summary{border-bottom:1px dashed var(--acc-line)}
.nkml details.faq p{margin:14px 0 18px;color:#3c4a5c}
.nkml .karta{background:var(--acc-soft);border:1px solid var(--acc-line);border-radius:16px;padding:18px 22px;margin:28px 0;box-shadow:0 4px 16px rgba(20,30,60,.06)}
.nkml .karta p{margin:6px 0}
.nkml .karta .kt{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:20px;margin:0}
.nkml .karta a.cta{display:inline-block;background:var(--acc);color:#fff;font-weight:800;text-decoration:none;border-radius:24px;padding:9px 22px;margin-top:8px;box-shadow:0 6px 16px rgba(244,162,40,.28);transition:transform .15s,background .15s}
.nkml .karta a.cta:hover{background:var(--acc-2);color:#fff;transform:translateY(-2px)}
.nkml .dalej{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:16px 0}
.nkml .dalej a{position:relative;background:linear-gradient(135deg,#fff,#fdfbf7);border:1px solid var(--line);border-top:3px solid var(--acc-line);border-radius:16px;padding:16px 40px 16px 18px;text-decoration:none;
  color:var(--navy);box-shadow:0 3px 10px rgba(20,30,60,.05);transition:.18s;overflow:hidden}
.nkml .dalej a::after{content:"→";position:absolute;right:16px;top:50%;transform:translateY(-50%);width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--acc-soft);color:var(--acc-2);font-weight:800;font-size:15px;transition:.18s}
.nkml .dalej a:hover{border-top-color:var(--acc);box-shadow:0 10px 24px rgba(20,30,60,.12);transform:translateY(-3px)}
.nkml .dalej a:hover::after{background:var(--acc);color:#fff;transform:translateY(-50%) translateX(3px)}
.nkml .dalej a b{font-family:'Baloo 2',system-ui,sans-serif;display:block;font-size:17px;line-height:1.25;margin-bottom:4px}
.nkml .dalej a span{font-size:13.5px;color:var(--muted);line-height:1.5;display:block}
.nkml .autor{display:flex;gap:22px;align-items:center;background:linear-gradient(135deg,#fff,var(--acc-soft) 260%);border:1px solid var(--acc-line);border-radius:20px;padding:26px 28px;margin:34px 0 0;box-shadow:0 8px 24px rgba(20,30,60,.08)}
.nkml .autor .ini{flex:0 0 52px;height:52px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:'Baloo 2',sans-serif;font-size:20px}
/* Zdjecie autora zamiast inicjalow — kwadratowe zrodlo przycinamy do kola przez
   object-fit, zeby nie zalezec od proporcji pliku. */
.nkml .autor .afoto{flex:0 0 96px;width:96px;height:96px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 0 0 3px var(--acc-line),0 8px 18px rgba(20,30,60,.14)}
.nkml .autor p{margin:2px 0;max-width:none}
.nkml .autor .an{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:25px;font-weight:700;letter-spacing:-.01em}
.nkml .autor .ar{color:var(--acc-2);font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;margin-top:4px}
.nkml .autor .ab{font-size:15.5px;margin-top:10px;color:#3c4a5c}
@media(max-width:640px){
 .nkml .autor{flex-direction:column;text-align:center;gap:14px;padding:24px 22px}
 .nkml .autor .afoto{margin:0 auto}
}
.nkml .zaktual{color:var(--muted);font-size:13.5px;margin:18px 0 0;max-width:none}
@media(max-width:640px){
 .nkml{font-size:16.5px}.nkml h1{font-size:28px}.nkml h2{font-size:23px}
 .nkml .spis ol{columns:1}.nkml .lead{font-size:16px}
}
/* Skrót „przejdź od razu do zadań" — dodany 02.08. Nie było go w arkuszu przejętym
   ze strony, bo powstał później; dokładam, żeby podmiana skóry go nie zgubiła. */
/* Przełącznik kolorów. Kolor niesie tu treść, ale nie każdemu pomaga: przy druku
   czarno-bialym, przy slabym kontrascie monitora i przy daltonizmie potrafi przeszkadzac.
   Klasa bezkoloru gasi WYLACZNIE barwy wstawione przez makra (inline style z KaTeX-a),
   wiec ramki, przyciski i reszta ukladu zostaja nietkniete.
   UWAGA: bez apostrofow odwrotnych — ten komentarz stoi w srodku template literal. */
.nkml .kolorPrzel{margin:14px 0 0}
.nkml .kolorPrzel button{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--navy);
  border:1px solid var(--acc-line);border-radius:24px;padding:8px 18px;font-family:'Nunito',system-ui,sans-serif;
  font-weight:700;font-size:14.5px;cursor:pointer}
.nkml .kolorPrzel button:hover{background:var(--acc-soft)}
.nkml .kolorPrzel button:focus-visible{outline:2px solid var(--acc-2);outline-offset:2px}
.nkml .kolorPrzel .kropki{display:inline-flex;gap:4px}
.nkml .kolorPrzel .kropki i{width:9px;height:9px;border-radius:50%;display:block}
.nkml.bezkoloru .katex [style*="color"]{color:inherit!important}
.nkml.bezkoloru .e8blok .katex [style*="color"]{color:inherit!important}
.nkml.bezkoloru .kolorPrzel .kropki i{background:var(--navy)!important}
.nkml .kafle{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:20px 0}
.nkml .kafel{background:#fff;border:1px solid var(--acc-line);border-radius:16px;padding:14px 18px 16px;box-shadow:0 3px 12px rgba(20,30,60,.05)}
.nkml .kafel .kt{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:17px;margin:0 0 8px;padding-bottom:8px;border-bottom:2px solid var(--acc-line)}
.nkml .kafel ul{list-style:none;margin:0;padding:0}
.nkml .kafel li{margin:0;padding:5px 0;border-bottom:1px solid rgba(20,30,60,.06)}
.nkml .kafel li:last-child{border-bottom:0}
.nkml .kafel a{color:var(--navy);text-decoration:none;font-weight:600;font-size:15.5px}
.nkml .kafel a:hover{color:var(--acc-2)}
.nkml .doZadan{margin:18px 0 0}
.nkml .doZadan a{display:inline-block;background:var(--acc);color:#fff;font-family:'Baloo 2',system-ui,sans-serif;font-weight:800;font-size:16px;text-decoration:none;border-radius:24px;padding:10px 22px}
.nkml .doZadan a:hover{background:var(--acc-2);color:#fff}


  .e8blok{--acc:#F4A228;--acc-2:#e0901a;--acc-soft:#FFF3DD;--acc-line:#F6D699;--navy:#20344b;--muted:#6a7686;--line:#e7ecf2;--gr:#16a34a;--gr-soft:#eaf7f0;
    font-family:'Nunito',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#2a3646;line-height:1.7}
  .e8blok h2{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:26px;margin:38px 0 6px}
  .e8blok .e8-intro{color:var(--muted);font-size:16px;margin:0 0 16px;max-width:70ch}
  .e8blok .e8-grouph{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:15px;letter-spacing:.02em;text-transform:uppercase;margin:24px 0 6px}
  .e8blok .z{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 18px 14px;margin:12px 0;box-shadow:0 3px 12px rgba(20,30,60,.04)}
  .e8blok .zh{font-family:'Baloo 2',system-ui,sans-serif;font-weight:700;color:var(--navy);font-size:15.5px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
  /* .zh i .rozh sa naglowkami poziomu czwartego, a nie divami — zerujemy domyslny
     margines naglowka, zeby ta zamiana nie rozjechala odstepow w ramce zadania.
     (Bez nawiasow ostrych w tym komentarzu: audyt liczy naglowki w surowym HTML-u.) */
  .e8blok h4.zh{margin:0}
  .e8blok h3.e8-grouph{font-weight:700}
  /* .figbox jest teraz elementem figure — margines ustawiamy jawnie w CSS_FIG, wiec
     domyslne 40px po bokach nie wchodzi. Podpis pojawia sie tylko przy rysunkach,
     ktore maja w rejestrze pole podpis. (Bez znakow wstecznych w tym komentarzu:
     caly arkusz CSS siedzi w literale szablonowym.) */
  .e8blok figure.figbox{padding:0}
  /* Warianty odpowiedzi bedace rysunkami: dwa panele w rzedzie, litera nad rysunkiem.
     Na waskim ekranie schodza do jednej kolumny, bo cztery osie liczbowe obok siebie
     robia sie nieczytelne. */
  .e8blok ul.opts.fig{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;list-style:none;padding:0;margin:12px 0 0}
  .e8blok ul.opts.fig li{margin:0}
  .e8blok ul.opts.fig figure.figbox{margin:6px 0 0}
  @media(max-width:560px){ .e8blok ul.opts.fig{grid-template-columns:1fr} }
  .e8blok figcaption{margin:6px 4px 0;color:var(--muted);font-size:13.5px;line-height:1.5}
  .e8blok .src{color:var(--muted);font-weight:600;font-size:13px}
  .e8blok .tag{display:inline-block;background:var(--acc-soft);border:1px solid var(--acc-line);color:var(--acc-2);font-weight:800;font-size:11px;border-radius:20px;padding:1px 8px}
  .e8blok .tag.lvl{background:#eef2fb;border-color:#d6e0f5;color:#3a5a9b}
  .e8blok .z p,.e8blok .z .tresc{margin:8px 0}
  .e8blok .opts{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:6px 22px}
  .e8blok .opts.one{grid-template-columns:repeat(4,1fr)} .e8blok .opts.col{grid-template-columns:1fr}
  .e8blok .opts li{padding:2px 0} .e8blok .opts b{color:var(--acc-2)}
  /* ——— TABELE ——— wspólny szkielet: gruba ramka zewnętrzna (jak w arkuszu CKE), cienkie linie wewnątrz */
  .e8blok .tabwrap{margin:14px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .e8blok table.dtab{border-collapse:collapse;margin:0 auto;background:#fff;font-size:15px;border:2px solid var(--navy)}
  .e8blok table.dtab th,.e8blok table.dtab td{border:1px solid #ccd6e3;padding:9px 15px;text-align:center;vertical-align:middle}
  .e8blok table.dtab td{white-space:nowrap}
  .e8blok table.dtab th{background:#eef3fa;color:var(--navy);font-weight:800;line-height:1.35}
  .e8blok table.dtab th:first-child{text-align:left}
  .e8blok table.dtab tr:nth-child(even) td{background:#fbfcfe}
  /* tabela prawda/fałsz */
  .e8blok table.pf{margin:14px 0 0;border-collapse:collapse;width:100%;font-size:15.5px;background:#fff;border:2px solid var(--navy)}
  .e8blok table.pf td{border:1px solid #ccd6e3;padding:10px 15px;vertical-align:middle}
  .e8blok table.pf td.pfc{width:52px;text-align:center;color:var(--navy);font-weight:800;background:#eef3fa;letter-spacing:.03em}
  .e8blok table.pf tr:nth-child(even) td{background:#fbfcfe}
  .e8blok table.pf tr:nth-child(even) td.pfc{background:#e9eff8}
  /* tabela „wybierz odpowiedź i uzasadnienie” — scalone komórki dokładnie jak w arkuszu */
  .e8blok .uzwrap{margin:14px 0 0;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .e8blok table.uzt{border-collapse:collapse;width:100%;min-width:540px;background:#fff;font-size:15px;border:2px solid var(--navy)}
  .e8blok table.uzt td{border:1px solid #ccd6e3;padding:9px 13px;vertical-align:middle}
  .e8blok table.uzt td.u-id{width:38px;text-align:center;font-weight:800;color:var(--acc-2);background:#eef3fa}
  .e8blok table.uzt td.u-tz{width:78px;font-weight:700;color:var(--navy);white-space:nowrap;background:#fbfcfe}
  .e8blok table.uzt td.u-lacz{width:96px;text-align:center;color:var(--muted);font-style:italic;background:#fbfcfe}
  /* zdania z lukami A/B + C/D */
  .e8blok .abcd{margin:12px 0 0;border:1px solid var(--line);border-radius:12px;background:#fbfcfe;padding:4px 16px 12px}
  .e8blok .ab-q{margin:12px 0 6px;line-height:1.9}
  .e8blok .ab-box{display:inline-block;min-width:27px;text-align:center;border:1.6px solid var(--navy);border-radius:5px;
    padding:1px 6px;margin:0 1px;font-weight:800;color:var(--navy);background:#fff;font-size:14px;line-height:1.4}
  .e8blok .ab-opts{list-style:none;margin:0 0 4px;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:4px 22px}
  .e8blok .ab-opts li{padding:1px 0} .e8blok .ab-opts b{color:var(--acc-2)}
  @media(max-width:600px){.e8blok .ab-opts{grid-template-columns:1fr}}
  /* rozwiązanie — paleta jak w artykule: kremowo-pomarańczowa „ramka przykładu” */
  .e8blok details.roz{margin:10px 0 0;background:var(--acc-soft);border:1px solid var(--acc-line);border-radius:14px;padding:2px 18px}
  .e8blok details.roz summary{font-family:'Baloo 2',system-ui,sans-serif;font-weight:700;color:var(--acc-2);cursor:pointer;padding:11px 0;font-size:15px;list-style:none}
  .e8blok details.roz summary::-webkit-details-marker{display:none}
  .e8blok details.roz summary::after{content:"+";float:right;font-weight:900;font-size:19px;line-height:1}
  .e8blok details.roz[open] summary::after{content:"\2013"}
  .e8blok .roz ol{margin:4px 0 10px;padding-left:22px;counter-reset:kr}
  .e8blok .roz ol li{margin:8px 0}
  .e8blok .roz ol li::marker{color:var(--acc-2);font-weight:800}
  .e8blok .roz .odp{font-family:'Baloo 2',system-ui,sans-serif;font-weight:700;color:var(--navy);margin:2px 0 10px;
    background:#fff;border:1px solid var(--acc-line);border-left:5px solid var(--acc);border-radius:0 10px 10px 0;padding:7px 14px;display:inline-block}
  .e8blok .roz .wsk,.e8blok .roz .bld{font-size:14.5px;margin:10px 0;padding:9px 14px;border-radius:11px}
  .e8blok .roz .wsk{background:#fff;border:1px dashed var(--acc-line)}
  .e8blok .roz .bld{background:#fdeceb;border:1px solid #f6cfca;color:#8f2f22}
  /* legenda kolorów */
  .e8blok .legend{background:#fff;border:1px dashed var(--line);border-radius:12px;padding:10px 16px;margin:14px 0 4px;font-size:15px}
  /* Barwy legendy MUSZA byc te same, co w mapie KOLOR — inaczej legenda opisuje
     jeden kolor, a wzor pokazuje drugi. Pilnuje tego test_paleta_markerow.mjs. */
  .e8blok .legend b.gg{color:#16A06A} .e8blok .legend b.rr{color:#E0453A}
  .e8blok .legend b.bb{color:#2F80D8} .e8blok .legend b.oo{color:#E08A00}
  .e8blok .legend b.pp{color:#8B5CF6}
  /* matura: zadania u góry, klucz i rozwiązania na dole */
  .e8blok h3.e8-sect{font-family:'Baloo 2',system-ui,sans-serif;color:var(--navy);font-size:21px;margin:38px 0 4px;padding-top:14px;border-top:2px solid var(--acc-line)}
  .e8blok .doklucza{margin:8px 0 0;font-size:14px}
  .e8blok .doklucza a{color:var(--acc-2);font-weight:700;text-decoration:none}
  .e8blok .doklucza a:hover{color:var(--navy)}
  .e8blok table.dtab.kl td{text-align:left;font-weight:600;white-space:nowrap;padding:8px 16px}
  .e8blok .rozk{background:var(--acc-soft);border:1px solid var(--acc-line);border-radius:14px;padding:4px 18px 8px;margin:12px 0}
  .e8blok .rozh{font-family:'Baloo 2',system-ui,sans-serif;font-weight:700;color:var(--navy);font-size:15.5px;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
  .e8blok .rozh a.wroc{margin-left:auto;font-size:13px;color:var(--acc-2);text-decoration:none;font-weight:700}
  .e8blok .zrodlo{font-size:13.5px;color:var(--muted);margin:16px 0 0}
  /* test sprawdzajacy — dziala na zadaniach juz obecnych na stronie, nie duplikuje tresci */
  .e8blok .e8test{background:#fff;border:2px solid var(--navy);border-radius:14px;padding:14px 18px;margin:18px 0 6px}
  .e8blok .e8test p{margin:0 0 10px;font-size:15px}
  .e8blok .e8test button{font:inherit;font-weight:700;cursor:pointer;border-radius:10px;padding:10px 18px;border:0;background:var(--navy);color:#fff}
  .e8blok .e8test button:hover{background:#2b4560}
  .e8blok .e8test button.drugi{background:#fff;color:var(--navy);border:2px solid var(--navy);margin-left:8px}
  .e8blok .opts li.klik{cursor:pointer;border:2px solid transparent;border-radius:10px;padding:4px 10px;margin:2px 0;list-style:none}
  .e8blok .opts li.klik:hover{background:var(--acc-soft)}
  .e8blok .opts li.wybrana{border-color:var(--navy);background:var(--acc-soft)}
  .e8blok .opts li.dobrze{border-color:#16a34a;background:#e8f7ee}
  .e8blok .opts li.zle{border-color:#dc2626;background:#fdeaea}
  .e8blok .opts li .znak{font-weight:800;margin-left:6px}
  .e8blok .wynik{background:var(--acc-soft);border:2px solid var(--acc-line);border-radius:14px;padding:14px 18px;margin:16px 0}
  .e8blok .wynik b.duzy{font-size:22px;color:var(--navy)}
  .e8blok .e8krok{display:flex;align-items:center;gap:14px;margin:12px 0 6px;flex-wrap:wrap}
  .e8blok .e8krok button{margin:0}
  .e8blok .e8krok button[disabled]{opacity:.35;cursor:default}
  .e8blok .e8postep{font-family:'Baloo 2',system-ui,sans-serif;font-weight:800;color:var(--navy);font-size:15px;min-width:64px;text-align:center}
  .e8blok button.maly{font-size:13px;padding:6px 14px}
  .e8blok .schowane{display:none}
  /* próbny arkusz — ten sam szkielet co test, plus zegar, punkty i samoocena zadań otwartych */
  .e8blok .e8ark{background:#fff;border:2px solid var(--navy);border-radius:14px;padding:14px 18px;margin:18px 0 6px}
  .e8blok .e8ark p{margin:0 0 10px;font-size:15px}
  .e8blok .e8ark button{font:inherit;font-weight:700;cursor:pointer;border-radius:10px;padding:10px 18px;border:0;background:var(--navy);color:#fff}
  .e8blok .e8ark button:hover{background:#2b4560}
  .e8blok .e8ark button.drugi{background:#fff;color:var(--navy);border:2px solid var(--navy);margin-left:8px}
  .e8blok .e8ark table.dtab{font-size:14.5px;margin:0 0 12px}
  .e8blok .e8ark table.dtab td{text-align:left;white-space:normal}
  /* Zegar jest przyklejony do okna, bo arkusz jest dlugi na kilka ekranow — licznik
     przewiniety poza widok nie pilnuje czasu. */
  .e8blok .e8zegar{position:fixed;right:16px;bottom:16px;z-index:60;background:var(--navy);color:#fff;
    font-family:'Baloo 2',system-ui,sans-serif;font-size:20px;font-weight:700;border-radius:14px;
    padding:9px 16px;box-shadow:0 6px 20px rgba(20,30,60,.28);letter-spacing:.02em}
  .e8blok .e8zegar small{display:block;font-family:'Nunito',sans-serif;font-size:11px;font-weight:600;opacity:.75;letter-spacing:.06em;text-transform:uppercase}
  .e8blok .e8zegar.malo{background:#b3261e}
  @media(max-width:600px){.e8blok .e8zegar{right:10px;bottom:10px;font-size:17px;padding:7px 13px}}
  /* prawda/fałsz i dobieranie jako klikalne — bez tego arkusz nie mialby proporcji prawdziwej sesji */
  .e8blok table.pf td.pfc.klik{cursor:pointer}
  .e8blok table.pf td.pfc.klik:hover{background:var(--acc-soft)}
  .e8blok table.pf td.pfc.wybrana{background:var(--navy);color:#fff}
  .e8blok table.pf td.pfc.dobrze{background:#16a34a;color:#fff}
  .e8blok table.pf td.pfc.zle{background:#dc2626;color:#fff}
  .e8blok .ab-opts li.klik{cursor:pointer;border:2px solid transparent;border-radius:10px;padding:2px 10px;list-style:none}
  .e8blok .ab-opts li.klik:hover{background:var(--acc-soft)}
  .e8blok .ab-opts li.wybrana{border-color:var(--navy);background:var(--acc-soft)}
  .e8blok .ab-opts li.dobrze{border-color:#16a34a;background:#e8f7ee}
  .e8blok .ab-opts li.zle{border-color:#dc2626;background:#fdeaea}
  .e8blok .ab-box.wybrana{background:var(--navy);color:#fff}
  .e8blok .ab-box.dobrze{background:#16a34a;border-color:#16a34a;color:#fff}
  .e8blok .ab-box.zle{background:#dc2626;border-color:#dc2626;color:#fff}
  /* samoocena zadania otwartego — maszyna nie oceni rozumowania, wiec punkty stawia uczen */
  .e8blok .samoocena{background:#fff;border:2px dashed var(--navy);border-radius:14px;padding:10px 16px 12px;margin:10px 0 0}
  .e8blok .samoocena p{margin:6px 0;font-size:14.5px}
  .e8blok .samoocena .odpm{background:var(--gr-soft);border-radius:10px;padding:7px 13px;display:inline-block;font-weight:700;color:var(--navy)}
  .e8blok .samoocena .pkty{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0}
  .e8blok .samoocena .pkty button{font:inherit;font-weight:800;cursor:pointer;border:2px solid var(--navy);background:#fff;color:var(--navy);border-radius:10px;padding:5px 15px}
  .e8blok .samoocena .pkty button.wybrany{background:var(--navy);color:#fff}
  .e8blok .wynik table.pkt{border-collapse:collapse;margin:10px 0 0;font-size:15px}
  .e8blok .wynik table.pkt td{padding:3px 14px 3px 0}
  .e8blok .wynik table.pkt td.l{text-align:right;font-weight:800;color:var(--navy)}
  .e8blok details.dane{margin:6px 0 0;font-size:13.5px;color:var(--muted)}
  .e8blok details.dane summary{cursor:pointer;color:#3a5a9b;font-weight:700;list-style:none}
  .e8blok details.dane summary::-webkit-details-marker{display:none}
  .e8blok details.dane summary::before{content:"▸ ";font-size:11px}
  .e8blok details.dane[open] summary::before{content:"▾ "}

  .e8blok .figbox{margin:14px 0;text-align:center}
  .e8blok svg.e8fig{display:block;margin:0 auto;width:100%;height:auto;box-sizing:border-box;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px}
  /* Czcionka jak w poleceniach: litery i zmienne w kroju matematycznym KaTeX (kursywa),
     liczby i jednostki w KaTeX_Main, a opisy osi — prozą, czyli Nunito. */
  .e8blok svg.e8fig text{font-family:KaTeX_Main,'Times New Roman',serif;font-size:15px;fill:#20344b;
    paint-order:stroke fill;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
  .e8blok svg.e8fig .ln{stroke:#20344b;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .e8blok svg.e8fig .thin{stroke:#20344b;stroke-width:1.4;fill:none}
  .e8blok svg.e8fig .dash{stroke:#20344b;stroke-width:1.6;fill:none;stroke-dasharray:6 5;stroke-linecap:round}
  .e8blok svg.e8fig .fill{fill:#FFF3DD;stroke:none}
  .e8blok svg.e8fig .acc{stroke:#F4A228;stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .e8blok svg.e8fig .zbior{stroke:#F4A228;stroke-width:5;fill:none;stroke-linecap:butt}
  .e8blok svg.e8fig .grid{stroke:#dde5ee;stroke-width:1}
  .e8blok svg.e8fig .grid2{stroke:#eef2f7;stroke-width:1}
  .e8blok svg.e8fig .baza{stroke:#20344b;stroke-width:2.4;stroke-linecap:square}
  .e8blok svg.e8fig .osY{stroke:#c2ccd8;stroke-width:1.4}
  .e8blok svg.e8fig .wart{font-family:KaTeX_Main,'Times New Roman',serif;font-size:14px;fill:#20344b;font-weight:400}
  .e8blok svg.e8fig .ax{stroke:#20344b;stroke-width:1.8;fill:none}
  .e8blok svg.e8fig .kreska{stroke:#8b98a8;stroke-width:1.3}
  .e8blok svg.e8fig .wym{stroke:#5a6675;stroke-width:1.3}
  .e8blok svg.e8fig .bar{fill:#F4A228}
  .e8blok svg.e8fig .bar2{fill:#20344b}
  /* Klasa lbl zostaje kursywą — opiera się na niej wprost kilkaset etykiet wierzchołków
     (A, B, C, α), pisanych w figury.mjs ręcznie, bez przechodzenia przez mat().
     O złożeniu napisów WIELOZNAKOWYCH decydują natomiast tspany wstawiane przez mat():
     klasa zm pochyla zmienną, klasa pr prostuje liczby, nawiasy i znaki działań.
     Dzięki temu „P = (−3, 4)" ma pochyloną tylko literę P, a nie całą resztę. */
  .e8blok svg.e8fig .lbl{font-family:KaTeX_Math,'Times New Roman',serif;font-style:italic;font-weight:400;font-size:18.5px}
  .e8blok svg.e8fig .pr{font-family:KaTeX_Main,'Times New Roman',serif;font-style:normal}
  .e8blok svg.e8fig .dim{font-size:14.5px;fill:#5a6675}
  .e8blok svg.e8fig .osopis{font-family:'Nunito',system-ui,-apple-system,sans-serif;font-size:13px;fill:#6a7686}
  .e8blok svg.e8fig .ang{fill:none;stroke:#2563eb;stroke-width:2.4}
  .e8blok svg.e8fig .angd{fill:#2563eb;stroke:none}
  .e8blok svg.e8fig .ang-z{fill:none;stroke:#16a34a;stroke-width:2.4}
  .e8blok svg.e8fig .ang-f{fill:none;stroke:#9333ea;stroke-width:2.4}
  .e8blok svg.e8fig .angt-z{fill:#16a34a;font-weight:400;font-size:15px}
  .e8blok svg.e8fig .angt-f{fill:#9333ea;font-weight:400;font-size:15px}
  .e8blok svg.e8fig .angt{fill:#2563eb;font-weight:400;font-size:15px}
  .e8blok svg.e8fig .nieznane{fill:#dc2626;font-weight:700}
  .e8blok svg.e8fig .zm{font-family:KaTeX_Math,'Times New Roman',serif;font-style:italic}
  .e8blok svg.e8fig .dot{fill:#20344b}
  .e8blok svg.e8fig .sect{stroke:#fff;stroke-width:2.5}
  .e8blok svg.e8fig .czer{stroke:#dc2626;stroke-width:2.2;stroke-linecap:round}
  .e8blok svg.e8fig .ziel{stroke:#16a34a;stroke-width:2.2;stroke-linecap:round}
  .e8blok svg.e8fig .czert{fill:#dc2626;font-size:13px}
  .e8blok svg.e8fig .zielt{fill:#16a34a;font-size:13px}

  .e8blok .katex{font-size:1.05em}
  @media(max-width:600px){.e8blok .opts,.e8blok .opts.one{grid-template-columns:1fr 1fr}}
