/* ============================================
   BRANDING NUBIFY v4 - Tema Bootstrap Blesta
   ============================================ */

/* --- FUENTES BIKO --- */
@font-face {
    font-family: 'Biko';
    src: url('../webfonts/Biko_Regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Biko';
    src: url('../webfonts/Biko_Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Biko';
    src: url('../webfonts/Biko_Black.otf') format('opentype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Biko Light';
    src: url('../webfonts/Biko_Light-Restricted.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

/* --- TIPOGRAFÍA GLOBAL --- */
body, h1, h2, h3, h4, h5, h6, p, a, span, div, li, button, input, select, textarea,
.navbar, .nav-link, .btn, .list-group-item, .dropdown-item,
.panel-title, .table th, .card-header, .modal-title {
    font-family: 'Biko', 'Inter', 'Segoe UI', sans-serif !important;
}

/* --- FONDO GENERAL --- */
body { background: #f0f2f5 !important; }

/* ============================================
   HEADER: AZUL CORPORATIVO (#1E3A8A)
   ============================================ */
.header {
    background-color: #1E3A8A !important;
    background-image: none !important;
}
.header .logo img {
    height: 65px !important;

    transition: transform 0.2s ease !important;
}
.header .logo img:hover {
    transform: scale(1.03) !important;
}
/* Idioma y selector blancos */
.header .language-selector > a,
.header .dropdown-toggle {
    color: #ffffff !important;
}

/* ============================================
   NAVBAR: GRIS PIZARRA (#2C3E50)
   ============================================ */
.nav-content {
    background-color: #2C3E50 !important;
    background-image: none !important;
    box-shadow: 0 3px 12px rgba(0,0,0,0.25) !important;
}

.navbar, .navbar-dark, .navbar-default, .navbar-main,
.nav-content nav.navbar {
    background-color: #2C3E50 !important;
    background-image: none !important;
    padding: 0 !important;
}

/* Texto del menú: blanco */
.navbar-dark .navbar-nav .nav-link,
.navbar-nav > li > a {
    color: #FFFFFF !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.6px !important;
    text-transform: uppercase !important;
    padding: 14px 18px !important;
    border-bottom: 3px solid transparent !important;
    transition: all 0.25s ease !important;
    margin: 0 1px !important;
}

/* Hover: gris más claro (#34495E) */
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus,
.navbar-nav > li > a:hover,
.navbar-nav > li > a:focus {
    color: #FFFFFF !important;
    background-color: #34495E !important;
    border-bottom-color: rgba(255,255,255,0.5) !important;
}

/* Activo */
.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .nav-item.active .nav-link,
.navbar-nav > li.active > a {
    color: #FFFFFF !important;
    background-color: #34495E !important;
    border-bottom-color: #FFFFFF !important;
}

/* Dropdown del menú */
.navbar-dark .dropdown-menu {
    background: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12) !important;
    margin-top: 8px !important;
    overflow: hidden !important;
}
.navbar-dark .dropdown-menu .dropdown-item {
    color: #333 !important;
    font-size: 13px !important;
    padding: 10px 18px !important;
    transition: all 0.15s ease !important;
}
.navbar-dark .dropdown-menu .dropdown-item:hover {
    background: #f4f6ff !important;
    color: #1E3A8A !important;
    padding-left: 22px !important;
}

/* ============================================
   SIDEBAR / PANEL LATERAL
   ============================================ */
.list-group-item {
    border: none !important;
    border-radius: 8px !important;
    margin: 3px 8px !important;
    padding: 11px 16px !important;
    transition: all 0.2s ease !important;
    font-weight: 500 !important;
}
.list-group-item:hover {
    background: #f0f3ff !important;
    color: #1E3A8A !important;
}
.list-group-item.active {
    background: #1E3A8A !important;
    color: #fff !important;
    border-radius: 8px !important;
    box-shadow: 0 3px 10px rgba(30,58,138,0.3) !important;
}

/* ============================================
   TARJETAS / PANELES
   ============================================ */
.panel, .card {
    border: none !important;
    border-radius: 10px !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05) !important;
    margin-bottom: 20px !important;
    transition: box-shadow 0.2s ease !important;
}
.panel:hover, .card:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important;
}
.panel-heading, .card-header {
    background: #fff !important;
    border-bottom: 2px solid #f0f2f5 !important;
    border-radius: 10px 10px 0 0 !important;
    padding: 16px 20px !important;
    font-weight: 700 !important;
    color: #0f1a3e !important;
}
.panel-blesta > .panel-heading, .card-blesta > .card-header {
    background: #2C3E50 !important;
    color: #ffffff !important;
    border-bottom: none !important;
}
.panel-body, .card-body {
    padding: 20px !important;
}

/* Panel Nubify */
.panel-nubify {
    border: none !important;
    border-radius: 10px !important;
    box-shadow: 0 4px 20px rgba(30,58,138,0.12) !important;
    overflow: hidden !important;
}
.panel-nubify > .panel-heading,
.card-nubify > .card-header {
    background: #2C3E50 !important;
    color: #ffffff !important;
    border: none !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    padding: 16px 22px !important;
    font-size: 15px !important;
}
.panel-nubify > .panel-body,
.card-nubify > .card-body {
    padding: 24px !important;
    background: #ffffff !important;
}

/* ============================================
   TABLAS
   ============================================ */
.table { border-radius: 8px !important; overflow: hidden !important; }
.table > thead > tr > th {
    background: #6b7280 !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    padding: 12px 15px !important;
    border: none !important;
}

.table > thead > tr > th > a,
.table > thead > tr > th > a:hover,
.table > thead > tr > th > a:focus {
    color: #ffffff !important;
    text-decoration: none !important;
}
.table tbody td {
    padding: 12px 15px !important;
    vertical-align: middle !important;
    border-top: 1px solid #eef0f5 !important;
}
.table tbody tr:hover { background: #f8f9ff !important; }

/* ============================================
   BOTONES
   ============================================ */
.btn {
    font-family: 'Biko', sans-serif !important;
    font-weight: 600 !important;
    border-radius: 6px !important;
    padding: 9px 20px !important;
    transition: all 0.2s ease !important;
}
.btn-primary {
    background: #1E3A8A !important;
    border: none !important;
    box-shadow: 0 3px 10px rgba(30,58,138,0.25) !important;
}
.btn-primary:hover {
    background: #152C6B !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 5px 16px rgba(30,58,138,0.35) !important;
}
.btn-default, .btn-secondary {
    background: #fff !important;
    border: 1px solid #dde0e8 !important;
    color: #555 !important;
}
.btn-default:hover, .btn-secondary:hover {
    border-color: #1E3A8A !important;
    color: #1E3A8A !important;
}
.btn-sm { padding: 5px 12px !important; font-size: 12px !important; }

/* ============================================
   FOOTER: AZUL (#2B4C8A)
   ============================================ */
.footer {
    background-color: #2B4C8A !important;
    color: #ffffff !important;
    margin-top: auto !important;
    border-top: none !important;
}
.footer hr { border-color: rgba(255,255,255,0.2) !important; }
.footer p { color: #ffffff !important; font-size: 12px !important; }
.footer a { color: #ffffff !important; font-weight: 600 !important; }

/* ============================================
   LOGIN PAGE
   ============================================ */
.login-box {
    border-radius: 12px !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1) !important;
    overflow: hidden !important;
}
.login-box .login-header {
    background: #1E3A8A !important;
    color: #fff !important;
    padding: 25px !important;
    text-align: center !important;
}
.login-box .login-body {
    padding: 30px !important;
    background: #fff !important;
}

/* ============================================
   INPUTS & FORMULARIOS
   ============================================ */
.form-control {
    border-radius: 6px !important;
    border: 1px solid #dde0e8 !important;
    padding: 9px 14px !important;
    transition: all 0.2s ease !important;
}
.form-control:focus {
    border-color: #1E3A8A !important;
    box-shadow: 0 0 0 3px rgba(30,58,138,0.1) !important;
}

/* ============================================
   BADGES
   ============================================ */
.badge {
    font-family: 'Biko', sans-serif !important;
    border-radius: 4px !important;
    padding: 4px 10px !important;
    font-weight: 600 !important;
}
.badge-primary, .badge-info { background: #1E3A8A !important; }

/* ============================================
   ESTRUCTURA: Footer al fondo
   ============================================ */
body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 768px) {
    .navbar-dark .navbar-nav .nav-link,
    .navbar-nav > li > a {
        padding: 10px 14px !important;
        font-size: 12px !important;
    }
    .header .logo img { height: 50px !important; }
    .panel-heading, .card-header { padding: 12px 15px !important; }
    .panel-body, .card-body { padding: 15px !important; }
}


/* Selector de Idiomas: Siempre Blanco */
.header .language-selector > a,
.header .language-selector .dropdown-toggle,
.header .language-selector a:hover,
.header .dropdown-menu .dropdown-item:hover {
    color: #ffffff !important;
}
/* Forzar color del desplegable también */
.header .language-selector .dropdown-menu > li > a {
    color: #333 !important; /* Texto oscuro dentro del menú para legibilidad */
}
.header .language-selector .dropdown-menu > li > a:hover {
    background-color: #f0f0f8 !important;
    color: #1E3A8A !important;
}

/* === FOOTER STICKY Y ANCHO COMPLETO === */

/* 1. Layout general para empujar el footer al final */
html, body {
    height: 100% !important;
    min-height: 100vh !important;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

/* 2. El contenido principal ocupa todo el espacio disponible */
#content, .wrapper, .container-md, .container, .body-content {
    flex: 1 0 auto !important;
    width: 100% !important;
}

/* 3. Footer: Fijo al fondo natural (no flotante) */
.footer, footer {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: auto !important; /* Empuja al fondo */
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    
    /* Forzar ancho completo rompiendo contedores */
    position: relative;
    left: 0;
    
    /* Estilo */
    background-color: #2B4C8A !important;
    color: #ffffff !important;
    border-top: none !important;
    box-shadow: none !important;
    z-index: 1;
}

/* Asegurar que los hijos del footer también sean anchos */
.footer .container, .footer .container-md, .footer .row {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 15px !important; /* Un poquito de aire lateral interno */
}

/* Ocultar HR y líneas extra que puedan molestar */
.footer hr, .footer .m-3 {
    display: none !important;
    visibility: hidden !important;
}

/* Ajuste para móviles */
@media (max-width: 768px) {
    .footer {
        padding: 10px 0 !important;
    }
}
/* ================================ */


/* === FOOTER A WIDE ANCHO === */
.footer, footer {
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(-50vw + 50%) !important;
    left: 0 !important;
    right: 0 !important;
    background-color: #2B4C8A !important;
    color: #ffffff !important;
    padding: 20px 15px !important;
    border-top: none !important;
    box-shadow: none !important;
    margin-top: 30px !important;
}

/* Asegurar que dentro del footer el texto tenga un poco de espacio */
.footer .container, .footer .container-md, .footer .row {
    width: 100% !important;
    max-width: 1200px !important; /* Contenido legible limitado */
    margin: 0 auto !important;
    padding: 0 !important;
}
/* ======================== */


/* ===== NUBIFY LOGIN CENTERED ===== */
/* Fondo de la página de login */
body.client-client_login-index {
    background: #0d1b3e !important;
    background: linear-gradient(135deg, #0d1b3e 0%, #152a66 50%, #1E3A8A 100%) !important;
}

body.client-client_login-index .container-md > .row {
    position: fixed !important;
    top: 38% !important;
    left: 50% !important;
    transform: translate(-50%, 0) !important;
    min-height: auto !important;
    z-index: 1 !important;
}

/* Asegurar que la columna del login esté centrada */
body.client-client_login-index .container-md > .row > .col-md-4,
body.client-client_login-index .container-md > .row > [class*="col-"] {
    float: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Panel del login */
.panel-nubify {
    border: none !important;
    border-radius: 12px !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.25) !important;
    background: #ffffff !important;
}

.panel-nubify .panel-body {
    padding: 35px 30px 25px 30px !important;
    border-radius: 12px 12px 0 0 !important;
}

.panel-nubify .panel-body .form-group label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #333 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.panel-nubify .panel-body .form-control {
    border-radius: 6px !important;
    border: 1px solid #ddd !important;
    padding: 10px 14px !important;
    font-size: 15px !important;
    transition: border-color 0.2s !important;
}

.panel-nubify .panel-body .form-control:focus {
    border-color: #1E3A8A !important;
    box-shadow: 0 0 0 3px rgba(30,58,138,0.1) !important;
}

.panel-nubify .btn-success {
    background: #1E3A8A !important;
    border: none !important;
    font-weight: 600 !important;
    padding: 12px !important;
    border-radius: 6px !important;
    font-size: 15px !important;
    letter-spacing: 0.5px;
    transition: background 0.2s !important;
    margin-top: 5px;
}

.panel-nubify .btn-success:hover {
    background: #152a66 !important;
}

.panel-nubify .checkbox label {
    font-size: 13px !important;
    color: #666 !important;
}

/* Footer del panel (links) */
.panel-nubify .panel-footer {
    background: #f8f9fa !important;
    border-radius: 0 0 12px 12px !important;
    padding: 15px 20px !important;
    border-top: 1px solid #eee !important;
}

.panel-nubify .panel-footer a {
    color: #1E3A8A !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
}

.panel-nubify .panel-footer a:hover {
    color: #152a66 !important;
    text-decoration: underline !important;
}
/* ================================== */


/* ============================================
   🔥 LOGIN WIDE — 1400px+ — MIA 2026-05-22
   Machaca col-md-4 y todo lo que limite
   ============================================ */

/* --- Contenedor principal FULL WIDTH --- */
.client-client_login-index .container-md,
.container-md:has(.panel-nubify) {
    max-width: 1550px !important;
    width: 100% !important;
}

/* --- Rompe col-md-4 → 100% --- */
.row > .col-md-4.col-md-offset-4.col-sm-8.col-sm-offset-2,
.col-md-4:has(.panel-nubify),
.col-sm-8:has(.panel-nubify) {
    width: 100% !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
    float: none !important;
    display: block !important;
}

/* --- Panel login a 1400px+ --- */
.panel-nubify {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 1400px !important;
    display: block !important;
    margin: 0 auto !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 40px rgba(30,58,138,0.15) !important;
}

/* --- Padding generoso --- */
.panel-nubify > .panel-body,
.panel-nubify .panel-body {
    padding: 50px 60px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* --- Inputs grandes --- */
.panel-nubify .form-control,
.panel-nubify input.form-control {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    box-sizing: border-box !important;
    font-size: 18px !important;
    padding: 16px 22px !important;
    height: auto !important;
    border-radius: 8px !important;
    border: 2px solid #e0e0e0 !important;
}

.panel-nubify .form-control:focus {
    border-color: #1E3A8A !important;
    box-shadow: 0 0 0 4px rgba(30,58,138,0.1) !important;
    outline: none !important;
}

/* --- Labels --- */
.panel-nubify label {
    font-size: 17px !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
    display: block !important;
}

/* --- Botón FULL WIDTH --- */
.panel-nubify button[type="submit"],
.panel-nubify .btn-primary,
.panel-nubify .btn {
    width: 100% !important;
    display: block !important;
    font-size: 19px !important;
    padding: 16px 28px !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
}

/* --- Espaciado entre campos --- */
.panel-nubify .form-group {
    margin-bottom: 28px !important;
    width: 100% !important;
}

/* --- Checkbox recordarme --- */
.panel-nubify .checkbox,
.panel-nubify .checkbox label {
    font-size: 15px !important;
}

/* --- Footer del panel --- */
.panel-nubify .panel-footer {
    padding: 18px 60px !important;
    font-size: 14px !important;
}

/* --- Logo centrado y contenido arriba --- */
.panel-nubify .text-center img,
.panel-nubify img[src*="logo"] {
    max-height: 55px !important;
    max-width: 240px !important;
    margin-bottom: 20px !important;
}

/* --- Row y container global --- */
.client-client_login-index .row {
    width: 100% !important;
    max-width: 1440px !important;
    margin: 0 auto !important;
    display: block !important;
}

/* --- Responsive --- */
@media (max-width: 1450px) {
    .col-md-4:has(.panel-nubify),
    .col-sm-8:has(.panel-nubify),
    .panel-nubify {
        max-width: 98% !important;
    }
    .panel-nubify > .panel-body,
    .panel-nubify .panel-body {
        padding: 32px 24px !important;
    }
    .panel-nubify .panel-footer {
        padding: 14px 24px !important;
    }
}

