.check-field{display:flex;align-items:center;gap:8px;min-height:42px}.check-field input[type=checkbox]{width:20px;min-width:20px;flex:none}
.mixed-payment{width:100%;background:#fffdf3;border:1px solid #ecdfa4;border-radius:12px;padding:18px;margin:12px 0;min-width:0}
.mixed-payment h3{margin:0 0 6px}.mixed-payment-row,.activity-parameter-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(140px,1fr) auto;gap:12px;align-items:end;margin:12px 0}.mixed-payment-row label{min-width:0}.mixed-payment-row input,.mixed-payment-row select{width:100%;min-width:0}.mixed-payment-total{font-weight:700;margin-bottom:0}
.activity-parameter-row{grid-template-columns:minmax(100px,1fr) 100px auto auto;border-bottom:1px solid #eee;padding-bottom:12px}.activity-parameter-row input:not([type=checkbox]),.activity-parameter-row select{min-width:0;width:100%}
.liquidation-pay{flex-wrap:wrap}.liquidation-pay .mixed-payment{flex-basis:100%}.liquidation-payment .mixed-payment{flex-basis:100%}
.liquidation-almuerzo{color:#b90918}.reservation-student-data{background:#fffdf3;border:1px solid #eadc98;border-radius:9px;padding:14px;margin-bottom:14px}.reservation-student-data h3{margin-top:0!important}.reservation-student-data p{margin:5px 0;overflow-wrap:anywhere}
#booking-detail:has(#detail-cuenta:not([hidden])){width:min(1350px,96vw)}#detail-cuenta{margin:16px 26px;max-height:none}#detail-cuenta[hidden]{display:none}
@media(max-width:700px){.mixed-payment-row,.activity-parameter-row{grid-template-columns:minmax(0,1fr)}.mixed-payment{padding:14px}.mixed-payment-row button{justify-self:start}#detail-cuenta{margin:12px 16px}.activity-parameter-row .check-field{min-width:0}}

/* Agenda, gastos y alertas: actualización 30/09 */
.reserve-slot,.unavailable-slot{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;white-space:normal;overflow-wrap:anywhere}.reserve-slot small,.unavailable-slot small{display:block;font-size:12px}.slot-occupant{border-top:1px solid #ddd;padding-top:5px;width:100%}
.content:has(.admin-module-gastos){max-width:none;width:100%}.admin-module-gastos{width:100%;max-width:none}.admin-module-gastos .admin-table-scroll{width:100%}
#alerta-vencimientos.vehicle-expiry-dialog{width:min(1250px,96vw);max-width:96vw;max-height:90vh;padding:28px;border-top:6px solid var(--yellow);overflow:auto}#alerta-vencimientos table{min-width:760px}#alerta-vencimientos td{vertical-align:top}#alerta-vencimientos .primary{margin-top:20px}
@media(max-width:700px){#alerta-vencimientos.vehicle-expiry-dialog{padding:16px}.content:has(.admin-module-gastos){padding:18px 14px}}

/* Actualización conjunta: cupos, estados de gastos y campos obligatorios. */
.capacity-grid{display:grid;gap:14px}.capacity-slot{border:1px solid #e6e6e6;border-radius:14px;padding:14px;background:#fff}.capacity-slot>header{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;border-bottom:3px solid #f5c400;padding-bottom:10px;margin-bottom:10px}.capacity-counts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.capacity-counts span{background:#e6e6e6;border-radius:8px;padding:6px 8px;font-size:.85rem}.capacity-counts .pending{background:#d9f1ff;color:#28546e}.capacity-counts .confirmed{background:#e0f4e5;color:#226638}.capacity-slot .booking-card{display:block;width:100%;margin:7px 0;text-align:left;height:auto;min-height:65px;padding:12px;border:0;border-radius:10px}.capacity-resources{margin-top:10px;font-size:.85rem}.capacity-resources p{margin:7px 0}.capacity-resources .activity-card{width:100%;height:auto;margin:4px 0;padding:8px}.capacity-slot .reserve-slot{width:100%;margin-top:8px}.required-mark{color:#b90918;font-size:.72em;font-weight:700;vertical-align:super;margin-left:3px}.expenses-state-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.expenses-state-heading h2{margin:0}.expenses-state-section{margin-top:20px}.student-reactivation{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}.reports-filter-note{grid-column:1/-1}.reports-table-wrap{max-height:none}.capacity-slot .booking-realizada{background:#2466b4;color:#fff}.capacity-slot .booking-cancelada{background:#fbe4e7;color:#b90918}.capacity-slot .booking-pendiente{background:#d9f1ff;color:#28546e}.capacity-slot .booking-confirmada{background:#def2e3;color:#226638}

/* Grilla diaria con escala horaria y bloques completos de reserva. */
.agenda-time-grid{position:relative;display:block;margin-top:12px;margin-left:0;min-height:120px;background:repeating-linear-gradient(to bottom,#fff 0,#fff 59px,#e6e6e6 59px,#e6e6e6 60px);border:1px solid #e6e6e6;border-radius:0;overflow:visible}
.agenda-time-label{position:absolute;left:0;width:48px;font-size:11px;padding:4px 2px;color:#555;background:#fff;z-index:1}
.agenda-time-grid .capacity-slot{position:absolute;left:49px;right:0;margin:0;padding:3px 4px;border:1px solid #e6e6e6;border-radius:0;background:#fff;box-sizing:border-box}
.agenda-time-grid .capacity-slot>header{padding:0;margin:0;border:0;font-size:11px;line-height:15px}
.agenda-time-grid .capacity-counts{margin:0;gap:4px;font-size:10px;line-height:14px}
.agenda-time-grid .capacity-counts span{padding:0 3px;border-radius:3px;font-size:10px}
.capacity-bookings{display:flex;gap:3px;align-items:stretch}
.agenda-time-grid .capacity-slot .booking-card,.agenda-time-grid .capacity-slot .reserve-slot{flex:1;min-width:0;width:auto;margin:3px 0 0;min-height:54px;height:auto;padding:4px;border-radius:3px;font-size:11px;text-align:left}
.agenda-time-grid .booking-card small,.agenda-time-grid .reserve-slot small{display:block;font-size:10px;line-height:13px}
.agenda-time-grid .capacity-resources{display:inline-block;margin:1px 7px 0 0;font-size:10px}
.agenda-time-grid .capacity-resources[open]{position:relative;z-index:5;background:#fff;padding:10px;border:1px solid #f5c400;box-shadow:0 4px 15px #7774}
.agenda-time-grid .capacity-slot .hint{margin:4px;font-size:11px}
@media(max-width:700px){.agenda-time-grid .capacity-bookings{flex-wrap:wrap}.agenda-time-grid .capacity-slot{position:relative;top:auto!important;margin-left:49px;left:0;min-height:120px!important}.agenda-time-grid{height:auto!important}.agenda-time-label{display:none}}

/* Una sola franja coloreada; todos los datos dentro de la reserva. */
.agenda-time-grid .capacity-slot{border:0;background:transparent;padding:2px 4px}
.agenda-time-grid .capacity-bookings{min-height:calc(120px - 4px);height:100%;padding-right:17px;box-sizing:border-box}
.agenda-time-grid .capacity-slot .booking-card,.agenda-time-grid .capacity-slot .reserve-slot{margin:0;padding:8px;min-height:112px;border-radius:4px;display:flex;flex-direction:column;justify-content:center;border:1px solid #ffffff}
.agenda-time-grid .booking-card strong,.agenda-time-grid .reserve-slot strong{font-size:12px;line-height:16px}
.agenda-time-grid .slot-summary{margin-top:5px;font-size:10px;line-height:13px;font-weight:400}
.agenda-time-grid .slot-options{position:absolute;right:1px;top:6px;padding:0;width:21px;height:25px;border:1px solid #e6e6e6;background:#fff;color:#555;border-radius:4px;font-weight:bold;z-index:2}
.agenda-time-grid dialog .capacity-resources{display:block;margin:12px 0;font-size:14px}
.agenda-time-grid dialog .capacity-resources[open]{position:static;box-shadow:none;border:0;padding:0}
.agenda-time-grid .capacity-bookings>.hint{width:100%;padding:10px;background:#f4f4f4;box-sizing:border-box;margin:0;border:1px solid #e6e6e6}

/* Horarios reacomodados: conservar columnas y evitar superposiciones en móvil. */
@media(max-width:700px){.agenda-time-grid .capacity-slot{left:0!important;right:auto!important;width:calc(100% - 49px)!important}.agenda-time-grid .reacomodacion-bloqueada{position:relative!important;top:auto!important;margin-left:49px;left:0!important;right:auto!important}}

/* Motivo de otras actividades visible en la propia franja. */
.agenda-time-grid .agenda-activity-reason{flex:1;min-width:0;min-height:112px;margin:0;padding:8px;border:1px solid #d5b5ee;border-left:4px solid #b18bd3;border-radius:4px;background:#f0e2fa;color:#62447b;display:flex;flex-direction:column;justify-content:center;text-align:left;white-space:normal}
.agenda-time-grid .agenda-activity-reason strong{font-size:12px;line-height:16px}
.agenda-time-grid .agenda-activity-reason small{display:block;font-size:10px;line-height:13px}
.agenda-time-grid .agenda-activity-reason:disabled{opacity:1;cursor:default}
