/* =========================================================
   KPP — Asystent + Nauka (styl osadzony w serwisie OSP)
   Projekt: claude.ai/design „Asystent KPP". Wszystkie reguły
   zamknięte w .kpp-app (natywne zagnieżdżanie CSS), a neutralne
   zmienne mapowane na tokeny motywu serwisu (jasny/ciemny).
   Akcenty „strażackie" dostrojone osobno dla jasnego i ciemnego tła.
========================================================= */

.kpp-app{
  /* ── akcenty (jasny motyw — domyślnie) ── */
  --fire:        oklch(0.55 0.20 30);
  --fire-bright: oklch(0.60 0.21 35);
  --ember:       oklch(0.60 0.15 55);
  --fire-ink:    oklch(0.52 0.16 48);
  --green:  oklch(0.52 0.15 150);
  --red:    oklch(0.55 0.20 22);
  --blue:   oklch(0.48 0.12 245);
  --purple: oklch(0.50 0.16 300);
  --amber:  var(--ember);

  /* ── neutralne (z tokenów serwisu; --bg/--text/--surface-2 dziedziczone) ── */
  --bg-2:    var(--bg);
  --surface: var(--surface-1);
  --glass:   color-mix(in oklab, var(--surface-1) 92%, transparent);
  --line:    var(--border-muted);
  --line-2:  var(--border);
  --muted:   var(--text-muted);
  --muted-2: color-mix(in oklab, var(--text-muted) 65%, var(--surface-1));

  /* ── typografia / promienie ── */
  --font: var(--font-sans);
  --disp: var(--font-display);
  --mono: "JetBrains Mono", ui-monospace, monospace;
  --r: 18px;
  --r-sm: 13px;
  --bar-h: 64px;

  box-sizing:border-box;
  font-family:var(--font);
  color:var(--text);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;

  & *{box-sizing:border-box;margin:0;padding:0;}
  & button{font-family:inherit;color:inherit;cursor:pointer;border:none;background:none;}
  & ::selection{background:color-mix(in oklab,var(--ember) 40%,transparent);}
  & mark{background:color-mix(in oklab,var(--ember) 42%,transparent);color:var(--text);border-radius:3px;padding:0 2px;}

  /* ─── APP SHELL ─── */
  & .app{
    position:relative;z-index:1;
    max-width:480px;margin:0 auto;
    display:flex;flex-direction:column;
  }

  /* ─── HEADER (jako pasek narzędzi wewnątrz strony, nie sticky) ─── */
  & .hdr{
    position:relative;
    padding:14px 16px 12px;
    background:var(--surface-1);
    border:1px solid var(--line);
    border-radius:var(--r-sm) var(--r-sm) 0 0;
  }
  & .hdr::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
    border-radius:var(--r-sm) var(--r-sm) 0 0;
    background:linear-gradient(90deg,var(--ember),var(--fire-bright) 45%,var(--fire) 78%,color-mix(in oklab,var(--fire) 60%,#000));}
  & .hdr-row{display:flex;align-items:center;gap:12px;}
  & .nauka-link{margin-left:auto;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    width:56px;height:52px;border-radius:13px;text-decoration:none;color:var(--fire-ink);
    background:color-mix(in oklab,var(--fire) 14%,var(--surface));
    border:1px solid color-mix(in oklab,var(--fire) 34%,transparent);transition:.14s;}
  & .nauka-link:active{transform:scale(.95);}
  & .nauka-link:hover{background:color-mix(in oklab,var(--fire) 22%,var(--surface));}
  & .nauka-link svg{width:21px;height:21px;}
  & .nauka-link span{font-size:10px;font-weight:800;letter-spacing:.02em;}
  & .mark{
    width:42px;height:42px;border-radius:12px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    background:color-mix(in oklab,var(--surface) 80%,transparent);
    box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--fire) 42%,transparent);
    font-family:var(--disp);font-weight:900;font-size:18px;letter-spacing:.02em;
    color:var(--fire-ink);
  }
  & .brand h1{font-family:var(--disp);font-weight:800;font-size:16px;letter-spacing:.02em;line-height:1.05;}
  & .brand p{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-top:3px;}
  & .hdr-back{
    width:42px;height:42px;border-radius:12px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;font-size:22px;
    background:color-mix(in oklab,var(--surface) 70%,transparent);
    border:1px solid var(--line-2);color:var(--text);text-decoration:none;
    transition:.15s;
  }
  & .hdr-back:active{transform:scale(.94);}
  & .hdr-title{flex:1;min-width:0;}
  & .hdr-title .kick{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fire-ink);}
  & .hdr-title h1{font-family:var(--disp);font-weight:800;font-size:16px;line-height:1.12;margin-top:2px;
    overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
  & .hdr-meta{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--muted);flex-shrink:0;}

  /* ─── SEARCH ─── */
  & .search-wrap{margin-top:14px;position:relative;}
  & .search-wrap svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:19px;height:19px;color:var(--muted-2);}
  & #q{
    width:100%;height:52px;border-radius:14px;
    background:var(--surface);border:1px solid var(--line-2);
    color:var(--text);font-size:16px;font-weight:500;
    padding:0 44px 0 44px;outline:none;transition:.15s;
  }
  & #q::placeholder{color:var(--muted-2);}
  & #q:focus{border-color:color-mix(in oklab,var(--fire) 55%,transparent);
    box-shadow:0 0 0 4px color-mix(in oklab,var(--fire) 15%,transparent);}
  & .q-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);
    width:34px;height:34px;border-radius:9px;display:none;align-items:center;justify-content:center;
    color:var(--muted);font-size:20px;}
  & .q-clear.on{display:flex;}

  /* ─── BODY ─── */
  & .body{flex:1;padding:16px;
    background:color-mix(in oklab,var(--surface-1) 55%,transparent);
    border:1px solid var(--line);border-top:none;
    border-radius:0 0 var(--r-sm) var(--r-sm);}

  /* category chips */
  & .cats{display:flex;gap:8px;overflow-x:auto;padding:2px 0 14px;-ms-overflow-style:none;scrollbar-width:none;}
  & .cats::-webkit-scrollbar{display:none;}
  & .chip{
    flex-shrink:0;padding:9px 15px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap;
    background:var(--surface);border:1px solid var(--line-2);color:var(--muted);transition:.15s;
  }
  & .chip.on{background:color-mix(in oklab,var(--fire) 22%,var(--surface));
    border-color:color-mix(in oklab,var(--fire) 45%,transparent);color:var(--text);}
  & .chip:active{transform:scale(.96);}

  & .sec-label{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--muted-2);margin:16px 2px 9px;}

  /* procedure list */
  & .list{display:flex;flex-direction:column;gap:9px;}
  & .pcard{
    display:flex;align-items:center;gap:14px;text-align:left;width:100%;
    padding:14px 14px;border-radius:var(--r-sm);
    background:var(--surface-1);
    border:1px solid var(--line);transition:.15s;
  }
  & .pcard:active{transform:scale(.985);}
  & .pcard:hover{border-color:color-mix(in oklab,var(--fire) 34%,var(--line));}
  & .pnum{
    width:44px;height:44px;border-radius:11px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    font-family:var(--disp);font-weight:800;font-size:19px;
    background:color-mix(in oklab,var(--cat) 16%,var(--surface));
    color:var(--cat);border:1px solid color-mix(in oklab,var(--cat) 38%,transparent);
  }
  & .pmeta{flex:1;min-width:0;}
  & .pmeta h3{font-weight:700;font-size:15px;line-height:1.2;}
  & .pmeta span{font-size:11.5px;color:var(--muted-2);font-weight:600;}
  & .pcard .arr{color:var(--muted-2);font-size:20px;flex-shrink:0;}
  & .empty{text-align:center;color:var(--muted-2);padding:44px 20px;font-size:14px;line-height:1.6;}

  /* ─── FLOW ─── */
  & .flow{display:none;}
  & .flow.on{display:block;}
  & .home.off{display:none;}

  /* trail */
  & .trail{display:flex;flex-direction:column;gap:0;margin-bottom:4px;}
  & .tr{display:flex;gap:12px;padding:0 2px;}
  & .tr-rail{display:flex;flex-direction:column;align-items:center;width:22px;flex-shrink:0;}
  & .tr-dot{width:12px;height:12px;border-radius:50%;margin-top:5px;flex-shrink:0;
    background:color-mix(in oklab,var(--green) 85%,transparent);
    box-shadow:0 0 0 3px color-mix(in oklab,var(--green) 18%,transparent);}
  & .tr-dot.pick{background:var(--ember);box-shadow:0 0 0 3px color-mix(in oklab,var(--ember) 18%,transparent);}
  & .tr-line{flex:1;width:2px;background:var(--line-2);margin:3px 0 0;min-height:14px;}
  & .tr-body{padding-bottom:14px;flex:1;min-width:0;}
  & .tr-body .t{font-size:13.5px;color:var(--muted);line-height:1.35;}
  & .tr-body .pick-lbl{display:inline-block;margin-top:5px;font-size:12px;font-weight:700;
    color:var(--fire-ink);background:color-mix(in oklab,var(--ember) 14%,transparent);
    border:1px solid color-mix(in oklab,var(--ember) 30%,transparent);padding:3px 10px;border-radius:999px;}

  /* current card / node */
  & .node{
    border-radius:var(--r);padding:20px 18px;margin-top:4px;
    background:var(--surface-1);
    border:1px solid var(--line-2);
    box-shadow:0 18px 48px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.04);
    position:relative;overflow:hidden;
    animation:kpp-pop .28s cubic-bezier(.2,.9,.3,1);
  }
  & .node::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
    background:linear-gradient(90deg,var(--fire),var(--ember));}
  & .node .tag{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fire-ink);}
  & .node .step-t{font-family:var(--disp);font-weight:800;font-size:22px;line-height:1.18;margin-top:8px;}
  & .node .note{margin-top:12px;font-size:14px;color:var(--muted);line-height:1.5;
    padding:11px 13px;border-radius:11px;background:color-mix(in oklab,var(--text) 6%,transparent);border:1px solid var(--line);}
  & .params{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
  & .param{font-family:var(--mono);font-weight:700;font-size:16px;letter-spacing:.02em;
    padding:8px 14px;border-radius:11px;color:var(--fire-ink);
    background:color-mix(in oklab,var(--ember) 15%,transparent);
    border:1px solid color-mix(in oklab,var(--ember) 34%,transparent);}

  /* detail / wyjaśnienia */
  & .detail{margin-top:13px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:color-mix(in oklab,var(--text) 5%,transparent);}
  & .detail .d-h{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fire-ink);
    padding:9px 13px;background:color-mix(in oklab,var(--fire) 13%,transparent);border-bottom:1px solid var(--line);}
  & .dl{display:flex;flex-direction:column;}
  & .di{display:flex;align-items:baseline;gap:11px;padding:9px 13px;border-bottom:1px solid var(--line);}
  & .di:last-child{border-bottom:none;}
  & .dk{font-family:var(--disp);font-weight:800;font-size:13px;color:var(--fire-ink);flex-shrink:0;
    background:color-mix(in oklab,var(--ember) 15%,transparent);border:1px solid color-mix(in oklab,var(--ember) 32%,transparent);
    border-radius:7px;padding:2px 9px;min-width:30px;text-align:center;}
  & .db{color:var(--fire-ink);font-weight:800;flex-shrink:0;}
  & .dv{font-size:13.5px;color:var(--muted);line-height:1.42;flex:1;}
  & .di.rec{flex-direction:column;align-items:stretch;gap:8px;}
  & .di-top{display:flex;align-items:baseline;gap:11px;}
  & .rec-one{padding:11px 13px;border-top:1px solid var(--line);}
  & .rec-in{width:100%;height:42px;border-radius:10px;background:var(--bg-2);border:1px solid var(--line-2);
    color:var(--text);font-size:14.5px;font-weight:500;padding:0 13px;outline:none;font-family:inherit;transition:.14s;}
  & .rec-in::placeholder{color:var(--muted-2);font-weight:400;}
  & .rec-in:focus{border-color:color-mix(in oklab,var(--fire) 52%,transparent);
    box-shadow:0 0 0 3px color-mix(in oklab,var(--fire) 13%,transparent);}
  & .di.rec .rec-in{margin-left:41px;width:calc(100% - 41px);}
  & .d-more{border-top:1px solid var(--line);}
  & .d-more summary{cursor:pointer;list-style:none;padding:10px 13px;font-size:12.5px;font-weight:700;
    color:var(--fire-ink);display:flex;align-items:center;gap:8px;}
  & .d-more summary::-webkit-details-marker{display:none;}
  & .d-more summary::before{content:'\25B8';transition:.15s;font-size:11px;}
  & .d-more[open] summary::before{transform:rotate(90deg);}
  & .dm-body{padding:0 0 5px;background:color-mix(in oklab,var(--text) 4%,transparent);}
  & .dm-body .di{padding:8px 13px;}
  & .dk.sm{min-width:64px;font-size:11.5px;}

  /* warning box */
  & .warn-box{display:flex;gap:11px;margin-top:13px;padding:12px 14px;border-radius:12px;line-height:1.45;
    font-size:13.5px;color:color-mix(in oklab,var(--fire-ink) 88%,var(--text));
    background:color-mix(in oklab,var(--ember) 15%,transparent);
    border:1px solid color-mix(in oklab,var(--ember) 42%,transparent);}
  & .warn-box .wi{flex-shrink:0;font-size:17px;line-height:1.2;color:var(--ember);}
  & .warn-box b{color:var(--text);font-weight:700;}

  /* buttons (Asystent) */
  & .opts{display:flex;flex-direction:column;gap:10px;margin-top:18px;}
  & .opt{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    width:100%;text-align:left;min-height:56px;padding:14px 16px;border-radius:14px;
    background:var(--surface);border:1px solid var(--line-2);
    font-size:16px;font-weight:700;transition:.14s;
  }
  & .opt:active{transform:scale(.98);}
  & .opt:hover{border-color:color-mix(in oklab,var(--fire) 45%,transparent);
    background:color-mix(in oklab,var(--fire) 10%,var(--surface));}
  & .opt .go{color:var(--fire-ink);font-size:20px;}
  & .opt.yes{border-color:color-mix(in oklab,var(--green) 40%,transparent);}
  & .opt.yes:hover{background:color-mix(in oklab,var(--green) 12%,var(--surface));}
  & .opt.no{border-color:var(--line-2);}

  & .btn-next{
    width:100%;min-height:56px;margin-top:20px;border-radius:14px;
    font-family:var(--disp);font-weight:800;font-size:17px;letter-spacing:.02em;
    color:#fff;background:linear-gradient(135deg,var(--fire-bright),var(--fire));
    box-shadow:0 12px 28px color-mix(in oklab,var(--fire) 38%,transparent);
    display:flex;align-items:center;justify-content:center;gap:9px;transition:.14s;
  }
  & .btn-next:active{transform:scale(.98);}

  /* result */
  & .node.result::before{background:linear-gradient(90deg,var(--green),var(--ember));}
  & .node.result .tag{color:var(--green);}
  & .result-badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;
    letter-spacing:.16em;text-transform:uppercase;color:var(--green);}
  & .result-badge .d{width:8px;height:8px;border-radius:50%;background:var(--green);
    box-shadow:0 0 0 4px color-mix(in oklab,var(--green) 20%,transparent);}
  & .plan{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
  & .pstep{display:flex;gap:12px;padding:13px 14px;border-radius:12px;
    background:color-mix(in oklab,var(--text) 5%,transparent);border:1px solid var(--line);}
  & .pstep .ck{width:24px;height:24px;border-radius:7px;flex-shrink:0;margin-top:1px;
    display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;
    background:color-mix(in oklab,var(--green) 20%,transparent);color:var(--green);
    border:1px solid color-mix(in oklab,var(--green) 40%,transparent);}
  & .pstep .pt{flex:1;}
  & .pstep .pt b{font-weight:700;font-size:15.5px;line-height:1.32;display:block;}
  & .pstep .pt .sub{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.4;}
  & .pstep .pt .sub.warn{color:var(--ember);font-weight:600;}
  & .pstep .chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px;}
  & .pstep .chips .param{font-size:14px;padding:5px 11px;}

  & .links{margin-top:18px;display:flex;flex-direction:column;gap:9px;}
  & .links .lk-label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:2px;}
  & .link{display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:13px 15px;border-radius:12px;font-weight:700;font-size:14.5px;
    background:color-mix(in oklab,var(--fire) 10%,var(--surface));
    border:1px solid color-mix(in oklab,var(--fire) 30%,transparent);color:var(--text);transition:.14s;}
  & .link:active{transform:scale(.98);}
  & .link .go{color:var(--fire-ink);font-size:18px;}

  & .flow-foot{display:flex;gap:10px;margin-top:20px;}
  & .flow-foot button{flex:1;min-height:50px;border-radius:13px;font-weight:700;font-size:14.5px;
    background:var(--surface);border:1px solid var(--line-2);color:var(--muted);transition:.14s;}
  & .flow-foot button:active{transform:scale(.98);}
  & .flow-foot .restart{color:var(--text);border-color:color-mix(in oklab,var(--ember) 34%,transparent);}

  & .disclaimer{margin:22px 4px 0;font-size:11.5px;line-height:1.5;color:var(--muted-2);text-align:center;}

  /* ─── EMERGENCY BAR (sticky do dołu okna, w obrębie apki) ─── */
  & .ebar{
    position:sticky;bottom:0;z-index:5;
    display:flex;gap:10px;margin-top:14px;
    padding:10px 0 max(10px, env(safe-area-inset-bottom));
    background:color-mix(in oklab,var(--bg) 90%,transparent);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  }
  & .ebtn{flex:1;height:var(--bar-h);border-radius:14px;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:2px;transition:.14s;text-decoration:none;}
  & .ebtn:active{transform:scale(.97);}
  & .ebtn .big{font-family:var(--disp);font-weight:900;font-size:22px;letter-spacing:.02em;line-height:1;}
  & .ebtn .sml{font-size:11px;font-weight:700;letter-spacing:.04em;opacity:.92;}
  & .ebtn.call{color:#fff;background:linear-gradient(135deg,var(--fire-bright),var(--fire));
    box-shadow:0 10px 24px color-mix(in oklab,var(--fire) 40%,transparent);}
  & .ebtn.rko{color:#2a0f06;background:linear-gradient(135deg,var(--ember),color-mix(in oklab,var(--ember) 70%,var(--fire-bright)));
    box-shadow:0 10px 24px color-mix(in oklab,var(--ember) 34%,transparent);}
  & .ebtn .big.rkoflex{display:flex;align-items:center;gap:7px;font-size:19px;}
  & .pulse{width:9px;height:9px;border-radius:50%;background:#fff;animation:kpp-pulse 2.2s ease-out infinite;}

  /* ═══════════════ NAUKA ═══════════════ */

  /* HUB (menu) */
  & .hub-hero{border-radius:var(--r);padding:20px 18px;margin-bottom:4px;position:relative;overflow:hidden;
    background:var(--surface-1);border:1px solid var(--line-2);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);}
  & .hub-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--fire),var(--ember));}
  & .hub-hero .kick{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fire-ink);}
  & .hub-hero h2{font-family:var(--disp);font-weight:800;font-size:23px;line-height:1.14;margin-top:7px;}
  & .hub-hero p{font-size:13.5px;color:var(--muted);margin-top:8px;line-height:1.5;}
  & .streak{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
  & .stat{flex:1;min-width:88px;background:color-mix(in oklab,var(--text) 5%,transparent);border:1px solid var(--line);border-radius:12px;padding:11px 12px;}
  & .stat b{font-family:var(--disp);font-weight:800;font-size:20px;display:block;line-height:1;color:var(--fire-ink);}
  & .stat span{font-size:11px;color:var(--muted-2);font-weight:600;}

  & .menu{display:flex;flex-direction:column;gap:10px;}
  & .mcard{display:flex;align-items:center;gap:14px;text-align:left;width:100%;padding:15px 15px;border-radius:var(--r-sm);
    background:var(--surface-1);border:1px solid var(--line);transition:.15s;}
  & .mcard:active{transform:scale(.985);}
  & .mcard:hover{border-color:color-mix(in oklab,var(--cat,var(--fire)) 40%,var(--line));}
  & .mico{width:46px;height:46px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
    background:color-mix(in oklab,var(--cat,var(--fire)) 16%,var(--surface));color:var(--cat,var(--fire-ink));
    border:1px solid color-mix(in oklab,var(--cat,var(--fire)) 38%,transparent);}
  & .mico svg{width:23px;height:23px;stroke-width:2;}
  & .mmeta{flex:1;min-width:0;}
  & .mmeta h3{font-weight:700;font-size:15.5px;line-height:1.2;}
  & .mmeta span{font-size:12px;color:var(--muted-2);font-weight:600;display:block;margin-top:3px;line-height:1.35;}
  & .mcard .arr{color:var(--muted-2);font-size:20px;flex-shrink:0;}
  & .badge-n{font-family:var(--mono);font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;flex-shrink:0;
    background:color-mix(in oklab,var(--cat,var(--fire)) 15%,transparent);color:var(--cat,var(--fire-ink));
    border:1px solid color-mix(in oklab,var(--cat,var(--fire)) 30%,transparent);}

  /* progress bar (quiz/exam) */
  & .qbar{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
  & .qbar .track{flex:1;height:8px;border-radius:999px;background:color-mix(in oklab,var(--text) 12%,transparent);overflow:hidden;}
  & .qbar .fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--fire-bright),var(--ember));transition:.35s;}
  & .qbar .cnt{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--muted);flex-shrink:0;}
  & .timer{font-family:var(--mono);font-weight:700;font-size:14px;padding:5px 11px;border-radius:9px;flex-shrink:0;
    background:color-mix(in oklab,var(--ember) 14%,transparent);border:1px solid color-mix(in oklab,var(--ember) 30%,transparent);color:var(--fire-ink);}
  & .timer.warn{background:color-mix(in oklab,var(--red) 18%,transparent);border-color:color-mix(in oklab,var(--red) 40%,transparent);color:var(--red);}

  & .q-cat{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);}
  & .q-text{font-family:var(--disp);font-weight:800;font-size:21px;line-height:1.24;margin-top:8px;}
  & .q-img{margin-top:14px;border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;padding:14px;box-shadow:0 10px 30px rgba(0,0,0,.12);}
  & .q-img img{max-width:100%;max-height:230px;object-fit:contain;display:block;}
  & .flash-img{margin-top:12px;border-radius:12px;overflow:hidden;background:#fff;padding:10px;
    display:flex;align-items:center;justify-content:center;}
  & .flash-img img{max-width:100%;max-height:150px;object-fit:contain;display:block;}
  & .rev .rq-img{margin-top:9px;border-radius:10px;overflow:hidden;background:#fff;padding:8px;
    display:inline-flex;align-items:center;justify-content:center;}
  & .rev .rq-img img{max-width:150px;max-height:100px;object-fit:contain;display:block;}

  & .answers{display:flex;flex-direction:column;gap:10px;margin-top:18px;}
  & .ans{display:flex;align-items:center;gap:13px;width:100%;text-align:left;min-height:56px;padding:13px 15px;border-radius:14px;
    background:var(--surface);border:1px solid var(--line-2);font-size:15.5px;font-weight:600;line-height:1.3;transition:.13s;}
  & .ans:active{transform:scale(.99);}
  & .ans:not(:disabled):hover{border-color:color-mix(in oklab,var(--fire) 45%,transparent);background:color-mix(in oklab,var(--fire) 9%,var(--surface));}
  & .ans .key{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
    font-family:var(--disp);font-weight:800;font-size:14px;background:color-mix(in oklab,var(--text) 10%,transparent);border:1px solid var(--line-2);color:var(--muted);}
  & .ans .txt{flex:1;}
  & .ans.correct{border-color:color-mix(in oklab,var(--green) 55%,transparent);background:color-mix(in oklab,var(--green) 14%,var(--surface));}
  & .ans.correct .key{background:color-mix(in oklab,var(--green) 30%,transparent);border-color:transparent;color:var(--green);}
  & .ans.wrong{border-color:color-mix(in oklab,var(--red) 55%,transparent);background:color-mix(in oklab,var(--red) 13%,var(--surface));}
  & .ans.wrong .key{background:color-mix(in oklab,var(--red) 30%,transparent);border-color:transparent;color:var(--red);}
  & .ans .rmark{margin-left:auto;font-size:19px;flex-shrink:0;}

  & .why{margin-top:16px;padding:13px 15px;border-radius:12px;font-size:14px;line-height:1.5;color:var(--muted);
    background:color-mix(in oklab,var(--text) 5%,transparent);border:1px solid var(--line);display:none;}
  & .why.show{display:block;animation:kpp-pop .2s ease;}
  & .why b{color:var(--text);}
  & .why .wl{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fire-ink);display:block;margin-bottom:5px;}

  & .btn{width:100%;min-height:56px;border-radius:14px;font-family:var(--disp);font-weight:800;font-size:16px;letter-spacing:.02em;
    display:flex;align-items:center;justify-content:center;gap:9px;transition:.14s;}
  & .btn:active{transform:scale(.985);}
  & .btn.primary{color:#fff;background:linear-gradient(135deg,var(--fire-bright),var(--fire));
    box-shadow:0 12px 28px color-mix(in oklab,var(--fire) 36%,transparent);}
  & .btn.ghost{background:var(--surface);border:1px solid var(--line-2);color:var(--text);font-weight:700;box-shadow:none;}
  & .btn.green{color:#06231a;background:linear-gradient(135deg,var(--green),color-mix(in oklab,var(--green) 75%,var(--ember)));box-shadow:0 12px 26px color-mix(in oklab,var(--green) 28%,transparent);}
  & .btn:disabled{opacity:.4;pointer-events:none;}
  & .mt{margin-top:16px;}
  & .row2{display:flex;gap:10px;margin-top:16px;}
  & .row2 .btn{margin-top:0;}

  /* flashcard */
  & .flash{perspective:1400px;margin-top:6px;}
  & .flash-inner{position:relative;width:100%;min-height:230px;transition:transform .5s cubic-bezier(.4,.1,.2,1);transform-style:preserve-3d;cursor:pointer;}
  & .flash.flipped .flash-inner{transform:rotateY(180deg);}
  & .flash-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--r);
    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px 22px;overflow:hidden;}
  & .flash-front{background:var(--surface-1);border:1px solid var(--line-2);box-shadow:0 18px 44px rgba(0,0,0,.16);}
  & .flash-front::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--fire),var(--ember));}
  & .flash-back{background:linear-gradient(160deg,color-mix(in oklab,var(--ember) 20%,var(--surface)),var(--surface));
    border:1px solid color-mix(in oklab,var(--ember) 40%,transparent);transform:rotateY(180deg);box-shadow:0 18px 44px rgba(0,0,0,.16);}
  & .flash-hint{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);position:absolute;top:14px;left:0;right:0;}
  & .flash-q{font-family:var(--disp);font-weight:800;font-size:21px;line-height:1.26;}
  & .flash-a{font-family:var(--disp);font-weight:900;font-size:30px;line-height:1.15;color:var(--fire-ink);}
  & .flash-tap{font-size:12px;color:var(--muted-2);position:absolute;bottom:16px;left:0;right:0;font-weight:600;}
  & .flash-cat{position:absolute;bottom:16px;left:0;right:0;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in oklab,var(--ember) 70%,var(--muted));}
  & .rate{display:flex;gap:10px;margin-top:16px;}
  & .rate .btn{margin-top:0;}
  & .rate .know{color:#06231a;background:linear-gradient(135deg,var(--green),color-mix(in oklab,var(--green) 78%,var(--ember)));box-shadow:none;}
  & .rate .again{background:color-mix(in oklab,var(--red) 16%,var(--surface));border:1px solid color-mix(in oklab,var(--red) 38%,transparent);color:var(--red);box-shadow:none;}

  /* sequence builder */
  & .seq-intro{font-size:13.5px;color:var(--muted);line-height:1.5;margin-top:10px;}
  & .seq-cols{margin-top:16px;}
  & .seq-slot-label,& .seq-pool-label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);margin:0 2px 9px;display:flex;justify-content:space-between;}
  & .seq-slots{display:flex;flex-direction:column;gap:8px;min-height:20px;margin-bottom:20px;}
  & .slot{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:12px;background:color-mix(in oklab,var(--text) 5%,transparent);border:1px dashed var(--line-2);animation:kpp-pop .2s ease;}
  & .slot .n{width:26px;height:26px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
    font-family:var(--disp);font-weight:800;font-size:13px;background:color-mix(in oklab,var(--ember) 18%,transparent);color:var(--fire-ink);border:1px solid color-mix(in oklab,var(--ember) 34%,transparent);}
  & .slot .st{flex:1;font-size:14px;font-weight:600;line-height:1.3;}
  & .slot .rm{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--muted-2);font-size:19px;}
  & .slot .rm:active{transform:scale(.9);}
  & .slot.correct{border-style:solid;border-color:color-mix(in oklab,var(--green) 50%,transparent);background:color-mix(in oklab,var(--green) 12%,transparent);}
  & .slot.correct .n{background:color-mix(in oklab,var(--green) 26%,transparent);color:var(--green);border-color:transparent;}
  & .slot.bad{border-style:solid;border-color:color-mix(in oklab,var(--red) 50%,transparent);background:color-mix(in oklab,var(--red) 12%,transparent);}
  & .slot.bad .n{background:color-mix(in oklab,var(--red) 26%,transparent);color:var(--red);border-color:transparent;}
  & .slot .fix{font-size:11.5px;color:var(--red);font-weight:600;margin-top:3px;display:block;}
  & .seq-empty{text-align:center;color:var(--muted-2);font-size:13px;padding:16px;border:1px dashed var(--line-2);border-radius:12px;}
  & .pool{display:flex;flex-direction:column;gap:8px;}
  & .pchip{display:flex;align-items:center;gap:11px;text-align:left;width:100%;padding:12px 13px;border-radius:12px;
    background:var(--surface);border:1px solid var(--line-2);font-size:14px;font-weight:600;line-height:1.3;transition:.13s;}
  & .pchip:active{transform:scale(.99);}
  & .pchip:not(:disabled):hover{border-color:color-mix(in oklab,var(--fire) 42%,transparent);background:color-mix(in oklab,var(--fire) 8%,var(--surface));}
  & .pchip .add{width:26px;height:26px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
    font-size:19px;color:var(--fire-ink);background:color-mix(in oklab,var(--text) 10%,transparent);border:1px solid var(--line-2);}
  & .pchip.used{opacity:.3;pointer-events:none;}

  /* result screen */
  & .result-hero{text-align:center;padding:8px 0 4px;}
  & .score-ring{width:132px;height:132px;margin:6px auto 0;position:relative;}
  & .score-ring svg{width:100%;height:100%;transform:rotate(-90deg);}
  & .score-ring .val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
  & .score-ring .pct{font-family:var(--disp);font-weight:900;font-size:34px;line-height:1;}
  & .score-ring .frac{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:4px;}
  & .verdict{font-family:var(--disp);font-weight:800;font-size:22px;margin-top:14px;}
  & .verdict.pass{color:var(--green);}
  & .verdict.fail{color:var(--red);}
  & .verdict-sub{font-size:13.5px;color:var(--muted);margin-top:6px;}

  & .review-list{display:flex;flex-direction:column;gap:9px;margin-top:6px;}
  & .rev{padding:13px 14px;border-radius:12px;background:color-mix(in oklab,var(--text) 5%,transparent);border:1px solid var(--line);}
  & .rev .rq{font-size:14px;font-weight:700;line-height:1.35;}
  & .rev .ra{font-size:13px;margin-top:8px;display:flex;gap:8px;align-items:baseline;line-height:1.4;}
  & .rev .ra .lab{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;flex-shrink:0;width:52px;}
  & .rev .ra.mine{color:var(--red);}
  & .rev .ra.mine .lab{color:var(--red);}
  & .rev .ra.good{color:var(--green);}
  & .rev .ra.good .lab{color:color-mix(in oklab,var(--green) 80%,var(--muted));}
  & .rev .why-r{font-size:12.5px;color:var(--muted-2);margin-top:8px;line-height:1.45;padding-top:8px;border-top:1px solid var(--line);}

  /* config chips */
  & .cfg{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
  & .cfg .cch{padding:9px 14px;border-radius:999px;font-size:13px;font-weight:700;background:var(--surface);border:1px solid var(--line-2);color:var(--muted);transition:.14s;}
  & .cfg .cch.on{background:color-mix(in oklab,var(--fire) 20%,var(--surface));border-color:color-mix(in oklab,var(--fire) 45%,transparent);color:var(--text);}
  & .cfg .cch:active{transform:scale(.96);}
  & .cfg-label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);margin:16px 2px 2px;}
}

