/* ══════════════════════════════════════════════════════════════════════════
   Legal documents (Regulamin, Polityka prywatności).
   Every rule is scoped under `.legal-page` so the document's own palette and
   generic selectors (table, .top, .prog …) can never leak onto the rest of the
   app. The design-token names are the template's own; two that collide with
   main.css's :root (--mid, --bg) are renamed here to --l-mid / --l-bg.
   The page's <header>/<footer> come from the shared app fragments and are
   styled by main.css — this file deliberately omits any nav/footer styling.
   ══════════════════════════════════════════════════════════════════════════ */

.legal-page{
  --o:#FF4D00;--oh:#E54400;--op:#FFF3EE;--ob:#FFCBAD;
  --nv:#0B1527;--nvh:#1B2942;--nvp:#EEF1F6;
  --dk:#111827;--tx:#374151;--l-mid:#4B5563;--gr:#6B7280;--gl:#9CA3AF;
  --bd:#E5E7EB;--bd2:#EDEFF2;--l-bg:#F5F7FA;--su:#fff;
  --gn:#059669;--gp:#ECFDF5;--gb:#A7F3D0;
  --am:#F59E0B;--ap:#FFFBEB;--ab:#FDE68A;
  --bl:#2563EB;--bp:#EFF6FF;--bb:#BFDBFE;
  line-height:1.6;
}

/* progres czytania */
.legal-page .prog{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,#FF6B2B,#FF3200);width:0;z-index:400;transition:width .1s linear}

.legal-page .wrap{max-width:1160px;margin:0 auto;padding:22px 24px 90px}

/* breadcrumb */
.legal-page .bc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.legal-page .bc a{font-size:13px;color:var(--gr);text-decoration:none;transition:color .15s;display:inline-flex;align-items:center;gap:6px}
.legal-page .bc a:hover{color:var(--o)}
.legal-page .bc a svg{width:13px;height:13px}
.legal-page .bc .sep{color:var(--gl);font-size:12px}
.legal-page .bc .cur{font-size:13px;color:var(--l-mid);font-weight:600}

/* header dokumentu */
.legal-page .dhead{background:var(--su);border:1px solid var(--bd);border-radius:18px;padding:30px 32px;margin-bottom:14px;position:relative;overflow:hidden}
.legal-page .dhead::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#FF6B2B,#FF3200)}
.legal-page .dh-eye{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--o);margin-bottom:14px}
.legal-page .dh-eye svg{width:14px;height:14px}
.legal-page .dh-t{font-size:32px;font-weight:900;letter-spacing:-.045em;line-height:1.12;color:var(--dk)}
.legal-page .dh-s{font-size:15px;color:var(--gr);margin-top:10px;line-height:1.6;max-width:640px}
.legal-page .dh-meta{display:flex;align-items:center;gap:10px;margin-top:20px;flex-wrap:wrap}
.legal-page .chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--l-mid);background:var(--l-bg);border:1px solid var(--bd);padding:7px 13px;border-radius:20px}
.legal-page .chip svg{width:13px;height:13px;color:var(--gl)}
.legal-page .chip strong{color:var(--dk);font-weight:700}
.legal-page .dh-act{display:flex;gap:9px;margin-top:20px;flex-wrap:wrap}
.legal-page .b{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;padding:10px 16px;border-radius:10px;border:1.5px solid var(--bd);background:var(--su);color:var(--l-mid);cursor:pointer;font-family:inherit;text-decoration:none;transition:all .15s}
.legal-page .b svg{width:15px;height:15px}
.legal-page .b:hover{border-color:var(--nv);color:var(--nv);background:var(--nvp)}

/* layout */
.legal-page .grid{display:grid;grid-template-columns:1fr 268px;gap:30px;align-items:start}
.legal-page .doc{min-width:0;background:var(--su);border:1px solid var(--bd);border-radius:18px;padding:12px 40px 40px}

