:root{
  --brand-brown:#126b61;
  --brand-brown-rgb:18,107,97;
  --brand-bg:#f6f8f8;
  --brand-fg:#172524;
  --brand-border:rgba(18,107,97,.18);
  --brand-muted:#647472;
  --brand-shadow:0 .25rem 1rem rgba(18,107,97,.09);
}

html[data-theme="dark"]{
  --brand-brown:#55c8b8;
  --brand-brown-rgb:85,200,184;
  --brand-bg:#0d1717;
  --brand-fg:#edf7f5;
  --brand-border:rgba(85,200,184,.22);
  --brand-muted:#9bb0ad;
  --brand-shadow:0 .25rem 1rem rgba(0,0,0,.35);
}

/* Global primitives */
html,body{background:var(--brand-bg) !important;color:var(--brand-fg) !important;}

/* Unified button feel: consistent radius + soft depth (no press/translate) */
:where(.btn){
  border-radius:0.65rem;
  border-width:1px;
  box-shadow:0 .22rem .65rem rgba(var(--brand-brown-rgb), .14);
  transition:box-shadow .14s ease, background-color .14s ease, color .14s ease, border-color .14s ease, filter .14s ease;
}

:where(.btn):not(:disabled):not(.disabled):not(.btn-link):hover{
  box-shadow:0 .45rem 1.15rem rgba(var(--brand-brown-rgb), .22);
  filter:saturate(1.02);
}

:where(.btn):focus-visible{
  outline:0;
  box-shadow:0 0 0 .22rem rgba(var(--brand-brown-rgb), .28), 0 .45rem 1.15rem rgba(var(--brand-brown-rgb), .16);
}

/* Base text color in dark mode */
html[data-theme="dark"] body,
html.dark body,
body.dark-mode{color:var(--brand-fg) !important;}

/* Dashboard layout */
.dash-sidebar{width:280px;}
.dash-link i{width:20px;text-align:center;}
@media (max-width: 992px){.dash-sidebar{width:100%;}}
.dash-shell{min-height:100vh;}
.dash-main{min-height:calc(100vh - 56px);}
.dash-sidebar-inner{height:calc(100vh - 56px);position:sticky;top:56px;overflow-y:auto;scrollbar-width:thin;}
.nav-scroll{scrollbar-width:thin;}
.nav-scroll::-webkit-scrollbar{width:6px;}
.dash-sidebar-inner::-webkit-scrollbar{width:6px;}
.nav-scroll::-webkit-scrollbar-thumb,.dash-sidebar-inner::-webkit-scrollbar-thumb{background:rgba(var(--brand-brown-rgb),.22);border-radius:6px;}
.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar{width:80px;}
.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .dash-label{display:none;}

/* Admin/legacy sidebars: labels are plain spans inside .nav-link */
.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .nav-link span{display:none;}
.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .sidebar-header h4{display:none;}

.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .dash-link{text-align:center;}
.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .dash-link i{margin-inline-end:0 !important;}

.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .nav-link{
  display:flex;
  align-items:center;
  justify-content:center;
}
.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .nav-link i{
  margin:0 !important;
}

.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .p-2{padding:0.25rem !important;}
.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .list-group-item{padding-inline:0.75rem;}

/* Sidebar footer actions (e.g. settings/pdf/logout) should look like the rest of the sidebar links */
.dash-sidebar .border-top .btn{
  width:100%;
  background:transparent !important;
  border:0 !important;
  color:inherit !important;
  text-align:start;
  padding:0.5rem 1rem;
  border-radius:0.5rem;
}
.dash-sidebar .border-top .btn:hover,
.dash-sidebar .border-top .btn:focus{
  background:rgba(var(--brand-brown-rgb),.08) !important;
}

.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .border-top .btn{
  justify-content:center;
  text-align:center;
}
.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .border-top .btn i{margin:0 !important;}
.dash-shell[data-sidebar-collapsed="1"] .dash-sidebar .border-top .btn:not(.btn-link){
  white-space:nowrap;
}

