/* Unified visual theme based on the Budget Transparency page. Fire Assessment intentionally excluded. */
:root{
  --tf-ink:#0b2f67;
  --tf-navy:#0b2f67;
  --tf-purple:#5b247a;
  --tf-purple-dark:#32174f;
  --tf-magenta:#7b2d8e;
  --tf-gold:#e6a91f;
  --tf-orchid:#eadff1;
  --tf-wash:#f8f6fa;
  --tf-rule:#ded7e5;
  --tf-muted:#526078;
  --tf-body:#26324a;
}
html{scroll-behavior:smooth}
body{background:#fff!important;color:var(--tf-body)!important}
main, .main, .content, .page-content{color:var(--tf-body)}
h1,h2,h3,h4,h5,h6{color:var(--tf-ink)!important}
a{color:var(--tf-purple)}
strong,b{color:inherit}

/* Shared masthead uses the same navy / purple / gold family. */
.ocoee-site-header{--ocoee-navy:var(--tf-navy);--ocoee-navy2:#08234e;--ocoee-purple:var(--tf-purple);--ocoee-gold:var(--tf-gold);--ocoee-muted:var(--tf-muted)}
.ocoee-site-wave .wave-gold{background:var(--tf-gold)!important}
.ocoee-site-wave .wave-purple{background:var(--tf-purple)!important}
.ocoee-site-wave .wave-navy{background:linear-gradient(90deg,var(--tf-navy) 0%,#1b3f7c 45%,var(--tf-purple-dark) 72%,var(--tf-purple) 100%)!important}

/* Common page intros, bands and title areas. */
.page-intro,.intro,.intro-band,.page-header,.subhero,.lead-section,.summary-band,.hero-copy{
  background:var(--tf-wash)!important;
  color:var(--tf-body)!important;
  border-color:var(--tf-rule)!important;
}
.eyebrow,.kicker,.section-kicker,.overline,.label,.small-label{color:var(--tf-purple)!important}
.subtitle,.muted,.note,.caption,.section-intro,.helper,.help,.subtext{color:var(--tf-muted)!important}

/* Cards and content surfaces. */
.card,.panel,.box,.tile,.metric,.stat,.source-box,.top-card,.measure,.note-card,.callout,.faq-item,.info-card,.data-card,.result-card,.scenario-card,.department-card,.slider-panel,.impact-panel,.sticky,.sticky-gap{
  border-color:var(--tf-rule)!important;
}
.card,.panel,.tile,.metric,.stat,.source-box,.top-card,.measure,.note-card,.info-card,.data-card,.result-card,.scenario-card,.department-card,.slider-panel,.impact-panel{
  background:#fff!important;
}
.card h2,.card h3,.panel h2,.panel h3,.box h2,.box h3{color:var(--tf-ink)!important}

/* Strong horizontal feature bands similar to transparency.html. */
.band,.dark,.feature-band,.summary-header,.stats-band,.results-band,.hero-band{
  background:linear-gradient(110deg,var(--tf-navy) 0%,var(--tf-purple-dark) 55%,var(--tf-purple) 100%)!important;
  color:#fff!important;
  border-top-color:var(--tf-gold)!important;
}
.band h1,.band h2,.band h3,.dark h1,.dark h2,.dark h3,.feature-band h1,.feature-band h2,.feature-band h3,.summary-header h1,.summary-header h2,.summary-header h3,.stats-band h1,.stats-band h2,.stats-band h3,.results-band h1,.results-band h2,.results-band h3{color:#fff!important}

/* Navigation tabs, side menus and compact headers. */
.toc>h3,.box>h3,.sidebar-title,.side-title,.nav-title,.panel-title,.table-title{
  background:var(--tf-navy)!important;color:#fff!important
}
.toc a:hover,.toc a.on,.side-nav a:hover,.side-nav a.active{background:var(--tf-wash)!important;color:var(--tf-purple)!important;box-shadow:inset 3px 0 0 var(--tf-magenta)}

/* Buttons and controls. */
button,.button,.btn,input[type=button],input[type=submit]{border-color:var(--tf-purple)!important}
button.primary,.button.primary,.btn.primary,.btn-primary,input[type=submit]{background:var(--tf-purple)!important;color:#fff!important;border-color:var(--tf-purple)!important}
button.primary:hover,.button.primary:hover,.btn.primary:hover,.btn-primary:hover,input[type=submit]:hover{background:var(--tf-purple-dark)!important}
button:not(.primary):not(.btn-primary),.button:not(.primary),.btn:not(.primary):not(.btn-primary){color:var(--tf-purple)}
select:focus,input:focus,textarea:focus,button:focus-visible,a:focus-visible{outline-color:var(--tf-gold)!important}

/* Data highlights. */
.metric:before,.kpi,.stat-card,.accent-left,.callout{border-color:var(--tf-magenta)!important}
.metric .value,.kpi .v,.stat .value,.big-number,.amount,.amt,.pct,.value{color:var(--tf-purple)}
.section-tag,.tag,.badge{background:var(--tf-wash)!important;color:var(--tf-purple)!important;border-color:var(--tf-rule)!important}
.progress>div{background:linear-gradient(90deg,var(--tf-purple-dark),var(--tf-purple),var(--tf-magenta))!important}
input[type=range]::-webkit-slider-thumb{background:var(--tf-purple)!important;box-shadow:0 0 0 2px var(--tf-purple),0 2px 6px rgba(0,0,0,.25)!important}
input[type=range]::-moz-range-progress,input[type=range]::-moz-range-thumb{background:var(--tf-purple)!important}

/* Tables. */
table{border-color:var(--tf-rule)!important}
thead th{background:var(--tf-wash)!important;color:var(--tf-muted)!important;border-bottom-color:var(--tf-ink)!important}
tbody tr:nth-child(even){background:#fcfbfd}
tbody tr:hover{background:var(--tf-wash)}

/* Existing green decorative areas become the transparency palette without changing semantic green success indicators. */
.header-inner, footer:not(.site-footer), .footer-inner{border-color:var(--tf-rule)}
.accentbar,.accent-bar,.rule-accent{background:var(--tf-magenta)!important}

/* Specific older landing-page components. */
.topic-card,.link-card,.resource-card,.explore-card{border-color:var(--tf-rule)!important;background:#fff!important}
.topic-card:hover,.link-card:hover,.resource-card:hover,.explore-card:hover{border-color:var(--tf-purple)!important;box-shadow:0 8px 24px rgba(50,23,79,.10)!important}
.topic-card h2,.link-card h2,.resource-card h2,.explore-card h2{color:var(--tf-ink)!important}
.topic-card .icon,.link-card .icon,.resource-card .icon,.explore-card .icon{background:var(--tf-wash)!important;color:var(--tf-purple)!important}

/* Accessibility page's legacy green bar. */
body>header:not(.ocoee-site-header), body>footer{background:linear-gradient(110deg,var(--tf-navy),var(--tf-purple-dark))!important;color:#fff!important}
body>header:not(.ocoee-site-header) a,body>footer a{color:#fff!important}

/* Preserve readability on dark areas. */
.band p,.dark p,.feature-band p,.summary-header p,.stats-band p,.results-band p{color:#eee7f3!important}
.band strong,.dark strong,.feature-band strong,.summary-header strong,.stats-band strong,.results-band strong{color:#fff!important}

/* ===== V10 page-specific palette corrections ===== */
/* Tax Reliance: restore readable card/table headers and align section colors with Transparency. */
body:has(.page-shell) {
  background:var(--tf-wash)!important;
}
.page-shell .page-intro{background:var(--tf-wash)!important}
.page-shell .page-intro h1{color:var(--tf-navy)!important}
.page-shell .page-intro .eyebrow{color:var(--tf-purple)!important}
.page-shell .top-card h2{color:var(--tf-navy)!important}
.page-shell .top-card.exposure h2{color:var(--tf-purple)!important}
.page-shell .measure:not(.exposure) h2{color:var(--tf-navy)!important}
.page-shell .measure.exposure h2{color:var(--tf-purple)!important}
.page-shell .measure:not(.exposure) .badge{background:var(--tf-navy)!important;color:#fff!important}
.page-shell .measure.exposure .badge{background:var(--tf-purple)!important;color:#fff!important}
.page-shell .bar-title{background:var(--tf-purple)!important;color:#fff!important}
.page-shell .amend-note{background:#f3edf7!important;border-color:#d8c6e3!important;color:var(--tf-purple-dark)!important}
.page-shell thead th{background:var(--tf-navy)!important;color:#fff!important;border-color:#365386!important}
.page-shell thead th.exposure-head,.page-shell .exposure-head{background:var(--tf-purple)!important;color:#fff!important}
.page-shell thead th.exposure-sub,.page-shell .exposure-sub{background:var(--tf-purple-dark)!important;color:#fff!important}
.page-shell .purple-head{background:var(--tf-purple)!important;color:#fff!important}
.page-shell .purple-sub{background:var(--tf-purple-dark)!important;color:#fff!important}
.page-shell .pct{color:var(--tf-purple)!important}
.page-shell tbody td:first-child{color:var(--tf-navy)!important}
.page-shell .proposed{color:var(--tf-purple)!important}
.page-shell .note-card h2,
.page-shell .note-card.sources h2{background:var(--tf-navy)!important;color:#fff!important}
.page-shell .note-card.sources h2{background:var(--tf-purple)!important}
.page-shell .note-card h2 *{color:#fff!important}
.page-shell .site-note{background:linear-gradient(110deg,var(--tf-navy),var(--tf-purple-dark))!important}
.page-shell .updated{color:var(--tf-muted)!important}
/* Keep the risk scale multicolor because those colors encode low/moderate/high/critical. */
.page-shell .scale .low{background:#287a4b!important}
.page-shell .scale .moderate{background:var(--tf-gold)!important;color:#111!important}
.page-shell .scale .high{background:#e67e22!important}
.page-shell .scale .critical{background:#c62828!important}
.page-shell .mini-scale{background:linear-gradient(90deg,#287a4b 0 30%,var(--tf-gold) 30% 60%,#e67e22 60% 80%,#c62828 80% 100%)!important}

/* How Did We Get Here: eliminate legacy green and match Transparency. */
body:has(.bridge){
  --green-950:var(--tf-navy);
  --green-900:var(--tf-navy);
  --green-800:var(--tf-purple-dark);
  --green-700:var(--tf-purple);
  --green-100:#f3edf7;
  --surface:#fbfafc;
  --line:var(--tf-rule);
  --body:var(--tf-body);
  --muted:var(--tf-muted);
}
body:has(.bridge) .page-head h1,
body:has(.bridge) .section h2{color:var(--tf-navy)!important}
body:has(.bridge) .eyebrow{color:var(--tf-purple)!important}
body:has(.bridge) .summary-card strong,
body:has(.bridge) .metric strong{color:var(--tf-purple)!important}
body:has(.bridge) .bridge{background:linear-gradient(110deg,var(--tf-navy) 0%,var(--tf-purple-dark) 62%,var(--tf-purple) 100%)!important;border-top:4px solid var(--tf-gold)!important}
body:has(.bridge) .bridge h3{color:#fff!important}
body:has(.bridge) .bridge p{color:#f3edf7!important}
body:has(.bridge) .compare-card.tax{border-top-color:var(--tf-purple)!important}
body:has(.bridge) .callout{background:#f3edf7!important;border-left-color:var(--tf-gold)!important;color:var(--tf-body)!important}
body:has(.bridge) .callout strong{color:var(--tf-purple-dark)!important}
body:has(.bridge) .dot{background:var(--tf-purple)!important;box-shadow:0 0 0 2px var(--tf-purple)!important}
body:has(.bridge) .tag:not(.fire):not(.state){background:#f3edf7!important;color:var(--tf-purple-dark)!important}
body:has(.bridge) .source a{color:var(--tf-purple)!important}
body:has(.bridge) footer{background:linear-gradient(110deg,var(--tf-navy),var(--tf-purple-dark))!important}

/* Budget Simulator / Property Tax Reform: replace legacy green UI with navy-purple-gold. */
body:has(#gap){
  --green:var(--tf-navy);
  --green2:var(--tf-purple);
  --green3:var(--tf-magenta);
  --navy:var(--tf-navy);
  --line:var(--tf-rule);
}
body:has(#gap) .metric:before{background:var(--tf-purple)!important}
body:has(#gap) .explain strong{color:var(--tf-navy)!important}
body:has(#gap) .sticky{border-color:var(--tf-purple)!important;box-shadow:0 15px 40px rgba(50,23,79,.14)!important}
body:has(#gap) .kicker{color:var(--tf-purple)!important}
body:has(#gap) .controls .primary{background:var(--tf-purple)!important;border-color:var(--tf-purple)!important;color:#fff!important}
body:has(#gap) .progress{background:#eee9f2!important}
body:has(#gap) .progress>div{background:linear-gradient(90deg,var(--tf-purple-dark),var(--tf-purple),var(--tf-gold))!important}
body:has(#gap) .section-title h2{color:var(--tf-navy)!important}
body:has(#gap) .section-tag{background:#f3edf7!important;color:var(--tf-purple)!important;border:1px solid #d8c6e3!important}
body:has(#gap) input[type=range]{accent-color:var(--tf-purple)!important}
body:has(#gap) .pct{background:#f3edf7!important;color:var(--tf-purple)!important}
body:has(#gap) .sources h2{color:var(--tf-navy)!important}
body:has(#gap) .source-box{background:#fbfafc!important;border-color:var(--tf-rule)!important}
body:has(#gap) .source-box strong{color:var(--tf-purple-dark)!important}
