/* ==========================================================================
   DUSOFT DS — Reskin moderno (UI-1, PLAN_UI_UX.md)
   Se carga DESPUES de style.css y lo sobrescribe por cascada.
   NO toca estructura ni logica: solo presentacion. Retro-compatible.
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --ds-tinta:#191d28; --ds-tinta2:#2a3040; --ds-papel:#f7f4ec; --ds-card:#fffdf7;
  --ds-linea:#d9d2c0; --ds-teal:#0e7c66; --ds-teal-suave:#e1f2ec;
  --ds-ambar:#b26a00; --ds-rojo:#a63a2e; --ds-azul:#1f4e79;
  --ds-radio:10px; --ds-sombra:0 1px 3px rgba(25,29,40,.08),0 6px 18px rgba(25,29,40,.06);
  --ds-font:'Public Sans','Segoe UI',system-ui,-apple-system,sans-serif;
  --ds-mono:'IBM Plex Mono',ui-monospace,monospace;
}

/* ---------- base ---------- */
body{
  font-family:var(--ds-font); font-size:13px; color:var(--ds-tinta);
  background:var(--ds-papel); text-align:left;
}
a{color:var(--ds-azul)} a:hover{color:var(--ds-teal);text-decoration:none}

/* ---------- cabecera ---------- */
#encabezado{
  background:var(--ds-tinta); border-bottom:3px solid var(--ds-teal);
  height:52px;
}
#franja_cabecera{background:transparent;color:var(--ds-papel);font-family:var(--ds-font)}
#franja_cabecera a, #franja_cabecera span{color:var(--ds-papel)}
#logo_cabecera, #logo_cabecera span{color:var(--ds-papel);font-weight:700}
#herramientas_cabecera img, #herramientas_cabecera span{filter:none}
#tareas_usuario{color:var(--ds-papel)}

/* ---------- menu de modulos (tarjetas) ---------- */
.menu_usuario{
  border:1px solid var(--ds-linea); border-radius:var(--ds-radio);
  background:var(--ds-card); background-image:none;
  box-shadow:var(--ds-sombra); padding:14px;
  transition:transform .18s ease, box-shadow .18s ease;
  min-height:96px;
}
.menu_usuario:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(25,29,40,.14)}
.menu_usuario .submodulo a{
  font-size:1.05rem; letter-spacing:0; color:var(--ds-tinta); font-weight:600;
  line-height:1.3;
}
.menu_usuario .submodulo a:hover{color:var(--ds-teal);font-size:1.05rem}
.menu_usuario img{border-radius:8px}

/* listas de acceso (submenus) */
#acceso h2{font-family:var(--ds-font);font-weight:700;color:var(--ds-tinta);letter-spacing:0}
#acceso li{border-bottom:1px solid var(--ds-linea);border-left:3px solid transparent;padding:8px 5px}
#acceso li a{color:var(--ds-tinta);font-weight:500}
#acceso li:hover{background:var(--ds-teal-suave);border-left-color:var(--ds-teal)}
#submenu li{border-left:3px solid var(--ds-linea);border-top:none;border-radius:0 8px 8px 0;padding:8px 10px}
#submenu li:hover{background:var(--ds-teal-suave);border-left-color:var(--ds-teal)}

/* ---------- titulos y paneles ---------- */
.titulo_tabla, .titulo_tabla_l, .titulo_tabla_r{
  background:var(--ds-tinta); color:var(--ds-papel);
  font-family:var(--ds-font); font-size:13px; font-weight:600;
  padding:10px 12px; text-align:left;
  border-radius:var(--ds-radio) var(--ds-radio) 0 0;
}
.modulo_table_list_title, .hc_table_list_title{
  background:var(--ds-tinta2); color:var(--ds-papel);
  font-family:var(--ds-font); font-size:11px; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase;
}
.modulo_table_title{background:var(--ds-tinta2);font-family:var(--ds-font)}
.titulo1{font-family:var(--ds-font);font-size:22px;font-weight:700;color:var(--ds-tinta)}
.titulo2{font-family:var(--ds-font);font-size:15px;font-weight:600;color:var(--ds-tinta2)}
.titulo3{font-family:var(--ds-font);font-size:15px;font-weight:600;color:var(--ds-azul)}
h2{font-family:var(--ds-font);font-size:1.5rem;letter-spacing:0;color:var(--ds-tinta)}

