.calendario-empleado { padding: 1.25rem; margin-block: 1.25rem; border: 1px solid var(--app-border, #d4e0e4); border-radius: var(--app-radius-panel); background: var(--app-surface, #fff); color: var(--app-text, #263b49); min-width: 0; }
.calendario-empleado h2, .calendario-empleado h3, .calendario-empleado p { margin: 0 0 .75rem; }
.calendario-empleado-cabecera, .calendario-empleado-controles { display: flex; flex-wrap: wrap; gap: .75rem; align-items: end; justify-content: space-between; }
.calendario-empleado-controles label { display: grid; gap: .25rem; font-size: .9rem; }
.calendario-empleado-controles input, .calendario-empleado-controles button { min-height: 44px; padding: .5rem .75rem; max-width: 100%; border: 1px solid var(--app-border, #d4e0e4); border-radius: var(--app-radius-control); color: inherit; background: var(--app-surface, #fff); font: inherit; }
.calendario-empleado-controles input { width: 7rem; }
.calendario-empleado-controles :focus-visible { outline: 2px solid var(--teal-dark, #24676f); outline-offset: 3px; }
.calendario-empleado-distribucion { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .38fr); gap: 1.25rem; margin-top: 1rem; align-items: start; }
.calendario-empleado-vista-anual, .calendario-empleado-listado { min-width: 0; }
.calendario-empleado-anual { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: .625rem; margin-bottom: .75rem; }
.calendario-empleado-tarjeta-mes { min-width: 0; padding: .5rem; border: 1px solid var(--app-border, #d4e0e4); border-radius: var(--app-radius-panel); background: var(--app-surface, #fff); }
.calendario-empleado-tarjeta-mes h3 { margin: -.5rem -.5rem .375rem; padding: .375rem .5rem; border-bottom: 1px solid var(--app-border, #d4e0e4); border-radius: var(--app-radius-panel) var(--app-radius-panel) 0 0; background: var(--app-surface-strong, #edf4f4); font-size: .85rem; text-transform: capitalize; text-align: center; }
.calendario-empleado-mes { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .1875rem; }
.calendario-empleado-dia, .calendario-empleado-semana { display: grid; place-items: center; min-height: 1.5rem; padding: .125rem; font-size: .75rem; }
.calendario-empleado-semana { min-height: 1.25rem; font-weight: 700; }
.calendario-empleado-dia { border-radius: var(--app-radius-compact); }
.calendario-empleado .fin-semana { border-bottom: 2px solid var(--app-muted, #566c78); }
.calendario-empleado .sin-calendario { opacity: .5; }
.calendario-empleado .es-festivo { background: var(--gp-primary, #62c2c4); color: #18343a; font-weight: 700; }
.calendario-empleado { --app-festivo-nacional-fondo: #fecaca; --app-festivo-nacional-texto: #8f1111; --app-festivo-autonomico-fondo: #bfdbfe; --app-festivo-autonomico-texto: #1e40af; --app-festivo-local-fondo: #e2f5a8; --app-festivo-local-texto: #3f6212; }
.theme-dark .calendario-empleado { --app-festivo-nacional-fondo: #8f2525; --app-festivo-nacional-texto: #fecaca; --app-festivo-autonomico-fondo: #24499c; --app-festivo-autonomico-texto: #bfdbfe; --app-festivo-local-fondo: #46681b; --app-festivo-local-texto: #d9f99d; }
.calendario-empleado .es-nacional { background: var(--app-festivo-nacional-fondo); color: var(--app-festivo-nacional-texto); font-weight: 700; }
.calendario-empleado .es-autonomico { background: var(--app-festivo-autonomico-fondo); color: var(--app-festivo-autonomico-texto); font-weight: 700; }
.calendario-empleado .es-local { background: var(--app-festivo-local-fondo); color: var(--app-festivo-local-texto); font-weight: 700; }
.calendario-empleado-tipos { display: flex; flex-wrap: wrap; gap: .375rem; margin-bottom: .5rem; }
.calendario-empleado-tipo { display: inline-block; padding: .125rem .375rem; border-radius: var(--app-radius-compact); font-size: .7rem; line-height: 1.4; }
.calendario-empleado [aria-current="date"] { outline: 2px solid var(--teal-dark, #24676f); outline-offset: 1px; }
.calendario-empleado-listado { padding-left: 1rem; border-left: 1px solid var(--app-border, #d4e0e4); font-size: .8rem; }
.calendario-empleado-listado h3 { font-size: .9rem; }
.calendario-empleado-periodos { margin-top: 1rem; font-size: .75rem; overflow-wrap: anywhere; }
.calendario-empleado-festivos { list-style: none; margin: 0; padding: 0; }
.calendario-empleado-festivos li { display: flex; gap: .625rem; padding-block: .4rem; border-bottom: 1px solid var(--app-border, #d4e0e4); }
.calendario-empleado-festivos time { white-space: nowrap; }
.calendario-empleado-festivos span { min-width: 0; overflow-wrap: anywhere; }
.calendario-empleado-festivos .calendario-empleado-tipo { margin-inline-start: .25rem; vertical-align: middle; white-space: nowrap; }
@media (max-width: 900px) { .calendario-empleado-distribucion { grid-template-columns: minmax(0, 1fr); } .calendario-empleado-listado { padding-left: 0; border-left: 0; } }
@media (max-width: 600px) { .calendario-empleado { padding: 1rem; } .calendario-empleado-dia { min-height: 1.875rem; font-size: .8rem; } }
