:root {
    color-scheme: light;
    --color-evergreen-900: #243925;
    --color-moss-700: #6D7B56;
    --color-sage-400: #B1B69F;
    --color-paper-50: #FFFDF5;
    --color-paper-card: #FFFFFA;
    --color-parchment-200: #EBD4BA;
    --color-clay-600: #BF7949;
    --color-charcoal-900: #3F3F3A;
    --color-success: #3F6B45;
    --color-info: #4F7373;
    --color-warning: #C6923E;
    --color-risk: #A4523D;
    --color-disabled: #D8D4C8;
    --color-border: #E6E1D5;

    --hpm-forest: #243925;
    --hpm-olive: #6D7B56;
    --hpm-sage: #B1B69F;
    --hpm-cream: #FFFDF5;
    --hpm-sand: #EBD4BA;
    --hpm-terra: #BF7949;
    --hpm-charcoal: #3F3F3A;
    --hpm-black: #000000;
    --hpm-forest-hover: #1B2C1C;
    --hpm-olive-hover: #5F6C4A;
    --hpm-sage-soft: #EEF0E7;
    --hpm-sand-soft: #F7EBDD;
    --hpm-terra-soft: #F1D8C9;
    --hpm-danger: var(--color-risk);
    --hpm-danger-hover: #823B2B;
    --hpm-danger-soft: #F4DED8;

    --homepm-forest: var(--hpm-forest);
    --homepm-evergreen: var(--hpm-forest-hover);
    --homepm-sage: var(--hpm-sage);
    --homepm-stone: #9A9691;
    --homepm-parchment: var(--hpm-sand);
    --homepm-parchment-light: #FAF3E8;
    --homepm-gold: #C99E67;
    --homepm-copper: var(--hpm-terra);
    --homepm-charcoal: var(--hpm-charcoal);
    --homepm-ink: var(--homepm-charcoal);
    --homepm-muted: #666A61;
    --homepm-white: var(--hpm-cream);
    --homepm-border: var(--color-border);
    --homepm-shadow: 0 1px 2px rgba(36, 57, 37, .08);
    --homepm-shadow-popover: 0 12px 32px rgba(36, 57, 37, .16);
    --homepm-accent: var(--color-clay-600);
    --homepm-link: #52613F;
    --homepm-link-active: var(--homepm-copper);
    --homepm-link-visited: #2C3F2B;
    --homepm-heading-font: "Playfair Display", Georgia, serif;
    --homepm-body-font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --shadow-card: var(--homepm-shadow);
    --shadow-popover: var(--homepm-shadow-popover);
    --sky-blue-anchor: rgb(219, 233, 235);

    --homepm-sky-background: linear-gradient(
        180deg,
        rgb(241, 243, 236) 0%,
        rgb(250, 246, 237) 55%,
        rgb(255, 253, 245) 100%
    );
    --homepm-sky-text-color: var(--homepm-forest);
    --homepm-sky-muted-text-color: #56604F;
    --homepm-sky-modal-bg: rgba(255, 253, 245, .96);

    --bs-body-font-family: var(--homepm-body-font);
    --bs-body-color: var(--homepm-charcoal);
    --bs-body-bg: var(--color-paper-50);
    --bs-primary: var(--homepm-forest);
    --bs-primary-rgb: 36, 57, 37;
    --bs-secondary: var(--hpm-olive);
    --bs-secondary-rgb: 109, 123, 86;
    --bs-success: var(--color-success);
    --bs-success-rgb: 63, 107, 69;
    --bs-info: var(--color-info);
    --bs-info-rgb: 79, 115, 115;
    --bs-warning: var(--color-warning);
    --bs-warning-rgb: 198, 146, 62;
    --bs-danger: var(--hpm-danger);
    --bs-danger-rgb: 164, 82, 61;
    --bs-link-color: var(--homepm-link);
    --bs-link-hover-color: var(--homepm-link-active);
    --bs-border-color: var(--homepm-border);
    --bs-border-radius: var(--radius-md);
    --bs-border-radius-sm: var(--radius-sm);
    --bs-border-radius-lg: var(--radius-lg);
    --bs-focus-ring-color: rgba(201, 158, 103, .34);
}

