/* Shared GIA palette: sage, linen, sand and muted terracotta.
   Pastel surfaces always use dark text; colour is not the only status cue. */
:root {
    --gia-ink: #293c32;
    --gia-muted: #657068;
    --gia-line: #dce1d9;
    --gia-bg: #f6f5f1;
    --gia-accent: #526f5d;
    --gia-sidebar: #2f4037;
    --gia-primary-bg: #dfe8d8;
    --gia-primary-border: #b8c9af;
    --gia-primary-ink: #3f593b;
    --gia-success-bg: #e5eddc;
    --gia-success-border: #b6c9a7;
    --gia-success-ink: #49643e;
    --gia-info-bg: #eeeae2;
    --gia-info-border: #d7cdbd;
    --gia-info-ink: #645744;
    --gia-warning-bg: #f5ead4;
    --gia-warning-border: #d9c49d;
    --gia-warning-ink: #715b30;
    --gia-danger-bg: #f2e3df;
    --gia-danger-border: #d6b7ae;
    --gia-danger-ink: #874d43;
    --gia-secondary-bg: #eeeee7;
    --gia-secondary-border: #c9cdbf;
    --gia-secondary-ink: #5d6655;
    --bs-primary: #526f5d;
    --bs-primary-rgb: 82, 111, 93;
    --bs-secondary: #657068;
    --bs-secondary-rgb: 101, 112, 104;
    --bs-success: #587548;
    --bs-success-rgb: 88, 117, 72;
    --bs-info: #807052;
    --bs-info-rgb: 128, 112, 82;
    --bs-warning: #b6975f;
    --bs-warning-rgb: 182, 151, 95;
    --bs-danger: #96594f;
    --bs-danger-rgb: 150, 89, 79;
    --bs-body-color: var(--gia-ink);
    --bs-body-color-rgb: 41, 60, 50;
    --bs-secondary-color: var(--gia-muted);
    --bs-border-color: var(--gia-line);
    --bs-link-color: #496551;
    --bs-link-color-rgb: 73, 101, 81;
    --bs-link-hover-color: #354e3d;
    --bs-link-hover-color-rgb: 53, 78, 61;
    --bs-focus-ring-color: rgb(82 111 93 / 24%);
}
.gia-theme { accent-color: var(--gia-accent); }
.gia-theme ::selection { background: var(--gia-primary-bg); color: var(--gia-ink); }
.gia-theme :focus-visible { outline: 3px solid #8d7550; outline-offset: 3px; }
.gia-theme a { color: var(--bs-link-color); }
.gia-theme a:hover { color: var(--bs-link-hover-color); }
/* Framework helpers and legacy panel headings also use the pastel surfaces. */

.gia-theme .bg-primary, .gia-theme .text-bg-primary,
.gia-theme .label-primary, .gia-theme .badge-primary,
.gia-theme .panel-primary > .panel-heading {
    background-color: var(--gia-primary-bg) !important;
    color: var(--gia-primary-ink) !important;
}
.gia-theme .bg-primary a:not(.btn), .gia-theme .bg-primary .text-white { color: var(--gia-primary-ink) !important; }
.gia-theme .border-primary, .gia-theme .panel-primary { border-color: var(--gia-primary-border) !important; }
.gia-theme .alert-primary {
    --bs-alert-color: var(--gia-primary-ink);
    --bs-alert-bg: var(--gia-primary-bg);
    --bs-alert-border-color: var(--gia-primary-border);
    background: var(--gia-primary-bg); color: var(--gia-primary-ink); border-color: var(--gia-primary-border);
}
.gia-theme .btn-primary, .gia-theme .btn-outline-primary {
    --bs-btn-color: var(--gia-primary-ink);
    --bs-btn-bg: var(--gia-primary-bg);
    --bs-btn-border-color: var(--gia-primary-border);
    --bs-btn-hover-color: var(--gia-primary-ink);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gia-primary-bg) 86%, var(--gia-primary-border));
    --bs-btn-hover-border-color: var(--gia-primary-ink);
    --bs-btn-active-color: var(--gia-primary-ink);
    --bs-btn-active-bg: var(--gia-primary-border);
    --bs-btn-active-border-color: var(--gia-primary-ink);
    --bs-btn-disabled-color: var(--gia-primary-ink);
    --bs-btn-disabled-bg: var(--gia-primary-bg);
    --bs-btn-disabled-border-color: var(--gia-primary-border);
    --bs-btn-focus-shadow-rgb: 82, 111, 93;
    color: var(--bs-btn-color);
}
.gia-theme .btn-outline-primary { --bs-btn-bg: transparent; }