/* Dark mode */
html[data-theme="dark"],
html.dark,
body.dark-mode{
  color-scheme: dark;
}

/* IMPORTANT: avoid forcing text color on all elements in dark mode.
   It breaks Bootstrap button hover states (e.g. outline buttons become light bg + light text). */
/* In dark mode, outline-light buttons often hover to a light background; keep text/icons readable */
html[data-theme="dark"] .btn-outline-light,
html.dark .btn-outline-light,
body.dark-mode .btn-outline-light{
  --bs-btn-color: var(--brand-fg);
  --bs-btn-border-color: var(--brand-fg);
  --bs-btn-hover-bg: var(--brand-fg);
  --bs-btn-hover-border-color: var(--brand-fg);
  --bs-btn-hover-color: var(--brand-bg);
  --bs-btn-active-bg: var(--brand-fg);
  --bs-btn-active-border-color: var(--brand-fg);
  --bs-btn-active-color: var(--brand-bg);
}

html[data-theme="dark"] .btn-outline-light:hover,
html[data-theme="dark"] .btn-outline-light:hover *,
html.dark .btn-outline-light:hover,
html.dark .btn-outline-light:hover *,
body.dark-mode .btn-outline-light:hover,
body.dark-mode .btn-outline-light:hover *{color: var(--brand-bg) !important;}

html[data-theme="dark"] .btn-primary:hover,html[data-theme="dark"] .btn-primary:hover *,
html[data-theme="dark"] .btn-success:hover,html[data-theme="dark"] .btn-success:hover *,
html[data-theme="dark"] .btn-info:hover,html[data-theme="dark"] .btn-info:hover *,
html[data-theme="dark"] .btn-danger:hover,html[data-theme="dark"] .btn-danger:hover *,
html.dark .btn-primary:hover,html.dark .btn-primary:hover *,
html.dark .btn-success:hover,html.dark .btn-success:hover *,
html.dark .btn-info:hover,html.dark .btn-info:hover *,
html.dark .btn-danger:hover,html.dark .btn-danger:hover *,
body.dark-mode .btn-primary:hover,body.dark-mode .btn-primary:hover *,
body.dark-mode .btn-success:hover,body.dark-mode .btn-success:hover *,
body.dark-mode .btn-info:hover,body.dark-mode .btn-info:hover *,
body.dark-mode .btn-danger:hover,body.dark-mode .btn-danger:hover *{color:var(--brand-bg) !important;}

img.brand-logo{filter:none;}
html[data-theme="dark"] img.brand-logo{filter:invert(1) grayscale(1) brightness(1.1);}

.bg-light,.bg-white,.bg-gray-50{background-color:var(--brand-bg) !important;}

html[data-theme="dark"] .bg-dark{background-color:var(--brand-bg) !important;}

a:not(.btn),a:not(.btn):hover,a:not(.btn):focus,a:not(.btn):active,a:not(.btn):visited{color:var(--brand-brown) !important;}

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

.border,.border-top,.border-bottom,.border-start,.border-end{border-color:var(--brand-border) !important;}

.card{box-shadow:var(--brand-shadow) !important;}

/* Bootstrap palette -> two colors */
:root{
  --bs-body-bg:var(--brand-bg);
  --bs-body-color:var(--brand-fg);
  --bs-emphasis-color:var(--brand-fg);
  --bs-border-color:var(--brand-border);
  --bs-primary:var(--brand-brown);
  --bs-success:var(--brand-brown);
  --bs-info:var(--brand-brown);
  --bs-warning:var(--brand-brown);
  --bs-danger:var(--brand-brown);
  --bs-secondary:var(--brand-brown);
  --bs-link-color:var(--brand-brown);
  --bs-link-hover-color:var(--brand-brown);
  --bs-dark:var(--brand-brown);
  --bs-dark-rgb:var(--brand-brown-rgb);
  --bs-backdrop-bg:var(--brand-brown);
  --bs-backdrop-opacity:.2;
  --bs-box-shadow-sm:var(--brand-shadow);
}

