/* =====================================================================
   ERP ICFD — Tema institucional "Azul marino y dorado"
   Este archivo redefine los colores y componentes de Bootstrap 5.3,
   de modo que todas las pantallas heredan el mismo estilo formal.
   ===================================================================== */

:root {
    /* Paleta institucional */
    --icfd-navy-950: #0B1426;
    --icfd-navy-900: #111D35;
    --icfd-navy-800: #14213D;
    --icfd-navy-700: #1F3157;
    --icfd-navy-600: #2C4270;
    --icfd-navy-100: #E6EAF2;
    --icfd-gold:       #B08D57;
    --icfd-gold-dark:  #8C6D3F;
    --icfd-gold-light: #D9C49A;
    --icfd-gold-50:    #F6F0E4;
    --icfd-ivory:      #F7F5F0;
    --icfd-paper:      #FFFFFF;
    --icfd-line:       #E3DED3;
    --icfd-line-soft:  #EEEAE1;
    --icfd-ink:        #1C2333;
    --icfd-muted:      #6E6A60;

    /* Colores semánticos sobrios */
    --icfd-green:  #2F6B4F;
    --icfd-red:    #9B2C2C;
    --icfd-blue:   #3D5A80;
    --icfd-amber:  #A86F1D;

    --icfd-serif: 'Cormorant Garamond', 'Georgia', 'Times New Roman', serif;
    --icfd-sans:  'Source Sans 3', 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, sans-serif;

    --icfd-radius: 6px;
    --icfd-radius-sm: 4px;
    --icfd-shadow: 0 1px 2px rgba(17, 29, 53, 0.04), 0 8px 24px rgba(17, 29, 53, 0.06);

    /* --- Variables de Bootstrap --- */
    --bs-body-font-family: var(--icfd-sans);
    --bs-body-font-size: 0.97rem;
    --bs-body-color: var(--icfd-ink);
    --bs-body-bg: var(--icfd-ivory);
    --bs-border-color: var(--icfd-line);
    --bs-border-radius: var(--icfd-radius);
    --bs-border-radius-sm: var(--icfd-radius-sm);
    --bs-border-radius-lg: 8px;
    --bs-border-radius-pill: 50rem;
    --bs-link-color: var(--icfd-navy-700);
    --bs-link-color-rgb: 31, 49, 87;
    --bs-link-hover-color: var(--icfd-gold-dark);
    --bs-link-hover-color-rgb: 140, 109, 63;
    --bs-secondary-color: var(--icfd-muted);

    --bs-primary: var(--icfd-navy-800);
    --bs-primary-rgb: 20, 33, 61;
    --bs-secondary: #6E6A60;
    --bs-secondary-rgb: 110, 106, 96;
    --bs-success: var(--icfd-green);
    --bs-success-rgb: 47, 107, 79;
    --bs-danger: var(--icfd-red);
    --bs-danger-rgb: 155, 44, 44;
    --bs-info: var(--icfd-blue);
    --bs-info-rgb: 61, 90, 128;
    --bs-warning: var(--icfd-amber);
    --bs-warning-rgb: 168, 111, 29;
    --bs-dark: var(--icfd-navy-900);
    --bs-dark-rgb: 17, 29, 53;
    --bs-light: #F3F0E8;
    --bs-light-rgb: 243, 240, 232;

    --bs-primary-text-emphasis: var(--icfd-navy-800);
    --bs-primary-bg-subtle: var(--icfd-navy-100);
    --bs-primary-border-subtle: #C5CDDD;
    --bs-success-text-emphasis: #1F4A36;
    --bs-success-bg-subtle: #E7F0EA;
    --bs-success-border-subtle: #BFD6C8;
    --bs-danger-text-emphasis: #6E1E1E;
    --bs-danger-bg-subtle: #F6E7E5;
    --bs-danger-border-subtle: #E2C0BC;
    --bs-warning-text-emphasis: #6B4511;
    --bs-warning-bg-subtle: #FAF1E1;
    --bs-warning-border-subtle: #EBD3A8;
    --bs-info-text-emphasis: #26405F;
    --bs-info-bg-subtle: #E8EDF4;
    --bs-info-border-subtle: #C3CFDF;
    --bs-light-bg-subtle: #FAF8F3;
    --bs-secondary-bg-subtle: #EFECE5;
    --bs-secondary-text-emphasis: #4A473F;
    --bs-tertiary-bg: #F3F0E8;
    --bs-focus-ring-color: rgba(176, 141, 87, 0.30);
}