body {
    background: var(--color-paper-50);
}

:focus-visible {
    outline: 3px solid rgba(191, 121, 73, .42);
    outline-offset: 2px;
}

h1,
h2,
h3,
h4,
h5,
h6,
.brand-wordmark {
    font-family: var(--homepm-heading-font);
    color: var(--homepm-forest);
}

.page-title,
.panel-title,
.empty-title,
.board-column-title,
.list-date-heading,
.form-label,
.nav-link,
.btn {
    font-family: var(--homepm-body-font);
}

.btn {
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border-radius: var(--radius-sm);
}

.btn-sm {
    min-height: 2.25rem;
    padding-inline: .75rem;
}

.btn-primary {
    --bs-btn-color: var(--homepm-white);
    --bs-btn-bg: var(--color-clay-600);
    --bs-btn-border-color: var(--color-clay-600);
    --bs-btn-hover-color: var(--homepm-white);
    --bs-btn-hover-bg: #A85F34;
    --bs-btn-hover-border-color: #A85F34;
    --bs-btn-active-color: var(--homepm-white);
    --bs-btn-active-bg: #934F2A;
    --bs-btn-active-border-color: #934F2A;
    --bs-btn-focus-shadow-rgb: 191, 121, 73;
}

.btn-outline-primary {
    --bs-btn-color: var(--homepm-forest);
    --bs-btn-border-color: rgba(36, 57, 37, .34);
    --bs-btn-bg: rgba(255, 253, 248, .86);
    --bs-btn-hover-color: var(--homepm-white);
    --bs-btn-hover-bg: var(--homepm-forest);
    --bs-btn-hover-border-color: var(--homepm-forest);
    --bs-btn-active-color: var(--homepm-white);
    --bs-btn-active-bg: var(--homepm-evergreen);
    --bs-btn-active-border-color: var(--homepm-evergreen);
}

.btn-outline-secondary {
    --bs-btn-color: var(--homepm-forest);
    --bs-btn-border-color: rgba(36, 57, 37, .28);
    --bs-btn-bg: var(--hpm-sand-soft);
    --bs-btn-hover-bg: var(--homepm-forest);
    --bs-btn-hover-border-color: var(--homepm-forest);
    --bs-btn-hover-color: var(--homepm-white);
}

.btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--hpm-danger);
    --bs-btn-border-color: var(--hpm-danger);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--hpm-danger-hover);
    --bs-btn-hover-border-color: var(--hpm-danger-hover);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--hpm-danger-hover);
    --bs-btn-active-border-color: var(--hpm-danger-hover);
    --bs-btn-focus-shadow-rgb: 139, 53, 45;
}

.btn-outline-danger {
    --bs-btn-color: var(--hpm-danger);
    --bs-btn-border-color: rgba(139, 53, 45, .48);
    --bs-btn-bg: rgba(255, 253, 248, .9);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--hpm-danger);
    --bs-btn-hover-border-color: var(--hpm-danger);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--hpm-danger-hover);
    --bs-btn-active-border-color: var(--hpm-danger-hover);
    --bs-btn-focus-shadow-rgb: 139, 53, 45;
}

.btn-close:focus {
    box-shadow: 0 0 0 .2rem rgba(191, 121, 73, .25);
}

.form-control,
.form-select {
    border-color: var(--color-border);
    background-color: var(--color-paper-card);
    border-radius: var(--radius-sm);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--homepm-gold);
    box-shadow: 0 0 0 .25rem rgba(201, 158, 103, .22);
}

.form-label {
    color: var(--homepm-forest);
    font-weight: 700;
}

.alert {
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
}

