.rk-kpis {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 12px; margin-bottom: 18px;
}
.rk-kpi {
  padding: 15px 17px; border-radius: 14px;
  border: 1px solid var(--line); background: rgba(255,255,255,.03);
}
.rk-kpi span { display: block; font-size: 10.5px; text-transform: uppercase; letter-spacing: .5px; opacity: .55; }
.rk-kpi b { display: block; font-size: 26px; line-height: 1.15; margin: 3px 0 2px; }
.rk-kpi small { font-size: 10.5px; opacity: .5; }

.rk-destaques { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 18px; }
.rk-destaque {
  display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px;
  border-radius: 14px; border: 1px solid var(--line);
  background: linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
}
.rk-destaque__ico { font-size: 20px; line-height: 1; }
.rk-destaque span { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .5px; opacity: .5; }
.rk-destaque strong { display: block; font-size: 14px; margin: 2px 0 3px; }
.rk-destaque small { font-size: 11px; opacity: .6; }

.rk-abas { display: flex; gap: 8px; margin-bottom: 12px; }
.rk-abas button {
  background: rgba(255,255,255,.05); border: 1px solid var(--line);
  color: inherit; padding: 8px 16px; border-radius: 20px;
  font-size: 12.5px; cursor: pointer;
}
.rk-abas button.on { background: #ef121d; border-color: #ef121d; color: #fff; font-weight: 600; }

.rk-lista { display: flex; flex-direction: column; gap: 8px; }
.rk-linha {
  display: grid; align-items: center; gap: 14px;
  grid-template-columns: 34px 38px minmax(150px,1.2fr) minmax(90px,1fr) 66px;
  padding: 12px 15px; border-radius: 13px;
  border: 1px solid var(--line); background: rgba(255,255,255,.03);
}
.rk-linha__pos { font-weight: 800; font-size: 14px; opacity: .45; text-align: center; }
.rk-linha__ava {
  width: 38px; height: 38px; border-radius: 50%; display: flex;
  align-items: center; justify-content: center; font-weight: 700; font-size: 13px;
  background: rgba(255,255,255,.08); border: 1px solid var(--line);
}
.rk-linha__id { min-width: 0; }
.rk-linha__id strong { display: block; font-size: 14.5px; }
.rk-linha__id span { display: block; font-size: 11px; opacity: .5; margin-top: 2px; }
.rk-linha__barra { height: 7px; border-radius: 5px; background: rgba(255,255,255,.08); overflow: hidden; }
.rk-linha__barra i { display: block; height: 100%; border-radius: 5px; }
.rk-linha__barra i.nf-ok   { background: linear-gradient(90deg,#3aa76d,#7ddba3); }
.rk-linha__barra i.nf-meio { background: linear-gradient(90deg,#d98324,#e0a23a); }
.rk-linha__barra i.nf-nao  { background: linear-gradient(90deg,#c62828,#e05c5c); }
.rk-linha__nota { font-size: 16px; font-weight: 700; text-align: right; }

.rk-vazio { text-align: center; padding: 46px 20px; border: 1px dashed var(--line); border-radius: 16px; }
.rk-vazio > div { font-size: 34px; margin-bottom: 10px; opacity: .6; }
.rk-vazio h3 { margin: 0 0 6px; font-size: 16px; }
.rk-vazio p { margin: 0; font-size: 12.5px; opacity: .55; }

@media (max-width: 820px) {
  .rk-kpis { grid-template-columns: 1fr 1fr; }
  .rk-destaques { grid-template-columns: 1fr; }
  .rk-linha { grid-template-columns: 28px 34px 1fr 58px; row-gap: 9px; gap: 10px; }
  .rk-linha__barra { grid-column: 1 / -1; }
  .rk-kpi b { font-size: 21px; }
}

.rk-cab { display: none; }
@media print {
  .rk-cab {
    display: block !important; text-align: center;
    border-bottom: 2px solid #ef121d !important; padding-bottom: 3mm !important; margin-bottom: 4mm !important;
  }
  .rk-cab__marca { font-size: 11pt; font-weight: 800; color: #ef121d !important; }
  .rk-cab h2 { font-size: 14pt; margin: 1mm 0 0; }
  .rk-cab p { font-size: 9pt; margin: 1mm 0 0; opacity: .8; }
  .rk-abas, .rk-vazio { display: none !important; }
  .rk-kpis { grid-template-columns: repeat(4, 1fr) !important; gap: 2mm !important; margin-bottom: 4mm !important; }
  .rk-kpi, .rk-destaque, .rk-linha {
    background: none !important; border: 1px solid #c4c4c8 !important;
    page-break-inside: avoid !important;
  }
  .rk-kpi { padding: 2.5mm !important; }
  .rk-kpi b { font-size: 15pt !important; }
  .rk-destaques { grid-template-columns: repeat(3, 1fr) !important; gap: 2mm !important; }
  .rk-destaque { padding: 2.5mm !important; }
  .rk-linha { padding: 2mm 3mm !important; margin-bottom: 1.5mm !important; }
  .rk-linha__ava { background: #eee !important; border: 1px solid #bbb !important; }
  .rk-linha__barra { background: #e8e8e8 !important; }
  #papRankImpressao, #papRankImpressao * { color: #111 !important; }
  .rk-linha__nota.nf-ok, .rk-kpi b.nf-ok { color: #1f8a4c !important; }
  .rk-linha__nota.nf-meio, .rk-kpi b.nf-meio { color: #b57414 !important; }
  .rk-linha__nota.nf-nao, .rk-kpi b.nf-nao { color: #c62828 !important; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

/* Impressao limpa: sem barra superior, menu ou moldura do app */
@media print {
  .topbar, .sidebar, #menu, .ai-float, .no-print,
  header, nav, .brand, .profile-card { display: none !important; }
  html, body, #app, .app, .main, .content, section.content {
    background: #fff !important; box-shadow: none !important;
    border: 0 !important; border-radius: 0 !important;
    margin: 0 !important; padding: 0 !important;
    max-width: none !important; width: auto !important;
  }
}

/* =====================================================================
   IMPRESSAO EM PAPEL BRANCO
   O tema escuro do app nao vai para o papel. Só as barras, os selos
   e as notas mantem cor; todo o resto sai preto no branco.
   Este bloco vem por ultimo e prevalece.
   ===================================================================== */
@media print {
  /* nada mais imprime fundo por conta propria */
  * { -webkit-print-color-adjust: economy !important; print-color-adjust: economy !important; }

  html, body { background: #fff !important; color: #111 !important; }

  /* qualquer caixa do app perde fundo e sombra */
  #papRankImpressao, #papRankImpressao *,
  #papFicha, #papFicha *,
  #papIndicacao, #papIndicacao *,
  .calendar-shell, .calendar-shell * {
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    color: #111 !important;
  }
  #papRankImpressao, #papFicha, #papIndicacao, .calendar-shell,
  .rk-kpi, .rk-destaque, .rk-linha, .rk-abas,
  .ind-cab, .ind-linha, .ind-podio__base, .ind-chip,
  .ficha, .card, section, article, div {
    background-color: transparent !important;
  }
  .rk-kpi, .rk-destaque, .rk-linha,
  .ind-linha, .ind-podio__base,
  .calendar-grid .day, .week-day-card {
    border: 1px solid #bdbdc2 !important;
  }
  .rk-kpi small, .rk-linha__id span, .rk-destaque small,
  .ind-linha__id p, .ind-linha__num span, .rk-kpi span,
  .ficha__dados span { color: #5a5a60 !important; }

  /* só estes mantem cor de verdade */
  .rk-linha__barra, .ind-card__bar,
  .rk-linha__barra i, .ind-card__bar i,
  .ind-podio .p1 .ind-podio__ava, .ind-podio__ava,
  .rk-linha__ava, .ind-linha__ava, .ind-chip,
  .calendar-grid .event, .week-event, .ficha__tab th {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .rk-linha__barra, .ind-card__bar { background-color: #e4e4e8 !important; }
  .rk-linha__ava, .ind-linha__ava { background-color: #ededf0 !important; border: 1px solid #b5b5bb !important; }
  .ind-chip { background-color: #f4f4f6 !important; border: 1px solid #ccc !important; }
  .ficha__tab th { background-color: #f0f0f2 !important; }
  .rk-linha__barra i.nf-ok   { background: #1f8a4c !important; }
  .rk-linha__barra i.nf-meio { background: #b57414 !important; }
  .rk-linha__barra i.nf-nao  { background: #c62828 !important; }

  /* notas e marca continuam coloridas */
  .nf-ok, .nota.ok       { color: #1f8a4c !important; }
  .nf-meio, .nota.meio   { color: #b57414 !important; }
  .nf-nao, .nota.nao     { color: #c62828 !important; }
  .rk-cab__marca, .ind-cab__marca, .ficha__marca { color: #ef121d !important; }
}