/* ---------------------------------------------------------------------
   Base
   --------------------------------------------------------------------- */
html { -webkit-font-smoothing: antialiased; }

body {
    min-height: 100vh;
    margin: 0;
    font-family: var(--icfd-sans);
    background-color: var(--icfd-ivory);
    color: var(--icfd-ink);
    letter-spacing: 0.005em;
}

h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5,
.card-title, .modal-title {
    font-family: var(--icfd-serif);
    font-weight: 600;
    color: var(--icfd-navy-800);
    letter-spacing: 0.01em;
    font-variant-numeric: lining-nums;
}
h1, .h1 { font-size: 2.3rem; }
h2, .h2 { font-size: 1.95rem; }
h3, .h3 { font-size: 1.7rem; }
h4, .h4 { font-size: 1.5rem; }
h5, .h5 { font-size: 1.28rem; }
h6, .h6 { font-weight: 700; color: var(--icfd-navy-800); }

/* Iconos de título heredan el dorado */
h1 > i, h2 > i, h3 > i, h4 > i, h5 > i { color: var(--icfd-gold); }
.text-white > i, .text-white i, .bg-dark i, .bg-primary i { color: inherit; }

.text-primary { color: var(--icfd-navy-800) !important; }
h1.text-primary, h2.text-primary, h3.text-primary, h4.text-primary, h5.text-primary { color: var(--icfd-navy-800) !important; }
.text-muted, .text-secondary { color: var(--icfd-muted) !important; }
.text-success { color: var(--icfd-green) !important; }
.text-danger  { color: var(--icfd-red) !important; }
.text-warning { color: var(--icfd-gold) !important; }
.text-info    { color: var(--icfd-blue) !important; }

::selection { background: var(--icfd-gold-light); color: var(--icfd-navy-900); }

/* Montos en tablas: cifras alineadas */
.table td, .table th, .monto { font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------------
   Barra de navegación
   --------------------------------------------------------------------- */
.navbar {
    background: var(--icfd-navy-800) !important;
    border-bottom: 3px solid var(--icfd-gold);
    box-shadow: 0 2px 12px rgba(11, 20, 38, 0.18);
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
}

.navbar-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: #fff !important;
    padding: 0;
    margin-right: 2rem;
}
.navbar-brand .brand-logo {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #fff;
    padding: 2px;
    object-fit: contain;
    box-shadow: 0 0 0 2px var(--icfd-gold);
}
.navbar-brand .brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}
.navbar-brand .brand-name {
    font-family: var(--icfd-serif);
    font-size: 1.45rem;
    font-weight: 700;
    letter-spacing: 0.06em;
}
.navbar-brand .brand-sub {
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--icfd-gold-light);
}

.navbar .nav-link {
    font-weight: 600;
    font-size: 0.86rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.82) !important;
    padding: 0.6rem 0.95rem !important;
    border-radius: 0;
    border-bottom: 2px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.navbar .nav-link i { color: var(--icfd-gold-light); }
.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .nav-link.active,
.navbar .nav-link.show {
    color: #fff !important;
    background: transparent;
    border-bottom-color: var(--icfd-gold);
}
.navbar .user-link { text-transform: none; letter-spacing: 0.02em; }
.navbar-toggler { border-color: rgba(217, 196, 154, 0.5); }

#notification-badge { background: var(--icfd-gold) !important; color: var(--icfd-navy-900); }

