/* ── HbOne OKR: barras de progresso, situação, cartões de objetivo, formulário e check-in ──
   Situação usa a paleta de status reservada (bom / atenção / crítico), sempre com ícone e texto, nunca só a cor.
   O número fica na cor do texto; a cor fica só na barra e no chip. */
:root {
  --sit-no-ritmo: #0ca30c;
  --sit-atencao: #fab219;
  --sit-em-risco: #d03b3b;
  --sit-neutro: var(--marca);
  --sit-no-ritmo-tx: #006300;
  --sit-atencao-tx: #8a5a00;
  --sit-em-risco-tx: #a12424;
  --okr-esperado: #1F2937;
}
html[data-theme="dark"] {
  --sit-no-ritmo-tx: #4ade80;
  --sit-atencao-tx: #fcd34d;
  --sit-em-risco-tx: #fca5a5;
  --okr-esperado: #E6EAF2;
}

/* Barra de progresso (medidor): o preenchimento leva a cor da situação; o trilho é um tom claro da mesma cor */
.okr-barra { --fill: var(--sit-neutro); position: relative; height: 10px; border-radius: 999px; background: color-mix(in srgb, var(--fill) 18%, var(--bg-card)); min-width: 60px; }
.okr-barra.fina { height: 6px; }
.okr-barra.grossa { height: 14px; }
.okr-barra > .okr-preenchido { position: absolute; inset: 0 auto 0 0; border-radius: 999px; background: var(--fill); min-width: 0; }
.okr-barra > .okr-esperado { position: absolute; top: -4px; bottom: -4px; width: 2px; border-radius: 1px; background: var(--okr-esperado); opacity: 0.75; transform: translateX(-1px); }
.okr-barra.sit-no_ritmo { --fill: var(--sit-no-ritmo); }
.okr-barra.sit-atencao { --fill: var(--sit-atencao); }
.okr-barra.sit-em_risco { --fill: var(--sit-em-risco); }
.okr-progresso { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--space-sm); }
.okr-pct { font-weight: 700; font-variant-numeric: tabular-nums; min-width: 3.2ch; text-align: right; color: var(--text-primary); }

/* Chip de situação: ícone + texto (a cor nunca carrega o significado sozinha) */
.sit-chip { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.15rem 0.55rem; border-radius: 999px; font-size: var(--font-size-xs); font-weight: 700; white-space: nowrap; border: 1px solid transparent; }
.sit-chip svg { width: 13px; height: 13px; flex-shrink: 0; }
.sit-chip.sit-no_ritmo { color: var(--sit-no-ritmo-tx); background: color-mix(in srgb, var(--sit-no-ritmo) 14%, var(--bg-card)); border-color: color-mix(in srgb, var(--sit-no-ritmo) 35%, transparent); }
.sit-chip.sit-atencao { color: var(--sit-atencao-tx); background: color-mix(in srgb, var(--sit-atencao) 18%, var(--bg-card)); border-color: color-mix(in srgb, var(--sit-atencao) 45%, transparent); }
.sit-chip.sit-em_risco { color: var(--sit-em-risco-tx); background: color-mix(in srgb, var(--sit-em-risco) 12%, var(--bg-card)); border-color: color-mix(in srgb, var(--sit-em-risco) 35%, transparent); }
.sit-chip.sit-neutro { color: var(--text-secondary); background: var(--bg-subtle); border-color: var(--border-color); }
.sit-chip.atrasado { color: var(--warn-text); background: var(--warn-bg); border-color: var(--warn-border); }

/* Etiquetas de nível, tipo e ciclo */
.okr-etiqueta { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.1rem 0.5rem; border-radius: var(--radius-sm); font-size: var(--font-size-xs); font-weight: 600; background: var(--bg-subtle); color: var(--text-secondary); border: 1px solid var(--border-color); white-space: nowrap; }
.okr-etiqueta.area { border-left: 4px solid var(--area-color); }
.okr-etiqueta.aspiracional { background: var(--info-bg); color: var(--info-text); border-color: var(--info-border); }
.okr-etiqueta.proposto { background: var(--warn-bg); color: var(--warn-text); border-color: var(--warn-border); }
.okr-etiqueta.cancelado { text-decoration: line-through; }