/* ── ciemny motyw serwisu → przywróć jaskrawe akcenty projektu ── */
[data-theme="dark"] .kpp-app,
[data-theme="oled"] .kpp-app{
  --fire:        oklch(0.585 0.205 30);
  --fire-bright: oklch(0.675 0.205 38);
  --ember:       oklch(0.785 0.155 64);
  --fire-ink:    oklch(0.80 0.16 42);
  --green:  oklch(0.78 0.15 150);
  --red:    oklch(0.64 0.2 22);
  --blue:   oklch(0.75 0.10 235);
  --purple: oklch(0.75 0.12 300);
  --glass:  color-mix(in oklab, var(--surface-1) 72%, transparent);
}

/* ── animacje (globalne, prefiksowane) ── */
@keyframes kpp-pop{from{transform:translateY(9px);opacity:.6;}to{transform:none;opacity:1;}}
@keyframes kpp-pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.6);}70%{box-shadow:0 0 0 9px rgba(255,255,255,0);}100%{box-shadow:0 0 0 0 rgba(255,255,255,0);}}
@media (prefers-reduced-motion:reduce){
  .kpp-app .node,.kpp-app .slot,.kpp-app .why{animation:none;}
  .kpp-app .flash-inner{transition:none;}
  .kpp-app .pulse{animation:none;}
}

