/*
 * calendario-escolar.css — Calendario escolar (portal /calendario-escolar, banda de portada y editor del admin).
 * Solo tokens del UIKit (--se-*). Cada tipo de evento se distingue por color, FORMA y nombre: el relleno del día es un
 * ::before con forma (flecha, círculo, esquina, barra, rayado) y las marcas combinables un ::after o el estilo del número
 * (contorno punteado o continuo, anillo, subrayado, rombo). Propuestas al UIKit: vista anual (.se-calendar-year),
 * leyenda filtrable con muestras y marcas combinables de día (ver docs/calendario-escolar.md).
 */
:root {
    --pv-cal-inicio: var(--se-primary-fill);
    --pv-cal-cte: var(--se-secondary);
    --pv-cal-susp: var(--se-chart-5);
    --pv-cal-sobre-susp: var(--se-on-primary);
    --pv-cal-vac: var(--se-tertiary);
    --pv-cal-calif: var(--se-warning);
    --pv-cal-calif-tinta: var(--se-warning-text);
    --pv-cal-pre: var(--se-info);
}
[data-theme="dark"] {
    --pv-cal-sobre-susp: var(--se-body-bg);
    --pv-cal-vac: color-mix(in oklab, var(--se-tertiary) 55%, var(--se-card-bg));
}

/* ---------- Encabezado: entrada + tarjeta «hoy» ---------- */
.pv-cal-heroe { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; align-items: start; margin-top: .5rem; }
@media (max-width: 980px) { .pv-cal-heroe { grid-template-columns: minmax(0, 1fr); gap: 28px; } }
.pv-cal-heroe h1 { max-width: none; }
.pv-cal-acciones { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1.5rem; }
.pv-cal-acciones .pv-btn small { font-weight: var(--se-weight-medium); opacity: .85; }
.pv-cal-ayuda { margin: .6rem 0 0; font-size: var(--se-text-sm); color: var(--se-fg-muted); max-width: 60ch; }
.pv-cal-datos { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin: 1.2rem 0 0; padding: 0; list-style: none; font-size: var(--se-text-md); color: var(--se-fg-body); }
.pv-cal-datos li { display: flex; align-items: center; gap: .45rem; }
.pv-cal-datos i { color: var(--se-primary-text); }
.pv-cal-aviso { margin-top: 1rem; }

