/* hsb_contrast_global_r4.css
   Goal: ensure text readability by enforcing strong foreground/background contrast.
   Applies to PUBLIC pages. Admin pages can keep their own theme.
*/
:root{
  --hsb-text:#111;
  --hsb-text-2:#1f2937;
  --hsb-bg:#fff;
  --hsb-surface:#ffffff;
  --hsb-border:rgba(15,23,42,.12);
  --hsb-link:#0b5fff;
  --hsb-link-visited:#5b21b6;
}

body{ background: var(--hsb-bg) !important; color: var(--hsb-text) !important; }
main, section, article, header, footer{ color: var(--hsb-text) !important; }

h1,h2,h3,h4,h5,h6,p,li,dt,dd,span,small,strong,em,label{
  color: var(--hsb-text) !important;
}

.card, .panel, .box, .item, .tile, .list-item,
[class*="card"], [class*="panel"], [class*="box"], [class*="item"]{
  background: var(--hsb-surface) !important;
  color: var(--hsb-text) !important;
  border-color: var(--hsb-border) !important;
}

a{ color: var(--hsb-link) !important; text-decoration: underline !important; text-underline-offset: 2px; }
a:visited{ color: var(--hsb-link-visited) !important; }

input, textarea, select{
  background: #fff !important;
  color: var(--hsb-text) !important;
  border: 1px solid var(--hsb-border) !important;
}
input::placeholder, textarea::placeholder{ color: #6b7280 !important; }

.site-header{ background: rgba(255,255,255,.94) !important; border-bottom: 1px solid var(--hsb-border) !important; }
.site-header a{ color: var(--hsb-text) !important; text-decoration: none !important; }
.site-header a:hover{ text-decoration: underline !important; }
.site-header .tools a{ color: var(--hsb-text) !important; }