/* ── Czcionki self-hosted (Manrope, Montserrat, JetBrains Mono; latin + latin-ext) ── */
/* JetBrains Mono 600 latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/JetBrainsMono-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* JetBrains Mono 600 latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/JetBrainsMono-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* JetBrains Mono 700 latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/JetBrainsMono-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* JetBrains Mono 700 latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/JetBrainsMono-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Manrope 400 latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/Manrope-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Manrope 400 latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/Manrope-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Manrope 500 latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/Manrope-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Manrope 500 latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/Manrope-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Manrope 600 latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/Manrope-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Manrope 600 latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/Manrope-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Manrope 700 latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/Manrope-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Manrope 700 latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/Manrope-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Manrope 800 latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/Manrope-800-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Manrope 800 latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/Manrope-800-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Montserrat 600 latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/Montserrat-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Montserrat 600 latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/Montserrat-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Montserrat 700 latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/Montserrat-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Montserrat 700 latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/Montserrat-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Montserrat 800 latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/Montserrat-800-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Montserrat 800 latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/Montserrat-800-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Montserrat 900 latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('/fonts/Montserrat-900-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Montserrat 900 latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('/fonts/Montserrat-900-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* ═══════════════ Minimalny nagłówek stron KPP ═══════════════ */
/* Ta reguła działa tylko na stronach KPP — arkusz jest ładowany wyłącznie tam. */
body:has(.kpp-app) .site-header,
body:has(.kpp-app) .podrecznik-subheader{ display:none !important; }