.pv-cal-hoy { border: 1px solid var(--se-border); border-radius: var(--se-radius-xl); background: var(--se-card-bg); box-shadow: var(--se-shadow-sm); overflow: hidden; }
.pv-cal-hoy-head { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.15rem; border-bottom: 1px solid var(--se-border-light); }
.pv-cal-hoy-fecha { display: grid; place-items: center; flex: 0 0 auto; width: 3.2rem; height: 3.2rem; border-radius: var(--se-radius-lg); background: var(--se-primary-subtle); color: var(--se-primary-text); line-height: 1; font-weight: var(--se-weight-xbold); }
.pv-cal-hoy-fecha b { font-size: 1.35rem; }
.pv-cal-hoy-fecha small { font-size: var(--se-text-xs); font-weight: var(--se-weight-xbold); letter-spacing: .06em; text-transform: uppercase; }
.pv-cal-hoy-estado { margin: 0; font-size: 1.05rem; font-weight: var(--se-weight-xbold); color: var(--se-fg-strong); }
.pv-cal-hoy-sub { margin: 0; font-size: var(--se-text-sm); color: var(--se-fg-muted); }
.pv-cal-hoy-filas { margin: 0; padding: .35rem 1.15rem; list-style: none; }
.pv-cal-hoy-filas li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .7rem 0; border-bottom: 1px solid var(--se-border-light); }
.pv-cal-hoy-filas li:last-child { border-bottom: 0; }
.pv-cal-hoy-filas strong { display: block; color: var(--se-fg-strong); font-size: var(--se-text-md); }
.pv-cal-hoy-filas span { font-size: var(--se-text-sm); color: var(--se-fg-muted); }
.pv-cal-cuenta { text-align: right; line-height: 1; color: var(--se-fg-strong); }
.pv-cal-cuenta b { display: block; font-size: 1.6rem; font-weight: var(--se-weight-xbold); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.pv-cal-cuenta small { font-size: var(--se-text-xs); font-weight: var(--se-weight-bold); color: var(--se-fg-muted); }
.pv-cal-avance { padding: .85rem 1.15rem 1.05rem; background: var(--se-subtle-bg); border-top: 1px solid var(--se-border-light); }
.pv-cal-avance-top { display: flex; justify-content: space-between; font-size: var(--se-text-sm); font-weight: var(--se-weight-bold); color: var(--se-fg-body); margin-bottom: .4rem; }
.pv-cal-avance-barra { height: .5rem; border-radius: var(--se-radius-pill); background: var(--se-border); overflow: hidden; }
.pv-cal-avance-barra span { display: block; height: 100%; background: var(--se-primary-hover); border-radius: inherit; }

/* ---------- Próximos eventos (tira, mismo idioma que .pv-feed) ---------- */
.pv-cal-prox { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--se-border); border-radius: var(--se-radius-lg); overflow: hidden; background: var(--se-card-bg); }
@media (max-width: 900px) { .pv-cal-prox { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pv-cal-prox { grid-template-columns: minmax(0, 1fr); } }
.pv-cal-prox li { border-left: 1px solid var(--se-border); border-top: 1px solid var(--se-border); margin: -1px 0 0 -1px; }
.pv-cal-prox a { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .3rem .9rem; height: 100%; padding: 1.1rem 1.15rem; color: inherit; text-decoration: none; }
.pv-cal-prox a:hover { background: var(--se-subtle-bg); }
.pv-cal-prox a:hover .pv-cal-prox-titulo { text-decoration: underline; }
.pv-cal-prox a:focus-visible { outline: 0; box-shadow: inset var(--se-focus-ring); }
.pv-cal-prox-fecha { grid-row: span 3; text-align: center; width: 3rem; line-height: 1; }
.pv-cal-prox-fecha b { display: block; font-size: 1.55rem; color: var(--se-crimson-text); font-weight: var(--se-weight-xbold); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.pv-cal-prox-fecha small { font-size: var(--se-text-xs); font-weight: var(--se-weight-xbold); letter-spacing: .08em; color: var(--se-fg-muted); text-transform: uppercase; }
.pv-cal-prox-tipo { display: flex; align-items: center; gap: .4rem; font-size: var(--se-text-sm); font-weight: var(--se-weight-bold); color: var(--se-fg-body); }
.pv-cal-prox-titulo { font-weight: var(--se-weight-bold); color: var(--se-fg-strong); font-size: var(--se-text-md); line-height: 1.25; }
.pv-cal-prox-cuando { font-size: var(--se-text-sm); color: var(--se-fg-muted); }

/* ---------- Barra de vistas y filtros ---------- */
.pv-cal-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: .85rem 1rem; border: 1px solid var(--se-border); border-radius: var(--se-radius-lg); background: var(--se-card-bg); margin-bottom: 1rem; }
.pv-cal-barra-calendario { font-size: var(--se-text-sm); font-weight: var(--se-weight-bold); color: var(--se-fg-strong); }
@media (max-width: 720px) {
    .pv-cal-barra .se-segmented { width: 100%; }
    .pv-cal-barra .se-segmented-opt { flex: 1 1 0; justify-content: center; }
}
.pv-cal-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: 1.25rem; align-items: start; }
@media (max-width: 1100px) { .pv-cal-cuerpo { grid-template-columns: minmax(0, 1fr); } }
.pv-cal-lado { position: sticky; top: 1rem; display: flex; flex-direction: column; gap: 1rem; }
@media (max-width: 1100px) { .pv-cal-lado { position: static; } }
.pv-cal-vista[hidden] { display: none !important; }

