/* ==========================================================================
   GESTOR VENTAS - CSS MAESTRO (VERSIÓN FINAL)
   ========================================================================== */

/* 1. VARIABLES & RESET */
:root {
    --bg: #f0f0f1; --panel: #ffffff; --line: #e2e8f0; --ink: #0f172a; --text: #1f2937;
    --primary: #0ea5e9; --danger: #e11d48; --success: #22c55e;
    --rad: 4px; /* Bordes cuadrados */
}

body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 12px; }
.gv-container { max-width: 1200px; margin: 20px auto; }

/* 2. BREAKOUT FORMULARIO */
#gv-ops-fin-form {
    width: 98vw !important; position: relative !important; left: 50% !important; right: 50% !important;
    margin-left: -49vw !important; margin-right: -49vw !important; max-width: none !important;
    background: #fff; padding: 20px; box-sizing: border-box; box-shadow: 0 4px 10px rgba(0,0,0,0.05);
    border-radius: 4px; margin-top: 15px; z-index: 10;
}
@media (max-width: 768px) {
    #gv-ops-fin-form { width: 100% !important; left: auto !important; margin-left: 0 !important; margin-right: 0 !important; }
}

/* 3. MEJORA VISUAL: RESUMEN DE VENTA (CARD 1) */
/* Inputs más limpios y etiquetas más discretas */
.gv-readonly-label { 
    font-size: 10px; color: #94a3b8; font-weight: 700; 
    text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; 
}
.gv-readonly-field { 
    background: #f8fafc; border: 1px solid #e2e8f0; 
    padding: 6px 8px; width: 100%; font-size: 13px; 
    font-weight: 500; color: #334155; border-radius: 3px;
    box-shadow: none;
}
/* Quitar borde al input de solo lectura si se desea un look más plano */
.gv-readonly-field:read-only:focus { outline: none; border-color: #cbd5e1; }


/* 4. TABLAS EXCEL (ESTILO CLÁSICO & DEVOLUCIONES) */
.gv-excel-table { width: 100%; border-collapse: collapse; font-size: 12px; background: #fff; margin-bottom: 20px; }
.gv-excel-table th { 
    border: 1px solid #cbd5e1; padding: 6px; 
    text-transform: uppercase; font-weight: 700; font-size: 11px; 
    background: #f1f5f9; color: #475569; white-space: nowrap; 
}
.gv-excel-table td { border: 1px solid #cbd5e1; padding: 0; height: 30px; position: relative; }

/* INPUTS DENTRO DE TABLA */
.gv-excel-table input, .gv-excel-table select, .gv-excel-table textarea { 
    width: 100%; border: none; padding: 0 6px; font-size: 12px; margin: 0; 
    background: transparent; height: 100%; display: block; box-sizing: border-box; color: #334155;
    outline: none;
}
.gv-excel-table input:focus, .gv-excel-table select:focus { box-shadow: inset 0 0 0 1px var(--primary); background: #fff; }

/* 5. ESTILOS DE CABECERAS DE SECCIÓN */
.gv-excel-header-ops { background: #1e3a8a !important; color: #fff !important; padding: 8px; margin-top: 20px; font-weight:700; text-transform: uppercase; letter-spacing: 0.5px; }
.gv-excel-header-hotel { background: #0ea5e9 !important; color: #fff !important; padding: 8px; margin-top: 20px; font-weight:700; text-transform: uppercase; letter-spacing: 0.5px; }
.gv-excel-header-tren { background: #374151 !important; color: #fff !important; padding: 8px; margin-top: 20px; font-weight:700; text-transform: uppercase; letter-spacing: 0.5px; }
.gv-excel-header-vuelo { background: #0f766e !important; color: #fff !important; padding: 8px; margin-top: 20px; font-weight:700; text-transform: uppercase; letter-spacing: 0.5px; }

/* Cabecera Roja para Devoluciones (Opcional, si quieres diferenciarla) */
.gv-header-refund { background: #b91c1c !important; color: #fff !important; padding: 8px; margin-top: 20px; font-weight:700; text-transform: uppercase; }


/* 6. LÓGICA DE PAGOS PENDIENTES (FILA ROJA) */
tr.gv-row-unpaid { background-color: #fee2e2 !important; }
tr.gv-row-unpaid td { background-color: #fee2e2 !important; border-color: #fca5a5 !important; }
tr.gv-row-unpaid input, tr.gv-row-unpaid select, tr.gv-row-unpaid textarea { 
    background-color: #fee2e2 !important; color: #991b1b !important; font-weight: 600;
}
tr.gv-row-unpaid input:focus, tr.gv-row-unpaid select:focus { 
    background-color: #fff !important; color: #334155 !important; 
}

/* 7. CELDAS FINANZAS (HOTELES) - DOBLE ALTURA */
.gv-finance-cell { padding: 0 !important; height: 54px !important; vertical-align: top; }
.gv-finance-grid { display: flex; height: 50%; border-bottom: 1px solid #cbd5e1; }
.gv-finance-grid input { height: 100% !important; border-right: 1px solid #cbd5e1 !important; text-align: center; width: 50% !important; }
.gv-finance-grid input:last-child { border-right: none !important; }
.gv-account-input { height: 50% !important; width: 100% !important; border: none !important; padding-left: 8px !important; }

/* 8. UI GENERAL: Tarjetas, Botones, Grid */
.card { background: var(--panel); border: 1px solid var(--line); border-radius: 4px; padding: 20px; margin-bottom: 20px; }
.gv-title h2 { margin: 0; font-size: 18px; font-weight: 700; color: #1e293b; }

.btn { display: inline-block; border: none; background: var(--primary); color: #fff; border-radius: 4px; padding: 6px 12px; font-size: 12px; cursor: pointer; text-decoration: none; transition: background 0.2s; }
.btn:hover { opacity: 0.9; }
.btn.danger { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }
.btn.danger:hover { background: #fecaca; }
.btn.light { background: #fff; color: #334155; border: 1px solid #cbd5e1; }
.btn.light:hover { background: #f8fafc; border-color: #94a3b8; }

.grid { display: grid; gap: 15px; }
.g-4 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.g-3 { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.g-2 { grid-template-columns: 1fr 1fr; }

/* Paneles de Gestión (Ocultos) */
.gv-card-gestion { background: #fff; border-left: 4px solid #ccc; padding: 15px; margin-bottom: 15px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.gv-input-full { width: 100%; padding: 6px; border: 1px solid #cbd5e1; border-radius: 4px; }

/* PILLS (Días Itinerario) */
.gv-pill { 
    display: inline-block; padding: 2px 8px; border-radius: 12px; 
    font-size: 11px; font-weight: 600; text-transform: uppercase;
}