/* E-Service Statistics brand tokens and Modernize theme overrides. */
:root {
    --brand-primary: #6a4b2e;
    --brand-primary-dark: #543a24;
    --brand-secondary: #ab824b;
    --brand-secondary-action: #7d5c3b;
    --brand-accent: #a07132;
    --brand-brown-500: #907954;
    --brand-gold-gray: #a48e68;
    --brand-gold-light: #c7b18e;
    --brand-beige: #d6cbb9;
    --background-main: #ffffff;
    --background-soft: #ebe6df;
    --background-light: #f8f5f1;
    --text-primary: #3f342a;
    --text-secondary: #6a5e52;
    --text-muted: #8f857b;
    --border-default: #e5ddd3;
    --status-success: #3f7a57;
    --status-success-text: #2e6241;
    --status-success-subtle: #e7f0e9;
    --status-warning: #d69a2d;
    --status-danger: #c94b45;
    --status-info: #4c7fa8;
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: 106, 75, 46;
    --bs-link-color: var(--brand-primary);
    --bs-link-hover-color: var(--brand-primary-dark);
    --bs-body-color: var(--text-primary);
    --bs-body-bg: var(--background-light);
    --bs-border-color: var(--border-default);
}

body { color: var(--text-primary); background-color: var(--background-light); }
a { color: var(--brand-primary); }
a:hover { color: var(--brand-primary-dark); }

/* Give fixed-header admin pages a consistent 25px breathing space below the bar. */
#main-wrapper[data-layout=vertical][data-header-position=fixed] .body-wrapper > .container-fluid {
    padding-top: calc(70px + 25px);
}

.btn-primary {
    --bs-btn-color: #fff; --bs-btn-bg: var(--brand-primary); --bs-btn-border-color: var(--brand-primary);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--brand-primary-dark); --bs-btn-hover-border-color: var(--brand-primary-dark);
    --bs-btn-focus-shadow-rgb: 141, 115, 84; --bs-btn-active-color: #fff; --bs-btn-active-bg: #452f1d;
    --bs-btn-active-border-color: #452f1d; --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--brand-primary);
    --bs-btn-disabled-border-color: var(--brand-primary);
}

.btn-secondary {
    --bs-btn-color: #fff; --bs-btn-bg: var(--brand-secondary-action); --bs-btn-border-color: var(--brand-secondary-action);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--brand-primary); --bs-btn-hover-border-color: var(--brand-primary);
    --bs-btn-focus-shadow-rgb: 141, 115, 84; --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--brand-primary-dark);
    --bs-btn-active-border-color: var(--brand-primary-dark);
}

.btn-outline-primary {
    --bs-btn-color: var(--brand-primary); --bs-btn-border-color: var(--brand-primary); --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-primary); --bs-btn-hover-border-color: var(--brand-primary);
    --bs-btn-focus-shadow-rgb: 106, 75, 46; --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--brand-primary-dark);
    --bs-btn-active-border-color: var(--brand-primary-dark);
}