.gia-theme .bg-secondary, .gia-theme .text-bg-secondary,
.gia-theme .label-secondary, .gia-theme .badge-secondary,
.gia-theme .panel-secondary > .panel-heading {
    background-color: var(--gia-secondary-bg) !important;
    color: var(--gia-secondary-ink) !important;
}
.gia-theme .bg-secondary a:not(.btn), .gia-theme .bg-secondary .text-white { color: var(--gia-secondary-ink) !important; }
.gia-theme .border-secondary, .gia-theme .panel-secondary { border-color: var(--gia-secondary-border) !important; }
.gia-theme .alert-secondary {
    --bs-alert-color: var(--gia-secondary-ink);
    --bs-alert-bg: var(--gia-secondary-bg);
    --bs-alert-border-color: var(--gia-secondary-border);
    background: var(--gia-secondary-bg); color: var(--gia-secondary-ink); border-color: var(--gia-secondary-border);
}
.gia-theme .btn-secondary, .gia-theme .btn-outline-secondary {
    --bs-btn-color: var(--gia-secondary-ink);
    --bs-btn-bg: var(--gia-secondary-bg);
    --bs-btn-border-color: var(--gia-secondary-border);
    --bs-btn-hover-color: var(--gia-secondary-ink);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gia-secondary-bg) 86%, var(--gia-secondary-border));
    --bs-btn-hover-border-color: var(--gia-secondary-ink);
    --bs-btn-active-color: var(--gia-secondary-ink);
    --bs-btn-active-bg: var(--gia-secondary-border);
    --bs-btn-active-border-color: var(--gia-secondary-ink);
    --bs-btn-disabled-color: var(--gia-secondary-ink);
    --bs-btn-disabled-bg: var(--gia-secondary-bg);
    --bs-btn-disabled-border-color: var(--gia-secondary-border);
    --bs-btn-focus-shadow-rgb: 82, 111, 93;
    color: var(--bs-btn-color);
}
.gia-theme .btn-outline-secondary { --bs-btn-bg: transparent; }

.gia-theme .bg-success, .gia-theme .text-bg-success,
.gia-theme .label-success, .gia-theme .badge-success,
.gia-theme .panel-success > .panel-heading {
    background-color: var(--gia-success-bg) !important;
    color: var(--gia-success-ink) !important;
}
.gia-theme .bg-success a:not(.btn), .gia-theme .bg-success .text-white { color: var(--gia-success-ink) !important; }
.gia-theme .border-success, .gia-theme .panel-success { border-color: var(--gia-success-border) !important; }
.gia-theme .alert-success {
    --bs-alert-color: var(--gia-success-ink);
    --bs-alert-bg: var(--gia-success-bg);
    --bs-alert-border-color: var(--gia-success-border);
    background: var(--gia-success-bg); color: var(--gia-success-ink); border-color: var(--gia-success-border);
}
.gia-theme .btn-success, .gia-theme .btn-outline-success {
    --bs-btn-color: var(--gia-success-ink);
    --bs-btn-bg: var(--gia-success-bg);
    --bs-btn-border-color: var(--gia-success-border);
    --bs-btn-hover-color: var(--gia-success-ink);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gia-success-bg) 86%, var(--gia-success-border));
    --bs-btn-hover-border-color: var(--gia-success-ink);
    --bs-btn-active-color: var(--gia-success-ink);
    --bs-btn-active-bg: var(--gia-success-border);
    --bs-btn-active-border-color: var(--gia-success-ink);
    --bs-btn-disabled-color: var(--gia-success-ink);
    --bs-btn-disabled-bg: var(--gia-success-bg);
    --bs-btn-disabled-border-color: var(--gia-success-border);
    --bs-btn-focus-shadow-rgb: 82, 111, 93;
    color: var(--bs-btn-color);
}
.gia-theme .btn-outline-success { --bs-btn-bg: transparent; }

