/* ErgoFlow — strona produktu (bloki ep-*). Doklejany tylko na stronach z tymi blokami.
 *
 * Kierunek: cala strona jasna (decyzja wlasciciela 2026-10-10 — bez ciemnych pasow), pasy na
 * przemian: tlo strony #F0F2F5, bialy, stalowy #E6E9EE. Gdzieniegdzie babelki z ksiegi znaku
 * w rogu pasa (.ep-bub), nigdy pod tekstem — sprawdzone pomiarem przy 1440/1280/1024/800/390 px.
 * Jedyny akcent to akcent marki; przyciski glowne — gradient logo z granatowym napisem.
 *
 * Kontrasty (policzone wzorem WCAG, sprawdzone w Chrome na kazdym widocznym tekscie strony).
 * Tusz to granat ErgoFlow (.ea): tekst #12355A 11.1:1 na tle #F0F2F5, 10.3:1 na stali #E6E9EE;
 * opisy #3F5670 6.7:1 na tle, 6.2:1 na stali; drobny druk #52647B 5.4:1 na tle, 5.0:1 na stali.
 * Akcent #0C75A2 4.6:1 na tle i 5.1:1 na bialym; na stali akcent pasa #0A6A93 4.9:1 (akcent
 * strony dawal tam 4.2:1). Etykiety na zdjeciu: granat na bieli 95%. Bursztyn pod tekst tylko
 * #8A5A00 (5.9:1 na bialym). Statusy: zielony #1D6B45 na #E3F2EA 5.6:1, niebieski #0C5F86 na
 * #E1EEF5 5.9:1, szary #444C57 na #ECEEF1 7.5:1.
 * Komentarze w tym pliku bez znakow, ktore cokolwiek rozumialoby jako szablon.
 */

/* ── pasy ─────────────────────────────────────────────────────── */
/* Tusz strony produktu: granat ErgoFlow zamiast czerni (wlasciciel 2026-10-10). Tylko w tresci
   (.ea) — menu i stopka zostaja jak w calym serwisie. Tekst #12355A 11.1:1 na tle, opisy #3F5670
   6.7:1 na tle i 6.2:1 na stali, drobny druk #52647B 5.0:1 na stali. */
.ea{--tx:#12355A;--mut:#3F5670;--dim:#52647B}
.ep-band{position:relative;background:var(--bg);color:var(--tx)}
.ep-band.white{--bg:#FFFFFF;background:#FFFFFF}
.ep-band.steel{--bg:#E6E9EE;--panel:#FFFFFF;--panel2:#F4F6F8;--line:#C9D0D9;--mut:#3F5670;--dim:#52647B;--accent:#0A6A93;background:#E6E9EE}
/* Babelki z ksiegi znaku: w rogu pasa, pod trescia (tresc ma z-index 1), krycie jak na stronie glownej. */
.ep-band>.ea-wrap{position:relative;z-index:1}
.ep-bub{position:absolute;width:var(--bub,400px);height:var(--bub,400px);overflow:hidden;pointer-events:none;z-index:0;opacity:.24}
.ep-bub svg{display:block;width:100%;height:100%}
.ep-bub.tr{top:0;right:0}.ep-bub.tl{top:0;left:0}.ep-bub.br{bottom:0;right:0}.ep-bub.bl{bottom:0;left:0}
.ep-band.steel .ep-bub{opacity:.28}
.ep-bub .bb{transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:no-preference){
  .ep-bub .bb{animation:epPlyn var(--d,16s) ease-in-out var(--o,0s) infinite alternate}
}
@keyframes epPlyn{from{transform:translate(0,0)}to{transform:translate(var(--dx,6px),calc(-1 * var(--dy,16px)))}}
:root[data-contrast="high"] .ep-bub{display:none}
.ea .ep-band h2,.ea .ep-band h3{color:var(--tx)}
.ep-band .ea-wrap{max-width:1240px}

/* Atrybut hidden ma wygrywac z display ustawionym klasa (zakladki, kroki, wyniki). */
.ep-band [hidden]{display:none!important}
/* BeTheme stawia tlo, gradient i cien na kazdym <button> (takze :hover) — w pasach produktu
   przyciski maja wlasny wyglad, wiec zdejmujemy to u zrodla. */
.ep-band button{background-image:none;box-shadow:none;text-shadow:none;letter-spacing:normal;text-transform:none;line-height:1.2}
.ep-band .kq-link,.ep-band .kq-link:hover,.ep-band .kq-link:focus,
.ep-band .kq-back,.ep-band .kq-back:hover,.ep-band .kq-back:focus{background:none!important}
.ep-band .ep-tabs button:not([aria-selected=true]):is(:hover,:focus){background:none!important;color:var(--tx)}
.ep-band .ep-seg button:not([aria-pressed=true]):is(:hover,:focus){background:none!important;color:var(--tx)}
.ep-band .kq-tabs button:not(.on):is(:hover,:focus){background:transparent!important}
.ep-band .kq-tile.off:hover,.ep-band .kq-btn[disabled]:hover{background-color:inherit}

/* ── typografia ─────────────────────────────────────────────── */
.ep-eyebrow{display:inline-block;font:600 12px/1.2 var(--font-mono,ui-monospace,monospace);letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);margin:0 0 16px}
.ep-head{max-width:820px;margin:0 0 40px}
.ep-head h2{font-family:var(--font-display,inherit);font-weight:800;font-size:clamp(30px,3.9vw,52px);line-height:1.06;
  letter-spacing:-.03em;margin:0;text-wrap:balance}
.ep-lead{margin:18px 0 0;font-size:clamp(16.5px,1.35vw,19px);line-height:1.6;color:var(--mut);max-width:64ch}
.ep-note{font-size:14px;line-height:1.55;color:var(--mut);margin:18px 0 0;max-width:80ch}
.ep-hint{font-size:14px;line-height:1.5;color:var(--mut);margin:6px 0 0}
.ep-cap{font-size:13px;line-height:1.5;color:var(--mut);margin:10px 0 0}
.ep-opt{font-weight:500;color:var(--dim);font-size:12px}
.ep-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px;padding:0;border:0}

/* ── przyciski ──────────────────────────────────────────────── */
.ep-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:999px;
  font:700 15.5px/1 var(--font-body,inherit);text-decoration:none;cursor:pointer;border:1px solid transparent;
  transition:background .2s,border-color .2s,color .2s,transform .2s}
