/* Інструмент «QR-код для оплати»: групи форми, плитки рамок із мініатюрами, теми, перегляд, завантаження і друк.
   Кольори — з токенів (темна тема). Аркуш друку (.qp-sheet) на екрані прихований; це папір — завжди білий */
.s-form .qp-group{margin-top:0}
.s-form .qp-group+.qp-group{margin-top:18px}
/* у формі правило «.s-form label» сильніше за «.s-tile»: повертаємо плиткам їхню розкладку (значок над підписом) */
.s-form .s-tile{display:flex;margin:0;font-size:13px;min-width:0;overflow-wrap:anywhere}

/* Рамки: мініатюри 48×48. f — рамка, p — біла панель, o — обвід, n — без заливки, l — рядок на рамці,
   d — код і рядок на білому, s — лінія відриву, t — другорядний рядок */
.s-tiles.qp-frames{grid-template-columns:repeat(4,1fr)}
.qp-frames .s-tile{padding:8px 4px;line-height:1.2}
.qp-frames .s-tile svg{width:48px;height:48px}
.qp-th .f,.qp-th .d{fill:currentColor}
.qp-th .p,.qp-th .l{fill:var(--card)}
.qp-th .o{stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.qp-th .n{fill:none}
.qp-th .s{fill:none;stroke:var(--card);stroke-width:1.4;stroke-dasharray:2.2 2;stroke-linecap:round}
.qp-th .t{opacity:.45}
.s-tiles.qp-tiles-3{grid-template-columns:repeat(3,1fr)}
.s-form .qp-shapes{grid-template-columns:3fr 2fr}
/* у вузькій колонці форми підписи «Скруглені», «Квадратні» не вміщаються в плитки поруч: групи стають одна під одною */
@media(max-width:1100px){.s-form .qp-shapes{grid-template-columns:1fr}}

/* Теми: зразок показує кольори рамки (градієнт) і коду; самі кольори ставить скрипт із data-атрибутів кнопки */
.qp-themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(106px,1fr));gap:8px}
.qp-theme{justify-content:flex-start;gap:8px;min-width:0;padding:8px 10px;border:1.5px solid var(--line);border-radius:12px;background:transparent;color:var(--ink);font-size:13px;font-weight:600;line-height:1.2;text-align:left;overflow-wrap:anywhere}
.qp-theme:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--line))}
.qp-theme[aria-pressed="true"]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--brand)}
.qp-theme:focus-visible,.qp-more summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.qp-theme-sw{flex:none;width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,var(--a,#2563eb),var(--a2,#1d4ed8) 56%,var(--b,#0f172a) 56%);box-shadow:0 0 0 1px var(--line)}
.qp-more{margin-top:12px}
.qp-more summary{cursor:pointer;width:fit-content;font-size:14px;font-weight:600;color:var(--brand);border-radius:6px}
.qp-more .hint{margin:10px 0 0}
.s-form #inkWarn{margin:8px 0 0;font-size:14px}

.qp-checks{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:12px}
.s-form .qp-checks label.check{display:flex;align-items:center;gap:8px;margin:4px 0;font-weight:500;cursor:pointer}
.qp-checks label.check input{width:auto;margin:0;accent-color:var(--brand)}
.s-form .qp-checks label.qp-off{color:var(--mute);cursor:default}
/* «Запам'ятати реквізити» з кнопкою «Забути» поруч */
.qp-keep{align-items:center}

/* Перегляд: підкладка, на якій видно межі білої картинки; висока рамка (тент, плакат) вписується за висотою */
.qp-prev{max-width:420px;padding:16px;border-radius:16px;border:1px solid var(--line);background:color-mix(in srgb,var(--line) 45%,var(--card))}
.qp-prev svg{width:auto;height:auto;max-width:100%;max-height:560px;margin:0 auto;border-radius:0;filter:drop-shadow(0 10px 24px rgba(15,23,42,.16))}
.qp-meta{margin:10px 0 0;text-align:center}
.s-result .qp-out{margin-top:16px}
.qp-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.qp-actions button{min-width:0;padding:12px 10px}
.qp-actions .primary{width:auto;margin-top:0}
.qp-actions svg{flex:none}
.qp-actions.qp-print{grid-template-columns:repeat(3,1fr);margin-top:8px}
.qp-print button{gap:6px;padding:10px 6px;font-size:14px}
.qp-out .hint{margin:10px 0 0}
@media(min-width:901px){
  .qp-result{position:sticky;top:82px}
  .qp-prev svg{max-height:max(280px,min(560px,calc(100vh - 430px)))}
}
@media(max-width:560px){
  .s-form .s-tile{font-size:12px}
  .s-tiles.qp-frames{grid-template-columns:repeat(3,1fr)}
  .qp-themes{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:380px){
  .s-form .qp-tiles-3 .s-tile{font-size:11px;padding-left:2px;padding-right:2px}
  .qp-theme{gap:6px;padding:8px}
}
/* на вузькому екрані в кнопках лишається значок і формат */
@media(max-width:480px){.qp-actions .qp-w{display:none}}

/* Аркуш друку. --c — масштаб усього аркуша: 1 там, де браузер виконує @page{margin:0} (аркуш рівно A4), менше в
   Safari, який полів @page не враховує й додає свої. --k — масштаб плаката: A4 — 1, A5 — 0,7, A6 — 0,5;
   --u = 1 мм плаката A4. Розміри тексту й коду — у цих одиницях, тож усі три формати — той самий макет */
.qp-sheet{display:none;--c:1;width:calc(var(--c)*210mm);margin:0;background:#fff;color:#111;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.qp-none{margin:0;padding:20mm 16mm;font-size:12pt}
.qp-poster{--k:1;--u:calc(var(--c)*var(--k)*1mm);--qr:140;--f-title:13;--f-seller:5.4;--f-cap:7.2;--f-amt:12;--f-say:3.9;--ic:10;--f-req:4.1;--f-dt:2.9;--f-foot:2.9;
  box-sizing:border-box;width:calc(var(--u)*210);height:calc(var(--u)*296);padding:calc(var(--u)*13) calc(var(--u)*17) calc(var(--u)*10);
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:calc(var(--u)*3.5);overflow:hidden;
  background:#fff;color:#111;font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.2;text-align:center}
.qp-poster .qp-head{max-width:100%}
.qp-poster .qp-title{margin:0;font-size:calc(var(--u)*var(--f-title));font-weight:800;letter-spacing:-.025em;line-height:1.05;color:#0f172a}
.qp-poster .qp-seller{margin:0;font-size:calc(var(--u)*var(--f-seller));font-weight:600;color:#334155;overflow-wrap:anywhere}
.qp-poster .qp-title+.qp-seller{margin-top:calc(var(--u)*2.2)}
/* код займає 140 мм, а якщо довгі тексти не вміщаються на аркуш — стискається він, а не текст */
.qp-poster .qp-code{flex:0 1 calc(var(--u)*var(--qr));min-height:0;max-width:100%;display:flex;justify-content:center}
.qp-poster .qp-code svg{display:block;width:auto;height:100%;max-width:min(100%,calc(var(--u)*var(--qr)));max-height:100%}
.qp-poster .qp-say:empty{display:none}
.qp-poster .qp-cap{margin:0;font-size:calc(var(--u)*var(--f-cap));font-weight:700;color:#0f172a;overflow-wrap:anywhere}
.qp-poster .qp-amt{margin:0;font-size:calc(var(--u)*var(--f-amt));font-weight:800;letter-spacing:-.02em;line-height:1.05;color:var(--qp-accent,#0f172a)}
.qp-poster .qp-cap+.qp-amt{margin-top:calc(var(--u)*1.8)}
.qp-poster .qp-banks{display:flex;align-items:center;justify-content:center;gap:calc(var(--u)*5);font-size:calc(var(--u)*var(--f-say));font-weight:600;color:#475569}
.qp-poster .qp-icons{display:flex;gap:calc(var(--u)*2.2)}
.qp-poster .qp-icons img{display:block;width:calc(var(--u)*var(--ic));height:calc(var(--u)*var(--ic));border-radius:23%;border:.15mm solid rgba(15,23,42,.16)}
/* реквізити — типографікою документів: дрібна сіра назва поля, значення напівжирним */
.qp-poster .qp-req{align-self:stretch;margin:0;padding:calc(var(--u)*4.4) calc(var(--u)*1) 0;border-top:.3mm solid #111;display:grid;grid-template-columns:auto minmax(0,1fr);gap:calc(var(--u)*1.7) calc(var(--u)*7);align-items:baseline;text-align:left;font-size:calc(var(--u)*var(--f-req));line-height:1.25}
.qp-poster .qp-req dt{font-size:calc(var(--u)*var(--f-dt));text-transform:uppercase;letter-spacing:.05em;color:#666}
.qp-poster .qp-req dd{margin:0;font-weight:600;color:#111;overflow-wrap:anywhere}
.qp-poster .qp-foot{margin:0;font-size:calc(var(--u)*var(--f-foot));text-transform:uppercase;letter-spacing:.08em;color:#666}

/* два A5: плакати повернуті на 90°, між ними лінія відрізу */
.qp-sheet[data-mode="a5"] .qp-slot{position:relative;width:calc(var(--c)*210mm);height:calc(var(--c)*148mm);overflow:hidden;border-right:.25mm dashed #94a3b8;border-bottom:.25mm dashed #94a3b8}
.qp-sheet[data-mode="a5"] .qp-poster{--k:.7;--f-dt:3.3;--f-foot:3.3;position:absolute;left:calc(var(--c)*1.4mm);top:calc(var(--c)*.5mm);transform-origin:0 0;transform:translateX(calc(var(--u)*296)) rotate(90deg)}
/* чотири A6: картки без блоку реквізитів, код і тексти більші */
.qp-sheet[data-mode="a6"]{grid-template-columns:repeat(2,calc(var(--c)*105mm))}
.qp-sheet[data-mode="a6"] .qp-slot{width:calc(var(--c)*105mm);height:calc(var(--c)*148mm);overflow:hidden;border-right:.25mm dashed #94a3b8;border-bottom:.25mm dashed #94a3b8}
.qp-sheet[data-mode="a6"] .qp-poster{--k:.5;--qr:160;--f-title:15.5;--f-seller:7;--f-cap:9.6;--f-amt:15;--f-say:5.4;--ic:15;--f-foot:4.8;padding:calc(var(--u)*15) calc(var(--u)*16) calc(var(--u)*12);gap:calc(var(--u)*4)}
.qp-sheet[data-mode="a6"] .qp-req{display:none}
.qp-sheet[data-mode="a6"] .qp-banks:has(.qp-icons)>span:first-child{display:none}

@media print{
  /* аркуш на всю сторінку: поля задає сам плакат (Safari полів @page не враховує), без колонтитулів браузера */
  @page{size:A4 portrait;margin:0}
  .s-docsec .s-tool-grid{display:none!important}
  .qp-sheet{display:block}
  .qp-sheet[data-mode="a6"]{display:grid}
  /* Safari друкує зі своїми полями: аркуш менший, по центру, з лініями відрізу з усіх боків */
  @supports (-webkit-hyphens:none){
    .qp-sheet{--c:.87;margin:4mm auto 0}
    .qp-sheet[data-mode="a5"],.qp-sheet[data-mode="a6"]{border-top:.25mm dashed #94a3b8;border-left:.25mm dashed #94a3b8}
  }
}
