:root {
    --gm-primary: #0468B1;
    --gm-primary-deep: #00689D;
    --gm-primary-light: #0A97D9;
    --gm-brand-red: #DC143C;
    --gm-neutral-dark: #59616F;
    --gm-white: #FFFFFF;

    --gm-primary-75: #4192C5;
    --gm-primary-50: #82B4D8;
    --gm-primary-25: #C0DAEC;
    --gm-primary-10: #E6F0F8;
    --gm-primary-deep-75: #4096B6;
    --gm-primary-deep-50: #80B4CE;
    --gm-primary-deep-25: #BFD9E7;
    --gm-primary-deep-10: #E6F0F5;
    --gm-primary-light-75: #48B1E3;
    --gm-primary-light-50: #85CBEC;
    --gm-primary-light-25: #C2E5F6;
    --gm-primary-light-10: #E7F5FB;
    --gm-brand-red-75: #E54F6D;
    --gm-brand-red-50: #EE8A9E;
    --gm-brand-red-25: #F6C4CE;
    --gm-brand-red-10: #FCE8EC;
    --gm-neutral-75: #838895;
    --gm-neutral-50: #ACB0B7;
    --gm-neutral-25: #D6D8DB;
    --gm-neutral-10: #EFF0F1;

    --gm-primary-soft: var(--gm-primary-10);
    --gm-primary-line: var(--gm-primary-25);
    --gm-accent: var(--gm-brand-red);
    --gm-accent-soft: var(--gm-brand-red-10);
    --gm-status-completed: #2F7D52;
    --gm-status-completed-deep: #246A45;
    --gm-status-completed-soft: #EAF3EE;
    --gm-status-ongoing: #D69F2F;
    --gm-status-ongoing-deep: #B98017;
    --gm-status-ongoing-soft: #FBF3DF;
    --gm-status-not-started: #DC143C;
    --gm-status-not-started-deep: #B91232;
    --gm-status-not-started-soft: var(--gm-brand-red-10);
    --gm-success: var(--gm-status-completed);
    --gm-warning: var(--gm-status-ongoing);
    --gm-danger: var(--gm-status-not-started);
    --gm-ink: #1E293B;
    --gm-muted: var(--gm-neutral-dark);
    --gm-line: #D8E5EF;
    --gm-soft: #F5F9FC;
    --gm-panel: var(--gm-white);
    --gm-focus-ring: rgba(4, 104, 177, .2);
    --gm-shadow-color: rgba(4, 104, 177, .12);
    --gm-chart-series: #0468B1, #0A97D9, #00689D, #59616F, #DC143C;
}

html,
body,
.main-content,
.page-content {
    background:
        linear-gradient(180deg, rgba(4, 104, 177, .055) 0%, rgba(10, 151, 217, .035) 100%),
        var(--gm-soft) !important;
    color: var(--gm-ink);
}

a,
.link-primary,
.text-primary,
a.text-primary,
a.link-primary {
    color: var(--gm-primary) !important;
}

a:hover,
.link-primary:hover {
    color: var(--gm-primary-deep) !important;
}

.bg-primary,
.text-bg-primary,
.badge.bg-primary {
    background-color: var(--gm-primary) !important;
}

.border-primary,
.table-primary,
.form-check-input:checked {
    border-color: var(--gm-primary) !important;
}

.form-check-input:checked {
    background-color: var(--gm-primary) !important;
}

