/* Original BAM EV brand palette, restored from the pre-rebuild stylesheet.
   Presentation only: cart rendering, material colors and saved builds are unchanged. */
:root {
  --ink: #0b0d10;
  --ink-soft: #11151a;
  --panel: #15191f;
  --line: rgba(255, 255, 255, .1);
  --muted: #9ba3ad;
  --paper: #e5e8ec;
  --accent: #078fff;
  --accent-light: #48b4ff;
  --blue: #078fff;
  font-family: "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif;
  color: var(--paper);
  background: var(--ink);
  color-scheme: dark;
}

body { background: var(--ink); color: var(--paper); }
button { background: #101318; border-color: var(--line); }
button:hover { border-color: rgba(255, 255, 255, .3); }
input, select { background: #101318; color: var(--paper); border-color: var(--line); }
input::placeholder { color: var(--muted); opacity: 1; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible {
  outline-color: var(--accent-light);
}
.header { background: #080a0d; color: #fff; border-bottom: 1px solid var(--line); }
.brand-line { color: #b4bac2; border-color: var(--line); }
.header nav a:hover { color: var(--accent-light); }
.header nav > .contact-link, .header nav > .home-link, .header nav > .financing-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; font-weight: 600; white-space: nowrap; }
.header { height: auto; min-height: 90px; }
.header nav { flex-wrap: wrap; justify-content: flex-end; gap: 0 24px; padding-block: 8px; }
.private { color: #b4bac2; border-color: rgba(7, 143, 255, .3); }
.private span { color: var(--accent-light); }
.intro {
  background: radial-gradient(circle at 80% 20%, rgba(7, 143, 255, .1), transparent 40%),
    linear-gradient(125deg, #07090c, #0b1016 55%, #161b22);
}
.intro-note p { color: #b1b8c1; }
h1, h2, legend { color: #fff; }
h1 em, .eyebrow, .intro-note a span { color: var(--accent-light); }
.builder { background: var(--ink-soft); }
.visual-column { background: #0f1216; }
.stage-header { color: #b4bac2; }
.view-tabs button { color: #aab1b9; background: transparent; }
.view-tabs button[aria-pressed=true] {
  background: rgba(7, 143, 255, .13); color: var(--accent-light);
  box-shadow: inset 0 0 0 1px rgba(7, 143, 255, .4);
}
.canvas-stage {
  background: radial-gradient(circle at 50% 38%, #282e35 0, #171b20 40%, #0f1216 76%);
  border-radius: 12px;
}
.stage-watermark { color: rgba(255, 255, 255, .035); }
.canvas-stage #wheelDetail { mix-blend-mode: normal; background: #fff; border-radius: 13px; }
#renderStatus { background: #11151af2; color: var(--paper); border: 1px solid var(--line); }
.preview-caption span, .text-button, .preview-note, .save-row>span { color: #aab1b9; }
.swatch-summary, .save-row { border-color: var(--line); }
.swatch-summary>div>span {
  border-color: rgba(255, 255, 255, .2);
  box-shadow: 0 0 0 3px #0f1216, 0 0 0 4px #46505b;
}
.swatch-summary p { color: #aab1b9; }
.swatch-summary b { color: var(--paper); }
.save-row button { border-color: #3b444f; color: var(--paper); }
.controls { background: var(--ink-soft); }
legend span { color: var(--accent-light); }
.model-card { background: #101318; border-radius: 12px; }
.model-card[aria-pressed=true] {
  background: rgba(7, 143, 255, .08); border-color: var(--accent);
  box-shadow: inset 0 0 0 1px rgba(7, 143, 255, .3);
}
.model-card[aria-pressed=true]:after { color: var(--accent-light); }
.model-card small { color: var(--muted); }
.color-targets button { color: var(--muted); }
.color-targets button[aria-pressed=true] { color: #fff; }
.selected-color>span { color: var(--muted); }
.selected-color>div>span, .color i { border-color: rgba(255, 255, 255, .25); }
.color[aria-pressed=true] i { box-shadow: 0 0 0 2px var(--ink-soft), 0 0 0 4px var(--accent); }
.color small { color: #aab1b9; }
.colors, .wheels { scrollbar-color: #47515c var(--panel); }
.segmented { background: #090b0e; }
.segmented button { color: var(--muted); }
.segmented button[aria-pressed=true] { background: var(--accent); color: #03111d; font-weight: 700; }
.note, .empty, .fitment-filter, .option small { color: var(--muted); }
.wheel { background: #101318; border-radius: 11px; }
.wheel[aria-pressed=true] { background: rgba(7, 143, 255, .08); }
.wheel img { background: #fff; border-radius: 6px; }
.wheel small { color: var(--muted); }
.wheel-selected a { color: var(--accent-light); }
.fitment-badge { background: #30291c; color: #e5cb96; }
.fitment-badge.verified { background: #173124; color: #9bdbb5; }
.order-card { background: #090b0e; border: 1px solid var(--line); border-radius: 15px; }
.price-line>div>span, .order-card dt, .order-card p { color: var(--muted); }
.estimate-tag { border-color: rgba(7, 143, 255, .4); color: var(--accent-light); }
.order-card dl { border-color: var(--line); }
.primary, .mobile-bar button {
  background: linear-gradient(135deg, var(--accent-light), var(--accent));
  border-color: var(--accent); color: #03111d; font-weight: 700;
}
.primary:hover, .mobile-bar button:hover { background: linear-gradient(135deg, #78c9ff, #1498ff); border-color: var(--accent-light); }
.next { background: var(--paper); color: var(--ink); }
.next h2 { color: var(--ink); }
.next p:not(.eyebrow) { color: #606971; }
.next .eyebrow, .next article>span { color: #0076d8; }
footer { background: #080a0d; border-top: 1px solid var(--line); flex-wrap: wrap; }
footer p, footer small { color: var(--muted); }
.footer-contact { display: flex; flex-direction: column; max-width: 100%; margin-left: auto; }
.footer-contact strong { font-size: .875rem; font-weight: 600; }
.footer-contact a { display: inline-flex; align-items: center; min-height: 44px; font-size: 1rem; color: var(--accent-light); text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.footer-contact a:hover { color: #fff; }
@media (max-width: 760px) {
  .header { min-height: 72px; gap: 12px; }
  .header nav { gap: 0 14px; min-width: 0; }
  .header nav .private { display: none; }
  .footer-contact { width: 100%; margin-left: 0; }
}
dialog { background: var(--ink-soft); color: var(--paper); border: 1px solid rgba(255, 255, 255, .13); box-shadow: 0 40px 100px #000a; }
dialog::backdrop { background: #000b; }
.dialog-heading>button { background: #1b2026; color: var(--paper); }
.review-hero { background: var(--panel); }
.review-hero img { background: #e5e8ec; border-radius: 5px; }
.review-hero span, .review-lines dt { color: var(--muted); }
.review-lines>div { border-color: var(--line); }
.review-finance { background: #090b0e; }
.secondary { background: #1b2026; color: var(--paper); }
#purchasePanel { background: rgba(7, 143, 255, .08); border: 1px solid rgba(7, 143, 255, .2); }
.toast { background: #e5e8ec; color: var(--ink); }
.mobile-bar { background: #080a0df5; border-top: 1px solid var(--line); }
.mobile-bar span { color: #aab1b9; }
.noscript { background: #30291c; color: #e5cb96; }

/* The main photograph shows body paint; materials and packages have their own panels. */
.stage-sticky {
  top: 16px; max-height: calc(100svh - 32px); overflow-y: auto;
  scrollbar-width: thin; scrollbar-color: #47515c #0f1216;
}
.canvas-stage { height: clamp(280px, 42vh, 470px); aspect-ratio: auto; margin-top: 16px; }
.detail-previews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.material-preview { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--ink-soft); }
.material-preview.is-active { border-color: var(--accent); }
.material-preview h3 { margin: 0 0 12px; font-size: 14px; line-height: 1.4; color: var(--paper); }
.detail-media { height: 180px; display: flex; align-items: center; justify-content: center; border-radius: 8px; overflow: hidden; }
.seat-media { background: radial-gradient(circle at 50% 38%, #323941, #171b20 75%); }
.wheel-media { background: #fff; }
.detail-media canvas, .detail-media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.material-preview p { margin: 12px 0 0; font-size: 12px; line-height: 1.5; }
.material-preview p strong { display: block; overflow-wrap: anywhere; font-weight: 600; }
.material-preview p span { display: block; margin-top: 4px; color: var(--muted); }
@media (max-width: 1100px) and (min-width: 761px) {
  .material-preview { padding: 10px; }
  .detail-media { height: 150px; }
}
@media (max-width: 760px) {
  .stage-sticky { max-height: none; overflow: visible; }
  .canvas-stage { height: 330px; }
  .material-preview { padding: 10px; }
  .material-preview h3 { font-size: 13px; min-height: 36px; }
  .detail-media { height: 165px; }
}
@media (max-width: 359px) {
  .detail-previews { grid-template-columns: 1fr; }
  .material-preview h3 { min-height: 0; }
  .detail-media { height: 205px; }
}

@media print {
  :root { color-scheme: light; }
  body, dialog { color: #111; background: #fff; }
  .dialog-heading h2, .review-hero, .review-finance { color: #111; background: #fff; }
  .review-hero span, .review-lines dt, dialog .note { color: #555; }
  .review-lines>div { border-color: #ddd; }
}

/* Supplier equipment catalog, in the original BAM EV palette. */
.options-intro { color: var(--muted); font-size: 13px; line-height: 1.6; margin: 0 0 16px; }
.option-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.option-filters input, .option-filters select { min-width: 0; width: 100%; padding: 12px; color: var(--paper); background: #11151a; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 12px; }
.option-summary { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 14px 0; font-size: 12px; color: var(--muted); }
.option-summary strong { color: var(--accent-light); font-weight: 600; }
.option-catalog { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; max-height: 670px; overflow-y: auto; padding: 2px 8px 2px 2px; scrollbar-width: thin; scrollbar-color: #47515c #0f1216; }
.option-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #11151a; }
.option-card[hidden] { display: none; }
.option-card.is-selected { border-color: var(--accent); background: #0c1c2b; box-shadow: 0 0 0 1px var(--accent); }
.option-picture { display: block; width: 100%; aspect-ratio: 1.5; padding: 0; position: relative; border: 0; border-radius: 0; background: #e9eaec; color: #4c5662; font: inherit; font-size: 12px; cursor: zoom-in; }
.option-picture img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: contain; }
.option-picture span { position: absolute; right: 6px; bottom: 6px; background: #080b0ee8; color: #fff; padding: 5px 7px; border-radius: 4px; font-size: 10px; }
.option-picture:disabled { background: #20262e; color: #b8c1cb; padding: 18px; cursor: default; }
.option-choice { display: flex; align-items: flex-start; gap: 9px; padding: 13px 12px 7px; cursor: pointer; }
.option-choice input { flex: 0 0 18px; width: 18px; height: 18px; accent-color: var(--accent); margin: 1px 0 0; }
.option-choice strong { font-size: 13px; line-height: 1.45; font-weight: 600; }
.option-price { display: block; padding: 0 12px; font-size: 14px; font-weight: 700; color: var(--accent-light); }
.option-description { margin: 8px 12px 12px; color: #b1bac5; font-size: 12px; line-height: 1.55; }
.option-availability { margin: auto 12px 12px; color: #b9c6d6; font-size: 11px; line-height: 1.5; }
.option-availability:empty { display: none; }
.is-unavailable .option-choice { cursor: default; }
.is-unavailable .option-price { color: #bdc4ce; }
#optionDialog { width: min(680px,calc(100vw - 32px)); }
#optionDialog .dialog-heading { align-items: flex-start; gap: 16px; }
#optionDialogTitle { font-size: 23px; line-height: 1.25; margin: 0; }
#closeOptionDialog { flex-shrink: 0; }
#optionDialogPrice { display: block; color: var(--accent-light); margin-bottom: 16px; }
#optionDialogImage { display: block; width: 100%; height: min(52vh,480px); object-fit: contain; border-radius: 8px; background: #e9eaec; }
.option-photo-nav { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 14px; font-size: 13px; }
.option-photo-nav button { border: 1px solid var(--line); background: #1b2026; color: var(--paper); border-radius: 6px; padding: 12px; cursor: pointer; }
.option-photo-nav button:disabled { opacity: .4; cursor: default; }
#optionDialogDescription { font-size: 14px; line-height: 1.6; color: var(--muted); }
.review-upgrades h3 { font-size: 16px; margin: 20px 0 5px; }
.review-upgrades .review-lines>div { grid-template-columns: 1fr auto; }
.review-upgrades .review-lines dd { white-space: nowrap; }
@media (max-width: 760px) {
 .option-catalog { max-height: 650px; gap: 10px; }
 .option-choice { padding: 12px 9px 7px; gap: 7px; }
 .option-choice strong { font-size: 12px; }
 .option-price { padding: 0 9px; }
 .option-description, .option-availability { margin-left: 9px; margin-right: 9px; }
}
@media (max-width: 359px) {
 .option-filters { grid-template-columns: 1fr; }
 .option-catalog { grid-template-columns: 1fr; }
}

/* Keep body paint and upholstery together beside the RAL controls. */
.color-comparison { background: #0f1216; }
/* Match the supplied grille view at every width, independent of screen height. */
.canvas-stage.front-view-stage { height: auto; min-height: 0; aspect-ratio: 18 / 7; background: #111317; margin-top: 10px; }
.front-view-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: cover; object-position: center 20%; }
.front-view-stage .stage-watermark { display: none; }
.color-comparison .preview-caption { margin-top: 6px; }
.color-comparison .preview-caption > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.color-comparison .preview-caption span { margin-top: 0; font-size: 12px; }
#seatPreview { margin-top: 12px; padding: 10px; }
#seatPreview h3 { min-height: 0; margin-bottom: 6px; }
#seatPreview .seat-media { height: clamp(145px, 25svh, 230px); background: #111317; }
#seatPreview canvas { width: 100%; height: 100%; object-fit: contain; }
#seatPreview p { display: flex; flex-wrap: wrap; gap: 2px 12px; margin: 6px 0 0; }
#seatPreview p span { margin: 0; }
.preview-extras .save-row { flex-wrap: wrap; }
@media (max-width:760px) {
 .visual-column, .stage-sticky { display: contents; }
 .color-comparison { position: sticky; top: 0; z-index: 8; padding: 8px 16px; border-bottom: 1px solid var(--line); box-shadow: 0 6px 16px #0005; }
 .canvas-stage.front-view-stage { margin-top: 6px; }
 #seatPreview { margin-top: 8px; padding: 6px; }
 #seatPreview .seat-media { height: clamp(85px, 14svh, 140px); }
 #seatPreview h3 { font-size: 14px; margin-bottom: 4px; }
 #seatPreview p { margin-top: 4px; }
 .preview-extras { padding: 0 22px 20px; background: #0f1216; }
}
@media (max-height:500px) {
 #seatPreview .seat-media { height: 20svh; min-height: 64px; }
}

/* Preview upholstery and optional wheel accents together in one material box. */
.color-targets { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.color-targets button { min-width: 0; min-height: 48px; padding: 8px 2px; font-size: 13px; line-height: 1.35; }
.material-details { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 12px; }
.material-details > * { min-width: 0; }
#seatPreview .material-details h3 { min-height: 40px; }
.wheel-accent-detail { padding-left: 12px; border-left: 1px solid var(--line); }
.wheel-accent-detail.is-active h3 { color: var(--accent-light); }
#seatPreview .wheel-media { height: clamp(145px, 25svh, 230px); }
.wheel-media [hidden] { display: none; }
.wheel-accent-option { display: flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 4px; cursor: pointer; font-size: 12px; line-height: 1.4; }
.wheel-accent-option input { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; accent-color: var(--accent); }
.wheel-accent-option strong { display: block; color: var(--accent-light); }
@media (max-width: 760px) {
 .material-details { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 8px; }
 .wheel-accent-detail { padding-left: 8px; }
 #seatPreview .wheel-media { height: clamp(85px, 14svh, 140px); }
}
@media (max-height: 500px) {
 #seatPreview .wheel-media { height: 20svh; min-height: 64px; }
}
