/* Shared theme tokens and ZIP-scoped theme remaps.
 * Layout and component structure remain owned by each page.
 */
html[data-theme="dark"], html[data-zip-theme="dark"] {
  --zip-bg: #0f172a; --zip-surface: rgba(255,255,255,0.04); --zip-surface-strong: rgba(255,255,255,0.08); --zip-controls: #172033; --zip-card: #111b2e;
  --zip-text-primary: #E9EBEC; --zip-text-secondary: #B5BFCC; --zip-text-muted: #9CA3AF; --zip-text-faint: #6B7280;
  --zip-heading: #4ECB71; --zip-link: #4ECB71; --zip-logo: #4ECB71; --zip-green: #4ECB71; --zip-green-hover: #3db85e;
  --zip-green-bg: rgba(78,203,113,0.08); --zip-green-bg-strong: rgba(78,203,113,0.15); --zip-green-border: rgba(78,203,113,0.25);
  --zip-border: rgba(255,255,255,0.1); --zip-border-soft: rgba(255,255,255,0.06); --zip-table-line: rgba(255,255,255,0.1);
  --zip-input-bg: rgba(255,255,255,0.08); --zip-enroll-text: #0A0A0A;
  --zip-amber: #F59E0B; --zip-amber-bg: rgba(245,158,11,0.16); --zip-amber-border: rgba(245,158,11,0.45);
  --zip-renewable-text: #4ECB71; --zip-renewable-bg: rgba(78,203,113,0.14); --zip-renewable-border: rgba(78,203,113,0.42);
  --zip-pill-bg: #1e293b; --zip-pill-text: #E9EBEC; --zip-segment-inactive-bg: #111b2e; --zip-segment-inactive-text: #4ECB71; --zip-price-secondary: #cbd5e1; --zip-neutral-bg: #263244; --zip-neutral-text: #dbe4ee;
}
html[data-theme="light"], html[data-zip-theme="light"] {
  --zip-bg: #FAF9F5; --zip-surface: #FFFFFF; --zip-surface-strong: #FFFFFF; --zip-controls: #F3F1EA; --zip-card: #FFFFFF;
  --zip-text-primary: #1a2b3c; --zip-text-secondary: #526273; --zip-text-muted: #687789; --zip-text-faint: #7a8794;
  --zip-heading: #1a2b3c; --zip-link: #1a2b3c; --zip-logo: #166534; --zip-green: #166534; --zip-green-hover: #14532d;
  --zip-green-bg: #eef7ef; --zip-green-bg-strong: #e4f2e7; --zip-green-border: #b8d8bd;
  --zip-border: #e5dfd5; --zip-border-soft: #eee9e1; --zip-table-line: #e8e2d9;
  --zip-input-bg: #fffdf9; --zip-enroll-text: #FFFFFF;
  --zip-amber: #8a5a12; --zip-amber-bg: #fff2cf; --zip-amber-border: #e7c879;
  --zip-renewable-text: #166534; --zip-renewable-bg: #e4f2e7; --zip-renewable-border: #b8d8bd;
  --zip-pill-bg: #1e293b; --zip-pill-text: #FFFFFF; --zip-segment-inactive-bg: #FFFFFF; --zip-segment-inactive-text: #166534; --zip-price-secondary: #4B5563; --zip-neutral-bg: #eef0f2; --zip-neutral-text: #334155;
}

/* Sitewide DEV theme convergence. Existing dark values remain the default. */
html[data-theme="dark"] {
  --site-bg: #0A0A0C; --site-surface: rgba(255,255,255,0.04);
  --site-text: #E9EBEC; --site-muted: #9CA3AF; --site-border: rgba(255,255,255,0.1);
  --site-green: #4ECB71; --site-green-hover: #3db860; --site-footer: #000000; --site-green-cta-text: #FFFFFF;
}
html[data-theme="light"] {
  --site-bg: #FAF9F5; --site-surface: #FFFFFF;
  --site-text: #1F2937; --site-muted: #4B5563; --site-border: #E5E7EB;
  --site-green: #166534; --site-green-hover: #14532D; --site-footer: #F3F4F6; --site-green-cta-text: #FFFFFF;
}

/* Shared theme-control language. These controls intentionally stay neutral
 * across both page themes so the selected option is always unmistakable. */