/* Menús desplegables */
.dropdown-menu {
    --bs-dropdown-bg: var(--icfd-paper);
    background-color: var(--icfd-paper);
    border: 1px solid var(--icfd-line);
    border-top: 3px solid var(--icfd-gold);
    border-radius: 0 0 var(--icfd-radius) var(--icfd-radius);
    box-shadow: 0 14px 30px rgba(11, 20, 38, 0.14);
    padding: 0.45rem 0;
    margin-top: 0.55rem !important;
    min-width: 15rem;
}
.dropdown-item {
    font-size: 0.93rem;
    font-weight: 500;
    padding: 0.5rem 1.1rem;
    color: var(--icfd-ink);
    border-left: 3px solid transparent;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
.dropdown-item i { color: var(--icfd-gold-dark) !important; width: 1.25rem; }
.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--icfd-gold-50);
    color: var(--icfd-navy-800);
    border-left-color: var(--icfd-gold);
}
.dropdown-item.active, .dropdown-item:active { background-color: var(--icfd-navy-800); color: #fff; }
.dropdown-header {
    font-family: var(--icfd-serif);
    font-size: 0.95rem;
    font-weight: 700;
    font-style: italic;
    color: var(--icfd-gold-dark);
    padding: 0.4rem 1.1rem 0.2rem;
}
.dropdown-divider { border-color: var(--icfd-line-soft); margin: 0.35rem 0; opacity: 1; }

/* ---------------------------------------------------------------------
   Contenedor principal
   --------------------------------------------------------------------- */
.container {
    width: 95%;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
}

.main-content {
    background-color: var(--icfd-paper);
    border: 1px solid var(--icfd-line);
    border-top: 3px solid var(--icfd-navy-800);
    border-radius: var(--icfd-radius);
    box-shadow: var(--icfd-shadow);
    padding: clamp(1.2rem, 2vw, 2.2rem);
    margin-top: clamp(1rem, 2vw, 1.75rem);
    margin-bottom: 2rem;
}

/* ---------------------------------------------------------------------
   Tarjetas
   --------------------------------------------------------------------- */
.card {
    --bs-card-bg: var(--icfd-paper);
    --bs-card-cap-bg: #FAF8F3;
    background-color: var(--icfd-paper);
    border: 1px solid var(--icfd-line) !important;
    border-radius: var(--icfd-radius);
    box-shadow: none !important;
}
.card.border-primary, .border-primary { border-color: var(--icfd-line) !important; }
.card.border-primary { border-top: 3px solid var(--icfd-navy-800) !important; }
.card-header {
    background-color: #FAF8F3;
    border-bottom: 1px solid var(--icfd-line);
    padding: 0.95rem 1.25rem;
}
.card-header h1, .card-header h2, .card-header h3, .card-header h4, .card-header h5 { margin-bottom: 0; }
.card-header.bg-white { background-color: var(--icfd-paper) !important; border-bottom: 1px solid var(--icfd-line); }
.card-header.bg-primary,
.card-header.bg-dark {
    background: var(--icfd-navy-800) !important;
    color: #fff;
    border-bottom: 2px solid var(--icfd-gold);
}
.card-header.bg-primary h1, .card-header.bg-primary h2, .card-header.bg-primary h3,
.card-header.bg-primary h4, .card-header.bg-primary h5,
.card-header.bg-dark h1, .card-header.bg-dark h2, .card-header.bg-dark h3,
.card-header.bg-dark h4, .card-header.bg-dark h5 { color: #fff; }
.card-header.bg-dark .text-warning, .card-header.bg-primary .text-warning { color: var(--icfd-gold-light) !important; }
.card-footer { background-color: #FAF8F3; border-top: 1px solid var(--icfd-line); }
.bg-light { background-color: #FAF8F3 !important; }
.shadow, .shadow-sm { box-shadow: var(--icfd-shadow) !important; }

/* ---------------------------------------------------------------------
   Tablas
   --------------------------------------------------------------------- */
.table {
    --bs-table-bg: var(--icfd-paper);
    --bs-table-hover-bg: var(--icfd-gold-50);
    --bs-table-striped-bg: #FBFAF6;
    border-color: var(--icfd-line-soft);
}
.table > thead > tr > th,
.table thead th,
.table-light th {
    background-color: #F3F0E8 !important;
    color: var(--icfd-navy-800) !important;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--icfd-gold-light) !important;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    white-space: nowrap;
}
.table-dark, .table-dark th, .table > thead.table-dark > tr > th {
    background-color: var(--icfd-navy-800) !important;
    color: #fff !important;
    border-color: var(--icfd-navy-700) !important;
}
.table td { border-color: var(--icfd-line-soft); }
.table tfoot td, .table tfoot th, .table .table-total td {
    font-weight: 700;
    background: #FAF8F3;
    border-top: 2px solid var(--icfd-navy-800);
}

/* ---------------------------------------------------------------------
   Botones
   --------------------------------------------------------------------- */
.btn {
    border-radius: var(--icfd-radius-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
    box-shadow: none !important;
    transform: none !important;
}
.btn-primary {
    --bs-btn-bg: var(--icfd-navy-800);
    --bs-btn-border-color: var(--icfd-navy-800);
    --bs-btn-hover-bg: var(--icfd-navy-700);
    --bs-btn-hover-border-color: var(--icfd-navy-700);
    --bs-btn-active-bg: var(--icfd-navy-900);
    --bs-btn-active-border-color: var(--icfd-navy-900);
    --bs-btn-disabled-bg: var(--icfd-navy-600);
    --bs-btn-disabled-border-color: var(--icfd-navy-600);
    background: var(--bs-btn-bg);
}
.btn-primary:hover, .btn-primary:focus { background: var(--bs-btn-hover-bg); color: #fff; }
.btn-outline-primary {
    --bs-btn-color: var(--icfd-navy-800);
    --bs-btn-border-color: var(--icfd-navy-600);
    --bs-btn-hover-bg: var(--icfd-navy-800);
    --bs-btn-hover-border-color: var(--icfd-navy-800);
    --bs-btn-active-bg: var(--icfd-navy-900);
    --bs-btn-active-border-color: var(--icfd-navy-900);
}
.btn-success {
    --bs-btn-bg: var(--icfd-green); --bs-btn-border-color: var(--icfd-green);
    --bs-btn-hover-bg: #275A43; --bs-btn-hover-border-color: #275A43;
    --bs-btn-active-bg: #1F4A36; --bs-btn-active-border-color: #1F4A36;
}
.btn-outline-success {
    --bs-btn-color: var(--icfd-green); --bs-btn-border-color: #8FB5A0;
    --bs-btn-hover-bg: var(--icfd-green); --bs-btn-hover-border-color: var(--icfd-green);
    --bs-btn-active-bg: var(--icfd-green); --bs-btn-active-border-color: var(--icfd-green);
}
.btn-danger {
    --bs-btn-bg: var(--icfd-red); --bs-btn-border-color: var(--icfd-red);
    --bs-btn-hover-bg: #832424; --bs-btn-hover-border-color: #832424;
    --bs-btn-active-bg: #6E1E1E; --bs-btn-active-border-color: #6E1E1E;
}
.btn-outline-danger {
    --bs-btn-color: var(--icfd-red); --bs-btn-border-color: #CFA09B;
    --bs-btn-hover-bg: var(--icfd-red); --bs-btn-hover-border-color: var(--icfd-red);
    --bs-btn-active-bg: var(--icfd-red); --bs-btn-active-border-color: var(--icfd-red);
}
.btn-info {
    --bs-btn-color: #fff; --bs-btn-bg: var(--icfd-blue); --bs-btn-border-color: var(--icfd-blue);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #324B6B; --bs-btn-hover-border-color: #324B6B;
}
.btn-outline-info {
    --bs-btn-color: var(--icfd-blue); --bs-btn-border-color: #9FB1C9;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--icfd-blue); --bs-btn-hover-border-color: var(--icfd-blue);
}
.btn-warning {
    --bs-btn-color: var(--icfd-navy-900); --bs-btn-bg: var(--icfd-gold-light); --bs-btn-border-color: var(--icfd-gold);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--icfd-gold); --bs-btn-hover-border-color: var(--icfd-gold-dark);
}
.btn-outline-warning {
    --bs-btn-color: var(--icfd-gold-dark); --bs-btn-border-color: var(--icfd-gold-light);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--icfd-gold); --bs-btn-hover-border-color: var(--icfd-gold);
}
.btn-secondary {
    --bs-btn-bg: #6E6A60; --bs-btn-border-color: #6E6A60;
    --bs-btn-hover-bg: #5A574F; --bs-btn-hover-border-color: #5A574F;
}
.btn-outline-secondary {
    --bs-btn-color: #5A574F; --bs-btn-border-color: #CFC9BC;
    --bs-btn-hover-color: var(--icfd-navy-800); --bs-btn-hover-bg: var(--icfd-gold-50); --bs-btn-hover-border-color: var(--icfd-gold);
    --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--icfd-navy-800); --bs-btn-active-border-color: var(--icfd-navy-800);
}
.btn-light {
    --bs-btn-bg: #F3F0E8; --bs-btn-border-color: var(--icfd-line);
    --bs-btn-hover-bg: var(--icfd-gold-50); --bs-btn-hover-border-color: var(--icfd-gold-light);
}
.btn-link { color: var(--icfd-navy-700); font-weight: 600; }

/* ---------------------------------------------------------------------
   Formularios
   --------------------------------------------------------------------- */
.form-label { font-weight: 600; color: var(--icfd-navy-800); font-size: 0.9rem; }
.form-control, .form-select {
    border-color: #D6D0C3;
    border-radius: var(--icfd-radius-sm);
    background-color: #FFFEFC;
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
    border-color: var(--icfd-gold);
    box-shadow: 0 0 0 0.2rem rgba(176, 141, 87, 0.22);
}
.form-check-input:checked { background-color: var(--icfd-navy-800); border-color: var(--icfd-navy-800); }
.input-group-text { background-color: #F3F0E8; border-color: #D6D0C3; color: var(--icfd-navy-700); }
.form-text { color: var(--icfd-muted); }

/* ---------------------------------------------------------------------
   Insignias, alertas, pestañas y paginación
   --------------------------------------------------------------------- */
.badge { font-weight: 600; letter-spacing: 0.03em; border-radius: var(--icfd-radius-sm); }
.badge.rounded-pill { border-radius: 50rem; }
.badge.bg-light { background-color: #F3F0E8 !important; color: var(--icfd-navy-800) !important; border: 1px solid var(--icfd-line); }

.alert {
    border-radius: var(--icfd-radius-sm);
    border-width: 1px;
    border-left-width: 4px;
}
.alert-success { border-left-color: var(--icfd-green); }
.alert-danger  { border-left-color: var(--icfd-red); }
.alert-warning { border-left-color: var(--icfd-gold); }
.alert-info    { border-left-color: var(--icfd-blue); }

.nav-tabs { border-bottom: 1px solid var(--icfd-line); }
.nav-tabs .nav-link {
    color: var(--icfd-muted);
    font-weight: 600;
    border: none;
    border-bottom: 3px solid transparent;
    border-radius: 0;
}
.nav-tabs .nav-link:hover { color: var(--icfd-navy-800); border-bottom-color: var(--icfd-gold-light); }
.nav-tabs .nav-link.active {
    color: var(--icfd-navy-800);
    background: transparent;
    border-bottom-color: var(--icfd-gold);
}
.nav-pills .nav-link.active { background-color: var(--icfd-navy-800); }

.pagination {
    --bs-pagination-color: var(--icfd-navy-700);
    --bs-pagination-hover-color: var(--icfd-navy-800);
    --bs-pagination-hover-bg: var(--icfd-gold-50);
    --bs-pagination-active-bg: var(--icfd-navy-800);
    --bs-pagination-active-border-color: var(--icfd-navy-800);
    --bs-pagination-focus-box-shadow: 0 0 0 0.2rem rgba(176, 141, 87, 0.22);
}
.page-item.active .page-link { background-color: var(--icfd-navy-800) !important; border-color: var(--icfd-navy-800) !important; }

.list-group { --bs-list-group-bg: var(--icfd-paper); --bs-list-group-border-color: var(--icfd-line-soft); }
.list-group-item.active { background-color: var(--icfd-navy-800); border-color: var(--icfd-navy-800); }
.progress-bar { background-color: var(--icfd-navy-700); }
.modal-content { --bs-modal-bg: var(--icfd-paper); border-radius: var(--icfd-radius); border: 1px solid var(--icfd-line); }
.modal-header { border-bottom: 2px solid var(--icfd-gold-light); }

/* DataTables */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select { border-color: #D6D0C3; border-radius: var(--icfd-radius-sm); }
.dataTables_wrapper .dataTables_info { color: var(--icfd-muted); font-size: 0.88rem; }

.table-responsive,
.dataTables_wrapper {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ---------------------------------------------------------------------
   Pie de página
   --------------------------------------------------------------------- */
.erp-footer {
    background: var(--icfd-navy-900);
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.84rem;
    letter-spacing: 0.03em;
    padding: 1.1rem 0;
    border-top: 3px solid var(--icfd-gold);
}
.erp-footer .footer-name {
    font-family: var(--icfd-serif);
    font-size: 1.02rem;
    color: var(--icfd-gold-light);
    letter-spacing: 0.04em;
}
.erp-footer a { color: var(--icfd-gold-light); text-decoration: none; }

/* ---------------------------------------------------------------------
   Inicio (dashboard)
   --------------------------------------------------------------------- */
.home-hero {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    padding: 0.5rem 0 1.75rem;
    border-bottom: 1px solid var(--icfd-line);
    margin-bottom: 1.75rem;
}
.home-hero img {
    width: 104px;
    height: 104px;
    object-fit: contain;
    flex-shrink: 0;
}
.home-hero .eyebrow {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--icfd-gold-dark);
    margin-bottom: 0.15rem;
}
.home-hero h1 { margin: 0 0 0.25rem; font-size: 2.2rem; line-height: 1.1; }
.home-hero .lead { color: var(--icfd-muted); font-size: 1.02rem; margin: 0; }
.home-section-title {
    font-family: var(--icfd-serif);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--icfd-navy-800);
    margin: 0 0 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.home-section-title::after { content: ""; flex: 1; height: 1px; background: var(--icfd-line); }
.home-tile {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    height: 100%;
    padding: 1.15rem 1.25rem;
    background: var(--icfd-paper);
    border: 1px solid var(--icfd-line);
    border-left: 3px solid var(--icfd-navy-800);
    border-radius: var(--icfd-radius);
    color: var(--icfd-ink);
    text-decoration: none;
    transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.home-tile:hover {
    border-left-color: var(--icfd-gold);
    background: #FFFDF8;
    box-shadow: var(--icfd-shadow);
    color: var(--icfd-ink);
}
.home-tile .tile-icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--icfd-navy-100);
    color: var(--icfd-navy-800);
    font-size: 1.05rem;
}
.home-tile.tile-in .tile-icon  { background: var(--bs-success-bg-subtle); color: var(--icfd-green); }
.home-tile.tile-out .tile-icon { background: var(--bs-danger-bg-subtle); color: var(--icfd-red); }
.home-tile .tile-title {
    font-family: var(--icfd-serif);
    font-size: 1.22rem;
    font-weight: 700;
    color: var(--icfd-navy-800);
    line-height: 1.2;
}
.home-tile .tile-desc { font-size: 0.9rem; color: var(--icfd-muted); margin-top: 0.15rem; }

/* ---------------------------------------------------------------------
   Responsivo
   --------------------------------------------------------------------- */
@media (min-width: 1200px) and (max-width: 1440px) {
    .container { max-width: 96%; }
    .main-content { padding: 1.4rem 1.6rem 1.9rem; margin-top: 1.1rem; }
    .navbar .nav-link { font-size: 0.8rem; padding: 0.5rem 0.75rem !important; }
}

@media (max-width: 991.98px) {
    .navbar .nav-link { border-bottom: none; border-left: 2px solid transparent; }
    .navbar .nav-link:hover, .navbar .nav-link.active, .navbar .nav-link.show { border-left-color: var(--icfd-gold); }
    .dropdown-menu { margin-top: 0 !important; }
}

@media (max-width: 768px) {
    .main-content { padding: 1.25rem 1rem 2rem; margin-top: 0.9rem; }
    .navbar-brand .brand-name { font-size: 1.25rem; }
    .navbar-brand .brand-logo { width: 36px; height: 36px; }
    .home-hero { flex-direction: column; text-align: center; gap: 1rem; }
    .home-hero h1 { font-size: 1.8rem; }
}

/* Impresión: sin barra ni pie */
@media print {
    .navbar, .erp-footer { display: none !important; }
    .main-content { border: none; box-shadow: none; padding: 0; margin: 0; }
    body { background: #fff; }
}
