/* ============================================================================
   KPI Dossiê — redesign completo dos popups de métrica (Desempenho Global)
   01/07/2026. Mesmo sistema de design do Dossiê da Mesa de Decisão: o casco
   reaproveita as classes globais .md-modal / .md-mo (backdrop translúcido +
   card sólido premium). Esta folha adiciona só a camada de GRÁFICOS (.kpop-).
   Numerais mono (vocabulário Bloomberg). Sem emojis.
   ========================================================================== */

/* Hero — número/medidor principal */
.kpop-hero {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 4px 2px 18px;
  border-bottom: 1px solid var(--border-card, rgba(255, 255, 255, 0.07));
  margin-bottom: 4px;
}
.kpop-hero__side { flex: 1; min-width: 0; }
.kpop-hero__big {
  font-family: var(--font-mono, monospace);
  font-size: 46px;
  font-weight: 750;
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.kpop-hero__unit { font-size: 20px; font-weight: 600; opacity: 0.7; margin-left: 2px; }
.kpop-hero__cap {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--text-secondary, #b4b8c0);
}
.kpop-hero__sub {
  margin-top: 6px;
  font-family: var(--font-mono, monospace);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  color: var(--text-muted, #8a8f98);
}

/* Ring — medidor radial (métricas percentuais) */
.kpop-ring { position: relative; flex-shrink: 0; width: 120px; height: 120px; }
.kpop-ring svg { transform: rotate(-90deg); overflow: visible; }
.kpop-ring__track { fill: none; stroke: rgba(255, 255, 255, 0.08); }
.kpop-ring__arc { fill: none; stroke-linecap: round; transition: stroke-dashoffset 0.6s cubic-bezier(0.16, 1, 0.3, 1); }
.kpop-ring__center {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.kpop-ring__val {
  font-family: var(--font-mono, monospace);
  font-size: 27px; font-weight: 750; line-height: 1;
  letter-spacing: -0.02em; font-variant-numeric: tabular-nums;
}
.kpop-ring__lbl {
  font-family: var(--font-mono, monospace);
  font-size: 8px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--text-muted, #8a8f98); margin-top: 3px;
}

/* Barras horizontais (por horizonte, rankings) */
.kpop-bars { display: flex; flex-direction: column; gap: 9px; }
.kpop-bar { display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 10px; }
.kpop-bar__lbl {
  font-family: var(--font-mono, monospace);
  font-size: 11px; font-weight: 600; color: var(--text-secondary, #b4b8c0);
}
.kpop-bar__track {
  height: 9px; border-radius: 6px;
  background: rgba(255, 255, 255, 0.06); overflow: hidden; position: relative;
}
.kpop-bar__fill {
  height: 100%; border-radius: 6px;
  background: linear-gradient(90deg, currentColor, color-mix(in srgb, currentColor 55%, transparent));
  width: 0; animation: kpop-grow 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes kpop-grow { from { width: 0; } }
.kpop-bar__val {
  font-family: var(--font-mono, monospace);
  font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums;
  min-width: 46px; text-align: right;
}
.kpop-bar__sub { font-size: 9px; color: var(--text-muted, #8a8f98); font-weight: 400; }

/* Régua/escala com marcador (onde a métrica cai vs limiares) */
.kpop-ladder { padding: 6px 2px 2px; }
.kpop-ladder__track {
  position: relative; height: 10px; border-radius: 6px; overflow: hidden;
  display: flex;
}
.kpop-ladder__zone { height: 100%; }
.kpop-ladder__marker {
  position: absolute; top: -4px; width: 3px; height: 18px; border-radius: 2px;
  background: #fff; box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.45), 0 0 10px rgba(255, 255, 255, 0.5);
  transform: translateX(-50%);
}
.kpop-ladder__ticks {
  position: relative; margin-top: 7px; height: 14px;
  font-family: var(--font-mono, monospace); font-size: 9px; color: var(--text-muted, #8a8f98);
}
.kpop-ladder__tick { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.kpop-ladder__cur {
  margin-top: 12px; font-family: var(--font-mono, monospace); font-size: 11px;
  color: var(--text-secondary, #b4b8c0);
}
.kpop-ladder__cur b { font-size: 13px; }

/* Distribuição (segmentos empilhados: calibração, percentis) */
.kpop-dist__bar {
  display: flex; height: 26px; border-radius: 8px; overflow: hidden; gap: 2px;
  background: rgba(255, 255, 255, 0.04);
}
.kpop-dist__seg {
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono, monospace); font-size: 10px; font-weight: 700; color: #06070d;
  min-width: 0; overflow: hidden; white-space: nowrap;
  transition: flex-grow 0.5s ease;
}
.kpop-dist__legend {
  display: flex; flex-wrap: wrap; gap: 10px 16px; margin-top: 10px;
}
.kpop-dist__key {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 10.5px; color: var(--text-secondary, #b4b8c0);
}
.kpop-dist__dot { width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0; }

/* Split bar (UP vs DOWN, viés) */
.kpop-split { display: flex; height: 30px; border-radius: 8px; overflow: hidden; }
.kpop-split__part {
  display: flex; align-items: center; gap: 6px; padding: 0 12px;
  font-family: var(--font-mono, monospace); font-size: 12px; font-weight: 700; color: #fff;
}
.kpop-split__part--l { justify-content: flex-start; }
.kpop-split__part--r { justify-content: flex-end; }

/* Grade de mini-stats (cartõezinhos como as células de veredito do Dossiê) */
.kpop-cells {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 1px;
  background: var(--border-card, rgba(255, 255, 255, 0.07));
  border: 1px solid var(--border-card, rgba(255, 255, 255, 0.07));
  border-radius: 12px; overflow: hidden;
}
.kpop-cell { background: var(--bg-card, #11131a); padding: 12px 14px; }
.kpop-cell__k {
  font-family: var(--font-mono, monospace); font-size: 8.5px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted, #8a8f98);
}
.kpop-cell__v {
  margin-top: 5px; font-family: var(--font-mono, monospace); font-size: 17px;
  font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text-primary, #f4f4f6);
}
.kpop-cell__sub { margin-top: 2px; font-size: 9.5px; color: var(--text-muted, #8a8f98); }

/* Linhas simples (reaproveita a pegada do Dossiê) */
.kpop-rows { display: flex; flex-direction: column; }
.kpop-row {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 8px 2px; border-bottom: 1px solid rgba(255, 255, 255, 0.04); font-size: 12.5px;
}
.kpop-row:last-child { border-bottom: none; }
.kpop-row__k { color: var(--text-secondary, #b4b8c0); }
.kpop-row__v {
  font-family: var(--font-mono, monospace); font-weight: 600; font-size: 13px;
  font-variant-numeric: tabular-nums; text-align: right;
}

/* Checklist de referências (limiares atingidos) */
.kpop-checks { display: flex; flex-direction: column; gap: 7px; }
.kpop-check {
  display: flex; align-items: center; gap: 9px; font-size: 12px;
  color: var(--text-secondary, #b4b8c0);
}
.kpop-check__ic {
  width: 17px; height: 17px; border-radius: 50%; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800;
}
.kpop-check--on  .kpop-check__ic { background: rgba(34, 197, 94, 0.16); color: #22c55e; }
.kpop-check--off .kpop-check__ic { background: rgba(255, 255, 255, 0.06); color: var(--text-muted, #8a8f98); }
.kpop-check--off { opacity: 0.6; }

/* Lista de previsões recentes (popup de horizonte) */
.kpop-recents { display: flex; flex-direction: column; }
.kpop-rec {
  display: grid; grid-template-columns: 1fr auto 16px 18px 58px; align-items: center; gap: 10px;
  padding: 7px 2px; border-bottom: 1px solid rgba(255, 255, 255, 0.04); font-size: 12px;
}
.kpop-rec:last-child { border-bottom: none; }
.kpop-rec__tk { font-weight: 600; color: var(--text-secondary, #b4b8c0); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpop-rec__dt { font-family: var(--font-mono, monospace); font-size: 10.5px; color: var(--text-muted, #8a8f98); }
.kpop-rec__dir { font-size: 12px; text-align: center; }
.kpop-rec__st { text-align: center; font-family: var(--font-mono, monospace); font-size: 11px; }
.kpop-rec__err { font-family: var(--font-mono, monospace); font-weight: 700; font-size: 11.5px; text-align: right; font-variant-numeric: tabular-nums; }
.kpop-recents__empty, .kpop-recents__load { padding: 16px; text-align: center; color: var(--text-muted, #8a8f98); font-size: 11.5px; }

/* Tema claro — legendas dos segmentos precisam de texto escuro só onde há fundo claro */
.light-theme .kpop-ring__track { stroke: rgba(0, 0, 0, 0.08); }
.light-theme .kpop-bar__track { background: rgba(0, 0, 0, 0.06); }
.light-theme .kpop-ladder__marker { background: #0f172a; box-shadow: 0 0 0 2px rgba(255,255,255,0.6); }