.text-primary { color: var(--brand-primary) !important; }
.bg-primary { background-color: var(--brand-primary) !important; }
.bg-primary-subtle { background-color: #f1e9de !important; }
.text-bg-primary { color: #fff !important; background-color: var(--brand-primary) !important; }
.bg-success-subtle { background-color: var(--status-success-subtle) !important; }
.text-success { color: var(--status-success-text) !important; }
.form-control, .form-select, .input-group-text { border-color: var(--border-default); }
.form-control:focus, .form-select:focus { border-color: var(--brand-gold-light); box-shadow: 0 0 0 .25rem rgba(171, 130, 75, .2); }
.form-check-input:checked,
.form-check-input:indeterminate { background-color: var(--brand-primary); border-color: var(--brand-primary); }
.form-check-input:focus { border-color: var(--brand-gold-light); box-shadow: 0 0 0 .25rem rgba(171, 130, 75, .2); }
.parsley-errors-list { margin: .35rem 0 0; padding: 0; color: var(--status-danger); font-size: .8125rem; list-style: none; }
.form-control.parsley-error, .form-select.parsley-error { border-color: var(--status-danger); }
.form-control.parsley-error:focus, .form-select.parsley-error:focus { box-shadow: 0 0 0 .25rem rgba(201, 75, 69, .16); }
.select2-container { width: 100% !important; max-width: 100% !important; min-width: 0; }
.select2-container--default .select2-selection--single { height: calc(1.5em + .75rem + 2px); border-color: var(--border-default); border-radius: .375rem; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--text-primary); line-height: calc(1.5em + .75rem); padding-left: .75rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: calc(1.5em + .75rem); right: .5rem; }
.select2-container--default.select2-container--focus .select2-selection--single { border-color: var(--brand-gold-light); box-shadow: 0 0 0 .25rem rgba(171, 130, 75, .2); }
.select2-dropdown { border-color: var(--border-default); border-radius: .375rem; max-width: 100%; overflow-x: hidden; }
.select2-results__options { overflow-x: hidden; }
.select2-results__option { white-space: normal; overflow-wrap: anywhere; word-break: break-word; }
.select2-container--default .select2-search--dropdown .select2-search__field { border-color: var(--brand-gold-light); border-radius: .25rem; outline: 0; }
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background-color: var(--brand-primary); color: #fff; }
.select2-container--default .select2-results__option--selected { background-color: var(--background-soft); color: var(--text-primary); }
.card, .modal-content, .dropdown-menu { border-color: var(--border-default); }

/* Statistic Record modals are injected beneath body at runtime. Keep their
 * interactive content above the backdrop and any page-level stacking context. */
body > .js-statistic-record-modal { z-index: 1060; pointer-events: auto; }
body > .js-statistic-record-modal .modal-dialog,
body > .js-statistic-record-modal .modal-content,
body > .js-statistic-record-modal .modal-body,
body > .js-statistic-record-modal form,
body > .js-statistic-record-modal input,
body > .js-statistic-record-modal select,
body > .js-statistic-record-modal textarea { pointer-events: auto; }

.js-statistic-record-form .form-control,
.js-statistic-record-form .form-select,
.js-statistic-record-form textarea,
.js-statistic-record-form .select2-container--default .select2-selection--single {
    background-color: #fff;
}
.card { background-color: var(--background-main); }
.text-muted { color: var(--text-muted) !important; }
.card-subtitle { color: var(--text-secondary); }

.department-report-metric {
    --metric-color: var(--brand-primary);
    --metric-surface: #f1e9de;
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border-default);
    box-shadow: 0 8px 18px rgba(63, 52, 42, .05);
    transition: transform .2s ease, box-shadow .2s ease;
}
.department-report-metric::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 5px;
    height: 100%;
    content: '';
    background: var(--metric-color);
}
.department-report-metric:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(63, 52, 42, .1); }
.department-report-metric--department { --metric-color: var(--brand-primary); --metric-surface: #f1e9de; }
.department-report-metric--service { --metric-color: var(--brand-secondary); --metric-surface: #f7efe3; }
.department-report-metric--record { --metric-color: var(--status-info); --metric-surface: #e9f1f7; }
.department-report-metric--total { --metric-color: var(--status-success); --metric-surface: #e8f4ef; }
.department-report-metric__label { color: var(--text-secondary); font-size: .875rem; font-weight: 600; }
.department-report-metric__value { color: var(--metric-color); font-size: 2rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; }
.department-report-metric__hint { color: var(--text-muted); font-size: .75rem; }
.department-report-metric__icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    color: var(--metric-color);
    background: var(--metric-surface);
    border-radius: 1rem;
}
.department-report-metric__icon i { font-size: 1.65rem; }

.dashboard-overview-metric {
    --dashboard-metric-color: var(--brand-primary);
    --dashboard-metric-surface: #f1e9de;
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border-default);
    box-shadow: 0 8px 18px rgba(63, 52, 42, .05);
}
.dashboard-overview-metric::after { position: absolute; top: 0; left: 0; width: 100%; height: 4px; content: ''; background: var(--dashboard-metric-color); }
.dashboard-overview-metric--department { --dashboard-metric-color: var(--brand-primary); --dashboard-metric-surface: #f1e9de; }
.dashboard-overview-metric--service { --dashboard-metric-color: var(--brand-secondary); --dashboard-metric-surface: #f7efe3; }
.dashboard-overview-metric--record { --dashboard-metric-color: var(--status-info); --dashboard-metric-surface: #e9f1f7; }
.dashboard-overview-metric--total { --dashboard-metric-color: var(--status-success); --dashboard-metric-surface: #e8f4ef; }
.dashboard-overview-metric__icon { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; margin-bottom: 1rem; color: var(--dashboard-metric-color); background: var(--dashboard-metric-surface); border-radius: .875rem; }
.dashboard-overview-metric__icon i { font-size: 1.55rem; }
.dashboard-overview-metric__label { color: var(--text-secondary); font-size: .875rem; font-weight: 600; }
.dashboard-overview-metric__value { color: var(--dashboard-metric-color); font-size: 2rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; }
.dashboard-overview-metric__hint { color: var(--text-muted); font-size: .75rem; }
.dashboard-rank { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; color: var(--brand-primary); background: var(--background-soft); border-radius: 50%; font-size: .75rem; font-weight: 700; }

.portal-application-sort-list { max-height: min(56vh, 620px); overflow-y: auto; }
.portal-application-sort-list > li { cursor: grab; user-select: none; }
.portal-application-sort-list > li.is-dragging { opacity: .45; cursor: grabbing; }
.portal-application-sort-handle { flex: 0 0 auto; color: var(--brand-gold-gray); font-size: 1.2rem; }

.app-header { background: var(--brand-primary); box-shadow: 0 3px 12px rgba(63, 52, 42, .16); }
.app-header .navbar .navbar-nav .nav-item .nav-link, .app-header .navbar .navbar-nav .nav-item .nav-link i { color: #fff; }
.app-header .nav-icon-hover:hover::before { background-color: rgba(199, 177, 142, .35); }
.admin-header-user-name { max-width: 200px; overflow: hidden; color: #fff; font-size: .875rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }

/* Modernize adds a white floating navbar after scrolling; keep the header on-brand. */
#main-wrapper[data-layout=vertical] .app-header.fixed-header .navbar {
    margin-top: 0;
    padding: 0 15px;
    background: var(--brand-primary);
    border-radius: 0;
    box-shadow: none;
}

#main-wrapper[data-layout=vertical] .app-header.fixed-header .navbar .nav-link,
#main-wrapper[data-layout=vertical] .app-header.fixed-header .navbar .nav-link i {
    color: #fff;
}

@media (max-width: 991.98px) {
    .app-header .navbar-collapse {
        background-color: var(--brand-primary);
        border-top-color: rgba(255, 255, 255, .2);
    }
}

.left-sidebar { border-right-color: var(--border-default); }
.left-sidebar .brand-logo { min-height: 80px; border-bottom: 1px solid var(--border-default); }
.sidebar-nav ul .sidebar-item > .sidebar-link:hover { background-color: var(--background-light); color: var(--brand-primary); }
.sidebar-nav ul .sidebar-item.selected > .sidebar-link,
.sidebar-nav ul .sidebar-item.selected > .sidebar-link.active,
.sidebar-nav ul .sidebar-item > .sidebar-link.active { background-color: var(--brand-primary); color: #fff; }
.sidebar-nav ul .sidebar-item .sidebar-link:hover.has-arrow::after,
.sidebar-nav ul .sidebar-item .first-level .sidebar-item .sidebar-link.active.has-arrow::after { border-color: var(--brand-primary); }
.sidebar-nav ul .sidebar-item.selected .sidebar-link.has-arrow::after,
.sidebar-nav ul .sidebar-item.selected > .sidebar-link.active.has-arrow::after { border-color: #fff; }
.nav-small-cap { color: var(--text-secondary); }

.page-link { color: var(--brand-primary); border-color: var(--border-default); }
.page-link:hover { color: var(--brand-primary-dark); background-color: var(--background-soft); border-color: var(--brand-beige); }
.pagination .page-item.active .page-link { color: #fff; background-color: var(--brand-primary); border-color: var(--brand-primary); }
.table > :not(caption) > * > * { border-bottom-color: var(--border-default); }
.table-hover > tbody > tr:hover > * { --bs-table-accent-bg: #f8f5f1; }

.radial-gradient::before { opacity: .55; background: radial-gradient(var(--brand-beige), var(--background-soft), #f7f2eb) 0 0 / 400% 400%; }
.authentication-login.bg-body { background-color: var(--background-main) !important; }
footer { background-color: var(--background-main); border-top: 1px solid var(--border-default); }
::selection { color: #fff; background: var(--brand-primary); }