.btn-primary,
.btn-info,
.page-content .btn-primary,
.page-content .btn-info {
    border-color: var(--gm-primary) !important;
    background: var(--gm-primary) !important;
    color: var(--gm-white) !important;
    box-shadow: 0 8px 18px rgba(4, 104, 177, .16) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-info:hover,
.btn-info:focus,
.page-content .btn-primary:hover,
.page-content .btn-primary:focus,
.page-content .btn-info:hover,
.page-content .btn-info:focus {
    border-color: var(--gm-primary-deep) !important;
    background: var(--gm-primary-deep) !important;
    color: var(--gm-white) !important;
}

.btn-primary:disabled,
.btn-info:disabled,
.btn-primary.disabled,
.btn-info.disabled {
    border-color: var(--gm-primary-50) !important;
    background: var(--gm-primary-50) !important;
    color: var(--gm-white) !important;
    opacity: .72;
}

.btn-outline-primary,
#page-topbar .btn-outline-primary,
.page-content .btn-light,
.page-content .btn-outline-secondary {
    border-color: var(--gm-primary-25) !important;
    background: var(--gm-white) !important;
    color: var(--gm-primary) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
#page-topbar .btn-outline-primary:hover,
#page-topbar .btn-outline-primary:focus,
.page-content .btn-light:hover,
.page-content .btn-outline-secondary:hover {
    border-color: var(--gm-primary) !important;
    background: var(--gm-primary-10) !important;
    color: var(--gm-primary-deep) !important;
}

.btn-secondary {
    border-color: var(--gm-primary-light) !important;
    background: var(--gm-primary-light) !important;
    color: var(--gm-white) !important;
}

.btn-secondary:hover,
.btn-secondary:focus {
    border-color: var(--gm-primary) !important;
    background: var(--gm-primary) !important;
}

.btn-danger,
.page-content .btn-danger {
    border-color: var(--gm-brand-red) !important;
    background: var(--gm-brand-red) !important;
    color: var(--gm-white) !important;
}

.btn-danger:hover,
.btn-danger:focus,
.page-content .btn-danger:hover,
.page-content .btn-danger:focus {
    border-color: #B91232 !important;
    background: #B91232 !important;
}

#page-topbar {
    box-shadow: 0 12px 28px rgba(4, 104, 177, .1) !important;
}

#page-topbar .fw-bold.text-success,
#page-topbar .fw-bold.text-primary,
#page-topbar .gm-fiscal-year-label,
#page-topbar .gm-fiscal-year-toggle::after,
#page-topbar .gm-fiscal-year-option:hover,
#page-topbar .gm-fiscal-year-option:focus,
#page-topbar .gm-fiscal-year-option.active {
    color: var(--gm-primary) !important;
}

#page-topbar .gm-fiscal-year-picker,
#page-topbar .gm-fiscal-year-dropdown,
#page-topbar .gm-fiscal-year-menu,
#page-topbar .gm-office-header__actions .gm-fiscal-year-picker,
#page-topbar .gm-office-header__actions .topbar-user > .btn,
#page-topbar .gm-office-header__actions > .btn {
    border-color: rgba(4, 104, 177, .18) !important;
    box-shadow: 0 7px 18px rgba(4, 104, 177, .1) !important;
}

#page-topbar .gm-fiscal-year-option:hover,
#page-topbar .gm-fiscal-year-option:focus {
    background: var(--gm-primary-10) !important;
}

#page-topbar .gm-fiscal-year-option.active {
    background: var(--gm-primary-25) !important;
}

.navbar-menu {
    background: var(--gm-primary-deep) !important;
    box-shadow: 8px 0 24px rgba(0, 104, 157, .18) !important;
}

.navbar-menu .navbar-nav .nav-link:hover,
.navbar-menu .navbar-nav .nav-link.active {
    background: rgba(255, 255, 255, .14) !important;
    box-shadow: inset 3px 0 0 var(--gm-primary-light) !important;
}

.navbar-menu .menu-dropdown .nav-link:hover,
.navbar-menu .menu-dropdown .nav-link.active {
    background: rgba(255, 255, 255, .11) !important;
}

.navbar-menu .badge.bg-danger {
    background: var(--gm-brand-red) !important;
}

#back-to-top.gm-back-to-top {
    background: var(--gm-primary) !important;
    box-shadow: 0 10px 22px rgba(4, 104, 177, .22) !important;
}

#back-to-top.gm-back-to-top:hover,
#back-to-top.gm-back-to-top:focus {
    background: var(--gm-primary-deep) !important;
    box-shadow: 0 12px 26px rgba(0, 104, 157, .28) !important;
}

