/* Tesla Powerwall — product-page language
   https://www.tesla.com/powerwall */

.pw-page {
  --pw-bg: #000;
  --pw-text: #fff;
  --pw-muted: rgba(255, 255, 255, 0.55);
  --pw-faint: rgba(255, 255, 255, 0.35);
  --pw-blue: #3e6ae1;
  --pw-blue-hover: #3457b1;
  --pw-energy: #3dff3d;
  --pw-line: rgba(255, 255, 255, 0.14);
  --pw-line-faint: rgba(255, 255, 255, 0.08);
  --pw-max: 1100px;
  background: var(--pw-bg);
  color: var(--pw-text);
  font-family: 'Manrope', system-ui, sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

.web-root.tesla-mp-root,
.web-root.tesla-land-root,
.tesla-mp-root { background: #000 !important; color: #fff; min-height: 100vh; }
.web-root.tesla-land-root .pw-hero-scene { padding-top: calc(56px + 32px); }
.tesla-mp-root .tesla-mp-wrap { max-width: none; padding: 0; }

/* top bar */
.pw-topbar {
  position: sticky; top: 0; z-index: 50; height: 56px;
  display: grid; grid-template-columns: 80px 1fr 80px; align-items: center;
  padding: 0 16px; background: #000; border-bottom: 1px solid var(--pw-line-faint);
}
.pw-topbar-title { text-align: center; font-size: 14px; font-weight: 500; color: var(--pw-text); }
.pw-topbar-btn {
  background: none; border: none; color: var(--pw-muted); cursor: pointer;
  font-family: inherit; font-size: 14px; font-weight: 500; padding: 8px;
  display: inline-flex; align-items: center; justify-content: center;
}
.pw-topbar-btn:hover { color: #fff; }
.pw-topbar-btn.right { justify-self: end; }

/* buttons */
.pw-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 40px; padding: 0 24px; border-radius: 4px; font-family: inherit;
  font-size: 14px; font-weight: 500; cursor: pointer; border: none;
  transition: background .15s, border-color .15s; white-space: nowrap;
  text-decoration: none;
}
a.pw-btn.primary { color: #fff; }
.pw-btn.primary { background: var(--pw-blue); color: #fff; min-width: 140px; }
.pw-btn.primary:hover { background: var(--pw-blue-hover); }
.pw-btn:disabled { opacity: 0.45; pointer-events: none; cursor: not-allowed; }
.pw-btn.ghost {
  background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, 0.65);
  min-width: 140px;
}
.pw-btn.ghost:hover { border-color: #fff; }
.pw-btn.sm { height: 36px; padding: 0 18px; min-width: 100px; font-size: 13px; border-radius: 4px; }
.pw-btn.in-cart { background: transparent; border: 2px solid var(--pw-line); color: var(--pw-text); }

/* cinematic hero */
.pw-hero-scene {
  position: relative; min-height: min(88vh, 820px);
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  overflow: hidden; text-align: center; padding: 48px 24px 0;
}
.pw-hero-bg {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 90% 55% at 50% 100%, rgba(255, 140, 60, 0.22) 0%, transparent 55%),
    radial-gradient(ellipse 120% 80% at 50% 0%, rgba(30, 60, 120, 0.45) 0%, transparent 50%),
    linear-gradient(180deg, #0a0e18 0%, #000 42%, #000 100%);
}
.pw-hero-bg::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 40% at 50% 85%, rgba(0, 0, 0, 0.5) 0%, transparent 70%);
}
.pw-hero-content {
  position: relative; z-index: 2; max-width: 560px; padding-top: 24px;
}
.pw-hero-kicker {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.38);
  margin: 0 0 14px;
}
.pw-hero-title {
  font-family: 'Manrope', system-ui, sans-serif; font-size: clamp(44px, 7vw, 64px);
  font-weight: 600; letter-spacing: -.03em; line-height: 1.02; margin: 0;
}
.pw-hero-logo {
  display: flex; justify-content: center; margin: 0 auto;
}
.pw-hero-logo .xolaar-wordmark {
  height: clamp(40px, 7vw, 56px) !important;
  width: auto !important;
}
.pw-hero-sub {
  font-size: 15px; font-weight: 400; color: var(--pw-muted); line-height: 1.55;
  max-width: 420px; margin: 14px auto 0;
}
.pw-hero-cta {
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 28px;
}
.pw-hero-cta .pw-btn,
.pw-cross .pw-hero-cta .pw-btn {
  border-radius: 999px; height: 44px; min-width: 160px;
}

/* marketing heroes — same gradient blend as homepage, shorter band */
.pw-marketing-hero {
  min-height: auto;
  padding: calc(56px + 48px) 24px 48px;
  text-align: center;
}
.pw-marketing-hero.compact {
  padding-bottom: 28px;
}
.pw-marketing-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 640px;
  margin: 0 auto;
  width: 100%;
}
.pw-marketing-hero .pw-charging-kicker {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #7eb4ff;
  margin-bottom: 12px;
}
.pw-marketing-hero .pw-charging-title {
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 500;
  letter-spacing: -.02em;
  line-height: 1.15;
  margin: 0;
}
.pw-marketing-hero .pw-charging-lead {
  font-size: 16px;
  color: var(--pw-muted);
  margin-top: 14px;
  line-height: 1.55;
}
.pw-marketing-hero .pw-energy-hero-graph {
  max-width: 720px;
  margin: 24px auto 0;
  opacity: .85;
}