/* Barra do topo das telas de OKR: ciclo e filtros numa linha só */
.okr-filtros { display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); align-items: flex-end; margin-bottom: var(--space-lg); }
.okr-filtros .form-group { margin: 0; min-width: 170px; }
.okr-filtros .form-label { font-size: var(--font-size-xs); color: var(--text-secondary); }
.ciclo-info { color: var(--text-secondary); font-size: var(--font-size-sm); }

/* Quadros de números (stat tiles) */
.okr-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-md); margin-bottom: var(--space-lg); }
.okr-numero { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--space-md); display: flex; flex-direction: column; gap: 0.2rem; text-decoration: none; color: inherit; }
a.okr-numero:hover { border-color: var(--border-strong); background: var(--bg-hover); }
.okr-numero .rotulo { font-size: var(--font-size-sm); color: var(--text-secondary); display: flex; align-items: center; gap: 0.35rem; }
.okr-numero .valor { font-size: var(--font-size-2xl); font-weight: 650; font-variant-numeric: tabular-nums; color: var(--text-primary); line-height: 1.15; }
.okr-numero .detalhe { font-size: var(--font-size-xs); color: var(--text-muted); }
.okr-numero .okr-barra { margin-top: 0.35rem; }

/* Grupos (Empresa, cada área, Pessoas) */
.okr-grupo { margin-bottom: var(--space-xl); }
.okr-grupo-titulo { display: flex; align-items: center; gap: var(--space-sm); font-size: var(--font-size-lg); font-weight: 800; margin: 0 0 var(--space-md); }
.okr-grupo-titulo .marcador { width: 10px; height: 22px; border-radius: 4px; background: var(--area-color, var(--marca)); }
.okr-grupo-titulo .contagem { font-size: var(--font-size-sm); font-weight: 600; color: var(--text-secondary); }

/* Cartão de objetivo */
.okr-card { background: var(--bg-card); border: 1px solid var(--border-color); border-left: 5px solid var(--area-color, var(--marca)); border-radius: var(--radius-lg); padding: var(--space-md) var(--space-lg); box-shadow: var(--shadow-sm); }
.okr-card + .okr-card { margin-top: var(--space-md); }
.okr-card.cancelado { opacity: 0.7; }
.okr-card-topo { display: grid; grid-template-columns: 1fr minmax(150px, 230px); gap: var(--space-md); align-items: start; }
.okr-card-meta { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; margin-bottom: 0.35rem; }
.okr-card-titulo { font-size: var(--font-size-base); font-weight: 750; line-height: 1.35; margin: 0; }
.okr-card-titulo a { color: var(--text-primary); text-decoration: none; }
.okr-card-titulo a:hover { color: var(--brand-text); text-decoration: underline; }
.okr-card-lado { display: flex; flex-direction: column; gap: 0.35rem; align-items: stretch; }
.okr-card-lado .sit-chip { align-self: flex-end; }
.okr-card-pai { font-size: var(--font-size-xs); color: var(--text-secondary); margin-top: 0.25rem; }
.okr-card-pai a { color: var(--text-secondary); }

/* Linhas de KR (no cartão e no detalhe) */
.kr-lista { list-style: none; margin: var(--space-md) 0 0; padding: 0; border-top: 1px solid var(--border-color); }
.kr-linha { display: grid; grid-template-columns: minmax(0, 1fr) 150px 170px auto; gap: var(--space-md); align-items: center; padding: 0.55rem 0; border-bottom: 1px solid var(--border-color); }
.kr-linha:last-child { border-bottom: 0; }
.kr-titulo { font-size: var(--font-size-sm); font-weight: 600; color: var(--text-primary); display: flex; gap: 0.5rem; align-items: center; min-width: 0; }
.kr-titulo span.txt { overflow-wrap: anywhere; }
.kr-valor { font-size: var(--font-size-sm); color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.kr-valor strong { color: var(--text-primary); }
.kr-acoes { display: flex; gap: 0.35rem; justify-content: flex-end; align-items: center; }
.kr-dono { display: inline-flex; flex-shrink: 0; }

/* Mini avatar com nome */
.pessoa-mini { display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--font-size-sm); color: var(--text-secondary); }

