/* Calendario semanal de horarios — usa los tokens de style.css */
.map-frame { aspect-ratio: 16 / 9; min-height: 320px; border: 1px solid var(--tao-line); border-radius: var(--radius); overflow: hidden; background: var(--tao-white); box-shadow: var(--shadow-card); }
.map-frame iframe { width: 100%; height: 100%; border: 0; display: block; }

.hor-filtros { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.hor-chip { border: 1px solid var(--tao-line); background: var(--tao-white); color: var(--tao-ink); border-radius: 999px; padding: .4rem .95rem; font-weight: 500; font-size: .9rem; cursor: pointer; }
.hor-chip:hover { border-color: var(--tao-red); color: var(--tao-red); }
.hor-chip.is-on { background: var(--tao-red); border-color: var(--tao-red); color: var(--tao-white); }

.hor-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .6rem; align-items: start; }
.hor-dia { background: var(--tao-white); border: 1px solid var(--tao-line); border-radius: var(--radius); padding: .6rem; min-height: 9rem; }
.hor-dia.is-hoy { border-color: var(--tao-red); box-shadow: inset 0 3px 0 var(--tao-red); }
.hor-dia-titulo { font-size: .95rem; margin: 0 0 .6rem; display: flex; justify-content: space-between; align-items: center; gap: .3rem; }
.hor-hoy { font-size: .7rem; font-weight: 600; color: var(--tao-white); background: var(--tao-red); border-radius: 999px; padding: .05rem .5rem; }
.hor-nada { font-size: .8rem; color: var(--tao-ink-soft); margin: 0; }

.hor-clase { --c: var(--tao-red); display: block; border-left: 4px solid var(--c); background: var(--tao-paper); border-radius: 4px; padding: .45rem .55rem; margin-bottom: .5rem; color: var(--tao-ink); line-height: 1.3; }
.hor-clase:hover, .hor-clase:focus-visible { background: #f4e9e0; text-decoration: none; color: var(--tao-ink); }
.hor-clase span { display: block; }
.hor-hora { font-weight: 700; font-size: .85rem; }
.hor-consultar { font-weight: 600; font-style: italic; color: var(--tao-ink-soft); }
.hor-act { font-size: .82rem; }
.hor-sede { font-size: .75rem; font-weight: 600; color: var(--c); }
.hor-sede-0 { --c: #aa0000; } .hor-sede-1 { --c: #b5741a; } .hor-sede-2 { --c: #2f6b4f; }
.hor-sede-3 { --c: #2c5a8c; } .hor-sede-4 { --c: #7a3b8f; } .hor-sede-5 { --c: #8a5a44; } .hor-sede-6 { --c: #3d6f7a; } .hor-sede-7 { --c: #b04a2a; }

@media (max-width: 991.98px) {
  .hor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .hor-grid { grid-template-columns: 1fr; }
  .hor-dia.is-vacio:not(.is-hoy) { display: none; }
  .hor-dia { min-height: 0; }
}
