/* Widget de índice de horários [dnp_horarios] — dois formatos:
   "cards" (referencia/widget-horarios.html) e "lista"
   (referencia/widgets-rodada2.html, seção 3). Mesmos tokens de cor de
   dnp-resultado.css, com os que faltam para os dois protótipos
   (verde-vivo, cinza, bordas neutras). Escopado a .dnp-horarios/.dnp-lista-wrap. */
:root{
  --dnp-verde-esc:#0d3a22;
  --dnp-verde:#14512f;
  --dnp-verde-vivo:#0e7a43;
  --dnp-ouro-forte:#d8b755;
  --dnp-texto:#0b2a19;
  --dnp-linha:#e6efe9;
  --dnp-borda:#cfe3d5;
  --dnp-borda-forte:#8fc3a5;
  --dnp-cinza:#6c8177;
}
.dnp-horarios,
.dnp-horarios *,
.dnp-lista-wrap,
.dnp-lista-wrap *{box-sizing:border-box}
.dnp-horarios,
.dnp-lista-wrap{
  font-family:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
}

/* =========================================================
   formato="cards"
   ========================================================= */
.dnp-horarios{max-width:1060px;margin:0 auto 25px}
.dnp-horarios-titulo{
  margin:0 0 12px;text-align:center;
  font-size:1rem;font-weight:800;color:var(--dnp-verde);
}
.dnp-horarios-grade{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(132px,345px));
  justify-content:center;
  gap:12px;
}
.dnp-hora-card{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;
  width:100%;max-width:345px;margin:0 auto;
  min-height:118px;padding:14px 10px;
  background:#fff;
  border:1.5px solid var(--dnp-borda);
  border-radius:11px;
  color:inherit;text-decoration:none;text-align:center;
  scroll-margin-top:80px;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.dnp-hora-card:hover,.dnp-hora-card:focus-visible{
  border-color:var(--dnp-borda-forte);
  box-shadow:0 8px 20px rgba(9,42,25,.09);
  transform:translateY(-2px);
  outline:none;
}
.dnp-hora-card:focus-visible{outline:2px solid var(--dnp-verde);outline-offset:2px}
.dnp-hora-ico{width:22px;height:22px;color:var(--dnp-verde-vivo);margin-bottom:4px}
.dnp-hora-ico svg{width:100%;height:100%;display:block}
.dnp-hora-num{
  font-size:1.62rem;font-weight:800;line-height:1.05;
  color:var(--dnp-verde-vivo);letter-spacing:-.02em;
}
.dnp-hora-sigla{
  font-size:.82rem;font-weight:800;color:var(--dnp-texto);
  margin-top:1px;
}
.dnp-hora-desc{
  font-size:.76rem;font-weight:600;color:var(--dnp-verde-vivo);
  margin-top:5px;
}

/* ---- selo de estado (estado="sim") ---- */
.dnp-hora-card[data-estado]{position:relative}
.dnp-hora-card[data-estado="aguardando"]{border-color:#e6d29a;background:#fffdf7}
.dnp-hora-card[data-estado="aguardando"] .dnp-hora-num,
.dnp-hora-card[data-estado="aguardando"] .dnp-hora-ico{color:#b08419}
.dnp-hora-card[data-estado="aguardando"] .dnp-hora-desc{color:#8a7742}
.dnp-hora-selo{
  display:inline-flex;align-items:center;gap:4px;
  margin-top:6px;padding:2px 8px;
  border-radius:999px;
  font-size:.63rem;font-weight:800;letter-spacing:.02em;
}
.dnp-hora-card[data-estado="apurado"] .dnp-hora-selo{background:#e8f4ec;color:#15703f}
.dnp-hora-card[data-estado="aguardando"] .dnp-hora-selo{background:#fbf1d8;color:#8a6a15}
.dnp-hora-ponto{
  width:6px;height:6px;border-radius:50%;background:currentColor;
  animation:dnp-horarios-pulso 1.6s ease-in-out infinite;
}
@keyframes dnp-horarios-pulso{0%,100%{opacity:1}50%{opacity:.4}}
@media (prefers-reduced-motion:reduce){.dnp-hora-ponto{animation:none}}

@media (max-width:640px){
  .dnp-horarios-grade{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .dnp-hora-card{min-height:104px;padding:11px 6px;border-radius:10px}
  .dnp-hora-num{font-size:1.24rem}
  .dnp-hora-sigla{font-size:.72rem}
  .dnp-hora-desc{font-size:.66rem;margin-top:3px}
  .dnp-hora-ico{width:18px;height:18px}
}
@media (max-width:380px){
  .dnp-horarios-grade{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* =========================================================
   formato="lista"
   ========================================================= */
.dnp-lista-wrap{max-width:900px;margin:0 auto}
.dnp-lista-titulo{text-align:center;font-size:1.15rem;font-weight:900;color:var(--dnp-verde-esc);margin:0 0 4px}
.dnp-lista-linha{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 16px}
.dnp-lista-linha .trevo{color:var(--dnp-ouro-forte);font-size:1.1rem}
.dnp-lista-linha::before,.dnp-lista-linha::after{content:"";flex:1;max-width:120px;height:1px;background:var(--dnp-linha)}
.dnp-lista-grade{display:grid;grid-template-columns:1fr;gap:10px}
.dnp-lista-item{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:54px;padding:12px 46px 12px 16px;background:#fff;
  border:1px solid var(--dnp-borda);border-left:5px solid var(--dnp-verde-vivo);border-radius:13px;
  text-decoration:none;color:inherit;
  scroll-margin-top:80px;
}
.dnp-lista-item:focus-visible{outline:2px solid var(--dnp-verde);outline-offset:2px}
.dnp-lista-item[data-estado="fora_da_grade"]{border-left-color:#a02727}
.dnp-lista-item[data-estado="aguardando"]{border-left-color:#a66a00}
.dnp-lista-nome{font-size:.95rem;font-weight:800;color:var(--dnp-texto)}
.dnp-lista-status{font-size:.78rem;font-weight:800;color:var(--dnp-verde-vivo)}
.dnp-lista-item[data-estado="fora_da_grade"] .dnp-lista-status{color:#922323}
.dnp-lista-item[data-estado="aguardando"] .dnp-lista-status{color:#855500}
.dnp-lista-seta{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--dnp-verde-vivo);font-size:20px;font-weight:800}
.dnp-lista-obs{margin:14px 4px 0;font-size:.8rem;color:var(--dnp-cinza);line-height:1.5;text-align:center}
@media(max-width:640px){.dnp-lista-grade{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  .dnp-hora-card,.dnp-lista-item{transition:none !important}
}