/* ---------- Leyenda: color + forma + texto, y es filtro ---------- */
.pv-cal-leyenda { border: 1px solid var(--se-border); border-radius: var(--se-radius-xl); background: var(--se-card-bg); padding: .9rem 1rem; }
.pv-cal-leyenda h3 { font-size: var(--se-text-md); font-weight: var(--se-weight-xbold); color: var(--se-fg-strong); margin: 0 0 .5rem; display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
.pv-cal-leyenda h3 small { font-size: var(--se-text-xs); font-weight: var(--se-weight-semibold); color: var(--se-fg-muted); }
.pv-cal-leyenda ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .1rem; }
.pv-cal-ley { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: .55rem; padding: .3rem .35rem; border-radius: var(--se-radius-md); font-size: var(--se-text-sm); color: var(--se-fg-strong); cursor: pointer; margin: 0; }
.pv-cal-ley:hover { background: var(--se-subtle-bg); }
.pv-cal-ley input { width: 1rem; height: 1rem; accent-color: var(--se-primary-hover); margin: 0; }
.pv-cal-ley:has(input:focus-visible) { box-shadow: var(--se-focus-ring); }
.pv-cal-ley-cuenta { font-size: var(--se-text-xs); color: var(--se-fg-muted); font-variant-numeric: tabular-nums; }
.pv-cal-ley.is-off { color: var(--se-fg-muted); }
.pv-cal-ley.is-off .pv-cal-dia { opacity: .35; }
.pv-cal-ley--fija { cursor: default; grid-template-columns: 1rem auto minmax(0, 1fr) auto; }
.pv-cal-ley--fija:hover { background: none; }
.pv-cal-leyenda-pie { margin: .6rem 0 0; font-size: var(--se-text-xs); color: var(--se-fg-muted); }