/* ---------- tablas de datos ---------- */
table.modulo_table_list, table.modulo_table_parametros{
  border:1px solid var(--ds-linea); border-radius:var(--ds-radio);
  background:var(--ds-card); box-shadow:var(--ds-sombra);
  border-collapse:separate; border-spacing:0; overflow:hidden;
}
table.modulo_table_list thead, tr.subtitulo{background:var(--ds-tinta2);border-bottom:none}
table.modulo_table_list thead th, .subtitulo td{
  color:var(--ds-papel); font-family:var(--ds-font); font-size:11px; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase; padding:9px 12px; border-bottom:none;
}
table.modulo_table_list thead tr:nth-child(2) th{background:var(--ds-tinta);color:var(--ds-ambar);font-size:11px}
table.modulo_table_list td, table.modulo_table_parametros td{padding:8px 12px;border-bottom:1px solid #eee8d8}
table.modulo_table_list tbody tr.par{background:var(--ds-card)}
table.modulo_table_list tbody tr.impar{background:#f4f0e4}
table.modulo_table_list tr:hover td{background:var(--ds-teal-suave)}
table.modulo_table_parametros tr th{background:var(--ds-tinta2);color:var(--ds-papel);border-bottom:none}

/* ---------- formularios ---------- */
.input-text, .input-text_moneda, .input-text-center, .select, .textarea{
  font-family:var(--ds-font); font-size:13px; color:var(--ds-tinta);
  border:1px solid var(--ds-linea); border-radius:8px; background:#fff;
  padding:8px 10px; outline:none; transition:border-color .15s, box-shadow .15s;
}
.input-text:focus, .select:focus, .textarea:focus{
  border-color:var(--ds-teal); box-shadow:0 0 0 3px rgba(14,124,102,.15);
}
.input-submit, input[type=submit], .input-bottom{
  font-family:var(--ds-font); font-size:13px; font-weight:600;
  background:var(--ds-tinta); color:var(--ds-papel);
  border:none; border-radius:8px; padding:9px 18px; cursor:pointer;
  transition:background .15s, transform .1s;
}
.input-submit:hover, input[type=submit]:hover{background:var(--ds-teal)}
.input-submit:active{transform:translateY(1px)}
.label{font-family:var(--ds-font);font-weight:600;color:var(--ds-tinta)}
.label2{font-family:var(--ds-font);color:#6b7280}
.label_error{color:var(--ds-rojo)}

/* ---------- paginador / tabs ---------- */
.paginador a{border:1px solid var(--ds-linea);border-radius:6px;background:#fff;color:var(--ds-tinta)}
.paginador a:hover{background:var(--ds-teal);color:#fff}
.paginador .pagina_actual{background:var(--ds-tinta);color:var(--ds-papel);border-color:var(--ds-tinta)}
.tabs label{font-family:var(--ds-font);border-radius:8px 8px 0 0;color:var(--ds-azul)}
[id^=tab]:checked + label{background:var(--ds-tinta2);color:#fff}

/* ---------- fieldsets / mensajes ---------- */
fieldset, .fieldset{
  font-family:var(--ds-font); border:1px solid var(--ds-linea); border-radius:var(--ds-radio);
  background:var(--ds-card); color:var(--ds-tinta); padding:12px;
}
.fieldset legend{color:var(--ds-azul);font-weight:600;padding:0 8px}

/* ---------- login (pantalla de autenticacion) ---------- */
#tabla_tipo_formulacion tr.modulo_table_list_title td{color:var(--ds-tinta)}

/* scroll suave en contenedores */
#contenido{border:none}
#vista{border:1px solid var(--ds-linea);border-radius:var(--ds-radio)}

/* impresoras/etiquetas se mantienen densas (operacion) */
@media print{ body{font-size:11px} }
