/* (MANTÉN TODO LO ANTERIOR y agrega/reemplaza esto) */

.gvb-grid-meses { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important; gap: 20px !important; font-family: Arial, sans-serif; }
.gvb-mes-card { background: white; padding: 15px; border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,0.1); text-align: center; }
.gvb-dias-semana, .gvb-dias-numeros { display: grid !important; grid-template-columns: repeat(7, 1fr) !important; gap: 5px !important; }
.gvb-dia { height: 30px; display: flex; align-items: center; justify-content: center; font-size: 13px; border-radius: 50%; color: #333; }
.tiene-viaje { cursor: pointer; color: white !important; font-weight: bold; }
.tiene-viaje.azul { background-color: #0073aa !important; }
.tiene-viaje.rojo { background-color: #e63946 !important; }

/* MODALES */
.gvb-modal { position: fixed; top:0; left:0; width:100%; height:100%; background: rgba(0,0,0,0.7); z-index: 99999; display: flex; justify-content: center; align-items: center; }
.gvb-modal-content { background: white; padding: 20px; border-radius: 10px; width: 90%; max-width: 400px; position: relative; text-align: center; }
.gvb-modal-content.large { max-width: 360px; max-height: 90vh; overflow-y: auto; }
.close { position: absolute; right: 10px; top: 5px; font-size: 24px; cursor: pointer; }

/* ASIENTOS */
.irizar-layout { display: grid; grid-template-columns: 1fr 1fr 30px 1fr 1fr; gap: 8px; background: #e0e0e0; padding: 15px; border-radius: 20px; margin-top: 10px; }
.seat-front {
    height: 35px; background: #4CAF50; color: white; border-radius: 5px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid #388E3C; font-weight: bold; cursor: default;
}
.seat-front.occupied { background: #F44336 !important; border-color: #D32F2F !important; }
.seat-front.selected { background: #2196F3 !important; border: 2px solid #0D47A1 !important; transform: scale(1.1); box-shadow: 0 0 10px rgba(0,0,0,0.3); }

.wc-area { grid-column: 4 / 6; background: #bbb; border-radius: 5px; display: flex; align-items: center; justify-content: center; font-size: 12px; color: white; font-weight: bold;}
.fila-final { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; margin-top: 10px; }

/* PICKER Y BOTONES */
.gvb-input-full { width: 100%; padding: 8px; margin-bottom: 5px; border: 1px solid #ccc; border-radius: 4px; }
.gvb-picker-group { display: flex; gap: 5px; margin-bottom: 5px; }
.btn-toggle-new { background: #2196F3; color: white; border: none; border-radius: 4px; width: 30px; cursor: pointer; font-weight: bold; font-size: 16px;}

.gvb-leyenda { margin-top: 10px; font-size: 12px; display: flex; justify-content: center; gap: 15px; }
.dot { width: 10px; height: 10px; display: inline-block; border-radius: 50%; margin-right: 5px; }
.dot.verde { background: #4CAF50; }
.dot.rojo { background: #F44336; }
.dot.azul { background: #2196F3; }

.btn-admin { background: #2196F3; color: white; border: none; padding: 10px; width: 100%; border-radius: 5px; cursor: pointer; font-weight: bold; font-size: 14px;}
.btn-guardar { background: #F44336; color: white; border: none; padding: 10px; width: 100%; border-radius: 5px; margin-top: 10px; cursor: pointer; }
.btn-liberar { background: #4CAF50; color: white; border: none; padding: 10px; width: 100%; border-radius: 5px; margin-top: 5px; cursor: pointer; }
.btn-cancelar { background: #ccc; border: none; padding: 8px; width: 100%; border-radius: 5px; margin-top: 5px; cursor: pointer; }
.btn-viaje { display: block; width: 100%; padding: 15px; margin: 10px 0; background: linear-gradient(90deg, #2b5876, #4e4376); color: white; border: none; border-radius: 20px; cursor: pointer; font-size: 16px; }

/* (Mantén todo el CSS anterior y agrega esto al final) */

/* TABLA DE PAGOS */
.gvb-pagos-wrapper {
    background: #f1f1f1;
    padding: 10px;
    border-radius: 5px;
    margin-bottom: 10px;
    border: 1px solid #ddd;
}

.gvb-tabla-pagos {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    margin-top: 5px;
    background: white;
}

.gvb-tabla-pagos th, .gvb-tabla-pagos td {
    border: 1px solid #ddd;
    padding: 5px;
    text-align: center;
}

.gvb-tabla-pagos th {
    background: #eee;
    font-weight: bold;
}

.btn-eliminar-pago {
    color: red;
    cursor: pointer;
    font-weight: bold;
    font-size: 14px;
}

.gvb-add-pago-row {
    display: flex;
    gap: 5px;
    margin-bottom: 5px;
    align-items: center;
}

.gvb-resumen-pago {
    font-weight: bold;
    text-align: right;
    margin-top: 5px;
    font-size: 13px;
}

.texto-rojo { color: #d32f2f; }
.texto-verde { color: #388E3C; }


/* ESTILOS PARA ASIENTOS PENDIENTES (SOLICITUDES) */
.dot.naranja { background: #FF9800; }
.seat-front.pending { background: #FF9800 !important; border-color: #F57C00 !important; }