/* ---------- Vista anual ---------- */
.pv-cal-anio { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 1240px) { .pv-cal-anio { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .pv-cal-anio { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; } }
@media (max-width: 420px) { .pv-cal-anio { grid-template-columns: minmax(0, 1fr); } }
.pv-cal-mes { border: 1px solid var(--se-border); border-radius: var(--se-radius-xl); background: var(--se-card-bg); padding: .6rem .6rem .7rem; min-width: 0; }
.pv-cal-mes.is-current { border-color: var(--se-primary-border); box-shadow: 0 0 0 1px var(--se-primary-border); }
.pv-cal-mes-head { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; margin: 0 .15rem .35rem; }
.pv-cal-mes-head h3 { margin: 0; font-size: var(--se-text-md); font-weight: var(--se-weight-xbold); color: var(--se-fg-strong); }
.pv-cal-mes-head h3 span { font-weight: var(--se-weight-semibold); color: var(--se-fg-muted); }
.pv-cal-mes-head small { white-space: nowrap; font-size: var(--se-text-xs); color: var(--se-fg-muted); font-weight: var(--se-weight-semibold); }
.pv-cal-rejilla { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.pv-cal-rejilla abbr { text-decoration: none; text-align: center; font-size: var(--se-text-xs); font-weight: var(--se-weight-xbold); color: var(--se-fg-muted); padding-bottom: .15rem; }
.pv-cal-vacio { display: block; }

/* Día: botón cuadrado; el relleno es un ::before con forma (así el foco no se recorta) */
.pv-cal-dia { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 1; min-height: 24px; padding: 0; border: 0; border-radius: var(--se-radius-md); background: none; color: var(--se-fg-strong); font: inherit; font-size: var(--se-text-xs); font-weight: var(--se-weight-semibold); font-variant-numeric: tabular-nums; cursor: pointer; isolation: isolate; }
.pv-cal-dia > b { position: relative; z-index: 2; font-weight: inherit; line-height: 1; }
.pv-cal-dia::before, .pv-cal-dia::after { content: ""; position: absolute; inset: 1px; z-index: 0; border-radius: var(--se-radius-md); pointer-events: none; }
.pv-cal-dia::after { z-index: 1; }
button.pv-cal-dia:hover { background: var(--se-subtle-bg); }
.pv-cal-dia:focus-visible { outline: 0; box-shadow: var(--se-focus-ring); z-index: 3; }
.pv-cal-dia.is-weekend { color: var(--se-fg-muted); font-weight: var(--se-weight-medium); }
.pv-cal-dia[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--se-fg-strong); z-index: 3; }
.pv-cal-dia.is-today::after { inset: -2px; border: 2px solid var(--se-quaternary); border-radius: var(--se-radius-lg); }
/* rellenos */
.pv-cal-dia[data-relleno="inicio"], .pv-cal-dia[data-relleno="fin"] { color: var(--se-on-primary); font-weight: var(--se-weight-xbold); }
.pv-cal-dia[data-relleno="inicio"]::before { background: var(--pv-cal-inicio); clip-path: polygon(0 0, 72% 0, 100% 50%, 72% 100%, 0 100%); border-radius: 0; }
.pv-cal-dia[data-relleno="fin"]::before { background: var(--pv-cal-inicio); clip-path: polygon(28% 0, 100% 0, 100% 100%, 28% 100%, 0 50%); border-radius: 0; }
.pv-cal-dia[data-relleno="suspension"] { color: var(--pv-cal-sobre-susp); font-weight: var(--se-weight-xbold); }
.pv-cal-dia[data-relleno="suspension"]::before { background: var(--pv-cal-susp); border-radius: var(--se-radius-circle); inset: 2px; }
.pv-cal-dia[data-relleno="cte-intensiva"] { color: var(--se-on-primary); font-weight: var(--se-weight-xbold); }
.pv-cal-dia[data-relleno="cte-intensiva"]::before { background: var(--pv-cal-cte); }
.pv-cal-dia[data-relleno="cte"] { color: var(--se-fg-strong); font-weight: var(--se-weight-xbold); }
.pv-cal-dia[data-relleno="cte"]::before { background: linear-gradient(225deg, var(--pv-cal-cte) 0 26%, transparent 26%), color-mix(in oklab, var(--pv-cal-cte) 20%, var(--se-card-bg)); }
.pv-cal-dia[data-relleno="calificaciones"] { font-weight: var(--se-weight-xbold); }
.pv-cal-dia[data-relleno="calificaciones"]::before { background: linear-gradient(to top, var(--pv-cal-calif-tinta) 0 18%, transparent 18%), color-mix(in oklab, var(--pv-cal-calif) 26%, var(--se-card-bg)); }
.pv-cal-dia[data-relleno="vacaciones"] { color: var(--se-fg-strong); }
.pv-cal-dia[data-relleno="vacaciones"]::before { background: var(--pv-cal-vac); }
.pv-cal-dia[data-relleno="receso"]::before { background: repeating-linear-gradient(135deg, var(--se-border) 0 2px, transparent 2px 6px); }
/* marcas combinables */
.pv-cal-dia[data-marcas~="resultados"]::after { border: 1.5px dashed var(--pv-cal-calif-tinta); }
.pv-cal-dia[data-marcas~="preinscripcion"]::after { border: 2px solid var(--pv-cal-pre); }
.pv-cal-dia[data-marcas~="jornada"]::after { border: 1.5px solid var(--se-fg-strong); border-radius: var(--se-radius-circle); inset: 2px; }
.pv-cal-dia[data-marcas~="conmemorativo"] > b { font-weight: var(--se-weight-xbold); text-decoration: underline 2px; text-underline-offset: 2px; }
.pv-cal-dia[data-marcas~="estatal"] > b { font-weight: var(--se-weight-xbold); }
.pv-cal-dia > i { position: absolute; z-index: 2; top: 1px; right: 1px; width: .42rem; height: .42rem; background: var(--se-primary-text); transform: rotate(45deg); }
.pv-cal-dia.is-today[data-marcas]::after { border-style: solid; }
.pv-cal-dia.is-changed::after { border: 2px solid var(--se-quaternary); }
/* Muestra (leyenda, listas, pinceles): la misma celda en chico y sin interacción */
.pv-cal-dia.pv-cal-muestra { width: 1.5rem; min-height: 0; flex: 0 0 auto; font-size: var(--se-text-xs); cursor: default; }

/* ---------- Panel del día seleccionado ---------- */
.pv-cal-panel { border: 1px solid var(--se-border); border-radius: var(--se-radius-xl); background: var(--se-card-bg); box-shadow: var(--se-shadow-sm); }
.pv-cal-panel-head { padding: .95rem 1rem .8rem; border-bottom: 1px solid var(--se-border-light); }
.pv-cal-panel-head h3 { margin: 0; font-size: var(--se-text-lg); font-weight: var(--se-weight-xbold); color: var(--se-fg-strong); }
.pv-cal-panel-head p { margin: 0; }
.pv-cal-clases { display: inline-flex; align-items: center; gap: .4rem; margin-top: .35rem; font-size: var(--se-text-sm); font-weight: var(--se-weight-bold); }
.pv-cal-clases.is-yes { color: var(--se-success-text); }
.pv-cal-clases.is-no { color: var(--se-secondary-text); }
.pv-cal-panel-eventos { list-style: none; margin: 0; padding: .4rem 1rem .8rem; display: flex; flex-direction: column; }
.pv-cal-panel-eventos li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .25rem .7rem; padding: .7rem 0; border-bottom: 1px solid var(--se-border-light); }
.pv-cal-panel-eventos li:last-child { border-bottom: 0; }
.pv-cal-panel-eventos .pv-cal-muestra { width: 1.8rem; }
.pv-cal-panel-eventos strong { color: var(--se-fg-strong); font-size: var(--se-text-md); line-height: 1.3; }
.pv-cal-panel-eventos p { margin: .15rem 0 0; font-size: var(--se-text-sm); }
.pv-cal-panel-acciones { grid-column: 2; display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .35rem; }
.pv-cal-panel-vacio { padding: 1rem; margin: 0; font-size: var(--se-text-sm); color: var(--se-fg-muted); }