.alert-success {
    color: #1F4327;
    background: rgba(63, 107, 69, .12);
    border-color: rgba(63, 107, 69, .28);
}

.alert-warning {
    color: #604214;
    background: rgba(198, 146, 62, .14);
    border-color: rgba(198, 146, 62, .3);
}

.alert-info {
    color: #264B4B;
    background: rgba(79, 115, 115, .12);
    border-color: rgba(79, 115, 115, .26);
}

.alert-danger {
    color: #5B271D;
    background: rgba(164, 82, 61, .13);
    border-color: rgba(164, 82, 61, .32);
}

.badge.text-bg-success {
    background-color: rgba(63, 107, 69, .15) !important;
    color: var(--homepm-forest) !important;
    border: 1px solid rgba(63, 107, 69, .24);
}

.badge.text-bg-warning {
    background-color: rgba(198, 146, 62, .16) !important;
    color: #604214 !important;
    border: 1px solid rgba(198, 146, 62, .28);
}

.badge.text-bg-danger {
    background-color: rgba(164, 82, 61, .14) !important;
    color: #5B271D !important;
    border: 1px solid rgba(164, 82, 61, .28);
}

.badge.text-bg-info {
    background-color: rgba(79, 115, 115, .14) !important;
    color: #264B4B !important;
    border: 1px solid rgba(79, 115, 115, .26);
}

.text-secondary {
    color: var(--homepm-muted) !important;
}

.text-danger {
    color: var(--hpm-danger) !important;
}

@media (max-width: 760px) {
    .btn:not(.btn-sm) {
        min-height: 2.875rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* Sidebar contrast guard: these global rules intentionally override Bootstrap/link defaults. */
.app-sidebar,
.app-sidebar .brand,
.app-sidebar .brand:link,
.app-sidebar .brand:visited,
.app-sidebar .brand-wordmark,
.app-sidebar .nav-link,
.app-sidebar .nav-link:link,
.app-sidebar .nav-link:visited,
.app-sidebar .sub-nav-link,
.app-sidebar .sub-nav-link:link,
.app-sidebar .sub-nav-link:visited,
.app-sidebar .advanced-tool-link,
.app-sidebar .advanced-tool-link:link,
.app-sidebar .advanced-tool-link:visited,
.app-sidebar .advanced-tools-menu summary,
.app-sidebar .user-widget-main strong,
.app-sidebar .user-widget-main a,
.app-sidebar .user-widget-main a:link,
.app-sidebar .user-widget-main a:visited,
.app-sidebar .utility-icon-link,
.app-sidebar .utility-icon-link:link,
.app-sidebar .utility-icon-link:visited {
    color: #FFFDF5 !important;
    opacity: 1 !important;
}

.app-sidebar .brand small,
.app-sidebar .user-widget-main a,
.app-sidebar .user-widget-main a:link,
.app-sidebar .user-widget-main a:visited {
    color: #F6E8D2 !important;
}

.app-sidebar .nav-link {
    font-weight: 850 !important;
}

.app-sidebar .nav-link.active,
.app-sidebar .nav-link:hover,
.app-sidebar .nav-link:focus,
.app-sidebar .sub-nav-link.active,
.app-sidebar .sub-nav-link:hover,
.app-sidebar .sub-nav-link:focus,
.app-sidebar .advanced-tool-link:hover,
.app-sidebar .advanced-tool-link:focus,
.app-sidebar .advanced-tool-link.active {
    color: #FFFFFF !important;
}

.app-sidebar .btn-outline-secondary {
    color: var(--homepm-forest) !important;
    background: #FFF4E5 !important;
    border-color: rgba(255, 253, 245, .82) !important;
}

.app-sidebar .utility-icon-link img {
    filter: brightness(0) saturate(100%) invert(99%) sepia(15%) saturate(518%) hue-rotate(327deg) brightness(102%) contrast(101%) !important;
    opacity: 1 !important;
}
