/* Relatório Semanal em slides (assets/weekly-deck.js). Cada slide mede 1280 × 720 px, que é a folha
   338,67 × 190,5 mm do PDF; na tela ele é reduzido por --wd-scale.
   Estrutura do modelo cp029 · Semana 52, com a linguagem do Overview (overview-reference-style.ts):
   títulos leves, rótulos espaçados em caixa-alta, filetes finos e ciano → verde-água. Visual leve:
   poucos blocos de cor cheia, separação por filetes e etiquetas claras.
   Textos longos: --fit (0,62–1) é ajustado por MseDeck.fitText() e escala as fontes do corpo.
   As animações só existem na tela (.wd-animate, posto pelo MseDeck.mount); PDF e impressão saem estáticos. */
.wd-deck, .wd-slide { --wd-navy: #002f6c; --wd-blue: #2d5fa8; --wd-teal: #1fb5a0; --wd-cyan: #00c8d7; --wd-green: #0d8a74; --wd-ink: #17223a; --wd-ink2: #5d6a7e;
  --wd-rule: #c9d1dd; --wd-hair: rgba(0, 47, 108, .11); --wd-ground: #f4f6f9; --wd-accent: linear-gradient(90deg, #00c8d7, #1fb5a0); --wd-ease: cubic-bezier(.2, .7, .2, 1); }
.wd-deck { display: grid; gap: 26px; }
.wd-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 10px; background: #fff;
  box-shadow: 0 24px 50px -34px rgba(0, 47, 108, .30), 0 0 0 1px rgba(0, 47, 108, .06); transition: transform .35s var(--wd-ease), box-shadow .35s var(--wd-ease); }
.wd-frame:hover { transform: translateY(-2px); box-shadow: 0 30px 60px -32px rgba(0, 47, 108, .34), 0 0 0 1px rgba(0, 47, 108, .08); }
.wd-frame > .wd-slide { position: absolute; left: 0; top: 0; transform: scale(var(--wd-scale, .5)); transform-origin: 0 0; }

