.prog-battery { background:#fff; border:1px solid #e5e7eb; border-radius:1rem; overflow:hidden; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.prog-battery__head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.5rem .75rem; padding:.85rem 1rem; background:#3f0201; color:#fff; }
.prog-battery__title { font-weight:700; font-size:.9rem; letter-spacing:.04em; text-transform:uppercase; line-height:1.3; }
.prog-battery__time { font-size:.7rem; letter-spacing:.05em; color:rgba(255,255,255,.8); text-transform:uppercase; white-space:nowrap; }
.prog-battery__list { list-style:none; margin:0; padding:0; }
.prog-item { display:flex; gap:.75rem; padding:.85rem 1rem; border-top:1px solid #f1f1f1; text-transform:uppercase; }
.prog-item:first-child { border-top:0; }
.prog-item__num { flex:0 0 auto; min-width:1.75rem; font-weight:700; font-size:.8rem; color:#9ca3af; padding-top:.1rem; }
.prog-item__body { flex:1 1 auto; min-width:0; }
.prog-item__line { font-size:.78rem; line-height:1.45; color:#4b5563; margin:0; overflow-wrap:anywhere; }
.prog-item__line + .prog-item__line, .prog-item__line + .prog-cast-toggle { margin-top:.2rem; }
.prog-item__label { font-weight:700; color:#681919; }
.prog-item__line:first-child { color:#3f0201; font-weight:600; font-size:.85rem; }
.prog-cast-toggle { display:inline-flex; align-items:center; gap:.4rem; margin-top:.35rem; padding:.25rem .65rem; font-size:.68rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:#681919; background:#fdf6f6; border:1px solid #e7caca; border-radius:9999px; cursor:pointer; }
.prog-cast-toggle:hover { background:#f9eaea; }
.prog-cast { margin-top:.35rem; }
.prog-marker { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; padding:.7rem 1rem; border-radius:.75rem; font-size:.8rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.prog-marker--break { background:#f5f0e8; border:1px solid #e6dcc9; color:#8a6d3b; }
.prog-marker--period { background:#3f0201; color:#fff; }
.prog-marker__time { margin-left:auto; font-weight:500; font-size:.7rem; opacity:.8; }
@media (max-width:480px) {
  .prog-battery__time { white-space:normal; }
  .prog-item { padding:.75rem; gap:.5rem; }
}
.prog-item__school { font-size:.72rem; font-weight:700; letter-spacing:.05em; color:#6b7280; margin:0 0 .15rem; }
.prog-item__chips { display:flex; flex-wrap:wrap; gap:.3rem; margin-top:.45rem; }
.prog-chip { display:inline-flex; align-items:center; gap:.25rem; padding:.1rem .5rem; font-size:.62rem; font-weight:600; letter-spacing:.04em; color:#475569; background:#f1f5f9; border:1px solid #e2e8f0; border-radius:9999px; }
.prog-chip--cat { color:var(--cat); background:color-mix(in srgb,var(--cat) 10%,#fff); border-color:color-mix(in srgb,var(--cat) 35%,#fff); }
.prog-chip--mod { color:hsl(var(--h) 55% 32%); background:hsl(var(--h) 70% 95%); border-color:hsl(var(--h) 55% 80%); }
.prog-battery { --cat:#681919; border-left:6px solid var(--cat); }
.prog-battery__head { background:var(--cat); }
.prog-cat--baby { --cat:#db2777; }
.prog-cat--infantil { --cat:#2563eb; }
.prog-cat--mista { --cat:#0d9488; }
.prog-cat--juvenil { --cat:#7c3aed; }
.prog-cat--senior { --cat:#ea580c; }
.prog-cat--master { --cat:#a16207; }
.prog-cat--maturidade { --cat:#475569; }
.prog-item__num { color:var(--cat); font-size:.95rem; }