.kpp-mini-header{
  position:sticky; top:0; z-index:50;
  background:color-mix(in oklab, var(--bg) 86%, transparent);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border-muted);
}
.kpp-mini-inner{
  max-width:480px; margin:0 auto;
  display:flex; align-items:center; gap:10px;
  padding:7px 16px;
}
.kpp-mini-logo{
  position:relative; flex-shrink:0;
  width:38px; height:38px; border-radius:11px; overflow:hidden;
  display:inline-block;
}
.kpp-mini-nav{ margin-left:auto; display:flex; align-items:center; }

.kpp-mini-links{ display:flex; gap:2px; }
.kpp-mini-links a{
  padding:6px 10px; border-radius:8px;
  font-size:.8rem; font-weight:600;
  color:var(--text-muted); text-decoration:none; white-space:nowrap;
  transition:color .14s, background .14s;
}
.kpp-mini-links a:hover{ color:var(--text); background:color-mix(in oklab,var(--text) 7%,transparent); }
.kpp-mini-links a.active{ color:var(--primary); }

.kpp-mini-menu{ position:relative; }
.kpp-mini-menu summary{
  list-style:none; cursor:pointer;
  width:40px; height:40px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  color:var(--text); border:1px solid var(--border-muted);
  background:color-mix(in oklab,var(--surface-1) 70%,transparent);
}
.kpp-mini-menu summary::-webkit-details-marker{ display:none; }
.kpp-mini-menu[open] summary{ color:var(--primary); border-color:color-mix(in oklab,var(--primary) 45%,transparent); }
.kpp-mini-panel{
  position:absolute; right:0; top:calc(100% + 6px); z-index:60;
  min-width:190px; display:flex; flex-direction:column; gap:2px;
  padding:8px; border-radius:12px;
  background:var(--surface-1); border:1px solid var(--border-muted);
  box-shadow:0 16px 40px rgba(0,0,0,.22);
}
.kpp-mini-panel-label{
  font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-muted); padding:4px 10px 6px;
}
.kpp-mini-panel a{
  padding:10px 12px; border-radius:9px;
  font-size:.9rem; font-weight:600; color:var(--text); text-decoration:none;
}
.kpp-mini-panel a:hover{ background:color-mix(in oklab,var(--text) 7%,transparent); }
.kpp-mini-panel a.active{ color:var(--primary); background:color-mix(in oklab,var(--primary) 12%,transparent); }

@media (max-width:560px){ .kpp-mini-links{ display:none; } }
@media (min-width:561px){ .kpp-mini-menu{ display:none; } }
