﻿:root {
            --color-cartagena-yellow: #fdd73d;
            --color-cartagena-green: #1f7f43;
            --color-cartagena-red: #d82d2d;
            --color-cartagena-dark: #0d2d1a;
            --color-cartagena-muted: #fdfcfb;
            --color-cartagena-divider: rgba(248, 212, 106, 0.45);
            --color-nav-bg: #f4f8f2;
            --color-nav-divider: rgba(31, 127, 67, 0.2);
            --color-nav-text: #1b4730;
        }
        html {
            width: 100%;
        }
        body {
            background: var(--color-cartagena-muted);
            color: var(--color-cartagena-dark);
            display: flex;
            flex-direction: column;
            min-height: 100vh;
            width: 100%;
        }
        .main-content {
            flex: 1 0 auto;
            padding-bottom: 4rem;
        }
        .site-footer {
            flex-shrink: 0;
            align-self: stretch;
            width: 100%;
            margin-top: 4rem;
            border-top: 3px solid var(--color-cartagena-green);
        }
        .site-footer-bar {
            background: var(--color-cartagena-dark);
            padding: 1.1rem 0;
            text-align: center;
            width: 100%;
        }
        .site-footer-copy {
            font-size: 0.73rem;
            color: rgba(255, 255, 255, 0.65);
            display: inline-flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: center;
            gap: 0.2rem 0.6rem;
        }
        .site-footer-divider {
            opacity: 0.3;
        }
        .navbar-gestiohe {
            background: linear-gradient(180deg, #f7faf6 0%, var(--color-nav-bg) 100%);
            border-bottom: 1px solid var(--color-nav-divider);
            box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
        }
        .navbar-gestiohe .navbar-brand {
            font-weight: 800;
            font-size: 1.06rem;
            letter-spacing: 0.03em;
            padding: 0;
            border-radius: 0;
            background: transparent;
            border: 0;
            display: inline-flex;
            align-items: center;
            gap: 0;
            color: var(--color-nav-text);
            text-transform: uppercase;
        }
        .navbar-gestiohe .navbar-brand:hover,
        .navbar-gestiohe .navbar-brand:focus {
            color: #123724;
        }
        .navbar-gestiohe .nav-left .nav-link {
            color: var(--color-nav-text);
            font-weight: 600;
            padding: 8px 12px;
            border-radius: 10px;
            transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
        }
        .navbar-gestiohe .nav-left {
            gap: 0.35rem;
        }
        .navbar-gestiohe .nav-left .nav-item {
            margin-right: 0.15rem;
        }
        .navbar-gestiohe .nav-left .nav-link:hover,
        .navbar-gestiohe .nav-left .nav-link:focus {
            background: rgba(31, 127, 67, 0.1);
            color: #123724;
            transform: translateY(-1px);
        }
        .navbar-gestiohe .nav-left .dropdown-toggle::after {
            margin-left: 6px;
        }
        .navbar-gestiohe .nav-left .nav-link.nav-icon-link {
            width: 42px;
            height: 42px;
            padding: 0;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 1.15rem;
        }
        .navbar-gestiohe .nav-left .nav-link.nav-config-link {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
        }
        .nav-left.nav-compact .nav-link {
            font-size: 0.85rem;
            padding: 6px 10px;
            white-space: nowrap;
        }
        .nav-left.nav-compact .dropdown-toggle::after {
            margin-left: 4px;
        }
        .nav-left.nav-sed-nomina-icons {
            gap: 1.35rem;
        }
        .nav-left.nav-sed-nomina-icons .nav-item {
            margin-right: 0.8rem;
        }
        .nav-left.nav-sed-nomina-icons .nav-link.nav-icon-link {
            width: 48px;
            height: 48px;
            font-size: 1.24rem;
        }
        .nav-left.nav-sed-nomina-icons .nav-link.dropdown-toggle::after {
            margin-left: 10px;
        }
        .novedades-menu {
            min-width: 360px;
            padding: 12px;
            border-radius: 12px;
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
            border: 1px solid rgba(255, 255, 255, 0.1);
        }
        .novedades-menu.config-menu {
            border-color: rgba(31, 127, 67, 0.18);
        }
        .novedades-section-title {
            font-size: 0.85rem;
            font-weight: 700;
            color: #0d6efd;
            text-transform: uppercase;
            letter-spacing: 0.03em;
        }
        .novedades-menu .dropdown-item {
            border-radius: 8px;
            padding: 10px 12px;
            display: flex;
            align-items: center;
            gap: 10px;
            font-weight: 600;
        }
        .novedades-menu .dropdown-item:hover {
            background: rgba(253, 215, 61, 0.24);
        }
        .novedades-icon {
            width: 32px;
            height: 32px;
            border-radius: 8px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
        }
        .novedades-icon.planta {
            background: rgba(31, 127, 67, 0.2);
            color: var(--color-cartagena-green);
        }
        .novedades-icon.nomina {
            background: rgba(248, 214, 61, 0.25);
            color: var(--color-cartagena-yellow);
        }
        .novedades-icon.he {
            background: rgba(216, 45, 45, 0.18);
            color: var(--color-cartagena-red);
        }
        .novedades-icon.config {
            background: rgba(13, 110, 253, 0.14);
            color: #0d6efd;
        }
        .novedades-icon.danger {
            background: rgba(220, 53, 69, 0.13);
            color: #dc3545;
        }
        .report-editable-control {
            background-color: #f3fbf3 !important;
            border-color: #b8ddb8 !important;
            box-shadow: inset 0 0 0 1px rgba(120, 170, 120, 0.14);
        }
        .report-editable-control:focus {
            border-color: #8fcb8f !important;
            box-shadow: 0 0 0 0.2rem rgba(143, 203, 143, 0.22) !important;
        }
        .gestiohe-sticky-col {
            position: sticky !important;
            background: #fff !important;
            box-shadow: 1px 0 0 rgba(148, 163, 184, 0.35);
            z-index: 4;
        }
        thead .gestiohe-sticky-col {
            background: #f8fafc !important;
            z-index: 6;
        }
        tbody tr:nth-child(odd) .gestiohe-sticky-col {
            background: #fbfbfb !important;
        }
        tbody tr:hover .gestiohe-sticky-col {
            background: #eef7ee !important;
        }
        .estado-pill {
            display: inline-flex;
            align-items: center;
            padding: 0.2rem 0.55rem;
            border-radius: 999px;
            border: 1px solid transparent;
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.02em;
            text-transform: uppercase;
            line-height: 1.2;
            white-space: nowrap;
        }
        .estado-input {
            font-weight: 700;
            text-transform: uppercase;
            text-align: center;
        }
        .estado-borrador {
            background-color: #f1f5f9 !important;
            border-color: #cbd5e1 !important;
            color: #334155 !important;
        }
        .estado-enviado {
            background-color: #dbeafe !important;
            border-color: #93c5fd !important;
            color: #1d4ed8 !important;
        }
        .estado-aprobado {
            background-color: #dcfce7 !important;
            border-color: #86efac !important;
            color: #166534 !important;
        }
        .estado-devuelto {
            background-color: #fee2e2 !important;
            border-color: #fca5a5 !important;
            color: #991b1b !important;
        }
        .estado-subsanacion {
            background-color: #fef3c7 !important;
            border-color: #fcd34d !important;
            color: #92400e !important;
        }
        .estado-pagado {
            background-color: #d1fae5 !important;
            border-color: #6ee7b7 !important;
            color: #065f46 !important;
        }
        .estado-no-pagado {
            background-color: #ffedd5 !important;
            border-color: #fdba74 !important;
            color: #9a3412 !important;
        }
        .estado-legalizado {
            background-color: #ccfbf1 !important;
            border-color: #5eead4 !important;
            color: #0f766e !important;
        }
        .estado-eliminado {
            background-color: #fee2e2 !important;
            border-color: #ef4444 !important;
            color: #991b1b !important;
        }
        .estado-neutro {
            background-color: #f8fafc !important;
            border-color: #e2e8f0 !important;
            color: #475569 !important;
        }
        .report-actions {
            display: inline-flex;
            align-items: center;
            justify-content: flex-end;
            gap: 0.35rem;
            flex-wrap: nowrap;
            vertical-align: middle;
        }
        .report-actions .report-actions {
            margin-left: 0 !important;
        }
        .report-actions form {
            display: inline-flex;
            align-items: center;
            margin: 0;
        }
        .report-actions .btn {
            width: 32px;
            min-width: 32px;
            height: 32px;
            padding: 0;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            line-height: 1;
            white-space: nowrap;
        }
        .report-actions .btn i {
            margin: 0 !important;
        }
        .report-action-pdf {
            margin-right: 0;
        }
        .notifications-dropdown {
            min-width: 360px;
            border: 1px solid rgba(148, 163, 184, 0.24);
            border-radius: 12px;
            box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
            overflow: hidden;
        }
        .notification-item {
            padding: 0.75rem 0.9rem;
            white-space: normal;
            border-bottom: 1px solid rgba(226, 232, 240, 0.8);
        }
        .notification-item:hover {
            background: #f8fafc;
        }
        .notification-item.is-read {
            opacity: 0.72;
        }
        .notification-icon {
            width: 34px;
            min-width: 34px;
            height: 34px;
            margin-right: 0.6rem;
            border-radius: 10px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: #2563eb;
            background: #dbeafe;
        }
        .notification-icon.is-return {
            color: #b91c1c;
            background: #fee2e2;
        }
        .notification-copy {
            min-width: 0;
        }
        .page-loading-overlay {
            position: fixed;
            inset: 0;
            background: rgba(15, 23, 42, 0.38);
            backdrop-filter: blur(2px);
            display: none;
            align-items: center;
            justify-content: center;
            z-index: 2000;
            padding: 1.5rem;
        }
        .page-loading-overlay.is-visible {
            display: flex;
        }
        .page-loading-card {
            width: min(100%, 420px);
            background: #fffdf8;
            color: var(--color-cartagena-dark);
            border-radius: 18px;
            padding: 1.5rem;
            box-shadow: 0 18px 40px rgba(15, 23, 42, 0.24);
            border: 1px solid rgba(31, 127, 67, 0.12);
            text-align: center;
        }
        .page-loading-card .spinner-border {
            width: 3rem;
            height: 3rem;
        }
        .onboarding-legal-list li + li {
            margin-top: 0.35rem;
        }
        .onboarding-status-badge {
            font-size: 0.78rem;
        }
        .table {
            --bs-table-color: #0f172a;
            --bs-table-border-color: #cbd5e1;
        }
        .table-light {
            --bs-table-bg: #dbeafe;
            --bs-table-color: #0f172a;
            --bs-table-border-color: #93c5fd;
        }
        .table thead th {
            color: #0f172a;
            font-weight: 800;
            border-color: #93c5fd;
        }
        .table tbody td,
        .table tbody th {
            border-color: #cbd5e1;
        }
        .table td.text-end form {
            margin: 0;
        }
        .table td.text-end .d-inline-flex {
            align-items: center;
            justify-content: flex-end;
            flex-wrap: nowrap;
        }
        .table td.text-end .btn.btn-sm {
            display: inline-flex;
            min-width: 2rem;
            min-height: 2rem;
            align-items: center;
            justify-content: center;
            gap: 0.25rem;
            line-height: 1;
        }
        .toolbar-icon-btn,
        .btn-icon-round,
        .icon-btn {
            display: inline-flex;
            width: 2.35rem;
            height: 2.35rem;
            align-items: center;
            justify-content: center;
            padding: 0;
            line-height: 1;
        }
        .form-control,
        .form-select {
            border-color: #94a3b8;
            color: #0f172a;
        }
        .form-control:disabled,
        .form-select:disabled,
        .form-control[readonly] {
            background-color: #eef2f7;
            color: #1e293b;
            opacity: 1;
        }
        .text-muted {
            color: #475569 !important;
        }
        .btn-outline-secondary {
            --bs-btn-color: #1e293b;
            --bs-btn-border-color: #475569;
            --bs-btn-hover-bg: #334155;
            --bs-btn-hover-border-color: #334155;
            --bs-btn-hover-color: #ffffff;
            --bs-btn-active-bg: #334155;
            --bs-btn-active-border-color: #334155;
            --bs-btn-active-color: #ffffff;
            --bs-btn-disabled-color: #475569;
            --bs-btn-disabled-border-color: #94a3b8;
        }
        .card,
        .modal-content,
        .dropdown-menu {
            border-color: #cbd5e1;
        }
        .dropdown-item {
            color: #0f172a;
        }
        .dropdown-item:hover,
        .dropdown-item:focus {
            color: #0f172a;
            background-color: #e0f2fe;
        }
        .searchable-select {
            position: relative;
            width: 100%;
        }
        .searchable-select-input {
            width: 100%;
        }
        .searchable-select-input.form-select {
            background-color: #fff;
        }
        .searchable-select-menu {
            position: absolute;
            top: calc(100% + 4px);
            left: 0;
            right: 0;
            z-index: 1085;
            display: none;
            max-height: 280px;
            overflow-y: auto;
            background: #fff;
            border: 1px solid #cbd5e1;
            border-radius: 0.75rem;
            box-shadow: 0 18px 48px rgba(15, 23, 42, 0.16);
        }
        .searchable-select.is-open .searchable-select-menu {
            display: block;
        }
        .searchable-select-option,
        .searchable-select-empty {
            padding: 0.65rem 0.8rem;
            font-size: 0.95rem;
            line-height: 1.25rem;
        }
        .searchable-select-option {
            cursor: pointer;
            transition: background-color 0.15s ease;
        }
        .searchable-select-option:hover,
        .searchable-select-option.is-active {
            background: #e0f2fe;
        }
        .searchable-select-option.is-selected {
            font-weight: 600;
        }
        .searchable-select-empty {
            color: #64748b;
        }