/* ---------- Vista de mes (.se-calendar-month del kit) ---------- */
.pv-cal-mesvista-head { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-bottom: .75rem; }
.pv-cal-mesvista-head h3 { margin: 0; font-size: var(--se-text-lg); font-weight: var(--se-weight-xbold); color: var(--se-fg-strong); }
.pv-cal .se-calendar-day { min-height: 6rem; }
.pv-cal .se-calendar-day.is-weekend { background: var(--se-subtle-bg); }
.pv-cal .se-calendar-day.is-holiday .se-calendar-day-note { color: var(--se-secondary-text); }
.pv-cal .se-calendar-day.is-selected { box-shadow: inset 0 0 0 2px var(--se-fg-strong); }
.pv-cal .se-calendar-day .se-event--inline { font-size: var(--se-text-xs); }
.pv-cal-mesvista-eventos { margin: 1.25rem 0 .5rem; font-size: var(--se-text-md); font-weight: var(--se-weight-xbold); color: var(--se-fg-strong); }

/* ---------- Lista por mes (.se-agenda del kit) ---------- */
.pv-cal-lista-mes { margin-bottom: 1.25rem; }
.pv-cal-lista-mes[hidden] { display: none; }
.pv-cal-lista-mes h3 { font-size: var(--se-text-lg); font-weight: var(--se-weight-xbold); color: var(--se-fg-strong); margin: 0 0 .5rem; display: flex; align-items: baseline; gap: .6rem; }
.pv-cal-lista-mes h3 small { font-size: var(--se-text-sm); font-weight: var(--se-weight-semibold); color: var(--se-fg-muted); }
.pv-cal ul.se-agenda { list-style: none; margin: 0; padding: 0; }
.pv-cal .se-agenda-day[hidden] { display: none; }
.pv-cal .se-agenda-item { text-align: left; grid-template-columns: 2.5rem minmax(0, 1fr) auto; }
.pv-cal .se-agenda-item-text strong, .pv-cal .se-agenda-item-text span { white-space: normal; }
.pv-cal .se-agenda-item.is-past strong { color: var(--se-fg-muted); }
.pv-cal .se-agenda-item .pv-cal-muestra { width: 1.6rem; }
.pv-cal-lista-vacio { margin: 0; padding: .75rem 1rem; border: 1px dashed var(--se-border); border-radius: var(--se-radius-lg); font-size: var(--se-text-sm); color: var(--se-fg-muted); }
@media (max-width: 560px) {
    .pv-cal .se-agenda-day { grid-template-columns: minmax(0, 1fr); gap: .3rem; padding: .7rem; }
    .pv-cal .se-agenda-item { grid-template-columns: auto minmax(0, 1fr); row-gap: .35rem; }
    .pv-cal .se-agenda-item > .se-badge { display: inline-flex; grid-column: 2; justify-self: start; }
}
.pv-cal-fuente { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: var(--se-text-sm); color: var(--se-fg-muted); }
.pv-cal-fuente a { color: var(--se-primary-text); }