.ep-btn.lg{min-height:56px;padding:0 30px;font-size:16.5px}
.ep-btn.sm{min-height:40px;padding:0 16px;font-size:14px}
.ep-btn.primary{background:var(--brand-grad,var(--accent));color:var(--on-brand,#1B1F2B)}
.ep-btn.primary:hover{background:var(--brand-grad-hover,var(--accent));color:var(--on-brand,#1B1F2B)}
.ep-btn.ghost{background:transparent;color:var(--tx);border-color:var(--line-strong,#6B7790)}
.ep-btn.ghost:hover{border-color:var(--tx)}
.ep-btn.link{background:none;color:var(--mut);padding:0 8px;text-decoration:underline;text-underline-offset:3px}
.ep-btn:focus-visible,.ep-band button:focus-visible,.ep-band a:focus-visible,.ep-band input:focus-visible,.ep-band select:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px}
.ep-btn[disabled]{opacity:.5;cursor:not-allowed}

/* ── HERO ───────────────────────────────────────────────────── */
.ep-hero{padding:56px 0 64px;overflow:hidden}
.ep-hero.is-armed>.ea-wrap{opacity:1!important;transform:none!important}
.ep-hero-in{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:56px;align-items:center}
.ep-hero h1{font-family:var(--font-display,inherit);font-weight:800;font-size:clamp(40px,5.3vw,76px);line-height:1.02;
  letter-spacing:-.038em;margin:0;text-wrap:balance;color:var(--tx)}
.ep-hero .ep-accent{display:block;color:var(--mut)}
.ep-hero-lead{margin:26px 0 0;font-size:clamp(17px,1.4vw,20px);line-height:1.6;color:var(--mut);max-width:56ch}
.ep-actions{display:flex;flex-wrap:wrap;gap:14px;margin:34px 0 0}
.ep-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:44px 0 0;padding:0;border-top:1px solid var(--line)}
.ep-facts>div{padding:16px 16px 0 0}
.ep-facts dt{order:2;font-size:13px;line-height:1.4;color:var(--mut);margin:6px 0 0}
.ep-facts dd{order:1;margin:0;font-family:var(--font-display,inherit);font-weight:800;font-size:clamp(19px,1.7vw,25px);letter-spacing:-.02em;white-space:nowrap;
  color:var(--tx);font-variant-numeric:tabular-nums}
.ep-facts>div{display:flex;flex-direction:column}
.ep-facts-note{margin:14px 0 0;font:500 12px/1.4 var(--font-mono,ui-monospace,monospace);letter-spacing:.04em;color:var(--dim)}
.ep-hero-fig{margin:0;position:relative}
.ep-hero-stage{position:relative;aspect-ratio:4/5;border-radius:22px;overflow:visible;background:#DDE2E8}
.ep-hero-stage>.ep-hero-img,.ep-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:22px;display:block}
.ep-hero-stage::after{content:"";position:absolute;inset:0;border-radius:22px;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(20,26,34,.08),0 44px 80px -46px rgba(20,26,34,.45)}
.ep-hero-video{opacity:0;transition:opacity .9s ease}
/* Ruch w kadrze bez filmu: smuga swiatla dziennego przez cale zdjecie i refleks, ktory co kilka
   sekund przesuwa sie po kolumnie stalowych klap (wielokat z pola polysk). Zdjecie stoi. */
.ep-hero-light,.ep-hero-glint{position:absolute;inset:0;border-radius:22px;pointer-events:none;z-index:1}
.ep-hero-light{background:radial-gradient(38% 60% at 50% 30%,rgba(255,255,255,.55),rgba(255,255,255,0) 70%) no-repeat;
  background-size:70% 100%;background-position:-60% 0;mix-blend-mode:soft-light;opacity:.9}
.ep-hero-glint{border-radius:0;background:linear-gradient(172deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 42%,
  rgba(255,255,255,.5) 50%,rgba(255,255,255,0) 58%,rgba(255,255,255,0) 100%) no-repeat;background-size:100% 260%;
  background-position:0 -130%;mix-blend-mode:screen}
@media (prefers-reduced-motion:no-preference){
  .ep-hero-light{animation:epDzien 16s ease-in-out infinite alternate}
  .ep-hero-glint{animation:epPolysk 7s cubic-bezier(.45,.05,.3,1) 1.4s infinite}
}
@keyframes epDzien{to{background-position:160% 0}}
@keyframes epPolysk{0%{background-position:0 -130%}38%,100%{background-position:0 230%}}
:root[data-contrast="high"] .ep-hero-light,:root[data-contrast="high"] .ep-hero-glint{display:none}
.ep-hero-video.is-on{opacity:1}
.ep-callout{position:absolute;left:var(--x);top:var(--y);z-index:2;display:flex;align-items:center;gap:10px;pointer-events:none;
  translate:-13px -13px}
/* Etykieta po lewej: punkt (kolko) jest na KONCU, wiec cala etykieta przesuwa sie o swoja szerokosc. */
.ep-callout.l{flex-direction:row-reverse;translate:calc(-100% + 13px) -13px}
.ep-callout>i{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  font:700 12px/1 var(--font-mono,ui-monospace,monospace);font-style:normal;color:#FFFFFF;background:#0C75A2;
  box-shadow:0 0 0 5px rgba(255,255,255,.55)}
.ep-callout>span{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:10px;
  background:rgba(255,255,255,.95);border:1px solid rgba(20,26,34,.1);box-shadow:0 10px 24px -14px rgba(20,26,34,.5);white-space:nowrap}
.ep-callout b{font-size:13.5px;line-height:1.25;color:#12355A}
.ep-callout small{font-size:12px;line-height:1.35;color:#3F5670}
.ep-hero-legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (prefers-reduced-motion:no-preference){
  .ep-callout{animation:epWej .5s cubic-bezier(.2,.7,.3,1) both;animation-delay:calc(.35s + var(--n,0)*.12s)}
  .ep-callout:nth-of-type(2){--n:1}.ep-callout:nth-of-type(3){--n:2}.ep-callout:nth-of-type(4){--n:3}.ep-callout:nth-of-type(5){--n:4}
}
@keyframes epWej{from{opacity:0;transform:translateY(6px)}}

/* przyklejony przycisk */
.ep-sticky{position:fixed;right:24px;bottom:24px;z-index:70;display:inline-flex;align-items:center;min-height:52px;padding:0 26px;
  border-radius:999px;background:var(--brand-grad,#0C75A2);color:var(--on-brand,#1B1F2B);font:700 15.5px/1 var(--font-body,inherit);
  text-decoration:none;box-shadow:0 16px 40px -14px rgba(10,14,20,.55);opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity .25s ease,transform .25s ease}
.ep-sticky.is-on{opacity:1;transform:none;pointer-events:auto}
.ep-sticky:focus-visible{outline:2px solid #1B1F2B;outline-offset:3px}

/* ── TEZY (problem) ─────────────────────────────────────────── */
.ep-teza-sec{padding:104px 0}
.ep-teza{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px;align-items:start}
.ep-teza-head{position:sticky;top:150px}
.ep-teza-head .ep-head{margin:0}
.ep-teza-list{list-style:none;margin:0;padding:0}
.ep-teza-list li{padding:28px 0 30px;border-top:1px solid var(--line)}
.ep-teza-list li:last-child{border-bottom:1px solid var(--line)}
.ea .ep-teza-list h3{font-family:var(--font-display,inherit);font-weight:800;font-size:clamp(22px,2.2vw,30px);line-height:1.18;
  letter-spacing:-.022em;margin:0;text-wrap:balance}
.ep-teza-list p{margin:10px 0 0;font-size:16.5px;line-height:1.6;color:var(--mut);max-width:58ch}
.ep-teza-note{margin:24px 0 0;font-size:15px;color:var(--mut)}

/* ── DEMO KIOSKU ────────────────────────────────────────────── */
.ep-demo-sec{padding:104px 0}
.ep-demo-flag{display:inline-flex;align-items:center;gap:10px;margin:-14px 0 32px;padding:9px 14px;border-radius:999px;
  border:1px dashed var(--line-strong);font-size:13.5px;color:var(--mut)}
.ep-demo-flag::before{content:"";width:8px;height:8px;border-radius:50%;background:#F59E0B;flex:none}
.ep-demo{display:flex;flex-direction:column;gap:26px}
/* Pasek etapow nad demo: kreska postepu przez wszystkie kroki, biezacy krok sie wypelnia. */
.ep-demo-prog{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ep-demo-prog li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:2px;align-items:center;
  padding:16px 0 0;border-top:3px solid var(--line);transition:border-color .4s}
.ep-demo-prog li>i{grid-row:1/span 2;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--line-strong);
  font:700 13px/1 var(--font-mono,ui-monospace,monospace);font-style:normal;color:var(--mut);background:var(--panel);transition:all .3s}
.ep-demo-prog b{font-size:15px;line-height:1.25;color:var(--tx)}
.ep-demo-prog span{font-size:13px;line-height:1.4;color:var(--mut)}
.ep-demo-prog li.is-done{border-top-color:var(--accent)}
.ep-demo-prog li.is-done>i{border-color:var(--accent);color:var(--accent)}
.ep-demo-prog li.is-on{border-top-color:transparent}
.ep-demo-prog li.is-on::before{content:"";position:absolute;left:0;top:-3px;width:100%;height:3px;border-radius:2px;
  background:linear-gradient(90deg,#0C75A2,#29AB82);transform-origin:left}
.ep-demo-prog li.is-on>i{background:var(--accent);border-color:var(--accent);color:#FFFFFF}
@media (prefers-reduced-motion:no-preference){.ep-demo-prog li.is-on::before{animation:epPasek 1.1s cubic-bezier(.3,.7,.3,1) both}}
@keyframes epPasek{from{transform:scaleX(0)}}
.ep-demo-grid{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:32px;align-items:start}
.ep-demo-maszyna{display:flex;flex-direction:column;gap:18px;min-width:0}
.ep-drum-host.lg{height:400px}
/* Ramka to obudowa ekranu automatu (jasny lakier); sam ekran zostaje w barwach kiosku SmartBox. */
.ep-kiosk-frame{position:relative;padding:14px 14px 46px;border-radius:28px;background:linear-gradient(180deg,#F4F6F8,#D5DBE2);
  box-shadow:inset 0 0 0 1px rgba(20,26,34,.1),inset 0 1px 0 #FFFFFF,0 36px 70px -40px rgba(20,26,34,.5)}
/* Ekran: prawdziwy zrzut kiosku, na nim przezroczyste przyciski w miejscach przyciskow aplikacji. */
.ep-kiosk-screen{position:relative;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:#3A3C41}
.ep-kiosk-screen>img{display:block;width:100%;height:100%;object-fit:cover}
.ep-hot{position:absolute;inset:0}
.ep-band .ep-hot button{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);margin:0;padding:0;border:0;border-radius:10px;
  background:transparent;cursor:pointer;min-height:0;overflow:visible}
.ep-band .ep-hot button:is(:hover,:focus){background:rgba(17,132,199,.10)!important}
/* Na telefonie ekran kiosku jest pomniejszony: −/+ mialy 16 px. Pole dotyku ma co najmniej
   24×24 px (WCAG 2.5.8), choc widoczny przycisk aplikacji zostaje swojej wielkosci. */
.ep-hot button::before{content:"";position:absolute;left:50%;top:50%;width:max(100%,24px);height:max(100%,24px);transform:translate(-50%,-50%)}
.ep-band .ep-hot button:focus-visible{outline:3px solid #0C75A2;outline-offset:2px}
/* Czytnik pod ekranem to przycisk demo: tu „przyklada sie" karte. */
.ep-band .ep-kiosk-reader{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);width:76px;height:28px;margin:0;padding:0;border:0;
  border-radius:7px;background:#2B3340;box-shadow:inset 0 0 0 1px rgba(20,26,34,.2);cursor:pointer;min-height:0}
.ep-band .ep-kiosk-reader:is(:hover,:focus){background:#36404F!important}
.ep-kiosk-reader span{position:absolute;inset:9px 22px;border-radius:2px;background:#3FA3DD;opacity:.75}
.ep-band .ep-kiosk-reader:focus-visible{outline:3px solid #0C75A2;outline-offset:3px}
/* Podpowiedz: pulsuje to, co trzeba teraz kliknac (bez ruchu — tylko obwodka). */
.ep-hot button.is-podp,.ep-kiosk-reader.is-podp{box-shadow:0 0 0 3px rgba(17,132,199,.55)}
@media (prefers-reduced-motion:no-preference){
  .ep-hot button.is-podp,.ep-kiosk-reader.is-podp{animation:epPuls 1.6s ease-in-out infinite}
}
@keyframes epPuls{0%,100%{box-shadow:0 0 0 2px rgba(17,132,199,.35)}50%{box-shadow:0 0 0 7px rgba(17,132,199,.12)}}
/* Klape wysuwa pracownik: przycisk na bebnie pojawia sie, gdy beben stanie przy skrytce. */
.ep-band .ep-klapa{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:6;box-shadow:0 10px 24px -12px rgba(18,53,90,.6)}
@media (prefers-reduced-motion:no-preference){.ep-band .ep-klapa:not([hidden]){animation:epPuls 1.6s ease-in-out infinite}}
/* Artykul wychodzacy z otwartej skrytki: startuje z komorki, wysuwa sie do przodu i w dol. */
.ep-wyjscie{position:absolute;left:50%;top:50%;width:0;height:0;z-index:5;pointer-events:none}
.ep-szt{position:absolute;left:-30px;top:-30px;width:60px;height:60px;border-radius:16px;background:#FFFFFF;color:#0C75A2;display:grid;place-items:center;
  box-shadow:0 16px 30px -14px rgba(18,53,90,.6),inset 0 0 0 1px rgba(18,53,90,.12);transform:translate(var(--sx,0px),var(--sy,130px))}
.ep-szt .ep-ico{width:34px;height:34px}
.ep-szt-l{position:absolute;left:0;top:calc(var(--sy,130px) + 40px);transform:translateX(-50%);white-space:nowrap;padding:6px 12px;border-radius:999px;
  background:#FFFFFF;color:var(--tx);font:600 13px/1.2 var(--font-body,inherit);box-shadow:0 8px 20px -12px rgba(18,53,90,.5)}
@media (prefers-reduced-motion:no-preference){
  .ep-szt{animation:epWyjdz 1.15s cubic-bezier(.2,.7,.3,1) both;animation-delay:var(--dl,0s)}
  .ep-szt-l{animation:epNapis .5s ease both;animation-delay:calc(var(--dl,0s) + .8s)}
}
@keyframes epWyjdz{from{transform:translate(0,0) scale(.3);opacity:0}25%{opacity:1}}
@keyframes epNapis{from{opacity:0;transform:translate(-50%,6px)}}
.ep-demo-mech,.ep-demo-panel{border:1px solid var(--line);border-radius:18px;background:var(--panel2);padding:16px 18px 18px;min-width:0}
.ep-mini-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font:600 11.5px/1.3 var(--font-mono,ui-monospace,monospace);
  letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:10px}
.ep-tag{color:#8A5A00}
.ep-log-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ep-log{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
.ep-log th{text-align:left;font-weight:600;color:var(--mut);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.ep-log td{padding:10px;border-bottom:1px solid var(--line);color:var(--tx);font-variant-numeric:tabular-nums;white-space:nowrap}
.ep-log td small{color:var(--mut)}
.ep-log tr[data-pusty] td{color:var(--mut);white-space:normal}
.ep-log tr.is-new td{background:rgba(41,171,130,.12)}
.ep-log tr td{transition:background 1.4s ease}
.kq-badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11.5px;font-weight:700;background:#E3F2EA;color:#1D6B45}
.ep-panel-row{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-top:14px}
.ep-stan,.ep-raport{border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13.5px;color:var(--mut);display:flex;flex-direction:column;gap:7px}
.ep-stan b,.ep-stan strong{color:var(--tx)}
.ep-raport b{font-family:var(--font-display,inherit);font-size:28px;color:var(--tx);font-variant-numeric:tabular-nums}
.ep-raport-bar{height:6px;border-radius:3px;background:var(--line)}
.ep-raport-bar i{display:block;height:100%;width:0;border-radius:3px;background:var(--accent);transition:width .6s ease}
.kq-alert{color:#8A5A00;font-weight:600}

/* ekrany kiosku (kq-*) — uklad i komunikaty jak w aplikacji SmartBox. Kiosk ma kilka motywow
   o tych samych funkcjach; tu jasne karty i blekit marki z motywu ErgoFlow Old (kiosk_templates.dart),
   na jasnym tle. Glowny przycisk ma ciemniejszy blekit tego motywu (accentDeep), bo bialy na
   #1184C7 daje tylko 4.1:1. */
.kq-top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #DDE2E8;background:#FFFFFF;
  font-size:12.5px;color:#5B6068}
.kq-logo{font-weight:800;letter-spacing:.02em;color:#23262B}
.kq-back{background:none;border:0;color:#0C6399;font:600 13px/1 inherit;cursor:pointer;padding:6px 0}
.kq-body{flex:1;display:flex;flex-direction:column;gap:10px;padding:18px 16px;min-height:0;overflow:auto}
.kq-center{align-items:center;justify-content:center;text-align:center}
.kq-body h4{margin:0;font-size:20px;line-height:1.2;color:#23262B;font-weight:800}
.kq-sub{margin:0;font-size:13px;line-height:1.45;color:#5B6068}
.kq-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.kq-tabs button{min-height:40px;border-radius:10px;border:1px solid #C9D0D9;background:#FFFFFF;color:#23262B;
  font:700 12px/1 inherit;letter-spacing:.06em;cursor:pointer}
.kq-tabs button.on{background:#E3F0F9;border-color:#1184C7;color:#0C6399}
.kq-card{display:flex;flex-direction:column;align-items:center;gap:10px;margin:8px 0;padding:18px;border-radius:14px;background:#FFFFFF;
  border:1px solid rgba(0,0,0,.08);text-align:center;box-shadow:0 8px 20px -16px rgba(20,26,34,.5)}
.kq-card p{margin:0;font-size:13.5px;color:#5B6068}
.kq-reader{width:58px;height:40px;border-radius:8px;border:2px solid #1184C7;position:relative}
.kq-reader::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px;border-radius:50%;border:2px solid #1184C7;opacity:.6}
@media (prefers-reduced-motion:no-preference){.kq-reader::after{animation:kqFala 1.6s ease-out infinite}}
@keyframes kqFala{from{transform:scale(.6);opacity:.9}to{transform:scale(1.5);opacity:0}}
.kq-btn{margin-top:auto;min-height:48px;border-radius:12px;border:0;background:#0C6399;color:#FFFFFF;font:800 15px/1.2 inherit;cursor:pointer;
  padding:10px 14px;width:100%}
.kq-btn small{font-weight:600;opacity:.85}
.kq-btn[disabled]{background:#DDE2E8;color:#5B6068;cursor:not-allowed}
.kq-link{background:none;border:0;color:#5B6068;font:600 13px/1 inherit;text-decoration:underline;cursor:pointer;padding:8px}
.kq-pin{font-size:26px;letter-spacing:.3em;color:#0C6399;text-align:center;margin:6px 0}
.kq-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.kq-pad button{min-height:44px;border-radius:10px;border:1px solid #C9D0D9;background:#FFFFFF;color:#23262B;font:700 17px/1 inherit;cursor:pointer}
.kq-menu{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.kq-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;border-radius:14px;border:1px solid #1184C7;
  background:#FFFFFF;color:#23262B;text-align:left;cursor:pointer;font:inherit}
.kq-tile b{font-size:17px}
.kq-tile span{font-size:12.5px;color:#5B6068}
.kq-tile.off{border-color:#DDE2E8;opacity:.6;cursor:not-allowed}
.kq-items{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kq-item{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;border-radius:12px;border:1px solid #DDE2E8;
  background:#FFFFFF;color:#23262B;text-align:left;cursor:pointer;font:inherit;min-width:0}
.kq-item b{font-size:13.5px;line-height:1.25}
.kq-item:hover{border-color:#1184C7}
.kq-stock{display:block;width:100%;height:5px;border-radius:3px;background:#E6E9EE}
.kq-stock i{display:block;height:100%;border-radius:3px}
.kq-stock.g i{background:#16A34A}.kq-stock.a i{background:#D98A1E}.kq-stock.r i{background:#D64A3B}
.kq-meta{font-size:12px;color:#5B6068}
.kq-lim{font-size:12px;font-weight:700;color:#1D6B45}
.kq-lim.zero{color:#B42318}
.kq-limrule{margin:0;font-size:13px;color:#23262B;padding:8px 10px;border-radius:8px;background:#FFFFFF;border:1px solid #DDE2E8}
.kq-qty{display:flex;align-items:center;justify-content:center;gap:18px;margin:8px 0}
.kq-qty button{width:46px;height:46px;border-radius:12px;border:1px solid #C9D0D9;background:#FFFFFF;color:#23262B;font:700 22px/1 inherit;cursor:pointer}
.kq-qty output{font:800 30px/1 inherit;min-width:40px;text-align:center;font-variant-numeric:tabular-nums}
.kq-err{margin:0;padding:10px;border-radius:10px;background:#FDECEA;color:#9B1C1C;font-size:13px}
.kq-banner{padding:10px 14px;border-radius:10px;background:#E3F0F9;color:#0C6399;font-weight:700;font-size:14px}
.kq-chip{display:inline-block;padding:5px 10px;border-radius:999px;background:#E6E9EE;color:#23262B;font:700 12.5px/1 var(--font-mono,ui-monospace,monospace)}
.kq-big{margin:4px 0;font-size:15px;line-height:1.4;font-weight:700;color:#23262B}
.kq-prog{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;text-align:left;width:100%}
.kq-prog li{font-size:12.5px;color:#6B7280;padding-left:20px;position:relative}
.kq-prog li::before{content:"";position:absolute;left:0;top:3px;width:10px;height:10px;border-radius:50%;border:2px solid #9AA3AE}
.kq-prog li.on{color:#23262B}.kq-prog li.on::before{border-color:#1184C7;background:#1184C7}
.kq-prog li.done{color:#5B6068}.kq-prog li.done::before{border-color:#16A34A;background:#16A34A}
.kq-spin{width:34px;height:34px;border-radius:50%;border:3px solid #DDE2E8;border-top-color:#1184C7}
@media (prefers-reduced-motion:no-preference){.kq-spin{animation:kqObr .8s linear infinite}}
@keyframes kqObr{to{transform:rotate(360deg)}}
.kq-ok{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#16A34A;color:#fff;font-size:32px;font-weight:800}

/* ── BEBEN (CSS 3D) ─────────────────────────────────────────── */
.ep-drum-host{position:relative;height:440px;border-radius:16px;overflow:hidden;
  background:radial-gradient(520px 320px at 50% 42%,rgba(12,117,162,.07),transparent 70%)}
.ep-drum-host.sm{height:250px}
.ep-drum-scene{position:absolute;inset:0;display:grid;place-items:center;perspective:1000px;cursor:grab;touch-action:pan-y}
.ep-drum-scene.is-drag{cursor:grabbing}
.ep-drum-scene:focus-visible{outline:2px solid var(--accent);outline-offset:-4px;border-radius:16px}
.ep-drum-rig{position:relative;width:0;height:0;transform-style:preserve-3d;transition:transform 1.25s cubic-bezier(.45,.05,.2,1)}
.ep-drum-face{position:absolute;display:flex;flex-direction:column;gap:2px;padding:2px 1px;transform-style:preserve-3d;backface-visibility:hidden;
  background:#AEB8C4;box-shadow:inset 0 0 0 1px rgba(20,26,34,.12)}
/* Cien sciany (--sh liczy skrypt z kata wzgledem widza) — nakladka nad komorkami, bez klikow. */
.ep-drum-face::after{content:"";position:absolute;inset:0;pointer-events:none;background:rgba(20,26,34,var(--sh,0));
  transition:background-color 1.2s cubic-bezier(.45,.05,.2,1)}
.ep-drum-scene.is-drag .ep-drum-face::after{transition:none}
@media (prefers-reduced-motion:reduce){.ep-drum-face::after{transition:none}}
/* Komorki sa <button>: selektor dwuklasowy, zeby reset .ep-band button nie zdjal gradientu. */
.ep-drum-face .ep-drum-cell{display:block;min-height:3px;border:0;padding:0;border-radius:1.5px;cursor:pointer;
  background:linear-gradient(180deg,#FFFFFF,#E2E7ED);transition:background .3s,transform .4s}
.ep-drum-face .ep-drum-cell.tall{background:linear-gradient(180deg,#F6F8FA,#D3DAE2)}
.ep-drum-face .ep-drum-cell:hover{background:#C3E3F0}
.ep-drum-face .ep-drum-cell.is-on{background:#0795CA}
.ep-drum-face .ep-drum-cell.is-open{background:#29AB82;transform:translateZ(14px)}
.ep-drum-axis{position:absolute;left:-4px;width:8px;border-radius:4px;background:linear-gradient(90deg,#9AA5B2,#6B7790);transform:translateZ(0)}
.ep-drum-cap{position:absolute;border-radius:50%;background:radial-gradient(circle,#8F9AA8 0 18%,#C3CBD4 19% 100%);
  box-shadow:inset 0 0 0 2px rgba(20,26,34,.1);backface-visibility:visible}
.ep-drum-window{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:2px solid #0C75A2;border-radius:6px;pointer-events:none}
.ep-drum-window span{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);white-space:nowrap;
  font:600 10.5px/1 var(--font-mono,ui-monospace,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
@media (prefers-reduced-motion:reduce){.ep-drum-rig,.ep-drum-cell{transition:none}}

/* ── KONSTRUKCJA ────────────────────────────────────────────── */
.ep-konstr-sec{padding:104px 0}
.ep-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);margin:0 0 26px;flex-wrap:wrap}
.ep-tabs button{min-height:42px;padding:0 18px;border-radius:999px;border:0;background:none;color:var(--mut);font:600 14.5px/1 inherit;cursor:pointer}
.ep-tabs button[aria-selected=true]{background:var(--tx);color:var(--bg)}
.ep-view-o{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:48px;align-items:center}
.ep-hs-stage{position:relative;max-width:440px;margin:0 auto;width:100%}
.ep-hs-stage::after{content:"";position:absolute;left:8%;right:8%;bottom:-2%;height:6%;border-radius:50%;background:rgba(20,26,34,.3);filter:blur(14px);z-index:0}
.ep-konstr-img{position:relative;z-index:1;display:block;width:100%;height:auto}
.ep-hs{position:absolute;z-index:2;left:var(--x);top:var(--y);width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;border:2px solid var(--accent);
  background:#FFFFFF;color:#0C75A2;font:700 13px/1 var(--font-mono,ui-monospace,monospace);cursor:pointer;transition:transform .2s,background .2s;
  box-shadow:0 6px 16px -8px rgba(20,26,34,.6)}
.ep-band .ep-hs:hover,.ep-band .ep-hs[aria-expanded=true]{background:#0C75A2;color:#FFFFFF;transform:scale(1.12)}
.ep-parts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;counter-reset:none}
.ep-parts li{display:flex;gap:14px;padding:14px 16px;border-radius:14px;border:1px solid transparent;cursor:default;transition:background .2s,border-color .2s}
.ep-parts li.is-on{background:var(--panel);border-color:var(--line)}
.ep-parts li>i{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);
  font:700 12.5px/1 var(--font-mono,ui-monospace,monospace);font-style:normal}
.ep-parts b{font-size:16px;color:var(--tx)}
.ep-parts p{margin:5px 0 0;font-size:14.5px;line-height:1.55;color:var(--mut)}
.ep-who{display:inline-block;margin-left:10px;padding:2px 8px;border-radius:999px;font:600 10.5px/1.5 var(--font-mono,ui-monospace,monospace);
  letter-spacing:.06em;text-transform:uppercase;vertical-align:2px;border:1px solid var(--line-strong);color:var(--mut)}
.ep-who.ergoflow{border-color:var(--accent);color:var(--accent)}
.ep-who.opcja{border-style:dashed}
.ep-drum-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}
.ep-seg{display:inline-flex;gap:2px;padding:3px;border-radius:12px;border:1px solid var(--line);background:var(--panel2)}
.ep-seg button{min-width:44px;min-height:40px;padding:0 12px;border-radius:9px;border:0;background:none;color:var(--mut);font:600 14px/1 inherit;cursor:pointer}
.ep-seg button[aria-pressed=true]{background:var(--panel);color:var(--tx);box-shadow:inset 0 0 0 1px var(--line-strong)}
.ep-drum-info{margin:12px 0 0;font-size:14.5px;line-height:1.5;color:var(--mut);min-height:3em}
.ep-drum-info b{color:var(--tx)}
.ep-view-3d{min-height:480px}
.ep-mv{width:100%;height:480px;--poster-color:transparent;background:transparent}
.ep-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;margin:56px 0 0;padding:0}
.ep-specs>div{padding:14px 0;border-top:1px solid var(--line)}
.ep-specs dt{font-size:13px;color:var(--mut)}
.ep-specs dd{margin:4px 0 0;font-size:15.5px;line-height:1.45;color:var(--tx);font-variant-numeric:tabular-nums}

/* ── WARSTWY ────────────────────────────────────────────────── */
.ep-warstwy-sec{padding:104px 0}
.ep-layers{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px}
.ep-layer{position:relative;padding:26px 0 0;border-top:3px solid #6B7790}
.ep-layer:nth-child(2){border-top-color:var(--accent)}
.ep-layer:nth-child(3){border-top:3px dashed #6B7790}
.ep-layer:not(:last-child)::after{content:"";position:absolute;right:-30px;top:-9px;width:16px;height:16px;border-top:3px solid var(--line-strong);
  border-right:3px solid var(--line-strong);transform:rotate(45deg)}
.ep-layer-who{display:block;font:600 11.5px/1.3 var(--font-mono,ui-monospace,monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.ea .ep-layer h3{margin:10px 0 0;font-family:var(--font-display,inherit);font-weight:800;font-size:24px;letter-spacing:-.02em}
.ep-layer ul{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.ep-layer li{position:relative;padding-left:18px;font-size:15.5px;line-height:1.5;color:var(--mut)}
.ep-layer li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:2px;background:var(--tx)}

/* ── ROLE ───────────────────────────────────────────────────── */
.ep-role-sec{padding:104px 0}
.ep-roles .ep-tabs{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0;gap:6px}
.ep-roles .ep-tabs button{border-radius:0;min-height:48px;padding:0 4px;margin-right:22px;color:var(--mut);border-bottom:2px solid transparent;margin-bottom:-1px}
.ep-roles .ep-tabs button[aria-selected=true]{background:none;color:var(--tx);border-bottom-color:var(--accent)}
.ep-roles:not(.is-live) .ep-tabs{display:none}
.ep-role{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;padding:34px 0 0}
.ea .ep-role h3{margin:0;font-family:var(--font-display,inherit);font-weight:800;font-size:clamp(24px,2.6vw,34px);line-height:1.15;letter-spacing:-.025em;text-wrap:balance}
.ep-role ul{grid-column:2;grid-row:1/span 2;margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.ep-role li{padding:14px 0;border-top:1px solid var(--line);font-size:16.5px;line-height:1.55;color:var(--tx)}
.ep-role-see{margin:0;font-size:15px;line-height:1.55;color:var(--mut);padding:16px 18px;border-radius:14px;background:var(--panel2,#F6F7F9);align-self:start}
.ep-role-see span{display:block;font:600 11px/1.4 var(--font-mono,ui-monospace,monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}

/* ── ZASTOSOWANIA ───────────────────────────────────────────── */
.ep-zast-sec{padding:104px 0}
.ep-zast{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:20px;overflow:hidden}
.ep-zast li{background:var(--bg);padding:26px 24px 28px;display:flex;flex-direction:column;gap:10px}
.ep-zast .ep-ico.lg{color:var(--accent)}
.ea .ep-zast h3{margin:6px 0 0;font-size:17px;font-weight:700;color:var(--tx)}
.ep-zast p{margin:0;font-size:14.5px;line-height:1.55;color:var(--mut)}
.ep-zast-note{margin:26px 0 0;font-size:15.5px;line-height:1.55;color:var(--mut);max-width:80ch}
.ep-zast-note b{color:var(--tx)}
.ep-zast-note a{color:var(--accent);font-weight:600}
@media (max-width:980px){.ep-zast{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ep-zast{grid-template-columns:1fr}}

/* ── INTEGRACJE ─────────────────────────────────────────────── */
.ep-integr-sec{padding:104px 0}
.ep-integr{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}
.ep-integr-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--mut)}
.ep-integr-legend li{display:flex;align-items:center;gap:10px}
.ep-integr-list{list-style:none;margin:0;padding:0}
.ep-integr-list li{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--line)}
.ep-integr-list b{font-size:16.5px;color:var(--tx)}
.ep-integr-list p{margin:4px 0 0;font-size:14.5px;line-height:1.5;color:var(--mut);max-width:58ch}
.ep-status{flex:none;display:inline-block;padding:5px 11px;border-radius:999px;font:700 12px/1.3 var(--font-body,inherit);white-space:nowrap}
.ep-status.jest{background:#E3F2EA;color:#1D6B45}
.ep-status.wdrozenie{background:#E1EEF5;color:#0C5F86}
.ep-status.ustalenia{background:#ECEEF1;color:#444C57}

/* ── KALKULATOR ─────────────────────────────────────────────── */
.ep-calc-sec{padding:104px 0}
.ep-calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.ep-calc-in{display:flex;flex-direction:column;gap:18px}
.ep-calc fieldset{margin:0;min-width:0;padding:20px 22px 22px;border:1px solid var(--line);border-radius:18px;background:var(--panel);display:flex;flex-direction:column;gap:18px}
/* Tytul grupy w srodku karty, nie w linii ramki: legenda „plywajaca" przestaje byc wpisywana
   w obramowanie fieldsetu (tak wygladala, jakby wychodzila poza karte). */
.ep-calc legend{float:left;width:100%;margin:0;padding:0 0 14px;border-bottom:1px solid var(--line);
  display:flex;align-items:baseline;gap:8px;font:800 16.5px/1.25 var(--font-display,inherit);letter-spacing:-.01em;color:var(--tx)}
.ep-calc legend span{font:500 12.5px/1 var(--font-body,inherit);color:var(--mut)}
.ep-calc legend+*{clear:both}
.ep-field{display:flex;flex-direction:column;gap:8px}
.ep-field-top{display:flex;justify-content:space-between;align-items:center;gap:14px}
.ep-field label,.ep-field-label{font-size:14.5px;line-height:1.35;color:var(--tx);font-weight:600}
.ep-num{display:inline-flex;align-items:center;gap:6px;flex:none}
.ep-num input,.ep-scen-in input{width:110px;min-height:42px;padding:0 10px;border-radius:10px;border:1px solid var(--line-strong,#6B7790);background:var(--panel2,#F4F6F8);
  color:var(--tx);font:700 15.5px/1 var(--font-body,inherit);text-align:right;font-variant-numeric:tabular-nums}
.ep-unit{font-size:13px;color:var(--mut);min-width:28px}
.ep-range{width:100%;accent-color:var(--accent);height:24px;margin:0}
.ep-scen-in{display:flex;flex-wrap:wrap;gap:10px}
.ep-scen-in label{display:inline-flex;align-items:center;gap:6px}
.ep-scen-in input{width:78px}
.ep-calc-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ep-calc-example{margin:0;font-size:13.5px;color:#8A5A00;background:#FFF4DC;border-radius:10px;padding:10px 12px}
.ep-calc-out{position:sticky;top:130px;display:flex;flex-direction:column;gap:18px;padding:28px;border-radius:22px;background:#FFFFFF;color:var(--tx);
  border:1px solid var(--line);box-shadow:0 30px 60px -40px rgba(20,26,34,.45)}
.ep-flag{margin:0;display:inline-flex;align-self:flex-start;padding:6px 12px;border-radius:999px;border:1px dashed #B98A2E;background:#FFF8E8;
  font:600 11.5px/1.3 var(--font-mono,ui-monospace,monospace);letter-spacing:.08em;text-transform:uppercase;color:#8A5A00}
.ep-calc-empty{font-size:16px;line-height:1.55;color:var(--mut);padding:30px 0}
.ep-kpis{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0}
.ep-kpi{padding:14px 0;border-top:1px solid var(--line)}
.ep-kpi dt{font-size:13px;color:var(--mut)}
.ep-kpi dd{margin:6px 0 0;font-family:var(--font-display,inherit);font-weight:800;font-size:22px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ep-kpi.big dd{font-size:clamp(28px,2.8vw,38px)}
.ep-calc-res{display:flex;flex-direction:column;gap:16px}
.ea .ep-calc-h{margin:4px 0 0;font-size:15px;font-weight:700;color:var(--tx)}
.ep-bars{display:flex;flex-direction:column;gap:12px}
.ep-bar{display:grid;grid-template-columns:110px minmax(0,1fr);gap:4px 14px;align-items:center}
.ep-bar-l{font-size:13px;color:var(--mut)}
.ep-bar-track{display:flex;height:14px;border-radius:7px;background:#E6E9EE;overflow:hidden}
.ep-bar-track i{display:block;height:100%;transition:width .5s ease}
.ep-bar-track i.m{background:#29AB82}.ep-bar-track i.t{background:#0795CA}
.ep-bar-v{grid-column:2;font-size:14px;color:var(--mut)}
.ep-bar-v b{color:var(--tx);font-variant-numeric:tabular-nums}
.ep-bar-v small{display:inline-block;margin-left:10px;font-size:12.5px;color:var(--mut)}
.ep-bars-legend{margin:0;font-size:12.5px;color:var(--mut);display:flex;align-items:center;gap:8px}
.ep-bars-legend span{display:inline-block;width:12px;height:12px;border-radius:3px}
.ep-bars-legend .m{background:#29AB82}.ep-bars-legend .t{background:#0795CA;margin-left:10px}
.ep-wzory{border-top:1px solid var(--line);padding-top:12px}
.ep-wzory summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--tx);min-height:32px;display:flex;align-items:center;gap:10px;list-style:none}
.ep-wzory summary::-webkit-details-marker{display:none}
.ep-wzory summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg);transition:transform .2s}
.ep-wzory[open] summary::before{transform:rotate(45deg)}
.ep-wzory ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:13.5px;line-height:1.55;color:var(--mut)}
.ep-wzory b{color:var(--tx)}
.ep-calc-out .ep-note{color:var(--mut);margin:0}

/* ── KONFIGURATOR ───────────────────────────────────────────── */
.ep-konf-sec{padding:104px 0}
.ep-konf{border:1px solid var(--line);border-radius:24px;background:var(--panel2);overflow:hidden}
.ep-konf-prog{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--line)}
.ep-konf-prog li{display:flex;align-items:center;gap:10px;padding:16px 18px;font-size:14px;color:var(--mut);border-right:1px solid var(--line)}
.ep-konf-prog li:last-child{border-right:0}
.ep-konf-prog li span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line-strong);
  font:700 12px/1 var(--font-mono,ui-monospace,monospace);flex:none}
.ep-konf-prog li[aria-current]{color:var(--tx);background:var(--panel)}
.ep-konf-prog li[aria-current] span{background:var(--accent);border-color:var(--accent);color:#FFFFFF}
.ep-konf-prog li.is-done{cursor:pointer}
.ep-konf-prog li.is-done span{border-color:var(--accent);color:var(--accent)}
.ep-konf-body{padding:34px 34px 10px}
.ep-krok:focus{outline:none}
.ea .ep-krok h3{margin:0;font-family:var(--font-display,inherit);font-weight:800;font-size:clamp(22px,2.3vw,30px);letter-spacing:-.022em}
.ep-tiles-q{margin:22px 0 0;padding:0;border:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.ep-tile-q{position:relative;display:flex;flex-direction:column;gap:14px;padding:18px 16px;border-radius:16px;border:1px solid var(--line);
  background:var(--panel);cursor:pointer;font-size:15px;line-height:1.35;color:var(--tx);min-height:150px;transition:border-color .2s,background .2s}
.ep-tile-q input,.ep-check input,.ep-pill input{position:absolute;opacity:0;width:1px;height:1px}
.ep-tile-q:has(input:checked){border-color:var(--accent);background:#EAF3F8}
.ep-tile-q:has(input:focus-visible),.ep-check:has(input:focus-visible),.ep-pill:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.ep-tile-q:has(input:checked)::after{content:"✓";position:absolute;right:14px;top:12px;font-weight:800;color:var(--accent)}
.ep-ico{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ep-ico.lg{width:40px;height:40px;color:var(--accent)}
.ep-checks{margin:22px 0 0;padding:0;border:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ep-check{position:relative;display:flex;align-items:center;gap:12px;min-height:56px;padding:12px 16px;border-radius:14px;border:1px solid var(--line);
  background:var(--panel);cursor:pointer;font-size:15px;color:var(--tx)}
.ep-check::before{content:"";flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line-strong)}
.ep-check:has(input:checked){border-color:var(--accent)}
.ep-check:has(input:checked)::before{background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 3px var(--panel)}
.ep-q{margin:22px 0 0;padding:0;border:0}
.ep-q legend{font-size:15.5px;font-weight:600;color:var(--tx);margin-bottom:10px}
.ep-pills{display:flex;flex-wrap:wrap;gap:8px}
.ep-pill{position:relative;display:inline-flex}
.ep-pill span{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:999px;border:1px solid var(--line-strong);
  font-size:14.5px;color:var(--tx);cursor:pointer}
.ep-pill.quiet span{border-style:dashed;color:var(--mut)}
.ep-pill input:checked+span{background:var(--accent);border-color:var(--accent);color:#FFFFFF;font-weight:700}
.ep-konf-nav{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 34px 28px}
.ep-konf-info{font-size:13.5px;color:var(--mut);text-align:center;flex:1}
.ep-wynik{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0 0}
.ep-wyn{padding:20px 22px;border-radius:16px;border:1px solid var(--line);background:var(--panel)}
.ea .ep-wyn h4{margin:0 0 10px;font:600 11.5px/1.3 var(--font-mono,ui-monospace,monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.ep-wyn ul,.ep-wyn ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:15px;line-height:1.5;color:var(--tx)}
/* BeTheme zdejmuje znaczniki i dokleja margines li — znacznik rysujemy sami. */
.ep-wyn ul:not(.ep-kier){list-style:none;padding-left:0}
.ep-wyn ul:not(.ep-kier)>li{position:relative;margin:0;padding-left:18px}
.ep-wyn ul:not(.ep-kier)>li::before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.ep-wyn li{margin:0}
.ep-kier{list-style:none;padding:0!important}
.ep-kier a{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);text-decoration:none;color:var(--tx)}
.ep-kier a:hover{border-color:var(--accent)}
.ep-kier span{font-size:14px;color:var(--mut)}
.ep-form{margin-top:20px;max-width:720px}
.ep-konf:not(.is-live) .ep-konf-nav{display:none}

/* ── telefon i tablet ───────────────────────────────────────── */
@media (max-width:1180px){
  /* naglowek zajmuje tu cala szerokosc: mniejsza kula i bez malych, ktore wpadalyby pod tytul */
  .ep-bub{--bub:300px}
  .ep-bub .bb.m{display:none}
  .ep-demo-grid{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}
  .ep-tiles-q{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:980px){
  /* jedna kolumna: tekst schodzi do dolnych rogow pasa, wiec kule tylko u gory */
  .ep-bub.bl,.ep-bub.br{display:none}
  .ep-hero-in,.ep-teza,.ep-view-o,.ep-calc,.ep-integr,.ep-role{grid-template-columns:1fr;gap:36px}
  .ep-hero-fig{max-width:520px;margin:0 auto;width:100%}
  .ep-teza-head{position:static}
  .ep-calc-out{position:static}
  .ep-role ul{grid-column:auto;grid-row:auto}
  .ep-layers{grid-template-columns:1fr;gap:34px}
  .ep-layer:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-24px;transform:translateX(-50%) rotate(135deg)}
  .ep-specs{grid-template-columns:1fr 1fr}
  .ep-konf-prog li{font-size:0;justify-content:center;padding:14px 6px}
  .ep-konf-prog li span{font-size:12px}
}
@media (max-width:760px){
  .ep-hero{padding:32px 0 48px}
  .ep-teza-sec,.ep-demo-sec,.ep-konstr-sec,.ep-warstwy-sec,.ep-role-sec,.ep-integr-sec,.ep-calc-sec,.ep-konf-sec{padding:64px 0}
  .ep-facts{grid-template-columns:1fr 1fr}
  .ep-facts>div{padding:14px 12px 0 0}
  .ep-callout>span{display:none}
  .ep-hero-legend{position:static;width:auto;height:auto;clip:auto;margin:16px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px;
    font-size:14px;line-height:1.45;color:var(--mut)}
  .ep-hero-legend b{color:var(--tx)}
  .ep-demo-grid{grid-template-columns:1fr}
  .ep-demo-prog{grid-template-columns:1fr 1fr;row-gap:12px}
  .ep-demo-prog span{display:none}
  .ep-demo-kiosk{max-width:360px;margin:0 auto;width:100%}
  .ep-drum-host.lg{height:320px}
  .ep-panel-row{grid-template-columns:1fr}
  /* Historia operacji: na waskim ekranie wiersz to kafelek, bez przewijania w bok. */
  .ep-log{min-width:0}
  .ep-log thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .ep-log tr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line)}
  .ep-log td{display:block;padding:0;border:0;white-space:normal}
  .ep-drum-host{height:340px}
  /* telefon: tekst siega krawedzi, wiec kula zostaje w samym marginesie pasa, a w naglowku jej nie ma */
  .ep-bub{--bub:140px}
  .ep-hero .ep-bub{display:none}
  .ep-tabs{display:flex;width:100%;flex-wrap:nowrap}
  .ep-tabs button{flex:1 1 0;padding:0 10px;font-size:14px}
  .ep-hs{width:28px;height:28px;margin:-14px 0 0 -14px;font-size:12px}
  .ep-tiles-q{grid-template-columns:1fr 1fr}
  .ep-tile-q{min-height:0}
  .ep-checks{grid-template-columns:1fr}
  .ep-wynik{grid-template-columns:1fr}
  .ep-konf-body{padding:24px 18px 6px}
  .ep-konf-nav{padding:14px 18px 22px;flex-wrap:wrap}
  .ep-konf-info{order:-1;flex-basis:100%}
  .ep-konf-nav .ep-btn{flex:1}
  .ep-specs{grid-template-columns:1fr}
  .ep-integr-list li{flex-direction:column;gap:8px}
  .ep-kpis{grid-template-columns:1fr}
  .ep-bar{grid-template-columns:1fr}
  .ep-bar-v{grid-column:1}
  .ep-field-top{flex-wrap:wrap}
  .ep-calc fieldset{padding:16px}
  .ep-scen-in{gap:8px}
  .ep-scen-in input{width:62px}
  .ep-calc-out{padding:22px 18px}
  .ep-sticky{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));justify-content:center;min-height:52px}
  body.ep-has-sticky .ef-foot{padding-bottom:96px}
}
@media (prefers-reduced-motion:reduce){
  .ep-hero-video{display:none}
  .ep-sticky,.ep-btn,.ep-tile-q,.ep-demo-prog li{transition:none}
}
