/*
 * MARCA DE LA APLICACION (Exacta, Trazza, Calibra) BAJO EL MANUAL DE MARCA ASIMETRIC
 * Solo se carga si hay una marca activa (core/__brand.php).
 *
 * Paleta del manual (llega como variables desde core/templates/__brand-head.tpl):
 *   --brand-dark    Azul Marino      #0B2A4A  dominante: menu, titulos, textos fuertes
 *   --brand-primary Azul Acero       #0D5398  secundario: enlaces, seleccion, apoyo tecnico
 *   --brand-cta     Naranja Energia  #F2521C  acento UNICO: botones de accion principal y datos clave
 *   --brand-silver  Plata Metrologica #AEB9C4 neutro: fondos, lineas y apoyo
 * Tipografia del manual: Montserrat (titulos), Open Sans (textos), Roboto Mono (cifras y unidades).
 */

/* --- Tipografias (archivos locales en css/fonts/brand, licencias OFL / Apache) --- */
@font-face { font-family: "Montserrat"; font-weight: 600; font-style: normal; font-display: swap; src: url("fonts/brand/montserrat-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 700; font-style: normal; font-display: swap; src: url("fonts/brand/montserrat-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 800; font-style: normal; font-display: swap; src: url("fonts/brand/montserrat-latin-800-normal.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/brand/open-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-weight: 600; font-style: normal; font-display: swap; src: url("fonts/brand/open-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-weight: 700; font-style: normal; font-display: swap; src: url("fonts/brand/open-sans-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto Mono"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/brand/roboto-mono-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto Mono"; font-weight: 500; font-style: normal; font-display: swap; src: url("fonts/brand/roboto-mono-latin-500-normal.woff2") format("woff2"); }

body, .content-wrapper, .main-sidebar, .main-footer, .modal, .dropdown-menu, .tooltip, .popover, .btn, .form-control, .custom-select, table.dataTable {
	font-family: "Open Sans", "Segoe UI", Arial, sans-serif;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .content-header h1, .card-title, .modal-title, .brand-text,
.small-box .inner h3, .info-box-number, .login-box-msg, .nav-sidebar .nav-header {
	font-family: "Montserrat", "Segoe UI", Arial, sans-serif;
	letter-spacing: -.01em;
}
.content-header h1, .card-title, .brand-text { color: var(--brand-dark); font-weight: 700; }
.main-sidebar .brand-text { color: #FFFFFF; }
/* Cifras y unidades (datos tecnicos) */
.small-box .inner h3, .info-box-number, table.dataTable td.text-right, td.dt-body-right, .brand-num, code, kbd, pre {
	font-family: "Roboto Mono", Consolas, "Courier New", monospace;
}
.small-box .inner h3 { letter-spacing: -.03em; }

/* --- Titulos de pagina: linea corta en Naranja Energia, como en el manual --- */
.content-header h1::before { content: ""; display: block; width: 42px; height: 4px; border-radius: 2px; background: var(--brand-cta); margin-bottom: .45rem; }

/* --- Acento unico: accion principal en Naranja Energia --- */
.btn-primary { background-color: var(--brand-cta); border-color: var(--brand-cta); color: #FFFFFF; }
.btn-primary:hover, .btn-primary:focus { background-color: var(--brand-cta-hover); border-color: var(--brand-cta-hover); color: #FFFFFF; }
.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active { background-color: var(--brand-dark); border-color: var(--brand-dark); }
.btn-primary:focus, .btn-primary.focus { box-shadow: 0 0 0 .2rem rgba(242, 82, 28, .3); }
/* Secundarios en azules */
.btn-outline-primary { color: var(--brand-primary); border-color: var(--brand-primary); }
.btn-outline-primary:hover { background-color: var(--brand-primary); border-color: var(--brand-primary); color: #FFFFFF; }
.btn-info { background-color: var(--brand-primary); border-color: var(--brand-primary); }
.btn-info:hover { background-color: var(--brand-hover); border-color: var(--brand-hover); }
.card-primary.card-outline { border-top-color: var(--brand-primary); }
.card-primary:not(.card-outline) > .card-header { background-color: var(--brand-dark); }
.bg-primary, .badge-primary { background-color: var(--brand-primary) !important; }
.text-primary { color: var(--brand-primary) !important; }
a { color: var(--brand-primary); }
a:hover { color: var(--brand-dark); }
.page-item.active .page-link { background-color: var(--brand-dark); border-color: var(--brand-dark); }
.page-link { color: var(--brand-primary); }
.custom-control-input:checked ~ .custom-control-label::before { background-color: var(--brand-primary); border-color: var(--brand-primary); }
.form-control:focus, .custom-select:focus { border-color: var(--brand-primary); box-shadow: 0 0 0 .2rem rgba(13, 83, 152, .2); }
.nav-tabs .nav-link.active { border-top: 3px solid var(--brand-cta); color: var(--brand-dark); }

/* --- Avisos informativos en Azul Acero (los de exito, advertencia y error conservan su color funcional) --- */
.alert-info { background-color: var(--brand-primary); border-color: var(--brand-primary); color: #FFFFFF; }

/* --- Menu lateral en Azul Marino (dominante) --- */
.main-sidebar, .main-sidebar .brand-link { background-color: var(--brand-dark) !important; }
.main-sidebar .brand-link { border-bottom: 1px solid rgba(174, 185, 196, .25) !important; }
.main-sidebar .nav-sidebar .nav-link, .main-sidebar .nav-sidebar .nav-link p, .main-sidebar .user-panel a { color: #D7DEE5 !important; }
.main-sidebar .nav-sidebar > .nav-item > .nav-link.active { background-color: var(--brand-primary) !important; color: #FFFFFF !important; box-shadow: inset 3px 0 0 var(--brand-cta); }
.main-sidebar .nav-sidebar .nav-link:hover { background-color: rgba(255, 255, 255, .08) !important; color: #FFFFFF !important; }
.main-sidebar .nav-treeview > .nav-item > .nav-link.active { background-color: rgba(255, 255, 255, .12) !important; color: #FFFFFF !important; }
.main-sidebar .user-panel { border-bottom: 1px solid rgba(174, 185, 196, .25) !important; }
.brand-link .brand-image[src*="img/brand/"] { opacity: 1 !important; border-radius: 8px; box-shadow: none; margin-top: 5px; }

/* --- Barra superior y pie --- */
.main-header.navbar { border-bottom: 1px solid #DDE3E9; }
.main-footer { border-top: 1px solid #DDE3E9; color: #5A6B7C; }
.main-footer a.logo-text-black, .lockscreen-footer a.logo-text-black { color: var(--brand-dark); }

/* --- Inicio de sesion: sistema grafico ASIMETRIC (reticula, escala, puntos y bandas diagonales) --- */
.brand-login { background: #F4F6F8 url("../img/brand/_sistema/fondo-login.svg") center / cover no-repeat fixed; }
.brand-login .card { border-radius: 12px; box-shadow: 0 10px 30px rgba(11, 42, 74, .12); }
.brand-login .card-primary.card-outline { border-top: 4px solid var(--brand-dark); }
.brand-login .card-header { border-bottom: 1px solid #E6EBF0; }
.brand-login-mascot { text-align: center; margin-bottom: -18px; position: relative; z-index: 2; }
.brand-login-mascot img { width: 150px; height: auto; }
.brand-login-logo { max-width: 260px; height: auto; }
.brand-login a:not(.btn) { color: var(--brand-primary); }
.brand-endorse { text-align: center; margin-top: 1rem; }
.brand-endorse-name { display: block; font-family: "Montserrat", Arial, sans-serif; font-weight: 800; color: var(--brand-dark); letter-spacing: .02em; font-size: 1rem; }
.brand-endorse-sub { display: block; font-family: "Montserrat", Arial, sans-serif; font-weight: 600; color: var(--brand-dark); letter-spacing: .14em; font-size: .62rem; text-transform: uppercase; }
.brand-endorse-sub::after { content: ""; display: block; width: 36px; height: 3px; border-radius: 2px; background: var(--brand-cta); margin: .45rem auto .35rem; }
.brand-endorse-claim { display: block; color: #5A6B7C; font-size: .8rem; }

/* --- Leyenda de marca (obligatoria) --- */
.brand-legal { font-size: .75rem; color: #5A6B7C; margin-top: .35rem; }
.main-footer .brand-legal { clear: both; }
.brand-login .brand-legal { margin-top: .9rem; }

/* --- Tablas sin informacion (js/brand.js) --- */
td.dataTables_empty .brand-empty { padding: .75rem 0 .25rem; color: #5A6B7C; }
td.dataTables_empty .brand-empty img { width: 110px; height: auto; display: block; margin: 0 auto .35rem; }

/* --- Tablas cargando (js/brand.js) --- */
div.dataTables_wrapper div.dataTables_processing.brand-processing { background: rgba(255,255,255,.96); border-radius: 14px; box-shadow: 0 4px 16px rgba(11,42,74,.14); padding: .6rem 1rem .8rem; width: 180px; height: auto !important; margin-left: -90px; margin-top: -40px; text-align: center; z-index: 5; }
div.dataTables_wrapper div.dataTables_processing.brand-processing > div:not(.brand-proc) { display: none; }
div.dataTables_wrapper div.dataTables_processing.brand-processing > div.brand-proc { position: static; width: auto; height: auto; margin: 0; }
div.dataTables_wrapper div.dataTables_processing.brand-processing img { width: 74px; height: auto; display: block; margin: 0 auto .2rem; }
div.dataTables_wrapper div.dataTables_processing.brand-processing small { color: var(--brand-dark); font-weight: 600; }

/* --- Avisos con la mascota (js/brand.js) --- */
.brand-notify { padding-left: 4.4rem !important; min-height: 4.2rem; }
.brand-notify .brand-notify-mascot { position: absolute; left: .45rem; top: 50%; width: 3.5rem; height: 3.5rem; margin-top: -1.75rem; background: #fff; border-radius: 50%; padding: 2px; }

/* --- Tableros: mascota junto al titulo (js/brand.js) --- */
.brand-dash-mascot { width: 46px; height: 46px; margin: -10px .35rem -8px 0; vertical-align: middle; }

@media (max-width: 767.98px) {
	.brand-login { background-attachment: scroll; }
	.brand-login-mascot img { width: 120px; }
	td.dataTables_empty .brand-empty img { width: 90px; }
	.brand-dash-mascot { width: 38px; height: 38px; }
}