.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{
  --bs-btn-bg:var(--brand-brown);
  --bs-btn-border-color:var(--brand-brown);
  --bs-btn-color:var(--brand-bg);
  --bs-btn-hover-bg:var(--brand-brown);
  --bs-btn-hover-border-color:var(--brand-brown);
  --bs-btn-hover-color:var(--brand-bg);
  --bs-btn-active-bg:var(--brand-brown);
  --bs-btn-active-border-color:var(--brand-brown);
  --bs-btn-active-color:var(--brand-bg);
}

.btn-outline-primary,.btn-outline-success,.btn-outline-info,.btn-outline-warning,.btn-outline-danger,.btn-outline-secondary{
  --bs-btn-color:var(--brand-brown);
  --bs-btn-border-color:var(--brand-brown);
  --bs-btn-hover-bg:var(--brand-brown);
  --bs-btn-hover-border-color:var(--brand-brown);
  --bs-btn-hover-color:var(--brand-bg);
  --bs-btn-active-bg:var(--brand-brown);
  --bs-btn-active-border-color:var(--brand-brown);
  --bs-btn-active-color:var(--brand-bg);
}

.badge.bg-success,.badge.bg-info,.badge.bg-warning,.badge.bg-danger,.badge.bg-primary,.badge.bg-secondary{background-color:var(--brand-brown) !important;}

.list-group-item.active,.nav-pills .nav-link.active{background-color:var(--brand-brown) !important;border-color:var(--brand-brown) !important;}

.text-primary,.text-success,.text-info,.text-warning,.text-danger,.text-secondary,.text-dark,.text-body{color:var(--brand-brown) !important;}
.link-primary,.link-success,.link-info,.link-warning,.link-danger,.link-secondary{color:var(--brand-brown) !important;}

/* Navbar */
.navbar.bg-dark{background-color:var(--brand-brown) !important;}

/* Public site navigation links */
.main-nav-link{color:var(--brand-fg);transition:color .2s ease;}
.main-nav-link:hover,.main-nav-link:focus{color:var(--brand-brown);}
nav#publicNav:not(.is-scrolled) .main-nav-link{color:rgba(255,255,255,.9);text-shadow:0 1px 2px rgba(0,0,0,.7);}
nav#publicNav:not(.is-scrolled) .main-nav-link:hover,nav#publicNav:not(.is-scrolled) .main-nav-link:focus{color:#fff;}
nav#publicNav .mobile-menu .main-nav-link,nav#publicNav .mobile-menu .main-nav-link:hover,nav#publicNav .mobile-menu .main-nav-link:focus{color:var(--brand-fg) !important;}

/* Light mode: dark navbar has white text */
.navbar.bg-dark,
.navbar.bg-dark .navbar-brand,
.navbar.bg-dark .nav-link,
.navbar.bg-dark .btn,
.navbar.bg-dark .btn *{
  color:#ffffff !important;
}

.navbar.bg-dark .btn-outline-light{
  --bs-btn-color:#ffffff;
  --bs-btn-border-color:#ffffff;
  --bs-btn-hover-bg:#ffffff;
  --bs-btn-hover-border-color:#ffffff;
  --bs-btn-hover-color:var(--brand-brown);
  --bs-btn-active-bg:#ffffff;
  --bs-btn-active-border-color:#ffffff;
  --bs-btn-active-color:var(--brand-brown);
}

/* Dark mode: navbar becomes dark surface, use theme variables (avoid global overrides that break hover states) */
html[data-theme="dark"] .navbar.bg-dark,
html[data-theme="dark"] .navbar.navbar-dark,
html[data-theme="dark"] .navbar.navbar-light{
  background-color: var(--brand-bg) !important;
  border-bottom: 1px solid var(--brand-border) !important;
}

