/* Turnos y vacaciones */
.pgt-cab { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.pgt-nav { display: inline-flex; gap: 6px; align-items: center; }
.pgt-nav b { min-width: 9em; text-align: center; text-transform: capitalize; }
.pgt-modo { display: inline-flex; gap: 2px; }
.pgt-cols { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 14px; }
@media (max-width: 860px) { .pgt-cols { grid-template-columns: minmax(0, 1fr); } }

/* Rejilla del equipo */
.pgt-rej { max-width: 100%; overflow-x: auto; }
.pgt-tabla { border-collapse: separate; border-spacing: 0; font-size: 12.5px; }
.pgt-tabla th, .pgt-tabla td { text-align: center; padding: 4px 5px; vertical-align: middle; border-bottom: 1px solid var(--pg-borde, var(--borde)); }
.pgt-tabla thead th { white-space: nowrap; font-weight: 600; }
.pgt-tabla thead th.fin { color: var(--pg-texto-2); }
.pgt-tabla thead th.fes { color: var(--error, #b42318); }
.pgt-tabla thead th.hoy { box-shadow: inset 0 -3px 0 var(--pg-primario); }
.pgt-tabla .pgt-p { position: sticky; left: 0; z-index: 1; background: var(--superficie, #fff); text-align: left; min-width: 150px; }
.pgt-tabla .pgt-p small { display: block; color: var(--pg-texto-2); font-weight: 400; }
.pgt-tabla.mes td { min-width: 46px; font-size: 11px; }
.pgt-c { cursor: pointer; min-width: 74px; }
.pgt-c:hover { outline: 2px solid var(--pg-primario); outline-offset: -2px; }
.pgt-c.hoy { background: color-mix(in srgb, var(--pg-primario) 7%, transparent); }
.pgt-t { display: block; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pgt-libre { color: var(--pg-texto-2); }
.pgt-c.o-cambio, .pgt-muestra.o-cambio { background: #e8f1fd; }
.pgt-c.o-refuerzo, .pgt-muestra.o-refuerzo { background: #e6f6ec; }
.pgt-c.o-libre, .pgt-muestra.o-libre { background: #f1f1f4; }
.pgt-c.aus, .pgt-muestra.aus { background: #fff4d6; }
.pgt-c.aus.pend, .pgt-muestra.aus.pend { background: repeating-linear-gradient(135deg, #fff4d6 0 6px, #fffaf0 6px 12px); }
.pgt-c.fes, .pgt-muestra.fes { background: #fdecea; }
.pgt-au { display: block; font-weight: 600; color: #8a5a00; }
.pgt-au.peq { font-size: 10.5px; font-weight: 500; }
.pgt-fes { color: #b42318; font-weight: 600; }
.pgt-sede { display: inline-block; margin-top: 2px; font-style: normal; font-size: 10px; padding: 0 4px; border-radius: 4px; color: #fff; background: var(--c, #0e7c86); }
.pgt-tot { font-weight: 700; font-variant-numeric: tabular-nums; }
.pgt-muestra { display: inline-block; padding: 0 6px; border-radius: 4px; border: 1px solid var(--pg-borde, var(--borde)); }
.pgt-leyenda .pgt-t { display: inline; }

/* Calendario personal */
.pgt-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; font-size: 12px; }
.pgt-cal > b { text-align: center; color: var(--pg-texto-2); font-weight: 600; }
.pgt-dia { min-height: 58px; border: 1px solid var(--pg-borde, var(--borde)); border-radius: 6px; padding: 3px 5px; background: var(--superficie, #fff); }
.pgt-dia i { font-style: normal; font-weight: 700; display: block; }
.pgt-dia span { display: block; line-height: 1.25; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.pgt-dia.hoy { border-color: var(--pg-primario); box-shadow: 0 0 0 1px var(--pg-primario); }
.pgt-dia.fes { background: #fdecea; color: #b42318; }
.pgt-dia.aus { background: #fff4d6; }
.pgt-dia.aus.pend { background: repeating-linear-gradient(135deg, #fff4d6 0 6px, #fffaf0 6px 12px); }
.pgt-dia.o-cambio { background: #e8f1fd; }
.pgt-dia.o-refuerzo { background: #e6f6ec; }
.pgt-dia.o-libre { background: #f1f1f4; }

/* Saldo y solicitudes */
.pgt-barra { display: flex; height: 8px; border-radius: 4px; background: var(--superficie2, #eef1f4); overflow: hidden; margin: 10px 0 4px; }
.pgt-barra span { display: block; height: 100%; background: var(--pg-primario); }
.pgt-barra span.pend { background: #d98e04; opacity: .6; }
.pgt-aus li small { display: block; }
.pgt-solapes { margin-top: 6px; padding: 8px 10px; border-radius: 8px; background: #fff8e6; border: 1px solid #f3d38a; font-size: 13px; }
.pgt-solapes p { margin: 2px 0; }
.pgt-solapes ul { margin: 2px 0 4px 18px; padding: 0; }
.pgt-ok { color: var(--ok, #1a7f37); }
.pgt-dias { margin: 8px 0 4px; }
.pgt-sem th { text-align: left; width: 7em; }
.pgt-sem input { width: 100%; }
.pgt-atajos { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.pgt-nuevo-fes { align-items: end; margin-top: 12px; }
.pgt-neg { color: var(--error, #b42318); font-weight: 600; }
.pgt-pos { color: var(--pg-primario); font-weight: 600; }

/* Módulo del inicio */
.pgt-hoy { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pgt-hoy h4 { margin: 0 0 4px; font-size: 13px; }
.pgt-hoy ul { list-style: none; margin: 0; padding: 0; }
.pgt-hoy li { padding: 2px 0; }
.pgt-hoy li small { color: var(--pg-texto-2); }
.pgt-fes-hoy { margin: 0 0 8px; }
.pgt-pend { margin: 10px 0 0; padding-top: 8px; border-top: 1px solid var(--pg-borde, var(--borde)); }
@media (max-width: 520px) { .pgt-hoy { grid-template-columns: 1fr; } }

/* Modo oscuro */
[data-tema="oscuro"] .pgt-c.o-cambio, [data-tema="oscuro"] .pgt-dia.o-cambio, [data-tema="oscuro"] .pgt-muestra.o-cambio { background: #1d2c42; }
[data-tema="oscuro"] .pgt-c.o-refuerzo, [data-tema="oscuro"] .pgt-dia.o-refuerzo, [data-tema="oscuro"] .pgt-muestra.o-refuerzo { background: #17322a; }
[data-tema="oscuro"] .pgt-c.o-libre, [data-tema="oscuro"] .pgt-dia.o-libre, [data-tema="oscuro"] .pgt-muestra.o-libre { background: #2a2c33; }
[data-tema="oscuro"] .pgt-c.aus, [data-tema="oscuro"] .pgt-dia.aus, [data-tema="oscuro"] .pgt-muestra.aus { background: #3a3018; }
[data-tema="oscuro"] .pgt-c.aus.pend, [data-tema="oscuro"] .pgt-dia.aus.pend, [data-tema="oscuro"] .pgt-muestra.aus.pend { background: repeating-linear-gradient(135deg, #3a3018 0 6px, #2c2616 6px 12px); }
[data-tema="oscuro"] .pgt-c.fes, [data-tema="oscuro"] .pgt-dia.fes, [data-tema="oscuro"] .pgt-muestra.fes { background: #3b1f1f; color: #f4a3a3; }
[data-tema="oscuro"] .pgt-au { color: #f0c36b; }
[data-tema="oscuro"] .pgt-fes { color: #f4a3a3; }
[data-tema="oscuro"] .pgt-solapes { background: #332a14; border-color: #6b5520; }
