/* =====================================================================
   Estilo de los formularios de proveedores (inscripción / actualización)
   Misma paleta del módulo de aprobación SST.
   Se carga DESPUÉS de general.css. No cambia nombres, ids ni lógica de los campos.
   ===================================================================== */
:root {
    --primary: #1565c0;
    --primary-dark: #0d47a1;
    --verde: #2e7d32;
    --amarillo: #fbc02d;
    --rojo: #c62828;
    --teal: #00796b;
    --morado: #6f42c1;
    --naranja: #e65100;
    --bg: #f4f6f9;
    --borde: #dfe4ea;
    --texto: #333;
    --gris: #667085;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--texto);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 14px;
}

/* ---------- Encabezado ---------- */
.hdr { background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.12); margin-bottom: 22px; }
.hdr-in { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 24px; flex-wrap: wrap; }
.hdr-in img { max-width: 100%; height: auto; }
.hdr-bar { background: var(--primary); color: #fff; padding: 12px 24px; }
.hdr-bar h1 { margin: 0; font-size: 1.25rem; font-weight: 600; }
.hdr-bar span { font-size: .85rem; opacity: .9; }

/* ---------- Avisos ---------- */
.sec, .aviso, .nota-obl, .acciones-top { width: min(1150px, calc(100% - 32px)); margin-left: auto; margin-right: auto; }
.aviso { background: #fff8e1; border: 1px solid #ffe082; border-left: 5px solid var(--amarillo); border-radius: 6px; padding: 14px 20px; margin-bottom: 16px; font-size: .88rem; line-height: 1.5; }
.aviso ul { margin: 0; padding-left: 18px; }
.aviso li { margin-bottom: 4px; }
.aviso-warn { background: #fff3e0; border-color: #ffcc80; border-left-color: var(--naranja); }
.aviso-warn-inline { margin: 10px 0 0; }
.nota-obl { text-align: right; color: var(--gris); margin-bottom: 12px; }
.nota-obl strong, .frm td:nth-child(odd) strong { color: var(--rojo); }
.acciones-top { margin-bottom: 14px; }
.acciones-top a, a.a1 { color: var(--primary); font-weight: 600; text-decoration: none; }
.acciones-top a:hover, a.a1:hover { text-decoration: underline; }

/* ---------- Secciones (tarjetas) ---------- */
.sec { background: #fff; border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,.08); margin-bottom: 22px; overflow: hidden; border-top: 5px solid var(--sec-color, var(--primary)); }
.sec-h { margin: 0; padding: 14px 24px; font-size: 1.1rem; font-weight: 600; color: var(--sec-color, var(--primary)); background: var(--sec-fondo, #e3f2fd); display: flex; align-items: center; gap: 12px; }
.sec-n { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--sec-color, var(--primary)); color: #fff; font-size: .95rem; }
.sec-com { --sec-color: var(--primary); --sec-fondo: #e3f2fd; }
.sec-fin { --sec-color: var(--verde);   --sec-fondo: #e8f5e9; }
.sec-ban { --sec-color: var(--teal);    --sec-fondo: #e0f2f1; }
.sec-aut { --sec-color: var(--naranja); --sec-fondo: #fff3e0; }

/* ---------- Filas del formulario: cada <tr> pasa a ser una cuadrícula de 4 columnas (etiqueta | campo | etiqueta | campo) ---------- */
table.frm, table.frm tbody { display: block; width: 100%; border: 0; }
.frm tr { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(190px, 1.7fr) minmax(130px, 1fr) minmax(190px, 1.7fr); gap: 6px 18px; padding: 11px 24px; border-bottom: 1px solid #eef1f5; align-items: start; background: transparent !important; }
.frm tr:last-child { border-bottom: 0; }
.frm td { display: block; width: auto !important; padding: 0; border: 0; font-size: 14px; line-height: 1.45; text-align: left; }
.frm td[colspan="2"] { grid-column: span 2; }
.frm td[colspan="3"] { grid-column: span 3; }
.frm td[colspan="4"] { grid-column: 1 / -1; }
.frm td:nth-child(odd) { font-weight: 600; color: #455a64; padding-top: 7px; }
.frm td:nth-child(even) { color: var(--texto); }
.frm td:nth-child(even) strong { color: inherit; }
.frm .Estilo06 { font-weight: 400; color: var(--gris); font-size: .8rem; }
.frm .EstiloRojo01 { color: var(--rojo); font-weight: 400; font-size: .82rem; }
.frm .EstiloGris01 { color: var(--gris); }

/* filas rellenadas por xajax: sin altura cuando están vacías */
.frm tr.dyn { padding-top: 0; padding-bottom: 0; border-bottom: 0; }
.frm tr.dyn td { padding-top: 0; }
.frm tr.dyn td:has(> span:empty:only-child) { display: none; }
.frm tr.dyn:has(span:not(:empty)) { padding: 11px 24px; border-bottom: 1px solid #eef1f5; }
.frm tr.dyn td:nth-child(odd) { padding-top: 7px; }

/* ---------- Controles ---------- */
.frm input[type=text], .frm input[type=password], .frm select, .frm textarea {
    width: 100%; padding: 8px 10px; border: 1px solid #c5ccd6; border-radius: 6px; background: #fff;
    font: inherit; color: var(--texto); transition: border-color .15s, box-shadow .15s;
}
.frm input[type=text]:focus, .frm select:focus, .frm textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(21,101,192,.15); }
.frm input[readonly], .frm input[disabled], .frm select[disabled] { background: #eef1f5; color: #667085; }
.frm textarea { resize: vertical; min-height: 96px; }
.frm input[type=file] { width: 100%; padding: 8px; border: 1px dashed #90a4ae; border-radius: 6px; background: #fafbfc; font: inherit; font-size: .85rem; }
.frm input[type=radio], .frm input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--primary); vertical-align: middle; margin: 0 4px 0 8px; }
.frm img[src*="information"] { vertical-align: middle; cursor: help; }
.frm img[src*="buscar"] { vertical-align: middle; margin-left: 8px; cursor: pointer; }
.frm pre { display: inline-block !important; width: 14px; margin: 0; overflow: hidden; vertical-align: middle; }

/* campos con lupa / datos cortos al lado */
#txt_direccion, #cbo_acti_econ, #cbo_acti_econ_secu, #txt_nume_inte { width: calc(100% - 52px) !important; }
#txt_nume_docu { width: calc(100% - 140px) !important; }
#txt_digi_veri { width: 64px !important; }
#txt_fech_inic { width: 150px !important; }
#cbo_pais, #cbo_depto, #cbo_ciud, input[name="txt_ciudad"] { width: auto !important; min-width: 190px; }
#departamento, #ciudad { display: inline-block; margin-left: 14px; }
#tabla_socios { padding: 6px 24px 22px; }
#tabla_socios table { width: 100% !important; margin: 6px 0; border-collapse: collapse; }
#tabla_socios th { background: var(--verde) !important; color: #fff; padding: 9px 10px; text-align: left; font-weight: 600; }
#tabla_socios td { padding: 6px 4px; }
#tabla_socios input[type=text] { width: 100%; padding: 7px 9px; border: 1px solid #c5ccd6; border-radius: 6px; font: inherit; }
#tabla_socios .Estilo01 td[align="left"] { font-weight: 600; color: var(--verde); padding-top: 14px; }
#tabla_socios a.a1 { display: inline-block; margin-top: 6px; padding: 6px 14px; border: 1px solid var(--verde); border-radius: 6px; color: var(--verde); }

/* Multiselección de categorías (chosen) */
.chosen-container { width: 100% !important; }
.chosen-container-multi .chosen-choices { min-height: 38px; border-radius: 6px !important; }

/* ---------- Autorizaciones y firma ---------- */
.frm tr.fila-chk { grid-template-columns: 1fr; background: #fffaf3 !important; border-left: 4px solid var(--naranja); margin: 0 24px 12px; padding: 12px 16px; border-bottom: 0; border-radius: 6px; }
.frm tr.fila-chk td { font-weight: 400; color: var(--texto); padding-top: 0; font-size: 13.5px; line-height: 1.55; }
.frm tr.fila-chk input[type=checkbox] { float: left; width: 20px; height: 20px; margin: 2px 12px 0 0; }
.frm tr.fila-chk td strong { color: var(--rojo); }
.frm tr.fila-enviar { grid-template-columns: 1fr; padding: 18px 24px 24px; border-bottom: 0; }
.frm tr.fila-enviar td { text-align: center; padding: 0; }
.btn, input.btn { display: inline-block; border: 0; border-radius: 8px; padding: 12px 34px; font: inherit; font-weight: 700; font-size: 1rem; cursor: pointer; color: #fff; transition: filter .15s, box-shadow .15s; }
.btn:hover { filter: brightness(1.08); box-shadow: 0 3px 8px rgba(0,0,0,.25); }
.btn-prim { background: var(--primary); }
.btn-ok { background: var(--verde); }
.btn-no { background: var(--rojo); }
input.btn:disabled { background: #b0bec5; cursor: not-allowed; box-shadow: none; filter: none; }

/* ---------- Ventana de autorización de datos personales ---------- */
.modal { display: flex; position: fixed; inset: 0; z-index: 1000; background: rgba(13,27,42,.6); overflow-y: auto; padding: 24px 12px; align-items: flex-start; justify-content: center; }
.modal-content { background: #fff; width: min(820px, 100%); margin: auto; border: 0; border-radius: 10px; box-shadow: 0 10px 40px rgba(0,0,0,.4); overflow: hidden; animation: subir .3s ease-out; }
@keyframes subir { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.modal-header { background: var(--primary); color: #fff; padding: 14px 24px; }
.modal-header h2 { margin: 0; font-size: 1.15rem; font-weight: 600; }
.modal-body { padding: 18px 26px; font-size: .92rem; line-height: 1.55; color: var(--texto); }
.modal-body .botones { text-align: center; margin: 14px 0; display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.modal-footer { background: #eceff1; color: var(--gris); padding: 10px 24px; text-align: center; }
.modal-footer h3 { margin: 0; font-size: .9rem; font-weight: 500; }

/* ---------- Pantallas pequeñas ---------- */
@media (max-width: 860px) {
    .frm tr { grid-template-columns: 1fr; padding: 10px 16px; gap: 4px; }
    .frm td[colspan] { grid-column: auto; }
    .frm td:nth-child(odd) { padding-top: 6px; }
    .frm tr.fila-chk { margin: 0 12px 12px; }
    .sec-h { padding: 12px 16px; }
    .hdr-in, .hdr-bar { padding-left: 14px; padding-right: 14px; }
    #txt_nume_docu { width: calc(100% - 120px) !important; }
}

/* filas auxiliares */
.frm tr.fila-vacia { display: none; }
.frm td.EstiloRojo01 { font-weight: 400; color: var(--rojo); font-size: .85rem; padding-top: 0; }
.frm tr.nota-fin { padding-top: 0; }