.page-content .page-title-box,
.page-content .card,
.gm-auth-filter-card,
.public-filter-card,
.public-report-card {
    border-color: rgba(4, 104, 177, .12) !important;
    box-shadow: 0 10px 28px var(--gm-shadow-color) !important;
}

.page-content .page-title-box,
.page-content .card,
.gm-auth-filter-card {
    border-top-color: var(--gm-primary) !important;
}

.page-content .card:hover {
    border-color: rgba(10, 151, 217, .28) !important;
    box-shadow: 0 14px 34px rgba(4, 104, 177, .14) !important;
}

.page-content .card-header,
.page-content .modal-header {
    border-bottom-color: var(--gm-line) !important;
    background: linear-gradient(180deg, var(--gm-white) 0%, var(--gm-primary-10) 100%) !important;
}

.page-content .page-title-box > h1,
.page-content .page-title-box > h2,
.page-content .page-title-box > h3,
.page-content .page-title-box > h4,
.page-content .page-title-box > h5,
.page-content .page-title-box > h6,
.page-content .card-title,
.page-content .card-header h1,
.page-content .card-header h2,
.page-content .card-header h3,
.page-content .card-header h4,
.page-content .card-header h5,
.page-content .card-header h6,
.page-content .card h1,
.page-content .card h2,
.page-content .card h3,
.page-content .card h4,
.page-content .card h5,
.page-content .card h6,
.page-content .modal-title,
.gm-auth-filter-field .form-label,
.detail-card h6,
.program-title {
    color: var(--gm-primary) !important;
}

.page-content .breadcrumb,
.page-content .text-muted,
.public-report-pagination-summary,
.detail-list dt,
.metric-label,
.info-label,
.program-meta {
    color: var(--gm-muted) !important;
}

.page-content .breadcrumb-item.active {
    color: var(--gm-primary-deep) !important;
}

.page-content .table > :not(caption) > * > *,
.page-content .table tbody td,
.page-content .table tbody th {
    border-color: var(--gm-line) !important;
}

.page-content .table thead th,
.page-content table.dataTable thead th,
.page-content table.dataTable thead td,
.custom-zebra-table thead th {
    border-color: rgba(255, 255, 255, .22) !important;
    background: var(--gm-primary) !important;
    color: var(--gm-white) !important;
}

.page-content .table tbody tr:nth-child(odd) > * {
    background-color: rgba(4, 104, 177, .035) !important;
}

.page-content .table tbody tr:nth-child(even) > * {
    background-color: rgba(10, 151, 217, .07) !important;
}

.page-content .table tbody tr:hover > * {
    background-color: var(--gm-primary-light-10) !important;
    color: var(--gm-ink) !important;
}

.page-content .form-control,
.page-content .form-select,
.page-content .select2-container--default .select2-selection--single,
.page-content .select2-container--default .select2-selection--multiple,
.page-content .choices__inner {
    border-color: rgba(4, 104, 177, .2) !important;
    color: var(--gm-ink) !important;
}

.page-content .form-control:focus,
.page-content .form-select:focus,
.page-content .select2-container--default.select2-container--focus .select2-selection--multiple,
.page-content .select2-container--default.select2-container--open .select2-selection--single,
.form-check-input:focus {
    border-color: var(--gm-primary) !important;
    box-shadow: 0 0 0 .18rem var(--gm-focus-ring) !important;
}

.page-content .nav-tabs .nav-link:hover {
    color: var(--gm-primary) !important;
    background: var(--gm-primary-10) !important;
}

.page-content .nav-tabs .nav-link.active {
    color: var(--gm-primary) !important;
    background: var(--gm-primary-10) !important;
    box-shadow: inset 0 -2px 0 var(--gm-primary) !important;
}

.page-content .pagination .page-link,
.public-report-pagination .page-link {
    border-color: var(--gm-primary-25) !important;
    color: var(--gm-primary) !important;
}

.page-content .pagination .active .page-link,
.page-content .pagination .page-link:hover,
.public-report-pagination .active .page-link,
.public-report-pagination .page-link:hover {
    border-color: var(--gm-primary) !important;
    background: var(--gm-primary) !important;
    color: var(--gm-white) !important;
}