/* ---------- Banda de portada ---------- */
.pv-cal-banda { display: grid; grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); border: 1px solid var(--se-border); border-radius: var(--se-radius-lg); background: var(--se-card-bg); overflow: hidden; }
.pv-cal-banda-lead { padding: 1.3rem 1.4rem; background: var(--se-primary-subtle); display: flex; flex-direction: column; gap: .35rem; }
.pv-cal-banda-lead .pv-kicker { color: var(--se-primary-text); }
.pv-cal-banda-lead strong { font-size: 1.15rem; color: var(--se-fg-strong); line-height: 1.25; }
.pv-cal-banda-lead > span { font-size: var(--se-text-md); color: var(--se-fg-body); }
.pv-cal-banda-lead .pv-cal-cuenta { text-align: left; margin-top: .4rem; }
.pv-cal-banda .pv-cal-prox { border: 0; border-radius: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .pv-cal-banda { grid-template-columns: minmax(0, 1fr); } .pv-cal-banda .pv-cal-prox { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Administración (editor del ciclo) ---------- */
.adic-cal-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.adic-cal-cols--ancha { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
@media (max-width: 1100px) { .adic-cal-cols, .adic-cal-cols--ancha { grid-template-columns: minmax(0, 1fr); } }
.adic-cal-pinceles { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0 0 .75rem; padding: 0; border: 0; }
.adic-cal-pinceles legend { font-size: var(--se-text-sm); font-weight: var(--se-weight-xbold); color: var(--se-fg-strong); margin-bottom: .35rem; }
.adic-cal-pincel { position: relative; display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .55rem .3rem .35rem; border: 1px solid var(--se-border); border-radius: var(--se-radius-pill); font-size: var(--se-text-xs); font-weight: var(--se-weight-bold); color: var(--se-fg-strong); cursor: pointer; background: var(--se-card-bg); margin: 0; }
.adic-cal-pincel .pv-cal-muestra { width: 1.35rem; }
.adic-cal-pincel:has(input:checked) { background: var(--se-primary-subtle); border-color: var(--se-primary-border); color: var(--se-primary-text); }
.adic-cal-pincel:has(input:focus-visible) { box-shadow: var(--se-focus-ring); }
.adic-cal-pincel input { position: absolute; opacity: 0; pointer-events: none; }
.adic-cal-rejilla .pv-cal-anio { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
@media (max-width: 560px) { .adic-cal-rejilla .pv-cal-anio { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.adic-cal-rejilla .pv-cal-mes { padding: .45rem; }
.adic-cal-documento { border: 1px solid var(--se-border); border-radius: var(--se-radius-lg); background: var(--se-subtle-bg); min-height: 12rem; display: flex; flex-direction: column; }
.adic-cal-documento iframe { display: block; width: 100%; height: 40rem; border: 0; border-radius: inherit; background: var(--se-card-bg); }
.adic-cal-documento-vacio { margin: auto; padding: 1.5rem; text-align: center; font-size: var(--se-text-sm); color: var(--se-fg-muted); }
.adic-cal-herr { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: space-between; margin-bottom: .6rem; }
.adic-cal-ayuda { margin: 0 0 .75rem; font-size: var(--se-text-sm); color: var(--se-fg-muted); }
.adic-cal-motivo { display: block; font-size: var(--se-text-sm); color: var(--se-fg-muted); }
.adic-cal-conteo { font-size: var(--se-text-sm); color: var(--se-fg-body); }
.adic-cal-conteo strong { color: var(--se-fg-strong); }
.adic-cal-grupo td { background: var(--se-subtle-bg) !important; font-weight: var(--se-weight-xbold); color: var(--se-fg-strong); font-size: var(--se-text-sm); }
.adic-cal-tipo { display: inline-flex; align-items: center; gap: .5rem; }
.adic-cal-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.adic-cal-checks li { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); gap: .6rem; font-size: var(--se-text-sm); }
.adic-cal-checks i { margin-top: .2rem; }
.adic-cal-checks .is-ok i { color: var(--se-success-text); }
.adic-cal-checks .is-aviso i { color: var(--se-warning-text); }
.adic-cal-checks .is-error i { color: var(--se-danger-text); }
.adic-cal-checks strong { color: var(--se-fg-strong); }
.adic-cal-mini .pv-cal-anio { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; }
.adic-cal-mini .pv-cal-mes { padding: .3rem; }
.adic-cal-mini .pv-cal-dia { min-height: 0; font-size: .55rem; }
.adic-cal-mini .pv-cal-rejilla abbr { font-size: .5rem; }
.adic-cal-mini .pv-cal-mes-head h3 { font-size: var(--se-text-xs); }
.adic-cal-codigo { font-family: var(--se-font-mono); font-size: var(--se-text-xs); background: var(--se-subtle-bg); border: 1px solid var(--se-border); border-radius: var(--se-radius-lg); padding: .75rem; overflow-x: auto; white-space: pre; color: var(--se-fg-strong); margin: 0; max-height: 18rem; }
.adic-cal-archivo { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem; padding: .8rem 1rem; border: 1px solid var(--se-border); border-radius: var(--se-radius-lg); }
.adic-cal-archivo > i { font-size: 1.6rem; color: var(--se-secondary-text); }
.adic-cal-archivo strong { display: block; color: var(--se-fg-strong); font-size: var(--se-text-md); }
.adic-cal-archivo span { font-size: var(--se-text-sm); color: var(--se-fg-muted); }

/* ---------- Impresión: encabezado + año + leyenda ---------- */
.pv-cal-solo-impresion { display: none; }
@media print {
    @page { size: letter landscape; margin: 10mm; }
    .pv-statebar, .pv-masthead, .pv-footer, .pv-cal-acciones, .pv-cal-ayuda, .pv-cal-hoy, .pv-cal-sigue, .pv-cal-barra, .pv-cal-panel,
    .pv-cal-fuente, .pv-cal-ley input, .pv-cal-leyenda-pie, .pv-cal-leyenda h3 small, .pv-migas, .pv-crest, .pv-cal-vista:not(.pv-cal-vista--anio),
    .se-skip-link, #acc-boton, .pv-acc { display: none !important; }
    .pv-cal-vista--anio { display: block !important; }
    .pv-cal-solo-impresion { display: block; margin-bottom: 6px; }
    body, html { background: var(--se-card-bg); }
    .pv-phead { background: none; border: 0; } .pv-phead .pv-wrap { padding: 0 0 8px; }
    .pv-phead h1 { font-size: 1.4rem; }
    .pv-section { padding: 0; }
    .pv-cal-cuerpo { grid-template-columns: minmax(0, 1fr) 13rem; }
    .pv-cal-anio { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 6px; }
    .pv-cal-mes { break-inside: avoid; padding: 4px; }
    .pv-cal-lado { position: static; }
    .pv-cal-dia, .pv-cal-dia::before, .pv-cal-dia::after { print-color-adjust: exact; -webkit-print-color-adjust: exact; min-height: 0; }
}
