/*
 * Poukaz — sdílená šablona karty (.gbv) pro stránku /p/<kód>, tisk z prohlížeče
 * a náhled v konfigurátoru. Rozměry v mm, aby tisk seděl 1:1 (bez PDF — rozhodnutí
 * majitele 28. 10. 2026). Předloha: docs/poukazy-navrh/index.tpl.html.
 * Rastr = dlaždice emblému 2×2, shodná s gb4.css blok 23 (python scripts/rastr/gen.py --tile).
 */
.gbv { --gbv-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.2 16.8' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cpath id='v' transform='translate(.445 .475)' d='M4.28 7.45c-0.33,0 -0.59,-0.27 -0.59,-0.6 0,-1.39 0.37,-2.79 1.08,-4.06 0.32,-0.58 0.63,-1.13 0.76,-1.36l0 -0.26c0,0.02 -0.02,0.01 -0.06,0.01l-4.25 0c-0.02,0 -0.04,0.01 -0.05,0.02l0.01 0.23c0.12,0.23 0.4,0.72 0.71,1.26l0.05 0.1c0.71,1.27 1.08,2.68 1.08,4.07 0,0.32 -0.26,0.59 -0.59,0.59 -0.32,0 -0.59,-0.27 -0.59,-0.59 0,-1.19 -0.32,-2.4 -0.93,-3.49l-0.06 -0.1c-0.33,-0.59 -0.63,-1.13 -0.73,-1.31 -0.08,-0.14 -0.12,-0.3 -0.12,-0.46l0 -0.31c0,-0.24 0.07,-0.47 0.21,-0.67 0.22,-0.32 0.6,-0.52 1.01,-0.52l4.25 0c0.24,0 0.47,0.06 0.66,0.18 0.37,0.21 0.58,0.58 0.58,0.99l0 0.33c0,0.16 -0.04,0.32 -0.12,0.47 -0.1,0.18 -0.43,0.77 -0.78,1.4 -0.61,1.09 -0.94,2.3 -0.94,3.49 0,0.33 -0.26,0.59 -0.59,0.59l0 0z'/%3E%3Cg id='l'%3E%3Cuse href='%23v' transform='rotate(180 3.8 4.2)'/%3E%3C/g%3E%3Ccircle id='o' cx='3.8' cy='4.2' r='2.83' fill='none' stroke='%23000' stroke-width='1.18'/%3E%3C/defs%3E%3Cuse href='%23o'/%3E%3Cuse href='%23l' x='7.6'/%3E%3Cuse href='%23v' y='8.4'/%3E%3Cuse href='%23o' x='7.6' y='8.4'/%3E%3C/svg%3E");
  position: relative; overflow: hidden; flex: none; box-sizing: border-box; line-height: 1.3;
  background: var(--bg-v); color: var(--ink); font-family: 'Roboto V1', Roboto, Arial, sans-serif;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
  --ink: #0b2a55; --muted: #5d6b7e; --acc: #2f7424; --bg-v: #ffffff; --stub: #f2f5f8; --perf: #c3ccd8; --hair: #d9dfe7;
  --lg-navy: #202e52; --lg-green: #439944; --lg-gpv-navy: #092857; --lg-gpv-green: #49943C;
  --rs-c: #0b2a55; --rs-a: .05; --notch: #eef1f5; }
.gbv *, .gbv *::before, .gbv *::after { box-sizing: border-box; }
.gbv.v-dark { --ink: #ffffff; --muted: #c3cee0; --acc: #7fd06b; --stub: #061a38; --perf: #35517f; --hair: #2b4a7a;
  --bg-v: linear-gradient(135deg, #0b2a55 0%, #082247 52%, #061a38 100%);
  --lg-navy: #ffffff; --lg-green: #4a9a3c; --lg-gpv-navy: #ffffff; --lg-gpv-green: #5fb04f; --rs-c: #ffffff; --rs-a: .05; }
.gbv.k-coupon .gbv-main { background: linear-gradient(135deg, #2f7424, #245a1c); }   /* bílé písmo ≥ 5 : 1 i přes rastr (kontrola 28. 10. 2026) */
.gbv.k-coupon { --lg-navy: #fff; --lg-green: #bde3b3; --lg-gpv-navy: #fff; --lg-gpv-green: #bde3b3; }
/* Texty sedí v zónách nad podklady (templates/voucher/card.php): slevový poukaz = zelená plocha
   s bílým písmem a bílý ústřižek s tmavým — v obou vzhledech. */
.gbv-zone { position: absolute; inset: 0; }
.gbv.k-coupon .gbv-zm { --ink: #ffffff; --muted: #f1f8ee; --acc: #ffffff; }
.gbv.k-coupon .gbv-zs { --ink: #0b2a55; --muted: #46546a; }
.gbv.k-coupon .gbv-stub { background: #fff; }
.gbv-a { position: absolute; }
.gbv-main { position: absolute; left: 0; top: 0; bottom: 0; }
.gbv-logo { display: block; height: 12mm; width: auto; overflow: visible; }
.gbv-lbl { font-family: 'Bebas Neue', Arial, sans-serif; letter-spacing: .15em; color: var(--acc); white-space: nowrap; line-height: 1; text-transform: uppercase; }
.gbv-val { font-family: 'Bebas Neue', Arial, sans-serif; line-height: .84; color: var(--ink); white-space: nowrap; letter-spacing: .005em; }
.gbv-k { display: block; font-size: 2.15mm; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); line-height: 1.2; }
.gbv-nm { font-size: 4.3mm; line-height: 1.25; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 56mm; display: block; }
.gbv-msg { font-style: italic; color: var(--ink); line-height: 1.32; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.gbv-small { font-size: 2.65mm; line-height: 1.35; color: var(--muted); }
.gbv-code { font-size: 3.6mm; letter-spacing: .12em; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; text-align: center; }
.gbv-qr { background: #fff; border-radius: 2.2mm; padding: 1.4mm; }
.gbv-qr svg { display: block; width: 100%; height: 100%; }
.gbv-rs { position: absolute; pointer-events: none; background: var(--rs-c); opacity: var(--rs-a);
  /* dlaždice 2 × 2 = buňka 20 × 22 px patičky webu (gb4.css blok 23) převedená na mm */
  -webkit-mask: var(--gbv-tile) 0 0 / 10.6mm 11.7mm repeat, var(--fade, linear-gradient(#000, #000));
  -webkit-mask-composite: source-in; mask: var(--gbv-tile) 0 0 / 10.6mm 11.7mm repeat, var(--fade, linear-gradient(#000, #000)); mask-composite: intersect; }
.gbv-stub { position: absolute; top: 0; right: 0; bottom: 0; background: var(--stub); }
.gbv-perf { position: absolute; top: 0; bottom: 0; border-left: .35mm dashed var(--perf); }
.gbv-notch { position: absolute; width: 7mm; height: 7mm; border-radius: 50%; background: var(--notch); }
.gbv-hl { position: absolute; height: .6mm; background: #4a9a3c; border-radius: .3mm; }
.gbv-cob { position: absolute; display: flex; flex-direction: column; align-items: flex-end; gap: 1.2mm; text-align: right; max-height: 23mm; overflow: hidden; }   /* logo 11 + 3 řádky → končí nad hodnotou (37,5 mm) */
.gbv-cob img { display: block; max-height: 11mm; max-width: 40mm; object-fit: contain; }
.gbv-cob-t { font-size: 2.65mm; line-height: 1.35; color: var(--ink); max-width: 50mm; overflow: hidden;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.gbv-step { display: grid; grid-template-columns: 7mm 1fr; gap: 2.4mm; align-items: start; margin-bottom: 3.4mm; font-size: 3.25mm; line-height: 1.38; }
.gbv-step i { font-style: normal; display: grid; place-items: center; width: 6.2mm; height: 6.2mm; border-radius: 50%; background: #3c8431; color: #fff; font: 3.6mm/1 'Bebas Neue', Arial, sans-serif; }
.gbv-terms { margin: 0; padding: 0 0 0 3.6mm; font-size: 2.85mm; line-height: 1.45; color: var(--ink); }
.gbv-terms li { margin-bottom: 1mm; }
.gbv-bc { background: #fff; border-radius: 1.6mm; padding: 1.6mm 2mm 1.2mm; box-shadow: 0 0 0 .25mm var(--hair); }
.gbv-bc svg { display: block; }
.gbv-bc-t { font: 2.6mm/1 'Roboto V1', Roboto, Arial, sans-serif; letter-spacing: .14em; color: #0b2a55; text-align: center; margin-top: 1mm; font-variant-numeric: tabular-nums; }
.gbv-dl { width: 210mm; height: 99mm; }
.gbv-a5 { width: 210mm; height: 148mm; }
.gbv-a4 { width: 210mm; height: 297mm; }

/* tisk: jen poukazy, přesný formát stránky nastavuje šablona (@page) */
@media print {
  .gbv { --notch: #ffffff; box-shadow: none !important; }
  .no-print { display: none !important; }
}

/* ---------- stránka poukazu a konfigurátor (v4) ---------- */
.vp-wrap { max-width: 1100px; margin: 0 auto; padding-top: 8px; padding-bottom: 40px; }   /* boční okraj dává .gb-container */
.vp-stage { width: 100%; max-width: 210mm; overflow: hidden; border-radius: 12px; }   /* nikdy širší než karta (scale ≤ 1) */
.vp-scale { transform-origin: 0 0; }
.vp-grid { display: grid; gap: 24px; align-items: start; }
@media (min-width: 900px) { .vp-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.vp-card { background: #fff; border: 1px solid #d9dfe7; border-radius: 14px; padding: 20px; }
.vp-bal { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.vp-bal strong { font: 40px/1 'Bebas Neue', Arial, sans-serif; color: #082247; font-weight: 400; }
.vp-bar { height: 8px; border-radius: 99px; background: #e5f1e1; margin: 10px 0 6px; overflow: hidden; }
.vp-bar span { display: block; height: 100%; background: #3c8431; }
.vp-actions { display: grid; gap: 10px; margin-top: 16px; }
.vp-btn { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 18px; border-radius: 999px; border: 1px solid #d9dfe7; background: #fff; color: #082247; font: inherit; font-size: 16px; text-decoration: none; cursor: pointer; width: 100%; }
.vp-btn:hover { border-color: #082247; }
.vp-btn.pri { background: #3c8431; border-color: #3c8431; color: #fff; }
.vp-btn.pri:hover { background: #2f7424; }
.vp-btn:focus-visible { outline: 3px solid #4a9a3c; outline-offset: 2px; }
.vp-muted { color: #5d6b7e; font-size: 14px; }
.vp-alert { border-radius: 10px; padding: 12px 14px; margin: 0 0 16px; font-size: 15px; }
.vp-alert.err { background: #fbe9e7; color: #7a1d14; }
.vp-alert.ok { background: #e5f1e1; color: #1f5418; }
.vp-form { display: grid; gap: 18px; }
.vp-field > label, .vp-custom > label, .vp-legend { display: block; font-size: 14px; color: #46546a; margin-bottom: 6px; }
.vp-field input[type=text], .vp-field input[type=email], .vp-field input[type=number], .vp-field input[type=datetime-local], .vp-field textarea {
  width: 100%; min-height: 46px; border: 1px solid #c3ccd8; border-radius: 10px; padding: 10px 12px; font: inherit; font-size: 16px; background: #fff; box-sizing: border-box; }
.vp-field textarea { min-height: 72px; resize: vertical; }
.vp-chips { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0; }
.vp-chip { position: relative; }
.vp-chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; margin: 0; }
.vp-chip span { display: flex; align-items: center; justify-content: center; min-width: 76px; min-height: 46px; padding: 8px 14px; border: 1px solid #c3ccd8; border-radius: 10px; background: #fff; font-size: 16px; }
.vp-chip input:checked + span { border-color: #082247; box-shadow: inset 0 0 0 1px #082247; background: #f3f5f7; }
.vp-chip input:focus-visible + span { outline: 3px solid #4a9a3c; outline-offset: 2px; }
.vp-trust { display: flex; flex-wrap: wrap; gap: 6px 16px; color: #2f7424; font-size: 14px; }
.vp-more summary { cursor: pointer; color: #082247; font-size: 15px; min-height: 44px; display: flex; align-items: center; }
.vp-field-err { color: #b3261e; font-size: 14px; margin-top: 4px; }
.vp-h1 { font: 400 40px/1.05 'Bebas Neue', Arial, sans-serif; letter-spacing: .02em; color: #082247; margin: 8px 0 6px; }
.vp-lead { margin: 0 0 20px; font-size: 16px; }
.vp-preview { display: grid; gap: 14px; min-width: 0; }
.vp-shadow { box-shadow: 0 10px 30px rgba(11, 42, 85, .16); }
.vp-help { font-size: 13px; margin: 4px 0 0; }
.vp-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.vp-custom { margin-top: 12px; }
.vp-suffix { display: flex; align-items: center; gap: 8px; max-width: 260px; }
.vp-suffix span { color: #46546a; font-size: 16px; }
.vp-options { display: grid; gap: 8px; }
.vp-option { position: relative; display: block; }
.vp-option input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.vp-option span { display: grid; gap: 2px; padding: 12px 14px; min-height: 46px; border: 1px solid #c3ccd8; border-radius: 10px; background: #fff; }
.vp-option b { font-weight: 400; font-size: 16px; color: #082247; }
.vp-option small { font-size: 13px; color: #5d6b7e; }
.vp-option input:checked + span { border-color: #082247; box-shadow: inset 0 0 0 1px #082247; background: #f3f5f7; }
.vp-option input:focus-visible + span { outline: 3px solid #4a9a3c; outline-offset: 2px; }
.vp-email { display: grid; gap: 14px; margin-top: 14px; }
.vp-qty input { max-width: 120px; }
.vp-of { font: 18px/1 'Roboto V1', Roboto, Arial, sans-serif; color: #5d6b7e; }
.vp-state { margin: 12px 0 0; font-size: 15px; color: #46546a; }
.vp-state.ok { color: #2f7424; }
.vp-facts { display: grid; gap: 6px; margin: 14px 0 0; }
.vp-facts div { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #e3e8ee; padding-top: 6px; }
.vp-facts dt { color: #5d6b7e; font-size: 14px; }
.vp-facts dd { margin: 0; font-size: 15px; color: #082247; }
.vp-code { letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.vp-check { margin-top: 24px; max-width: 560px; }
.vp-row { display: flex; gap: 10px; flex-wrap: wrap; }
.vp-row input { flex: 1 1 180px; text-transform: uppercase; letter-spacing: .1em; }
.vp-btn-auto { width: auto; flex: 0 0 auto; }
.vp-actions form { margin: 0; }
.vp-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.vp-form legend { padding: 0; }
.vp-more summary { list-style: none; gap: 8px; }
.vp-more summary::-webkit-details-marker { display: none; }
.vp-more summary::before { content: '▸'; color: #3c8431; }
.vp-more[open] summary::before { content: '▾'; }

/* ---------- kategorie Dárkové poukazy: dlaždice s kartou (v4 components/voucher-tiles.php) ---------- */
.vt-page.pl__grid { grid-template-columns: minmax(0, 1fr); }   /* bez filtrů — mřížka přes celou šířku */
.vt-card__img { display: flex; align-items: center; aspect-ratio: 16 / 10; background: #fff; }   /* karta je 2,1 : 1 — čtverec produktové fotky by nechal půl plochy prázdné; bílá jako celá karta produktu */
/* Karta má rozměry v mm; skript dlaždice nastaví --vt-k = šířka dlaždice / šířka karty. */
.vt-stage { --vt-k: .3; position: relative; display: block; width: 100%; aspect-ratio: 210 / 99; }
.vt-scale { position: absolute; left: 0; top: 0; transform-origin: 0 0; transform: scale(var(--vt-k)); }
.vt-scale .gbv { border-radius: 3mm; box-shadow: 0 3mm 9mm rgba(8, 34, 71, .2); --notch: #fff; }
.vt-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin-top: 16px; color: #2f7424; font-size: 14px; }
.vt-trust a { color: #082247; text-decoration: underline; min-height: 44px; display: inline-flex; align-items: center; }
/* ---------- Můj účet › Dárkové poukazy: miniatura karty v tabulce (v2 pages/documents/voucher-list.php) ---------- */
.vm-row { display: flex; align-items: center; gap: 12px; }
.vm-thumb { flex: 0 0 120px; width: 120px; }
.vm-thumb .vt-stage { --vt-k: .151; }
.vm-thumb .gbv { border-radius: 4mm; box-shadow: 0 0 0 1.5mm #d9dfe7; --notch: #ffffff; }
.vm-code { font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.vm-act { display: inline-flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
@media (max-width: 599px) { .vm-thumb { flex-basis: 96px; width: 96px; } .vm-thumb .vt-stage { --vt-k: .121; } }
