/*
 * Calendário de postagens: páginas (capa / postagem / calendário) + impressão em PDF.
 * Cada página é desenhada em 1280x720 (16:9, igual aos slides) e reduzida na tela com --s.
 */

.deck-wrap { max-width: 1100px; margin: 0 auto; }
.deck-slot {
  position: relative;
  width: 100%;
  height: calc(720px * var(--s, 0.6));
  margin: 0 0 18px;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 6px 22px rgba(0,0,0,.28);
}
.deck-page {
  position: absolute; left: 0; top: 0;
  width: 1280px; height: 720px;
  transform: scale(var(--s, 0.6)); transform-origin: 0 0;
  background: var(--bg, #F5E9D0);
  color: var(--fg, #fff);
  font-family: "Albert Sans", Arial, Helvetica, sans-serif;
  overflow: hidden;
}

/* ----- capa ----- */
.deck-cover { display: flex; flex-direction: column; justify-content: center; padding: 0 110px; }
.dc-client { position: absolute; left: 70px; top: 56px; font-size: 22px; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.dc-title { margin: 0; font-size: 92px; line-height: 1.05; font-weight: 700; letter-spacing: -.02em; }
.dc-month { margin-top: 18px; font-size: 56px; font-weight: 300; opacity: .85; }

/* ----- página de postagem ----- */
.dp-left { position: absolute; left: 64px; top: 52px; bottom: 44px; width: 600px; display: flex; flex-direction: column; }
.dp-head { margin-bottom: 22px; }
.dp-title { margin: 0; font-size: 44px; font-weight: 700; letter-spacing: -.01em; }
.dp-date { margin-top: 6px; font-size: 20px; opacity: .65; }
.dp-cap-label { font-size: 22px; font-weight: 700; margin-bottom: 10px; }
.dp-cap { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.38; flex: 1; overflow: hidden; }
.dp-cap.cap-xl { font-size: 24px; }
.dp-cap.cap-l  { font-size: 20px; }
.dp-cap.cap-m  { font-size: 17px; }
.dp-cap.cap-s  { font-size: 14.5px; line-height: 1.32; }
.dp-cap-empty { opacity: .4; font-style: italic; }
.dp-art { position: absolute; right: 56px; top: 36px; bottom: 36px; width: 520px; }
.dp-art-grid { display: grid; gap: 10px; height: 100%; grid-auto-rows: minmax(0, 1fr); align-content: center; }
.dp-art-grid img { width: 100%; height: 100%; object-fit: contain; border-radius: 10px; background: rgb(var(--ovrgb, 255 255 255) / .05); }
.dp-art-tag { position: absolute; left: 12px; bottom: 12px; background: rgba(0,0,0,.6); color: #fff; font-size: 15px; font-weight: 600; padding: 5px 12px; border-radius: 999px; }
.dp-art-empty { height: 100%; border: 2px dashed rgb(var(--ovrgb, 255 255 255) / .25); border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 20px; opacity: .5; }

/* ----- página do calendário ----- */
.dcal-head { position: absolute; left: 48px; top: 28px; right: 48px; font-size: 26px; font-weight: 700; }
.dcal-head span { font-weight: 400; opacity: .75; }
.dcal-weekdays { position: absolute; left: 48px; right: 48px; top: 82px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; text-align: center; font-size: 15px; opacity: .6; text-transform: uppercase; letter-spacing: .08em; }
.dcal-grid { position: absolute; left: 48px; right: 48px; top: 110px; bottom: 28px; display: grid; grid-template-columns: repeat(7, 1fr); grid-auto-rows: minmax(0, 1fr); gap: 6px; }
.dcal-cell { background: rgb(var(--ovrgb, 255 255 255) / .06); border-radius: 8px; padding: 6px 7px; overflow: hidden; display: flex; flex-direction: column; gap: 4px; min-height: 0; }
.dcal-cell.dcal-out { opacity: .3; }
.dcal-cell.dcal-has { background: rgb(var(--ovrgb, 255 255 255) / .13); }
.dcal-day { font-size: 14px; font-weight: 700; opacity: .8; }
.dcal-chip { display: flex; align-items: center; gap: 6px; background: rgb(var(--ovrgb, 255 255 255) / .16); border-radius: 6px; padding: 2px 6px 2px 2px; font-size: 13px; font-weight: 600; min-height: 0; }
.dcal-chip img, .dcal-noimg { width: 26px; height: 30px; object-fit: cover; border-radius: 4px; flex: none; background: rgb(var(--ovrgb, 255 255 255) / .12); }
.dcal-chip small { display: block; font-weight: 400; opacity: .65; font-size: 11px; }

/* ----- impressão / PDF ----- */
#printDeck { display: none; }
@media print {
  @page { size: 1280px 720px; margin: 0; }
  html, body { background: #fff !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important; }
  body.printing-deck > *:not(#printDeck) { display: none !important; }
  body.printing-deck #printDeck { display: block; }
  .deck-slot { width: 1280px !important; height: 720px !important; margin: 0 !important; border-radius: 0; box-shadow: none; break-after: page; page-break-after: always; }
  .deck-slot:last-child { break-after: auto; page-break-after: auto; }
  .deck-page { transform: none !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