/* full-page gradient canvas (assessment, auth) */
.pw-page-canvas {
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  background: #000;
  color: #fff;
}
.pw-page-canvas-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.pw-page-canvas-content {
  position: relative;
  z-index: 1;
}
.pw-assessment-flow .pw-wizard-top {
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom-color: var(--pw-line-faint);
}
.pw-assessment-paths {
  margin-bottom: 8px;
}
.pw-assessment-flow .pw-marketing-hero.compact.pw-assessment-hero {
  padding-bottom: 20px;
}
.pw-assessment-flow .pw-assessment-hero .pw-marketing-hero-inner {
  max-width: min(900px, 92vw);
}
.pw-assessment-flow .pw-assessment-hero .pw-charging-title {
  font-size: clamp(26px, 3.4vw, 36px);
}
.pw-assessment-flow .pw-assessment-hero .pw-charging-lead {
  max-width: none;
}
.pw-path-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.pw-path-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  text-align: left;
  cursor: pointer;
  width: 100%;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 14px;
  color: #fff;
  font-family: inherit;
  transition: border-color 0.2s, background 0.2s;
}
.pw-path-card:hover:not(.disabled) {
  border-color: rgba(62, 110, 225, 0.35);
  background: rgba(255, 255, 255, 0.05);
}
.pw-path-card.selected {
  background: rgba(62, 110, 225, 0.12);
  border-color: var(--pw-blue);
}
.pw-path-card.disabled {
  opacity: 0.58;
}
.pw-path-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
}
.pw-path-card.selected .pw-path-icon {
  background: var(--pw-blue);
}
.pw-path-copy {
  flex: 1;
  min-width: 0;
}
.pw-path-title {
  font-weight: 600;
  font-size: 15px;
  color: #fff;
  line-height: 1.3;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.pw-path-soon {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.38);
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-path-sub {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.45);
  margin-top: 3px;
  line-height: 1.4;
}
.pw-path-indicator {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pw-path-indicator.on {
  background: var(--pw-blue);
  border-radius: 999px;
}
.pw-assessment-goals {
  margin-top: 36px;
  padding-top: 32px;
  border-top: 1px solid var(--pw-line-faint);
}
.pw-assessment-goals-heading {
  text-align: center;
  margin-bottom: 24px;
}
.pw-assessment-goals-title {
  font-size: clamp(20px, 3vw, 26px);
  font-weight: 600;
  color: #fff;
  margin: 0;
  letter-spacing: -.02em;
}
.pw-assessment-goals-sub {
  font-size: 15px;
  color: var(--pw-muted);
  margin: 10px auto 0;
  max-width: 480px;
  line-height: 1.5;
}
@media (max-width: 1100px) {
  .pw-path-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .pw-path-grid { grid-template-columns: 1fr; }
}
.pw-analyzing-stage {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 36px;
  padding: 48px 24px;
}
.pw-analyzing-canvas h2 {
  font-size: 30px;
  color: #fff;
  text-align: center;
  margin: 0;
}

/* product silhouette — Powerwall unit */
.pw-hero-product {
  position: relative; z-index: 1; flex: 1; display: flex; align-items: flex-end;
  justify-content: center; width: 100%; margin-top: 32px; min-height: 280px;
}
.pw-unit {
  position: relative;
  width: clamp(150px, 20vw, 200px);
  display: flex; flex-direction: column; gap: clamp(6px, 0.8vw, 9px);
  filter: drop-shadow(0 40px 80px rgba(0, 0, 0, 0.6));
}
.pw-unit-module {
  position: relative;
  background: linear-gradient(165deg, #fbfbfb 0%, #eeeeee 45%, #dcdcdc 100%);
  border-radius: clamp(10px, 1.4vw, 16px);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12) inset, 0 -8px 24px rgba(0, 0, 0, 0.06) inset;
}
.pw-unit-module.main {
  height: clamp(180px, 26vh, 250px);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: clamp(12px, 1.8vh, 20px);
  padding: clamp(14px, 2vh, 22px) 0;
}
.pw-unit-module.slab {
  height: clamp(105px, 15vh, 145px);
  background: linear-gradient(170deg, #ffffff 0%, #f1f1f1 50%, #e2e2e2 100%);
}
.pw-unit-module.slab::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -5px; height: 10px;
  border-radius: 0 0 clamp(10px, 1.4vw, 16px) clamp(10px, 1.4vw, 16px);
  background: linear-gradient(180deg, #cfcfcf, #b9b9b9);
  z-index: -1;
}
.pw-unit-screen {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 10px; border-radius: 10px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14), 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}
.pw-unit-gauge { position: relative; width: 34px; height: 34px; display: inline-flex; }
.pw-unit-gauge-svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.pw-unit-gauge-track { fill: none; stroke: #e7e9ec; stroke-width: 3.4; }
.pw-unit-gauge-fill { fill: none; stroke: #2fbf71; stroke-width: 3.4; stroke-linecap: round; }
.pw-unit-gauge-val {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 9px; font-weight: 800; color: #1c1f24;
}
.pw-unit-bars { display: inline-flex; align-items: flex-end; gap: 3px; height: 24px; }
.pw-unit-bars i { width: 4px; border-radius: 2px; display: block; }
.pw-unit-oval {
  width: clamp(40px, 5vw, 52px); height: clamp(26px, 3.2vw, 34px);
  border-radius: 999px;
  background: linear-gradient(165deg, #f2f2f2, #e0e0e0);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.85), 0 0 14px rgba(255, 255, 255, 0.7),
    0 2px 6px rgba(0, 0, 0, 0.12) inset;
}
.pw-unit-brand {
  font-size: clamp(11px, 1.3vw, 14px); font-weight: 700;
  letter-spacing: 0.42em; text-indent: 0.42em;
  color: #4a4f57;
  font-family: system-ui, -apple-system, sans-serif;
}
.pw-hero-product .pw-unit-img {
  max-height: clamp(280px, 42vh, 400px); width: auto; max-width: min(280px, 50vw);
  object-fit: contain; filter: drop-shadow(0 40px 80px rgba(0, 0, 0, 0.6));
}

/* legacy simple hero (inner pages) */
.pw-hero {
  text-align: center; padding: 72px 24px 48px;
  min-height: min(52vh, 480px); display: flex; flex-direction: column;
  align-items: center; justify-content: center;
}

/* stats */
.pw-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
  max-width: var(--pw-max); margin: 0 auto; padding: 56px 24px 32px;
}
.pw-stat { text-align: center; }
.pw-stat-val {
  font-size: clamp(28px, 4vw, 40px); font-weight: 600; letter-spacing: -.02em;
  line-height: 1; color: var(--pw-text);
}
.pw-stat-val.energy { color: var(--pw-energy); }
.pw-stat-lbl {
  font-size: 12px; font-weight: 400; color: var(--pw-faint); margin-top: 10px;
  line-height: 1.35;
}

/* energy graph band */
.pw-energy {
  max-width: var(--pw-max); margin: 0 auto; padding: 0 24px 56px;
  border-bottom: 1px solid var(--pw-line-faint);
}
.pw-energy-graph {
  width: 100%; height: auto; display: block; margin: 8px 0 32px;
}
.pw-energy-captions {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
.pw-energy-cap {
  font-size: 11px; font-weight: 400; color: var(--pw-faint); line-height: 1.45;
}

/* section nav */
.pw-nav {
  display: flex; justify-content: center; gap: 32px; padding: 28px 24px 24px;
  border-bottom: 1px solid var(--pw-line-faint); max-width: var(--pw-max); margin: 0 auto;
}
.pw-nav-link {
  background: none; border: none; border-bottom: 2px solid transparent;
  padding: 0 0 12px; margin-bottom: -1px; cursor: pointer;
  font-family: inherit; font-size: 14px; font-weight: 500; color: var(--pw-muted);
  transition: color .15s, border-color .15s;
}
.pw-nav-link:hover { color: #fff; }
.pw-nav-link.active { color: #fff; border-bottom-color: var(--pw-blue); }

/* content shell */
.pw-main { max-width: var(--pw-max); margin: 0 auto; padding: 0 24px 140px; }

/* lifestyle band */
.pw-band {
  text-align: center; padding: 72px 24px; border-bottom: 1px solid var(--pw-line-faint);
}
.pw-band-visual {
  min-height: 220px; margin-bottom: 28px; border-radius: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, transparent 100%);
  display: flex; align-items: center; justify-content: center;
}
.pw-band-title { font-size: clamp(22px, 3vw, 28px); font-weight: 500; letter-spacing: -.01em; }
.pw-band-sub {
  font-size: 14px; color: var(--pw-muted); margin-top: 12px; max-width: 480px;
  margin-left: auto; margin-right: auto; line-height: 1.55;
}

/* filters */
.pw-filters { padding: 40px 0 8px; }
.pw-search {
  width: 100%; height: 44px; padding: 0 0 8px; border: none;
  border-bottom: 1px solid var(--pw-line); background: transparent; color: #fff;
  font-family: inherit; font-size: 14px; font-weight: 400; outline: none; border-radius: 0;
}
.pw-search:focus { border-bottom-color: var(--pw-blue); }
.pw-search::placeholder { color: var(--pw-faint); }
.pw-filter-row { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; }
.pw-filter-link {
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: inherit; font-size: 13px; font-weight: 500; color: var(--pw-muted);
  transition: color .15s;
}
.pw-filter-link:hover { color: #fff; }
.pw-filter-link.active { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.pw-count { font-size: 12px; color: var(--pw-faint); margin: 28px 0 0; font-weight: 400; }

/* spec table — Tesla technical specs (text only) */
.pw-spec-table { margin-top: 8px; }
.pw-spec-section {
  padding: 28px 0 8px; font-size: 13px; font-weight: 600; color: #fff;
  border-top: 1px solid var(--pw-line);
}
.pw-spec-section:first-child { border-top: none; padding-top: 16px; }
.pw-spec-row {
  display: grid; grid-template-columns: 1fr auto auto; gap: 24px 16px;
  align-items: baseline; padding: 14px 0;
  border-bottom: 1px solid var(--pw-line-faint);
}
.pw-spec-row:last-child { border-bottom: none; }
.pw-spec-name { font-size: 14px; font-weight: 400; color: #fff; line-height: 1.35; }
.pw-spec-meta { font-size: 13px; font-weight: 400; color: var(--pw-muted); margin-top: 4px; line-height: 1.4; }
.pw-spec-cat { display: none; }
.pw-spec-price { font-size: 14px; font-weight: 400; color: #fff; text-align: right; white-space: nowrap; }
.pw-spec-action { flex-shrink: 0; }

/* installation kit — Tesla spec table */
.pw-kit-spec { margin-top: 4px; }
.pw-kit-site {
  display: flex; flex-wrap: wrap; gap: 6px 18px; margin-bottom: 20px;
  padding-bottom: 16px; border-bottom: 1px solid var(--pw-line-faint);
}
.pw-kit-site-chip {
  font-size: 12px; font-weight: 500; color: var(--pw-muted);
  display: inline-flex; align-items: center; gap: 6px;
}
.pw-kit-site-chip .ms { font-size: 14px !important; opacity: 0.55; }
.pw-kit-row {
  display: grid; grid-template-columns: 52px 1fr auto;
  gap: 16px 28px; align-items: start;
  padding: 22px 0; border-bottom: 1px solid var(--pw-line-faint);
}
.pw-kit-row:last-child { border-bottom: none; }
.pw-kit-row.compact { grid-template-columns: 40px 1fr auto; padding: 14px 0; gap: 12px 20px; }
.pw-kit-thumb {
  width: 52px; height: 52px; flex-shrink: 0;
  background: rgba(255, 255, 255, 0.04); border-radius: 6px;
  overflow: hidden; display: flex; align-items: center; justify-content: center;
}
.pw-kit-row.compact .pw-kit-thumb { width: 40px; height: 40px; }
.pw-kit-thumb button {
  width: 100% !important; height: 100% !important;
  border: none !important; border-radius: 6px !important;
  background: transparent !important; box-shadow: none !important;
}
.pw-kit-thumb img {
  object-fit: contain !important; padding: 4px;
  background: rgba(255, 255, 255, 0.03);
}
.pw-kit-thumb [style*="zoom_in"] { opacity: 0.5; }
.pw-kit-name { font-size: 14px; font-weight: 500; color: #fff; line-height: 1.35; letter-spacing: -.01em; }
.pw-kit-meta { font-size: 13px; font-weight: 400; color: var(--pw-muted); margin-top: 5px; line-height: 1.5; }
.pw-kit-reason { font-size: 12px; font-weight: 400; color: var(--pw-faint); margin-top: 6px; line-height: 1.45; }
.pw-kit-side { text-align: right; min-width: 88px; }
.pw-kit-qty { font-size: 13px; font-weight: 400; color: var(--pw-muted); white-space: nowrap; }
.pw-kit-price { font-size: 14px; font-weight: 500; color: #fff; margin-top: 6px; letter-spacing: -.01em; }
.pw-kit-unit-price { font-size: 12px; font-weight: 400; color: var(--pw-faint); margin-top: 3px; }
.pw-kit-total {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 28px 0 4px; margin-top: 4px;
  border-top: 1px solid var(--pw-line);
}
.pw-kit-total-lbl { font-size: 14px; font-weight: 500; color: #fff; }
.pw-kit-total-val { font-size: 20px; font-weight: 500; color: #fff; letter-spacing: -.02em; }

@media (max-width: 640px) {
  .pw-kit-row { grid-template-columns: 44px 1fr; gap: 12px 16px; }
  .pw-kit-side { grid-column: 2; text-align: left; margin-top: 4px; min-width: 0; }
  .pw-kit-thumb { width: 44px; height: 44px; }
}

/* report — carbon impact */
.pw-carbon-card {
  padding: 24px 0 8px;
  border-top: 1px solid var(--pw-line-faint);
}
.pw-carbon-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.pw-carbon-title { font-size: 14px; font-weight: 500; color: #fff; letter-spacing: -.01em; }
.pw-carbon-msg { font-size: 14px; line-height: 1.55; color: var(--pw-muted); margin: 0 0 20px; max-width: 520px; }
.pw-carbon-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.pw-carbon-stat {
  padding: 16px; border-radius: 12px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-carbon-stat-lbl { font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--pw-faint); }
.pw-carbon-stat-val { font-size: 22px; font-weight: 500; color: #fff; margin-top: 6px; letter-spacing: -.02em; }
.pw-carbon-stat-val.energy { color: #3dd68c; }
.pw-carbon-note { font-size: 12.5px; line-height: 1.45; color: var(--pw-faint); margin: 0; }
.pw-carbon-caption { font-size: 13px; color: var(--pw-faint); margin-top: 12px; line-height: 1.45; }

/* report — confidence factors */
.pw-confidence-list { margin-top: 4px; }
.pw-confidence-row {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 16px 0; border-bottom: 1px solid var(--pw-line-faint);
}
.pw-confidence-row:last-child { border-bottom: none; }
.pw-confidence-label {
  display: flex; align-items: center; gap: 12px;
  font-size: 14px; font-weight: 500; color: #fff;
}
.pw-confidence-val { font-size: 14px; font-weight: 500; color: var(--pw-muted); flex-shrink: 0; }
.pw-confidence-val.ok { color: #3dd68c; }
.pw-confidence-val.warn { color: #f5a524; }

@media (max-width: 640px) {
  .pw-carbon-stats { grid-template-columns: 1fr; }
}

/* builder */
.pw-builder { min-height: 100vh; background: #000; color: #fff; }
.pw-builder-split {
  display: grid; grid-template-columns: 1.15fr 1fr; min-height: 100vh;
}
.pw-builder-preview {
  position: sticky; top: 0; height: 100vh;
  background: #000; border-right: 1px solid var(--pw-line-faint);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.pw-builder-preview-inner { position: relative; width: 100%; max-width: 560px; padding: 40px; text-align: center; }
.pw-builder-preview-inner .pw-system-chips { margin-top: 24px; }
.pw-builder-preview-title {
  font-size: 20px; font-weight: 500; color: #fff; margin-bottom: 20px;
  letter-spacing: -.02em; text-transform: capitalize;
}
.pw-builder-preview-inner .pw-equip-preview-row { justify-content: center; }
/* shared system render preview (builder + checkout) */
.pw-system-render {
  width: 100%; border-radius: 16px;
  background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08);
  background-image: repeating-linear-gradient(135deg, rgba(62, 110, 225, 0.07) 0 12px, transparent 12px 24px);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  position: relative; overflow: hidden;
}
.pw-system-render.tall { height: 340px; margin-bottom: 0; }
.pw-system-chips { margin-top: 24px; }
.pw-system-preview-inner {
  position: relative; z-index: 1; width: 100%; padding: 32px 28px 28px; text-align: center;
}

/* checkout — real equipment preview (replaces empty render placeholder) */
.pw-equip-preview { width: 100%; }
.pw-equip-preview-row {
  display: flex; justify-content: center; align-items: flex-start; gap: 16px; flex-wrap: wrap;
}
.pw-equip-preview-item {
  flex: 1; min-width: 100px; max-width: 160px;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.pw-equip-preview-thumb button {
  width: 88px !important; height: 88px !important;
  border: none !important; border-radius: 12px !important;
  background: rgba(255, 255, 255, 0.06) !important;
}
.pw-equip-preview-thumb img { object-fit: contain !important; padding: 6px; }
.pw-equip-preview-name {
  font-size: 12px; font-weight: 600; color: #fff; text-align: center; line-height: 1.3;
}
.pw-equip-preview-meta { font-size: 11px; font-weight: 500; color: var(--pw-muted); text-align: center; }
.pw-equip-preview .pw-system-chips { margin-top: 20px; }
.pw-system-render-lbl {
  font-size: 12px; font-weight: 500; color: var(--pw-faint);
  padding: 6px 12px; border-radius: 999px; border: 1px dashed rgba(255, 255, 255, 0.15);
}
.pw-system-chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.pw-system-chip {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px;
  border-radius: 999px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 13px; font-weight: 500; color: #fff;
}
.pw-builder-config {
  background: #000; display: flex; flex-direction: column; min-height: 100vh; min-width: 0;
}
.pw-builder-scroll { flex: 1; overflow-y: auto; padding: 32px 44px 20px; max-width: 620px; width: 100%; }
.pw-builder-back {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px;
  background: none; border: none; cursor: pointer; font-family: inherit;
  font-size: 14px; font-weight: 500; color: var(--pw-muted); padding: 0;
}
.pw-builder-back:hover { color: #fff; }
.pw-builder-lead { font-size: 15px; color: var(--pw-muted); margin-top: 10px; line-height: 1.5; }
.pw-builder-pkgs { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; }
.pw-builder-pkg {
  display: flex; align-items: center; gap: 18px; width: 100%; text-align: left;
  padding: 20px 22px; border-radius: 16px; cursor: pointer; font-family: inherit;
  background: rgba(255, 255, 255, 0.04); border: 1.5px solid rgba(255, 255, 255, 0.1);
  color: #fff; transition: border-color .15s, background .15s;
}
.pw-builder-pkg:hover { border-color: rgba(62, 110, 225, 0.35); }
.pw-builder-pkg.selected { background: rgba(62, 110, 225, 0.14); border-color: var(--pw-blue); }
.pw-builder-pkg-name { font-weight: 600; font-size: 17px; color: #fff; }
.pw-builder-pkg-tag { font-size: 10px; font-weight: 700; letter-spacing: .06em; color: #fff; background: var(--pw-blue); padding: 3px 8px; border-radius: 999px; }
.pw-builder-pkg-sub { font-size: 13px; color: var(--pw-muted); margin-top: 3px; }
.pw-builder-pkg-brands { font-size: 12px; color: var(--pw-faint); margin-top: 6px; font-weight: 500; }
.pw-builder-pkg-price { font-size: 20px; font-weight: 500; color: #fff; letter-spacing: -.02em; }
.pw-builder-pkg-check {
  width: 22px; height: 22px; border-radius: 999px; margin-left: auto; margin-top: 8px;
  border: 2px solid rgba(255, 255, 255, 0.2); display: flex; align-items: center; justify-content: center;
}
.pw-builder-pkg.selected .pw-builder-pkg-check { background: var(--pw-blue); border: none; }
.pw-builder-comps { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.pw-builder-comp {
  display: flex; align-items: center; gap: 16px; width: 100%; text-align: left;
  padding: 16px 18px; border-radius: 14px; cursor: pointer; font-family: inherit;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1); color: #fff;
  transition: border-color .15s;
}
.pw-builder-comp:hover { border-color: rgba(62, 110, 225, 0.35); }
.pw-builder-comp-lbl { font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--pw-faint); }
.pw-builder-comp-name { font-size: 15px; font-weight: 600; color: #fff; margin-top: 2px; }
.pw-builder-comp-meta { font-size: 13px; color: #7eb4ff; font-weight: 500; margin-top: 2px; }
.pw-builder-comp-action { font-size: 13px; font-weight: 500; color: var(--pw-muted); display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.pw-builder-comp-thumb button {
  border: none !important; background: rgba(255, 255, 255, 0.06) !important; border-radius: 10px !important;
}
.pw-builder-kit-lead { font-size: 14px; color: var(--pw-muted); margin-bottom: 14px; line-height: 1.45; }
.pw-builder-fit {
  margin-top: 22px; padding: 16px; border-radius: 12px; display: flex; align-items: flex-start; gap: 12px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-builder-fit.ok { border-color: rgba(61, 214, 140, 0.25); }
.pw-builder-fit.warn { border-color: rgba(245, 165, 36, 0.25); }
.pw-builder-fit-copy { font-size: 14px; font-weight: 500; color: var(--pw-muted); line-height: 1.45; }
.pw-builder-fit.ok .pw-builder-fit-copy { color: rgba(255, 255, 255, 0.85); }
.pw-builder-bar {
  position: sticky; bottom: 0; z-index: 10;
  background: rgba(0, 0, 0, 0.92); backdrop-filter: blur(16px);
  border-top: 1px solid var(--pw-line); padding: 18px 44px;
}
.pw-builder-bar-lbl { font-size: 12px; font-weight: 500; color: var(--pw-muted); }
.pw-builder-bar-price { font-size: 28px; font-weight: 500; color: #fff; letter-spacing: -.02em; margin-top: 2px; }
.pw-builder-bar-sub { font-size: 12px; color: var(--pw-faint); font-weight: 500; margin-top: 2px; }
.pw-builder-bar-cta { border-radius: 999px !important; height: 48px; padding: 0 28px !important; }

.pw-carbon-steps { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.pw-carbon-step {
  font-size: 12px; font-weight: 500; padding: 8px 14px; border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1); color: var(--pw-muted);
}
.pw-carbon-step.active { background: rgba(61, 214, 140, 0.12); border-color: rgba(61, 214, 140, 0.35); color: #3dd68c; }
.pw-carbon-step.done { color: #fff; border-color: rgba(255, 255, 255, 0.18); }
.pw-carbon-banner {
  padding: 18px; margin-bottom: 20px; border-radius: 14px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(61, 214, 140, 0.2);
}
.pw-carbon-banner-title { font-weight: 600; font-size: 14px; color: #fff; }
.pw-carbon-banner-msg { font-size: 13px; line-height: 1.5; color: var(--pw-muted); margin: 8px 0 10px; }
.pw-carbon-banner-stats { display: flex; flex-wrap: wrap; gap: 14px; font-size: 12px; font-weight: 500; color: #3dd68c; }

/* appliance scanner modal */
.appliance-scanner-overlay {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(0, 0, 0, 0.82); backdrop-filter: blur(10px);
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.appliance-scanner-panel {
  width: 100%; max-width: 560px; max-height: 90vh; overflow: auto;
  padding: 28px; border-radius: 16px;
  background: #0f0f0f; border: 1px solid rgba(255, 255, 255, 0.14);
  color: #fff; box-shadow: 0 24px 80px rgba(0, 0, 0, 0.6);
}
.pw-flow .appliance-scanner-panel .display-md { color: #fff; }
.pw-flow .appliance-scanner-panel [style*="color: var(--muted)"] { color: var(--pw-muted) !important; }
.appliance-scanner-result {
  background: rgba(255, 255, 255, 0.06); border-radius: 14px; padding: 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* premium graded appliance scanner */
.appliance-scanner-overlay.graded {
  background: rgba(0, 0, 0, 0.88);
  backdrop-filter: blur(12px);
}
.appliance-scanner-panel.graded {
  max-width: 480px;
  padding: 24px 22px 22px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(8, 8, 10, 0.98);
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.65);
}
.pw-scanner-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.pw-scanner-header .pw-assessment-step-badge {
  margin: 0 0 10px;
}
.pw-scanner-title {
  margin: 0;
  font-size: clamp(20px, 4vw, 24px);
  font-weight: 500;
  letter-spacing: -0.03em;
  color: #fff;
  line-height: 1.2;
}
.pw-scanner-close {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pw-scanner-close:hover {
  background: rgba(255, 255, 255, 0.1);
}
.pw-scanner-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  overflow-x: auto;
  scrollbar-width: none;
}
.pw-scanner-tabs::-webkit-scrollbar { display: none; }
.pw-scanner-tab {
  flex: 1 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 14px;
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.38);
  cursor: pointer;
  white-space: nowrap;
}
.pw-scanner-tab:hover {
  color: rgba(255, 255, 255, 0.7);
}
.pw-scanner-tab.active {
  color: #fff;
  border-bottom-color: rgba(255, 255, 255, 0.45);
}
.pw-scanner-section {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pw-scanner-lead {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.42);
}
.pw-scanner-modes {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.pw-scanner-mode {
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
  font-family: inherit;
  font-size: 11.5px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  cursor: pointer;
}
.pw-scanner-mode:hover {
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.75);
}
.pw-scanner-mode.active {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.9);
  box-shadow: inset 2px 0 0 rgba(255, 255, 255, 0.45);
}
.pw-scanner-upload,
.pw-scanner-apply {
  width: 100%;
  height: 44px;
  border-radius: 999px !important;
  font-size: 14px;
  font-weight: 500;
}
.pw-scanner-alert {
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.45;
}
.pw-scanner-alert.error {
  background: rgba(229, 72, 77, 0.1);
  border: 1px solid rgba(229, 72, 77, 0.25);
  color: #ff8a8f;
}
.pw-scanner-alert.warn {
  background: rgba(245, 165, 36, 0.1);
  border: 1px solid rgba(245, 165, 36, 0.25);
  color: #f5c542;
}
.appliance-scanner-result.graded {
  padding: 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-scanner-fallback-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 280px;
  overflow-y: auto;
}
.pw-scanner-option.graded {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  font-family: inherit;
  text-align: left;
  color: #fff;
  cursor: pointer;
}
.pw-scanner-option.graded:hover {
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.04);
}
.pw-scanner-option-label {
  font-size: 14px;
  font-weight: 500;
}
.pw-scanner-option-watts {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.42);
  font-weight: 500;
}
.pw-scanner-empty {
  margin: 0;
  padding: 8px 2px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.38);
}
.pw-scanner-manual {
  gap: 14px;
}
.pw-scanner-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pw-scanner-field-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.38);
}
.pw-scanner-input {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 10px !important;
  color: #fff !important;
}
.pw-scanner-input:focus {
  border-color: rgba(255, 255, 255, 0.22) !important;
  outline: none;
}
.pw-scanner-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.pw-builder-modal-overlay {
  position: fixed; inset: 0; z-index: 80;
  background: rgba(0, 0, 0, 0.72); backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.pw-builder-modal {
  width: 100%; max-width: 620px; max-height: 86vh; overflow-y: auto;
  background: #0a0a0a; border: 1px solid var(--pw-line); border-radius: 16px;
}
.pw-builder-modal-head {
  position: sticky; top: 0; z-index: 2; padding: 22px 24px 14px;
  background: #0a0a0a; border-bottom: 1px solid var(--pw-line-faint);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.pw-builder-modal-title { font-size: 22px; font-weight: 500; color: #fff; text-transform: capitalize; }
.pw-builder-modal-close {
  width: 40px; height: 40px; border-radius: 999px; border: none; cursor: pointer;
  background: rgba(255, 255, 255, 0.06); display: flex; align-items: center; justify-content: center;
}
.pw-builder-modal-body { padding: 20px 24px 24px; display: flex; flex-direction: column; gap: 10px; }
.pw-builder-modal-item {
  display: flex; align-items: center; gap: 16px; width: 100%; text-align: left;
  padding: 16px 18px; border-radius: 14px; cursor: pointer; font-family: inherit;
  background: rgba(255, 255, 255, 0.04); border: 1.5px solid rgba(255, 255, 255, 0.1); color: #fff;
}
.pw-builder-modal-item.selected { background: rgba(62, 110, 225, 0.14); border-color: var(--pw-blue); }
.pw-builder-modal-item-brand { font-weight: 600; font-size: 15px; }
.pw-builder-modal-item-tier { font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--pw-muted); }
.pw-builder-modal-item-tier.recommended { color: #7eb4ff; }
.pw-builder-modal-item-tier.premium { color: #b794f6; }
.pw-builder-modal-item-meta { font-size: 13px; color: var(--pw-muted); font-weight: 500; margin-top: 2px; }
.pw-builder-modal-item-warranty { font-size: 12px; color: var(--pw-faint); margin-top: 2px; }
.pw-builder-modal-qty {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 18px 20px; border-radius: 14px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-builder-modal-qty-title { font-weight: 600; font-size: 15px; color: #fff; text-transform: capitalize; }
.pw-builder-modal-qty-sub { font-size: 13px; color: var(--pw-muted); margin-top: 2px; }

/* checkout */
.pw-checkout-page { padding-bottom: 48px; }
.pw-checkout-grid {
  display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: start;
}
.pw-checkout-hero {
  overflow: hidden; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-checkout-hero-visual {
  position: relative; overflow: hidden;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: #000;
}
.pw-checkout-energy-visual {
  width: 100%;
  max-width: 380px;
  margin: 0 auto;
}
.pw-checkout-energy-visual .pw-energy-visual-stage {
  min-height: 280px;
}
.pw-checkout-energy-visual .pw-xolaar-rig.tower {
  transform: scale(0.92);
  transform-origin: center top;
}
.pw-checkout-energy-visual .pw-xolaar-rig.portable {
  transform: scale(0.95);
  transform-origin: center center;
}

/* compact product previews — dashboard cards & hub */
.pw-energy-product-preview { width: 100%; }
.pw-energy-visual-mini .pw-energy-visual-stage { min-height: 108px; padding: 4px 0; }
.pw-energy-visual-mini .pw-xolaar-rig.tower { transform: scale(0.52); transform-origin: center top; margin-bottom: -48px; }
.pw-energy-visual-mini .pw-xolaar-rig.portable { transform: scale(0.58); transform-origin: center center; margin-bottom: -12px; }
.pw-energy-visual-mini .pw-energy-visual-floor { opacity: 0.35; height: 8px; }

.pw-energy-visual-card .pw-energy-visual-stage { min-height: 160px; padding: 8px 0 4px; }
.pw-energy-visual-card .pw-xolaar-rig.tower,
.pw-energy-visual-card .pw-xolaar-rig.portable { transform: scale(0.72); transform-origin: center center; }
.pw-energy-visual-card .pw-xolaar-rig.tower { margin-bottom: 0; }
.pw-energy-visual-card .pw-energy-visual-meta { margin-top: 4px; padding: 0 8px 6px; }
.pw-energy-visual-card .pw-energy-visual-name { font-size: 13px; }
.pw-energy-visual-card .pw-energy-visual-casing { font-size: 11px; }
.pw-checkout-hero-body { padding: 22px 24px; }
.pw-checkout-hero-title { font-size: 22px; font-weight: 500; color: #fff; text-transform: capitalize; }
.pw-checkout-hero-meta { font-size: 14px; color: var(--pw-muted); margin-top: 4px; }
.pw-checkout-hero-loc { font-size: 13px; color: var(--pw-faint); font-weight: 500; margin-top: 6px; }
.pw-checkout-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.pw-checkout-chip {
  font-size: 12px; font-weight: 500; color: var(--pw-muted);
  padding: 6px 12px; border-radius: 999px;
  background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-checkout-edit {
  height: 36px; border-radius: 999px !important;
  border-color: rgba(255, 255, 255, 0.2) !important; color: var(--pw-muted) !important;
}
.pw-checkout-section-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px;
}
.pw-checkout-cart-count { font-size: 12px; font-weight: 600; color: #3dd68c; display: flex; align-items: center; gap: 6px; }
.pw-checkout-addons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pw-checkout-addon {
  padding: 18px; text-align: left; cursor: pointer; width: 100%; font-family: inherit;
  border-radius: 14px; background: rgba(255, 255, 255, 0.04); border: 1.5px solid rgba(255, 255, 255, 0.1);
  color: #fff; transition: border-color .15s, background .15s;
}
.pw-checkout-addon:hover { border-color: rgba(62, 110, 225, 0.35); }
.pw-checkout-addon.selected { background: rgba(62, 110, 225, 0.14); border-color: var(--pw-blue); }
.pw-checkout-addon-name { font-weight: 600; font-size: 14px; color: #fff; margin-top: 10px; }
.pw-checkout-addon-sub { font-size: 12.5px; color: var(--pw-muted); margin-top: 2px; }
.pw-checkout-addon-price { font-weight: 600; font-size: 14px; color: #fff; margin-top: 10px; }
.pw-checkout-summary {
  position: sticky; top: 72px; padding: 24px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-checkout-summary-title { font-weight: 600; font-size: 16px; color: #fff; }
.pw-checkout-summary-row {
  display: flex; justify-content: space-between; gap: 12px; padding: 8px 0;
  font-size: 14px;
}
.pw-checkout-summary-lbl { color: var(--pw-muted); font-weight: 500; max-width: 62%; }
.pw-checkout-summary-val { color: #fff; font-weight: 500; flex-shrink: 0; }
.pw-checkout-summary-total {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-top: 12px; margin-top: 8px; border-top: 1px solid var(--pw-line-faint);
}
.pw-checkout-summary-total-lbl { font-weight: 600; font-size: 16px; color: #fff; }
.pw-checkout-summary-total-val { font-size: 24px; font-weight: 500; color: #fff; }
.pw-checkout-savings {
  margin-top: 16px; padding: 12px; border-radius: 12px;
  background: rgba(61, 214, 140, 0.1); border: 1px solid rgba(61, 214, 140, 0.2);
  font-size: 13px; font-weight: 500; color: #3dd68c;
  display: flex; align-items: center; gap: 8px;
}
.pw-checkout-cta { width: 100%; margin-top: 18px; border-radius: 999px !important; height: 48px; }
.pw-checkout-summary-error {
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(229, 72, 77, 0.12);
  border: 1px solid rgba(229, 72, 77, 0.3);
  color: #ff8a8f;
  font-size: 13px;
  line-height: 1.45;
}

/* financing */
.pw-financing-page { padding-bottom: 48px; }
.pw-financing-grid {
  display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: start;
}
.pw-financing-green-banner {
  padding: 20px 22px; border-radius: 14px; margin-bottom: 20px;
  background: rgba(61, 214, 140, 0.08); border: 1px solid rgba(61, 214, 140, 0.22);
}
.pw-financing-green-title { font-weight: 600; font-size: 15px; color: #fff; }
.pw-financing-green-copy { font-size: 14px; line-height: 1.5; color: var(--pw-muted); margin: 0; }
.pw-financing-options { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
.pw-financing-option {
  display: flex; align-items: flex-start; gap: 16px; width: 100%; text-align: left;
  padding: 20px; border-radius: 14px; cursor: pointer; font-family: inherit;
  background: rgba(255, 255, 255, 0.04); border: 1.5px solid rgba(255, 255, 255, 0.1); color: #fff;
  transition: border-color .15s, background .15s;
}
.pw-financing-option:hover { border-color: rgba(62, 110, 225, 0.35); }
.pw-financing-option.selected { background: rgba(62, 110, 225, 0.14); border-color: var(--pw-blue); }
.pw-financing-option-icon {
  width: 48px; height: 48px; border-radius: 12px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.pw-financing-option-name { font-weight: 600; font-size: 16px; color: #fff; }
.pw-financing-option-tag {
  font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  color: #fff; background: var(--pw-blue); padding: 3px 8px; border-radius: 999px;
}
.pw-financing-option-eco {
  font-size: 10px; font-weight: 700; letter-spacing: .04em;
  color: #3dd68c; background: rgba(61, 214, 140, 0.12); padding: 3px 8px; border-radius: 999px;
}
.pw-financing-option-desc { font-size: 14px; color: var(--pw-muted); margin-top: 4px; line-height: 1.4; }
.pw-financing-option-check {
  width: 24px; height: 24px; border-radius: 999px; flex-shrink: 0; margin-top: 4px;
  border: 2px solid rgba(255, 255, 255, 0.2); background: transparent;
  display: flex; align-items: center; justify-content: center;
}
.pw-financing-option-check.on { background: var(--pw-blue); border: none; }
.pw-financing-calc {
  padding: 24px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-financing-calc-title { font-weight: 600; font-size: 17px; color: #fff; }
.pw-financing-calc-lbl { font-size: 14px; font-weight: 600; color: var(--pw-muted); }
.pw-financing-calc-val { font-weight: 600; font-size: 15px; color: #fff; }
.pw-financing-range { margin-top: 4px; }
.pw-flow .pw-financing-range.xrange {
  background: rgba(255, 255, 255, 0.1);
}
.pw-flow .pw-financing-range.xrange::-webkit-slider-thumb { background: var(--pw-blue); }
.pw-flow .pw-financing-range.xrange::-moz-range-thumb { background: var(--pw-blue); }
.pw-financing-calc-payment {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  margin-top: 20px; padding: 18px 20px; border-radius: 14px;
  background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-financing-calc-payment-lbl { font-size: 12.5px; color: var(--pw-faint); font-weight: 600; }
.pw-financing-calc-payment-val { font-size: 28px; font-weight: 500; color: #fff; letter-spacing: -.02em; }
.pw-financing-calc-payment-unit { font-size: 14px; color: var(--pw-muted); font-weight: 600; margin-left: 4px; }
.pw-financing-calc-positive {
  display: flex; align-items: center; gap: 6px; justify-content: flex-end;
  color: #3dd68c; font-weight: 600; font-size: 14.5;
}
.pw-financing-sidebar { position: sticky; top: 72px; display: flex; flex-direction: column; gap: 16px; }
.pw-financing-summary {
  padding: 24px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-financing-summary-title { font-weight: 600; font-size: 14px; color: var(--pw-muted); }
.pw-financing-summary-val { font-size: 28px; font-weight: 500; color: #fff; margin-top: 6px; letter-spacing: -.02em; }
.pw-financing-full-band {
  margin-top: 16px; padding: 16px; border-radius: 12px;
  background: rgba(61, 214, 140, 0.08); border: 1px solid rgba(61, 214, 140, 0.22);
}
.pw-financing-full-lbl { font-weight: 600; font-size: 13px; color: #3dd68c; }
.pw-financing-full-price { font-size: 26px; font-weight: 500; color: #fff; margin-top: 6px; letter-spacing: -.02em; }
.pw-financing-full-sub { font-size: 13px; color: var(--pw-muted); font-weight: 500; margin-top: 4px; }
.pw-financing-verify {
  padding: 24px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-financing-verify-icon {
  width: 42px; height: 42px; border-radius: 11px; flex-shrink: 0;
  background: rgba(183, 148, 246, 0.12);
  display: flex; align-items: center; justify-content: center;
}
.pw-financing-verify-icon.eco { background: rgba(61, 214, 140, 0.12); }
.pw-financing-verify-title { font-weight: 600; font-size: 15px; color: #fff; }
.pw-financing-verify-sub { font-size: 13px; color: var(--pw-muted); margin-top: 2px; }
.pw-financing-verify-req { font-size: 12.5px; font-weight: 600; color: #b794f6; margin-bottom: 10px; }
.pw-financing-verify-chip {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 600; color: var(--pw-muted);
  background: rgba(255, 255, 255, 0.06); padding: 6px 11px; border-radius: 999px;
}
.pw-financing-verify-note { font-size: 12.5px; color: var(--pw-faint); margin: 12px 0 0; line-height: 1.45; }
.pw-financing-verify-copy { font-size: 13px; color: var(--pw-muted); line-height: 1.5; margin: 0; }
.pw-financing-cta { width: 100%; border-radius: 999px !important; height: 48px; }

/* tracking */
.pw-tracking-page { padding-bottom: 48px; }
.pw-tracking-hero {
  position: relative; overflow: hidden; background: #000; color: #fff;
  padding: 28px 0 40px; border-bottom: 1px solid var(--pw-line-faint);
}
.pw-tracking-hero-inner { position: relative; }
.pw-tracking-hero-head { align-items: flex-end; gap: 24px; }
.pw-tracking-status { align-items: center; }
.pw-tracking-status-dot {
  width: 9px; height: 9px; border-radius: 999px; background: var(--pw-blue);
  animation: pulseGlow 1.4s infinite;
}
.pw-tracking-status-lbl {
  font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #7eb4ff;
}
.pw-tracking-title {
  font-size: clamp(28px, 3.2vw, 44px); font-weight: 500; color: #fff; margin-top: 10px; letter-spacing: -.02em;
}
.pw-tracking-sub { font-size: 16px; color: var(--pw-muted); margin-top: 6px; font-weight: 400; }
.pw-tracking-pct-wrap { text-align: right; flex-shrink: 0; }
.pw-tracking-pct { font-size: 46px; font-weight: 500; color: #fff; letter-spacing: -.03em; line-height: 1; }
.pw-tracking-pct-lbl { font-size: 13px; color: var(--pw-faint); font-weight: 500; margin-top: 4px; }
.pw-tracking-bar {
  height: 8px; border-radius: 999px; background: rgba(255, 255, 255, 0.1);
  overflow: hidden; margin-top: 22px;
}
.pw-tracking-bar-fill {
  height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--pw-blue), #7eb4ff);
  transition: width 1s var(--ease);
}
.pw-tracking-grid {
  display: grid; grid-template-columns: 1fr 360px; gap: 40px; align-items: start;
}
.pw-tracking-timeline {
  padding: 8px 28px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-tracking-step { display: flex; gap: 18px; align-items: stretch; }
.pw-tracking-step-rail { display: flex; flex-direction: column; align-items: center; width: 32px; flex-shrink: 0; }
.pw-tracking-step-dot {
  width: 32px; height: 32px; border-radius: 999px; margin-top: 18px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, 0.08);
}
.pw-tracking-step-dot.done { background: #3dd68c; }
.pw-tracking-step-dot.current {
  background: var(--pw-blue);
  box-shadow: 0 0 0 6px rgba(62, 110, 225, 0.2);
}
.pw-tracking-step-pulse {
  width: 10px; height: 10px; border-radius: 999px; background: #fff;
  animation: pulseGlow 1.2s infinite;
}
.pw-tracking-step-line {
  width: 2px; flex: 1; min-height: 28px; margin-top: 4px;
  background: rgba(255, 255, 255, 0.12);
}
.pw-tracking-step-line.done { background: #3dd68c; }
.pw-tracking-step-body { padding: 18px 0; flex: 1; }
.pw-tracking-step-body.dim { opacity: 0.5; }
.pw-tracking-step-label { font-weight: 600; font-size: 16px; color: #fff; }
.pw-tracking-step-label.current { color: #7eb4ff; }
.pw-tracking-step-sub { font-size: 14px; color: var(--pw-muted); margin-top: 3px; line-height: 1.4; }
.pw-tracking-step-live {
  display: flex; align-items: center; gap: 6px; margin-top: 8px;
  font-size: 12.5px; font-weight: 600; color: #7eb4ff;
}
.pw-tracking-sidebar { position: sticky; top: 72px; display: flex; flex-direction: column; gap: 16px; }
.pw-tracking-installer {
  padding: 22px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-tracking-installer-avatar {
  width: 56px; height: 56px; border-radius: 14px; flex-shrink: 0;
  background: rgba(62, 110, 225, 0.12); border: 1px solid rgba(62, 110, 225, 0.2);
  display: flex; align-items: center; justify-content: center;
}
.pw-tracking-installer-name { font-weight: 600; font-size: 16px; color: #fff; }
.pw-tracking-installer-rating {
  display: inline-flex; align-items: center; gap: 2px;
  font-size: 13px; font-weight: 600; color: #f5a524;
}
.pw-tracking-installer-meta { font-size: 13px; color: var(--pw-muted); margin-top: 2px; }
.pw-tracking-installer-actions { margin-top: 16px; }
.pw-tracking-action {
  flex: 1; height: 46px; border-radius: 999px !important;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.pw-tracking-cta { width: 100%; border-radius: 999px !important; height: 48px; }
.pw-tracking-links { padding-top: 0; }
.pw-flow-links-lead {
  font-size: 13.5px; color: var(--pw-muted); margin-bottom: 14px; line-height: 1.45;
}
.pw-flow-links-lead strong { color: #fff; font-weight: 600; }
.pw-flow-links-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pw-flow-link {
  display: flex; align-items: center; gap: 14px; padding: 14px; text-align: left;
  width: 100%; cursor: pointer; font-family: inherit; border-radius: 14px;
  background: rgba(255, 255, 255, 0.04); border: 1.5px solid rgba(255, 255, 255, 0.1); color: #fff;
  transition: border-color .15s, background .15s;
}
.pw-flow-link:hover { border-color: rgba(62, 110, 225, 0.35); background: rgba(255, 255, 255, 0.06); }
.pw-flow-link-icon {
  width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0;
  background: rgba(62, 110, 225, 0.12);
  display: flex; align-items: center; justify-content: center;
}
.pw-flow-link-label { font-weight: 600; font-size: 14px; color: #fff; }
.pw-flow-link-detail { font-size: 12px; color: var(--pw-muted); margin-top: 2px; line-height: 1.35; }

/* schedule picker — powerwall */
.pw-schedule { width: 100%; }
.pw-schedule-head { margin-bottom: 4px; }
.pw-schedule-title { font-weight: 600; font-size: 16px; color: #fff; display: flex; align-items: center; gap: 8px; }
.pw-schedule-sub { font-size: 13.5px; color: var(--pw-muted); margin: 6px 0 0; line-height: 1.45; }
.pw-schedule-label { font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--pw-faint); }
.pw-schedule-date-wrap { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.pw-schedule-date, .pw-schedule-time, .pw-schedule-notes {
  width: 100%; background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important; border-radius: 10px !important;
  color: #fff !important; font-family: inherit;
}
.pw-schedule-date, .pw-schedule-time { height: 48px; padding: 0 14px; color-scheme: dark; }
.pw-schedule-notes { min-height: 88px; padding: 14px; resize: vertical; line-height: 1.45; }
.pw-schedule-date-hint { font-size: 13px; font-weight: 500; color: #7eb4ff; white-space: nowrap; }
.pw-schedule-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 10px; }
.pw-schedule-slot {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
  padding: 12px 14px; border-radius: 12px; cursor: pointer; font-family: inherit; text-align: left;
  background: rgba(255, 255, 255, 0.04); border: 1.5px solid rgba(255, 255, 255, 0.1); color: #fff;
  transition: border-color .15s, background .15s;
}
.pw-schedule-slot:hover { border-color: rgba(62, 110, 225, 0.35); }
.pw-schedule-slot.active { background: rgba(62, 110, 225, 0.14); border-color: var(--pw-blue); }
.pw-schedule-slot-label { font-size: 14px; font-weight: 600; color: #fff; }
.pw-schedule-slot-sub { font-size: 11.5px; font-weight: 500; color: var(--pw-muted); }
.pw-schedule-hint { font-size: 12px; color: var(--pw-faint); font-weight: 500; }
.pw-schedule-preview {
  padding: 14px 16px; border-radius: 12px; align-items: flex-start;
  background: rgba(61, 214, 140, 0.08); border: 1px solid rgba(61, 214, 140, 0.2);
  display: flex; gap: 12px;
}
.pw-schedule-preview-lbl { font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--pw-faint); }
.pw-schedule-preview-val { font-weight: 600; font-size: 15px; color: #fff; margin-top: 2px; }
.pw-schedule-preview-notes { font-size: 12.5px; color: var(--pw-muted); margin-top: 4px; font-weight: 500; }
.pw-schedule-card {
  padding: 24px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-schedule-error {
  margin-top: 12px; padding: 10px 12px; border-radius: 10px;
  background: rgba(229, 72, 77, 0.12); border: 1px solid rgba(229, 72, 77, 0.3);
  color: #ff8a8f; font-size: 13px;
}
.pw-schedule-prep { margin-top: 4px; }
.pw-schedule-prep-label {
  display: block; font-size: 11px; font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase; color: var(--pw-faint); margin-bottom: 8px;
}
.pw-schedule-prep-days { display: flex; flex-wrap: wrap; gap: 8px; }
.pw-schedule-prep-day {
  display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; border-radius: 10px;
  background: rgba(255, 255, 255, 0.03); border: 1px dashed rgba(255, 255, 255, 0.14);
  opacity: 0.72;
}
.pw-schedule-prep-day-date { font-size: 12px; font-weight: 600; color: rgba(255, 255, 255, 0.55); text-decoration: line-through; }
.pw-schedule-prep-day-tag {
  font-size: 10px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  color: #e8a84a;
}
.pw-schedule-prep-hint { font-size: 12px; color: var(--pw-muted); margin: 10px 0 0; line-height: 1.4; font-weight: 500; }

/* cart lines — powerwall */
.pw-cart-group { margin-bottom: 20px; }
.pw-cart-group:last-child { margin-bottom: 0; }
.pw-cart-row {
  display: grid; grid-template-columns: 48px 1fr auto; gap: 14px 20px;
  align-items: start; padding: 16px 0; border-bottom: 1px solid var(--pw-line-faint);
}
.pw-cart-row:last-child { border-bottom: none; }
.pw-cart-thumb button {
  border: none !important; background: rgba(255, 255, 255, 0.06) !important; border-radius: 10px !important;
}
.pw-cart-name { font-weight: 600; font-size: 14px; color: #fff; }
.pw-cart-brand { font-size: 12.5px; font-weight: 500; color: var(--pw-muted); margin-top: 2px; }
.pw-cart-detail { font-size: 12.5px; color: var(--pw-faint); margin-top: 2px; line-height: 1.35; }
.pw-cart-qty { font-size: 12px; color: var(--pw-faint); font-weight: 500; margin-top: 4px; }
.pw-cart-price { font-size: 14px; font-weight: 500; color: #fff; text-align: right; }
.pw-cart-included {
  font-size: 10px; font-weight: 700; letter-spacing: .05em; color: #3dd68c;
  background: rgba(61, 214, 140, 0.12); padding: 3px 8px; border-radius: 999px;
}

@media (max-width: 980px) {
  .pw-checkout-grid { grid-template-columns: 1fr; }
  .pw-checkout-addons { grid-template-columns: 1fr; }
  .pw-checkout-summary { position: static; }
  .pw-financing-grid { grid-template-columns: 1fr; }
  .pw-financing-sidebar { position: static; }
  .pw-tracking-grid { grid-template-columns: 1fr; }
  .pw-tracking-sidebar { position: static; }
  .pw-tracking-hero-head { flex-direction: column; align-items: flex-start !important; }
  .pw-tracking-pct-wrap { text-align: left; }
  .pw-flow-links-grid { grid-template-columns: 1fr; }
  .pw-builder-split { grid-template-columns: 1fr; }
  .pw-builder-preview { position: relative; height: auto; min-height: 48vh; border-right: none; border-bottom: 1px solid var(--pw-line-faint); }
  .pw-builder-scroll { padding: 24px 22px 16px; max-width: 100%; }
  .pw-builder-bar { padding: 16px 22px; }
  .pw-builder-bar .row.between { flex-direction: column; gap: 14px; align-items: stretch !important; }
  .pw-builder-bar-cta { width: 100%; }
}

/* featured showcase */
.pw-feature {
  text-align: center; padding: 56px 0 40px;
}
.pw-feature-visual {
  display: flex; justify-content: center; align-items: center; min-height: 200px; margin-bottom: 20px;
}
.pw-feature-name { font-size: 18px; font-weight: 500; margin-top: 8px; }
.pw-feature-spec { font-size: 14px; color: var(--pw-muted); margin-top: 8px; max-width: 400px; margin-left: auto; margin-right: auto; }
.pw-feature-price { font-size: 16px; font-weight: 500; margin-top: 14px; }

/* bare product thumbs inside powerwall pages */
.pw-page .pw-thumb-bare,
.pw-page .pw-thumb-bare button {
  border: none !important; background: transparent !important; border-radius: 0 !important;
  box-shadow: none !important; cursor: default;
}
.pw-page .pw-thumb-bare img { object-fit: contain !important; }

/* process steps */
.pw-steps {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  padding: 40px 0; border-bottom: 1px solid var(--pw-line-faint);
}
.pw-step-num { font-size: 12px; color: var(--pw-faint); font-weight: 500; }
.pw-step-title { font-size: 14px; font-weight: 500; margin-top: 8px; }
.pw-step-desc { font-size: 13px; color: var(--pw-muted); margin-top: 6px; line-height: 1.45; font-weight: 400; }

/* cross-sell footer */
.pw-cross {
  display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center;
  padding: 64px 24px; border-top: 1px solid var(--pw-line-faint); max-width: var(--pw-max);
  margin: 0 auto; text-align: left;
}
.pw-cross-copy { max-width: 380px; }
.pw-cross-title { font-size: 22px; font-weight: 500; letter-spacing: -.01em; }
.pw-cross-sub { font-size: 14px; color: var(--pw-muted); margin-top: 10px; line-height: 1.5; }
.pw-cross .pw-hero-cta { justify-content: flex-start; margin-top: 24px; }
.pw-cross-visual { display: flex; justify-content: center; align-items: center; min-height: 240px; }

/* fixed bottom bar — always visible on Powerwall */
.pw-cart-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 45;
  display: grid; grid-template-columns: 1fr 1fr; background: #000;
  border-top: 1px solid var(--pw-line);
}
.pw-cart-bar .pw-btn { border-radius: 0; height: 52px; min-width: 0; width: 100%; font-size: 14px; }
.pw-cart-bar .pw-btn.ghost { border: none; border-left: 1px solid var(--pw-line); border-radius: 0; }

.pw-empty { padding: 48px 24px; text-align: center; color: var(--pw-muted); font-size: 14px; }

/* landing nav — Tesla-style tabs */
.pw-land-nav-slot { height: 0; }
.pw-land-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50; height: 56px;
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center;
  padding: 0 clamp(16px, 3vw, 32px);
  background: transparent; border-bottom: none; box-shadow: none; outline: none;
  transition: background .28s ease;
  overflow: visible;
}
.pw-land-nav-start,
.pw-land-nav-links,
.pw-land-nav-actions {
  overflow: visible;
}
.pw-land-nav.solid {
  background: #fff;
  border-bottom: none;
  box-shadow: none;
}
.pw-land-nav-start { justify-self: start; }
.pw-land-nav-logo { background: none; border: none; cursor: pointer; padding: 4px 0; display: flex; align-items: center; min-width: 88px; position: relative; z-index: 2; }
.pw-land-nav-logo .xolaar-wordmark { height: 22px; width: auto; max-width: 140px; }
.pw-land-nav-links {
  display: flex; align-items: center; gap: clamp(12px, 2.2vw, 28px); justify-self: center;
}
.pw-land-nav-link {
  background: none; border: none; cursor: pointer; font-family: inherit;
  font-size: 14px; font-weight: 600; letter-spacing: -.01em;
  color: rgba(255, 255, 255, 0.92); padding: 8px 0;
  transition: color .15s, background .15s;
  white-space: nowrap;
}
.pw-land-nav-link:hover { color: #fff; }
.pw-land-nav-link.shop {
  padding: 8px 14px; border-radius: 10px;
  background: rgba(255, 255, 255, 0.14); color: #fff;
}
.pw-land-nav-link.shop:hover { background: rgba(255, 255, 255, 0.22); color: #fff; }
.pw-land-nav.solid .pw-land-nav-link { color: #393c41; }
.pw-land-nav.solid .pw-land-nav-link:hover { color: #171a20; }
.pw-land-nav.solid .pw-land-nav-link.shop {
  background: #f4f4f4; color: #171a20;
}
.pw-land-nav.solid .pw-land-nav-link.shop:hover { background: #e8e8e8; color: #000; }
.pw-land-nav-actions {
  display: flex; align-items: center; gap: 10px; justify-self: end; grid-column: 3;
}
.pw-land-nav-end {
  display: flex;
  align-items: center;
  gap: 10px;
}
.pw-land-nav-start { grid-column: 1; }
.pw-land-nav-links { grid-column: 2; }
.pw-land-nav-account {
  background: none; border: none; cursor: pointer; font-family: inherit;
  font-size: 14px; font-weight: 600; color: rgba(255, 255, 255, 0.92); padding: 8px 0;
  transition: color .15s;
}
.pw-land-nav-account:hover { color: #fff; }
.pw-land-nav.solid .pw-land-nav-account { color: #393c41; }
.pw-land-nav.solid .pw-land-nav-account:hover { color: #171a20; }
.pw-land-nav-menu {
  background: none; border: none; cursor: pointer; padding: 8px;
  display: none; align-items: center; justify-content: center;
}
.pw-land-nav-mobile {
  position: fixed; top: 56px; left: 0; right: 0; z-index: 49;
  background: #000; border-bottom: 1px solid var(--pw-line-faint); padding: 8px 0 16px;
}
.pw-land-nav-mobile.solid {
  background: #fff; border-bottom-color: rgba(0, 0, 0, 0.08);
}
.pw-land-nav-mobile-link {
  display: block; width: 100%; text-align: left; background: none; border: none;
  padding: 14px 24px; font-family: inherit; font-size: 15px; font-weight: 600;
  color: #fff; cursor: pointer;
}
.pw-land-nav-mobile.solid .pw-land-nav-mobile-link { color: #171a20; }
.pw-land-nav-mobile-link:hover { background: rgba(255, 255, 255, 0.04); }
.pw-land-nav-mobile.solid .pw-land-nav-mobile-link:hover { background: rgba(0, 0, 0, 0.04); }
.pw-land-nav-mobile-link.shop { font-weight: 700; }
.pw-land-nav-mobile-link.accent { color: var(--pw-blue); }
.pw-land-nav-mobile.solid .pw-land-nav-mobile-link.accent { color: var(--pw-blue); }

/* split sections */
.pw-split {
  display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center;
  max-width: var(--pw-max); margin: 0 auto; padding: 72px 24px;
  border-bottom: 1px solid var(--pw-line-faint);
}
.pw-split.reverse .pw-split-copy { order: 2; }
.pw-split.reverse .pw-split-visual { order: 1; }
.pw-split-title { font-size: clamp(22px, 3vw, 28px); font-weight: 500; letter-spacing: -.01em; margin: 0; }
.pw-split-desc { font-size: 14px; color: var(--pw-muted); margin-top: 12px; line-height: 1.55; }
.pw-split-link {
  margin-top: 20px; background: none; border: none; color: #fff; font-family: inherit;
  font-size: 14px; font-weight: 500; cursor: pointer; text-decoration: underline;
  text-underline-offset: 4px; padding: 0;
}
.pw-split-link:hover { color: var(--pw-muted); }
.pw-split-visual { display: flex; align-items: center; justify-content: center; min-height: 220px; }
.pw-split-visual-inner {
  width: 100%; max-width: 360px; height: 220px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0%, transparent 100%);
  border: 1px solid var(--pw-line-faint);
}
.pw-split-visual-inner.glow {
  background: radial-gradient(ellipse 70% 60% at 50% 40%, rgba(62, 110, 225, 0.12) 0%, transparent 70%);
  border: none;
}

/* homepage split visuals */
.pw-land-visual {
  width: 100%;
  max-width: 380px;
  min-height: 220px;
  padding: 20px;
  border-radius: 16px;
  border: 1px solid var(--pw-line-faint);
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35);
}
.pw-land-pill {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #3dd68c;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(61, 214, 140, 0.12);
}
.pw-land-kicker {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pw-muted);
}
.pw-land-mini-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 12.5px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.82);
}
.pw-land-assess-body { margin-top: 16px; align-items: center; }
.pw-land-finance-top { margin-bottom: 16px; }
.pw-land-finance-val {
  font-size: clamp(26px, 4vw, 32px);
  font-weight: 600;
  color: #fff;
  margin-top: 6px;
  letter-spacing: -0.02em;
}
.pw-land-bars {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 88px;
  margin: 8px 0 14px;
}
.pw-land-bar {
  flex: 1;
  border-radius: 6px 6px 2px 2px;
  background: linear-gradient(180deg, #3dd68c 0%, rgba(61, 214, 140, 0.25) 100%);
  min-height: 12px;
}
.pw-land-finance-foot {
  font-size: 12px;
  color: var(--pw-muted);
  padding-top: 12px;
  border-top: 1px solid var(--pw-line-faint);
}
.pw-land-shop-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.pw-land-shop-tile {
  padding: 14px 10px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  text-align: center;
}
.pw-land-shop-icon {
  width: 44px;
  height: 44px;
  margin: 0 auto 8px;
  border-radius: 11px;
  background: rgba(126, 180, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pw-land-shop-label { font-size: 12px; font-weight: 600; color: #fff; }
.pw-land-shop-price { font-size: 11px; color: var(--pw-muted); margin-top: 4px; }
.pw-land-shop-badge {
  margin-top: 14px;
  font-size: 12px;
  font-weight: 600;
  color: var(--pw-muted);
  justify-content: center;
}
.pw-land-dash-stats { margin-bottom: 8px; flex-wrap: wrap; }
.pw-land-dash-pill {
  font-size: 11px;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.75);
}
.pw-land-dash-pill.live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(61, 214, 140, 0.12);
  color: #3dd68c;
}
.pw-land-dash-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #3dd68c;
  animation: pulseGlow 1.4s infinite;
}
.pw-land-visual-dash .pw-energy-graph { margin: 4px 0 10px; }
.pw-land-dash-foot {
  font-size: 12px;
  color: var(--pw-muted);
  padding-top: 8px;
  border-top: 1px solid var(--pw-line-faint);
}

.pw-section-heading {
  font-size: clamp(22px, 3vw, 28px); font-weight: 500; letter-spacing: -.01em; margin: 0;
}
.pw-section-lead {
  font-size: 14px; color: var(--pw-muted); margin-top: 10px; line-height: 1.55; max-width: 520px;
}

.pw-econ-rows { margin-top: 28px; border-top: 1px solid var(--pw-line); }
.pw-econ-row {
  display: flex; justify-content: space-between; gap: 16px; padding: 14px 0;
  border-bottom: 1px solid var(--pw-line-faint); font-size: 14px;
}
.pw-econ-row span:first-child { color: var(--pw-muted); }
.pw-econ-row span:last-child { color: #fff; font-weight: 500; }

/* minimal footer */
.pw-footer {
  border-top: 1px solid var(--pw-line-faint); padding: 48px 24px 120px;
  background: #000;
}
.pw-footer-inner { max-width: var(--pw-max); margin: 0 auto; text-align: center; }
.pw-footer-tag {
  font-size: 13px; color: var(--pw-muted); margin: 14px auto 0; max-width: 360px; line-height: 1.5;
}
.pw-footer-links {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; margin-top: 24px;
}
.pw-footer-links button {
  background: none; border: none; font-family: inherit; font-size: 13px; font-weight: 500;
  color: var(--pw-muted); cursor: pointer; padding: 0;
}
.pw-footer-links button:hover { color: #fff; }
.pw-footer-legal {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 28px;
  font-size: 12px; color: var(--pw-faint);
}

.pw-page .pw-main { padding-bottom: 48px; }
.pw-page .pw-main + .pw-main { padding-top: 0; }

/* homepage product cards */
.pw-home-mp { margin-top: 32px; }
.pw-home-mp-rail {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
.pw-home-mp-card {
  border-radius: 16px; overflow: hidden;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.01) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: border-color .2s, transform .2s;
}
.pw-home-mp-card:hover {
  border-color: rgba(62, 110, 225, 0.35);
  transform: translateY(-2px);
}
.pw-home-mp-visual {
  position: relative; height: 200px; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(180deg, rgba(62, 110, 225, 0.08) 0%, transparent 100%);
}
.pw-home-mp-visual-glow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 70% 60% at 50% 30%, rgba(62, 110, 225, 0.14), transparent);
}
.pw-home-mp-visual button {
  position: relative; z-index: 1;
  width: 148px !important; height: 148px !important;
  border: none !important; border-radius: 16px !important;
  background: rgba(0, 0, 0, 0.35) !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45) !important;
  cursor: zoom-in !important;
}
.pw-home-mp-visual button img {
  object-fit: contain !important; padding: 10px;
}
.pw-home-mp-visual button span {
  width: 28px !important; height: 28px !important;
  right: 8px !important; bottom: 8px !important;
  background: rgba(0, 0, 0, 0.65) !important;
}
.pw-home-mp-body { padding: 18px 20px 22px; }
.pw-home-mp-cat {
  font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: #7eb4ff;
}
.pw-home-mp-name {
  font-weight: 600; font-size: 15px; color: #fff; margin: 8px 0 0; line-height: 1.35;
}
.pw-home-mp-spec {
  font-size: 13px; color: rgba(255, 255, 255, 0.48); margin-top: 8px; line-height: 1.45;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pw-home-mp-foot {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
  margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-home-mp-price { font-weight: 600; font-size: 18px; color: var(--pw-energy); }
.pw-home-mp-lead { font-size: 11px; font-weight: 500; color: rgba(255, 255, 255, 0.38); text-align: right; }
.pw-home-mp-order {
  width: 100%; margin-top: 14px; border-radius: 8px !important;
}
.pw-home-mp-rail.catalog {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px;
}

/* product image preview modal */
.pw-preview-overlay {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(0, 0, 0, 0.88); backdrop-filter: blur(10px);
  display: flex; align-items: center; justify-content: center; padding: 24px;
  animation: popIn .2s var(--ease);
}
.pw-preview-modal {
  position: relative; width: 100%; max-width: 640px; overflow: hidden;
  background: #000; border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px; box-shadow: 0 32px 80px rgba(0, 0, 0, 0.75);
}
.pw-preview-close-float {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  width: 40px; height: 40px; border-radius: 999px; border: none; cursor: pointer;
  background: rgba(0, 0, 0, 0.55); backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center;
}
.pw-preview-close-float:hover { background: rgba(255, 255, 255, 0.12); }
.pw-preview-body {
  padding: 40px 32px 28px; display: flex; justify-content: center; align-items: center;
  min-height: 280px;
  background: linear-gradient(180deg, rgba(62, 110, 225, 0.08) 0%, transparent 100%);
}
.pw-preview-img {
  width: 100%; max-width: 360px; max-height: min(52vh, 420px); object-fit: contain;
  border-radius: 12px; background: transparent;
}
.pw-preview-foot {
  padding: 20px 28px 28px; border-top: 1px solid rgba(255, 255, 255, 0.08);
  text-align: center;
}
.pw-preview-cat {
  font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: #7eb4ff; margin-bottom: 8px;
}
.pw-preview-title {
  font-size: 18px; font-weight: 600; color: #fff; line-height: 1.35;
  letter-spacing: -.01em;
}
.pw-preview-spec {
  font-size: 14px; font-weight: 400; color: rgba(255, 255, 255, 0.5);
  margin: 8px 0 0; line-height: 1.5; max-width: 420px; margin-left: auto; margin-right: auto;
}

/* safe area + fixed bar clearance */
.pw-page { padding-bottom: calc(52px + env(safe-area-inset-bottom, 0px)); }
.pw-cart-bar { padding-bottom: env(safe-area-inset-bottom, 0px); }
.pw-footer { padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px)); }

/* nav desktop / mobile toggle */
.pw-nav-desktop { display: flex; }
.pw-nav-mobile { display: none; }

/* —— tablet —— */
@media (max-width: 1024px) {
  .pw-land-nav { padding: 0 20px; }
  .pw-land-nav-links { gap: 16px; }
  .pw-land-nav-link { font-size: 13px; }
  .pw-main { padding-left: 20px; padding-right: 20px; }
  .pw-home-mp-rail { grid-template-columns: repeat(2, 1fr); }
  .pw-split { padding: 56px 20px; gap: 36px; }
  .pw-band { padding: 56px 20px; }
  .pw-energy { padding-left: 20px; padding-right: 20px; }
  .pw-stats { padding-left: 20px; padding-right: 20px; }
  .pw-steps { gap: 18px; }
  .pw-marketing-hero { padding: calc(56px + 36px) 20px 36px; }
  .pw-marketing-hero.compact { padding-bottom: 24px; }
}

/* —— nav collapse + tablet restack —— */
@media (max-width: 960px) {
  .pw-land-nav { grid-template-columns: 1fr auto; }
  .pw-land-nav-actions { grid-column: 2; }
  .pw-nav-desktop { display: none !important; }
  .pw-nav-mobile { display: flex !important; }
  .pw-land-nav-logo .xolaar-wordmark { height: 20px !important; }
  .pw-hero-scene {
    min-height: min(78vh, 700px);
    padding-left: 20px;
    padding-right: 20px;
  }
  .pw-hero-title { font-size: clamp(40px, 8vw, 56px); }
  .pw-energy-captions { grid-template-columns: repeat(2, 1fr); gap: 14px 18px; }
  .pw-energy-cap-desk { display: none; }
  .pw-split,
  .pw-band-split,
  .pw-cross {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .pw-split.reverse .pw-split-copy,
  .pw-split.reverse .pw-split-visual { order: unset; }
  .pw-split-visual { min-height: 200px; }
  .pw-steps { grid-template-columns: 1fr; gap: 18px; }
  .pw-cross { text-align: center; }
  .pw-cross-copy { margin: 0 auto; max-width: 100%; }
  .pw-cross .pw-hero-cta { justify-content: center; }
  .pw-land-visual {
    margin: 0 auto;
    max-width: 520px;
    box-shadow: none;
  }
  .pw-finance-graded .pw-finance-message-split,
  .pw-charging-flow .pw-charging-layout,
  .pw-energy-graded .pw-energy-product-grid {
    grid-template-columns: 1fr;
  }
  .pw-page-canvas .wrap,
  .pw-page-canvas .wrap-narrow {
    padding-left: 20px;
    padding-right: 20px;
  }
  .pw-assessment-graded .pw-appliances-shell {
    grid-template-columns: 1fr;
  }
  .pw-assessment-graded .pw-appliances-shell > .pw-load-panel {
    grid-column: 1;
    grid-row: auto;
  }
}

/* —— mobile landscape / large phone —— */
@media (max-width: 768px) {
  .web-root.tesla-land-root .pw-hero-scene {
    padding-top: calc(56px + 16px);
    padding-left: 16px; padding-right: 16px;
  }
  .pw-hero-scene {
    min-height: min(86svh, 720px);
    padding-bottom: 12px;
    justify-content: space-between;
  }
  .pw-hero-content { padding-top: 12px; max-width: 420px; }
  .pw-hero-kicker { font-size: 11px; letter-spacing: 0.12em; margin-bottom: 10px; }
  .pw-hero-title { font-size: clamp(36px, 11vw, 48px); }
  .pw-hero-product {
    flex: 1;
    min-height: 220px;
    margin-top: 12px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
  }
  .pw-hero-sub { font-size: 14px; padding: 0 4px; max-width: 34ch; }
  .pw-hero-cta {
    width: 100%; max-width: 320px; margin-left: auto; margin-right: auto;
    flex-direction: column; align-items: stretch;
  }
  .pw-hero-cta .pw-btn { width: 100%; min-width: 0; }
  .pw-stats {
    grid-template-columns: repeat(3, 1fr); gap: 12px;
    padding: 36px 16px 20px;
  }
  .pw-stat-val { font-size: clamp(20px, 5vw, 26px); }
  .pw-stat-lbl { font-size: 11px; }
  .pw-energy { padding: 0 16px 40px; }
  .pw-energy-captions { grid-template-columns: 1fr; gap: 12px; }
  .pw-split {
    grid-template-columns: 1fr; gap: 24px;
    padding: 44px 16px;
  }
  .pw-split.reverse .pw-split-copy,
  .pw-split.reverse .pw-split-visual { order: unset; }
  .pw-split-visual { min-height: 160px; }
  .pw-split-visual-inner { height: 160px; }
  .pw-main { padding: 0 16px 44px; }
  .pw-band { padding: 44px 16px; }
  .pw-steps { grid-template-columns: 1fr; gap: 18px; padding: 28px 0; }
  .pw-cross {
    grid-template-columns: 1fr; text-align: center;
    padding: 44px 16px; gap: 24px;
  }
  .pw-cross-copy { margin: 0 auto; max-width: 100%; }
  .pw-cross .pw-hero-cta { justify-content: center; }
  .pw-cross-visual { min-height: 180px; }
  .pw-nav { gap: 20px; padding: 20px 16px; overflow-x: auto; justify-content: flex-start;
    -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .pw-nav::-webkit-scrollbar { display: none; }
  .pw-nav-link { flex-shrink: 0; font-size: 13px; }
  .pw-spec-row { grid-template-columns: 1fr; gap: 10px; }
  .pw-spec-price { text-align: left; }
  .pw-spec-action .pw-btn { width: 100%; }
  .pw-filter-row { gap: 14px; }
  .pw-home-mp-rail:not(.catalog) {
    display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory;
    padding-bottom: 8px; margin: 0 -16px; padding-left: 16px; padding-right: 16px;
    scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  .pw-home-mp-rail:not(.catalog)::-webkit-scrollbar { display: none; }
  .pw-home-mp-rail:not(.catalog) .pw-home-mp-card { flex: 0 0 min(280px, 82vw); scroll-snap-align: start; }
  .pw-home-mp-rail.catalog { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
  .pw-home-mp-visual button {
    width: 128px !important; height: 128px !important;
  }
  .pw-home-mp-visual { height: 180px; }
  .pw-preview-overlay { padding: 16px; align-items: center; }
  .pw-preview-body { padding: 32px 20px 20px; min-height: 220px; }
  .pw-preview-foot { padding: 16px 20px 22px; }
  .pw-preview-title { font-size: 16px; }
  .pw-preview-spec { font-size: 13px; }
  .pw-footer { padding: 40px 16px calc(92px + env(safe-area-inset-bottom, 0px)); }
  .pw-footer-links { gap: 14px 18px; }
  .pw-page { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .pw-cart-bar { grid-template-columns: 1fr; }
  .pw-cart-bar .pw-btn { height: 48px; font-size: 13px; }
  .pw-cart-bar .pw-btn.ghost { border-left: none; border-top: 1px solid var(--pw-line); }
  .pw-cart-bar-secondary { display: none; }
  .pw-topbar { padding: 0 12px; grid-template-columns: 64px 1fr 64px; }
  .pw-hero { padding: 56px 16px 40px; }
  .pw-marketing-hero { padding: calc(52px + 24px) 16px 28px; }
  .pw-marketing-hero .pw-charging-title { font-size: clamp(26px, 7vw, 34px); }
  .pw-marketing-hero .pw-charging-lead,
  .pw-assessment-graded .pw-assessment-hero-lead { font-size: 14.5px; }
  .pw-page-canvas .wrap,
  .pw-page-canvas .wrap-narrow {
    padding-left: 16px;
    padding-right: 16px;
  }
  .pw-charging-flow .pw-charging-map-col { min-height: 280px; }
  .pw-finance-graded .pw-finance-message,
  .pw-finance-graded .pw-finance-options,
  .pw-finance-graded .pw-finance-tiers,
  .pw-finance-graded .pw-finance-steps {
    padding-top: 32px;
    padding-bottom: 32px;
  }
}

/* —— small phone —— */
@media (max-width: 480px) {
  .pw-land-nav { padding: 0 14px; height: 52px; }
  .pw-land-nav-mobile { top: 52px; }
  .pw-land-nav-logo .xolaar-wordmark { height: 18px !important; }
  .pw-hero-logo .xolaar-wordmark { height: clamp(32px, 10vw, 44px) !important; }
  .pw-unit { width: 128px; }
  .pw-unit-module.main { height: 168px; }
  .pw-unit-module.slab { height: 96px; }
  .pw-stats { grid-template-columns: 1fr; gap: 20px; text-align: left; }
  .pw-stat { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
  .pw-stat-lbl { text-align: right; max-width: 12ch; }
  .pw-energy-captions { grid-template-columns: 1fr; }
  .pw-econ-row { flex-direction: column; gap: 4px; align-items: flex-start; }
  .pw-btn.primary, .pw-btn.ghost { min-width: 0; }
  .pw-home-mp-rail:not(.catalog) .pw-home-mp-card { flex: 0 0 min(260px, 88vw); }
  .pw-home-mp-rail.catalog { grid-template-columns: 1fr; }
  .pw-preview-overlay { padding: 0; align-items: flex-end; }
  .pw-preview-modal {
    max-width: none; width: 100%; border-radius: 16px 16px 0 0;
    max-height: min(92dvh, 640px); overflow-y: auto;
  }
  .pw-preview-body { min-height: 180px; padding: 28px 16px 16px; }
  .pw-preview-img { max-height: min(40vh, 280px); }
}

/* ============================================================
   Sitewide flow — legacy web components on Powerwall canvas
   Apply via PwFlowRoot (.pw-flow on .web-root)
   ============================================================ */
.pw-flow {
  --pw-bg: #000;
  --pw-text: #fff;
  --pw-muted: rgba(255, 255, 255, 0.55);
  --pw-faint: rgba(255, 255, 255, 0.35);
  --pw-blue: #3e6ae1;
  --pw-line: rgba(255, 255, 255, 0.14);
  --pw-line-faint: rgba(255, 255, 255, 0.08);
  /* Remap light-theme text tokens so shared components stay readable on black */
  --ink: #ffffff;
  --muted: rgba(255, 255, 255, 0.55);
  --faint: rgba(255, 255, 255, 0.38);
  --bg: #000000;
  --surface: rgba(8, 12, 22, 0.55);
  --surface-2: rgba(8, 12, 22, 0.72);
  --surface-3: rgba(255, 255, 255, 0.08);
  --line: rgba(255, 255, 255, 0.1);
  --line-2: rgba(255, 255, 255, 0.14);
  background: #000 !important;
  color: #fff;
  min-height: 100vh;
}
.pw-flow .wrap,
.pw-flow .wrap-narrow,
.pw-flow .wrap-wide,
.pw-flow .tesla-mp-wrap {
  color: #fff;
}
.pw-flow .section-sm,
.pw-flow .section { padding-top: 32px; padding-bottom: 48px; }

/* cards */
.pw-flow .wcard:not(.pw-goal-card) {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--pw-line-faint);
  color: #fff;
}
.pw-flow .wcard-hover:hover {
  border-color: rgba(62, 110, 225, 0.35);
  box-shadow: none;
  transform: translateY(-2px);
}

/* buttons */
.pw-flow .wbtn-primary {
  background: var(--pw-blue);
  color: #fff;
  box-shadow: none;
  border-radius: 999px;
}
.pw-flow .wbtn-primary:hover { background: #3457b1; }
.pw-flow .wbtn-ghost {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-radius: 999px;
}
.pw-flow .wbtn-ghost:hover { border-color: #fff; background: rgba(255, 255, 255, 0.04); }

/* inputs */
.pw-flow .winput,
.pw-flow input.winput,
.pw-flow select.winput,
.pw-flow textarea.winput {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--pw-line);
  border-radius: 0;
  color: #fff;
}
.pw-flow .winput:focus { border-bottom-color: var(--pw-blue); outline: none; }
.pw-flow .winput::placeholder { color: var(--pw-faint); }

/* typography */
.pw-flow .eyebrow-web { color: #7eb4ff; }
.pw-flow .display-lg,
.pw-flow .display-md,
.pw-flow .display-xl { color: #fff; }
.pw-flow [style*="color: var(--muted)"],
.pw-flow [style*="color:var(--muted)"] { color: var(--pw-muted) !important; }
.pw-flow [style*="color: var(--ink)"],
.pw-flow [style*="color:var(--ink)"] { color: #fff !important; }
.pw-flow [style*="color: var(--faint)"],
.pw-flow [style*="color:var(--faint)"] { color: var(--pw-faint) !important; }

.pw-flow .energy-assess-promo-title,
.pw-flow .energy-assess-promo.compact .energy-assess-promo-title { color: #fff; }
.pw-flow .energy-assess-promo-sub,
.pw-flow .energy-assess-promo.compact .energy-assess-promo-sub { color: var(--pw-muted); }
.pw-flow .energy-assess-promo-points li { color: rgba(255, 255, 255, 0.82); }
.pw-flow .energy-assess-promo.card {
  background: linear-gradient(135deg, rgba(255, 180, 60, 0.12) 0%, rgba(255, 255, 255, 0.04) 48%);
  border-color: rgba(255, 180, 60, 0.28);
}

/* wizard / sub-nav chrome */
.pw-flow .wizard-top {
  background: #000;
  border-bottom: 1px solid var(--pw-line-faint);
  backdrop-filter: none;
}
.pw-flow .wizard-top .wnav-link { color: var(--pw-muted); }
.pw-flow .wizard-top .wnav-link:hover { color: #fff; }
.pw-flow .wizard-top .wbtn-ghost {
  background: transparent;
  color: var(--pw-muted);
  border: none;
}
.pw-flow .wizard-top .wstep-dot span { color: var(--pw-muted) !important; }
.pw-flow .wizard-top .wstep-dot span[style*="current"] { color: #fff !important; }
.pw-flow .tesla-mp-topbar { background: #000 !important; }

/* chips */
.pw-flow .chip {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--pw-line-faint);
  color: var(--pw-muted);
}
.pw-flow .chip.active {
  background: rgba(62, 110, 225, 0.15);
  border-color: rgba(62, 110, 225, 0.4);
  color: #fff;
}

/* appliance scanner — override pw-flow chips for readable contrast in modal */
.pw-flow .appliance-scanner-panel .chip {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.24);
  color: rgba(255, 255, 255, 0.92);
}
.pw-flow .appliance-scanner-panel .chip:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.32);
}
.pw-flow .appliance-scanner-panel .chip.active {
  background: #3e6ee1;
  border-color: #3e6ee1;
  color: #fff;
}
.pw-flow .appliance-scanner-panel .wcard {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}
.pw-flow .appliance-scanner-panel .wcard-hover:hover {
  border-color: rgba(62, 110, 225, 0.5);
  background: rgba(255, 255, 255, 0.1);
}
.pw-flow .appliance-scanner-panel .winput,
.pw-flow .appliance-scanner-panel input.winput {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  color: #fff;
}
.pw-flow .appliance-scanner-panel .winput:focus {
  border-color: var(--pw-blue);
  outline: none;
}
.pw-flow .appliance-scanner-panel .winput::placeholder {
  color: var(--pw-faint);
}
.pw-flow .appliance-scanner-panel .appliance-scanner-option-watts,
.pw-flow .appliance-scanner-panel .appliance-scanner-field-label,
.pw-flow .appliance-scanner-panel .appliance-scanner-fallback-list > div {
  color: var(--pw-muted);
}

/* auth — match homepage cinematic canvas */
.pw-flow .auth-page-pw {
  position: relative;
  isolation: isolate;
  min-height: calc(100vh - 68px);
  padding-top: 0;
  background: transparent;
  color: #fff;
}
.pw-flow .auth-page-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.pw-flow .auth-page-bg.pw-hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 40% at 50% 85%, rgba(0, 0, 0, 0.5) 0%, transparent 70%);
}
.pw-flow .auth-page-shell {
  position: relative;
  z-index: 1;
}
.pw-flow .auth-page-hero,
.pw-flow .auth-page-main {
  position: relative;
  z-index: 1;
  background: transparent;
}
.pw-flow .auth-page.auth-page-pw {
  background: transparent;
}
.pw-flow .auth-page-hero {
  border-right: none;
}
.pw-flow .auth-page-hero-inner {
  padding-right: clamp(16px, 3vw, 32px);
  margin-right: clamp(8px, 2vw, 16px);
  border-right: 1px solid var(--pw-line-faint);
}
.pw-flow .auth-page-main {
  background: transparent;
  color: #fff;
}
.pw-flow .auth-page-title {
  font-family: 'Manrope', system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.03em;
  color: #fff;
}
.pw-flow .auth-page-lead {
  color: var(--pw-muted);
  font-weight: 500;
}
.pw-flow .auth-page-stat {
  color: var(--pw-muted);
  font-weight: 600;
}
.pw-flow .auth-page-shell--single .auth-page-card {
  margin-left: 0;
  margin-right: 0;
}
.pw-flow .auth-page-card {
  padding: clamp(22px, 3vw, 32px);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--pw-line-faint);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.pw-flow .auth-page-card-title {
  color: #fff;
  font-family: 'Manrope', system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.pw-flow .auth-page-card-sub,
.pw-flow .auth-page-back {
  color: var(--pw-muted);
}
.pw-flow .auth-page-back:hover {
  color: #fff;
}
.pw-flow .auth-mode-tabs {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--pw-line);
}
.pw-flow .auth-mode-tab {
  color: var(--pw-muted);
  font-weight: 600;
}
.pw-flow .auth-mode-tab.active {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  box-shadow: none;
}
.pw-flow .auth-field span {
  color: var(--pw-muted);
  font-weight: 600;
}
.pw-flow .auth-page .winput,
.pw-flow .auth-input.winput {
  height: 52px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--pw-line);
  color: #fff;
  border-radius: 8px;
}
.pw-flow .auth-page .winput:focus,
.pw-flow .auth-input.winput:focus {
  border-color: var(--pw-blue);
  outline: none;
  box-shadow: 0 0 0 3px rgba(62, 110, 225, 0.2);
}
.pw-flow .auth-page .winput::placeholder,
.pw-flow .auth-input.winput::placeholder {
  color: var(--pw-faint);
}
.pw-flow .auth-divider {
  color: var(--pw-faint);
}
.pw-flow .auth-demo-btn {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--pw-line);
  color: #fff;
}
.pw-flow .auth-demo-btn:hover:not(:disabled) {
  border-color: rgba(62, 110, 225, 0.45);
  background: rgba(62, 110, 225, 0.12);
  box-shadow: none;
}
.pw-flow .auth-demo-label {
  color: #fff;
  font-weight: 600;
}
.pw-flow .auth-demo-email {
  color: var(--pw-muted);
}
.pw-flow .auth-demo-icon {
  background: rgba(62, 110, 225, 0.18);
  border: 1px solid rgba(62, 110, 225, 0.25);
}
.pw-flow .auth-demo-hint {
  color: var(--pw-faint);
}
.pw-flow .auth-demo-hint strong {
  color: var(--pw-muted);
}
.pw-flow .auth-error {
  color: #ff8a8a;
}
.pw-flow .auth-submit.pw-btn.primary {
  width: 100%;
  margin-top: 4px;
  height: 44px;
  min-width: 0;
  border-radius: 999px;
  font-weight: 600;
}
.pw-flow .auth-page-warn {
  background: rgba(255, 180, 0, 0.1);
  border: 1px solid rgba(255, 180, 0, 0.22);
  color: #ffd666;
}
.pw-flow .auth-page-warn code {
  color: #ffe9a8;
}
.pw-flow .tesla-land-pill {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(61, 214, 140, 0.28);
  color: #8ff0c4;
}
@media (max-width: 980px) {
  .pw-flow .auth-page-pw {
    min-height: calc(100vh - 68px);
  }
  .pw-flow .auth-page-hero {
    display: none;
  }
  .pw-flow .auth-page-hero-inner {
    padding-right: 0;
    margin-right: 0;
    border-right: none;
  }
  .pw-flow .auth-page-main {
    min-height: 0;
  }
  .pw-flow .auth-page-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--pw-line-faint);
    padding: clamp(20px, 4vw, 28px);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    margin-left: auto;
    margin-right: auto;
  }
  .pw-flow .auth-page-mobile-lead {
    color: var(--pw-muted);
  }
}

/* dashboard / portals */
.pw-flow .dash-shell { background: #000; }
.pw-flow .dash-sidebar {
  background: #000;
  border-right: 1px solid var(--pw-line-faint);
}
.pw-flow .dash-main { background: #000; color: #fff; }
.pw-flow .dash-navitem { color: var(--pw-muted); }
.pw-flow .dash-navitem.active,
.pw-flow .dash-navitem:hover { color: #fff; background: rgba(255, 255, 255, 0.06); }

/* role switcher */
.pw-flow .role-switcher {
  background: #000;
  border-top: 1px solid var(--pw-line);
}
.pw-flow .role-switcher button { color: var(--pw-muted); }
.pw-flow .role-switcher button.active { color: #fff; }

/* tesla marketplace legacy inside flow */
.pw-flow .tesla-svc-page,
.pw-flow .tesla-mp-root { background: #000; color: #fff; }
.pw-flow .tesla-svc-btn.primary,
.pw-flow .tesla-svc-card-btn { background: var(--pw-blue); border-radius: 999px; }
.pw-flow .tesla-mp-booking-card,
.pw-flow .tesla-mp-checkout-panel,
.pw-flow .tesla-mp-checkout-summary {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--pw-line-faint);
}
.pw-wizard-top { position: sticky; top: 0; }

/* assessment goal cards */
.pw-goal-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px;
}
.pw-goal-card {
  display: flex; align-items: center; gap: 16px; padding: 20px 22px;
  text-align: left; cursor: pointer; width: 100%;
  background: rgba(255, 255, 255, 0.04);
  border: 1.5px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px; color: #fff;
  font-family: inherit;
  transition: border-color .15s, background .15s;
}
.pw-goal-card:hover {
  border-color: rgba(62, 110, 225, 0.35);
  background: rgba(255, 255, 255, 0.06);
}
.pw-goal-card.selected {
  background: rgba(62, 110, 225, 0.14);
  border-color: var(--pw-blue);
}
.pw-goal-icon {
  width: 56px; height: 56px; border-radius: 14px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}
.pw-goal-card.selected .pw-goal-icon { background: var(--pw-blue); }
.pw-goal-icon .ms { line-height: 1; }
.pw-goal-copy { flex: 1; min-width: 0; }
.pw-goal-title { font-weight: 600; font-size: 16px; color: #fff; line-height: 1.3; }
.pw-goal-desc { font-size: 13px; color: rgba(255, 255, 255, 0.5); margin-top: 4px; line-height: 1.4; }
.pw-goal-check {
  width: 24px; height: 24px; border-radius: 999px; flex-shrink: 0;
  border: 2px solid rgba(255, 255, 255, 0.25);
  display: flex; align-items: center; justify-content: center;
}
.pw-goal-check.on { background: var(--pw-blue); border: none; }

@media (max-width: 640px) {
  .pw-goal-grid { grid-template-columns: 1fr; }
}

/* assessment appliances */
.pw-appliances-layout {
  display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: start;
}
.pw-appliance-lead { font-size: 16px; color: var(--pw-muted); margin-top: 10px; line-height: 1.5; }
.pw-appliance-scan {
  margin: 20px 0; padding: 16px 18px; display: flex; align-items: center; gap: 14px;
  background: rgba(62, 110, 225, 0.12); border: 1.5px solid rgba(62, 110, 225, 0.35);
  border-radius: 16px;
}
.pw-appliance-scan-title { font-weight: 600; font-size: 15px; color: #fff; }
.pw-appliance-scan-sub { font-size: 13px; color: var(--pw-muted); margin-top: 2px; }
.pw-appliance-cats { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 18px; }
.pw-appliance-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
}
.pw-appliance-tile-wrap { position: relative; }
.pw-appliance-tile {
  width: 100%; cursor: pointer; display: flex; flex-direction: column; align-items: center;
  gap: 10px; padding: 22px 8px 28px; border-radius: 16px; font-family: inherit;
  background: rgba(255, 255, 255, 0.04); border: 1.5px solid rgba(255, 255, 255, 0.1);
  color: #fff; transition: border-color .15s, background .15s; position: relative;
}
.pw-appliance-tile:hover { border-color: rgba(62, 110, 225, 0.35); }
.pw-appliance-tile.selected {
  background: var(--pw-blue); border-color: var(--pw-blue);
}
.pw-appliance-tile-check {
  position: absolute; top: 9px; right: 9px; width: 20px; height: 20px;
  border-radius: 999px; background: rgba(255, 255, 255, 0.2);
  display: flex; align-items: center; justify-content: center;
}
.pw-appliance-tile-count {
  position: absolute; top: 9px; left: 9px; min-width: 22px; height: 20px; padding: 0 6px;
  border-radius: 999px; background: rgba(0, 0, 0, 0.35); font-size: 10px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; color: #fff;
}
.pw-appliance-tile-hint {
  font-size: 10px; font-weight: 600; color: rgba(255, 255, 255, 0.55); text-align: center; line-height: 1.2;
}
.pw-appliance-tile-icon { display: flex; line-height: 1; }
.pw-appliance-tile-icon .ms { line-height: 1; }
.pw-appliance-tile-thumb { border-radius: 12px; overflow: hidden; border: 2px solid rgba(255, 255, 255, 0.35); }
.pw-appliance-tile-name { font-size: 12.5px; font-weight: 600; text-align: center; line-height: 1.2; color: #fff; }
.pw-appliance-tile:not(.selected) .pw-appliance-tile-name { color: #fff; }
.pw-appliance-tile-watts { font-size: 11px; font-weight: 500; color: rgba(255, 255, 255, 0.5); }
.pw-appliance-tile.selected .pw-appliance-tile-watts { color: rgba(255, 255, 255, 0.8); }
.pw-appliance-tile-scan {
  position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%);
  border: none; background: rgba(0, 0, 0, 0.65); border-radius: 999px;
  padding: 4px 10px; font-size: 10px; font-weight: 700; color: #9ec0ff;
  cursor: pointer; display: flex; align-items: center; gap: 4px; font-family: inherit;
}
.pw-appliance-add {
  margin-top: 18px; width: 100%; height: 44px;
  border-style: dashed !important; border-color: rgba(255, 255, 255, 0.25) !important;
}

.pw-load-panel { position: sticky; top: 72px; }
.pw-load-card {
  padding: 22px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-load-title { font-weight: 600; font-size: 16px; color: #fff; }
.pw-load-count { font-size: 13px; font-weight: 600; color: #7eb4ff; }
.pw-load-warn {
  font-size: 12.5px; font-weight: 500; color: #f5a524;
  background: rgba(245, 165, 36, 0.12); padding: 10px 12px; border-radius: 10px; margin-bottom: 14px;
}
.pw-load-stats { display: flex; gap: 10px; margin-bottom: 18px; }
.pw-load-stat {
  flex: 1; background: rgba(255, 255, 255, 0.06); border-radius: 12px; padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-load-stat-lbl { font-size: 12px; font-weight: 500; color: var(--pw-muted); }
.pw-load-stat-val { font-size: 24px; font-weight: 600; color: #fff; margin-top: 4px; }
.pw-load-stat-val span { font-size: 13px; color: var(--pw-faint); font-weight: 500; }
.pw-load-list { display: flex; flex-direction: column; gap: 10px; max-height: 360px; overflow-y: auto; }
.pw-load-list-wrap {
  position: relative;
}
.pw-load-list-wrap.has-more::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 26px;
  height: 52px;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 0%, rgba(6, 6, 8, 0.82) 50%, rgba(6, 6, 8, 0.98) 100%);
  border-radius: 0 0 10px 10px;
}
.pw-load-list-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0;
  padding: 4px 0 2px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.38);
}
.pw-load-list.graded {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}
.pw-load-list.graded::-webkit-scrollbar {
  width: 5px;
}
.pw-load-list.graded::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.18);
  border-radius: 999px;
}
.pw-load-empty { font-size: 13.5px; color: var(--pw-faint); text-align: center; padding: 20px 0; }
.pw-load-item {
  background: rgba(255, 255, 255, 0.06); border-radius: 12px; padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-load-item-name { font-weight: 600; font-size: 13.5px; color: #fff; }
.pw-load-field-lbl { font-size: 11.5px; color: var(--pw-muted); font-weight: 600; }
.pw-load-input { width: 88px; height: 34px; padding: 0 8px; font-size: 14px; }
.pw-load-remove {
  border: none; background: none; cursor: pointer; color: var(--pw-faint); padding: 0;
}
.pw-load-remove:hover { color: #fff; }
.pw-load-continue {
  width: 100%; margin-top: 18px; border-radius: 999px !important; height: 48px;
}
.pw-load-continue:disabled { opacity: 0.45; pointer-events: none; }

@media (max-width: 1024px) {
  .pw-appliances-layout { grid-template-columns: 1fr; gap: 32px; }
  .pw-load-panel { position: static; }
  .pw-appliance-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .pw-appliance-grid { grid-template-columns: repeat(2, 1fr); }
}

/* assessment inspect */
.pw-inspect-lead { font-size: 16px; color: var(--pw-muted); margin-top: 12px; line-height: 1.5; }
.pw-flow .eyebrow { color: var(--pw-muted); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.pw-inspect-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 32px; }
.pw-inspect-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pw-inspect-tile {
  position: relative; cursor: pointer; overflow: hidden; height: 150px;
  border-radius: 16px; display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 10px; font-family: inherit;
  background: rgba(255, 255, 255, 0.04); border: 1.5px dashed rgba(255, 255, 255, 0.18);
  color: #fff; transition: border-color .15s, background .15s;
}
.pw-inspect-tile:hover { border-color: rgba(62, 110, 225, 0.35); }
.pw-inspect-tile.optional { border-style: dashed; }
.pw-inspect-tile.done {
  border-style: solid; border-color: var(--pw-blue);
  background: rgba(62, 110, 225, 0.14);
}
.pw-inspect-tile-pattern {
  position: absolute; inset: 0;
  background: rgba(62, 110, 225, 0.08);
  background-image: repeating-linear-gradient(135deg, rgba(62, 110, 225, 0.12) 0 9px, transparent 9px 18px);
}
.pw-inspect-tile-body { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pw-inspect-tile-check {
  width: 30px; height: 30px; border-radius: 999px; background: var(--pw-blue);
  display: flex; align-items: center; justify-content: center;
}
.pw-inspect-tile-label { font-size: 13px; font-weight: 700; color: #fff; }
.pw-inspect-tile-hint { font-size: 11.5px; font-weight: 700; display: flex; align-items: center; gap: 4px; }
.pw-inspect-tile-hint.required { color: #7eb4ff; }
.pw-inspect-tile-hint.optional { color: var(--pw-faint); }

.pw-region-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  margin-bottom: 16px; max-height: 360px; overflow-y: auto; padding-right: 4px;
}
.pw-region-grid.searching { max-height: 280px; }
.pw-region-card {
  padding: 16px; text-align: left; cursor: pointer; width: 100%; font-family: inherit;
  background: rgba(255, 255, 255, 0.04); border: 1.5px solid rgba(255, 255, 255, 0.1);
  border-radius: 14px; color: #fff; transition: border-color .15s, background .15s;
}
.pw-region-card:hover { border-color: rgba(62, 110, 225, 0.35); }
.pw-region-card.selected {
  background: rgba(62, 110, 225, 0.14); border-color: var(--pw-blue);
}
.pw-region-name { font-weight: 700; font-size: 15px; color: #fff; }
.pw-region-meta { font-size: 12.5px; color: var(--pw-muted); margin-top: 3px; }
.pw-region-distance {
  padding: 18px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-region-distance-title { font-weight: 700; font-size: 14px; color: #fff; }
.pw-region-distance-km { font-weight: 800; color: #7eb4ff; }
.pw-region-distance-note { font-size: 12.5px; color: var(--pw-muted); margin-top: 8px; }
.pw-region-distance-note strong { color: #fff; }
.pw-region-address-hint { font-size: 13px; color: var(--pw-muted); margin-bottom: 12px; line-height: 1.45; }
.pw-region-address-input {
  width: 100%; min-height: 88px; padding: 12px 14px; resize: vertical;
  background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px; color: #fff; font: inherit; line-height: 1.45;
}
.pw-region-address-input:focus { border-color: var(--pw-blue); outline: none; }
.pw-region-address-input::placeholder { color: var(--pw-faint); }

.pw-region-quote-live {
  margin-top: 14px; padding: 16px; border-radius: 14px;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1);
  min-height: 72px;
}
.pw-region-quote-live.is-verified {
  background: rgba(61, 214, 140, 0.08); border-color: rgba(61, 214, 140, 0.28);
}
.pw-region-quote-live.is-loading {
  border-color: rgba(62, 110, 225, 0.35);
}
.pw-region-quote-loading { display: flex; gap: 14px; align-items: center; }
.pw-region-quote-spinner {
  width: 28px; height: 28px; flex-shrink: 0;
  border: 2px solid rgba(255, 255, 255, 0.15); border-top-color: #7eb4ff;
  border-radius: 50%; animation: pw-region-spin 0.85s linear infinite;
}
.pw-region-quote-loading-title { font-weight: 700; font-size: 14px; color: #fff; }
.pw-region-quote-loading-sub { font-size: 12.5px; color: var(--pw-muted); margin-top: 2px; }
.pw-region-quote-result-meta {
  display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: #3dd68c;
}
.pw-region-quote-result-price { font-size: 32px; font-weight: 800; color: #fff; margin-top: 8px; line-height: 1; }
.pw-region-quote-result-sub { font-size: 12px; color: var(--pw-muted); margin-top: 6px; }
.pw-region-quote-demo-tag { color: #7eb4ff; font-weight: 600; }
.pw-region-quote-idle { font-size: 13px; color: var(--pw-muted); text-align: center; padding: 8px 0; }
.pw-region-quote-error {
  display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: #f5a8a8; line-height: 1.45;
}
@keyframes pw-region-spin { to { transform: rotate(360deg); } }

.pw-inspect-review {
  padding: 22px; border-radius: 16px;
  background: rgba(255, 255, 255, 0.04); border: 1.5px solid rgba(62, 110, 225, 0.35);
}
.pw-inspect-section { margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.pw-inspect-section:last-of-type { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.pw-inspect-section-lbl {
  font-size: 11px; font-weight: 800; letter-spacing: .08em; color: var(--pw-faint);
  text-transform: uppercase; margin-bottom: 8px;
}
.pw-inspect-goal-icon {
  width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
  background: rgba(62, 110, 225, 0.2); display: flex; align-items: center; justify-content: center;
}
.pw-inspect-goal-title { font-weight: 800; font-size: 16px; color: #fff; }
.pw-inspect-goal-desc { font-size: 13px; color: var(--pw-muted); margin-top: 2px; }
.pw-inspect-stats { display: flex; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.pw-inspect-stat {
  flex: 1; min-width: 100px; background: rgba(255, 255, 255, 0.06);
  border-radius: 12px; padding: 12px; border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-inspect-stat-lbl { font-size: 11.5px; font-weight: 700; color: var(--pw-muted); }
.pw-inspect-stat-val { font-weight: 800; font-size: 20px; color: #fff; }
.pw-inspect-appliance-row {
  font-size: 13px; padding: 8px 10px; border-radius: 10px;
  background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.08);
  align-items: center;
}
.pw-inspect-appliance-name { font-weight: 600; color: #fff; }
.pw-inspect-appliance-meta { color: var(--pw-muted); font-weight: 600; }
.pw-inspect-photo-row { font-size: 13px; }
.pw-inspect-photo-label { font-weight: 600; color: var(--pw-muted); }
.pw-inspect-photo-label.done { color: #fff; }
.pw-inspect-photo-status { font-size: 12px; font-weight: 700; }
.pw-inspect-photo-status.done { color: #3dd68c; }
.pw-inspect-photo-status.missing { color: var(--pw-faint); }
.pw-inspect-kit {
  padding: 14px; border-radius: 12px;
  background: rgba(255, 255, 255, 0.06); border: 1px dashed rgba(255, 255, 255, 0.15);
}
.pw-inspect-kit-title { font-weight: 700; font-size: 14px; color: #fff; }
.pw-inspect-kit-desc { font-size: 13px; color: var(--pw-muted); margin-top: 2px; }
.pw-inspect-kit-badge {
  font-size: 11px; font-weight: 800; color: var(--pw-faint);
  padding: 5px 9px; border-radius: 999px;
  background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1);
}
.pw-inspect-edit { margin-top: 16px; height: 36px; }
.pw-inspect-footer { margin-top: 36px; }
.pw-inspect-trust { font-size: 13.5px; color: var(--pw-muted); }
.pw-inspect-analyze {
  border-radius: 999px !important; height: 48px;
}
.pw-inspect-analyze:disabled { opacity: 0.45; pointer-events: none; }

@media (max-width: 900px) {
  .pw-inspect-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .pw-region-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .pw-inspect-grid-2,
  .pw-inspect-grid-4 { grid-template-columns: 1fr; }
  .pw-region-grid { grid-template-columns: 1fr; }
  .pw-inspect-footer { flex-direction: column; gap: 16px; align-items: stretch !important; }
  .pw-inspect-analyze { width: 100%; }
}

/* section titles */
.pw-flow .section-title,
.pw-flow h1, .pw-flow h2, .pw-flow h3 { color: inherit; }

/* ---------- charging hub ---------- */
.pw-charging { padding-top: 0; }
.pw-charging-hero-band { padding-bottom: 40px; }
.pw-charging-kicker {
  font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: #7eb4ff; margin-bottom: 12px;
}
.pw-charging-title {
  font-size: clamp(28px, 4vw, 40px); font-weight: 500; letter-spacing: -.02em; line-height: 1.15;
}
.pw-charging-lead { font-size: 16px; color: var(--pw-muted); margin-top: 14px; line-height: 1.55; }
.pw-charging-main { padding: 32px 0 48px; }
.pw-charging-filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px; }
.pw-charging-filter {
  display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 18px;
  border-radius: 999px; border: 1px solid var(--pw-line); background: rgba(255,255,255,.04);
  color: var(--pw-muted); font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
}
.pw-charging-filter:hover { border-color: rgba(62,110,225,.4); color: #fff; }
.pw-charging-filter.active { background: rgba(62,110,225,.18); border-color: var(--pw-blue); color: #fff; }
.pw-charging-layout {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; align-items: start;
}
.pw-charging-map-col { min-height: 420px; border-radius: 16px; overflow: hidden; }
.charging-map-stage { min-height: 420px; }
.pw-charging-side {
  display: flex; flex-direction: column; gap: 12px; max-height: 520px;
}
.pw-charging-side-head {
  display: flex; justify-content: space-between; align-items: center; color: #fff; padding: 0 4px;
}
.pw-charging-live {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: #3dd68c;
}
.pw-charging-live-dot {
  width: 7px; height: 7px; border-radius: 999px; background: #3dd68c;
  animation: pulseGlow 1.6s infinite;
}
.pw-charging-list {
  flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 8px;
  padding-right: 4px;
}
.pw-charging-station {
  text-align: left; padding: 14px 16px; border-radius: 12px;
  border: 1px solid var(--pw-line-faint); background: rgba(255,255,255,.04);
  cursor: pointer; font-family: inherit; color: inherit; width: 100%;
  transition: border-color .15s, background .15s;
}
.pw-charging-station:hover { border-color: rgba(62,110,225,.35); }
.pw-charging-station.selected { border-color: var(--pw-blue); background: rgba(62,110,225,.12); }
.pw-charging-station.offline { opacity: .65; }
.pw-charging-station-name { font-weight: 600; font-size: 14px; color: #fff; }
.pw-charging-station-addr { font-size: 12px; color: var(--pw-muted); margin-top: 3px; }
.pw-charging-station-status {
  font-size: 11px; font-weight: 700; padding: 4px 8px; border-radius: 999px;
  background: rgba(255,255,255,.08); color: var(--pw-muted); flex-shrink: 0;
}
.pw-charging-station-status.on { background: rgba(61,214,140,.15); color: #3dd68c; }
.pw-charging-station-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.charging-tag {
  font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 999px; border: 1px solid var(--pw-line);
}
.charging-tag.vehicle { color: #7eb4ff; border-color: rgba(126,180,255,.35); }
.charging-tag.powerbank { color: #3dd68c; border-color: rgba(61,214,140,.35); }
.charging-tag.swap { color: #f5a524; border-color: rgba(245,165,36,.35); }
.charging-tag.rent { color: #c9a0ff; border-color: rgba(201,160,255,.35); }
.charging-popup-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.pw-charging-actions {
  padding: 16px; border-radius: 14px; border: 1px solid var(--pw-line);
  background: rgba(255,255,255,.05);
}
.pw-charging-actions-title { font-weight: 700; font-size: 15px; color: #fff; }
.pw-charging-actions-meta { font-size: 13px; color: var(--pw-muted); margin-top: 4px; }
.pw-charging-features { padding: 48px 0 80px; border-top: 1px solid var(--pw-line-faint); }
.pw-charging-feature-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.pw-charging-feature { text-align: center; padding: 20px 12px; }
.pw-charging-feature-title { font-weight: 600; font-size: 15px; color: #fff; margin-top: 12px; }
.pw-charging-feature-desc { font-size: 13px; color: var(--pw-muted); margin-top: 6px; line-height: 1.45; }
.pw-charging-modal {
  width: min(440px, 92vw); background: #111; border: 1px solid var(--pw-line);
  border-radius: 16px; overflow: hidden;
}
.pw-charging-modal-body { padding: 20px 24px 24px; }
.pw-charging-modal-body.center { text-align: center; }
.pw-charging-modal-station {
  padding: 14px; border-radius: 12px; background: rgba(255,255,255,.05);
  border: 1px solid var(--pw-line-faint); margin-bottom: 16px;
}
.pw-charging-modal-station-name { font-weight: 700; font-size: 15px; color: #fff; }
.pw-charging-modal-station-meta { font-size: 13px; color: var(--pw-muted); margin-top: 4px; }
.pw-charging-modal-copy { font-size: 14px; color: var(--pw-muted); line-height: 1.5; margin: 0 0 12px; }
.pw-charging-modal-row {
  display: flex; justify-content: space-between; font-size: 14px; padding: 8px 0;
  border-bottom: 1px solid var(--pw-line-faint); color: var(--pw-muted);
}
.pw-charging-modal-row span:last-child { color: #fff; font-weight: 600; }
.pw-charging-modal-row.total { border-bottom: none; font-weight: 700; margin-top: 4px; }
.pw-charging-modal-label { font-size: 12px; font-weight: 700; color: var(--pw-faint); display: block; margin-bottom: 8px; }
.pw-charging-battery-type {
  width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04); color: rgba(255,255,255,.85); cursor: pointer; transition: border-color .2s, background .2s;
}
.pw-charging-battery-type:hover { border-color: rgba(126,180,255,.35); }
.pw-charging-battery-type.active { border-color: var(--pw-blue); background: rgba(62,110,225,.12); }
.pw-charging-rent-days { display: flex; gap: 8px; margin-bottom: 16px; }
.pw-charging-rent-day {
  flex: 1; height: 40px; border-radius: 8px; border: 1px solid var(--pw-line);
  background: rgba(255,255,255,.04); color: var(--pw-muted); font-weight: 700;
  font-family: inherit; cursor: pointer;
}
.pw-charging-rent-day.active { border-color: var(--pw-blue); background: rgba(62,110,225,.15); color: #fff; }
.pw-charging-confirm-icon { margin-bottom: 12px; }
.pw-charging-confirm-title { font-weight: 700; font-size: 20px; color: #fff; margin-bottom: 8px; }

/* assessment + energy — Tesla-grade typography (matches charging graded) */
.pw-assessment-graded.pw-assessment-flow .pw-marketing-hero-inner,
.pw-energy-graded .pw-marketing-hero-inner {
  max-width: min(920px, 94vw);
}
.pw-assessment-graded .pw-charging-title,
.pw-energy-graded .pw-charging-title {
  font-size: clamp(26px, 3.2vw, 36px);
}
.pw-assessment-graded .pw-charging-lead,
.pw-energy-graded .pw-charging-lead {
  font-size: 15px;
  max-width: none;
}

/* Premium graded assessment goal — calmer, editorial layout */
.pw-assessment-graded .pw-assessment-hero-premium {
  padding: 28px 0 20px;
}
.pw-assessment-graded .pw-assessment-hero-premium .pw-marketing-hero-inner {
  max-width: 560px;
  margin: 0 auto;
  text-align: left;
}
.pw-assessment-graded .pw-assessment-step-badge {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.38);
  margin: 0 0 14px;
}
.pw-assessment-graded .pw-assessment-hero-lead {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.48);
  max-width: 42ch;
}
.pw-assessment-graded .pw-assessment-shell {
  max-width: 560px;
  margin: 0 auto;
  padding-bottom: 48px;
}
.pw-assessment-graded .pw-assessment-section {
  margin-bottom: 32px;
}
.pw-assessment-graded .pw-assessment-section-goals {
  margin-top: 8px;
  padding-top: 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  animation: pw-assessment-reveal 0.35s ease-out;
}
@keyframes pw-assessment-reveal {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.pw-assessment-graded .pw-assessment-section-title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
  margin: 0 0 14px;
}
.pw-fork-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.pw-fork-grid:has(.pw-fork-card:only-child) {
  grid-template-columns: 1fr;
}
.pw-fork-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  min-height: 220px;
  padding: 28px 26px;
  text-align: left;
  cursor: pointer;
  width: 100%;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  color: #fff;
  font-family: inherit;
  transition: border-color 0.2s, background 0.2s;
}
.pw-fork-card:hover {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.05);
}
.pw-fork-card.selected {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.55);
}
.pw-fork-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
}
.pw-fork-kicker {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
  margin-bottom: 6px;
}
.pw-fork-title {
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.15;
  margin-bottom: 8px;
}
.pw-fork-sub {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.5);
  max-width: 28ch;
}
.pw-fork-check {
  position: absolute;
  top: 22px;
  right: 22px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.12);
}
@media (max-width: 720px) {
  .pw-fork-grid { grid-template-columns: 1fr; }
  .pw-fork-card { min-height: 0; }
}
.pw-assessment-graded .pw-assessment-section-lead {
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.44);
  margin: -6px 0 16px;
  max-width: 38ch;
}
.pw-assessment-graded .pw-path-grid-graded {
  grid-template-columns: 1fr;
  gap: 8px;
}
.pw-assessment-graded .pw-path-card.graded {
  padding: 16px 18px;
  gap: 14px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
}
.pw-assessment-graded .pw-path-card.graded:hover:not(.disabled) {
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.035);
}
.pw-assessment-graded .pw-path-card.graded.selected {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.55);
}
.pw-assessment-graded .pw-path-card.graded .pw-path-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
}
.pw-assessment-graded .pw-path-card.graded.selected .pw-path-icon {
  background: rgba(255, 255, 255, 0.1);
}
.pw-assessment-graded .pw-path-card.graded .pw-path-title {
  font-weight: 500;
  font-size: 15px;
}
.pw-assessment-graded .pw-path-card.graded .pw-path-sub {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.38);
  margin-top: 2px;
}
.pw-assessment-graded .pw-path-indicator.graded {
  width: 22px;
  height: 22px;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 999px;
}
.pw-assessment-graded .pw-goal-grid-graded {
  grid-template-columns: 1fr;
  gap: 6px;
}
.pw-assessment-graded .pw-goal-card.graded {
  padding: 14px 16px;
  gap: 14px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
}
.pw-assessment-graded .pw-goal-card.graded:hover {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.035);
}
.pw-assessment-graded .pw-goal-card.graded.selected {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.55);
}
.pw-assessment-graded .pw-goal-card.graded .pw-goal-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
}
.pw-assessment-graded .pw-goal-card.graded.selected .pw-goal-icon {
  background: rgba(255, 255, 255, 0.1);
}
.pw-assessment-graded .pw-goal-card.graded .pw-goal-title {
  font-weight: 500;
  font-size: 15px;
}
.pw-assessment-graded .pw-goal-card.graded .pw-goal-desc {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.38);
}
.pw-assessment-graded .pw-goal-check.graded {
  width: 22px;
  height: 22px;
  background: rgba(255, 255, 255, 0.12);
  border: none;
}
.pw-assessment-graded .pw-assessment-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.pw-assessment-graded .pw-charging-title {
  font-weight: 500;
  letter-spacing: -0.03em;
}

/* graded appliances */
.pw-assessment-graded .pw-appliances-shell {
  max-width: 820px;
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 32px;
  align-items: start;
}
.pw-assessment-graded .pw-appliances-shell > .pw-assessment-step-header,
.pw-assessment-graded .pw-appliances-shell > header {
  grid-column: 1 / -1;
}
.pw-assessment-graded .pw-appliances-shell > .pw-assessment-section {
  grid-column: 1;
}
.pw-assessment-graded .pw-appliances-shell > .pw-load-panel {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
}
.pw-assessment-graded .pw-appliance-scan.graded {
  margin: 0 0 18px;
  padding: 14px 16px;
  gap: 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-assessment-graded .pw-appliance-scan.graded .pw-appliance-scan-title {
  font-weight: 500;
  font-size: 14px;
}
.pw-assessment-graded .pw-appliance-scan.graded .pw-appliance-scan-sub {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.38);
}
.pw-assessment-graded .pw-appliance-cats.graded {
  gap: 0;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
}
.pw-assessment-graded .pw-appliance-cats.graded::-webkit-scrollbar { display: none; }
.pw-assessment-graded .pw-filter-link.graded {
  flex: 0 0 auto;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.38);
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
}
.pw-assessment-graded .pw-filter-link.graded:hover {
  color: rgba(255, 255, 255, 0.7);
}
.pw-assessment-graded .pw-filter-link.graded.active {
  color: #fff;
  border-bottom-color: rgba(255, 255, 255, 0.45);
  background: transparent;
}
.pw-assessment-graded .pw-appliance-grid.graded {
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.pw-assessment-graded .pw-appliance-tile-wrap {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  transition: border-color 0.15s, background 0.15s;
}
.pw-assessment-graded .pw-appliance-tile-wrap:hover {
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.035);
}
.pw-assessment-graded .pw-appliance-tile-wrap:has(.pw-appliance-tile.selected) {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.5);
}
.pw-assessment-graded .pw-appliance-tile.graded {
  flex: 1;
  padding: 16px 8px 10px;
  border-radius: 12px 12px 0 0;
  border: none;
  background: transparent;
  gap: 8px;
}
.pw-assessment-graded .pw-appliance-tile.graded:hover {
  border: none;
  background: transparent;
}
.pw-assessment-graded .pw-appliance-tile.graded.selected {
  background: transparent;
  border: none;
  box-shadow: none;
}
.pw-assessment-graded .pw-appliance-tile-wrap .pw-appliance-tile-scan {
  position: static;
  transform: none;
  align-self: center;
  margin: 0 8px 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.65);
  padding: 5px 12px;
  font-size: 10px;
  font-weight: 600;
}
.pw-assessment-graded .pw-appliance-tile-hint {
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.38);
  margin-top: 2px;
  line-height: 1.3;
}
.pw-assessment-graded .pw-appliance-tile.graded .pw-appliance-tile-name {
  font-size: 12px;
  font-weight: 500;
}
.pw-assessment-graded .pw-appliance-tile.graded .pw-appliance-tile-watts {
  font-size: 10.5px;
}
.pw-assessment-graded .pw-appliance-add.graded {
  margin-top: 14px;
  height: 42px;
  font-size: 13px;
}
.pw-assessment-graded .pw-load-panel.graded {
  position: sticky;
  top: 72px;
}
.pw-assessment-graded .pw-load-card.graded {
  padding: 18px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
}
.pw-assessment-graded .pw-load-count {
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
}
.pw-assessment-graded .pw-load-stat {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.06);
  padding: 12px;
}
.pw-assessment-graded .pw-load-stat-val {
  font-size: 20px;
  font-weight: 500;
}
.pw-assessment-graded .pw-load-item {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.06);
}
.pw-assessment-graded .pw-load-continue.graded {
  height: 44px;
  font-size: 14px;
}
.pw-assessment-graded .pw-load-list.graded {
  max-height: 320px;
}
@media (max-width: 1024px) {
  .pw-assessment-graded .pw-load-list.graded {
    max-height: min(240px, 42vh);
  }
}
@media (max-width: 1024px) {
  .pw-assessment-graded .pw-appliances-shell {
    grid-template-columns: 1fr;
  }
  .pw-assessment-graded .pw-appliances-shell > .pw-load-panel {
    grid-column: 1;
    grid-row: auto;
    position: static;
  }
}
@media (max-width: 640px) {
  .pw-assessment-graded .pw-appliance-grid.graded {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* graded site inspect */
.pw-assessment-graded .pw-inspect-shell {
  max-width: 880px;
}
.pw-assessment-graded .pw-inspect-grid-2.graded,
.pw-assessment-graded .pw-inspect-grid-4.graded {
  grid-template-columns: 1fr;
  gap: 6px;
  margin-bottom: 0;
}
.pw-assessment-graded .pw-inspect-tile.graded {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  padding: 14px 16px;
  min-height: auto;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  text-align: left;
}
.pw-assessment-graded .pw-inspect-tile.graded:hover {
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.035);
}
.pw-assessment-graded .pw-inspect-tile.graded.optional {
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.1);
}
.pw-assessment-graded .pw-inspect-tile.graded.done {
  position: relative;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-end;
  gap: 0;
  height: 200px;
  min-height: 200px;
  padding: 0;
  overflow: hidden;
  border-color: rgba(255, 255, 255, 0.2);
  background: #06152b;
  box-shadow: none;
}
.pw-inspect-tile-preview {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pw-inspect-tile-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 21, 43, 0.08) 30%, rgba(6, 21, 43, 0.82) 100%);
  pointer-events: none;
}
.pw-inspect-tile-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
  margin-left: auto;
  flex-shrink: 0;
  max-width: 100%;
}
.pw-inspect-tile-actions button {
  height: 32px;
  padding: 0 12px;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}
.pw-inspect-tile-actions .pw-inspect-tile-remove {
  background: rgba(255, 255, 255, 0.08);
}
.pw-inspect-tile-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.pw-inspect-photo-thumb {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
}
.pw-assessment-graded .pw-inspect-tile-icon-wrap {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pw-assessment-graded .pw-inspect-tile.graded .pw-inspect-tile-label {
  font-size: 14px;
  font-weight: 500;
  flex: 1;
  text-align: left;
}
.pw-assessment-graded .pw-inspect-tile.graded .pw-inspect-tile-hint {
  font-size: 11px;
  font-weight: 500;
  margin-left: auto;
  flex-shrink: 0;
}
.pw-assessment-graded .pw-inspect-tile.graded .pw-inspect-tile-hint.required {
  color: rgba(255, 255, 255, 0.38);
}
.pw-assessment-graded .pw-inspect-tile.graded.done .pw-inspect-tile-body {
  position: relative;
  z-index: 2;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 14px 16px;
}
.pw-assessment-graded .pw-inspect-tile.graded.done .pw-inspect-tile-remove {
  margin-left: auto;
  flex-shrink: 0;
}
.pw-assessment-graded .pw-inspect-tile.graded .pw-inspect-tile-check {
  width: 28px;
  height: 28px;
  background: rgba(61, 214, 140, 0.15);
  border-radius: 999px;
}
.pw-assessment-graded .pw-inspect-review.graded {
  padding: 18px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
}
.pw-assessment-graded .pw-inspect-section-lbl {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.38);
  font-weight: 600;
}
.pw-assessment-graded .pw-inspect-goal-icon.graded {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pw-assessment-graded .pw-inspect-goal-title {
  font-weight: 500;
  font-size: 15px;
}
.pw-assessment-graded .pw-inspect-stat {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.06);
}
.pw-assessment-graded .pw-inspect-stat-val {
  font-weight: 500;
  font-size: 18px;
}
.pw-assessment-graded .pw-inspect-edit.graded {
  width: 100%;
  justify-content: center;
  border-color: rgba(255, 255, 255, 0.12);
  background: transparent;
}
.pw-assessment-graded .pw-inspect-address-hint {
  font-size: 13px;
  color: rgba(245, 197, 66, 0.85);
  margin: 0 0 16px;
  text-align: center;
}
.pw-assessment-graded .pw-inspect-footer.graded {
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  margin-top: 8px;
  padding-top: 24px;
}
.pw-assessment-graded .pw-inspect-trust-row {
  justify-content: center;
}
.pw-assessment-graded .pw-inspect-analyze.graded {
  width: 100%;
}

/* graded analyzing */
.pw-assessment-graded .pw-analyzing-stage.graded {
  min-height: calc(100vh - 64px);
  gap: 28px;
  max-width: 480px;
  margin: 0 auto;
}
.pw-assessment-graded .pw-analyzing-spinner {
  position: relative;
  width: 120px;
  height: 120px;
}
.pw-assessment-graded .pw-analyzing-spinner-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.pw-assessment-graded .pw-analyzing-spinner-arc {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid transparent;
  border-top-color: rgba(255, 255, 255, 0.45);
  animation: spin 1s linear infinite;
}
.pw-assessment-graded .pw-analyzing-spinner-core {
  position: absolute;
  inset: 20px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pw-assessment-graded .pw-analyzing-header {
  text-align: center;
}
.pw-assessment-graded .pw-analyzing-header .pw-charging-title {
  font-size: clamp(22px, 4vw, 28px);
  margin-top: 8px;
}
.pw-assessment-graded .pw-analyzing-steps {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pw-assessment-graded .pw-analyzing-step {
  display: flex;
  align-items: center;
  gap: 12px;
  opacity: 0.32;
  transition: opacity 0.35s ease;
}
.pw-assessment-graded .pw-analyzing-step.done,
.pw-assessment-graded .pw-analyzing-step.active {
  opacity: 1;
}
.pw-assessment-graded .pw-analyzing-step-icon {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.08);
}
.pw-assessment-graded .pw-analyzing-step.done .pw-analyzing-step-icon {
  background: rgba(61, 214, 140, 0.15);
}
.pw-assessment-graded .pw-analyzing-step-pulse {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  animation: pulseGlow 1.2s ease-in-out infinite;
}
.pw-assessment-graded .pw-analyzing-step-label {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
}

/* graded report */
.pw-report-graded .pw-report-hero.graded {
  padding: 32px 0 36px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.pw-report-graded .pw-report-hero-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
  max-width: 820px;
  margin: 0 auto;
}
.pw-report-graded .pw-report-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}
.pw-report-graded .pw-report-download {
  height: 48px;
  padding: 0 20px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.88);
}
.pw-report-graded .pw-report-download:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}
.pw-report-graded .pw-report-confidence-val {
  font-size: 40px;
  font-weight: 500;
  color: #fff;
  line-height: 1;
}
.pw-report-graded .pw-report-confidence-lbl {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
  margin-top: 6px;
}
.pw-report-graded .pw-report-body {
  max-width: 820px;
  padding-bottom: 56px;
}
.pw-report-graded .pw-report-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 32px;
  align-items: start;
}
.pw-report-graded .pw-report-stat-grid {
  display: grid;
  gap: 10px;
}
.pw-report-graded .pw-report-stat-grid-2 {
  grid-template-columns: repeat(2, 1fr);
}
.pw-report-graded .pw-report-stat-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}
.pw-report-graded .pw-report-savings.graded {
  padding: 20px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
}
.pw-report-graded .pw-report-savings-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
}
.pw-report-graded .pw-report-savings-val {
  font-size: 32px;
  font-weight: 500;
  color: #fff;
  margin-top: 8px;
}
.pw-report-graded .pw-report-savings-year {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.45);
  margin-top: 4px;
}
.pw-report-graded .pw-report-savings-rows {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pw-report-graded .pw-report-savings-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55);
}
.pw-report-graded .pw-report-savings-row .tnum {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
}
.pw-report-graded .pw-report-side {
  position: sticky;
  top: 72px;
}
.pw-report-graded .pw-report-side-cta {
  width: 100%;
  margin-top: 14px;
}
.pw-report-graded .pw-confidence-list.graded .pw-confidence-row {
  border-color: rgba(255, 255, 255, 0.06);
}
@media (max-width: 900px) {
  .pw-report-graded .pw-report-hero-inner,
  .pw-report-graded .pw-report-layout {
    grid-template-columns: 1fr;
  }
  .pw-report-graded .pw-report-confidence {
    justify-self: start;
  }
  .pw-report-graded .pw-report-side {
    position: static;
  }
  .pw-report-graded .pw-report-stat-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 560px) {
  .pw-report-graded .pw-report-stat-grid-2,
  .pw-report-graded .pw-report-stat-grid-3 {
    grid-template-columns: 1fr;
  }
}

.pw-energy-graded .pw-hero-cta {
  margin-top: 24px;
}

.pw-charging-graded .pw-charging-hero-band {
  padding-bottom: 24px;
}
.pw-charging-graded .pw-marketing-hero-inner {
  max-width: min(920px, 94vw);
}
.pw-charging-graded .pw-charging-title {
  font-size: clamp(26px, 3.2vw, 36px);
}
.pw-charging-graded .pw-charging-lead {
  font-size: 15px;
  max-width: none;
}
.pw-charging-graded .pw-charging-hero-cta {
  margin-top: 24px;
  justify-content: center;
}
@media (min-width: 900px) {
  .pw-charging-graded .pw-charging-title,
  .pw-charging-graded .pw-charging-lead {
    white-space: normal;
  }
}
.pw-charging-graded .pw-charging-main {
  padding: 24px 0 56px;
}
.pw-charging-graded .pw-charging-filters {
  gap: 0;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--pw-line-faint);
}
.pw-charging-graded .pw-charging-filters::-webkit-scrollbar {
  display: none;
}
.pw-charging-graded .pw-charging-filter {
  flex: 1 0 auto;
  height: auto;
  min-height: 40px;
  padding: 10px 16px;
  border-radius: 0;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-size: 12px;
  font-weight: 500;
  color: var(--pw-faint);
  white-space: nowrap;
}
.pw-charging-graded .pw-charging-filter:hover {
  color: rgba(255, 255, 255, 0.75);
}
.pw-charging-graded .pw-charging-filter.active {
  color: #fff;
  border-bottom-color: var(--pw-blue);
  background: transparent;
}
.pw-charging-graded .pw-charging-layout {
  gap: 16px;
}
.pw-charging-graded .pw-charging-map-col {
  border: 1px solid var(--pw-line-faint);
  border-radius: 14px;
  min-height: 460px;
}
.pw-charging-graded .pw-charging-side {
  max-height: 560px;
  gap: 10px;
}
.pw-charging-graded .pw-charging-side-head {
  padding: 0 2px 4px;
}
.pw-charging-graded .pw-charging-side-count {
  font-size: 13px;
  font-weight: 600;
  color: #fff;
}
.pw-charging-graded .pw-charging-live {
  font-size: 11px;
  font-weight: 600;
  color: var(--pw-faint);
  letter-spacing: 0.04em;
}
.pw-charging-graded .pw-charging-live-dot {
  background: #3dd68c;
  opacity: 0.85;
}
.pw-charging-graded .pw-charging-station {
  padding: 14px 16px;
  border-radius: 12px;
  border-width: 1px;
  background: rgba(255, 255, 255, 0.03);
}
.pw-charging-graded .pw-charging-station.selected {
  background: rgba(62, 110, 225, 0.08);
}
.pw-charging-graded .pw-charging-station-distance {
  font-size: 11px;
  color: var(--pw-faint);
  font-weight: 600;
  margin-top: 4px;
}
.pw-charging-graded .charging-tag {
  text-transform: none;
  letter-spacing: 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--pw-muted);
  border-color: var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.03);
}
.pw-charging-graded .charging-tag.vehicle,
.pw-charging-graded .charging-tag.powerbank,
.pw-charging-graded .charging-tag.swap,
.pw-charging-graded .charging-tag.rent {
  color: var(--pw-muted);
  border-color: var(--pw-line-faint);
}
.pw-charging-graded .pw-charging-actions {
  padding: 16px 18px;
  border-radius: 12px;
  border-color: var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.03);
}
.pw-charging-graded .pw-charging-actions-title {
  font-weight: 600;
  font-size: 14px;
}
.pw-charging-graded .pw-charging-actions-meta {
  font-size: 12px;
}
.pw-charging-graded .pw-charging-features {
  padding: 56px 0 72px;
}
.pw-charging-graded .pw-charging-feature-grid {
  gap: 20px;
}
.pw-charging-graded .pw-charging-feature {
  text-align: left;
  padding: 0;
}
.pw-charging-graded .pw-charging-feature-title {
  font-size: 14px;
  font-weight: 600;
  margin-top: 10px;
}
.pw-charging-graded .pw-charging-feature-desc {
  font-size: 13px;
  line-height: 1.45;
  margin-top: 4px;
}
.pw-charging-graded .pw-charging-partner-band {
  margin-top: 48px;
  padding: 28px 32px;
  border-radius: 14px;
  border: 1px solid var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.03);
}
.pw-charging-graded .pw-charging-partner-kicker {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pw-faint);
  margin: 0;
}
.pw-charging-graded .pw-charging-partner-title {
  font-size: clamp(20px, 3vw, 26px);
  font-weight: 500;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 10px 0 8px;
}
.pw-charging-graded .pw-charging-partner-lead {
  font-size: 14px;
  color: var(--pw-muted);
  line-height: 1.55;
  max-width: 52em;
  margin: 0 0 18px;
}
.pw-charging-graded .pw-charging-partner-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-bottom: 20px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.65);
}
.pw-charging-graded .pw-charging-partner-steps span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.pw-charging-graded .pw-charging-partner-cta {
  border-radius: 999px;
}
.pw-charging-graded .pw-charging-footer-cta {
  justify-content: center;
  margin-top: 36px;
}

@media (max-width: 960px) {
  .pw-charging-graded .pw-charging-title,
  .pw-charging-graded .pw-charging-lead {
    white-space: normal;
  }
  .pw-charging-graded .pw-charging-feature-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Premium charging flow — assessment-grade canvas */
.pw-charging-flow.pw-assessment-graded .pw-charging-hero-band {
  padding-bottom: 28px;
}
.pw-charging-flow.pw-assessment-graded .pw-assessment-hero-premium .pw-marketing-hero-inner {
  max-width: min(640px, 94vw);
  margin: 0 auto;
  text-align: center;
}
.pw-charging-flow.pw-assessment-graded .pw-assessment-step-header {
  text-align: center;
}
.pw-charging-flow.pw-assessment-graded .pw-assessment-hero-lead {
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}
.pw-charging-flow.pw-assessment-graded .pw-charging-shell {
  max-width: min(1120px, 94vw);
  margin: 0 auto;
}
.pw-charging-flow.pw-assessment-graded .pw-charging-map-section {
  padding: 8px 0 40px;
}
.pw-charging-flow.pw-assessment-graded .pw-charging-map-section .pw-assessment-section-title {
  margin-bottom: 18px;
}
.pw-charging-flow.pw-assessment-graded .pw-charging-list-scroll {
  position: relative;
  max-height: min(420px, 52vh);
  overflow-y: auto;
  padding-bottom: 28px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
}
.pw-charging-flow.pw-assessment-graded .pw-charging-list-scroll::after {
  content: "";
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  display: block;
  height: 36px;
  margin-top: -36px;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, rgba(8, 12, 22, 0.92));
}
.pw-charging-flow.pw-assessment-graded .pw-charging-station.graded.selected {
  box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.45);
}
.pw-charging-flow.pw-assessment-graded .pw-charging-actions.graded {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
}
.pw-charging-flow.pw-assessment-graded .pw-charging-features {
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.pw-charging-flow.pw-assessment-graded .pw-charging-features .pw-assessment-section-title {
  margin-bottom: 20px;
}
.pw-charging-flow.pw-assessment-graded .pw-charging-feature.graded {
  padding: 20px 18px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  transition: border-color 0.15s ease, background 0.15s ease;
}
.pw-charging-flow.pw-assessment-graded .pw-charging-feature.graded:hover {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.035);
}
.pw-charging-flow.pw-assessment-graded .pw-charging-feature-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
  margin-bottom: 4px;
}
.pw-charging-flow.pw-assessment-graded .pw-charging-partner-band.graded {
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
}
.pw-charging-modal-overlay.graded {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  background: rgba(4, 8, 18, 0.72);
  backdrop-filter: blur(8px);
}
.pw-charging-modal.graded {
  width: min(440px, 100%);
  max-height: min(90vh, 720px);
  overflow: auto;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: linear-gradient(165deg, rgba(18, 26, 44, 0.98) 0%, rgba(10, 14, 26, 0.99) 100%);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.55);
}
.pw-charging-modal-body.graded {
  padding: 0 22px 22px;
}
.pw-charging-modal.graded .pw-scanner-option.graded.active {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.45);
}
@media (max-width: 960px) {
  .pw-charging-flow.pw-assessment-graded .pw-charging-feature-grid {
    grid-template-columns: 1fr;
  }
  .pw-charging-flow.pw-assessment-graded .pw-charging-list-scroll {
    max-height: none;
    padding-bottom: 0;
  }
  .pw-charging-flow.pw-assessment-graded .pw-charging-list-scroll::after {
    display: none;
  }
}

/* ---------- charging partner application — Tesla-graded form ---------- */
.pw-partner { padding-top: 0; padding-bottom: 64px; }

/* hero CTAs share the rounded landing-hero pill treatment */
.pw-partner .pw-marketing-hero .pw-hero-cta { margin-top: 28px; }

/* trust / stats band — mirrors the landing stats row */
.pw-partner-stats { border-bottom: 1px solid var(--pw-line-faint); }
.pw-partner-stats .pw-stats { padding: 44px 24px; }
.pw-partner-stats .pw-stat-val span { font-size: .45em; opacity: .7; font-weight: 600; }

/* how-it-works section — mirrors landing "How it works" cadence */
.pw-partner-how {
  max-width: var(--pw-max); margin: 0 auto; padding: 64px 24px;
  border-bottom: 1px solid var(--pw-line-faint);
}
.pw-partner-how-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 36px;
}
@media (max-width: 760px) { .pw-partner-how-grid { grid-template-columns: 1fr; } }
.pw-partner-how-card {
  padding: 24px; border-radius: 16px; border: 1px solid var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.03);
}
.pw-partner-how-icon {
  width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center;
  justify-content: center; background: rgba(62, 110, 225, 0.12); border: 1px solid rgba(62, 110, 225, 0.3);
  margin-bottom: 16px;
}
.pw-partner-how-step {
  font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pw-faint);
}
.pw-partner-how-title { font-size: 16px; font-weight: 600; color: #fff; margin-top: 6px; }
.pw-partner-how-desc { font-size: 13.5px; color: var(--pw-muted); margin-top: 8px; line-height: 1.5; }

/* application section heading block */
.pw-partner-formhead { max-width: 880px; margin: 0 auto; padding: 64px 20px 0; }
.pw-partner-formhead .pw-section-lead { max-width: 620px; }

.pw-partner-wrap { max-width: 880px; margin: 0 auto; padding: 28px 20px 0; }

.pw-partner-steps {
  display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px;
}
.pw-partner-step {
  display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px;
  border-radius: 999px; border: 1px solid var(--pw-line-faint); background: rgba(255, 255, 255, 0.04);
  color: var(--pw-muted); font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
  white-space: nowrap; transition: border-color .15s, color .15s, background .15s;
}
.pw-partner-step:hover { color: #fff; }
.pw-partner-step.done { color: rgba(255, 255, 255, 0.7); }
.pw-partner-step.active { border-color: var(--pw-blue); background: rgba(62, 110, 225, 0.15); color: #fff; }
.pw-partner-step:disabled { cursor: default; }

.pw-partner-card {
  padding: 28px; border-radius: 16px; border: 1px solid var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.03); display: flex; flex-direction: column; gap: 20px;
}
.pw-partner-h { font-size: 20px; font-weight: 500; letter-spacing: -.01em; color: #fff; margin: 0; }
.pw-partner-sub { font-size: 14px; color: var(--pw-muted); line-height: 1.5; margin: 6px 0 0; }
.pw-partner-note { font-size: 13.5px; color: var(--pw-muted); line-height: 1.5; margin: 0; }
.pw-partner-note strong { color: #fff; font-weight: 600; }

.pw-partner-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 640px) { .pw-partner-grid { grid-template-columns: 1fr; } }

.pw-partner-field { display: flex; flex-direction: column; gap: 6px; }
.pw-partner-label { font-size: 12px; font-weight: 600; letter-spacing: .02em; color: rgba(255, 255, 255, 0.82); }
.pw-partner-hint { font-size: 12px; color: var(--pw-faint); line-height: 1.4; }
.pw-partner-input {
  width: 100%; padding: 11px 13px; border-radius: 10px; border: 1px solid var(--pw-line);
  background: rgba(255, 255, 255, 0.04); color: #fff; font-family: inherit; font-size: 14px;
  font-weight: 500; transition: border-color .15s, background .15s;
}
.pw-partner-input:focus { outline: none; border-color: var(--pw-blue); background: rgba(62, 110, 225, 0.08); }
.pw-partner-input::placeholder { color: var(--pw-faint); }
select.pw-partner-input option { color: #111; }

.pw-partner-tiers { display: flex; flex-direction: column; gap: 12px; }
.pw-partner-tier {
  display: flex; gap: 14px; align-items: flex-start; flex-wrap: wrap; width: 100%; padding: 18px;
  border-radius: 14px; text-align: left; cursor: pointer; border: 1px solid var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.03); color: #fff; font-family: inherit;
  transition: border-color .15s, background .15s;
}
.pw-partner-tier:hover { border-color: rgba(62, 110, 225, 0.4); }
.pw-partner-tier.active { border-color: var(--pw-blue); background: rgba(62, 110, 225, 0.1); }
.pw-partner-tier-name { font-weight: 600; font-size: 16px; color: #fff; }
.pw-partner-tier-foot { font-size: 12px; font-weight: 600; color: var(--pw-faint); }
.pw-partner-tier-summary { font-size: 13.5px; color: var(--pw-muted); margin: 6px 0 0; line-height: 1.45; }
.pw-partner-tag {
  font-size: 11px; font-weight: 600; padding: 4px 8px; border-radius: 6px;
  background: rgba(255, 255, 255, 0.06); color: var(--pw-muted); border: 1px solid var(--pw-line-faint);
}
.pw-partner-tag.slots { color: #7eb4ff; border-color: rgba(126, 180, 255, 0.35); background: rgba(126, 180, 255, 0.08); }

.pw-partner-checks { display: flex; flex-direction: column; gap: 10px; }
.pw-partner-check {
  display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  font-size: 14px; font-weight: 500; color: rgba(255, 255, 255, 0.85);
}
.pw-partner-check input { accent-color: var(--pw-blue); width: 16px; height: 16px; flex-shrink: 0; }

.pw-partner-summary {
  padding: 18px; border-radius: 12px; border: 1px solid var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.04); display: flex; flex-direction: column;
}
.pw-partner-summary-row {
  display: flex; justify-content: space-between; gap: 16px; padding: 9px 0;
  border-bottom: 1px solid var(--pw-line-faint); font-size: 14px;
}
.pw-partner-summary-row:last-child { border-bottom: none; }
.pw-partner-summary-row .k { color: var(--pw-muted); font-weight: 500; }
.pw-partner-summary-row .v { color: #fff; font-weight: 600; text-align: right; }

.pw-partner-error {
  margin-bottom: 16px; padding: 12px 14px; border-radius: 10px;
  background: rgba(255, 77, 79, 0.12); border: 1px solid rgba(255, 77, 79, 0.32);
  color: #ff8a8c; font-weight: 600; font-size: 13.5px;
}

.pw-partner-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }

.pw-partner-info {
  margin-top: 24px; padding: 18px 20px; border-radius: 12px; border: 1px solid var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.03); display: flex; gap: 14px; align-items: flex-start; flex-wrap: wrap;
}
.pw-partner-info-text { flex: 1; min-width: 240px; font-size: 14px; color: var(--pw-muted); line-height: 1.5; }
.pw-partner-info-text strong { color: #fff; font-weight: 600; }
.pw-partner-info-text a { color: #fff; font-weight: 600; text-underline-offset: 3px; }

.pw-partner-success {
  max-width: 520px; margin: 48px auto; padding: 36px; text-align: center; border-radius: 16px;
  border: 1px solid var(--pw-line-faint); background: rgba(255, 255, 255, 0.03);
  display: flex; flex-direction: column; gap: 16px; align-items: center;
}
.pw-partner-success h1 { font-weight: 600; font-size: 26px; letter-spacing: -.01em; margin: 0; color: #fff; }
.pw-partner-success p { font-size: 15px; color: var(--pw-muted); line-height: 1.55; margin: 0; }
.pw-partner-success p strong { color: #fff; }
.pw-partner-next {
  width: 100%; padding: 16px; border-radius: 12px; border: 1px solid var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.04); text-align: left;
}
.pw-partner-next-label { font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--pw-faint); }
.pw-partner-next-body { font-size: 14px; line-height: 1.6; color: var(--pw-muted); margin-top: 8px; }

.pw-charging-graded.pw-partner .pw-partner-formhead,
.pw-charging-graded.pw-partner .pw-partner-wrap {
  max-width: 880px;
}
.pw-charging-graded.pw-partner #application {
  scroll-margin-top: 96px;
}
.pw-charging-graded.pw-partner .pw-charging-shell {
  padding-top: 8px;
  padding-bottom: 0;
}
.pw-charging-graded.pw-partner .pw-charging-partner-band.graded {
  margin-top: 8px;
  margin-bottom: 8px;
}
.pw-charging-graded.pw-partner .pw-partner-tag.slots {
  color: rgba(255, 255, 255, 0.72);
  border-color: var(--pw-line-faint);
  background: rgba(255, 255, 255, 0.06);
}
.pw-charging-graded.pw-partner .pw-partner-step.active,
.pw-charging-graded.pw-partner .pw-partner-tier.active {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.06);
}
.pw-charging-graded.pw-partner .pw-partner-input:focus {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.06);
}
.pw-charging-graded.pw-partner .pw-partner-how-icon {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--pw-line-faint);
}

.charging-map-chip { max-width: 320px; }

/* ---------- energy landing & designer ---------- */
.pw-energy-page { padding-top: 0; }

/* ---------- finance landing ---------- */
.pw-finance-page { padding-top: 0; }
.pw-finance-econ,
.pw-finance-options,
.pw-finance-tiers,
.pw-finance-message,
.pw-finance-steps { padding: 56px 0; }
.pw-finance-message-inner {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}
.pw-finance-message-split .pw-finance-message-inner {
  max-width: none;
  margin: 0;
  text-align: left;
}
.pw-finance-message-split .pw-section-lead { margin-left: 0; }
.pw-finance-message-split .pw-finance-econ-rows { margin-left: 0; margin-right: 0; }
.pw-finance-econ-rows {
  max-width: 520px;
  margin: 28px auto 0;
  text-align: left;
}
.pw-finance-step-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
}
.pw-finance-step-card {
  padding: 22px 20px;
  border-radius: 16px;
  border: 1px solid var(--pw-line);
  background: rgba(255, 255, 255, 0.04);
  text-align: left;
}
.pw-finance-step-num {
  display: inline-flex;
  width: 32px;
  height: 32px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: rgba(62, 110, 225, 0.18);
  border: 1px solid rgba(62, 110, 225, 0.28);
  font-size: 13px;
  font-weight: 800;
  color: #7eb4ff;
  margin-bottom: 12px;
}
.pw-finance-step-title {
  font-weight: 700;
  font-size: 16px;
  color: #fff;
}
.pw-finance-step-sub {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--pw-muted);
  margin: 8px 0 0;
  font-weight: 500;
}
.pw-finance-options-list {
  margin-top: 24px;
}
.pw-finance-option-card {
  cursor: default;
}
.pw-finance-option-who {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #7eb4ff;
  margin-top: 6px;
}
.pw-finance-tier-for {
  font-size: 14px;
  font-weight: 600;
  color: var(--pw-muted);
  margin: 10px 0 14px;
  line-height: 1.45;
}
.pw-finance-tier-req-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pw-faint);
  margin-bottom: 8px;
}
.pw-finance-cta-band {
  margin-top: 48px;
  padding: 32px 24px;
  border-radius: 16px;
  border: 1px solid var(--pw-line);
  background: rgba(255, 255, 255, 0.04);
  text-align: center;
}
.pw-finance-cta-copy {
  font-size: clamp(18px, 3vw, 22px);
  font-weight: 600;
  color: #fff;
  margin: 0;
  line-height: 1.35;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}
.pw-finance-tier-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 28px;
}
.pw-finance-tier-card {
  padding: 24px 22px;
  border-radius: 16px;
  border: 1px solid var(--pw-line);
  background: rgba(255, 255, 255, 0.04);
  text-align: left;
}
.pw-finance-tier-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.pw-finance-tier-name {
  font-weight: 800;
  font-size: 15px;
  color: #fff;
}
.pw-finance-tier-label {
  font-size: 12px;
  font-weight: 700;
  color: #7eb4ff;
}
.pw-finance-tier-range {
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  margin: 12px 0 14px;
}
.pw-finance-tier-reqs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pw-finance-tier-reqs li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.75);
}
.pw-finance-tier-note {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--pw-muted);
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--pw-line);
}
@media (max-width: 900px) {
  .pw-finance-tier-grid { grid-template-columns: 1fr; }
  .pw-finance-step-grid { grid-template-columns: 1fr; }
}

/* finance landing — premium assessment-grade skin */
.pw-finance-graded.pw-assessment-graded .pw-finance-hero .pw-marketing-hero-inner {
  max-width: min(760px, 94vw);
  margin: 0 auto;
  text-align: center;
}
.pw-finance-graded.pw-assessment-graded .pw-assessment-step-header {
  text-align: center;
}
.pw-finance-graded.pw-assessment-graded .pw-assessment-hero-lead {
  max-width: min(64ch, 100%);
  margin-left: auto;
  margin-right: auto;
}
.pw-finance-graded .pw-finance-shell {
  max-width: min(1120px, 94vw);
}
.pw-finance-graded .pw-finance-message,
.pw-finance-graded .pw-finance-options,
.pw-finance-graded .pw-finance-tiers,
.pw-finance-graded .pw-finance-steps {
  padding-top: 42px;
  padding-bottom: 42px;
}
.pw-finance-graded .pw-finance-message-split,
.pw-finance-graded .pw-finance-step-card,
.pw-finance-graded .pw-finance-tier-card,
.pw-finance-graded .pw-finance-option-card,
.pw-finance-graded .pw-finance-cta-band {
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
}
.pw-finance-graded .pw-finance-step-num {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.86);
}
.pw-finance-graded .pw-finance-option-who,
.pw-finance-graded .pw-finance-tier-label {
  color: rgba(255, 255, 255, 0.72);
}
.pw-finance-graded .pw-finance-trust {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  margin-top: 8px;
}
.pw-finance-graded .pw-charging-feature.graded {
  padding: 20px 18px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
}
.pw-finance-graded .pw-charging-feature.graded:hover {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.035);
}

.pw-energy-hero { padding-bottom: 32px; }
.pw-energy-hero .pw-marketing-hero-inner {
  max-width: min(920px, 94vw);
}
.pw-energy-hero .pw-charging-title {
  font-size: clamp(26px, 3.2vw, 36px);
}
.pw-energy-hero .pw-charging-lead {
  max-width: none;
  font-size: 15px;
}
.pw-energy-hero .pw-charging-title,
.pw-energy-hero .pw-charging-lead {
  white-space: normal;
}
@media (max-width: 960px) {
  .pw-energy-assess-band {
    padding-top: 8px;
  }
}
.pw-energy-products { padding: 56px 0; }
.pw-energy-product-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 28px;
}
.pw-energy-product-card {
  padding: 0; border-radius: 16px; border: 1px solid var(--pw-line);
  background: rgba(255,255,255,.04); text-align: left; overflow: hidden;
}
.pw-energy-product-visual {
  padding: 20px 20px 8px;
  background: radial-gradient(ellipse 80% 70% at 50% 30%, rgba(126, 180, 255, 0.1) 0%, transparent 70%);
  border-bottom: 1px solid var(--pw-line-faint);
  min-height: 200px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.pw-energy-product-visual .pw-energy-visual-stage { min-height: 180px; }
.pw-energy-product-card .pw-energy-product-title,
.pw-energy-product-card .pw-energy-product-desc,
.pw-energy-product-card .pw-energy-product-bullets,
.pw-energy-product-card .pw-btn {
  margin-left: 28px;
  margin-right: 28px;
}
.pw-energy-product-card .pw-energy-product-title { margin-top: 22px; }
.pw-energy-product-card .pw-btn { margin-bottom: 28px; }
.pw-energy-monitor-band { padding: 56px 0; border-bottom: 1px solid var(--pw-line-faint); }
.pw-energy-monitor-split {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 380px);
  gap: 40px;
  align-items: center;
}
.pw-energy-monitor-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
.pw-energy-monitor-chip {
  font-size: 12px;
  font-weight: 600;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.78);
}
.pw-finance-message-split,
.pw-band-split {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 380px);
  gap: 40px;
  align-items: center;
}
.pw-band-split { text-align: left; }
.pw-cross-visual .pw-energy-product-preview {
  max-width: 320px;
  margin: 0 auto;
}
.pw-energy-product-icon {
  width: 56px; height: 56px; border-radius: 14px; background: rgba(62,110,225,.15);
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px;
}
.pw-energy-product-title { font-size: 22px; font-weight: 600; color: #fff; }
.pw-energy-product-desc { font-size: 14px; color: var(--pw-muted); margin-top: 8px; line-height: 1.5; }
.pw-energy-product-bullets {
  list-style: none; padding: 0; margin: 18px 0 24px; display: flex; flex-direction: column; gap: 8px;
}
.pw-energy-product-bullets li {
  display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--pw-muted); font-weight: 500;
}
.pw-energy-caps { padding: 48px 0 80px; }

@media (max-width: 960px) {
  .pw-charging-layout { grid-template-columns: 1fr; }
  .pw-charging-side { max-height: none; }
  .pw-charging-feature-grid { grid-template-columns: repeat(2, 1fr); }
  .pw-energy-product-grid { grid-template-columns: 1fr; }
  .pw-energy-monitor-split,
  .pw-finance-message-split,
  .pw-band-split { grid-template-columns: 1fr; }
  .pw-energy-monitor-split .pw-land-visual,
  .pw-finance-message-split .pw-land-visual,
  .pw-band-split .pw-land-visual { margin: 0 auto; }
  .pw-energy-products,
  .pw-energy-monitor-band { padding: 40px 0; }
  .pw-energy-caps { padding: 36px 0 56px; }
}
@media (max-width: 768px) {
  .pw-energy-product-card .pw-energy-product-title,
  .pw-energy-product-card .pw-energy-product-desc,
  .pw-energy-product-card .pw-energy-product-bullets,
  .pw-energy-product-card .pw-btn {
    margin-left: 18px;
    margin-right: 18px;
  }
  .pw-energy-product-card .pw-btn {
    width: calc(100% - 36px);
    min-height: 44px;
    justify-content: center;
    margin-bottom: 18px;
  }
  .pw-energy-product-visual {
    min-height: 168px;
    padding: 16px 16px 8px;
  }
  .pw-hero-cta {
    flex-direction: column;
    align-items: stretch;
  }
  .pw-hero-cta .pw-btn {
    width: 100%;
    min-height: 44px;
    justify-content: center;
  }
}
@media (max-width: 640px) {
  .pw-charging-feature-grid { grid-template-columns: 1fr; }
  .pw-charging-filters { flex-direction: column; }
  .pw-charging-filter { justify-content: center; }
}

/* ---------- energy designer — Xolaar Powerwall product render ---------- */
.pw-energy-preview-pane { padding: 24px; background: radial-gradient(ellipse 80% 60% at 50% 40%, rgba(255,255,255,.04) 0%, transparent 60%); }
.pw-energy-preview-sticky { width: 100%; max-width: 420px; margin: 0 auto; }
.pw-energy-visual { width: 100%; }
.pw-energy-visual-stage {
  position: relative; min-height: 340px; display: flex; align-items: flex-end; justify-content: center;
  margin-bottom: 8px; perspective: 1400px;
}
.pw-energy-visual-floor {
  position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%);
  width: 65%; height: 28px; border-radius: 50%;
  background: radial-gradient(ellipse, rgba(0,0,0,.35) 0%, transparent 72%);
  filter: blur(10px);
}

/* Tall monolith — layered bezel like reference hardware */
.pw-xolaar-rig {
  position: relative; z-index: 1;
  transform: rotateX(6deg) rotateY(-12deg);
  transition: transform .55s cubic-bezier(.2,.8,.2,1);
}
.pw-xolaar-rig:hover { transform: rotateX(4deg) rotateY(-6deg) scale(1.015); }
.pw-xolaar-rig.tower { width: 168px; }
.pw-xolaar-rig.portable { width: 112px; }
.pw-xolaar-stack { display: flex; flex-direction: column; gap: 3px; }
.pw-xolaar-module { flex-shrink: 0; }
.pw-xolaar-rig.tower .pw-xolaar-module { height: calc(118px + (var(--modules, 1) - 1) * 0px); }
.pw-xolaar-rig.tower .pw-xolaar-module:first-child { height: 148px; }
.pw-xolaar-rig.tower .pw-xolaar-module:not(:first-child) { height: 96px; }
.pw-xolaar-rig.portable .pw-xolaar-module { height: 128px; }

.pw-xolaar-shell {
  width: 100%; height: 100%; padding: 5px;
  background: var(--bezel);
  border-radius: 6px;
  box-shadow:
    0 24px 48px rgba(0,0,0,.45),
    0 2px 0 rgba(255,255,255,.06) inset,
    -4px 0 12px rgba(0,0,0,.15);
}
.pw-xolaar-rig.light .pw-xolaar-shell {
  box-shadow: 0 20px 40px rgba(0,0,0,.2), 0 1px 0 rgba(255,255,255,.8) inset;
}
.pw-xolaar-face {
  width: 100%; height: 100%; border-radius: 4px;
  background: linear-gradient(175deg, var(--shell) 0%, var(--bezel) 140%);
  position: relative; overflow: hidden;
}
.pw-xolaar-rig.gloss .pw-xolaar-face {
  background: linear-gradient(160deg, var(--shell) 0%, #111 180%);
}
.pw-xolaar-rig.textured .pw-xolaar-face {
  background-image:
    linear-gradient(175deg, var(--shell) 0%, var(--bezel) 140%),
    repeating-linear-gradient(92deg, rgba(0,0,0,.03) 0 1px, transparent 1px 3px);
}
.pw-xolaar-module-seam {
  position: absolute; inset: 0;
  border-top: 1px solid rgba(0,0,0,.12);
}
.pw-xolaar-rig.dark .pw-xolaar-module-seam { border-top-color: rgba(255,255,255,.06); }

.pw-xolaar-ui {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 18% 12% 14%;
}
.pw-xolaar-screen {
  width: 58%; max-width: 88px; aspect-ratio: 2.1 / 1;
  border-radius: 4px; overflow: hidden;
  background: #f0f2f5;
  border: 1px solid rgba(0,0,0,.12);
  box-shadow: 0 2px 8px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.9);
  margin-bottom: 10px;
}
.pw-xolaar-rig.light .pw-xolaar-screen { background: #eef0f3; }
.pw-xolaar-screen-inner {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 6px 8px;
}
.pw-xolaar-screen-gauge { position: relative; width: 32px; height: 32px; flex-shrink: 0; }
.pw-xolaar-gauge-svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.pw-xolaar-gauge-track { fill: none; stroke: rgba(0,0,0,.1); stroke-width: 3; }
.pw-xolaar-gauge-fill { fill: none; stroke: #3dd68c; stroke-width: 3; stroke-linecap: round; transition: stroke-dasharray .8s ease; }
.pw-xolaar-gauge-val {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 8px; font-weight: 800; color: #333;
}
.pw-xolaar-screen-bars {
  display: flex; align-items: flex-end; gap: 3px; height: 100%; flex: 1; max-width: 36px;
}
.pw-xolaar-screen-bars span {
  flex: 1; min-height: 4px; border-radius: 2px 2px 0 0; transition: height .8s ease;
}

.pw-xolaar-ring-wrap {
  position: relative; width: 36px; height: 36px; margin-bottom: 8px;
}
.pw-xolaar-ring {
  position: absolute; inset: 0; border-radius: 999px;
  border: 2px solid var(--ring);
  box-shadow: 0 0 20px var(--ring-glow), 0 0 40px var(--ring-glow);
  animation: xolaarRingPulse 2.4s ease-in-out infinite;
}
.pw-xolaar-ring-core {
  position: absolute; inset: 8px; border-radius: 999px;
  border: 1px solid var(--ring);
  opacity: .35;
}
@keyframes xolaarRingPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .85; transform: scale(1.04); }
}

.pw-xolaar-brand {
  font-size: 11px; font-weight: 600; letter-spacing: .38em;
  text-indent: .38em;
  color: rgba(255,255,255,.88);
  font-family: system-ui, -apple-system, sans-serif;
}
.pw-xolaar-rig.light .pw-xolaar-brand { color: rgba(20,20,22,.75); }

.pw-xolaar-plinth {
  height: 6px; margin: 0 8px; border-radius: 0 0 4px 4px;
  background: var(--bezel);
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.pw-energy-visual-meta {
  text-align: center; margin-bottom: 16px;
}
.pw-energy-visual-name { display: block; font-size: 16px; font-weight: 600; color: #fff; }
.pw-energy-visual-casing { font-size: 12px; font-weight: 600; color: var(--pw-muted); }
.pw-energy-telemetry {
  border-radius: 14px; border: 1px solid var(--pw-line);
  background: rgba(255,255,255,.04); padding: 14px 16px;
}
.pw-energy-telemetry.live { border-color: rgba(61,214,140,.25); }
.pw-energy-telemetry-head {
  display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;
  color: rgba(255,255,255,.7);
}
.pw-energy-telemetry-pulse {
  width: 7px; height: 7px; border-radius: 999px; background: #3dd68c;
  animation: pulseGlow 1.6s infinite;
}
.pw-energy-telemetry-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
.pw-energy-telemetry-cell { min-width: 0; }
.pw-energy-flow-bars { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.pw-energy-flow-row { display: flex; align-items: center; gap: 8px; }
.pw-energy-flow-track {
  flex: 1; height: 6px; border-radius: 999px; background: rgba(255,255,255,.08); overflow: hidden;
}
.pw-energy-flow-fill { height: 100%; border-radius: 999px; transition: width .8s ease; }
.pw-energy-tag {
  font-size: 10px; font-weight: 800; letter-spacing: .04em; padding: 4px 8px; border-radius: 6px;
  background: rgba(255,255,255,.08); color: rgba(255,255,255,.55);
}
.pw-energy-tag.eco { background: rgba(61,214,140,.12); color: #3dd68c; }
.pw-energy-telemetry-note {
  font-size: 11px; color: var(--pw-faint); margin-top: 12px; line-height: 1.45; font-weight: 500;
}
.pw-energy-design-steps {
  display: flex; gap: 8px; flex-wrap: wrap; margin-top: 20px;
}
.pw-energy-design-step {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px;
  border-radius: 999px; border: 1px solid var(--pw-line); background: transparent;
  color: var(--pw-muted); font-size: 12px; font-weight: 700; cursor: pointer; font-family: inherit;
}
.pw-energy-design-step.active {
  border-color: var(--pw-blue); background: rgba(62,110,225,.12); color: #fff;
}
.pw-energy-design-step.done { border-color: rgba(61,214,140,.35); color: #3dd68c; }
.pw-energy-design-step-num {
  width: 20px; height: 20px; border-radius: 999px; background: rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: center; font-size: 11px;
}

/* energy design — graded configurator (matches assessment flow) */
.pw-energy-design-flow.pw-energy-graded {
  min-height: 100vh;
}
.pw-energy-design-shell {
  max-width: 1040px;
  margin: 0 auto;
  padding: 28px 40px 48px;
}
.pw-energy-design-shell > .pw-builder-back {
  margin-bottom: 20px;
}
.pw-energy-design-shell > .pw-assessment-step-header {
  margin-bottom: 24px;
  max-width: 56ch;
}
.pw-energy-design-shell > .pw-assessment-step-header .pw-charging-title {
  font-size: clamp(26px, 3vw, 34px);
}
.pw-energy-design-grid {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}
.pw-energy-design-preview {
  position: sticky;
  top: 20px;
  padding: 20px 18px 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--pw-line-faint);
}
.pw-energy-design-preview .pw-energy-preview-sticky {
  max-width: none;
  margin: 0;
}
.pw-energy-design-preview .pw-energy-visual-stage {
  min-height: 300px;
}
.pw-energy-design-preview .pw-energy-telemetry {
  margin-top: 4px;
}
.pw-energy-design-config {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.pw-energy-design-config .pw-builder-scroll {
  flex: 1;
  padding: 0;
  max-width: none;
  overflow: visible;
}
.pw-energy-design-config .pw-builder-bar {
  position: sticky;
  bottom: 12px;
  margin-top: 28px;
  border-radius: 16px;
  border: 1px solid var(--pw-line-faint);
  background: rgba(0, 0, 0, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  padding: 16px 20px 18px;
}
.pw-energy-design-flow .pw-builder-section-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
}

@media (max-width: 960px) {
  .pw-energy-design-shell {
    padding: 24px 22px 40px;
  }
  .pw-energy-design-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .pw-energy-design-preview {
    position: relative;
    top: 0;
  }
  .pw-energy-design-preview .pw-energy-visual-stage {
    min-height: 260px;
  }
  .pw-energy-design-config .pw-builder-bar {
    position: sticky;
    bottom: 0;
    margin-left: -22px;
    margin-right: -22px;
    border-radius: 16px 16px 0 0;
    border-left: none;
    border-right: none;
  }
}

/* energy designer — Tesla-grade configurator */
.pw-energy-designer .pw-builder-scroll {
  max-width: 100%;
  padding: 28px 40px 28px;
}
.pw-energy-designer .pw-builder-back {
  margin-bottom: 28px;
}
.pw-energy-designer .pw-builder-head {
  margin-bottom: 4px;
}
.pw-energy-designer .pw-builder-title {
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0;
  color: #fff;
}
.pw-energy-designer .pw-builder-lead {
  font-size: 14px;
  margin-top: 8px;
  max-width: 36em;
  line-height: 1.5;
}
.pw-energy-designer .pw-energy-design-steps {
  flex-wrap: nowrap;
  gap: 0;
  margin-top: 0;
  margin-bottom: 4px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  border-bottom: 1px solid var(--pw-line-faint);
}
.pw-energy-designer .pw-energy-design-steps::-webkit-scrollbar {
  display: none;
}
.pw-energy-designer .pw-energy-design-step {
  flex: 1 0 auto;
  height: auto;
  min-height: 40px;
  padding: 10px 16px;
  border-radius: 0;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--pw-faint);
  white-space: nowrap;
}
.pw-energy-designer .pw-energy-design-step:hover {
  color: rgba(255, 255, 255, 0.75);
}
.pw-energy-designer .pw-energy-design-step.active {
  color: #fff;
  border-bottom-color: var(--pw-blue);
  background: transparent;
}
.pw-energy-designer .pw-energy-design-step.done {
  color: rgba(255, 255, 255, 0.55);
  border-color: transparent;
}
.pw-energy-designer .pw-builder-section-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pw-faint);
  margin: 36px 0 12px;
}
.pw-energy-designer .pw-builder-section-label.first {
  margin-top: 20px;
}
.pw-energy-designer .pw-builder-section-hint {
  font-size: 13px;
  color: var(--pw-muted);
  margin: 0 0 14px;
  line-height: 1.5;
}
.pw-energy-designer .pw-builder-ship-note {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--pw-line-faint);
}
.pw-energy-designer .pw-builder-pkgs {
  margin-top: 0;
  gap: 10px;
}
.pw-energy-designer .pw-builder-pkg {
  padding: 16px 18px;
  border-radius: 12px;
  border-width: 1px;
  align-items: center;
}
.pw-energy-designer .pw-builder-pkg-body {
  flex: 1;
  min-width: 0;
}
.pw-energy-designer .pw-builder-pkg-top {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.pw-energy-designer .pw-builder-pkg-price {
  margin-left: auto;
  font-size: 15px;
  font-weight: 500;
}
.pw-energy-designer .pw-builder-pkg-name {
  font-size: 15px;
  font-weight: 600;
}
.pw-energy-designer .pw-builder-pkg-tag {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(62, 110, 225, 0.35);
  color: rgba(255, 255, 255, 0.9);
}
.pw-energy-designer .pw-builder-pkg-check {
  margin-top: 0;
  margin-left: 12px;
  flex-shrink: 0;
}
.pw-energy-designer .pw-builder-comp {
  padding: 14px 16px;
  border-radius: 12px;
  border-width: 1px;
}
.pw-energy-designer .pw-builder-comp.selected {
  border-color: var(--pw-blue);
  background: rgba(62, 110, 225, 0.08);
}
.pw-energy-designer .pw-builder-comp-thumb {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
}
.pw-energy-designer .pw-builder-comp-copy {
  flex: 1;
  min-width: 0;
}
.pw-energy-designer .pw-builder-comp-name {
  font-size: 14px;
  font-weight: 600;
  margin-top: 0;
}
.pw-energy-designer .pw-builder-comp-meta {
  font-size: 12px;
  color: var(--pw-muted);
  font-weight: 500;
  margin-top: 2px;
}
.pw-energy-designer .pw-builder-comp-note {
  font-size: 11px;
  color: var(--pw-faint);
  margin-top: 4px;
}
.pw-energy-designer .pw-builder-comp-price {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  flex-shrink: 0;
}
.pw-energy-designer .pw-energy-preview-pane {
  background: #000;
}
.pw-energy-designer .pw-builder-preview-title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pw-faint);
  margin-bottom: 16px;
}
.pw-energy-designer .pw-builder-bar {
  padding: 16px 20px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: stretch;
  border-top: none;
}
.pw-energy-designer .pw-builder-bar-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.pw-energy-designer .pw-builder-bar-copy {
  min-width: 0;
  flex: 1;
}
.pw-energy-designer .pw-builder-bar-price {
  font-size: 24px;
  font-weight: 500;
}
.pw-energy-designer .pw-builder-bar-sub {
  font-size: 12px;
  margin-top: 4px;
  line-height: 1.4;
  max-width: 42em;
}
.pw-energy-designer .pw-builder-bar-cta {
  flex-shrink: 0;
  min-width: 200px;
}
.pw-energy-designer .pw-builder-bar-secondary {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

@media (max-width: 960px) {
  .pw-energy-designer .pw-builder-scroll {
    padding: 24px 22px 20px;
  }
  .pw-energy-designer .pw-builder-bar {
    padding: 16px 22px 18px;
  }
  .pw-energy-designer .pw-builder-bar-main {
    flex-direction: column;
    align-items: stretch;
  }
  .pw-energy-designer .pw-builder-bar-cta {
    width: 100%;
    min-width: 0;
  }
}

.pw-energy-casing-grid { display: flex; flex-direction: column; gap: 10px; }
.pw-energy-casing-opt {
  display: flex; align-items: center; gap: 14px; width: 100%; padding: 14px 16px;
  border-radius: 12px; border: 1px solid var(--pw-line); background: rgba(255,255,255,.03);
  cursor: pointer; font-family: inherit; text-align: left; transition: border-color .2s, background .2s;
}
.pw-energy-casing-opt:hover { border-color: rgba(255,255,255,.25); }
.pw-energy-casing-opt.selected { border-color: var(--pw-blue); background: rgba(62,110,225,.1); }
.pw-energy-casing-swatch {
  width: 44px; height: 44px; border-radius: 999px; flex-shrink: 0;
  border: 2px solid rgba(255,255,255,.2); box-shadow: inset 0 2px 8px rgba(0,0,0,.15);
}
.pw-energy-casing-swatch.gloss { box-shadow: inset 0 -4px 12px rgba(255,255,255,.2), 0 4px 12px rgba(0,0,0,.3); }
.pw-energy-casing-swatch.textured { border-radius: 12px; }
.pw-energy-addon-label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(255,255,255,.45); margin-bottom: 10px;
}
.pw-energy-addon-icon {
  width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.pw-energy-addon-grid { grid-template-columns: repeat(2, 1fr); }
.pw-energy-ondemand-badge {
  font-size: 10px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
  padding: 3px 7px; border-radius: 999px; background: rgba(255, 193, 7, 0.15); color: #ffc107;
}

@media (max-width: 960px) {
  .pw-energy-telemetry-grid { grid-template-columns: repeat(2, 1fr); }
  .pw-energy-visual-stage { height: 220px; }
  .pw-energy-addon-grid { grid-template-columns: 1fr; }
}

/* —— Tier 1 admin & commissioning —— */
.pw-tier1-hero,
.pw-commission-hero {
  position: relative;
  border-radius: var(--r-xl);
  background: var(--navy);
  color: #fff;
  overflow: hidden;
  padding: 28px 32px;
}
.pw-tier1-hero-glow,
.pw-commission-hero-glow {
  position: absolute;
  top: -50%;
  right: -15%;
  width: 280px;
  height: 280px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(62,110,225,.35) 0%, transparent 70%);
  pointer-events: none;
}
.pw-tier1-hero-inner { position: relative; }
.pw-tier1-lock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.14);
  font-size: 12px;
  font-weight: 700;
  color: rgba(255,255,255,.88);
}
.pw-tier1-toggle-grid { display: flex; flex-direction: column; gap: 12px; }
.pw-tier1-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--surface-2);
  cursor: pointer;
}
.pw-tier1-toggle input { width: 18px; height: 18px; accent-color: var(--primary); }
.pw-tier1-threshold { border: 1px solid var(--line); }
.pw-tier1-range { accent-color: var(--primary); }
.pw-tier1-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface-2);
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.pw-tier1-trusted-row {
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--surface-2);
}
.pw-tier1-add-biz {
  padding: 16px;
  border-radius: 12px;
  border: 1.5px dashed var(--line-2);
  background: var(--surface);
}
.pw-tier1-signal {
  padding: 12px 14px;
  border-radius: 10px;
  background: var(--surface-2);
  border: 1px solid var(--line);
}
.pw-tier1-signal-weight {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--violet-tint);
  color: var(--violet);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 14px;
  flex-shrink: 0;
}
.pw-tier1-priority-badge {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  width: fit-content;
  background: var(--surface-2);
  color: var(--muted);
}
.pw-tier1-priority-badge[data-level="priority"] {
  background: var(--primary-tint);
  color: var(--primary);
}
.pw-tier1-priority-badge[data-level="fast_track"] {
  background: var(--eco-tint);
  color: var(--eco-d);
}
.pw-tier1-apply {
  padding: 18px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--surface-2);
}
.pw-commission-panel { width: 100%; }
.pw-commission-id {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  font-family: var(--mono, ui-monospace, monospace);
  color: rgba(255,255,255,.75);
}
.pw-commission-live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 800;
  color: #3dd68c;
}
.pw-commission-pulse {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #3dd68c;
  animation: pulseGlow 1.4s infinite;
}
.pw-commission-switches {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pw-commission-switch {
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--surface);
  cursor: pointer;
}
.pw-commission-switch-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--primary-tint);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pw-commission-toggle {
  width: 44px;
  height: 24px;
  accent-color: var(--primary);
  cursor: pointer;
}
.pw-commission-msg {
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  background: var(--eco-tint);
  color: var(--eco-d);
  border: 1px solid var(--eco);
}
.pw-commission-msg.error {
  background: #fdecec;
  color: var(--danger);
  border-color: var(--danger);
}

/* Legal / policy pages */
.pw-legal-page {
  padding: 120px 24px 80px;
  background: #fff;
  min-height: 60vh;
}
.pw-legal-inner {
  max-width: 720px;
  margin: 0 auto;
}
.pw-legal-back {
  display: inline-block;
  font-size: 14px;
  font-weight: 700;
  color: var(--primary);
  text-decoration: none;
  margin-bottom: 24px;
}
.pw-legal-title {
  font-size: clamp(32px, 5vw, 44px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #171a20;
  margin: 0 0 8px;
}
.pw-legal-updated {
  font-size: 14px;
  color: #5c5e62;
  margin: 0 0 32px;
}
.pw-legal-body {
  font-size: 16px;
  line-height: 1.65;
  color: #393c41;
}
.pw-legal-body h2 {
  font-size: 20px;
  font-weight: 800;
  margin: 32px 0 12px;
  color: #171a20;
}
.pw-legal-body p {
  margin: 0 0 16px;
}
.pw-legal-body ul {
  margin: 0 0 16px;
  padding-left: 22px;
}
.pw-legal-body a {
  color: var(--primary);
  font-weight: 700;
}
.pw-footer-legal a {
  color: rgba(255, 255, 255, 0.55);
  text-decoration: none;
  font-weight: 600;
  cursor: pointer;
}
.pw-footer-legal a:hover {
  color: #fff;
}

/* Checkout boot skeleton */
.pw-checkout-boot {
  min-height: 100vh;
  background: #fff;
}
.pw-checkout-boot-top {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.pw-checkout-boot-body {
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 24px 80px;
}
.pw-checkout-boot-grid {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 360px);
  gap: 28px;
  margin-top: 28px;
}
.pw-checkout-boot-caption {
  margin: 32px 0 0;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  color: #5c5e62;
}
.pw-skeleton-line,
.pw-skeleton-block,
.pw-skeleton-thumb {
  border-radius: 8px;
  background: linear-gradient(90deg, #eceef2 25%, #f5f6f8 50%, #eceef2 75%);
  background-size: 200% 100%;
  animation: pw-skeleton-shimmer 1.2s ease-in-out infinite;
}
.pw-skeleton-line {
  height: 14px;
}
.pw-skeleton-block {
  border-radius: 12px;
}
.pw-skeleton-hero {
  height: 180px;
  border-radius: 16px;
}
.pw-skeleton-card {
  padding: 18px;
  border-radius: 14px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  background: #fafafa;
}
.pw-skeleton-thumb {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
}
.pw-checkout-boot-summary {
  position: sticky;
  top: 88px;
  align-self: start;
}
@keyframes pw-skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
@media (max-width: 900px) {
  .pw-checkout-boot-grid {
    grid-template-columns: 1fr;
  }
  .pw-checkout-boot-summary {
    position: static;
  }
}

