/* === INCINE ADMISIONES - Tema Oscuro Minimalista === */
/* Solo estilos visuales - No modifica estructura */

:root {
  --incine-bg: #000000;
  --incine-bg-card: #111111;
  --incine-bg-input: #1a1a1a;
  --incine-text: #ffffff;
  --incine-text-muted: #a3a3a3;
  --incine-border: #262626;
  --incine-border-hover: #404040;
  --incine-accent: #ffffff;
  --incine-error: #ef4444;
}

/* === BASE === */
body {
  background: var(--incine-bg) !important;
  color: var(--incine-text) !important;
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif !important;
  line-height: 1.6 !important;
}

/* === SOBRESCRIBIR FONDOS BLANCOS DEL TEMPLATE === */
div[style*="background:#FFFFFF"],
div[style*="background: #FFFFFF"],
div[style*="background:#ffffff"],
div[style*="background: #ffffff"],
div[style*="background:white"],
div[style*="background: white"],
.container[style*="background:#FFFFFF"],
.container[style*="background: #FFFFFF"] {
  background: var(--incine-bg) !important;
}

/* Header del template */
div[style*="height:44px"],
.font_6 {
  background: transparent !important;
  display: none !important;
}

/* Contenedor principal del sitio */
.container {
  background: var(--incine-bg) !important;
}

/* Cualquier elemento con fondo blanco inline */
[style*="background:#FFF"],
[style*="background: #FFF"],
[style*="background:#fff"],
[style*="background: #fff"] {
  background: var(--incine-bg) !important;
}

/* === CONTENEDOR PRINCIPAL - EXPANDIDO === */
.panel, .panel-default, .panel-heading, .panel-body {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.panel-default {
  background: var(--incine-bg-card) !important;
  border: 1px solid var(--incine-border) !important;
  border-radius: 12px !important;
  padding: 40px !important;
  width: 95% !important;
  max-width: 1100px !important;
  margin: 20px auto !important;
}

/* === TITULOS === */
h1, h2, h3, .panel-title {
  color: var(--incine-text) !important;
  font-weight: 300 !important;
  letter-spacing: 0.5px !important;
}

h1 {
  font-size: 28px !important;
  margin-bottom: 8px !important;
}

.panel-heading {
  text-align: center !important;
  padding-bottom: 20px !important;
  margin-bottom: 20px !important;
  border-bottom: 1px solid var(--incine-border) !important;
}

/* === TEXTOS === */
.txttitulo, .style1, .Estilo1, .Estilo3, .txtval {
  color: var(--incine-text-muted) !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.3px !important;
}

span, p, div, td, label {
  color: var(--incine-text) !important;
}

a {
  color: #60a5fa !important;
}

a:hover {
  color: #93c5fd !important;
}

/* === INPUTS Y SELECTS === */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="password"],
input[type="number"],
select,
textarea {
  width: 100% !important;
  padding: 12px 16px !important;
  background: var(--incine-bg-input) !important;
  border: 1px solid var(--incine-border) !important;
  border-radius: 8px !important;
  color: var(--incine-text) !important;
  font-size: 14px !important;
  font-family: inherit !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  box-sizing: border-box !important;
}

input:focus,
select:focus,
textarea:focus {
  outline: none !important;
  border-color: var(--incine-border-hover) !important;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.05) !important;
}

input::placeholder,
textarea::placeholder {
  color: #737373 !important;
}

select option {
  background: var(--incine-bg-input) !important;
  color: var(--incine-text) !important;
}

/* === RADIO BUTTONS Y CHECKBOXES === */
input[type="radio"],
input[type="checkbox"] {
  width: auto !important;
  accent-color: var(--incine-accent) !important;
  cursor: pointer !important;
}

.cssobj {
  accent-color: var(--incine-accent) !important;
}

/* === TABLAS === */
table {
  border-collapse: collapse !important;
  width: 100% !important;
  border: none !important;
}

table[border="1"] {
  border: none !important;
}

table td {
  background: transparent !important;
  border: none !important;
  padding: 8px 4px !important;
  vertical-align: top !important;
}

table tr {
  background: transparent !important;
}

/* Expandir tablas de formulario */
table[width="680"] {
  width: 100% !important;
}

table[width="100%"] {
  width: 100% !important;
}

/* === OCULTAR ELEMENTOS INNECESARIOS === */

/* Ocultar mensaje_periodo cuando está vacío */
#mensaje_periodo:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

