:root {
  --final-white: #ffffff;
  --final-cream: #fffaf5;
  --final-sand: #f8f1ea;
  --final-line: #eaded1;
  --final-charcoal: #2b2622;
  --final-charcoal-2: #3a302a;
  --final-charcoal-3: #4a3931;
  --final-muted: #6f625a;
  --final-muted-2: #8a7a70;
  --final-terra: #c96b4b;
  --final-terra-dark: #a95136;
  --final-olive: #8a9a5b;
  --final-olive-dark: #5f6f33;
  --final-shadow: 0 18px 42px rgba(47,42,38,.10);
  --final-shadow-soft: 0 10px 24px rgba(47,42,38,.08);
}

html, body {
  background: var(--final-sand) !important;
  color: var(--final-charcoal) !important;
}

body.public-body,
body.civic-public-body {
  background: linear-gradient(180deg, var(--final-cream) 0%, var(--final-sand) 100%) !important;
}

/* Public navigation */
.civic-public-header,
.public-header {
  background: rgba(255,250,245,.94) !important;
  color: var(--final-charcoal) !important;
  border-bottom: 1px solid rgba(47,42,38,.10) !important;
  box-shadow: 0 8px 26px rgba(47,42,38,.06) !important;
  backdrop-filter: blur(14px) !important;
}

.civic-brand strong,
.public-header .brand strong,
.brand-meta strong {
  color: var(--final-charcoal) !important;
  text-shadow: none !important;
}

.civic-brand small,
.public-header .brand small,
.brand-meta small {
  color: var(--final-muted) !important;
  text-shadow: none !important;
}

.civic-brand .brand-logo,
.brand-logo {
  background: var(--final-charcoal) !important;
  border: 3px solid rgba(255,250,245,.92) !important;
  box-shadow: 0 10px 22px rgba(201,107,75,.18) !important;
}

.civic-public-nav a:not(.btn),
.public-nav a:not(.btn) {
  color: var(--final-charcoal) !important;
  text-shadow: none !important;
}

.civic-public-nav a:not(.btn):hover,
.public-nav a:not(.btn):hover,
.civic-public-nav a:not(.btn):first-child,
.public-nav a:not(.btn):first-child {
  color: var(--final-terra) !important;
}

.btn-primary,
.exact-primary-btn,
button.btn-primary,
a.btn-primary {
  background: linear-gradient(135deg, var(--final-terra), var(--final-terra-dark)) !important;
  color: #fffaf5 !important;
  border: 0 !important;
  box-shadow: 0 14px 30px rgba(201,107,75,.24) !important;
  text-shadow: none !important;
}

.btn-light,
a.btn-light {
  background: #fffaf5 !important;
  color: var(--final-charcoal) !important;
  border: 1px solid rgba(47,42,38,.12) !important;
}

.btn-dark,
a.btn-dark {
  background: var(--final-charcoal) !important;
  color: #fffaf5 !important;
  border: 0 !important;
}

/* Landing page */
.exact-hero {
  background:
    radial-gradient(circle at 68% 14%, rgba(138,154,91,.16), transparent 24%),
    linear-gradient(90deg, rgba(255,250,245,1) 0%, rgba(255,250,245,.96) 44%, rgba(255,250,245,.36) 64%, rgba(255,250,245,0) 83%) !important;
  border-bottom: 1px solid rgba(47,42,38,.08) !important;
}

.exact-hero::before {
  background: radial-gradient(circle, rgba(255,255,255,.92), rgba(255,250,245,.64) 42%, transparent 72%) !important;
}

.exact-hero h1,
.exact-section-title h2,
.exact-service-card h3,
.exact-activity-card h3,
.exact-process h3 {
  color: var(--final-charcoal) !important;
  text-shadow: none !important;
}

.exact-hero h1 em,
.exact-link-btn,
.exact-service-card a,
.exact-section-title a {
  color: var(--final-terra) !important;
}

.exact-hero p,
.exact-service-card p,
.exact-activity-card p,
.exact-process p,
.exact-stats small,
.exact-stats p,
.exact-place-card span {
  color: var(--final-muted) !important;
}

.exact-kicker,
.exact-badge {
  background: rgba(138,154,91,.18) !important;
  color: var(--final-olive-dark) !important;
}

.exact-service-card,
.exact-stats,
.exact-activity-card,
.exact-process article,
.exact-place-card,
.card,
.section-card,
.auth-card,
.panel,
.stat-card,
.summary-card,
.data-card,
.strip-card {
  background: rgba(255,255,255,.94) !important;
  border-color: rgba(47,42,38,.09) !important;
  box-shadow: var(--final-shadow-soft) !important;
}

.exact-service-card img,
.exact-stat-icon {
  background: #f4eadf !important;
}

.exact-stats strong {
  color: var(--final-terra) !important;
}

.exact-stats article:nth-child(1) strong,
.exact-stats article:nth-child(3) strong {
  color: var(--final-olive-dark) !important;
}

.exact-cta {
  background: linear-gradient(135deg, var(--final-charcoal) 0%, var(--final-charcoal-2) 100%) !important;
  color: #fffaf5 !important;
  border: 1px solid rgba(255,250,245,.08) !important;
  box-shadow: 0 18px 38px rgba(47,42,38,.16) !important;
}