/* Detalhe do objetivo */
.okr-detalhe-cabeca { display: grid; grid-template-columns: 1fr 300px; gap: var(--space-lg); align-items: start; }
.okr-detalhe-progresso .okr-numero .valor { font-size: 2.6rem; }
.okr-kr-card { border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--space-md); background: var(--bg-card); }
.okr-kr-card + .okr-kr-card { margin-top: var(--space-md); }
.okr-kr-cabeca { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: var(--space-md); align-items: start; }
.okr-kr-cabeca h3 { margin: 0 0 0.3rem; font-size: var(--font-size-base); }
.okr-kr-meta { display: flex; flex-wrap: wrap; gap: 0.35rem 0.9rem; font-size: var(--font-size-sm); color: var(--text-secondary); }
.okr-kr-sub { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-md); margin-top: var(--space-md); }
.okr-kr-sub h4 { margin: 0 0 0.4rem; font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.04em; }
.marcos-lista, .iniciativas-lista, .checkins-lista { list-style: none; margin: 0; padding: 0; }
.marcos-lista li { display: flex; gap: 0.45rem; align-items: center; font-size: var(--font-size-sm); padding: 0.15rem 0; }
.marcos-lista li.feito { color: var(--text-secondary); text-decoration: line-through; }
.iniciativas-lista li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 0.5rem; align-items: center; padding: 0.35rem 0; border-bottom: 1px dashed var(--border-color); font-size: var(--font-size-sm); }
.iniciativas-lista li:last-child { border-bottom: 0; }
.ini-status { font-size: var(--font-size-xs); font-weight: 700; padding: 0.1rem 0.45rem; border-radius: 999px; background: var(--bg-subtle); color: var(--text-secondary); border: 1px solid var(--border-color); white-space: nowrap; }
.ini-status.concluida { color: var(--sit-no-ritmo-tx); border-color: color-mix(in srgb, var(--sit-no-ritmo) 35%, transparent); }
.ini-status.em_andamento { color: var(--info-text); background: var(--info-bg); border-color: var(--info-border); }
.ini-status.cancelada { text-decoration: line-through; }
.checkins-lista li { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 0.6rem; padding: 0.45rem 0; border-bottom: 1px solid var(--border-color); font-size: var(--font-size-sm); }
.checkins-lista li:last-child { border-bottom: 0; }
.checkins-lista .quando { color: var(--text-muted); font-size: var(--font-size-xs); }
.checkins-lista .texto { color: var(--text-secondary); margin-top: 0.15rem; }
.checkins-lista .bloqueio { color: var(--warn-text); margin-top: 0.15rem; }
.okr-vazio { color: var(--text-muted); font-size: var(--font-size-sm); font-style: italic; }

/* Comentários e histórico */
.okr-comentarios { list-style: none; margin: 0 0 var(--space-md); padding: 0; }
.okr-comentarios li { padding: 0.6rem 0; border-bottom: 1px solid var(--border-color); font-size: var(--font-size-sm); }
.okr-comentarios .autor { font-weight: 700; }
.okr-comentarios .quando { color: var(--text-muted); font-size: var(--font-size-xs); margin-left: 0.4rem; }
.okr-historico { list-style: none; margin: 0; padding: 0; font-size: var(--font-size-sm); }
.okr-historico li { padding: 0.35rem 0; border-bottom: 1px dashed var(--border-color); color: var(--text-secondary); }
.okr-historico .quando { color: var(--text-muted); font-size: var(--font-size-xs); margin-right: 0.4rem; }