/* sekcje */
.legal-page .sec{padding:30px 0;border-bottom:1px solid var(--bd2);scroll-margin-top:84px}
.legal-page .sec:last-child{border-bottom:none}
.legal-page .sec-h{display:flex;align-items:baseline;gap:14px;font-size:21px;font-weight:800;letter-spacing:-.03em;color:var(--dk);line-height:1.3;position:relative}
.legal-page .sec-n{font-size:14px;font-weight:800;color:var(--o);flex-shrink:0;font-variant-numeric:tabular-nums;min-width:34px}
.legal-page .sec-anchor{margin-left:auto;color:var(--gl);opacity:0;transition:opacity .15s;flex-shrink:0;align-self:center}
.legal-page .sec-anchor svg{width:16px;height:16px}
.legal-page .sec-h:hover .sec-anchor{opacity:1}
.legal-page .sec-anchor:hover{color:var(--o)}
.legal-page .sec-b{margin-top:16px;padding-left:48px}
.legal-page .sec-b p{font-size:15px;line-height:1.75;color:var(--tx);margin-bottom:14px}
.legal-page .sec-b p:last-child{margin-bottom:0}
.legal-page .sec-b .sub{font-size:15.5px;font-weight:800;color:var(--dk);margin:22px 0 12px;letter-spacing:-.01em}
.legal-page .sec-b a{color:var(--o);text-decoration:none;font-weight:600;border-bottom:1px solid var(--ob)}
.legal-page .sec-b a:hover{border-bottom-color:var(--o)}
.legal-page .sec-b ul,.legal-page .sec-b ol{margin:0 0 14px;padding-left:4px;list-style:none}
.legal-page .sec-b ul li,.legal-page .sec-b ol li{position:relative;padding-left:26px;font-size:15px;line-height:1.7;color:var(--tx);margin-bottom:9px}
.legal-page .sec-b ul li::before{content:'';position:absolute;left:4px;top:11px;width:6px;height:6px;border-radius:50%;background:var(--o)}
.legal-page .sec-b ol{counter-reset:li}
.legal-page .sec-b ol li{counter-increment:li}
.legal-page .sec-b ol li::before{content:counter(li);position:absolute;left:0;top:2px;font-size:11px;font-weight:800;color:var(--o);background:var(--op);width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}

/* definicje */
.legal-page .def{margin:0 0 14px;border-left:2px solid var(--bd);padding-left:0}
.legal-page .def dt{font-size:14.5px;font-weight:800;color:var(--dk);margin-top:14px;padding-left:16px;position:relative}
.legal-page .def dt:first-child{margin-top:0}
.legal-page .def dt::before{content:'';position:absolute;left:-2px;top:3px;width:2px;height:15px;background:var(--o)}
.legal-page .def dd{font-size:14.5px;line-height:1.65;color:var(--l-mid);padding-left:16px;margin-top:3px}

