/*
 * FCC · Almería Patrimonio Sostenible — tema Bootstrap 5.3 (rediseño BS3 -> BS5)
 *
 * Adaptación del tema de referencia veggo-ref (veggo-bs5.css), re-coloreado a la paleta FCC
 * (píxel dominante MEDIDO de img/logo.png / logofcc.png / logofcc2.png con paleta-fcc.php; ver DISENO-PROPUESTA.md):
 *   azul FCC   #18316A  (la "F" del logo, 13.334 px en logo.png; el gestor ya lo usa en etiquetas y cabeceras de modal)
 *   verde FCC  #36783B  (las "CC" del logo, 19.680 px en logo.png)
 *   gráficas   --fc-chart-1..6, validado contra protan/deutan/tritan (ver DISENO-PROPUESTA.md §2)
 *   info       #007299 / #4AA8D2  (.btn-fcc de estilos2.css)
 *   neutros    #2E2E2E #565656 #676767 #A2A4A4 #ABABAB
 *   estados    #C0392B (peligro) #F39C12 (aviso) #36783B (éxito)
 *
 * Orden de carga: bootstrap 5 -> bootstrap-icons -> bs3-puente.css -> CSS propios de la página -> este fichero (el último)
 */

@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+Display:wght@400;600;700&display=swap");

:root {
  --fc-navy: #18316A;
  --fc-navy-rgb: 24, 49, 106;
  --fc-navy-dark: #132857;
  --fc-navy-darker: #0E1E42;
  --fc-green: #36783B;
  --fc-green-rgb: 54, 120, 59;
  --fc-green-dark: #2E6632;
  --fc-green-darker: #275628;
  --fc-green-light: #9BC59D;
  --fc-blue: #007299;
  --fc-blue-light: #4AA8D2;
  --fc-ink: #2E2E2E;
  --fc-gray-700: #565656;
  --fc-gray-600: #676767;
  --fc-gray-400: #A2A4A4;
  --fc-gray-300: #ABABAB;
  --fc-line: #E9EDF3;
  --fc-bg: #F4F6FA;
  --fc-red: #C0392B;
  --fc-orange: #F39C12;
  --fc-ok: #36783B;
  /* Ciclo categórico de gráficas: orden fijo, nunca ciclado (ver DISENO-PROPUESTA.md §2) */
  --fc-chart-1: #2F5CB8;
  --fc-chart-2: #C97600;
  --fc-chart-3: #7D4FC4;
  --fc-chart-4: #36783B;
  --fc-chart-5: #C2457A;
  --fc-chart-6: #1E95BD;

  --fc-sidebar-w: 248px;
  --fc-topbar-h: 60px;
  --fc-radius: .75rem;

  /* Bootstrap */
  --bs-primary: var(--fc-navy);
  --bs-primary-rgb: var(--fc-navy-rgb);
  --bs-primary-text-emphasis: var(--fc-navy-darker);
  --bs-primary-bg-subtle: #E3E8F3;
  --bs-primary-border-subtle: #B5C1DC;
  --bs-success: var(--fc-ok);
  --bs-success-rgb: var(--fc-green-rgb);
  --bs-danger: var(--fc-red);
  --bs-danger-rgb: 192, 57, 43;
  --bs-warning: var(--fc-orange);
  --bs-warning-rgb: 243, 156, 18;
  --bs-info: var(--fc-blue);
  --bs-info-rgb: 0, 114, 153;
  --bs-body-font-family: "Noto Sans Display", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --bs-body-font-size: .9375rem;
  --bs-body-color: var(--fc-ink);
  --bs-body-bg: var(--fc-bg);
  --bs-border-color: #DFE3EB;
  --bs-secondary-color: var(--fc-gray-600);
  --bs-link-color: var(--fc-navy);
  --bs-link-color-rgb: var(--fc-navy-rgb);
  --bs-link-hover-color: var(--fc-navy-darker);
  --bs-link-hover-color-rgb: 14, 30, 66;
  --bs-focus-ring-color: rgba(var(--fc-green-rgb), .35);
  --bs-border-radius: .5rem;
  --bs-border-radius-lg: var(--fc-radius);
}