html[data-theme="dark"] .navbar.bg-dark,
html[data-theme="dark"] .navbar.bg-dark .navbar-brand,
html[data-theme="dark"] .navbar.bg-dark .nav-link{
  color: var(--brand-fg) !important;
}

html[data-theme="dark"] .navbar.bg-dark .btn-outline-light{
  --bs-btn-color: var(--brand-fg);
  --bs-btn-border-color: var(--brand-fg);
  --bs-btn-hover-bg: var(--brand-fg);
  --bs-btn-hover-border-color: var(--brand-fg);
  --bs-btn-hover-color: var(--brand-bg);
  --bs-btn-active-bg: var(--brand-fg);
  --bs-btn-active-border-color: var(--brand-fg);
  --bs-btn-active-color: var(--brand-bg);
}

/* Navbar dropdowns */
.navbar.bg-dark .dropdown-menu,
.navbar.bg-dark .dropdown-menu *{
  color: var(--brand-brown) !important;
}

html[data-theme="dark"] .navbar.bg-dark .dropdown-menu,
html[data-theme="dark"] .navbar.bg-dark .dropdown-menu *{
  color: var(--brand-fg) !important;
}

html[data-theme="dark"] .navbar.bg-dark .dropdown-item.active,
html[data-theme="dark"] .navbar.bg-dark .dropdown-item:active{
  background-color: var(--brand-brown) !important;
  color: var(--brand-bg) !important;
}

/* Bootstrap surfaces in dark mode */
html[data-theme="dark"] .card,
html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .offcanvas,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .list-group-item,
html[data-theme="dark"] .table,
html[data-theme="dark"] .table thead,
html[data-theme="dark"] .table tbody,
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] .form-check-input,
html[data-theme="dark"] .input-group-text {
  background-color: var(--brand-bg) !important;
  color: var(--brand-fg) !important;
  border-color: var(--brand-border) !important;
}

html[data-theme="dark"] .table > :not(caption) > * > *{
  background-color: var(--brand-bg) !important;
  color: var(--brand-fg) !important;
  border-color: var(--brand-border) !important;
}

html[data-theme="dark"] .dropdown-divider{
  border-top-color: var(--brand-border) !important;
}

html[data-theme="dark"] .nav-tabs .nav-link,
html[data-theme="dark"] .nav-pills .nav-link,
html[data-theme="dark"] .page-link {
  background-color: var(--brand-bg) !important;
  color: var(--brand-fg) !important;
  border-color: var(--brand-border) !important;
}

html[data-theme="dark"] .page-item.active .page-link{
  background-color: var(--brand-brown) !important;
  border-color: var(--brand-brown) !important;
  color: #ffffff !important;
}

html[data-theme="dark"] .btn-close{
  filter: invert(1) grayscale(1);
  opacity: .75;
}

html[data-theme="dark"] .form-control::placeholder,
html[data-theme="dark"] .form-select{
  color: var(--brand-muted) !important;
}

/* Tailwind utility coercion for two colors (best-effort) */
.bg-white{background-color:var(--brand-bg) !important;}
.bg-black{background-color:var(--brand-bg) !important;}

.dark .dark\:bg-black{background-color:var(--brand-bg) !important;}
.dark .dark\:bg-gray-900{background-color:var(--brand-bg) !important;}

.text-gray-900,.text-gray-800,.text-gray-700,.text-gray-600,.text-gray-500,.text-gray-400,.text-gray-300,.text-gray-200{color:var(--brand-fg) !important;}

.bg-gray-50,.bg-gray-100,.bg-gray-200,.bg-gray-800,.bg-gray-900{background-color:var(--brand-bg) !important;}

.border-gray-100,.border-gray-200,.border-gray-300,.border-gray-700,.border-gray-800{border-color:var(--brand-border) !important;}

.shadow,.shadow-sm,.shadow-md,.shadow-lg{box-shadow:var(--brand-shadow) !important;}