/* callout */
.legal-page .call{display:flex;gap:12px;align-items:flex-start;border-radius:13px;padding:15px 17px;margin:18px 0;border:1px solid}
.legal-page .call svg{width:17px;height:17px;flex-shrink:0;margin-top:2px}
.legal-page .call strong{display:block;font-size:14px;font-weight:800;margin-bottom:3px}
.legal-page .call div{font-size:13.5px;line-height:1.65}
.legal-page .call a{font-weight:700;border-bottom:1px solid currentColor;text-decoration:none}
.legal-page .call.info{background:var(--bp);border-color:var(--bb);color:#1E40AF}
.legal-page .call.info svg{color:var(--bl)}
.legal-page .call.info strong{color:#1E3A8A}
.legal-page .call.warn{background:var(--ap);border-color:var(--ab);color:#92400E}
.legal-page .call.warn svg{color:var(--am)}
.legal-page .call.ok{background:var(--gp);border-color:var(--gb);color:#047857}
.legal-page .call.ok svg{color:var(--gn)}

/* tabela */
.legal-page .tw{overflow-x:auto;margin:16px 0;border:1px solid var(--bd);border-radius:12px}
.legal-page table{width:100%;border-collapse:collapse;font-size:13.5px}
.legal-page thead th{background:var(--l-bg);text-align:left;font-weight:800;color:var(--dk);padding:12px 15px;border-bottom:1px solid var(--bd);white-space:nowrap}
.legal-page tbody td{padding:11px 15px;border-bottom:1px solid var(--bd2);color:var(--l-mid);line-height:1.5}
.legal-page tbody tr:last-child td{border-bottom:none}
.legal-page tbody tr:nth-child(even){background:#FAFBFC}

/* TOC */
.legal-page .toc{position:sticky;top:84px}
.legal-page .toc-card{background:var(--su);border:1px solid var(--bd);border-radius:16px;overflow:hidden}
.legal-page .toc-h{padding:14px 17px;border-bottom:1px solid var(--bd);font-size:12px;font-weight:800;color:var(--l-mid);letter-spacing:.03em;text-transform:uppercase;display:flex;align-items:center;gap:8px}
.legal-page .toc-h svg{width:14px;height:14px;color:var(--o)}
.legal-page .toc-list{list-style:none;padding:8px;max-height:calc(100vh - 180px);overflow-y:auto}
.legal-page .toc-list::-webkit-scrollbar{width:4px}
.legal-page .toc-list::-webkit-scrollbar-thumb{background:var(--bd);border-radius:4px}
.legal-page .toc-a{display:flex;gap:10px;align-items:baseline;padding:8px 11px;border-radius:9px;text-decoration:none;transition:all .14s}
.legal-page .toc-a:hover{background:var(--l-bg)}
.legal-page .toc-n{font-size:11px;font-weight:800;color:var(--gl);flex-shrink:0;font-variant-numeric:tabular-nums;min-width:26px;transition:color .14s}
.legal-page .toc-l{font-size:13px;font-weight:600;color:var(--gr);line-height:1.4;transition:color .14s}
.legal-page .toc-a.on{background:var(--op)}
.legal-page .toc-a.on .toc-n{color:var(--o)}
.legal-page .toc-a.on .toc-l{color:var(--dk);font-weight:700}

/* toggle mobilny TOC */
.legal-page .toc-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:var(--su);border:1px solid var(--bd);border-radius:12px;padding:14px 17px;font-family:inherit;font-size:14px;font-weight:700;color:var(--dk);cursor:pointer;margin-bottom:14px}
.legal-page .toc-toggle svg{width:18px;height:18px;color:var(--o);transition:transform .2s}
.legal-page .toc-toggle.open svg{transform:rotate(180deg)}

/* back to top */
.legal-page .top{position:fixed;bottom:24px;right:24px;width:46px;height:46px;border-radius:12px;background:var(--nv);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(11,21,39,.3);opacity:0;pointer-events:none;transform:translateY(10px);transition:all .25s;z-index:200}
.legal-page .top.show{opacity:1;pointer-events:auto;transform:none}
.legal-page .top:hover{background:var(--nvh)}
.legal-page .top svg{width:19px;height:19px}

@media(max-width:920px){
  .legal-page .grid{grid-template-columns:1fr}
  .legal-page .toc{position:static;order:-1}
  .legal-page .toc-toggle{display:flex}
  .legal-page .toc-card{display:none;margin-bottom:14px}
  .legal-page .toc-card.open{display:block}
  .legal-page .toc-list{max-height:340px}
  .legal-page .doc{padding:8px 22px 28px}
}
@media(max-width:560px){
  .legal-page .wrap{padding:18px 15px 70px}
  .legal-page .dhead{padding:24px 20px}
  .legal-page .dh-t{font-size:25px}
  .legal-page .sec-b{padding-left:0}
  .legal-page .sec-h{font-size:18px}
  .legal-page .def dd,.legal-page .sec-b p,.legal-page .sec-b ul li{font-size:14.5px}
}
@media print{
  .legal-page .prog,.legal-page .top,.legal-page .toc,.legal-page .toc-toggle,.legal-page .dh-act,.legal-page .bc,
  .legal-page .nav,.legal-page footer{display:none!important}
  .legal-page{background:#fff}
  .legal-page .grid{grid-template-columns:1fr}
  .legal-page .doc,.legal-page .dhead{border:none;border-radius:0;padding:0}
  .legal-page .dhead::before{display:none}
  .legal-page .sec{break-inside:avoid}
}
