/* Carta impressa 90 × 135 mm (proporção 2:3 do modelo aprovado). Todas as medidas em "u" = largura da carta / 1024. */
@font-face { font-family: 'Poppins'; font-weight: 500; font-display: swap; src: url('../fonts/poppins-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-weight: 600; font-display: swap; src: url('../fonts/poppins-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-weight: 700; font-display: swap; src: url('../fonts/poppins-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-weight: 800; font-display: swap; src: url('../fonts/poppins-latin-800-normal.woff2') format('woff2'); }

.print-body { background: var(--ground); display: block; }
.print-toolbar { padding: 16px 0; background: var(--surface); border-bottom: 1px solid var(--border); }
.print-toolbar p { margin: 0 0 8px; }

.pcard {
  --u: calc(var(--cw) / 1024);
  --navy-card: #0B2559;
  --acc: #118A92; --pill-a: #26C2C2; --pill-b: #1796A6; --pill-fg: #fff;
  width: var(--cw); height: calc(var(--cw) * 1.5); box-sizing: border-box; position: relative; overflow: hidden; break-inside: avoid;
  display: flex; flex-direction: column; color: var(--navy-card);
  background: linear-gradient(180deg, #0B2559 0%, #0C3166 100%);
  font-family: 'Poppins', var(--font-body); border-radius: calc(40 * var(--u));
}
.pcard[data-tone="green"] { --acc: #1E9A5A; --pill-a: #44C95C; --pill-b: #1FA35A; }
.pcard[data-tone="blue"] { --acc: #1A6FC4; --pill-a: #2F93F0; --pill-b: #1E6FD0; }
.pcard[data-tone="amber"] { --acc: #B8870F; --pill-a: #F6C73A; --pill-b: #E3A61A; --pill-fg: #33260A; }
.pcard[data-tone="purple"] { --acc: #6B40BA; --pill-a: #A173F2; --pill-b: #7B4EDB; }
.pcard[data-tone="orange"] { --acc: #B5561C; --pill-a: #F79D3F; --pill-b: #E6771F; --pill-fg: #3A1C05; }

/* Cabeçalho escuro com logotipo, número da carta e etiqueta da área */
.pcard__head { position: relative; height: calc(186 * var(--u)); flex: none; color: #fff; overflow: hidden;
  background: linear-gradient(100deg, #0A2255 0%, #0C3A6B 52%, var(--acc) 100%); }
.pcard__hex { position: absolute; color: #fff; opacity: .28; pointer-events: none; }
.pcard__head .pcard__hex { right: calc(-10 * var(--u)); top: calc(-24 * var(--u)); width: calc(250 * var(--u)); height: auto; color: #C6F36A; opacity: .22; }
.pcard__logo { position: absolute; left: calc(50 * var(--u)); top: calc(80 * var(--u)); transform: translateY(-50%); display: inline-flex; align-items: center; gap: calc(12 * var(--u)); }
.pcard__logo-icon { width: calc(68 * var(--u)); height: auto; }
.pcard__logo-text { font-weight: 700; font-size: calc(84 * var(--u)); line-height: 1; letter-spacing: -.01em; }
.pcard__logo-text b { color: #A6E22E; font-weight: 800; }
.pcard__sep { position: absolute; left: calc(412 * var(--u)); top: calc(44 * var(--u)); width: calc(3 * var(--u)); height: calc(72 * var(--u)); background: rgba(255, 255, 255, .4); }
.pcard__meta { position: absolute; left: calc(442 * var(--u)); top: calc(80 * var(--u)); transform: translateY(-50%); font-size: calc(30 * var(--u)); font-weight: 600; white-space: nowrap; }
.pcard__area { position: absolute; right: calc(40 * var(--u)); top: calc(80 * var(--u)); transform: translateY(-50%); padding: calc(11 * var(--u)) calc(26 * var(--u)); border-radius: 99px;
  background: linear-gradient(135deg, var(--pill-a), var(--pill-b)); color: var(--pill-fg); font-size: calc(30 * var(--u)); font-weight: 700; white-space: nowrap; box-shadow: inset 0 0 0 calc(2 * var(--u)) rgba(255, 255, 255, .35); }
.pcard__area--long { font-size: calc(21 * var(--u)); padding: calc(11 * var(--u)) calc(20 * var(--u)); }

/* Painel branco com cantos arredondados em cima, sobre o cabeçalho */
.pcard__body { position: relative; z-index: 1; flex: 1; min-height: 0; display: flex; flex-direction: column; margin: calc(-30 * var(--u)) calc(9 * var(--u)) 0; background: #fff; border-radius: calc(34 * var(--u)) calc(34 * var(--u)) 0 0; overflow: hidden; }

/* Título */
.pcard__title { margin: 0; flex: none; height: calc(150 * var(--u)); padding: calc(10 * var(--u)) calc(44 * var(--u)) 0; display: flex; align-items: center; font-family: 'Poppins', var(--font-body); font-weight: 800; letter-spacing: -.015em; line-height: 1.06; color: var(--navy-card); }
.pcard__title--s1 { font-size: calc(80 * var(--u)); white-space: nowrap; }
.pcard__title--s2 { font-size: calc(66 * var(--u)); white-space: nowrap; }
.pcard__title--s3 { font-size: calc(54 * var(--u)); white-space: nowrap; }
.pcard__title--s4 { font-size: calc(54 * var(--u)); }

/* Área da ilustração (azul-marinho com hexágonos discretos) */
.pcard__art { position: relative; margin: 0 calc(34 * var(--u)); flex: 1; min-height: 0; border-radius: calc(32 * var(--u)); overflow: hidden;
  background: radial-gradient(circle at 50% 40%, #12306F 0%, #0C2257 55%, #0A1C49 100%); display: flex; align-items: center; justify-content: center; }
.pcard__art .pcard__hex { color: #6FA6FF; opacity: .2; }
.pcard__hex--l { left: calc(-40 * var(--u)); top: calc(150 * var(--u)); width: calc(300 * var(--u)); height: auto; }
.pcard__hex--r { right: calc(-60 * var(--u)); bottom: calc(40 * var(--u)); width: calc(330 * var(--u)); height: auto; }
.pcard__svg, .pcard__art img { position: relative; display: block; height: 94%; width: auto; max-width: 92%; object-fit: contain; }

/* Texto */
.pcard__text { margin: 0; flex: none; height: calc(132 * var(--u)); padding: calc(24 * var(--u)) calc(44 * var(--u)) 0; font-size: calc(31 * var(--u)); line-height: 1.42; color: #1D3560; font-weight: 500; }

/* Linha inferior: caixa "aponte a câmera" + QR */
.pcard__foot { flex: none; height: calc(286 * var(--u)); display: flex; align-items: center; gap: calc(22 * var(--u)); padding: 0 calc(34 * var(--u)) calc(14 * var(--u)); }
.pcard__how { flex: 1; min-width: 0; height: calc(236 * var(--u)); box-sizing: border-box; display: flex; align-items: center; gap: calc(20 * var(--u)); padding: 0 calc(22 * var(--u));
  border-radius: calc(30 * var(--u)); background: linear-gradient(135deg, #EEF7FC, #E2F0F8); border: calc(3 * var(--u)) solid #CFE3EE; }
.pcard__phone { width: calc(84 * var(--u)); height: auto; flex: none; }
.pcard__aim { margin: 0; font-weight: 700; font-size: calc(32 * var(--u)); line-height: 1.2; color: var(--navy-card); }
.pcard__sub { margin: calc(10 * var(--u)) 0 0; font-size: calc(25 * var(--u)); line-height: 1.3; color: #4F6590; font-weight: 500; }
.pcard__qr { flex: none; width: calc(246 * var(--u)); height: calc(246 * var(--u)); box-sizing: border-box; border: calc(7 * var(--u)) solid #7CC242; border-radius: calc(30 * var(--u)); padding: calc(14 * var(--u)); background: #fff; }
.qr { width: 100%; height: 100%; background: #fff; }
.qr svg { display: block; width: 100%; height: 100%; }

/* Rodapé institucional (mesma cor da moldura) */
.pcard__inst { position: relative; flex: none; height: calc(176 * var(--u)); display: flex; align-items: center; gap: calc(24 * var(--u)); padding: 0 calc(50 * var(--u)); color: #fff; overflow: hidden;
  background: linear-gradient(95deg, #0B2559 0%, #0C3166 100%); }
.pcard__leaf { width: calc(84 * var(--u)); height: calc(84 * var(--u)); flex: none; }
.pcard__inst-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: calc(6 * var(--u)); line-height: 1.2; }
.pcard__inst-text strong { font-size: calc(30 * var(--u)); font-weight: 700; }
.pcard__inst-text span { font-size: calc(25 * var(--u)); font-weight: 500; opacity: .85; }
.pcard__num { flex: none; padding: calc(16 * var(--u)) calc(46 * var(--u)); border-radius: calc(24 * var(--u)); font-size: calc(36 * var(--u)); font-weight: 700;
  background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 calc(3 * var(--u)) rgba(255, 255, 255, .45); }

/* Na tela: cartas com sombra */
.sheet { display: flex; flex-wrap: wrap; gap: 20px; justify-content: center; padding: 20px; }
.sheet .pcard { box-shadow: 0 2px 14px rgba(18, 33, 63, .18); }

@page single { size: 90mm 135mm; margin: 0; }
@page a4 { size: A4; margin: 8mm 5mm; }
.sheet { --cw: 90mm; --cols: 2; }
.sheet--n4 { --cw: 90mm; --cols: 2; }
.sheet--n6 { --cw: 65mm; --cols: 3; }
.sheet--n9 { --cw: 60mm; --cols: 3; }
.print-size { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
@media print {
  .no-print { display: none !important; }
  .print-body { background: #fff; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .sheet { padding: 0; gap: 0; display: block; }
  .sheet .pcard { box-shadow: none; }
  .sheet--single { page: single; }
  .sheet--single .pcard { page-break-after: always; }
  .sheet--a4 { page: a4; display: grid; grid-template-columns: repeat(var(--cols), var(--cw)); grid-auto-rows: calc(var(--cw) * 1.5); justify-content: center; gap: 1mm; break-after: page; }
  .sheet--a4:last-of-type { break-after: auto; }
}

/* Imagem da molécula: preenche o painel (as imagens têm a mesma proporção, ~1,48:1) */
.pcard__art img { height: 100%; width: 100%; max-width: none; object-fit: cover; }

/* Descrições longas (3 linhas) cabem na mesma altura com letra um pouco menor */
.pcard__text--long { font-size: calc(27 * var(--u)); line-height: 1.36; }

/* Barra de opções (só na tela) */
.print-toolbar { position: sticky; top: 0; z-index: 5; }
.print-toolbar__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.print-toolbar__text { flex: 1 1 380px; min-width: 0; }
.print-toolbar__text h1 { margin: 0 0 4px; }
.print-toolbar__text p { margin: 0; font-size: .9rem; }
.print-toolbar .actions { display: flex; gap: 8px; margin: 0; }
.print-size { display: flex; align-items: center; gap: 8px; }
.print-size__label { font-size: .85rem; font-weight: 600; color: var(--muted); }
.print-size__opt { display: flex; flex-direction: column; align-items: center; min-width: 92px; padding: 6px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: inherit; text-decoration: none; line-height: 1.2; }
.print-size__opt strong { font-size: 1.15rem; }
.print-size__opt small { font-size: .75rem; color: var(--muted); }
.print-size__opt:hover { border-color: var(--navy); }
.print-size__opt.is-active { background: var(--navy); border-color: var(--navy); color: #fff; }
.print-size__opt.is-active small { color: rgba(255, 255, 255, .8); }

/* Na tela: 4 por folha mostra as folhas A4; 6 e 9 mostram 5 cartas por linha */
@media screen {
  .sheets { counter-reset: folha; padding: 24px 20px 48px; }
  .sheets--n4 { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px 28px; }
  .sheets--n4 .sheet { --cw: min(90mm, calc((100vw - 120px) / 2)); position: relative; counter-increment: folha; display: grid; grid-template-columns: repeat(2, var(--cw)); grid-auto-rows: calc(var(--cw) * 1.5); justify-content: center; align-content: start; gap: 1mm; padding: 13mm 15mm; box-sizing: border-box; background: #fff; border-radius: 4px; box-shadow: 0 2px 16px rgba(18, 33, 63, .2); }
  .sheets--n4 .sheet::before { content: 'Folha ' counter(folha); position: absolute; top: -26px; left: 0; font-size: .85rem; font-weight: 600; color: var(--muted); }
  .sheets--n4 .sheet .pcard { box-shadow: none; outline: 1px dashed #C5D3CF; }
  .sheets--n6, .sheets--n9 { --cw: min(60mm, calc((100vw - 140px) / 5)); display: grid; grid-template-columns: repeat(5, var(--cw)); grid-auto-rows: calc(var(--cw) * 1.5); justify-content: center; gap: 20px; }
  .sheets--n6 { --cw: min(65mm, calc((100vw - 140px) / 5)); }
  .sheets--n6 .sheet, .sheets--n9 .sheet { display: contents; --cw: inherit; }
}