/* Formulário do objetivo */
.okr-form-passo { display: flex; gap: var(--space-sm); align-items: center; font-size: var(--font-size-lg); font-weight: 800; margin: 0 0 var(--space-md); }
.okr-form-passo .num { width: 28px; height: 28px; border-radius: 50%; background: var(--marca); color: #fff; display: inline-grid; place-items: center; font-size: var(--font-size-sm); }
.okr-form-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-lg); }
.okr-form-grade .inteira { grid-column: 1 / -1; }
.kr-bloco { border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--space-md); background: var(--bg-subtle); position: relative; }
.kr-bloco + .kr-bloco { margin-top: var(--space-md); }
.kr-bloco-topo { display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm); margin-bottom: var(--space-sm); }
.kr-bloco-topo strong { font-size: var(--font-size-sm); color: var(--text-secondary); }
.kr-bloco .form-group { margin-bottom: var(--space-md); }
.kr-campos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 var(--space-md); }
.kr-campos .dois { grid-column: span 2; }
.kr-marcos-lista { display: flex; flex-direction: column; gap: 0.4rem; }
.kr-marcos-lista .linha { display: flex; gap: 0.4rem; }
.okr-tipo-escolha { display: flex; gap: var(--space-sm); flex-wrap: wrap; }
.okr-tipo-escolha label { flex: 1 1 220px; border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 0.6rem 0.8rem; cursor: pointer; background: var(--bg-card); font-size: var(--font-size-sm); }
.okr-tipo-escolha label:has(input:checked) { border-color: var(--marca); box-shadow: 0 0 0 2px var(--focus-glow); }
.okr-tipo-escolha small { display: block; color: var(--text-secondary); margin-top: 0.15rem; }

/* Sugestões de boas práticas (avisam, não bloqueiam) */
.okr-sugestoes { border: 1px solid var(--info-border); background: var(--info-bg); color: var(--info-text); border-radius: var(--radius-md); padding: var(--space-sm) var(--space-md); font-size: var(--font-size-sm); }
.okr-sugestoes.tudo-certo { border-color: color-mix(in srgb, var(--sit-no-ritmo) 35%, transparent); background: color-mix(in srgb, var(--sit-no-ritmo) 10%, var(--bg-card)); color: var(--sit-no-ritmo-tx); }
.okr-sugestoes ul { margin: 0.3rem 0 0; padding-left: 1.1rem; }
.okr-sugestoes li { margin: 0.15rem 0; }

/* Check-in */
.checkin-kr { font-weight: 700; margin: 0 0 0.25rem; }
.checkin-contexto { font-size: var(--font-size-sm); color: var(--text-secondary); margin: 0 0 var(--space-md); }
.checkin-confianca { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-sm); }
.checkin-confianca label { border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 0.55rem; text-align: center; cursor: pointer; font-size: var(--font-size-sm); font-weight: 600; display: flex; flex-direction: column; align-items: center; gap: 0.3rem; background: var(--bg-card); }
.checkin-confianca input { position: absolute; opacity: 0; pointer-events: none; }
.checkin-confianca label:has(input:checked) { border-color: var(--marca); box-shadow: 0 0 0 2px var(--focus-glow); }
.checkin-confianca label:has(input:focus-visible) { outline: 2px solid var(--marca); outline-offset: 2px; }
.checkin-previa { margin-top: var(--space-sm); font-size: var(--font-size-sm); color: var(--text-secondary); }

/* Ciclos */
.ciclo-status { font-size: var(--font-size-xs); font-weight: 700; padding: 0.15rem 0.55rem; border-radius: 999px; border: 1px solid var(--border-color); background: var(--bg-subtle); color: var(--text-secondary); }
.ciclo-status.em_andamento { color: var(--info-text); background: var(--info-bg); border-color: var(--info-border); }