html[data-theme] {
  --theme-control-active-bg: #0A0A0C;
  --theme-control-active-fg: #FFFFFF;
  --theme-control-inactive-bg: #FFFFFF;
  --theme-control-inactive-fg: #0A0A0C;
  --theme-control-border: #CBD5E1;
  --theme-control-radius: 8px;
  --theme-control-compact-radius: 7px;
}

/* Canonical navigation injected across all themed public pages. */
.site-canonical-nav {
  position: sticky; top: 0; z-index: 1000; min-height: 64px;
  display: flex; align-items: center; gap: 24px; padding: 0 24px;
  background: rgba(10,10,12,.92); border-bottom: 1px solid var(--site-border);
  backdrop-filter: blur(12px);
}
.site-canonical-logo {
  display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0;
  color: var(--site-green) !important; font-size: 1rem; font-weight: 700;
  text-decoration: none !important;
}
.site-canonical-links { display: flex; align-items: center; gap: 20px; margin-left: auto; }
.site-canonical-links a,
.site-canonical-dropdown a {
  color: var(--site-muted) !important; font-size: .875rem; font-weight: 500;
  text-decoration: none !important;
}
.site-canonical-links a:hover,
.site-canonical-dropdown a:hover { color: var(--site-text) !important; }
.site-theme-segment {
  display: inline-flex; align-items: stretch; flex-shrink: 0; overflow: hidden;
  min-height: 36px; border: 1px solid var(--site-border); border-radius: 8px;
  background: #fff;
}
.site-theme-segment button {
  min-width: 52px; padding: 7px 12px; border: 0; border-radius: 0;
  background: #fff; color: #4B5563; font: 600 .78rem inherit;
  cursor: pointer; white-space: nowrap;
}
.site-theme-segment button + button { border-left: 1px solid var(--site-border); }
.site-theme-segment button.active {
  background: #1E293B; color: #fff; box-shadow: inset 0 0 0 1px #1E293B;
}
.site-theme-segment button:hover:not(.active) { background: #F3F4F6; color: #1F2937; }
.site-theme-segment button:focus-visible {
  position: relative; z-index: 1; outline: 2px solid var(--site-green); outline-offset: -2px;
}
.site-interior-footer {
  margin-top: 80px; padding: 32px 20px; border-top: 1px solid var(--site-border);
  background: var(--site-footer); color: var(--site-muted); text-align: center;
  font-size: .875rem;
}
.site-interior-footer-links {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
  gap: 8px; color: var(--site-muted);
}
.site-interior-footer-links a {
  color: var(--site-muted) !important; text-decoration: none;
}
.site-interior-footer-links a:hover {
  color: var(--site-green) !important;
}
.site-interior-footer-disclosure {
  max-width: 720px; margin: 0 auto 16px; color: var(--site-muted);
  line-height: 1.5;
}
.site-interior-footer-disclosure a {
  color: var(--site-green) !important; text-decoration: underline;
}
.site-interior-footer-copy {
  margin: 16px 0 0; color: var(--site-muted);
}
.site-theme-segment-mobile { display: none; }
.site-canonical-menu {
  display: none; width: 40px; height: 40px; padding: 8px; margin-left: auto;
  border: 1px solid var(--site-border); border-radius: 8px;
  background: transparent; color: var(--site-muted); cursor: pointer;
}
.site-canonical-menu span { display: block; height: 2px; margin: 4px 0; background: currentColor; border-radius: 2px; }
.site-canonical-dropdown { display: none; }
html[data-theme="light"] .site-canonical-nav { background: rgba(255,255,255,.96); }
html[data-theme="dark"] .site-canonical-nav { background: rgba(10,10,12,.92); }

/* All theme controls: active is black/white; inactive is white/black. */
.site-theme-segment {
  border-color: var(--theme-control-border);
  background: var(--theme-control-inactive-bg);
  border-radius: var(--theme-control-radius);
}
.site-theme-segment button {
  background: var(--theme-control-inactive-bg);
  color: var(--theme-control-inactive-fg);
}
.site-theme-segment button + button { border-left-color: var(--theme-control-border); }
.site-theme-segment button.active {
  background: var(--theme-control-active-bg);
  color: var(--theme-control-active-fg);
  box-shadow: inset 0 0 0 1px var(--theme-control-active-bg);
}
.site-theme-segment button:hover:not(.active) {
  background: var(--theme-control-inactive-bg);
  color: var(--theme-control-inactive-fg);
}

.zip-theme-switch,
.map-mini-toggle,
.tool-mini-toggle,
.gi-theme-toggle {
  border: 1px solid var(--theme-control-border);
  border-radius: var(--theme-control-compact-radius);
  background: var(--theme-control-inactive-bg);
  color: var(--theme-control-inactive-fg);
}
.zip-theme-btn,
.map-mini-toggle button,
.tool-mini-toggle button,
.gi-theme-btn {
  border: 1px solid var(--theme-control-border);
  border-radius: var(--theme-control-compact-radius);
  background: var(--theme-control-inactive-bg);
  color: var(--theme-control-inactive-fg);
}
.zip-theme-btn.active,
.map-mini-toggle button.active,
.tool-mini-toggle button.active,
.gi-theme-btn.gi-theme-active {
  border-color: var(--theme-control-active-bg);
  background: var(--theme-control-active-bg);
  color: var(--theme-control-active-fg);
}
.zip-theme-btn:hover:not(.active),
.map-mini-toggle button:hover:not(.active),
.tool-mini-toggle button:hover:not(.active),
.gi-theme-btn:hover:not(.gi-theme-active) {
  background: var(--theme-control-inactive-bg);
  color: var(--theme-control-inactive-fg);
}
.map-mini-toggle span,
.tool-mini-label {
  color: var(--theme-control-inactive-fg);
}
.zip-theme-btn:focus-visible,
.map-mini-toggle button:focus-visible,
.tool-mini-toggle button:focus-visible,
.gi-theme-btn:focus-visible,
.ate-toggle:focus-visible {
  outline: 2px solid var(--theme-control-active-bg);
  outline-offset: 2px;
}

/* Legacy single-button theme controls cannot show two segments; keep their
 * action surface in the same black/white language. */
.ate-toggle {
  background: var(--theme-control-active-bg) !important;
  border: 1px solid var(--theme-control-active-bg) !important;
  color: var(--theme-control-active-fg) !important;
}
.ate-toggle:hover {
  background: var(--theme-control-active-bg) !important;
  border-color: var(--theme-control-active-bg) !important;
  color: var(--theme-control-active-fg) !important;
}

/* Retire page-local top navigation after the canonical header is injected. */
html[data-theme] body > .nav:not(.site-canonical-nav),
html[data-theme] body > nav:not(.site-canonical-nav),
html[data-theme] body > .site-canonical-nav + nav,
html[data-theme] body > .site-canonical-nav + header,
html[data-theme] body > .topbar,
html[data-theme] body > .header,
html[data-theme] body > div[style*="position: fixed"][style*="top: 0"],
html[data-theme] body > div[style*="position:fixed"][style*="top:0"],
html[data-theme] body > .container > .header:not(#homeHeader) {
  display: none !important;
}
@media (max-width: 640px) {
  .site-canonical-nav { gap: 10px; padding: 0 16px; }
  .site-canonical-links { display: none; }
  .site-canonical-menu { display: block; }
  .site-theme-segment-desktop { display: none; }
  .site-canonical-dropdown {
    position: absolute; top: 58px; right: 16px; flex-direction: column;
    gap: 2px; min-width: 180px; padding: 8px; border: 1px solid var(--site-border);
    border-radius: 10px; background: var(--site-surface); box-shadow: 0 12px 30px rgba(0,0,0,.2);
  }
  .site-canonical-dropdown.open { display: flex; }
  .site-canonical-dropdown a { padding: 10px 14px; border-radius: 7px; }
  .site-theme-segment-mobile { display: inline-flex; margin: 8px 6px 4px; }
}

/* Bridge the legacy page-local token names to the shared theme. Several
   server-rendered pages still use --text-* and --bg-* in their component CSS;
   keeping the bridge here makes light mode systemic instead of selector-by-
   selector and preserves the original dark palette. */
html[data-theme="dark"] body:not(.zip-page) {
  --bg: #0A0A0C; --bg-card: rgba(255,255,255,0.04);
  --text-h: #F9FAFB; --text-p: #E9EBEC; --text-s: #9CA3AF; --text-m: #6B7280;
  --green: #4ECB71; --green-h: #3db860; --green-bg: rgba(78,203,113,0.08);
  --green-bd: rgba(78,203,113,0.25); --bd: rgba(255,255,255,0.1);
}
html[data-theme="light"] body:not(.zip-page) {
  --bg: #FAF9F5; --bg-card: #FFFFFF;
  --text-h: #1A2B3C; --text-p: #1F2937; --text-s: #4B5563; --text-m: #4B5563;
  --green: #166534; --green-h: #14532D; --green-bg: #EEF7EF;
  --green-bd: #B8D8BD; --bd: #E5E7EB;
}
html[data-theme] body:not(.zip-page) {
  background: var(--site-bg);
  color: var(--site-text);
  transition: background-color .16s ease, color .16s ease;
}
/* Legacy /tx/{zip|city}/electricity pages keep their original markup and
   inline stylesheet, but participate in the same sitewide theme shell. */
html[data-theme] body.tx-legacy-page {
  background: var(--site-bg) !important;
  color: var(--site-text) !important;
}
html[data-theme] body.tx-legacy-page .header {
  background: var(--site-surface) !important;
  border-bottom-color: var(--site-border) !important;
}
html[data-theme] body.tx-legacy-page .logo,
html[data-theme] body.tx-legacy-page h1,
html[data-theme] body.tx-legacy-page h2,
html[data-theme] body.tx-legacy-page .weather-temp {
  color: var(--site-green) !important;
}
html[data-theme] body.tx-legacy-page .search-input {
  background: var(--site-surface) !important;
  border-color: var(--site-border) !important;
  color: var(--site-text) !important;
}
html[data-theme] body.tx-legacy-page .info-section,
html[data-theme] body.tx-legacy-page .weather-box,
html[data-theme] body.tx-legacy-page #map,
html[data-theme] body.tx-legacy-page .plans-table th {
  background: var(--site-surface) !important;
}
html[data-theme] body.tx-legacy-page .plans-table th,
html[data-theme] body.tx-legacy-page .plans-table td {
  border-bottom-color: var(--site-border) !important;
  color: var(--site-text) !important;
}
html[data-theme] body.tx-legacy-page .cta-button,
html[data-theme] body.tx-legacy-page .search-btn {
  background: var(--site-green) !important;
  color: var(--site-green-cta-text) !important;
}
html[data-theme="light"] body.tx-legacy-page .search-input::placeholder {
  color: var(--site-muted) !important;
}
html[data-theme] body:not(.zip-page) .biz-card-cta,
html[data-theme] body:not(.zip-page) .ubar-send {
  color: var(--site-green-cta-text) !important;
}
html[data-theme="light"] body:not(.zip-page) a { color: var(--site-green); }
html[data-theme="light"] body:not(.zip-page) .nav,
html[data-theme="light"] body:not(.zip-page) .topbar,
html[data-theme="light"] body:not(.zip-page) .header {
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(255,255,255,.96); border-color: var(--site-border);
}
/* Only normalize fixed top navigation bars. Consent banners, modals, and
   other fixed overlays must keep their own dimensions and positioning. */
html[data-theme] body:not(.zip-page) > div[style*="position: fixed"][style*="top: 0"]:not(#cookie-banner),
html[data-theme] body:not(.zip-page) > div[style*="position:fixed"][style*="top:0"]:not(#cookie-banner) {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--site-surface) !important;
  border-color: var(--site-border) !important;
}
/* Cookie consent is a bottom bar, never a page-covering surface. Keep its
   inline display state authoritative so consent logic remains unchanged. */
html[data-theme="dark"] #cookie-banner {
  min-height: 0;
  background: rgba(15, 23, 42, 0.96) !important;
  border-top-color: #334155 !important;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.22) !important;
}
html[data-theme="light"] #cookie-banner {
  min-height: 0;
  background: rgba(255, 255, 255, 0.96) !important;
  border-top-color: #E5E7EB !important;
  box-shadow: 0 -4px 12px rgba(15, 23, 42, 0.12) !important;
}
html[data-theme="dark"] #cookie-banner p,
html[data-theme="dark"] #cookie-banner a {
  color: #CBD5E1 !important;
}
html[data-theme="light"] #cookie-banner p,
html[data-theme="light"] #cookie-banner a {
  color: #4B5563 !important;
}
html[data-theme="light"] body:not(.zip-page) .widget-card {
  background: var(--site-surface);
  border-color: var(--site-border);
}
html[data-theme="light"] body:not(.zip-page) .widget-card h2 { color: var(--site-text); }
html[data-theme="light"] body:not(.zip-page) .widget-card p,
html[data-theme="light"] body:not(.zip-page) .subtitle { color: var(--site-muted); }
html[data-theme] body:not(.zip-page) .nav,
html[data-theme] body:not(.zip-page) .topbar,
html[data-theme] body:not(.zip-page) .header { min-height: 64px; }
html[data-theme="light"] body:not(.zip-page) h1,
html[data-theme="light"] body:not(.zip-page) h2,
html[data-theme="light"] body:not(.zip-page) h3,
html[data-theme="light"] body:not(.zip-page) .step-title,
html[data-theme="light"] body:not(.zip-page) .query-text,
html[data-theme="light"] body:not(.zip-page) .answer-text,
html[data-theme="light"] body:not(.zip-page) .bill-info-value,
html[data-theme="light"] body:not(.zip-page) .bill-info-subtext,
html[data-theme="light"] body:not(.zip-page) .plans-table td,
html[data-theme="light"] body:not(.zip-page) .plans-table th,
html[data-theme="light"] body:not(.zip-page) .contact-card p,
html[data-theme="light"] body:not(.zip-page) .feature p,
html[data-theme="light"] body:not(.zip-page) .step-sub,
html[data-theme="light"] body:not(.zip-page) .query-label {
  color: var(--site-text);
}
html[data-theme="light"] body:not(.zip-page) .query-label,
html[data-theme="light"] body:not(.zip-page) .step-sub,
html[data-theme="light"] body:not(.zip-page) .bill-info-subtext,
html[data-theme="light"] body:not(.zip-page) .feature p,
html[data-theme="light"] body:not(.zip-page) .contact-card p {
  color: var(--site-muted);
}
html[data-theme="light"] body:not(.zip-page) .nav a,
html[data-theme="light"] body:not(.zip-page) .logo { color: var(--site-green); }
html[data-theme="light"] body:not(.zip-page) .nav-links a,
html[data-theme="light"] body:not(.zip-page) .back-link { color: var(--site-muted); }
html[data-theme="light"] body:not(.zip-page) .page-title,
html[data-theme="light"] body:not(.zip-page) .tool-name,
html[data-theme="light"] body:not(.zip-page) .step-title,
html[data-theme="light"] body:not(.zip-page) .answer-title,
html[data-theme="light"] body:not(.zip-page) .bill-title,
html[data-theme="light"] body:not(.zip-page) .contact-card h2,
html[data-theme="light"] body:not(.zip-page) .widget-card h2 {
  color: var(--site-text);
}
html[data-theme="light"] body:not(.zip-page) .page-sub,
html[data-theme="light"] body:not(.zip-page) .tool-desc,
html[data-theme="light"] body:not(.zip-page) .group-label,
html[data-theme="light"] body:not(.zip-page) .footer-copy,
html[data-theme="light"] body:not(.zip-page) .footer-links a,
html[data-theme="light"] body:not(.zip-page) .subtitle {
  color: var(--site-muted);
}
html[data-theme="light"] body:not(.zip-page) .tool-card {
  background: var(--site-surface);
  border-color: var(--site-border);
}
html[data-theme="light"] body:not(.zip-page) .tool-card:hover {
  background: #EEF7EF;
  border-color: #B8D8BD;
}
/* City templates still contain legacy inline dark tokens. Remap only those
   presentation colors in the sitewide light treatment; values and behavior
   remain untouched. */