#mensaje_periodo:not(:empty) {
  background: rgba(245, 158, 11, 0.1) !important;
  border: 1px solid rgba(245, 158, 11, 0.3) !important;
  border-radius: 8px !important;
  padding: 12px !important;
  color: #f59e0b !important;
  margin: 10px 0 !important;
}

/* Ocultar divs vacíos de cmbforms */
div.cmbforms:empty {
  display: none !important;
}

/* Reducir espacio de celdas con solo hidden inputs */
td:has(> input[type="hidden"]):not(:has(> input:not([type="hidden"]))) {
  padding: 0 !important;
  height: 0 !important;
  line-height: 0 !important;
}

/* Colapsar filas con solo campos hidden */
tr:has(> td > input[type="hidden"]):not(:has(input[type="text"], input[type="email"], select, textarea)) {
  height: 0 !important;
  line-height: 0 !important;
  font-size: 0 !important;
}

/* Fallback para navegadores sin :has() - ocultar por clases específicas */
.panel-body > table[border="1"] > tbody > tr > td[valign="top"] > input[type="hidden"] {
  display: block !important;
  height: 0 !important;
  width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Ocultar la tabla grande de campos hidden específica */
.panel-body > table:first-of-type > tbody > tr > td > table[border="1"] {
  margin: 0 !important;
  padding: 0 !important;
}

/* Colapsar filas de tablas con border=1 que tienen inputs hidden */
table[border="1"] tr {
  line-height: normal !important;
}

table[border="1"] td {
  border: none !important;
}

/* Tabla de campos hidden - colapsar completamente */
table[border="1"][cellspacing="3"] tr:not(:has(.form-control)):not(:has(.txtextra)) {
  display: none !important;
}

/* === BOTONES === */
input[type="submit"],
input[type="button"],
button,
.btn {
  padding: 14px 24px !important;
  background: var(--incine-accent) !important;
  color: var(--incine-bg) !important;
  border: none !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

input[type="submit"]:hover,
input[type="button"]:hover,
button:hover,
.btn:hover {
  background: #f5f5f5 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(255, 255, 255, 0.15) !important;
}

/* === ALERTAS === */
.alert, [bgcolor="#DCF1E3"] {
  background: rgba(59, 130, 246, 0.1) !important;
  border: 1px solid rgba(59, 130, 246, 0.3) !important;
  border-radius: 8px !important;
  padding: 16px !important;
  color: var(--incine-text) !important;
}

/* === SECCIONES CON FONDO === */
[bgcolor="#FFFFFF"],
[bgcolor="#BEDCC4"],
[bgcolor="#F5F5F5"] {
  background: transparent !important;
}

/* === CUADROS DE INFORMACION === */
.cuadrot {
  color: var(--incine-text-muted) !important;
  font-size: 13px !important;
}

/* === CAPTCHA === */
#codigo {
  max-width: 200px !important;
  text-align: center !important;
}

/* === MENSAJES DE PERIODO === */
#mensaje_periodo {
  background: rgba(245, 158, 11, 0.1) !important;
  border: 1px solid rgba(245, 158, 11, 0.3) !important;
  border-radius: 8px !important;
  padding: 12px !important;
  color: #f59e0b !important;
}

/* === CAMPOS OCULTOS Y HINTS === */
#txtCliente,
#txtHint_cedula,
#despl_periodo,
#periodo_ver {
  background: transparent !important;
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
  .panel-default {
    width: 100% !important;
    padding: 20px !important;
    border-radius: 0 !important;
  }

  table td {
    display: block !important;
    width: 100% !important;
  }
}

/* === ANIMACION SUAVE === */
.panel-default {
  animation: fadeIn 0.4s ease-out;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* === SOLUCIÓN ALTERNATIVA PARA FILAS OCULTAS === */
/* Las filas con solo inputs hidden se marcan con esta clase via JS */
tr.hidden-row {
  display: none !important;
}

/* Inputs hidden no deben ocupar espacio */
input[type="hidden"] {
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  overflow: hidden !important;
}

/* Mejorar layout de secciones de carreras */
div[style*="overflow-x: auto"] table {
  border: 1px solid var(--incine-border) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}

div[style*="overflow-x: auto"] table td {
  background: var(--incine-bg-input) !important;
  border: 1px solid var(--incine-border) !important;
  padding: 15px !important;
}

div[style*="overflow-x: auto"] h4 {
  color: var(--incine-text) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  margin-bottom: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

/* Estilo para las opciones de carrera */
.cmbforms {
  color: var(--incine-text-muted) !important;
  font-size: 13px !important;
  padding: 4px 0 !important;
}