/* Áreas no painel */
.okr-areas { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--space-md); }
.okr-area { border: 1px solid var(--border-color); border-top: 4px solid var(--area-color); border-radius: var(--radius-lg); padding: var(--space-md); background: var(--bg-card); text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 0.45rem; }
.okr-area:hover { background: var(--bg-hover); }
.okr-area .nome { font-weight: 800; display: flex; gap: 0.4rem; align-items: center; }
.okr-area .linha { font-size: var(--font-size-xs); color: var(--text-secondary); display: flex; gap: 0.4rem; flex-wrap: wrap; }

@media (max-width: 900px) {
  .okr-card-topo, .okr-detalhe-cabeca, .okr-kr-cabeca, .okr-kr-sub { grid-template-columns: 1fr; }
  .okr-card-lado .sit-chip { align-self: flex-start; }
  .kr-linha { grid-template-columns: 1fr; gap: 0.35rem; }
  .kr-acoes { justify-content: flex-start; }
  .okr-form-grade, .kr-campos { grid-template-columns: 1fr; }
  .kr-campos .dois { grid-column: auto; }
}
@media print {
  .okr-card, .okr-kr-card { break-inside: avoid; box-shadow: none; }
}
@media (forced-colors: active) {
  .okr-barra > .okr-preenchido { background: Highlight; }
  .okr-barra { border: 1px solid CanvasText; }
}

/* Grupos de campos (fieldset) sem a moldura padrão do navegador */
fieldset.form-group { border: 0; padding: 0; margin-inline: 0; min-width: 0; }
fieldset.form-group > legend { padding: 0; }