.bg-emerald-50,.bg-emerald-100{background-color:rgba(var(--brand-brown-rgb),.06) !important;}
.bg-emerald-400,.bg-emerald-500,.bg-emerald-600{background-color:var(--brand-brown) !important;}
.text-emerald-500,.text-emerald-600,.text-emerald-700,.text-emerald-800{color:var(--brand-brown) !important;}
.border-emerald-100,.border-emerald-200,.border-emerald-300{border-color:var(--brand-border) !important;}
.ring-emerald-400{--tw-ring-color: rgba(var(--brand-brown-rgb),.35) !important;}
.focus\:ring-emerald-400:focus{--tw-ring-color: rgba(var(--brand-brown-rgb),.35) !important;}
.focus\:border-emerald-400:focus{border-color: rgba(var(--brand-brown-rgb),.35) !important;}
.hover\:bg-emerald-300:hover{background-color:rgba(var(--brand-brown-rgb),.9) !important;}
.hover\:bg-emerald-600:hover{background-color:rgba(var(--brand-brown-rgb),.9) !important;}

/* Tailwind primary color coercion (public site uses primary-* utilities) */
.bg-primary-50,.bg-primary-100{background-color:rgba(var(--brand-brown-rgb),.07) !important;}
.bg-primary-200,.bg-primary-300{background-color:rgba(var(--brand-brown-rgb),.25) !important;}
.bg-primary-400,.bg-primary-500,.bg-primary-600,.bg-primary-700,.bg-primary-800,.bg-primary-900{background-color:var(--brand-brown) !important;}
.text-primary-500,.text-primary-600,.text-primary-700,.text-primary-800,.text-primary-900{color:var(--brand-brown) !important;}
.border-primary-400,.border-primary-500,.border-primary-600,.border-primary-700,.border-primary-800{border-color:var(--brand-brown) !important;}
.from-primary-500,.from-primary-600,.from-primary-700{--tw-gradient-from:var(--brand-brown) var(--tw-gradient-from-position) !important;}
.to-primary-600,.to-primary-700,.to-primary-800{--tw-gradient-to:var(--brand-brown) var(--tw-gradient-to-position) !important;}
.via-primary-500,.via-primary-600{--tw-gradient-stops:var(--tw-gradient-from), var(--brand-brown) var(--tw-gradient-via-position), var(--tw-gradient-to) !important;}
.hover\:bg-primary-500:hover,.hover\:bg-primary-600:hover,.hover\:bg-primary-700:hover,.hover\:bg-primary-800:hover{background-color:var(--brand-brown) !important;}
.hover\:text-primary-600:hover,.hover\:text-primary-700:hover,.hover\:text-primary-800:hover{color:var(--brand-brown) !important;}
.hover\:border-primary-600:hover,.hover\:border-primary-700:hover,.hover\:border-primary-800:hover{border-color:var(--brand-brown) !important;}
.ring-primary-500,.ring-primary-600{--tw-ring-color:rgba(var(--brand-brown-rgb),.45) !important;}
.focus\:ring-primary-500:focus,.focus\:ring-primary-600:focus{--tw-ring-color:rgba(var(--brand-brown-rgb),.45) !important;}
.focus\:border-primary-500:focus,.focus\:border-primary-600:focus{border-color:var(--brand-brown) !important;}
.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none;}
.no-scrollbar::-webkit-scrollbar{display:none;}

/* Crisp white outline around partner logos in dark mode */
.dark .logo-shadow{
  filter:
    drop-shadow(1px 0 0 #fff)
    drop-shadow(-1px 0 0 #fff)
    drop-shadow(0 1px 0 #fff)
    drop-shadow(0 -1px 0 #fff)
    drop-shadow(1px 1px 0 #fff)
    drop-shadow(-1px 1px 0 #fff)
    drop-shadow(1px -1px 0 #fff)
    drop-shadow(-1px -1px 0 #fff);
}