/* ---------- Componentes Bootstrap con la paleta ---------- */
.btn { --bs-btn-font-weight: 600; --bs-btn-font-size: .875rem; --bs-btn-padding-y: .45rem; --bs-btn-padding-x: .9rem; --bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--fc-green-rgb), .35); }
.btn-primary {
  --bs-btn-bg: var(--fc-navy); --bs-btn-border-color: var(--fc-navy);
  --bs-btn-hover-bg: var(--fc-navy-dark); --bs-btn-hover-border-color: var(--fc-navy-dark);
  --bs-btn-active-bg: var(--fc-navy-darker); --bs-btn-active-border-color: var(--fc-navy-darker);
  --bs-btn-disabled-bg: var(--fc-navy); --bs-btn-disabled-border-color: var(--fc-navy);
}
.btn-outline-primary {
  --bs-btn-color: var(--fc-navy); --bs-btn-border-color: var(--fc-navy);
  --bs-btn-hover-bg: var(--fc-navy); --bs-btn-hover-border-color: var(--fc-navy);
  --bs-btn-active-bg: var(--fc-navy-dark); --bs-btn-active-border-color: var(--fc-navy-dark);
}
.btn-accent, .btn-success {
  --bs-btn-color: #fff; --bs-btn-bg: var(--fc-green); --bs-btn-border-color: var(--fc-green);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--fc-green-dark); --bs-btn-hover-border-color: var(--fc-green-dark);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--fc-green-darker); --bs-btn-active-border-color: var(--fc-green-darker);
}
.btn-info {
  --bs-btn-color: #fff; --bs-btn-bg: var(--fc-blue-light); --bs-btn-border-color: var(--fc-blue-light);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--fc-blue); --bs-btn-hover-border-color: var(--fc-blue);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--fc-blue); --bs-btn-active-border-color: var(--fc-blue);
}
.btn-danger {
  --bs-btn-bg: var(--fc-red); --bs-btn-border-color: var(--fc-red);
  --bs-btn-hover-bg: #A93226; --bs-btn-hover-border-color: #A93226;
  --bs-btn-active-bg: #922B21; --bs-btn-active-border-color: #922B21;
}
.btn-outline-danger {
  --bs-btn-color: #A93226; --bs-btn-border-color: #E8B4AE;
  --bs-btn-hover-bg: var(--fc-red); --bs-btn-hover-border-color: var(--fc-red);
  --bs-btn-active-bg: #922B21; --bs-btn-active-border-color: #922B21;
}
.btn-warning { --bs-btn-color: #2E2E2E; --bs-btn-bg: var(--fc-orange); --bs-btn-border-color: var(--fc-orange); --bs-btn-hover-bg: #D68910; --bs-btn-hover-border-color: #D68910; }
.btn-light { --bs-btn-bg: #fff; --bs-btn-border-color: var(--bs-border-color); --bs-btn-hover-bg: #EEF1F6; --bs-btn-hover-border-color: #CDD3DF; }
/* CSS propios de las páginas (estilos2.css, styles.css de bolsas...) pintan botones y body con colores fijos
   (azul #3498db / #4aa8d2): bajo el shell nuevo se devuelven a las variables del tema */
body.app-bs5 { background-color: var(--bs-body-bg); color: var(--bs-body-color); font-family: var(--bs-body-font-family); }
body.app-bs5 .btn { background-color: var(--bs-btn-bg); color: var(--bs-btn-color); border-color: var(--bs-btn-border-color); }
body.app-bs5 .btn:hover { background-color: var(--bs-btn-hover-bg); color: var(--bs-btn-hover-color); border-color: var(--bs-btn-hover-border-color); }
body.app-bs5 .btn:active, body.app-bs5 .btn.active { background-color: var(--bs-btn-active-bg); color: var(--bs-btn-active-color); border-color: var(--bs-btn-active-border-color); }
body.app-bs5 .btn:disabled, body.app-bs5 .btn.disabled { background-color: var(--bs-btn-disabled-bg); color: var(--bs-btn-disabled-color); border-color: var(--bs-btn-disabled-border-color); }
.btn-icon { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; padding: 0; }
.btn .bi { line-height: 1; }

.form-control, .form-select { border-color: #D3D9E4; }
.form-control:focus, .form-select:focus { border-color: var(--fc-green); box-shadow: 0 0 0 .25rem rgba(var(--fc-green-rgb), .25); }
.form-check-input:checked { background-color: var(--fc-navy); border-color: var(--fc-navy); }
.form-label, .fc-label { font-weight: 600; font-size: .8125rem; color: var(--fc-gray-700); margin-bottom: .3rem; }

.pagination { --bs-pagination-color: var(--fc-navy); --bs-pagination-hover-color: var(--fc-navy-darker);
  --bs-pagination-active-bg: var(--fc-navy); --bs-pagination-active-border-color: var(--fc-navy);
  --bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(var(--fc-green-rgb), .3); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--fc-navy); }
.nav-tabs { --bs-nav-tabs-link-active-color: var(--fc-navy); --bs-nav-tabs-border-color: #DFE3EB; --bs-nav-tabs-link-active-border-color: #DFE3EB #DFE3EB #fff; }
.nav-tabs .nav-link, .nav-tabs > li > a { color: var(--fc-gray-600); font-weight: 600; font-size: .875rem; }
.nav-tabs .nav-link.active, .nav-tabs > li.active > a { color: var(--fc-navy); box-shadow: inset 0 -3px 0 var(--fc-green); }
.badge.text-bg-primary { background-color: var(--fc-navy) !important; }
.text-primary { color: var(--fc-navy) !important; }
.bg-primary { background-color: var(--fc-navy) !important; }

/* ---------- Shell: barra superior + sidebar ----------
   El desplazamiento bajo la topbar y junto al sidebar lo pone el <body class="app-bs5"> (padding), así cualquier
   página heredada (uno o varios .container, modales fuera del contenedor...) encaja sin reestructurar su HTML. */
body.app-bs5 { min-height: 100vh; padding-top: var(--fc-topbar-h); }

.fc-topbar {
  position: fixed; inset: 0 0 auto 0; z-index: 1030; height: var(--fc-topbar-h);
  display: flex; align-items: center; gap: .75rem; padding: 0 1.25rem;
  background: #fff; border-bottom: 1px solid var(--bs-border-color);
}
.fc-topbar .fc-brand { display: flex; align-items: center; gap: .85rem; text-decoration: none; color: var(--fc-ink); }
.fc-topbar .fc-brand img { height: 30px; width: auto; }
.fc-topbar .fc-brand-sep { width: 1px; height: 26px; background: var(--bs-border-color); }
.fc-topbar .fc-brand-title { font-weight: 700; font-size: .95rem; letter-spacing: .01em; }
.fc-topbar .fc-brand-title small { display: block; font-weight: 400; font-size: .72rem; color: var(--fc-gray-600); letter-spacing: .04em; text-transform: uppercase; }
.fc-user { display: flex; align-items: center; gap: .6rem; padding: .3rem .5rem .3rem .3rem; border-radius: 2rem; border: 1px solid transparent; color: var(--fc-ink); text-decoration: none; }
.fc-user:hover, .fc-user[aria-expanded="true"] { border-color: var(--bs-border-color); background: #F7F9FC; color: var(--fc-ink); }
.fc-avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: .85rem; color: #fff;
  background: linear-gradient(135deg, var(--fc-navy), var(--fc-green)); }
.fc-user-name { font-size: .875rem; font-weight: 600; line-height: 1.1; }
.fc-user-name small { display: block; font-weight: 400; font-size: .72rem; color: var(--fc-gray-600); }
.fc-topbar .dropdown-menu { --bs-dropdown-link-active-bg: var(--fc-navy); border-color: #E3E7EE; box-shadow: 0 12px 30px rgba(14,30,66,.15); }

.fc-sidebar {
  --bs-offcanvas-width: var(--fc-sidebar-w);
  --bs-offcanvas-bg: var(--fc-navy-darker);
  /* .offcanvas-lg pone background-color: transparent !important en >=lg: el color va como imagen */
  background-image: linear-gradient(var(--fc-navy-darker), var(--fc-navy-darker));
  color: #D5DBE8;
}
@media (min-width: 992px) {
  .fc-sidebar { position: fixed; top: var(--fc-topbar-h); bottom: 0; left: 0; width: var(--fc-sidebar-w); overflow-y: auto; z-index: 1020; }
  body.app-bs5 { padding-left: var(--fc-sidebar-w); }
}
.fc-sidebar .offcanvas-header { border-bottom: 1px solid rgba(255,255,255,.08); color: #fff; }
.fc-sidebar-inner { padding: 1rem .75rem 1.5rem; width: 100%; }
.fc-sidebar-app { display: flex; align-items: center; gap: .7rem; padding: .25rem .6rem 1rem; margin-bottom: .5rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.fc-sidebar-app img { width: 38px; height: 38px; border-radius: 50%; object-fit: contain; background: #fff; padding: 3px; }
.fc-sidebar-app strong { color: #fff; font-size: 1rem; display: block; line-height: 1.1; }
.fc-sidebar-app span { font-size: .72rem; color: #9AA6C0; }
.fc-nav-section { font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: #8491AE; padding: 1rem .75rem .35rem; }
.fc-nav { list-style: none; margin: 0; padding: 0; }
.fc-nav a {
  position: relative; display: flex; align-items: center; gap: .7rem; padding: .55rem .75rem; margin: 1px 0;
  border-radius: .5rem; color: #D5DBE8; text-decoration: none; font-size: .9rem;
}
.fc-nav a .bi { font-size: 1.05rem; width: 1.25rem; text-align: center; color: #9AA6C0; }
.fc-nav a:hover { background: rgba(255,255,255,.07); color: #fff; }
.fc-nav a:hover .bi { color: #fff; }
.fc-nav li.active > a { background: var(--fc-green); color: #fff; font-weight: 600; }
.fc-nav li.active > a .bi { color: #fff; }
.fc-nav li.active > a::before { content: ""; position: absolute; left: -.75rem; top: .45rem; bottom: .45rem; width: 4px; border-radius: 0 4px 4px 0; background: var(--fc-green-light); }

main.app-content { min-height: calc(100vh - var(--fc-topbar-h)); }
/* Ocupa todo el ancho a la derecha del sidebar (sin max-width tipo container); el gutter lo da el padding (box-sizing: border-box de BS5) */
.app-content { padding: 1.75rem 2rem 3rem; width: 100%; max-width: none; margin-left: 0; margin-right: 0; }
.app-content + .app-content { padding-top: 0; }
.app-content:has(+ .app-content) { padding-bottom: 0; }
@media (max-width: 575.98px) { .app-content { padding: 1.25rem 1rem 2rem; } }
/* Títulos heredados (h1/h2 sueltos en .row > .col-md-*) con la tipografía de .fc-page-header */
.app-content h1 { font-size: 1.5rem; font-weight: 700; color: var(--fc-ink); margin: 0 0 1.25rem; }
.app-content > .row:first-child h2, .app-content > h2:first-child { font-size: 1.5rem; font-weight: 700; color: var(--fc-ink); margin: 0 0 1.25rem; }
.fc-page-header h1 { margin: 0; }

/* Cabecera de página */
.fc-page-header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.fc-page-header h1 { font-size: 1.5rem; font-weight: 700; margin: 0; color: var(--fc-ink); }
.fc-page-header .fc-subtitle { color: var(--fc-gray-600); font-size: .875rem; margin-top: .2rem; }
.fc-breadcrumb { font-size: .78rem; color: var(--fc-gray-600); margin-bottom: .35rem; text-transform: uppercase; letter-spacing: .06em; }
.fc-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.fc-actions form { margin: 0; }
.fc-actions .pull-right { float: none !important; }

/* Cards */
.card { --bs-card-border-color: #E3E7EE; --bs-card-border-radius: var(--fc-radius); --bs-card-cap-bg: #fff; box-shadow: 0 1px 2px rgba(14,30,66,.04), 0 2px 8px rgba(14,30,66,.04); }
.card-header { padding: .9rem 1.25rem; font-weight: 700; display: flex; align-items: center; gap: .5rem; }
.card-header .bi { color: var(--fc-navy); }
.card-body { padding: 1.25rem; }
.fc-card-title { font-size: 1rem; font-weight: 700; margin: 0; }
/* Card de contenido de página (receta: main.app-content > .card.app-card) */
.app-card { margin-bottom: 1.5rem; width: 100%; max-width: none; }
/* La tabla de DataTables y su wrapper rellenan todo el ancho de la card (el !important vence al style="width" en línea que pone DataTables) */
.app-card .dataTables_wrapper, .app-card .row-fluid { width: 100%; max-width: none; }
.app-card table.dataTable { width: 100% !important; max-width: none; }
/* DataTables 1.10 (dataTables.bootstrap.js) pone class="dataTables_wrapper form-inline": el .form-inline de bs3-puente.css (flex + wrap)
   encogía sus .row (longitud/buscar, tabla, paginación) al ancho de su contenido y dejaba hueco a la derecha. Se vuelve a bloque. */
.dataTables_wrapper.form-inline { display: block; }
.dataTables_wrapper > .row { width: 100%; }
.app-card > .card-body > .row:first-child h1 { margin-bottom: 1rem; }
.app-card .dataTables_wrapper { background: transparent; border: 0; border-radius: 0; box-shadow: none; margin-bottom: 0; }
.card > .table-responsive > .table, .card > .table, .card > .row-fluid > .table { margin-bottom: 0; }

/* Tablas */
.table { --bs-table-hover-bg: rgba(var(--fc-green-rgb), .08); --bs-table-striped-bg: #F8FAFC; margin-bottom: 0; }
.table > thead th {
  background: #F5F7FA; color: var(--fc-gray-700); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  border-bottom: 1px solid #DFE3EB; white-space: nowrap; padding-top: .7rem; padding-bottom: .7rem;
}
.table > tbody td { vertical-align: middle; border-color: #E9EDF3; }
.table-hover > tbody > tr { cursor: pointer; }
.table-hover > tbody > tr:hover > td:first-child { box-shadow: inset 3px 0 0 var(--fc-green); }

/* DataTables 1.10 (integración BS3: dataTables.bootstrap.js) bajo BS5 */
.dataTables_wrapper { font-size: .875rem; }
/* Fuera de una .card (listados heredados en .row-fluid), el propio wrapper hace de card */
.app-content .dataTables_wrapper { background: #fff; border: 1px solid #E3E7EE; border-radius: var(--fc-radius); box-shadow: 0 1px 2px rgba(14,30,66,.04), 0 2px 8px rgba(14,30,66,.04); margin-bottom: 1.5rem; }
.app-content .card .dataTables_wrapper, .modal .dataTables_wrapper { background: transparent; border: 0; border-radius: 0; box-shadow: none; margin-bottom: 0; }
.dataTables_wrapper > .row > [class*="col-"] { padding-left: 0; padding-right: 0; }
.dataTables_wrapper > .row:not(:first-child):not(:last-child) { overflow-x: auto; }
.dataTables_wrapper .row { --bs-gutter-x: 0; align-items: center; }
.dataTables_wrapper > .row:first-child, .dataTables_wrapper > .row:last-child { padding: .85rem 1.25rem; }
.dataTables_wrapper > .row:last-child { border-top: 1px solid #E9EDF3; }
div.dataTables_wrapper div.dataTables_length label, div.dataTables_wrapper div.dataTables_filter label { font-weight: 400; color: var(--fc-gray-600); display: inline-flex; align-items: center; gap: .5rem; margin: 0; white-space: nowrap; }
div.dataTables_wrapper div.dataTables_length select { width: auto; display: inline-block; padding: .3rem 2rem .3rem .6rem; background-image: var(--bs-form-select-bg-img); background-repeat: no-repeat; background-position: right .6rem center; background-size: 14px 10px; appearance: none; }
div.dataTables_wrapper div.dataTables_filter input { width: 260px; display: inline-block; padding-left: 2.1rem;
  background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23676767' viewBox='0 0 16 16'%3e%3cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242 1.156a5 5 0 1 1 0-10 5 5 0 0 1 0 10'/%3e%3c/svg%3e") no-repeat .7rem center; }
div.dataTables_wrapper div.dataTables_filter { text-align: right; }
div.dataTables_wrapper div.dataTables_info { color: var(--fc-gray-600); padding-top: 0; }
div.dataTables_wrapper div.dataTables_paginate { text-align: right; }
div.dataTables_wrapper div.dataTables_paginate ul.pagination { margin: 0; justify-content: flex-end; gap: .25rem; }
.dataTables_wrapper .pagination > li > a {
  display: block; padding: .35rem .7rem; border: 1px solid #DFE3EB; border-radius: .4rem; color: var(--fc-navy); background: #fff; text-decoration: none; font-weight: 600; font-size: .8125rem;
}
.dataTables_wrapper .pagination > li > a:hover { background: #EEF1F6; }
.dataTables_wrapper .pagination > li.active > a { background: var(--fc-navy); border-color: var(--fc-navy); color: #fff; }
.dataTables_wrapper .pagination > li.disabled > a { color: #B3BACA; pointer-events: none; background: #fff; }
table.dataTable { margin-top: 0 !important; margin-bottom: 0 !important; border-collapse: collapse !important; }
table.dataTable.table-bordered { border: 0; }
table.dataTable thead .sorting:after, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_desc:after {
  font-family: "bootstrap-icons" !important; font-size: .7rem; bottom: auto !important; top: 50%; transform: translateY(-50%); }
table.dataTable thead .sorting:after { content: "\f127" !important; opacity: .35; }
table.dataTable thead th:last-child:empty::after { display: none; }
table.dataTable thead .sorting_asc:after { content: "\f57b" !important; opacity: .9; color: var(--fc-navy); }
table.dataTable thead .sorting_desc:after { content: "\f575" !important; opacity: .9; color: var(--fc-navy); }
table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before { background-color: var(--fc-navy) !important; box-shadow: none !important; border: 0 !important; top: 50% !important; transform: translateY(-50%); }

/* Filas de estado BS3 (success/danger/warning/info/active en <tr>): barra de color a la izquierda, fondo suave */
.table > tbody > tr.success > td { --bs-table-bg-state: #EAF3EA; }
.table > tbody > tr.danger > td, .table > tbody > tr.bg-danger > td { --bs-table-bg-state: #F9E7E5; }
.table > tbody > tr.warning > td, .table > tbody > tr.bg-warning > td { --bs-table-bg-state: #FDF1DC; }
.table > tbody > tr.info > td, .table > tbody > tr.bg-info > td { --bs-table-bg-state: #E3F1F6; }
.table > tbody > tr.active > td { --bs-table-bg-state: #EEF1F6; }
.table > tbody > tr.bg-primary > td { --bs-table-bg-state: var(--fc-navy); --bs-table-color-state: #fff; }
.table > tbody > tr.success > td:first-child { box-shadow: inset 4px 0 0 var(--fc-ok); }
.table > tbody > tr.danger > td:first-child, .table > tbody > tr.bg-danger > td:first-child { box-shadow: inset 4px 0 0 var(--fc-red); }
.table > tbody > tr.warning > td:first-child, .table > tbody > tr.bg-warning > td:first-child { box-shadow: inset 4px 0 0 var(--fc-orange); }
.table > tbody > tr.info > td:first-child, .table > tbody > tr.bg-info > td:first-child { box-shadow: inset 4px 0 0 var(--fc-blue-light); }
.table > tbody > tr.active > td:first-child { box-shadow: inset 4px 0 0 var(--fc-gray-400); }
.fc-leyenda { font-size: .8125rem; color: var(--fc-gray-700); }

/* Modales */
.modal { --bs-modal-border-radius: var(--fc-radius); --bs-modal-header-padding: 1rem 1.5rem; }
.modal-content { border: 0; box-shadow: 0 20px 50px rgba(14,30,66,.25); }
/* .modal .modal-content > : gana a estilos2.css (.modal-header:not(.cabeceralogin) gris) */
.modal .modal-content > .modal-header { background: #fff; color: var(--fc-ink); border-bottom: 1px solid #E3E7EE; font-family: var(--bs-body-font-family); font-size: 1.1rem; font-weight: 700; }
.modal-header .modal-title { font-weight: 700; font-size: 1.1rem; display: flex; align-items: center; gap: .6rem; }
.modal-header .modal-title .bi { color: var(--fc-navy); }
/* Cabeceras con style="background:#18316a" heredado (azul FCC en línea): se tratan como cabecera de marca */
.modal .modal-content > .modal-header.fc-modal-brand,
.modal .modal-content > .modal-header[style*="18316a" i] { background: var(--fc-navy) !important; color: #fff; border-bottom: 0; }
.modal-header.fc-modal-brand .modal-title .bi { color: #fff; }
.modal-header.fc-modal-brand .btn-close, .modal-header[style*="18316a" i] .btn-close { filter: invert(1) grayscale(1) brightness(2); }
.modal-header[style*="18316a" i] .close { color: #fff; }
.modal-header .close { order: 2; margin-left: auto; }
/* estilos2.css pinta .close en blanco (cabecera gris de BS3); sobre la cabecera blanca del tema no se vería */
.modal .modal-content > .modal-header .close { color: inherit; text-shadow: none; }
.modal .modal-content > .modal-header[style*="18316a" i] .close { color: #fff; }
.modal-backdrop { --bs-backdrop-bg: #0E1E42; --bs-backdrop-opacity: .55; }
.modal-footer { border-top: 1px solid #E3E7EE; gap: .5rem; }

/* Overlay de "cargando" heredado (#fadeN/#modalN, id fijos de las páginas): card centrada como en la referencia */
#fade, #fade1, #fade2, #fade3, #fade4, #fade5, #fade6, .fc-loading-fade {
  background: rgba(14,30,66,.45) !important; opacity: 1 !important; filter: none !important; backdrop-filter: blur(2px); z-index: 1101 !important; }
#modal, #modal1, #modal2, #modal3, #modal4, #modal5, #modal6, .fc-loading {
  width: auto !important; min-width: 260px; height: auto !important; margin: 0 !important; transform: translate(-50%, -50%);
  padding: 1.5rem 1.75rem !important; border: 0 !important; border-radius: var(--fc-radius) !important; background: #fff !important; color: var(--fc-ink) !important;
  box-shadow: 0 20px 50px rgba(14,30,66,.3) !important; font-size: .95rem !important; font-weight: 600; z-index: 1102 !important; }
#modal img, #modal1 img, #modal2 img, #modal3 img, #modal4 img, #modal5 img, #modal6 img { max-width: 48px; }

/* Aviso flotante heredado (#passwordsNoMatchRegister y similares) */
.fc-flash {
  display: none; position: fixed; top: calc(var(--fc-topbar-h) + 1rem); left: 50%; transform: translateX(-50%); z-index: 7000;
  min-width: 340px; max-width: 90vw; margin: 0; padding: .9rem 1.25rem; border: 0; border-left: 4px solid var(--fc-ok); border-radius: .6rem;
  background: #fff; color: var(--fc-ink); box-shadow: 0 12px 30px rgba(14,30,66,.2);
}

/* Estilos en línea heredados de las páginas BS3 (font-family:calibri; font-size:18px; color:#18316a/#723d8c...):
   se neutralizan desde aquí para no tocar el HTML. */
body.app-bs5 [style*="calibri"] { font-family: var(--bs-body-font-family) !important; }
body.app-bs5 label[style*="font-size:18px"], body.app-bs5 .control-label[style*="font-size"] {
  font-size: .8125rem !important; font-weight: 600 !important; color: var(--fc-gray-700) !important; padding-top: 0 !important; margin-bottom: .3rem; }
body.app-bs5 div[style*="font-size:18px"] { font-size: .9375rem !important; }
body.app-bs5 input[style*="font-size:18px"], body.app-bs5 select[style*="font-size:18px"], body.app-bs5 textarea[style*="font-size:18px"], body.app-bs5 option[style*="font-size:18px"] {
  font-size: .9375rem !important; color: var(--fc-ink) !important; }
body.app-bs5 [style*="nimbusmedium"] { font-family: var(--bs-body-font-family) !important; font-size: .9375rem !important; }

/* Pantallas sin shell (login, acceso restringido) */
.fc-auth { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); background: #fff; }
.fc-auth-brand {
  position: relative; overflow: hidden; color: #fff; padding: 3rem; display: flex; flex-direction: column; justify-content: space-between;
  background: radial-gradient(120% 90% at 20% 15%, #24448C 0%, var(--fc-navy) 45%, var(--fc-navy-darker) 100%);
}
.fc-auth-brand::after { content: ""; position: absolute; right: -18%; bottom: -25%; width: 70%; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--fc-green-rgb), .55), rgba(var(--fc-green-rgb), 0) 70%); }
.fc-auth-brand img.fc-auth-mark { width: 220px; max-width: 70%; height: auto; }
.fc-auth-brand h2 { font-size: 2.1rem; font-weight: 700; line-height: 1.15; margin: 1.5rem 0 .75rem; max-width: 22ch; }
.fc-auth-brand p { color: rgba(255,255,255,.82); max-width: 42ch; margin: 0; }
.fc-auth-brand .fc-auth-foot { position: relative; z-index: 1; font-size: .8rem; color: rgba(255,255,255,.7); }
.fc-auth-form { display: flex; align-items: center; justify-content: center; padding: 3rem 1.5rem; background: #fff; }
.fc-auth-card { width: 100%; max-width: 410px; }
.fc-auth-card .fc-auth-logo { height: 40px; width: auto; margin-bottom: 2rem; }
.fc-auth-card h1 { font-size: 1.6rem; font-weight: 700; margin-bottom: .35rem; }
.fc-auth-card .fc-auth-lead { color: var(--fc-gray-600); margin-bottom: 1.75rem; }
.fc-auth-card .form-floating > .form-control { height: 3.4rem; background: #fff; }
.fc-auth-card .form-floating > label { color: var(--fc-gray-600); }
.fc-auth-card .fc-auth-link { display: block; text-align: center; margin-top: 1rem; font-size: .875rem; font-weight: 600; color: var(--fc-navy); }
/* Portada (index.html): logo a color sobre placa blanca, dos logos en la card y formulario heredado sin rejilla */
.fc-auth-brand .fc-auth-badge { position: relative; z-index: 1; align-self: flex-start; background: #fff; border-radius: var(--fc-radius); padding: .75rem 1.25rem; box-shadow: 0 12px 30px rgba(14,30,66,.25); }
.fc-auth-brand .fc-auth-badge img.fc-auth-mark { width: 180px; }
.fc-auth-brand .fc-auth-copy { position: relative; z-index: 1; }
.fc-auth-card .fc-auth-logos { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.fc-auth-card .fc-auth-logos .fc-auth-logo { height: 48px; margin-bottom: 0; }
.fc-auth-card form.form { padding: 0; float: none; }
.fc-auth-card form .form-control { background: #fff; }
@media (max-width: 991.98px) { .fc-auth { grid-template-columns: 1fr; } .fc-auth-brand { display: none; } }

.fc-restricted { min-height: 100vh; display: grid; place-items: center; padding: 2rem 1rem; }
.fc-restricted .card { max-width: 460px; width: 100%; text-align: center; }
.fc-restricted .fc-restricted-icon { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 1rem; background: #F9E7E5; color: #A93226; font-size: 1.75rem; }

/* jQuery UI datepicker dentro del tema */
.ui-datepicker { font-family: var(--bs-body-font-family) !important; font-size: .85rem !important; border-radius: .5rem; z-index: 2000 !important; }
.ui-datepicker .ui-datepicker-header { background: var(--fc-navy) !important; border: 0; color: #fff; }
.ui-datepicker .ui-state-active, .ui-datepicker .ui-state-highlight { background: var(--fc-green) !important; border-color: var(--fc-green) !important; color: #fff !important; }