.gia-theme .bg-info, .gia-theme .text-bg-info,
.gia-theme .label-info, .gia-theme .badge-info,
.gia-theme .panel-info > .panel-heading {
    background-color: var(--gia-info-bg) !important;
    color: var(--gia-info-ink) !important;
}
.gia-theme .bg-info a:not(.btn), .gia-theme .bg-info .text-white { color: var(--gia-info-ink) !important; }
.gia-theme .border-info, .gia-theme .panel-info { border-color: var(--gia-info-border) !important; }
.gia-theme .alert-info {
    --bs-alert-color: var(--gia-info-ink);
    --bs-alert-bg: var(--gia-info-bg);
    --bs-alert-border-color: var(--gia-info-border);
    background: var(--gia-info-bg); color: var(--gia-info-ink); border-color: var(--gia-info-border);
}
.gia-theme .btn-info, .gia-theme .btn-outline-info {
    --bs-btn-color: var(--gia-info-ink);
    --bs-btn-bg: var(--gia-info-bg);
    --bs-btn-border-color: var(--gia-info-border);
    --bs-btn-hover-color: var(--gia-info-ink);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gia-info-bg) 86%, var(--gia-info-border));
    --bs-btn-hover-border-color: var(--gia-info-ink);
    --bs-btn-active-color: var(--gia-info-ink);
    --bs-btn-active-bg: var(--gia-info-border);
    --bs-btn-active-border-color: var(--gia-info-ink);
    --bs-btn-disabled-color: var(--gia-info-ink);
    --bs-btn-disabled-bg: var(--gia-info-bg);
    --bs-btn-disabled-border-color: var(--gia-info-border);
    --bs-btn-focus-shadow-rgb: 82, 111, 93;
    color: var(--bs-btn-color);
}
.gia-theme .btn-outline-info { --bs-btn-bg: transparent; }

.gia-theme .bg-warning, .gia-theme .text-bg-warning,
.gia-theme .label-warning, .gia-theme .badge-warning,
.gia-theme .panel-warning > .panel-heading {
    background-color: var(--gia-warning-bg) !important;
    color: var(--gia-warning-ink) !important;
}
.gia-theme .bg-warning a:not(.btn), .gia-theme .bg-warning .text-white { color: var(--gia-warning-ink) !important; }
.gia-theme .border-warning, .gia-theme .panel-warning { border-color: var(--gia-warning-border) !important; }
.gia-theme .alert-warning {
    --bs-alert-color: var(--gia-warning-ink);
    --bs-alert-bg: var(--gia-warning-bg);
    --bs-alert-border-color: var(--gia-warning-border);
    background: var(--gia-warning-bg); color: var(--gia-warning-ink); border-color: var(--gia-warning-border);
}
.gia-theme .btn-warning, .gia-theme .btn-outline-warning {
    --bs-btn-color: var(--gia-warning-ink);
    --bs-btn-bg: var(--gia-warning-bg);
    --bs-btn-border-color: var(--gia-warning-border);
    --bs-btn-hover-color: var(--gia-warning-ink);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gia-warning-bg) 86%, var(--gia-warning-border));
    --bs-btn-hover-border-color: var(--gia-warning-ink);
    --bs-btn-active-color: var(--gia-warning-ink);
    --bs-btn-active-bg: var(--gia-warning-border);
    --bs-btn-active-border-color: var(--gia-warning-ink);
    --bs-btn-disabled-color: var(--gia-warning-ink);
    --bs-btn-disabled-bg: var(--gia-warning-bg);
    --bs-btn-disabled-border-color: var(--gia-warning-border);
    --bs-btn-focus-shadow-rgb: 82, 111, 93;
    color: var(--bs-btn-color);
}
.gia-theme .btn-outline-warning { --bs-btn-bg: transparent; }