.wd-slide { position: relative; box-sizing: border-box; width: 1280px; height: 720px; overflow: hidden; background: #fff; color: var(--wd-ink);
  font: 400 16px/1.4 'Open Sans', 'Segoe UI', Helvetica, Arial, sans-serif; font-variant-numeric: tabular-nums; -webkit-font-smoothing: antialiased; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.wd-slide *, .wd-slide *::before, .wd-slide *::after { box-sizing: border-box; }
.wd-slide img { display: block; }
.wd-slide h1, .wd-slide h2, .wd-slide h3 { text-wrap: balance; }

/* Cabeçalho, corpo e rodapé dos slides internos */
.wd-head { position: absolute; left: 64px; right: 64px; top: 44px; height: 102px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 22px; align-items: start; border-bottom: 1px solid var(--wd-hair); }
.wd-num { min-width: 56px; height: 32px; padding: 0 12px; margin-top: 7px; display: grid; place-items: center; border: 1px solid var(--wd-rule); border-radius: 4px; color: var(--wd-navy); font-weight: 600; font-size: 15px; letter-spacing: .08em; }
.wd-rule { position: absolute; left: 0; top: 54px; width: 56px; height: 2px; border-radius: 2px; background: var(--wd-accent); transform-origin: left center; }
.wd-titles { min-width: 0; }
.wd-titles h2 { margin: 0; color: var(--wd-navy); font-size: 42px; line-height: 1.12; font-weight: 300; letter-spacing: -.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wd-titles p { display: flex; align-items: center; gap: 12px; min-width: 0; margin: 9px 0 0; color: var(--wd-ink2); font-size: 12.5px; font-weight: 700; line-height: 1.3; letter-spacing: .14em; text-transform: uppercase; }
.wd-titles p > span[data-fit] { display: block; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wd-part { flex: none; padding: 1px 9px; border: 1px solid var(--wd-hair); border-radius: 999px; color: var(--wd-navy); font-size: 10.5px; letter-spacing: .08em; }
.wd-brand { display: flex; align-items: center; gap: 6px; height: 38px; margin-top: 3px; }
.wd-brand img:first-child { height: 38px; width: auto; }
.wd-brand img:last-child { height: 36px; width: 36px; }
.wd-body { position: absolute; left: 64px; right: 64px; top: 170px; bottom: 80px; }
/* O app estiliza todo <footer> (fonte mono, borda, centralizado): aqui volta ao padrão do slide. */
.wd-slide .wd-foot { position: absolute; left: 64px; right: 64px; bottom: 22px; display: flex; justify-content: space-between; align-items: center; margin: 0; padding: 11px 0 0; border: 0; border-top: 1px solid var(--wd-hair);
  text-align: left; color: var(--wd-ink2); font: 600 11px/1.2 'Open Sans', 'Segoe UI', Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; background: none; }
.wd-foot > span:last-child { display: flex; align-items: center; gap: 12px; }
.wd-pg { min-width: 32px; padding: 2px 8px; border: 1px solid var(--wd-rule); border-radius: 999px; color: var(--wd-navy); text-align: center; font-size: 11px; letter-spacing: .06em; }
.wd-empty { height: 100%; display: grid; place-content: center; justify-items: center; gap: 6px; text-align: center; border: 1px dashed var(--wd-rule); border-radius: 14px 5px 14px 5px; background: #fafbfc; color: var(--wd-ink2); font-size: 14px; letter-spacing: .04em; }
.wd-empty strong { color: var(--wd-navy); font-size: 22px; font-weight: 300; letter-spacing: -.01em; }
.wd-empty-ico { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 6px; border: 1px solid var(--wd-rule); border-radius: 50%; color: var(--wd-teal); font-size: 18px; }

/* Capa */
.wd-cover { display: grid; grid-template-columns: 752px 1fr; }
.wd-cover-l { position: relative; background: var(--wd-ground); padding: 64px 72px 0; }
.wd-eyebrow { display: flex; align-items: center; gap: 14px; color: var(--wd-ink2); font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.wd-eyebrow i { display: block; width: 44px; height: 2px; border-radius: 2px; background: var(--wd-accent); transform-origin: left center; }
.wd-eyebrow em { font-style: normal; color: var(--wd-navy); padding-left: 14px; border-left: 1px solid var(--wd-rule); }
/* Título e linha do contrato numa caixa de altura fixa: nomes longos quebram linha e, se preciso, encolhem. */
/* margin-top:auto no h1 alinha embaixo sem jogar o excesso para cima (assim o fitText enxerga o transbordo). */
.wd-cover-titles { height: 250px; margin-top: 70px; display: flex; flex-direction: column; overflow: hidden; }
.wd-cover h1 { margin: auto 0 0; color: var(--wd-navy); font-size: calc(62px * var(--fit, 1)); line-height: 1.06; font-weight: 600; letter-spacing: -.025em; }
.wd-cover-sub { margin: 18px 0 0; color: var(--wd-navy); font-size: calc(30px * var(--fit, 1)); line-height: 1.22; font-weight: 300; letter-spacing: -.015em; }
.wd-cover-rule { width: 100%; margin: 28px 0 22px; border: 0; border-top: 1px solid var(--wd-navy); transform-origin: left center; }
.wd-cover-period { display: inline-flex; align-items: center; gap: 12px; margin: 0; color: var(--wd-ink); font-size: 16px; font-weight: 600; }
.wd-cover-period b { color: var(--wd-teal); font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; }
.wd-cover-brand { position: absolute; left: 72px; bottom: 92px; }
.wd-cover-brand .wd-brand { height: 50px; }
.wd-cover-brand .wd-brand img:first-child { height: 50px; }
.wd-cover-brand .wd-brand img:last-child { height: 48px; width: 48px; }
.wd-cover-foot { position: absolute; left: 72px; right: 72px; bottom: 22px; padding-top: 11px; border-top: 1px solid var(--wd-hair); color: var(--wd-ink2); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.wd-cover-r { position: relative; overflow: hidden; background: #002657; }
.wd-cover-r::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; z-index: 2; background: linear-gradient(180deg, #00c8d7, #1fb5a0); }
.wd-cover-r::after, .wd-closing::after { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(0, 47, 108, 0) 25%, rgba(0, 20, 50, .45)); pointer-events: none; }
.wd-bg { position: absolute; inset: 0; background: center / cover no-repeat; }
.wd-rev { position: absolute; right: 64px; bottom: 22px; z-index: 2; padding: 4px 13px; border: 1px solid rgba(255, 255, 255, .4); border-radius: 999px; color: #fff; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

/* Sumário: linhas separadas por filetes, sem blocos de fundo */
.wd-sum { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; height: 100%; }
.wd-sum ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-rows: repeat(var(--rows, 3), minmax(0, 1fr)); height: 100%; }
/* Filete vertical no meio do espaço entre as colunas: 48 px de cada lado, longe das páginas. */
.wd-sum ol:first-child { padding-right: 48px; }
.wd-sum ol + ol { padding-left: 48px; border-left: 1px solid var(--wd-hair); }
.wd-sum li { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; align-items: center; gap: 0 12px; min-height: 0; border-bottom: 1px solid var(--wd-hair); }
.wd-sum-n { align-self: center; color: var(--wd-teal); font-size: calc(20px * var(--fit, 1)); font-weight: 700; letter-spacing: .04em; }
.wd-sum strong { display: block; color: var(--wd-navy); font-size: calc(23px * var(--fit, 1)); line-height: 1.25; font-weight: 600; letter-spacing: -.01em; }
.wd-sum p { margin: 5px 0 0; color: var(--wd-ink2); font-size: calc(15.5px * var(--fit, 1)); line-height: 1.4; white-space: pre-line; }
.wd-sum-p { color: var(--wd-ink2); font-size: 13px; font-weight: 700; letter-spacing: .06em; }

/* Encerramento */
.wd-closing { background: #002657; color: #fff; padding: 112px 72px 0; }
.wd-closing > :not(.wd-bg) { position: relative; z-index: 1; }
.wd-closing::after { z-index: 0; }
.wd-closing-logo { height: 38px; width: auto; }
.wd-closing-rule { display: block; width: 64px; height: 2px; margin-top: 44px; border-radius: 2px; background: var(--wd-accent); transform-origin: left center; }
.wd-closing h2 { margin: 22px 0 0; max-width: 640px; color: #fff; font-size: 44px; line-height: 1.16; font-weight: 300; letter-spacing: -.02em; }
.wd-slide .wd-closing-grid { position: absolute; left: 72px; right: 72px; bottom: 92px; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; }
.wd-closing h3 { margin: 22px 0 10px; color: var(--wd-cyan); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.wd-closing p { margin: 0; font-size: 17px; line-height: 1.5; color: #ffffffe6; overflow-wrap: anywhere; }
.wd-closing p span { color: #ffffffb0; }
.wd-closing u { text-decoration-color: var(--wd-cyan); text-underline-offset: 4px; }
.wd-slide.wd-closing .wd-foot { position: absolute; left: 64px; right: 64px; border-top-color: rgba(255, 255, 255, .2); color: rgba(255, 255, 255, .78); }
.wd-slide.wd-closing .wd-pg { border-color: rgba(255, 255, 255, .4); color: #fff; }

/* Lista de atividades: linhas com filete, ponto e etiqueta clara do status; o texto quebra linha */
/* Uma grade só: cada linha tem a altura da maior das duas células, então as colunas ficam alinhadas. */
.wd-acts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 0 40px; }
.wd-acts li.wd-act-gap { border-bottom-color: transparent; }
.wd-acts li { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-width: 0; padding: 6px 0; border-bottom: 1px solid var(--wd-hair); }
.wd-acts.with-area li { grid-template-columns: 8px 130px minmax(0, 1fr) auto; }
.wd-acts li > b { color: var(--wd-navy); font-size: calc(12.5px * var(--fit, 1)); font-weight: 700; line-height: 1.3; letter-spacing: .03em; overflow-wrap: anywhere; }
.wd-acts li > i { width: 8px; height: 8px; border-radius: 50%; background: var(--st); }
.wd-acts li span { font-size: calc(14.5px * var(--fit, 1)); line-height: 1.3; color: var(--wd-ink); overflow-wrap: anywhere; }
.wd-acts li em { justify-self: end; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--st) 11%, #fff); color: var(--st); font-style: normal; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.wd-legend { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; align-items: center; gap: 22px; padding-top: 10px; }
.wd-legend span { display: inline-flex; align-items: center; gap: 8px; color: var(--wd-ink2); font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.wd-legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--st); }
.wd-legend b { color: var(--st); font-size: 15px; letter-spacing: 0; }
.wd-legend small { padding-left: 22px; border-left: 1px solid var(--wd-hair); color: var(--wd-ink2); font-size: 11.5px; font-weight: 600; letter-spacing: .06em; }

/* Relatório fotográfico: a foto ocupa o cartão inteiro; legenda sobre um degradê, como no Overview */
.wd-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; height: 100%; }
.wd-photos.n1 { grid-template-columns: minmax(0, 1fr); }
.wd-photos figure { position: relative; min-width: 0; min-height: 0; margin: 0; overflow: hidden; border-radius: 14px 5px 14px 5px; background: #e9edf3; box-shadow: 0 0 0 1px rgba(0, 47, 108, .06); }
.wd-photos figure > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.wd-photos figcaption { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding: 70px 20px 16px; background: linear-gradient(transparent, rgba(0, 20, 50, .78)); color: #fff; }
.wd-photos figcaption > div { min-width: 0; display: grid; gap: 5px; }
/* Local (cadastro separado da descrição): rótulo acima da descrição */
.wd-photos figcaption small { color: #8fe9f0; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wd-photos figcaption strong { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; min-width: 0; font-size: 17px; font-weight: 600; line-height: 1.3; text-shadow: 0 1px 2px rgba(0, 0, 0, .3); }
.wd-photos figcaption span { flex: none; padding: 3px 10px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .04em; }

/* Tabela: cabeçalho com filete, sem fundo cheio; colunas de largura igual (a paginação estima assim) */
.wd-table { width: 100%; border-collapse: collapse; table-layout: fixed; color: var(--wd-ink); }
.wd-table th { padding: 0 14px 10px; border-bottom: 2px solid var(--wd-navy); color: var(--wd-navy); font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-align: left; vertical-align: bottom; }
.wd-table td { padding: 8px 14px 9px; border-bottom: 1px solid var(--wd-hair); font-size: calc(15px * var(--fit, 1)); line-height: 1.33; vertical-align: top; overflow-wrap: anywhere; }
.wd-table td:first-child { color: var(--wd-navy); font-weight: 600; }
.wd-table tbody tr:nth-child(even) td { background: #fafbfd; }

/* Texto / pontos de atenção */
.wd-text { display: grid; gap: 14px; align-content: start; }
.wd-text p { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 18px; align-items: start; margin: 0; padding: 15px 22px 15px 20px; border-radius: 0 12px 12px 0; background: #f7f9fb; box-shadow: inset 3px 0 0 var(--wd-cyan);
  color: var(--wd-ink); font-size: calc(17.5px * var(--fit, 1)); line-height: 1.49; text-wrap: pretty; overflow-wrap: anywhere; }
.wd-text-n { padding-top: .2em; color: var(--wd-teal); font-size: 14px; font-weight: 700; letter-spacing: .06em; }

/* Imagem livre: sem moldura; "Inteira" mostra a imagem toda, "Preencher" corta as bordas para ocupar o espaço */
.wd-image { position: relative; margin: 0; height: 100%; display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 10px; }
.wd-image img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.wd-image.fill img { object-fit: cover; border-radius: 14px 5px 14px 5px; }
.wd-image figcaption { text-align: center; color: var(--wd-ink2); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* ---------- Slides automáticos: Curva S e histograma (Painel MSE) ---------- */
.wd-chart { display: block; width: 100%; height: auto; overflow: visible; font-family: 'Open Sans', 'Segoe UI', Arial, sans-serif; }
.wd-chart text { letter-spacing: 0; word-spacing: 0; }
.wd-chart .wd-grid { stroke: var(--wd-hair); stroke-width: 1; }
/* Sem letter-spacing em texto de SVG: com o slide reduzido por transform, o Chrome desenha o texto fora do lugar. */
.wd-chart .wd-axis { fill: var(--wd-ink2); font-size: 12px; font-weight: 600; }
.wd-chart-legend { display: flex; gap: 22px; color: var(--wd-ink2); font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.wd-chart-legend span { display: inline-flex; align-items: center; gap: 8px; }
.wd-chart-legend i { display: block; width: 22px; height: 0; border-top: 3px solid; }
.wd-chart-legend .p i { border-top: 2px dashed #2d5fa8; }
.wd-chart-legend .r i { border-color: #1fb5a0; }
.wd-chart-legend .t i { border-top: 2px dotted #00a6b8; }
.wd-chart-legend .mod i, .wd-chart-legend .moi i { width: 12px; height: 12px; border: 0; border-radius: 3px; background: #002f6c; }
.wd-chart-legend .moi i { background: #00c8d7; }
.wd-source { position: absolute; right: 0; bottom: 0; margin: 0; color: var(--wd-ink2); font-size: 10.5px; letter-spacing: .04em; opacity: .85; }

.wd-curve-box { display: grid; gap: 4px; }
.wd-curve-box .wd-chart-legend { justify-content: flex-end; padding-right: 18px; }
.wd-curve .wd-curve-p { fill: none; stroke: #2d5fa8; stroke-width: 2; stroke-dasharray: 7 6; opacity: .75; }
.wd-curve .wd-curve-t { fill: none; stroke: #00a6b8; stroke-width: 2.2; stroke-dasharray: 2 5; stroke-linecap: round; }
.wd-curve .wd-curve-r { fill: none; stroke: #1fb5a0; stroke-width: 3.5; stroke-linejoin: round; stroke-linecap: round; }
.wd-curve .wd-cut { stroke: var(--wd-navy); stroke-width: 1; stroke-dasharray: 3 4; opacity: .5; }
.wd-curve .wd-curve-dot { fill: #fff; stroke: #1fb5a0; stroke-width: 3.5; }
.wd-curve .wd-curve-tag rect { fill: var(--wd-navy); }
.wd-curve .wd-curve-tag text { fill: #fff; font-size: 12px; font-weight: 700; }
.wd-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-top: 14px; border-top: 1px solid var(--wd-hair); }
.wd-kpi { display: grid; align-content: start; gap: 4px; min-width: 0; padding: 14px 16px 0; border-left: 1px solid var(--wd-hair); }
.wd-kpis .wd-kpi:first-child { border-left: 0; padding-left: 0; }
.wd-kpi > span { color: var(--wd-ink2); font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wd-kpi strong { color: var(--wd-navy); font-size: 30px; line-height: 1.1; font-weight: 300; letter-spacing: -.02em; white-space: nowrap; }
.wd-kpi strong em { margin-left: 3px; font-style: normal; font-size: 15px; color: var(--wd-ink2); letter-spacing: 0; }
.wd-kpi small { color: var(--wd-ink2); font-size: 12px; line-height: 1.3; }
.wd-kpi.main strong, .wd-kpi.strong strong { font-weight: 600; }
.wd-kpi.main strong { color: var(--wd-teal); }
/* Só os números mudam de cor (à frente / atrás do previsto); a curva é sempre ciano. */
.wd-kpi.up strong { color: #2f7d32; }
.wd-kpi.down strong { color: #c62828; }

.wd-hist { display: grid; grid-template-columns: minmax(0, 1fr); height: calc(100% - 22px); }
.wd-hist-chart { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 8px; min-height: 0; }
.wd-chart-title { margin: 0; color: var(--wd-ink2); font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.wd-hist-chart .wd-chart { height: 100%; min-height: 0; }
.wd-bars .wd-bar-total { fill: var(--wd-navy); font-size: 17px; font-weight: 700; }
.wd-bars .wd-bar-in { fill: #fff; font-size: 13px; font-weight: 700; }
.wd-bars .wd-bar-in.dark { fill: #013a4a; }
.wd-bars .wd-axis-x { font-size: 13px; fill: var(--wd-ink); }
.wd-hist-side { display: grid; align-content: center; gap: 0; border-left: 1px solid var(--wd-hair); padding-left: 32px; }
.wd-hist-side .wd-kpi { padding: 12px 0; border-left: 0; border-bottom: 1px solid var(--wd-hair); }
.wd-hist-side .wd-kpi:last-child { border-bottom: 0; }
.wd-hist-side .wd-kpi strong { font-size: 30px; }
.wd-hist-side .wd-kpi.main strong { font-size: 40px; }
.wd-hist-side .wd-kpi.mod strong { color: #002f6c; font-weight: 600; }
.wd-hist-side .wd-kpi.moi strong { color: #00a6b8; font-weight: 600; }
.wd-auto-empty .wd-empty-ico { color: var(--wd-cyan); }

/* Animações: a curva realizada se desenha, as barras crescem da base */
.wd-animate .wd-frame .wd-curve-r { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2s var(--wd-ease) .35s; }
.wd-animate .wd-frame :is(.wd-curve-area, .wd-curve-dot, .wd-curve-tag, .wd-curve-t) { opacity: 0; transition: opacity .9s var(--wd-ease) 1.6s; }
.wd-animate .wd-frame .wd-bar rect { transform-box: fill-box; transform-origin: center bottom; transform: scaleY(0); transition: transform 1.2s var(--wd-ease); transition-delay: calc(250ms + var(--i, 0) * 120ms); }
.wd-animate .wd-frame .wd-bar text { opacity: 0; transition: opacity .6s var(--wd-ease); transition-delay: calc(900ms + var(--i, 0) * 120ms); }
.wd-animate .wd-frame :is(.wd-kpi, .wd-hist-side) { opacity: 0; transform: translateY(12px); transition: opacity .8s var(--wd-ease), transform .8s var(--wd-ease); transition-delay: calc(500ms + var(--i, 0) * 60ms); }
.wd-animate .wd-frame.wd-in .wd-curve-r { stroke-dashoffset: 0; }
.wd-animate .wd-frame.wd-in :is(.wd-curve-area, .wd-curve-dot, .wd-curve-tag, .wd-curve-t, .wd-bar text, .wd-kpi, .wd-hist-side) { opacity: 1; transform: none; }
.wd-animate .wd-frame.wd-in .wd-bar rect { transform: none; }

/* ---------- Animações (só na tela) ---------- */
.wd-animate .wd-frame :is(.wd-num, .wd-titles, .wd-brand, .wd-acts li, .wd-legend, .wd-photos figure, .wd-sum li, .wd-table tr, .wd-text p, .wd-image, .wd-empty,
  .wd-eyebrow, .wd-cover h1, .wd-cover-sub, .wd-cover-period, .wd-cover-brand, .wd-closing-logo, .wd-closing h2, .wd-closing-grid > div) {
  opacity: 0; transform: translateY(16px); transition: opacity .9s var(--wd-ease), transform .9s var(--wd-ease); transition-delay: calc(var(--d, 0ms) + var(--i, 0) * 34ms); }
.wd-animate .wd-frame :is(.wd-rule, .wd-cover-rule, .wd-closing-rule, .wd-eyebrow i) { transform: scaleX(0); transition: transform 1.1s var(--wd-ease) .25s; }
.wd-animate .wd-frame :is(.wd-photos figure > img, .wd-bg) { transform: scale(1.07); transition: transform 2.2s var(--wd-ease); }
.wd-animate .wd-frame .wd-acts li em { opacity: 0; transition: opacity .7s var(--wd-ease); transition-delay: calc(260ms + var(--i, 0) * 34ms); }
.wd-animate .wd-frame .wd-titles { --d: 80ms; }
.wd-animate .wd-frame .wd-brand { --d: 160ms; }
.wd-animate .wd-frame .wd-body > * { --d: 220ms; }
.wd-animate .wd-frame .wd-legend { --d: 650ms; }
.wd-animate .wd-frame .wd-cover h1 { --d: 120ms; }
.wd-animate .wd-frame .wd-cover-sub { --d: 220ms; }
.wd-animate .wd-frame .wd-cover-period { --d: 320ms; }
.wd-animate .wd-frame .wd-cover-brand { --d: 420ms; }
.wd-animate .wd-frame .wd-closing h2 { --d: 140ms; }
.wd-animate .wd-frame .wd-closing-grid > div:last-child { --d: 260ms; }
.wd-animate .wd-frame.wd-in :is(.wd-num, .wd-titles, .wd-brand, .wd-acts li, .wd-legend, .wd-photos figure, .wd-sum li, .wd-table tr, .wd-text p, .wd-image, .wd-empty,
  .wd-eyebrow, .wd-cover h1, .wd-cover-sub, .wd-cover-period, .wd-cover-brand, .wd-closing-logo, .wd-closing h2, .wd-closing-grid > div) { opacity: 1; transform: none; }
.wd-animate .wd-frame.wd-in :is(.wd-rule, .wd-cover-rule, .wd-closing-rule, .wd-eyebrow i, .wd-photos figure > img, .wd-bg) { transform: none; }
.wd-animate .wd-frame.wd-in .wd-acts li em { opacity: 1; }
.wd-animate .wd-frame.wd-still * { transition: none !important; }
/* Sob o mouse: a foto aproxima levemente, como no Overview */
.wd-frame.wd-in .wd-photos figure:hover > img { transform: scale(1.035); transition: transform .6s var(--wd-ease); }
@media (prefers-reduced-motion: reduce) {
  .wd-frame, .wd-frame:hover { transition: none; transform: none; }
  .wd-animate .wd-frame * { opacity: 1 !important; transform: none !important; transition: none !important; }
}
@media print { .wd-animate .wd-frame * { opacity: 1 !important; transform: none !important; transition: none !important; stroke-dashoffset: 0 !important; } .wd-frame { box-shadow: none; } }

/* PDF (MsePdf): a regra .pdf-mode-root .sheet do Overview (flex, fonte 10,5 px, margens) não vale nas folhas do Semanal. */
.pdf-mode-root .sheet.wd-sheet { display: block; width: 1280px; height: 720px; margin: 0 auto 22px; padding: 0; color: var(--wd-ink); font: 400 16px/1.4 'Open Sans', 'Segoe UI', Helvetica, Arial, sans-serif; }
.pdf-mode-root .sheet.wd-sheet.wd-cover { display: grid; }
.pdf-mode-root .sheet.wd-sheet.wd-closing { padding: 112px 72px 0; color: #fff; }
@media print { .pdf-mode-root .sheet.wd-sheet { height: 719px; margin: 0; } }

/* ---------- Editor de slides (assets/weekly-editor.js) ---------- */
#detail-view.dk-editing { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 20px; align-items: start; }
#detail-view.dk-editing > :not(.dk-outline):not([data-deck-root]) { grid-column: 1 / -1; }
#detail-view.dk-editing .wd-slide { cursor: pointer; }
#detail-view.dk-editing .wd-frame:hover { outline: 3px solid #1fb5a0; outline-offset: 2px; }
.dk-outline { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow: auto; display: grid; gap: 8px; padding: 14px; background: #fff; border: 1px solid #e4e7ec; border-radius: 12px; box-shadow: 0 8px 24px #1922310a; font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif; }
.dk-outline-head { display: grid; gap: 2px; padding: 0 2px 6px; border-bottom: 1px solid #e4e7ec; }
.dk-outline-head strong { color: #192231; font-size: 14px; }
.dk-outline-head small, .dk-fixed small, .dk-slide small { color: #66758a; font-size: 11px; }
.dk-fixed { display: grid; gap: 1px; text-align: left; padding: 9px 11px; border: 1px dashed #cbd3df; border-radius: 9px; background: #f7f9fb; cursor: pointer; font: inherit; }
.dk-fixed strong { color: #002f6c; font-size: 13px; }
.dk-fixed:hover { border-color: #1fb5a0; background: #fff; }
.dk-chapter { border: 1px solid #e4e7ec; border-radius: 10px; overflow: hidden; }
.dk-chapter-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; padding: 8px 8px 8px 10px; background: #f2f4f8; cursor: pointer; }
.dk-chapter-head strong { color: #002f6c; font-size: 13px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dk-chapter-n { color: #1fb5a0; font: 700 12px 'IBM Plex Mono', monospace; }
.dk-slides { list-style: none; margin: 0; padding: 4px; display: grid; gap: 2px; }
.dk-slide { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 6px; padding: 6px; border-radius: 7px; cursor: pointer; }
.dk-slide:hover { background: #f2f7f6; }
.dk-slide-p { color: #8a97a8; font: 11px 'IBM Plex Mono', monospace; }
.dk-slide-t { display: grid; min-width: 0; }
.dk-slide-t strong { color: #26344a; font-size: 12.5px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dk-tools { display: flex; gap: 0; }
/* No índice os botões só aparecem sob o mouse (ou foco), para o título caber inteiro. */
.dk-slide .dk-tools, .dk-chapter-head .dk-tools { display: none; }
.dk-slide:hover .dk-tools, .dk-chapter-head:hover .dk-tools, .dk-slide .dk-tools:focus-within, .dk-chapter-head .dk-tools:focus-within { display: flex; }
.dk-add { margin: 2px 4px 6px; padding: 6px; border: 0; border-radius: 7px; background: transparent; color: #0d8a74; font: 600 12px 'IBM Plex Sans', sans-serif; text-align: left; cursor: pointer; }
.dk-add:hover { background: #eaf6f3; }
.dk-add-chapter { margin: 0; padding: 9px 11px; border: 1px dashed #9fd8cc; }
.dk-types { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.dk-type { display: grid; gap: 4px; text-align: left; padding: 14px; border: 1px solid #d9dee7; border-radius: 10px; background: #fff; cursor: pointer; font: inherit; }
.dk-type strong { color: #002f6c; font-size: 14px; }
.dk-type small { color: #66758a; font-size: 12px; line-height: 1.45; }
.dk-type:hover { border-color: #1fb5a0; box-shadow: 0 4px 14px #1fb5a01f; }
.dk-pick { display: grid; gap: 10px; }
.dk-pick img { max-width: 100%; max-height: 260px; object-fit: contain; border: 1px solid #e4e7ec; border-radius: 8px; background: #f7f9fb; }
.dk-pick-empty { padding: 26px; border: 1px dashed #cbd3df; border-radius: 8px; color: #66758a; text-align: center; font-size: 13px; }
.dk-pick-actions, .dk-row-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.dk-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; max-height: 46vh; overflow: auto; counter-reset: dk; }
.dk-rows li { display: grid; grid-template-columns: minmax(0, 1fr) 150px auto auto; gap: 6px; align-items: center; }
.dk-rows-area li { grid-template-columns: 150px minmax(0, 1fr) 150px auto auto; }
.dk-rows input, .dk-rows select, .dk-photo-fields input, .dk-paste textarea { width: 100%; padding: 7px 9px; border: 1px solid #cfd5dd; border-radius: 7px; font: 13px 'IBM Plex Sans', sans-serif; background: #fff; }
.dk-rows select { border-left: 6px solid var(--dk-status, #1a3cff); }
.dk-paste { display: grid; gap: 8px; margin-top: 8px; justify-items: start; }
.dk-photos { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; max-height: 50vh; overflow: auto; }
.dk-photos li { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 6px; border: 1px solid #e4e7ec; border-radius: 9px; }
.dk-photos img { width: 110px; height: 80px; object-fit: cover; border-radius: 6px; background: #eef1f5; }
.dk-photo-fields { display: grid; grid-template-columns: minmax(0, 1fr) 150px; gap: 6px; }
.dk-photo-fields input:last-child { grid-column: 1 / -1; }
.dk-warn { margin-top: 10px; padding: 10px 12px; border: 1px solid #f0d49b; border-radius: 8px; background: #fff8e8; color: #6b4a00; font-size: 13px; }
.dk-warn ul { margin: 6px 0 0; padding-left: 18px; }
body.report-deck .deck-content { display: block; width: 100%; max-width: 1180px; margin: 0 auto; }
#detail-view.dk-editing [data-deck-root] { max-width: none; }
body.report-public.report-deck #detail-view { max-width: 1180px; margin: 0 auto; }
@media (max-width: 1000px) { #detail-view.dk-editing { grid-template-columns: 1fr; } .dk-outline { position: static; max-height: none; } }

.dk-auto { display: grid; gap: 6px; justify-items: start; padding: 12px 14px; border: 1px solid #d7ece7; border-radius: 10px; background: #f3fbf9; }
.dk-auto p { margin: 0; }

.wd-curve-box .wd-chart-legend { gap: 16px; font-size: 10px; flex-wrap: wrap; }
.wd-chart-legend .sp i, .wd-chart-legend .sr i { width: 10px; height: 10px; border: 0; background: #a9c4e8; }
.wd-chart-legend .sr i { background: #61c9b8; }

/* Controles compactos, compartilhados pela leitura e pela edição. */
.wd-navigation { position: fixed; left: 16px; bottom: max(16px, env(safe-area-inset-bottom)); z-index: 81; display: flex; align-items: center; gap: 2px; padding: 6px; border: 1px solid #dce3ec; border-radius: 14px; background: #fff; box-shadow: 0 4px 18px #142b4920; font: 500 12px 'Segoe UI', sans-serif; color: #34465e; }
.ed-floating-actions > .wd-navigation { position: static; padding: 0 6px 0 0; margin-right: 2px; border: 0; border-right: 1px solid #dce3ec; border-radius: 0; box-shadow: none; background: transparent; }
.wd-navigation button { display: grid; place-items: center; width: 32px; height: 36px; padding: 6px; border: 0; border-radius: 8px; background: transparent; color: inherit; cursor: pointer; }
.wd-navigation button svg { width: 20px; height: 20px; }
.wd-navigation button:hover:enabled { background: #eaf1fa; color: #002f6c; }
.wd-navigation button:disabled { opacity: .3; cursor: default; }
.wd-slide-picker { position: relative; display: grid; place-items: center; min-width: 52px; height: 36px; border-radius: 8px; font-variant-numeric: tabular-nums; }
.wd-slide-picker select { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.wd-slide-picker:hover { background: #eaf1fa; }
.wd-navigation button:focus-visible, .wd-slide-picker:focus-within { outline: 2px solid #002f6c; outline-offset: 1px; }
@media (max-width: 380px) { .ed-floating-actions { gap: 1px; padding: 4px; } .ed-floating-actions .ed-quick-action { width: 32px; } .wd-navigation button { width: 28px; } }
@media print { .wd-navigation { display: none !important; } }

.wd-navigation .wd-slide-toggle { width: auto; min-width: 52px; gap: 4px; display: flex; align-items: center; justify-content: center; font: inherit; }
.wd-slide-toggle::after { content: ''; width: 5px; height: 5px; border-right: 1.5px solid; border-bottom: 1.5px solid; transform: rotate(45deg); margin: -3px 2px 0 3px; }
.wd-slide-menu { position: fixed; width: min(310px, calc(100vw - 16px)); max-height: min(320px, 55vh); overflow-y: auto; overscroll-behavior: contain; padding: 6px; background: #fff; border: 1px solid #dce3ec; border-radius: 14px; box-shadow: 0 8px 30px #142b4926; color: #34465e; }
.wd-slide-menu[hidden] { display: none; }
.wd-navigation .wd-slide-menu button { display: flex; align-items: center; gap: 10px; width: 100%; height: auto; min-height: 38px; padding: 9px; text-align: left; font: 500 12px/1.4 'Segoe UI', sans-serif; }
.wd-slide-menu button[aria-selected="true"] { background: #eaf1fa; color: #002f6c; }
.wd-option-number { flex: none; width: 24px; text-align: center; color: #718096; font-variant-numeric: tabular-nums; }
.wd-slide-menu button:focus-visible { outline-offset: -2px; }

.wd-slide-menu[popover] { margin: 0; top: auto; right: auto; }