html[data-theme="light"] body:not(.zip-page) .page [style*="#B5BFCC"],
html[data-theme="light"] body:not(.zip-page) .page [style*="#9CA3AF"] {
  color: #4B5563 !important;
}
html[data-theme="light"] body:not(.zip-page) .page [style*="#E9EBEC"] {
  color: #1F2937 !important;
}
html[data-theme="light"] body:not(.zip-page) .page [style*="rgba(255,255,255,0.035)"],
html[data-theme="light"] body:not(.zip-page) .page [style*="rgba(255,255,255,0.03)"] {
  background: #FFFFFF !important;
  border-color: #E5E7EB !important;
}
/* Legacy city pages use the ZIP shell but have their own plan-table markup.
   Keep canonical /zip styling separate and only remap these city selectors. */
html[data-theme="light"] body.zip-page .content .zip-meta,
html[data-theme="light"] body.zip-page .content .city-pricing-copy,
html[data-theme="light"] body.zip-page .content .territory-sub,
html[data-theme="light"] body.zip-page .content [style*="color:#B5BFCC"],
html[data-theme="light"] body.zip-page .content [style*="color:#9CA3AF"],
html[data-theme="light"] body.zip-page .content [style*="color:#6B7280"] {
  color: #4B5563 !important;
}
html[data-theme="light"] body.zip-page .content [style*="color:#E9EBEC"] {
  color: #1F2937 !important;
}
html[data-theme="light"] body.zip-page .content .plan-table td,
html[data-theme="light"] body.zip-page .content .plan-card-name,
html[data-theme="light"] body.zip-page .content .plan-card-meta {
  color: #374151 !important;
}
html[data-theme="light"] body.zip-page .content #city-pricing-controls,
html[data-theme="light"] body.zip-page .content #city-pricing-controls > div {
  background: #FFFFFF !important;
  border-color: #D7E8D9 !important;
}
html[data-theme="light"] body.zip-page .content #city-pricing-controls button {
  color: #4B5563 !important;
}
html[data-theme="light"] body.zip-page .content #city-pricing-controls button[style*="color:#4ECB71"] {
  color: #166534 !important;
}
html[data-theme="light"] body.zip-page .content [style*="background:rgba(255,255,255,0.035)"],
html[data-theme="light"] body.zip-page .content [style*="background:rgba(255,255,255,0.03)"] {
  background: #FFFFFF !important;
  border-color: #E5E7EB !important;
}
html[data-theme="light"] body:not(.zip-page) .answer-card,
html[data-theme="light"] body:not(.zip-page) .bill-info-section,
html[data-theme="light"] body:not(.zip-page) .plans-table-container,
html[data-theme="light"] body:not(.zip-page) .step,
html[data-theme="light"] body:not(.zip-page) .feature,
html[data-theme="light"] body:not(.zip-page) .contact-card,
html[data-theme="light"] body:not(.zip-page) .tool-card {
  background: var(--site-surface); border-color: var(--site-border);
}
html[data-theme="light"] body:not(.zip-page) footer {
  background: var(--site-footer); border-color: var(--site-border);
}
html[data-theme="light"] body:not(.zip-page) input,
html[data-theme="light"] body:not(.zip-page) textarea,
html[data-theme="light"] body:not(.zip-page) select {
  background: #FFFDF9; color: var(--site-text); border-color: var(--site-border);
}
html[data-theme="light"] body:not(.zip-page) ::placeholder { color: #6B7280; }
@media (max-width: 640px) {
  html[data-theme] body:not(.zip-page) .site-theme-segment button { min-height: 32px; padding: 6px 10px; }
}

html[data-theme], html[data-zip-theme], body.zip-page { background: var(--zip-bg); }
body.zip-page { color: var(--zip-text-primary); background: var(--zip-bg); transition: background-color .16s ease, color .16s ease; }
.zip-theme-switch { display:inline-flex;align-items:center;gap:2px;padding:3px; }
.zip-theme-btn { padding:8px 13px;min-height:36px;font:600 .8rem inherit;cursor:pointer;transition:background .16s ease,color .16s ease; }
.zip-theme-btn:hover { color:var(--theme-control-inactive-fg); }
.zip-theme-btn.active { }
.zip-theme-btn:focus-visible { outline:2px solid var(--zip-green);outline-offset:2px; }

body.zip-page{--bg:var(--zip-bg);--bg-card:var(--zip-surface);--text-h:var(--zip-text-primary);--text-p:var(--zip-text-primary);--text-s:var(--zip-text-muted);--text-m:var(--zip-text-faint);--text-d:var(--zip-text-secondary);--green:var(--zip-green);--green-h:var(--zip-green-hover);--green-bg:var(--zip-green-bg);--green-bd:var(--zip-green-border);--bd:var(--zip-border)}
body.zip-page [style*="color:#E9EBEC"],body.zip-page [style*="color: #E9EBEC"]{color:var(--zip-text-primary)!important}
body.zip-page [style*="color:#B5BFCC"],body.zip-page [style*="color: #B5BFCC"]{color:var(--zip-text-secondary)!important}
body.zip-page [style*="color:#9CA3AF"],body.zip-page [style*="color: #9CA3AF"]{color:var(--zip-text-muted)!important}
body.zip-page [style*="color:#6B7280"],body.zip-page [style*="color: #6B7280"]{color:var(--zip-text-faint)!important}
body.zip-page [style*="color:#4ECB71"],body.zip-page [style*="color: #4ECB71"]{color:var(--zip-green)!important}
body.zip-page [style*="color:#0A0A0A"],body.zip-page [style*="color: #0A0A0A"]{color:var(--zip-enroll-text)!important}
body.zip-page [style*="background:#4ECB71"],body.zip-page [style*="background: #4ECB71"]{background:var(--zip-green)!important}
body.zip-page [style*="background:rgba(255,255,255,0.03)"],body.zip-page [style*="background: rgba(255,255,255,0.03)"]{background:var(--zip-surface)!important}
body.zip-page [style*="background:rgba(255,255,255,0.035)"],body.zip-page [style*="background: rgba(255,255,255,0.035)"]{background:var(--zip-surface)!important}
body.zip-page [style*="background:rgba(255,255,255,0.04)"],body.zip-page [style*="background: rgba(255,255,255,0.04)"]{background:var(--zip-surface)!important}
body.zip-page [style*="background:rgba(255,255,255,0.05)"],body.zip-page [style*="background: rgba(255,255,255,0.05)"]{background:var(--zip-input-bg)!important}
body.zip-page [style*="background:rgba(255,255,255,0.08)"],body.zip-page [style*="background: rgba(255,255,255,0.08)"]{background:var(--zip-input-bg)!important}
body.zip-page [style*="background:rgba(78,203,113,0.06)"],body.zip-page [style*="background: rgba(78,203,113,0.06)"]{background:var(--zip-green-bg)!important}
body.zip-page [style*="background:rgba(78,203,113,0.08)"],body.zip-page [style*="background: rgba(78,203,113,0.08)"]{background:var(--zip-green-bg)!important}
body.zip-page [style*="background:rgba(78,203,113,0.15)"],body.zip-page [style*="background: rgba(78,203,113,0.15)"]{background:var(--zip-green-bg-strong)!important}
body.zip-page [style*="background:rgba(78,203,113,0.1)"],body.zip-page [style*="background: rgba(78,203,113,0.1)"]{background:var(--zip-green-bg-strong)!important}
body.zip-page [style*="border:1px solid rgba(255,255,255"],body.zip-page [style*="border: 1px solid rgba(255,255,255"]{border-color:var(--zip-border)!important}
body.zip-page [style*="border-bottom:1px solid rgba(255,255,255"],body.zip-page [style*="border-bottom: 1px solid rgba(255,255,255"]{border-bottom-color:var(--zip-table-line)!important}
body.zip-page [style*="border:1px solid rgba(78,203,113"],body.zip-page [style*="border: 1px solid rgba(78,203,113"]{border-color:var(--zip-green-border)!important}
body.zip-page [style*="border:1.5px solid rgba(78,203,113"],body.zip-page [style*="border: 1.5px solid rgba(78,203,113"]{border-color:var(--zip-green-border)!important}
body.zip-page .promo-badge{color:var(--zip-amber)!important;background:var(--zip-amber-bg)!important;border-color:var(--zip-amber-border)!important}
body.zip-page .renewable-chip{color:var(--zip-renewable-text)!important;background:var(--zip-renewable-bg)!important;border-color:var(--zip-renewable-border)!important}
body.zip-page footer{background:var(--zip-bg)!important;border-top-color:var(--zip-border)!important;color:var(--zip-text-faint)!important}
body.zip-page footer h3{color:var(--zip-text-primary)!important}
body.zip-page footer p{color:var(--zip-text-secondary)!important}
body.zip-page footer a{color:var(--zip-link)!important}
body.zip-page #cookie-banner{background:var(--zip-surface)!important;border-top-color:var(--zip-border)!important;box-shadow:0 -4px 12px rgba(0,0,0,.12)!important}
body.zip-page #cookie-banner p,body.zip-page #cookie-banner a{color:var(--zip-text-secondary)!important}
.biz-tools-root{color:var(--zip-text-primary)}
.biz-tools-root .biz-insights-divider{background:linear-gradient(90deg,transparent,var(--zip-green-border),var(--zip-green),var(--zip-green-border),transparent)!important}
.biz-tools-root .biz-insights-title{color:var(--zip-text-primary)!important}
.biz-tools-root .biz-tools-intro,.biz-tools-root .biz-stat-label,.biz-tools-root .biz-hvac-content,.biz-tools-root .biz-embed-copy,.biz-tools-root .biz-section-item{color:var(--zip-text-secondary)!important}
.biz-tools-root .biz-grid-conditions,.biz-tools-root .biz-hvac-card,.biz-tools-root .biz-embed-cta{background:var(--zip-surface)!important;border-color:var(--zip-green-border)!important}
.biz-tools-root .biz-tool-heading,.biz-tools-root .biz-stat-value,.biz-tools-root .biz-section-accent,.biz-tools-root .biz-ai-label{color:var(--zip-green)!important}
.biz-tools-root .biz-grid-bar{background:var(--zip-input-bg)!important}
.biz-tools-root .biz-grid-label,.biz-tools-root .biz-hvac-variance{color:var(--zip-text-muted)!important}
.biz-tools-root .biz-hvac-reading,.biz-tools-root .biz-insight-text,.biz-tools-root .biz-section-heading{color:var(--zip-text-primary)!important}
.biz-tools-root .biz-embed-frame{background:var(--zip-card);border-color:var(--zip-green-border)!important}
.biz-tools-root .biz-embed-button{background:var(--zip-green)!important;color:var(--zip-enroll-text)!important}
.biz-tools-root .biz-ai-insight{background:var(--zip-green-bg)!important;border-color:var(--zip-green-border)!important}

/* Grid Cockpit light styling applies only to the ZIP embed marker. */
html[data-zip-theme="light"] body { background: #FAF9F5 !important; color: #1A2B3C !important; }
html[data-zip-theme="light"] #top-brand-bar { background: rgba(255,255,255,0.96) !important; border-bottom-color: #B8D8BD !important; }
html[data-zip-theme="light"] #top-brand-bar a,
html[data-zip-theme="light"] h1,
html[data-zip-theme="light"] .fuel-mix-title,
html[data-zip-theme="light"] .fuel-mix-headline,
html[data-zip-theme="light"] .forecast-title,
html[data-zip-theme="light"] .quad-value { color: #166534 !important; }
html[data-zip-theme="light"] input { background: #FFFDF9 !important; border-color: #B8D8BD !important; color: #1A2B3C !important; }
html[data-zip-theme="light"] button { background: #166534 !important; color: #FFFFFF !important; }
html[data-zip-theme="light"] .beacon-card,
html[data-zip-theme="light"] .fuel-mix-section,
html[data-zip-theme="light"] .forecast-section,
html[data-zip-theme="light"] .threshold-section,
html[data-zip-theme="light"] .hvac-stress-card { background: #FFFFFF !important; border-color: #B8D8BD !important; }
html[data-zip-theme="light"] .beacon-header,
html[data-zip-theme="light"] .cockpit-grid,
html[data-zip-theme="light"] .ai-insight-banner { background: #F7F8F4 !important; border-color: #E5DFD5 !important; }
html[data-zip-theme="light"] .cockpit-quad,
html[data-zip-theme="light"] .snapshot-stat { background: #FFFFFF !important; border-color: #D6E5D8 !important; }
html[data-zip-theme="light"] .quad-label,
html[data-zip-theme="light"] .quad-subtext,
html[data-zip-theme="light"] .fuel-mix-label,
html[data-zip-theme="light"] .fuel-mix-mw,
html[data-zip-theme="light"] .stress-message,
html[data-zip-theme="light"] .beacon-header,
html[data-zip-theme="light"] #dailySummaryText { color: #526273 !important; }
html[data-zip-theme="light"] .load-bar,
html[data-zip-theme="light"] .threshold-bar,
html[data-zip-theme="light"] .stress-gauge,
html[data-zip-theme="light"] .forecast-chart,
html[data-zip-theme="light"] .fuel-mix-bar-wrap { background: #EEF2ED !important; }
html[data-zip-theme="light"] .beacon-ring.green { box-shadow: 0 0 24px rgba(22,101,52,0.22); }
html[data-zip-theme="light"] footer,
html[data-zip-theme="light"] footer > div > div { border-color: #E5DFD5 !important; }
html[data-zip-theme="light"] footer,
html[data-zip-theme="light"] footer h3,
html[data-zip-theme="light"] footer p { color: #687789 !important; }
html[data-zip-theme="light"] footer a { color: #166534 !important; }
/* Grid Cockpit's broad light button rule must not recolor the canonical
 * theme selector. Keep this header control in the shared neutral language. */
html[data-zip-theme="light"] .site-theme-segment {
  background: var(--theme-control-inactive-bg) !important;
  border-color: var(--theme-control-border) !important;
}
html[data-zip-theme="light"] .site-theme-segment button:not(.active) {
  background: var(--theme-control-inactive-bg) !important;
  color: var(--theme-control-inactive-fg) !important;
}
html[data-zip-theme="light"] .site-theme-segment button.active {
  background: var(--theme-control-active-bg) !important;
  color: var(--theme-control-active-fg) !important;
  border-color: var(--theme-control-active-bg) !important;
}