.gm-loading-status,
.gm-result-status,
.gm-table-loading-message td,
.gm-chart-loading-target.gm-chart-is-loading::after,
.gm-auth-searching-inline,
.public-report-searching-inline,
.dataTables_processing {
    color: var(--gm-primary) !important;
}

.gm-page-progress,
.progress .progress-bar:not(.bg-success):not(.bg-warning):not(.bg-danger),
.progress-xs .progress-bar:not(.bg-success):not(.bg-warning):not(.bg-danger) {
    background: var(--gm-primary) !important;
}

.gm-inline-spinner,
.gm-btn-spinner,
.gm-auth-search-spinner {
    border-color: rgba(4, 104, 177, .22) !important;
    border-top-color: currentColor !important;
}

.gm-table-loading-message td,
.public-report-searching-row td {
    background: var(--gm-primary-10) !important;
}

.gm-table-skeleton-line,
.gm-modal-loader-line,
.gm-chart-loading-target.gm-chart-is-loading::before {
    background: linear-gradient(90deg, var(--gm-neutral-10) 0%, var(--gm-primary-10) 45%, var(--gm-neutral-10) 90%) !important;
    background-size: 220% 100% !important;
}

.gm-office-header {
    border-bottom-color: rgba(4, 104, 177, .72) !important;
    background-color: var(--gm-primary-10) !important;
    box-shadow: 0 12px 30px rgba(4, 104, 177, .15) !important;
    color: var(--gm-ink) !important;
}

.gm-office-header__overlay {
    background:
        linear-gradient(90deg, rgba(245, 249, 252, .78) 0%, rgba(230, 240, 248, .42) 25%, rgba(255, 255, 255, .3) 50%, rgba(230, 240, 248, .48) 76%, rgba(230, 240, 248, .78) 100%),
        linear-gradient(180deg, rgba(4, 104, 177, .12) 0%, rgba(255, 255, 255, .06) 48%, rgba(4, 104, 177, .18) 100%) !important;
}

.gm-office-header__emblem:focus-visible {
    outline-color: rgba(4, 104, 177, .45) !important;
}

.gm-office-header__government,
#page-topbar.gm-office-header .gm-office-header__government,
body .gm-office-header .gm-office-header__government {
    color: var(--gm-neutral-dark) !important;
}

.gm-office-header__office,
#page-topbar.gm-office-header .gm-office-header__office,
body .gm-office-header .gm-office-header__office {
    color: var(--gm-brand-red) !important;
}

.gm-office-header__system,
#page-topbar.gm-office-header .gm-office-header__system,
body .gm-office-header .gm-office-header__system {
    color: var(--gm-primary) !important;
    -webkit-text-stroke: .45px rgba(255, 255, 255, .9) !important;
    paint-order: stroke fill !important;
    text-shadow:
        0 1px 0 rgba(255, 255, 255, .92),
        0 2px 0 rgba(0, 104, 157, .18),
        0 3px 5px rgba(4, 104, 177, .18) !important;
}

.icon-action {
    border-color: rgba(4, 104, 177, .18) !important;
    color: var(--gm-primary) !important;
    box-shadow: 0 6px 16px rgba(4, 104, 177, .08) !important;
}

.icon-action:hover {
    border-color: rgba(220, 20, 60, .28) !important;
    color: var(--gm-brand-red) !important;
}

.badge.bg-danger,
.text-bg-danger {
    background-color: var(--gm-status-not-started) !important;
    color: #ffffff !important;
}

.badge.bg-warning,
.text-bg-warning {
    background-color: var(--gm-status-ongoing) !important;
    color: #3F2B05 !important;
}

.badge.bg-success,
.text-bg-success {
    background-color: var(--gm-status-completed) !important;
    color: #ffffff !important;
}

.progress-bar.bg-success {
    background-color: var(--gm-status-completed) !important;
}

.progress-bar.bg-warning {
    background-color: var(--gm-status-ongoing) !important;
    color: #3F2B05 !important;
}

.progress-bar.bg-danger {
    background-color: var(--gm-status-not-started) !important;
}