/* ── Gráfico de evolução do resultado-chave ── */
.okr-pagina { position: relative; }
.okr-grafico { margin: var(--space-md) 0 0; }
.okr-grafico svg { width: 100%; height: auto; display: block; max-height: 240px; }
.g-grade { stroke: var(--border-color); stroke-width: 1; }
.g-base { stroke: var(--border-strong); stroke-width: 1; }
.g-eixo { fill: var(--text-muted); font-size: 11px; font-family: var(--font-family); }
.g-real { fill: none; stroke: var(--marca); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.g-esperado { stroke: var(--text-muted); stroke-width: 2; stroke-dasharray: 6 5; stroke-linecap: round; }
.g-hoje { stroke: var(--okr-esperado); stroke-width: 1; stroke-dasharray: 2 3; opacity: 0.6; }
.g-faixa { fill: color-mix(in srgb, var(--sit-no-ritmo) 16%, transparent); }
.g-ponto { cursor: pointer; outline: none; }
.g-alvo { fill: transparent; }
.g-marca { fill: var(--marca); stroke: var(--bg-card); stroke-width: 2; }
.g-marca.ultimo { stroke-width: 2.5; }
.g-ponto:hover .g-marca, .g-ponto:focus-visible .g-marca { stroke: var(--text-primary); }
.g-ponto:focus-visible .g-alvo { stroke: var(--marca); stroke-width: 2; }
.g-legenda { display: flex; flex-wrap: wrap; gap: 0.3rem var(--space-md); font-size: var(--font-size-xs); color: var(--text-secondary); margin-top: 0.25rem; padding-left: 54px; }
.g-legenda span { display: inline-flex; align-items: center; gap: 0.4rem; }
.g-chave { display: inline-block; width: 22px; height: 0; border-top: 2px solid var(--marca); }
.g-chave.esperado { border-top: 2px dashed var(--text-muted); }
.g-chave.faixa { height: 10px; border: 0; background: color-mix(in srgb, var(--sit-no-ritmo) 30%, transparent); }
.g-dica { position: absolute; transform: translate(-50%, -100%); background: var(--text-primary); color: var(--bg-card); font-size: var(--font-size-xs); padding: 0.35rem 0.6rem; border-radius: var(--radius-sm); max-width: 260px; box-shadow: var(--shadow-md); pointer-events: none; z-index: 20; }
.okr-kr-grafico { margin-top: var(--space-md); }
@media print { .g-dica { display: none; } .g-real, .g-esperado { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
@media (forced-colors: active) { .g-real { stroke: Highlight; } .g-esperado { stroke: GrayText; } .g-marca { fill: Highlight; } }
.okr-sub-titulo { margin: 0 0 0.2rem; font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.04em; }

/* ── Árvore de alinhamento ── */
.arv-lista { list-style: none; margin: 0; padding: 0; }
.arv-lista .arv-lista { margin-left: 1.4rem; padding-left: 1rem; border-left: 2px solid var(--border-color); }
.arv-item { margin: 0.5rem 0; }
.arv-no { border: 1px solid var(--border-color); border-left: 5px solid var(--area-color, var(--marca)); border-radius: var(--radius-md); background: var(--bg-card); padding: 0.55rem 0.8rem; flex: 1; min-width: 0; }
.arv-linha { display: grid; grid-template-columns: minmax(0, 1fr) minmax(170px, 260px); gap: var(--space-md); align-items: center; }
.arv-titulo a { font-weight: 700; color: var(--text-primary); text-decoration: none; overflow-wrap: anywhere; }
.arv-titulo a:hover { color: var(--brand-text); text-decoration: underline; }
.arv-dono { font-size: var(--font-size-xs); color: var(--text-secondary); margin-top: 0.2rem; }
.arv-progresso { display: flex; flex-direction: column; gap: 0.3rem; align-items: stretch; }
.arv-progresso .sit-chip { align-self: flex-end; }
.arv-resumo { display: flex; align-items: stretch; gap: 0.5rem; cursor: pointer; list-style: none; }
.arv-resumo::-webkit-details-marker { display: none; }
.arv-seta { width: 0; height: 0; align-self: center; border-left: 6px solid var(--text-secondary); border-top: 5px solid transparent; border-bottom: 5px solid transparent; transition: transform var(--transition-fast); flex-shrink: 0; }
details[open] > .arv-resumo > .arv-seta { transform: rotate(90deg); }
.arv-conta { align-self: center; font-size: var(--font-size-xs); font-weight: 700; color: var(--text-secondary); background: var(--bg-subtle); border: 1px solid var(--border-color); border-radius: 999px; padding: 0.05rem 0.5rem; }
.arv-resumo:focus-visible { outline: 2px solid var(--marca); outline-offset: 2px; border-radius: var(--radius-md); }
@media (max-width: 900px) { .arv-linha { grid-template-columns: 1fr; } .arv-progresso .sit-chip { align-self: flex-start; } .arv-lista .arv-lista { margin-left: 0.6rem; padding-left: 0.6rem; } }
@media print { details > .arv-lista { display: block; } .arv-seta { display: none; } }

/* ── Relatório (tela e impressão) ── */
.rel-papel { padding: var(--space-lg); }
.rel-cabecalho { display: flex; gap: var(--space-md); align-items: center; border-bottom: 3px solid var(--marca); padding-bottom: var(--space-md); margin-bottom: var(--space-lg); }
.rel-logo { height: 44px; width: auto; }
.rel-titulo { margin: 0 0 0.2rem; font-size: var(--font-size-xl); font-weight: 800; }
.rel-grupo { margin-top: var(--space-lg); }
.rel-objetivo { border: 1px solid var(--border-color); border-left: 5px solid var(--area-color, var(--marca)); border-radius: var(--radius-md); padding: var(--space-md); margin-bottom: var(--space-md); background: var(--bg-card); }
.rel-objetivo-cab { display: grid; grid-template-columns: 1fr minmax(160px, 230px); gap: var(--space-md); align-items: start; margin-bottom: var(--space-sm); }
.rel-objetivo-cab h3 { margin: 0.2rem 0 0.2rem; font-size: var(--font-size-base); }
.rel-objetivo-lado { display: flex; flex-direction: column; gap: 0.3rem; align-items: stretch; }
.rel-objetivo-lado .sit-chip { align-self: flex-end; }
.rel-tabela th, .rel-tabela td { font-size: var(--font-size-xs); vertical-align: top; white-space: normal; }
.rel-rodape { margin-top: var(--space-lg); border-top: 1px solid var(--border-color); padding-top: var(--space-sm); }
@media (max-width: 900px) { .rel-objetivo-cab { grid-template-columns: 1fr; } .rel-cabecalho { flex-direction: column; align-items: flex-start; } }
@media print {
  @page { size: A4; margin: 12mm; }
  body { font-size: 10pt; }
  .okr-relatorio .rel-papel { border: 0; box-shadow: none; padding: 0; }
  .rel-objetivo { break-inside: avoid; }
  .rel-grupo > .okr-grupo-titulo { break-after: avoid; }
  .okr-numeros { grid-template-columns: repeat(4, 1fr); }
  .okr-numero { padding: 6px; }
  .okr-numero .valor { font-size: 16pt; }
  .okr-barra > .okr-preenchido, .okr-barra, .sit-chip, .rel-cabecalho, .okr-numero { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rel-tabela th { background: #f3f4f6 !important; color: #111; }
}

/* ── Encerramento do ciclo ── */
.enc-objetivo + .enc-objetivo { margin-top: var(--space-md); }
.enc-nota-obj { align-items: flex-end; text-align: right; }
.enc-nota-valor { font-size: var(--font-size-xl); display: inline-flex; gap: 0.5rem; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.enc-retro { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); margin-top: var(--space-md); }
.enc-retro .form-group { margin-bottom: var(--space-sm); }
@media (max-width: 900px) { .enc-retro { grid-template-columns: 1fr; } .enc-nota-obj { align-items: flex-start; text-align: left; } }

/* ── Comparar ciclos ── */
.cmp-tabela th, .cmp-tabela td { white-space: normal; vertical-align: middle; }
.cmp-tabela tbody th { text-transform: none; letter-spacing: 0; font-size: var(--font-size-sm); font-weight: 700; color: var(--text-primary); background: transparent; }
.var-sobe { color: var(--sit-no-ritmo-tx); font-weight: 700; white-space: nowrap; }
.var-desce { color: var(--sit-em-risco-tx); font-weight: 700; white-space: nowrap; }
.var-igual { color: var(--text-secondary); font-weight: 600; white-space: nowrap; }

/* ── Métricas de saúde e dependências ── */
.okr-etiqueta.saude-fora { background: color-mix(in srgb, var(--sit-em-risco) 12%, var(--bg-card)); color: var(--sit-em-risco-tx); border-color: color-mix(in srgb, var(--sit-em-risco) 40%, transparent); }
.okr-etiqueta.dependencia { background: var(--info-bg); color: var(--info-text); border-color: var(--info-border); }
.saude-lista, .dep-lista, .rel-saude { list-style: none; margin: 0; padding: 0; }
.saude-lista li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--space-md); align-items: center; padding: 0.6rem 0; border-bottom: 1px dashed var(--border-color); }
.saude-lista li:last-child, .dep-lista li:last-child { border-bottom: 0; }
.saude-titulo, .dep-titulo { font-weight: 600; color: var(--text-primary); }
.saude-valor { font-size: var(--font-size-sm); white-space: nowrap; }
.saude-acoes, .dep-acoes { display: flex; gap: 0.35rem; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.dep-lista li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-md); align-items: start; padding: 0.7rem 0; border-bottom: 1px dashed var(--border-color); }
.dep-desc { margin: 0.2rem 0; color: var(--text-primary); }
.rel-saude { margin-top: 0.6rem; display: grid; gap: 0.25rem; font-size: var(--font-size-sm); }
.rel-saude li { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
@media (max-width: 700px) { .saude-lista li { grid-template-columns: 1fr; } .saude-acoes { justify-content: flex-start; } }