.exact-cta *,
.exact-cta h2,
.exact-cta p,
.exact-cta span {
  color: #fffaf5 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

.exact-cta span { color: #ffd6c6 !important; }
.exact-cta p { color: rgba(255,250,245,.82) !important; }

/* Footer */
.civic-footer,
.public-footer {
  background: linear-gradient(180deg, #241f1b 0%, var(--final-charcoal) 100%) !important;
  color: rgba(255,250,245,.82) !important;
  border-top: 1px solid rgba(255,250,245,.08) !important;
}

.civic-footer h4,
.civic-footer strong,
.civic-footer .footer-brand-row strong,
.public-footer h4,
.public-footer strong {
  color: #fffaf5 !important;
  text-shadow: none !important;
}

.civic-footer p,
.civic-footer small,
.civic-footer li,
.public-footer p,
.public-footer small,
.public-footer li {
  color: rgba(255,250,245,.74) !important;
}

.civic-footer a,
.public-footer a {
  color: #e7a48e !important;
  text-decoration: none !important;
}

.civic-footer a:hover,
.public-footer a:hover {
  color: #fffaf5 !important;
}

.civic-footer-bottom {
  border-top-color: rgba(255,250,245,.12) !important;
}

/* Authenticated shell */
body.app-shell-authenticated,
.app-body {
  background: var(--final-sand) !important;
  color: var(--final-charcoal) !important;
}

.sidebar {
  background: linear-gradient(180deg, #241f1b 0%, var(--final-charcoal) 100%) !important;
  color: rgba(255,250,245,.86) !important;
  border: 1px solid rgba(255,250,245,.08) !important;
  box-shadow: 0 18px 34px rgba(47,42,38,.22) !important;
}

.sidebar *,
.sidebar .brand strong,
.sidebar .brand small,
.sidebar .section-label,
.sidebar-user strong,
.sidebar-user small,
.sidebar-panel p,
.sidebar-metrics span,
.sidebar-metrics strong {
  color: rgba(255,250,245,.88) !important;
  text-shadow: none !important;
}

.sidebar-panel,
.sidebar-group {
  background: rgba(255,250,245,.055) !important;
  border: 1px solid rgba(255,250,245,.08) !important;
}

.nav-link {
  color: rgba(255,250,245,.84) !important;
  background: transparent !important;
}

.nav-link:hover,
.nav-link.active,
.nav-link.is-active {
  background: rgba(201,107,75,.18) !important;
  color: #fffaf5 !important;
  box-shadow: inset 0 0 0 1px rgba(255,250,245,.08) !important;
}

.topbar {
  background: rgba(255,250,245,.92) !important;
  color: var(--final-charcoal) !important;
  border: 1px solid rgba(47,42,38,.10) !important;
  box-shadow: var(--final-shadow-soft) !important;
}

.topbar *,
.page-title,
.page-subtitle,
.utility-chip {
  text-shadow: none !important;
}

.page-title,
.topbar h1 {
  color: var(--final-charcoal) !important;
}

.workspace-label {
  color: var(--final-terra) !important;
}

.page-subtitle,
.utility-chip {
  color: var(--final-muted) !important;
}

.utility-chip {
  background: #fff !important;
  border: 1px solid rgba(47,42,38,.10) !important;
}

/* Tables, form, alerts, badges */
table thead th {
  background: #f5ede4 !important;
  color: var(--final-charcoal) !important;
}

table th,
table td {
  border-bottom-color: rgba(47,42,38,.08) !important;
}

table tbody tr:hover {
  background: rgba(201,107,75,.045) !important;
}

input:not([type="hidden"]),
select,
textarea {
  background: #ffffff !important;
  color: var(--final-charcoal) !important;
  border-color: rgba(47,42,38,.14) !important;
}

input:not([type="hidden"]):focus,
select:focus,
textarea:focus {
  border-color: rgba(201,107,75,.60) !important;
  box-shadow: 0 0 0 4px rgba(201,107,75,.12) !important;
}

.badge-info,
.alert-info,
.chip-info {
  background: rgba(201,107,75,.12) !important;
  color: var(--final-terra-dark) !important;
  border-color: rgba(201,107,75,.18) !important;
}

.badge-success,
.alert-success,
.chip-success {
  background: rgba(138,154,91,.14) !important;
  color: var(--final-olive-dark) !important;
  border-color: rgba(138,154,91,.18) !important;
}

.badge-warning,
.alert-warning,
.chip-warning {
  background: rgba(201,107,75,.12) !important;
  color: var(--final-terra-dark) !important;
  border-color: rgba(201,107,75,.18) !important;
}

.badge-danger,
.alert-danger,
.chip-danger {
  background: rgba(153,27,27,.10) !important;
  color: #991b1b !important;
  border-color: rgba(153,27,27,.18) !important;
}

/* Remove cold decorative backgrounds from older CSS */
.public-body::before,
.app-body::before,
.app-shell-authenticated::before {
  background: none !important;
}

.surface-dark,
.portal-hero,
.hero-official,
.portal-hero-official {
  background: linear-gradient(135deg, var(--final-charcoal), var(--final-charcoal-2)) !important;
  color: #fffaf5 !important;
}

.surface-dark *,
.portal-hero *,
.hero-official *,
.portal-hero-official * {
  color: #fffaf5 !important;
  text-shadow: none !important;
}
