/* ═══════════════════════════════════════════════════════════════════════
   PT CONTACT — Centrum kontaktu (wspólny komponent 6 paneli)
   Prefiks: ptc-   ·   Tokeny: własne z fallbackiem do tokenów panelu
   Desktop: rail 340px + wątek (+ szuflada info 300px) · Mobile ≤768: jeden ekran
   ═══════════════════════════════════════════════════════════════════════ */
.ptc-root{
  --ptc-ink:var(--ink,#1A1713); --ptc-cream:var(--cream,#FFFDF7); --ptc-paper:var(--paper,#F7F4EE);
  --ptc-white:#FFFFFF; --ptc-line:var(--line,#EDE8DF); --ptc-line2:var(--line-strong,#D8D0C3);
  --ptc-g1:var(--g1,#F9C843); --ptc-g2:var(--g2,#F07020); --ptc-g3:var(--g3,#E8580A);
  /* DESIGN 2026-08-21 (decyzja właściciela): dymki wiadomości na fiolecie.
     Świadomie fiolet → fuksja (ciepły koniec), a NIE fiolet → błękit — chłodny wariant
     gryzłby się z ciepłym papierem panelu i wyglądał jak domyślny gradient z generatora.
     Fiolet jest sygnaturą TYLKO wiadomości; lista, przyciski i awatary zostają złote,
     żeby akcent był jeden. */
  --ptc-v1:#6D28D9; --ptc-v2:#A21CAF; --ptc-v3:#4C1D95;
  --ptc-v-glow:rgba(109,40,217,.26); --ptc-v-glow-soft:rgba(109,40,217,.12);
  --ptc-green:#1DB954; --ptc-red:#E53E3E; --ptc-blue:#2B6CB0;
  --ptc-ink70:rgba(26,23,19,.7); --ptc-ink60:rgba(26,23,19,.6); --ptc-ink50:rgba(26,23,19,.5);
  --ptc-ink40:rgba(26,23,19,.4); --ptc-ink30:rgba(26,23,19,.3); --ptc-ink15:rgba(26,23,19,.15);
  --ptc-ink10:rgba(26,23,19,.10); --ptc-ink08:rgba(26,23,19,.08); --ptc-ink06:rgba(26,23,19,.06); --ptc-ink04:rgba(26,23,19,.04);
  --ptc-sh0:0 1px 3px rgba(26,23,19,.06); --ptc-sh1:0 2px 10px rgba(26,23,19,.08);
  --ptc-sh2:0 8px 30px rgba(26,23,19,.10); --ptc-sh3:0 24px 64px rgba(26,23,19,.14);
  --ptc-gold-glow:0 8px 32px rgba(240,112,32,.20);
  --ptc-ease:cubic-bezier(.4,0,.2,1); --ptc-spring:cubic-bezier(.34,1.56,.64,1); --ptc-expo:cubic-bezier(.22,1,.36,1);
  --ptc-r:14px; --ptc-rl:20px; --ptc-rs:10px;
  --ptc-font:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ptc-rail:340px; --ptc-drawer:300px;
  position:relative; display:flex; width:100%; height:100%; min-height:420px;
  background:var(--ptc-cream); color:var(--ptc-ink); font-family:var(--ptc-font); font-size:14px; line-height:1.45;
  border:1px solid var(--ptc-ink08); border-radius:var(--ptc-rl); overflow:hidden; box-shadow:var(--ptc-sh0);
  -webkit-font-smoothing:antialiased;
}
.ptc-root *,.ptc-root *::before,.ptc-root *::after{box-sizing:border-box}
.ptc-root button{font-family:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
.ptc-root button:focus-visible,.ptc-root [tabindex]:focus-visible,.ptc-root textarea:focus-visible,.ptc-root input:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(249,200,67,.45)}
.ptc-root ::selection{background:rgba(249,200,67,.45)}
.ptc-root ::-webkit-scrollbar{width:8px;height:8px}
.ptc-root ::-webkit-scrollbar-thumb{background:var(--ptc-ink15);border-radius:99px;border:2px solid transparent;background-clip:padding-box}
.ptc-root ::-webkit-scrollbar-thumb:hover{background:var(--ptc-ink30);background-clip:padding-box;border:2px solid transparent}
.ptc-root ::-webkit-scrollbar-track{background:transparent}
.ptc-hidden{display:none!important}
.ptc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── Ikony ─────────────────────────────────────────────────────────────── */
.ptc-ic{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block}
.ptc-ic.sm{width:15px;height:15px}.ptc-ic.xs{width:12px;height:12px}.ptc-ic.lg{width:22px;height:22px}

/* ── Przyciski bazowe ──────────────────────────────────────────────────── */
.ptc-ibtn{width:36px;height:36px;border:0;border-radius:12px;background:transparent;color:var(--ptc-ink60);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background .15s var(--ptc-ease),color .15s var(--ptc-ease),transform .08s var(--ptc-ease)}
.ptc-ibtn:hover{background:var(--ptc-ink06);color:var(--ptc-ink)}
.ptc-ibtn:active{transform:scale(.94)}
.ptc-ibtn.on{background:rgba(249,200,67,.22);color:var(--ptc-g3)}
.ptc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:var(--ptc-r);border:1px solid transparent;font:700 14px/1 var(--ptc-font);cursor:pointer;white-space:nowrap;transition:transform .08s var(--ptc-ease),box-shadow .2s var(--ptc-ease),filter .2s var(--ptc-ease),background .15s var(--ptc-ease)}
.ptc-btn:active{transform:scale(.97)}
.ptc-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}
.ptc-btn-primary{background:linear-gradient(135deg,var(--ptc-g1),var(--ptc-g2));color:#fff;box-shadow:var(--ptc-gold-glow)}
.ptc-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 36px rgba(240,112,32,.28)}
.ptc-btn-secondary{background:var(--ptc-white);border-color:var(--ptc-line2);color:var(--ptc-ink)}
.ptc-btn-secondary:hover{background:var(--ptc-paper)}
.ptc-btn-ghost{background:transparent;color:var(--ptc-ink60)}
.ptc-btn-ghost:hover{background:var(--ptc-ink06);color:var(--ptc-ink)}
.ptc-btn-danger{background:var(--ptc-red);color:#fff}
.ptc-btn-danger:hover{filter:brightness(.95)}
.ptc-btn.sm{height:34px;padding:0 14px;font-size:13px;border-radius:11px}

/* ── Awatary ───────────────────────────────────────────────────────────── */
.ptc-av{position:relative;flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font:700 15px/1 var(--ptc-font);color:#fff;letter-spacing:.02em;background:linear-gradient(135deg,#A18CD1,#FBC2EB);user-select:none}
.ptc-av.sm{width:32px;height:32px;border-radius:10px;font-size:12px}
.ptc-av.xs{width:24px;height:24px;border-radius:8px;font-size:10px}
.ptc-av.lg{width:56px;height:56px;border-radius:18px;font-size:19px}
.ptc-av[data-role="parent"]{background:linear-gradient(135deg,#F9C843,#F07020)}
.ptc-av[data-role="tutor"]{background:linear-gradient(135deg,#2B6CB0,#63B3ED)}
.ptc-av[data-role="coordinator"]{background:linear-gradient(135deg,#1DB954,#7BE495)}
.ptc-av[data-role="salesman"]{background:linear-gradient(135deg,#E8580A,#F9A14B)}
.ptc-av[data-role="hr"]{background:linear-gradient(135deg,#8E44AD,#C39BD3)}
.ptc-av[data-role="admin"]{background:linear-gradient(135deg,#1A1713,#5A524A)}
.ptc-av[data-role="system"]{background:var(--ptc-paper);color:var(--ptc-g2)}
.ptc-av.group{background:var(--ptc-paper);color:var(--ptc-ink60);border:1px solid var(--ptc-ink08)}
.ptc-av.group .ptc-ic{width:20px;height:20px}
.ptc-av .ptc-dot{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;background:var(--ptc-ink30);border:2px solid var(--ptc-cream)}
.ptc-av .ptc-dot.on{background:var(--ptc-green)}
.ptc-av-stack{position:relative;flex:none;width:44px;height:44px}
.ptc-av-stack .ptc-av{position:absolute;width:30px;height:30px;border-radius:10px;font-size:11px;border:2px solid var(--ptc-cream)}
.ptc-av-stack .ptc-av:nth-child(1){left:0;top:0;z-index:1}
.ptc-av-stack .ptc-av:nth-child(2){right:0;bottom:0;z-index:2}

/* ── Chipy ról ─────────────────────────────────────────────────────────── */
.ptc-chip{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 7px;border-radius:99px;font:700 10px/1 var(--ptc-font);letter-spacing:.04em;text-transform:uppercase;background:var(--ptc-ink06);color:var(--ptc-ink50);white-space:nowrap}
.ptc-chip[data-role="parent"]{background:rgba(249,200,67,.22);color:#9A5A00}
.ptc-chip[data-role="tutor"]{background:rgba(43,108,176,.12);color:#2B6CB0}
.ptc-chip[data-role="coordinator"]{background:rgba(29,185,84,.14);color:#157A39}
.ptc-chip[data-role="salesman"]{background:rgba(232,88,10,.12);color:#B94306}
.ptc-chip[data-role="hr"]{background:rgba(142,68,173,.12);color:#6F2E8A}
.ptc-chip[data-role="admin"]{background:rgba(26,23,19,.10);color:var(--ptc-ink)}
.ptc-chip.urgent{background:rgba(229,62,62,.12);color:var(--ptc-red)}
.ptc-chip.over{background:rgba(43,108,176,.10);color:var(--ptc-blue)}

/* ── RAIL (lista rozmów) ───────────────────────────────────────────────── */
.ptc-rail{flex:none;width:var(--ptc-rail);display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--ptc-line);background:var(--ptc-paper)}
.ptc-rail-head{padding:16px 16px 10px;display:flex;flex-direction:column;gap:12px}
.ptc-rail-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ptc-rail-title{font:500 22px/1.1 'DM Serif Display','Cormorant Garamond',Georgia,serif;letter-spacing:-.01em;text-wrap:balance}
.ptc-rail-title small{display:block;font:500 12px/1.3 var(--ptc-font);color:var(--ptc-ink50);margin-top:3px;letter-spacing:0}
.ptc-new{height:38px;padding:0 14px;border-radius:12px;gap:6px;font-size:13px}
.ptc-new .ptc-ic{width:16px;height:16px;stroke-width:2.5}
.ptc-search{position:relative}
.ptc-search input{width:100%;height:40px;border:1px solid var(--ptc-ink10);border-radius:12px;background:var(--ptc-white);padding:0 36px 0 38px;font:500 14px/1 var(--ptc-font);color:var(--ptc-ink);transition:border-color .2s var(--ptc-ease),box-shadow .2s var(--ptc-ease)}
.ptc-search input::placeholder{color:var(--ptc-ink40)}
.ptc-search input:focus{border-color:var(--ptc-g2);box-shadow:0 0 0 3px rgba(249,200,67,.3)}
.ptc-search .ptc-ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ptc-ink40);pointer-events:none}
.ptc-search .ptc-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:8px}
.ptc-scopes{display:flex;gap:4px;padding:0 12px 8px;position:relative}
.ptc-scope{flex:1;height:34px;border:0;border-radius:10px;background:transparent;font:700 12.5px/1 var(--ptc-font);color:var(--ptc-ink50);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:color .2s var(--ptc-ease),background .2s var(--ptc-ease)}
.ptc-scope:hover{background:var(--ptc-ink04);color:var(--ptc-ink)}
.ptc-scope.on{background:var(--ptc-white);color:var(--ptc-ink);box-shadow:var(--ptc-sh0)}
.ptc-scope .ptc-n{min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:linear-gradient(135deg,var(--ptc-g1),var(--ptc-g2));color:#fff;font-size:10.5px;display:inline-grid;place-items:center}
.ptc-filters{display:flex;gap:6px;padding:0 12px 10px;overflow-x:auto;scrollbar-width:none}
.ptc-filters::-webkit-scrollbar{display:none}
.ptc-fchip{flex:none;height:28px;padding:0 11px;border-radius:99px;border:1px solid var(--ptc-ink10);background:var(--ptc-white);font:600 12px/1 var(--ptc-font);color:var(--ptc-ink60);cursor:pointer;transition:all .18s var(--ptc-ease)}
.ptc-fchip:hover{border-color:var(--ptc-ink30);color:var(--ptc-ink)}
.ptc-fchip.on{background:var(--ptc-ink);border-color:var(--ptc-ink);color:#fff}
.ptc-list{flex:1;min-height:0;overflow-y:auto;padding:0 8px 12px;overscroll-behavior:contain}
.ptc-sec{padding:14px 10px 6px;font:700 10.5px/1 var(--ptc-font);letter-spacing:.08em;text-transform:uppercase;color:var(--ptc-ink40)}
.ptc-conv{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:10px 10px;border:0;border-radius:14px;background:transparent;text-align:left;cursor:pointer;transition:background .15s var(--ptc-ease),transform .15s var(--ptc-spring);animation:ptcFadeUp .32s var(--ptc-spring) both}
.ptc-conv:hover{background:var(--ptc-white)}
.ptc-conv:active{transform:scale(.99)}
.ptc-conv.on{background:var(--ptc-white);box-shadow:var(--ptc-sh0)}
.ptc-conv.on::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--ptc-g1),var(--ptc-g2))}
.ptc-conv-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ptc-conv-row{display:flex;align-items:center;gap:8px;min-width:0}
.ptc-conv-name{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.ptc-conv-time{flex:none;font-size:11px;color:var(--ptc-ink40);font-variant-numeric:tabular-nums}
.ptc-conv-prev{font-size:13px;color:var(--ptc-ink50);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.ptc-conv.unread .ptc-conv-prev{color:var(--ptc-ink);font-weight:600}
.ptc-conv.unread .ptc-conv-name{font-weight:800}
.ptc-conv-meta{display:flex;align-items:center;gap:6px;flex:none}
.ptc-badge{min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:linear-gradient(135deg,var(--ptc-g1),var(--ptc-g2));color:#fff;font:800 11px/1 var(--ptc-font);display:inline-grid;place-items:center;box-shadow:0 2px 8px rgba(240,112,32,.35);animation:ptcPop .4s var(--ptc-spring)}
.ptc-conv-ico{color:var(--ptc-ink30)}
.ptc-conv-ico .ptc-ic{width:13px;height:13px}
.ptc-conv-draft{color:var(--ptc-red);font-weight:700}
.ptc-conv.escal::after{content:"";position:absolute;right:8px;top:8px;width:8px;height:8px;border-radius:50%;background:var(--ptc-red);box-shadow:0 0 0 0 rgba(229,62,62,.5);animation:ptcBreath 2s ease-in-out infinite}

/* ── WĄTEK ─────────────────────────────────────────────────────────────── */
.ptc-root.no-active .ptc-th,.ptc-root.no-active .ptc-comp{display:none}
.ptc-filters{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
.ptc-thread{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;background:var(--ptc-cream);position:relative}
.ptc-th{flex:none;display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--ptc-line);background:rgba(255,253,247,.86);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);min-height:64px;z-index:3}
.ptc-th-back{display:none}
.ptc-th-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;cursor:pointer}
.ptc-th-title{font-weight:800;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}
.ptc-th-sub{font-size:12px;color:var(--ptc-ink50);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:15px}
.ptc-th-sub .on{color:var(--ptc-green);font-weight:700}
.ptc-th-sub .typing{color:var(--ptc-g3);font-weight:700}
.ptc-th-actions{display:flex;align-items:center;gap:2px;flex:none}
.ptc-msgs{flex:1;min-height:0;overflow-y:auto;padding:16px 18px 10px;display:flex;flex-direction:column;gap:2px;overscroll-behavior:contain;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){.ptc-msgs{scroll-behavior:auto}}
.ptc-msgs-spacer{flex:1}
.ptc-day{align-self:center;margin:14px 0 10px;padding:4px 12px;border-radius:99px;background:var(--ptc-white);border:1px solid var(--ptc-ink08);font:700 11px/1 var(--ptc-font);color:var(--ptc-ink50);letter-spacing:.02em}
.ptc-sys{align-self:center;max-width:78%;margin:8px 0;padding:7px 14px;border-radius:99px;background:var(--ptc-paper);border:1px solid var(--ptc-ink06);font-size:12px;color:var(--ptc-ink60);text-align:center;text-wrap:pretty;display:flex;align-items:center;gap:7px}
.ptc-sys .ptc-ic{width:14px;height:14px;color:var(--ptc-g2)}
.ptc-sys.escal{background:rgba(229,62,62,.08);border-color:rgba(229,62,62,.25);color:#A12828}
.ptc-sys.escal .ptc-ic{color:var(--ptc-red)}
.ptc-loadmore{align-self:center;margin:4px 0 10px;height:32px;padding:0 14px;border-radius:99px;border:1px solid var(--ptc-ink10);background:var(--ptc-white);font:700 12px/1 var(--ptc-font);color:var(--ptc-ink60);cursor:pointer}
.ptc-loadmore:hover{border-color:var(--ptc-ink30);color:var(--ptc-ink)}

/* grupa wiadomości jednego autora */
.ptc-grp{display:flex;gap:10px;margin:2px 0;max-width:min(78%,640px);align-items:flex-end;animation:ptcFadeUp .3s var(--ptc-spring) both}
.ptc-grp.mine{align-self:flex-end;flex-direction:row-reverse;max-width:min(74%,600px)}
.ptc-grp.mine .ptc-av{display:none}
.ptc-grp .ptc-av{margin-bottom:2px}
.ptc-grp-col{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ptc-grp.mine .ptc-grp-col{align-items:flex-end}
.ptc-author{font:700 12px/1 var(--ptc-font);color:var(--ptc-ink60);margin:4px 0 3px 4px;display:flex;align-items:center;gap:6px}
.ptc-msg{position:relative;display:flex;flex-direction:column;gap:4px;max-width:100%;align-items:flex-start}
.ptc-grp.mine .ptc-msg{align-items:flex-end}
.ptc-bub{max-width:100%}
.ptc-msg.sending{opacity:.72}
.ptc-msg.failed .ptc-bub{border-color:rgba(229,62,62,.5)}
.ptc-bub{position:relative;padding:9px 13px;border-radius:18px;background:var(--ptc-white);border:1px solid var(--ptc-ink08);box-shadow:var(--ptc-sh0);/* TYPOGRAFIA 2026-08-21: tresc wiadomosci byla 14,5 px w wadze 400 — na bialym tle ginela.
   Teraz 15 px / 500 (DM Sans ma ten kroj WCZYTANY: wght@400;500;600;700, wiec to prawdziwa
   grubosc, nie sztuczne pogrubienie przegladarki) + odrobine wiekszy oddech linii i lekko
   sciagniete swiatlo miedzy literami, bo grubszy kroj potrzebuje mniej odstepu. */
font-size:15px;font-weight:500;line-height:1.5;letter-spacing:-.004em;word-wrap:break-word;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--ptc-ink);transition:transform .15s var(--ptc-spring)}
.ptc-grp:not(.mine) .ptc-msg:first-of-type .ptc-bub,.ptc-grp:not(.mine) .ptc-msg.first .ptc-bub{border-top-left-radius:18px}
.ptc-grp:not(.mine) .ptc-msg .ptc-bub{border-bottom-left-radius:6px;border-top-left-radius:6px}
/* DESIGN 2026-08-21: przychodzące byly biel-na-bieli (obwodka rgba(26,23,19,.08) praktycznie
   niewidoczna). Teraz tresc zostaje biala (czytelnosc dlugich wiadomosci), a ramke rysuje
   gradient fioletowy — dwie warstwy tla: padding-box = wypelnienie, border-box = ramka. */
.ptc-grp:not(.mine) .ptc-bub{
  background:linear-gradient(var(--ptc-white),var(--ptc-white)) padding-box,
             linear-gradient(135deg,rgba(109,40,217,.85) 0%,rgba(162,28,175,.7) 100%) border-box;
  border:1.5px solid transparent;
  box-shadow:0 2px 10px var(--ptc-v-glow-soft);
}
.ptc-grp:not(.mine) .ptc-msg.first .ptc-bub{border-top-left-radius:18px}
.ptc-grp:not(.mine) .ptc-msg.last .ptc-bub{border-bottom-left-radius:18px}
.ptc-grp.mine .ptc-bub{background:linear-gradient(135deg,var(--ptc-v1) 0%,var(--ptc-v2) 100%);color:#fff;border-color:transparent;box-shadow:0 4px 16px var(--ptc-v-glow);border-bottom-right-radius:6px;border-top-right-radius:6px}
.ptc-grp.mine .ptc-msg.first .ptc-bub{border-top-right-radius:18px}
.ptc-grp.mine .ptc-msg.last .ptc-bub{border-bottom-right-radius:18px}
.ptc-bub a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.ptc-grp.mine .ptc-bub a{color:#fff}
.ptc-bub.del{font-style:italic;color:var(--ptc-ink40);background:var(--ptc-paper);border-style:dashed}
.ptc-grp.mine .ptc-bub.del{background:var(--ptc-paper);color:var(--ptc-ink40);box-shadow:none}
/* DESIGN 2026-08-21: pilne i nieudane wracaja do zwyklej ramki — czerwien jest znaczeniem,
   nie ozdoba, i nie moze przegrac z gradientem. */
.ptc-grp:not(.mine) .ptc-bub.urgent,.ptc-grp:not(.mine) .ptc-msg.failed .ptc-bub{
  background:var(--ptc-white);border:1px solid var(--ptc-ink08);box-shadow:var(--ptc-sh0);
}
.ptc-bub.urgent{border-left:3px solid var(--ptc-red)}
.ptc-grp:not(.mine) .ptc-bub.urgent{border-left:3px solid var(--ptc-red)}
.ptc-msg.failed .ptc-bub,.ptc-grp:not(.mine) .ptc-msg.failed .ptc-bub{border-color:rgba(229,62,62,.5)}
/* skasowana wiadomosc: stan wyciszony, bez gradientu */
.ptc-grp:not(.mine) .ptc-bub.del{background:var(--ptc-paper);border:1px dashed var(--ptc-ink10);box-shadow:none}
.ptc-bub-img{padding:4px;overflow:hidden}
.ptc-grp.mine .ptc-bub-img{background:var(--ptc-white);box-shadow:var(--ptc-sh0);border:1px solid var(--ptc-ink08)}
.ptc-quote{display:flex;flex-direction:column;gap:1px;margin:-2px -4px 6px;padding:6px 10px;border-left:3px solid var(--ptc-v1);border-radius:10px;background:rgba(26,23,19,.05);/* TYPOGRAFIA 2026-08-21: cytowana wiadomosc byla 12,5 px w kolorze ink60 — nieczytelna. */font-size:13px;font-weight:500;line-height:1.45;color:var(--ptc-ink70);cursor:pointer}
.ptc-grp.mine .ptc-quote{background:rgba(255,255,255,.22);border-left-color:#fff;color:rgba(255,255,255,.92)}
.ptc-quote b{font-size:11px;letter-spacing:.03em;text-transform:uppercase}
.ptc-quote span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px;display:block}
.ptc-urgent-tag{display:inline-flex;align-items:center;gap:4px;font:800 10px/1 var(--ptc-font);letter-spacing:.06em;text-transform:uppercase;color:var(--ptc-red);margin-bottom:4px}
.ptc-grp.mine .ptc-urgent-tag{color:#fff}
/* SZEROKOSC SIATKI 2026-08-25 (Bug #282): kolumna `1fr` w dymku, ktory dopasowuje sie
   do tresci, nie ma od czego liczyc szerokosci — kafelek wychodzil 0x0 i zdjecie nie
   pokazywalo sie NIGDZIE (zmierzone w WebKicie i Chromium: siatka 0x0). Widac bylo tylko
   nazwe pliku, bo nieudany obrazek rysuje swoj tekst zastepczy i to on nadawal wysokosc.
   Szerokosc musi byc definitywna; `min()` trzyma dawne maksimum na desktopie. */
.ptc-grid{display:grid;gap:4px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));width:min(360px,72vw);max-width:360px}
.ptc-grid.one{grid-template-columns:1fr;width:min(320px,66vw);max-width:320px}
.ptc-img{position:relative;display:block;width:100%;aspect-ratio:var(--ar,4/3);border-radius:12px;overflow:hidden;background:var(--ptc-paper);border:0;padding:0;cursor:zoom-in}
.ptc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ptc-expo)}
.ptc-img:hover img{transform:scale(1.03)}
.ptc-grid.one .ptc-img{aspect-ratio:var(--ar,4/3);max-height:360px}
/* WIELE ZDJEC 2026-08-25: proporcje wlasne kazdego zdjecia dawaly kafelki roznej
   wysokosci i biala dziure w dymku. Siatka wielu zdjec ma rowne kafelki (tak robi
   Messenger), kadrowanie zalatwia `object-fit:cover`; pojedyncze zdjecie dalej
   zachowuje swoje proporcje. */
.ptc-grid:not(.one) .ptc-img{aspect-ratio:1}
.ptc-file{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:rgba(26,23,19,.05);text-decoration:none;color:inherit;min-width:200px;max-width:340px;margin-top:2px;transition:background .15s var(--ptc-ease)}
.ptc-file:hover{background:rgba(26,23,19,.09)}
.ptc-grp.mine .ptc-file{background:rgba(255,255,255,.22);color:#fff}
.ptc-grp.mine .ptc-file:hover{background:rgba(255,255,255,.32)}
.ptc-file-ico{width:36px;height:36px;border-radius:10px;background:var(--ptc-white);color:var(--ptc-g3);display:grid;place-items:center;flex:none;font:800 10px/1 var(--ptc-font);letter-spacing:.04em}
.ptc-file-body{min-width:0;display:flex;flex-direction:column;gap:2px}
.ptc-file-name{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptc-file-meta{font-size:11px;opacity:.7}
/* „Wysłane” obok fajki — ten sam ciężar co „Wyświetlone”, żeby stan wiadomości
   dało się przeczytać bez zgadywania, co znaczy jedna fajka. */
.ptc-meta .sent{margin-left:3px;color:var(--ptc-ink50);font-size:11px}
.ptc-meta{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--ptc-ink40);padding:0 6px;font-variant-numeric:tabular-nums;min-height:14px}
.ptc-grp.mine .ptc-meta{justify-content:flex-end}
.ptc-meta .ptc-ic{width:13px;height:13px}
.ptc-meta .seen{color:var(--ptc-g3);display:inline-flex;align-items:center;gap:3px}
.ptc-meta .seen .ptc-av{width:14px;height:14px;border-radius:4px;font-size:7px}
.ptc-meta .fail{color:var(--ptc-red);font-weight:700;cursor:pointer}
.ptc-react{display:flex;flex-wrap:wrap;gap:4px;margin:-6px 6px 0}
.ptc-grp.mine .ptc-react{justify-content:flex-end}
.ptc-react button{height:24px;padding:0 8px;border-radius:99px;border:1px solid var(--ptc-ink10);background:var(--ptc-white);font:600 12px/1 var(--ptc-font);cursor:pointer;display:inline-flex;align-items:center;gap:4px;box-shadow:var(--ptc-sh0);transition:transform .15s var(--ptc-spring),border-color .15s}
.ptc-react button:hover{transform:translateY(-1px)}
.ptc-react button.me{border-color:var(--ptc-g2);background:rgba(249,200,67,.18)}
/* akcje przy najechaniu */
.ptc-acts{position:absolute;top:50%;transform:translateY(-50%);display:flex;gap:2px;padding:3px;border-radius:99px;background:var(--ptc-white);border:1px solid var(--ptc-ink08);box-shadow:var(--ptc-sh1);opacity:0;pointer-events:none;transition:opacity .15s var(--ptc-ease);z-index:2}
.ptc-grp:not(.mine) .ptc-acts{left:calc(100% + 6px)}
.ptc-grp.mine .ptc-acts{right:calc(100% + 6px)}
.ptc-msg:hover .ptc-acts,.ptc-msg.focus .ptc-acts{opacity:1;pointer-events:auto}
.ptc-acts button{width:28px;height:28px;border:0;border-radius:99px;background:transparent;color:var(--ptc-ink50);display:grid;place-items:center;cursor:pointer;font-size:14px;transition:background .12s,transform .12s var(--ptc-spring)}
.ptc-acts button:hover{background:var(--ptc-ink06);color:var(--ptc-ink);transform:scale(1.1)}
.ptc-acts .ptc-ic{width:14px;height:14px}
.ptc-pinned-tag{font-size:10px;color:var(--ptc-g3);font-weight:800;letter-spacing:.05em;text-transform:uppercase}

/* pisze… */
.ptc-typing{align-self:flex-start;display:flex;align-items:center;gap:8px;margin:6px 0 0 54px;min-height:22px}
.ptc-typing .bubble{display:inline-flex;gap:4px;padding:9px 12px;border-radius:16px;background:var(--ptc-white);border:1px solid var(--ptc-ink08)}
.ptc-typing i{width:6px;height:6px;border-radius:50%;background:var(--ptc-ink30);animation:ptcTyping 1.2s infinite ease-in-out}
.ptc-typing i:nth-child(2){animation-delay:.15s}.ptc-typing i:nth-child(3){animation-delay:.3s}
.ptc-typing .who{font-size:11.5px;color:var(--ptc-ink50)}

/* skocz na dół */
.ptc-jump{position:absolute;right:18px;bottom:96px;height:36px;padding:0 12px 0 10px;border-radius:99px;border:1px solid var(--ptc-ink10);background:var(--ptc-white);box-shadow:var(--ptc-sh2);display:none;align-items:center;gap:6px;font:700 12px/1 var(--ptc-font);color:var(--ptc-ink);cursor:pointer;z-index:4;animation:ptcPop .35s var(--ptc-spring)}
.ptc-jump.show{display:inline-flex}
.ptc-jump .ptc-badge{height:18px;min-width:18px;font-size:10px}

/* ── KOMPOZER ──────────────────────────────────────────────────────────── */
.ptc-comp{flex:none;padding:10px 14px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--ptc-line);background:rgba(255,253,247,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:relative;z-index:3}
.ptc-reply{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px 8px 12px;border-left:3px solid var(--ptc-g2);border-radius:10px;background:var(--ptc-white);box-shadow:var(--ptc-sh0);animation:ptcFadeUp .25s var(--ptc-spring)}
.ptc-reply-body{flex:1;min-width:0;font-size:12.5px;color:var(--ptc-ink60)}
.ptc-reply-body b{display:block;font-size:11px;color:var(--ptc-g3);letter-spacing:.03em;text-transform:uppercase;margin-bottom:2px}
.ptc-reply-body span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptc-attach-tray{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.ptc-att{position:relative;width:72px;height:72px;border-radius:12px;overflow:hidden;background:var(--ptc-paper);border:1px solid var(--ptc-ink10);display:grid;place-items:center;animation:ptcPop .3s var(--ptc-spring)}
.ptc-att img{width:100%;height:100%;object-fit:cover}
.ptc-att .name{font:700 10px/1.2 var(--ptc-font);color:var(--ptc-ink60);padding:6px;text-align:center;word-break:break-all;overflow:hidden}
.ptc-att .x{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;border:0;background:rgba(26,23,19,.75);color:#fff;display:grid;place-items:center;cursor:pointer;padding:0}
.ptc-att .x .ptc-ic{width:11px;height:11px;stroke-width:3}
.ptc-att .prog{position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--ptc-g1),var(--ptc-g2));transform-origin:left;transform:scaleX(var(--p,0));transition:transform .2s}
.ptc-att.err{border-color:var(--ptc-red)}
.ptc-comp-row{display:flex;align-items:flex-end;gap:8px}
.ptc-comp-box{flex:1;display:flex;align-items:flex-end;gap:4px;min-height:44px;padding:4px 6px 4px 4px;border-radius:22px;border:1px solid var(--ptc-ink10);background:var(--ptc-white);transition:border-color .2s var(--ptc-ease),box-shadow .2s var(--ptc-ease)}
.ptc-comp-box:focus-within{border-color:var(--ptc-g2);box-shadow:0 0 0 3px rgba(249,200,67,.28)}
.ptc-comp-box.drag{border-style:dashed;border-color:var(--ptc-g2);background:rgba(249,200,67,.08)}
.ptc-comp textarea{flex:1;min-width:0;resize:none;border:0;background:transparent;padding:9px 6px;max-height:160px;font:500 15px/1.4 var(--ptc-font);color:var(--ptc-ink);outline:none}
.ptc-comp textarea::placeholder{color:var(--ptc-ink40)}
.ptc-send{width:44px;height:44px;border-radius:50%;border:0;background:var(--ptc-ink06);color:var(--ptc-ink30);display:grid;place-items:center;cursor:pointer;flex:none;transition:background .25s var(--ptc-ease),color .25s,transform .3s var(--ptc-spring),box-shadow .25s}
.ptc-send .ptc-ic{width:20px;height:20px;transform:translateX(1px)}
.ptc-send.ready{background:linear-gradient(135deg,var(--ptc-g1),var(--ptc-g2));color:#fff;box-shadow:var(--ptc-gold-glow);transform:scale(1.06)}
.ptc-send.ready:hover{transform:scale(1.12) translateY(-1px)}
.ptc-send:active{transform:scale(.94)!important}
.ptc-send:disabled{cursor:not-allowed}
.ptc-urgent{height:30px;padding:0 10px;border-radius:99px;border:1px solid var(--ptc-ink10);background:var(--ptc-white);font:700 11.5px/1 var(--ptc-font);color:var(--ptc-ink50);display:inline-flex;align-items:center;gap:5px;cursor:pointer;transition:all .2s var(--ptc-ease);margin:0 0 6px 4px}
.ptc-urgent .ptc-ic{width:13px;height:13px}
.ptc-urgent.on{background:rgba(229,62,62,.1);border-color:rgba(229,62,62,.4);color:var(--ptc-red)}
.ptc-comp-hint{font-size:11px;color:var(--ptc-ink40);margin:6px 6px 0;display:flex;gap:12px;align-items:center}
.ptc-comp-hint kbd{font:600 10px/1 var(--ptc-font);padding:2px 5px;border-radius:5px;border:1px solid var(--ptc-ink15);background:var(--ptc-white);color:var(--ptc-ink50)}
.ptc-readonly{padding:12px 14px;text-align:center;font-size:13px;color:var(--ptc-ink50);background:var(--ptc-paper);border-top:1px solid var(--ptc-line)}
.ptc-joinbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:rgba(43,108,176,.06);border-top:1px solid rgba(43,108,176,.15);font-size:13px;color:var(--ptc-ink70)}
.ptc-joinbar b{color:var(--ptc-blue)}

/* ── SZUFLADA INFO ─────────────────────────────────────────────────────── */
.ptc-drawer{flex:none;width:0;overflow:hidden;border-left:1px solid transparent;background:var(--ptc-paper);transition:width .32s var(--ptc-expo),border-color .3s;display:flex;flex-direction:column;min-height:0}
.ptc-drawer.open{width:var(--ptc-drawer);border-left-color:var(--ptc-line)}
.ptc-drawer-in{width:var(--ptc-drawer);display:flex;flex-direction:column;min-height:0;height:100%}
.ptc-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 8px;font:700 13px/1 var(--ptc-font);color:var(--ptc-ink50);letter-spacing:.06em;text-transform:uppercase}
.ptc-drawer-body{flex:1;overflow-y:auto;padding:0 12px 16px;display:flex;flex-direction:column;gap:14px}
.ptc-dcard{background:var(--ptc-white);border:1px solid var(--ptc-ink08);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--ptc-sh0)}
.ptc-dcard h4{margin:0;font:700 12px/1 var(--ptc-font);color:var(--ptc-ink50);letter-spacing:.05em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.ptc-dhero{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:8px 0 2px}
.ptc-dhero .nm{font:500 20px/1.15 'DM Serif Display','Cormorant Garamond',Georgia,serif;text-wrap:balance}
.ptc-dhero .sb{font-size:12px;color:var(--ptc-ink50)}
.ptc-person{display:flex;align-items:center;gap:10px;padding:6px 4px;border-radius:10px}
.ptc-person:hover{background:var(--ptc-paper)}
.ptc-person-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ptc-person-name{font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptc-person-sub{font-size:11.5px;color:var(--ptc-ink50);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptc-person .ptc-ibtn{width:30px;height:30px;border-radius:9px;opacity:.6}
.ptc-person:hover .ptc-ibtn{opacity:1}
.ptc-dlist{display:flex;flex-direction:column;gap:2px}
.ptc-drow{display:flex;align-items:center;gap:10px;width:100%;padding:10px 8px;border:0;border-radius:10px;background:transparent;font:600 13.5px/1 var(--ptc-font);color:var(--ptc-ink);cursor:pointer;text-align:left;transition:background .15s}
.ptc-drow:hover{background:var(--ptc-paper)}
.ptc-drow.danger{color:var(--ptc-red)}
.ptc-drow .ptc-ic{width:17px;height:17px;color:var(--ptc-ink50)}
.ptc-drow.danger .ptc-ic{color:var(--ptc-red)}
.ptc-drow .tog{margin-left:auto;width:38px;height:22px;border-radius:99px;background:var(--ptc-ink15);position:relative;transition:background .25s var(--ptc-ease);flex:none}
.ptc-drow .tog::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .3s var(--ptc-spring)}
.ptc-drow .tog.on{background:linear-gradient(135deg,var(--ptc-g1),var(--ptc-g2))}
.ptc-drow .tog.on::after{transform:translateX(16px)}
.ptc-kv{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.ptc-kv span:first-child{color:var(--ptc-ink50)}
.ptc-kv span:last-child{font-weight:700;text-align:right}

/* ── PUSTE STANY / SKELETON ────────────────────────────────────────────── */
.ptc-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;gap:10px;animation:ptcFadeUp .4s var(--ptc-spring) both}
.ptc-empty .art{width:120px;height:120px;margin-bottom:4px}
.ptc-empty h3{margin:0;font:500 22px/1.15 'DM Serif Display','Cormorant Garamond',Georgia,serif;text-wrap:balance}
.ptc-empty p{margin:0;max-width:320px;font-size:13.5px;color:var(--ptc-ink50);text-wrap:pretty}
.ptc-empty .ptc-btn{margin-top:8px}
.ptc-skel{display:flex;flex-direction:column;gap:8px;padding:6px 8px}
.ptc-skel-row{display:flex;gap:12px;align-items:center;padding:8px 6px}
.ptc-sk{border-radius:10px;background:linear-gradient(90deg,var(--ptc-ink06) 25%,var(--ptc-ink10) 50%,var(--ptc-ink06) 75%);background-size:200% 100%;animation:ptcShimmer 1.4s linear infinite}
.ptc-sk.av{width:44px;height:44px;border-radius:14px;flex:none}
.ptc-sk.l1{height:13px;width:55%}.ptc-sk.l2{height:11px;width:80%;margin-top:7px}
.ptc-skel-msgs{display:flex;flex-direction:column;gap:10px;padding:20px}
.ptc-skel-msgs .ptc-sk{height:38px;width:45%;border-radius:18px}
.ptc-skel-msgs .ptc-sk.r{align-self:flex-end;width:38%}

/* ── MODALE / LIGHTBOX / TOAST / MENU ─────────────────────────────────── */
.ptc-ov{position:fixed;inset:0;z-index:1000;background:rgba(26,23,19,.42);backdrop-filter:blur(8px) saturate(1.3);-webkit-backdrop-filter:blur(8px) saturate(1.3);display:flex;align-items:center;justify-content:center;padding:16px;animation:ptcFade .2s var(--ptc-ease) both;font-family:var(--ptc-font);color:var(--ptc-ink)}
.ptc-ov.closing{animation:ptcFadeOut .18s var(--ptc-ease) both}
.ptc-ov *,.ptc-ov *::before,.ptc-ov *::after{box-sizing:border-box}
.ptc-modal{width:100%;max-width:520px;max-height:min(86dvh,720px);background:var(--ptc-cream,#FFFDF7);border-radius:20px;box-shadow:0 12px 40px rgba(26,23,19,.18);display:flex;flex-direction:column;overflow:hidden;animation:ptcSlideUp .3s var(--ptc-spring) both}
.ptc-ov.closing .ptc-modal{animation:ptcSlideDown .18s var(--ptc-ease) both}
.ptc-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 18px 10px}
.ptc-modal-head h3{margin:0;font:500 22px/1.1 'DM Serif Display','Cormorant Garamond',Georgia,serif}
.ptc-modal-body{padding:6px 18px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;min-height:0}
.ptc-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 18px;border-top:1px solid var(--ptc-line,#EDE8DF)}
.ptc-input{width:100%;height:42px;border:1px solid var(--ptc-ink15,rgba(26,23,19,.15));border-radius:14px;background:#fff;padding:0 14px;font:500 15px/1 var(--ptc-font);color:inherit;transition:border-color .2s,box-shadow .2s}
.ptc-input:focus{outline:none;border-color:var(--ptc-g2,#F07020);box-shadow:0 0 0 3px rgba(249,200,67,.3)}
.ptc-people{display:flex;flex-direction:column;gap:2px;max-height:48dvh;overflow-y:auto;padding-right:2px}
.ptc-people .ptc-sec{padding:12px 6px 4px}
.ptc-pbtn{display:flex;align-items:center;gap:12px;width:100%;padding:8px 8px;border:0;border-radius:12px;background:transparent;text-align:left;cursor:pointer;transition:background .15s;animation:ptcFadeUp .25s var(--ptc-spring) both}
.ptc-pbtn:hover{background:#fff}
.ptc-pbtn.sel{background:rgba(249,200,67,.18)}
.ptc-pbtn .ck{margin-left:auto;width:22px;height:22px;border-radius:7px;border:2px solid var(--ptc-ink15,rgba(26,23,19,.15));display:grid;place-items:center;color:#fff;flex:none;transition:all .2s var(--ptc-spring)}
.ptc-pbtn.sel .ck{background:linear-gradient(135deg,var(--ptc-g1,#F9C843),var(--ptc-g2,#F07020));border-color:transparent}
.ptc-pbtn .ck .ptc-ic{width:13px;height:13px;stroke-width:3;stroke:#fff;fill:none}
.ptc-selchips{display:flex;flex-wrap:wrap;gap:6px}
.ptc-selchip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 10px;border-radius:99px;background:#fff;border:1px solid var(--ptc-ink10,rgba(26,23,19,.1));font:600 12.5px/1 var(--ptc-font);animation:ptcPop .3s var(--ptc-spring)}
.ptc-selchip button{width:18px;height:18px;border:0;border-radius:50%;background:var(--ptc-ink06,rgba(26,23,19,.06));display:grid;place-items:center;cursor:pointer;padding:0}
.ptc-selchip button .ptc-ic{width:10px;height:10px;stroke-width:3}
.ptc-seg{display:flex;gap:4px;padding:4px;border-radius:12px;background:var(--ptc-paper,#F7F4EE)}
.ptc-seg button{flex:1;height:34px;border:0;border-radius:9px;background:transparent;font:700 13px/1 var(--ptc-font);color:var(--ptc-ink50,rgba(26,23,19,.5));cursor:pointer;transition:all .2s var(--ptc-ease)}
.ptc-seg button.on{background:#fff;color:var(--ptc-ink,#1A1713);box-shadow:0 1px 3px rgba(26,23,19,.08)}
/* confirm */
.ptc-cfm{max-width:420px;text-align:center;padding:28px 24px 20px;gap:10px;align-items:center}
.ptc-cfm .ico{width:72px;height:72px;border-radius:24px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--ptc-g1,#F9C843),var(--ptc-g2,#F07020));box-shadow:0 8px 32px rgba(240,112,32,.25);animation:ptcPop .5s var(--ptc-spring) both;margin-bottom:6px}
.ptc-cfm .ico.danger{background:linear-gradient(135deg,#E53E3E,#8B1A1A);box-shadow:0 8px 32px rgba(229,62,62,.25)}
.ptc-cfm .ico .ptc-ic{width:32px;height:32px}
.ptc-cfm h3{margin:0;font:500 22px/1.15 'DM Serif Display','Cormorant Garamond',Georgia,serif}
.ptc-cfm p{margin:0;font-size:14px;color:var(--ptc-ink60,rgba(26,23,19,.6));text-wrap:pretty}
.ptc-cfm .row{display:flex;gap:8px;justify-content:center;margin-top:14px;width:100%}
.ptc-cfm .row .ptc-btn{flex:1;max-width:180px}
/* lightbox */
.ptc-lb{background:rgba(26,23,19,.92);padding:0;cursor:zoom-out}
.ptc-lb img{max-width:96vw;max-height:92dvh;border-radius:10px;box-shadow:0 24px 64px rgba(0,0,0,.5);animation:ptcPop .35s var(--ptc-spring) both;cursor:default}
.ptc-lb .ptc-lb-close{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:14px;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px)}
.ptc-lb .ptc-lb-dl{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);height:40px;padding:0 16px;border-radius:99px;background:rgba(255,255,255,.14);color:#fff;font:700 13px/1 var(--ptc-font);display:inline-flex;align-items:center;gap:8px;text-decoration:none;backdrop-filter:blur(6px)}
/* menu kontekstowe */
.ptc-menu{position:fixed;z-index:1100;min-width:200px;padding:6px;border-radius:14px;background:#fff;border:1px solid var(--ptc-ink08,rgba(26,23,19,.08));box-shadow:0 12px 40px rgba(26,23,19,.16);font-family:var(--ptc-font);animation:ptcPop .22s var(--ptc-spring) both;transform-origin:top right}
.ptc-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:9px;background:transparent;font:600 13.5px/1 var(--ptc-font);color:var(--ptc-ink,#1A1713);cursor:pointer;text-align:left;transition:background .12s}
.ptc-menu button:hover{background:var(--ptc-paper,#F7F4EE)}
.ptc-menu button.danger{color:#E53E3E}
.ptc-menu .ptc-ic{width:16px;height:16px;color:var(--ptc-ink50,rgba(26,23,19,.5))}
.ptc-menu button.danger .ptc-ic{color:#E53E3E}
.ptc-menu hr{border:0;border-top:1px solid var(--ptc-line,#EDE8DF);margin:4px 6px}
.ptc-emojibar{position:fixed;z-index:1100;display:flex;gap:2px;padding:6px;border-radius:99px;background:#fff;border:1px solid var(--ptc-ink08,rgba(26,23,19,.08));box-shadow:0 12px 40px rgba(26,23,19,.16);animation:ptcPop .25s var(--ptc-spring) both}
.ptc-emojibar button{width:36px;height:36px;border:0;border-radius:50%;background:transparent;font-size:20px;cursor:pointer;transition:transform .15s var(--ptc-spring),background .12s}
.ptc-emojibar button:hover{transform:scale(1.25) translateY(-2px);background:var(--ptc-paper,#F7F4EE)}
/* toast */
.ptc-toasts{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:14px;z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none;font-family:var(--ptc-font)}
.ptc-toast{pointer-events:auto;display:flex;align-items:center;gap:12px;min-width:260px;max-width:360px;padding:10px 12px;border-radius:16px;background:rgba(255,253,247,.96);border:1px solid var(--ptc-ink08,rgba(26,23,19,.08));box-shadow:0 12px 40px rgba(26,23,19,.16);backdrop-filter:blur(10px);cursor:pointer;animation:ptcToastIn .32s var(--ptc-spring) both;color:var(--ptc-ink,#1A1713)}
.ptc-toast.out{animation:ptcToastOut .2s var(--ptc-ease) both}
.ptc-toast .ptc-av{width:38px;height:38px;border-radius:12px;font-size:13px}
.ptc-toast-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ptc-toast-t{font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptc-toast-b{font-size:12.5px;color:var(--ptc-ink60,rgba(26,23,19,.6));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptc-toast.err{border-color:rgba(229,62,62,.35)}
.ptc-toast.err .ptc-toast-t{color:#E53E3E}
.ptc-toast.ok .ptc-toast-t{color:#157A39}
/* drag overlay */
.ptc-drop{position:absolute;inset:0;z-index:5;background:rgba(249,200,67,.14);border:2px dashed var(--ptc-g2);border-radius:var(--ptc-rl);display:none;align-items:center;justify-content:center;font:700 15px/1 var(--ptc-font);color:var(--ptc-g3);pointer-events:none}
.ptc-drop.show{display:flex;animation:ptcFade .15s}

/* ── ANIMACJE ──────────────────────────────────────────────────────────── */
@keyframes ptcFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ptcFade{from{opacity:0}to{opacity:1}}
@keyframes ptcFadeOut{from{opacity:1}to{opacity:0}}
@keyframes ptcPop{0%{opacity:0;transform:scale(.7)}100%{opacity:1;transform:scale(1)}}
@keyframes ptcSlideUp{from{opacity:0;transform:translateY(28px) scale(.98)}to{opacity:1;transform:none}}
@keyframes ptcSlideDown{from{opacity:1;transform:none}to{opacity:0;transform:translateY(16px)}}
@keyframes ptcShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes ptcTyping{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}
@keyframes ptcBreath{0%,100%{box-shadow:0 0 0 0 rgba(229,62,62,.5)}50%{box-shadow:0 0 0 6px rgba(229,62,62,0)}}
@keyframes ptcToastIn{from{opacity:0;transform:translateX(24px) scale(.96)}to{opacity:1;transform:none}}
@keyframes ptcToastOut{from{opacity:1}to{opacity:0;transform:translateY(-8px)}}
@keyframes ptcSlideInRight{from{transform:translateX(100%)}to{transform:none}}
@keyframes ptcSlideOutRight{from{transform:none}to{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){
  .ptc-root *,.ptc-ov,.ptc-ov *,.ptc-toast,.ptc-menu,.ptc-emojibar{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ── WĄSKI UKŁAD (≤768px) — jeden ekran, lista ⇄ wątek ───────────────────
   Sterowane SZEROKOŚCIĄ KONTENERA (container query), nie okna: panel rodzica na
   desktopie renderuje się w ramce telefonu 440px i też ma dostać układ jednoekranowy.
   Kontener (.ptc-host) ustawia JS w PTContact.mount(). Blok @media = fallback. ── */
@container ptc (max-width:768px){
  .ptc-root{border-radius:0;border:0;box-shadow:none;min-height:0}
  .ptc-rail{width:100%;border-right:0}
  .ptc-thread{position:absolute;inset:0;transform:translateX(100%);transition:transform .32s var(--ptc-expo);z-index:6;background:var(--ptc-cream);visibility:hidden}
  .ptc-root.thread-open .ptc-thread{transform:none;visibility:visible}
  .ptc-root.no-active .ptc-thread{visibility:hidden}
  .ptc-root.thread-open .ptc-rail{visibility:hidden}
  .ptc-th-back{display:inline-flex;margin-left:-6px}
  .ptc-th{min-height:58px;padding:8px 10px;padding-top:calc(8px + var(--ptc-safe-top,0px));background:var(--ptc-cream);backdrop-filter:none;-webkit-backdrop-filter:none}
  .ptc-grp{max-width:88%}
  .ptc-grp.mine{max-width:86%}
  .ptc-acts{display:none}
  .ptc-msgs{padding:12px 12px 8px}
  .ptc-drawer{position:absolute;inset:0;width:100%;z-index:7;transform:translateX(100%);transition:transform .32s var(--ptc-expo);border-left:0}
  .ptc-drawer.open{width:100%;transform:none}
  .ptc-drawer-in{width:100%}
  .ptc-comp{padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px))}
  .ptc-comp textarea{font-size:16px}
  .ptc-comp-hint{display:none}
  .ptc-jump{bottom:84px;right:12px}
  .ptc-search input{font-size:16px}
}
@media (max-width:768px){
  .ptc-root{border-radius:0;border:0;box-shadow:none;min-height:0}
  .ptc-rail{width:100%;border-right:0}
  .ptc-thread{position:absolute;inset:0;transform:translateX(100%);transition:transform .32s var(--ptc-expo);z-index:6;background:var(--ptc-cream);visibility:hidden}
  .ptc-root.thread-open .ptc-thread{transform:none;visibility:visible}
  .ptc-root.no-active .ptc-thread{visibility:hidden}
  .ptc-root.thread-open .ptc-rail{visibility:hidden}
  .ptc-th-back{display:inline-flex;margin-left:-6px}
  .ptc-th{min-height:58px;padding:8px 10px;padding-top:calc(8px + var(--ptc-safe-top,0px));background:var(--ptc-cream);backdrop-filter:none;-webkit-backdrop-filter:none}
  .ptc-grp{max-width:88%}
  .ptc-grp.mine{max-width:86%}
  .ptc-acts{display:none}
  .ptc-msgs{padding:12px 12px 8px}
  .ptc-drawer{position:absolute;inset:0;width:100%;z-index:7;transform:translateX(100%);transition:transform .32s var(--ptc-expo);border-left:0}
  .ptc-drawer.open{width:100%;transform:none}
  .ptc-drawer-in{width:100%}
  .ptc-comp{padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px))}
  .ptc-comp textarea{font-size:16px}
  .ptc-comp-hint{display:none}
  .ptc-jump{bottom:84px;right:12px}
  .ptc-search input{font-size:16px}
  .ptc-modal{align-self:flex-end;max-width:100%;border-radius:20px 20px 0 0;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom,0px)}
  .ptc-ov{align-items:flex-end;padding:0}
  .ptc-ov.ptc-lb{align-items:center}
  .ptc-cfm{align-self:center;margin:0 16px 16px;border-radius:20px}
  .ptc-toasts{left:12px;right:12px}
  .ptc-toast{max-width:none;min-width:0}
  .ptc-input{font-size:16px}
}
.ptc-host{container-type:inline-size;container-name:ptc}
@media (min-width:769px) and (max-width:1100px){
  .ptc-root{--ptc-rail:300px}
}

/* ── Panel rodzica: widok zajmuje pole między topbarem a dolną nawigacją ── */
.ptc-root[data-panel="parent"]{border:0;border-radius:0;box-shadow:none;min-height:0}
.ptc-root[data-panel="parent"] .ptc-list{padding-bottom:84px}
.ptc-root[data-panel="parent"] .ptc-rail-head{padding-top:12px}
/* Otwarty wątek na telefonie = pełny ekran rozmowy (jak w Messengerze): chowamy dolną nawigację i pływający „?” */
body.ptc-thread-open #bottomNav,body.ptc-thread-open #helpFab,body.ptc-thread-open .mobile-nav,body.ptc-thread-open .ptmn-bar{display:none!important}
@media (max-width:768px){ body.ptc-thread-open .ptc-root[data-panel="parent"] .ptc-comp{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))} }