.gia-theme .bg-danger, .gia-theme .text-bg-danger,
.gia-theme .label-danger, .gia-theme .badge-danger,
.gia-theme .panel-danger > .panel-heading {
    background-color: var(--gia-danger-bg) !important;
    color: var(--gia-danger-ink) !important;
}
.gia-theme .bg-danger a:not(.btn), .gia-theme .bg-danger .text-white { color: var(--gia-danger-ink) !important; }
.gia-theme .border-danger, .gia-theme .panel-danger { border-color: var(--gia-danger-border) !important; }
.gia-theme .alert-danger {
    --bs-alert-color: var(--gia-danger-ink);
    --bs-alert-bg: var(--gia-danger-bg);
    --bs-alert-border-color: var(--gia-danger-border);
    background: var(--gia-danger-bg); color: var(--gia-danger-ink); border-color: var(--gia-danger-border);
}
.gia-theme .btn-danger, .gia-theme .btn-outline-danger {
    --bs-btn-color: var(--gia-danger-ink);
    --bs-btn-bg: var(--gia-danger-bg);
    --bs-btn-border-color: var(--gia-danger-border);
    --bs-btn-hover-color: var(--gia-danger-ink);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gia-danger-bg) 86%, var(--gia-danger-border));
    --bs-btn-hover-border-color: var(--gia-danger-ink);
    --bs-btn-active-color: var(--gia-danger-ink);
    --bs-btn-active-bg: var(--gia-danger-border);
    --bs-btn-active-border-color: var(--gia-danger-ink);
    --bs-btn-disabled-color: var(--gia-danger-ink);
    --bs-btn-disabled-bg: var(--gia-danger-bg);
    --bs-btn-disabled-border-color: var(--gia-danger-border);
    --bs-btn-focus-shadow-rgb: 82, 111, 93;
    color: var(--bs-btn-color);
}
.gia-theme .btn-outline-danger { --bs-btn-bg: transparent; }
/* One clear solid action; repeated grid actions stay quiet and readable. */
.gia-theme .btn-primary {
    --bs-btn-color: #fff; --bs-btn-bg: #526f5d; --bs-btn-border-color: #526f5d;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #405947; --bs-btn-hover-border-color: #405947;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #354e3d; --bs-btn-active-border-color: #354e3d;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #526f5d; --bs-btn-disabled-border-color: #526f5d;
}
.gia-theme .grid-view .btn-primary {
    --bs-btn-color: var(--gia-primary-ink); --bs-btn-bg: var(--gia-primary-bg); --bs-btn-border-color: var(--gia-primary-border);
    --bs-btn-hover-color: var(--gia-primary-ink); --bs-btn-hover-bg: #cfdcc5; --bs-btn-hover-border-color: #8ea580;
    --bs-btn-active-color: var(--gia-primary-ink); --bs-btn-active-bg: var(--gia-primary-border); --bs-btn-active-border-color: #8ea580;
    --bs-btn-disabled-color: var(--gia-primary-ink); --bs-btn-disabled-bg: var(--gia-primary-bg); --bs-btn-disabled-border-color: var(--gia-primary-border);
}
.gia-theme .btn:hover, .gia-theme .btn:focus-visible { color: var(--bs-btn-hover-color); }
.gia-theme .btn.active, .gia-theme .btn:active { color: var(--bs-btn-active-color); }
.gia-theme .btn:disabled, .gia-theme .btn.disabled { color: var(--bs-btn-disabled-color); }
.gia-theme .btn-link { --bs-btn-color: var(--bs-link-color); --bs-btn-hover-color: var(--bs-link-hover-color); }
.gia-theme .btn-primary .badge { color: inherit; }
.gia-theme .dropdown-menu {
    --bs-dropdown-link-active-bg: var(--gia-primary-bg);
    --bs-dropdown-link-active-color: var(--gia-primary-ink);
    --bs-dropdown-link-hover-bg: #edf1e9;
    --bs-dropdown-link-hover-color: var(--gia-ink);
    border-color: var(--gia-line);
}
.gia-theme .pagination {
    --bs-pagination-color: var(--bs-link-color);
    --bs-pagination-hover-color: var(--bs-link-hover-color);
    --bs-pagination-hover-bg: #edf1e9;
    --bs-pagination-focus-color: var(--bs-link-hover-color);
    --bs-pagination-focus-bg: #edf1e9;
    --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgb(82 111 93 / 20%);
    --bs-pagination-active-color: var(--gia-primary-ink);
    --bs-pagination-active-bg: var(--gia-primary-bg);
    --bs-pagination-active-border-color: var(--gia-primary-border);
}
.gia-theme .page-link { color: var(--bs-pagination-color); }
.gia-theme .active > .page-link { color: var(--bs-pagination-active-color); }
.gia-theme .nav-pills { --bs-nav-pills-link-active-bg: var(--gia-primary-bg); --bs-nav-pills-link-active-color: var(--gia-primary-ink); }
.gia-theme .nav-tabs .nav-link.active, .gia-theme .nav-tabs > li.active > a { color: var(--gia-primary-ink); border-top-color: var(--gia-primary-border) !important; }
.gia-theme .nav-tabs-custom > .nav-tabs > li.active { border-top-color: var(--gia-accent); }
.gia-theme .form-control:focus, .gia-theme .form-select:focus, .gia-theme .form-check-input:focus {
    border-color: var(--gia-accent); box-shadow: 0 0 0 .2rem rgb(82 111 93 / 18%);
}
.gia-theme .form-check-input:checked { background-color: var(--gia-accent); border-color: var(--gia-accent); }
.gia-theme .input-group-text { background: #eeeee7; border-color: var(--gia-line); color: var(--gia-muted); }
.gia-theme .accordion { --bs-accordion-active-bg: var(--gia-primary-bg); --bs-accordion-active-color: var(--gia-primary-ink); --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem rgb(82 111 93 / 20%); }
.gia-theme .progress { --bs-progress-bar-bg: var(--gia-accent); --bs-progress-bg: #e8ede2; }
.gia-theme .table-primary, .gia-theme .table-info { --bs-table-bg: var(--gia-primary-bg); --bs-table-color: var(--gia-primary-ink); --bs-table-border-color: var(--gia-primary-border); }
/* Kartik Select2, dates, editable fields and file uploads. */
.gia-theme .select2-container--krajee-bs5 .select2-selection { border-color: #bbc6b8; box-shadow: none; }
.gia-theme .select2-container--krajee-bs5.select2-container--focus .select2-selection,
.gia-theme .select2-container--krajee-bs5.select2-container--open .select2-selection,
.gia-theme .select2-container--krajee-bs5 .select2-dropdown { border-color: var(--gia-accent); box-shadow: 0 0 0 .2rem rgb(82 111 93 / 12%); }
.gia-theme .select2-container--krajee-bs5 .select2-results__option[aria-selected=true],
.gia-theme .select2-container--krajee-bs5 .select2-results__option--highlighted[aria-selected] { background: var(--gia-primary-bg); color: var(--gia-primary-ink); }
.gia-theme .select2-container--krajee-bs5 .select2-selection__choice { background: #eeeee7; color: var(--gia-ink); border-color: var(--gia-line); }
.gia-theme .datepicker table tr td.active, .gia-theme .datepicker table tr td.active:hover,
.gia-theme .datepicker table tr td span.active, .gia-theme .datepicker table tr td.selected,
.gia-theme .daterangepicker td.active, .gia-theme .daterangepicker .ranges li.active {
    background: var(--gia-accent) !important; color: #fff !important; text-shadow: none; border-color: var(--gia-accent);
}
.gia-theme .daterangepicker td.in-range { background: var(--gia-primary-bg); color: var(--gia-primary-ink); }
.gia-theme .kv-editable-link { color: var(--bs-link-color); border-bottom-color: var(--gia-primary-border); }
.gia-theme .file-drop-zone.clickable:hover { border-color: var(--gia-accent); background: #f6f7f2; }
.gia-theme .bootstrap-dialog.type-primary .modal-header, .gia-theme .bootstrap-dialog.type-info .modal-header { background: var(--gia-primary-bg); color: var(--gia-primary-ink); }
.gia-theme .bootstrap-dialog .bootstrap-dialog-title { color: inherit; }
.gia-theme .swal2-styled.swal2-confirm { background-color: var(--gia-accent); }
/* Legacy application helpers still used in property and agency forms. */
.gia-theme .bg-aqua, .gia-theme .fondo-azul, .gia-theme .budget-numero { background: var(--gia-primary-bg) !important; color: var(--gia-primary-ink) !important; }
.gia-theme .bg-green { background: var(--gia-success-bg) !important; color: var(--gia-success-ink) !important; }
.gia-theme .bg-yellow { background: var(--gia-warning-bg) !important; color: var(--gia-warning-ink) !important; }
.gia-theme .bg-red { background: var(--gia-danger-bg) !important; color: var(--gia-danger-ink) !important; }
.gia-theme .caja-info { background: var(--gia-warning-bg); color: var(--gia-warning-ink); border-color: var(--gia-warning-border); }
.gia-theme div.required label:after, .gia-theme .borrar-zona, .gia-theme .invalid-feedback { color: var(--gia-danger-ink); }
.gia-theme .azul { color: var(--gia-accent); }
