/* Softer dark palette for customer pages; admin tools keep their own theme.
   Scoped utility adjustments leave model swatches and generated CSS intact. */
html.customer-theme {
  --customer-page: #191c1b;
  --customer-panel: #232825;
  --customer-raised: #2d3430;
  --customer-border: #424c45;
  --customer-text: #f3f0e8;
  --customer-muted: #bebfb5;
  --customer-accent: #a6ceb2;
  --customer-accent-hover: #bfdfc6;
  background-color: var(--customer-page);
}
.customer-theme body { background-color: var(--customer-page); color: var(--customer-text); }
.customer-theme :is(.bg-zinc-950, .bg-zinc-50) { background-color: var(--customer-page) !important; }
.customer-theme :is(.bg-zinc-900, .bg-white) { background-color: var(--customer-panel) !important; border-color: var(--customer-border) !important; }
.customer-theme :is(.bg-zinc-800, .bg-zinc-100) { background-color: var(--customer-raised) !important; }
.customer-theme :is(.bg-zinc-900\/20, .bg-zinc-900\/30, .bg-zinc-900\/40, .bg-zinc-900\/50, .bg-zinc-900\/60) { background-color: rgb(45 52 48 / .5); }
.customer-theme :is(.bg-zinc-950\/80, .bg-zinc-950\/85, .bg-zinc-950\/90) { background-color: rgb(25 28 27 / .94); }
.customer-theme :is(.border-zinc-200, .border-zinc-300, .border-zinc-700, .border-zinc-750, .border-zinc-800, .border-zinc-850) { border-color: var(--customer-border) !important; }
.customer-theme :is(.border-zinc-900, .border-zinc-800\/80) { border-color: #343d37; }
.customer-theme :is(.text-white, .text-zinc-100) { color: var(--customer-text); }
.customer-theme :is(.text-zinc-400, .text-zinc-450, .text-zinc-500) { color: var(--customer-muted) !important; }

/* Retain the green identity with less saturation and no neon bloom. */
.customer-theme :is(.text-emerald-300, .text-emerald-400, .text-emerald-500) { color: var(--customer-accent); }
.customer-theme :is(.bg-emerald-400, .bg-emerald-500) { background-color: var(--customer-accent); }
.customer-theme :is(.hover\:bg-emerald-300, .hover\:bg-emerald-400):hover { background-color: var(--customer-accent-hover); }
.customer-theme :is(.bg-emerald-500\/10, .bg-emerald-500\/15, .bg-emerald-400\/10) { background-color: rgb(166 206 178 / .1); }
.customer-theme :is(.border-emerald-500\/20, .border-emerald-400\/40) { border-color: rgb(166 206 178 / .3); }
.customer-theme :is(a, button).bg-emerald-500 { color: #19271f; border-radius: .9rem; box-shadow: 0 4px 12px rgb(0 0 0 / .14); }
.customer-theme .btn-glow:hover { box-shadow: 0 6px 18px rgb(0 0 0 / .2); }
.customer-theme :is(.hover\:bg-zinc-50, .hover\:bg-zinc-100, .hover\:bg-zinc-800, .hover\:bg-zinc-900):hover { background-color: var(--customer-raised) !important; }
.customer-theme :is(input, textarea, select) { background-color: #1c211e !important; border-color: #667369 !important; color: var(--customer-text) !important; }
.customer-theme :is(input, textarea, select):focus { border-color: var(--customer-accent) !important; box-shadow: 0 0 0 3px rgb(166 206 178 / .18) !important; }
.customer-theme :is(a, button, summary):focus-visible { outline: 2px solid var(--customer-accent); outline-offset: 4px; }
.customer-theme input[type="checkbox"] { accent-color: var(--customer-accent); }
.customer-theme ::selection { background: #a6ceb2; color: #19271f; }
.customer-theme ::-webkit-scrollbar-track { background: var(--customer-page); }
.customer-theme ::-webkit-scrollbar-thumb { background: #56635a; }

/* Warm ambient color replaces the homepage grid and cyan/green glow. */
.customer-theme .home-hero { background-image: radial-gradient(ellipse at 85% 25%, rgb(203 168 124 / .1), transparent 60%); }
.customer-theme .home-hero h1 { font-weight: 600; line-height: 1.12; letter-spacing: -.025em; }
.customer-theme .home-hero h1 > span { color: #c5ddba; }
.customer-theme .home-showcase-frame { border-color: #596358 !important; background-color: #303830 !important; padding: .7rem; box-shadow: 0 18px 45px rgb(0 0 0 / .2); }
.customer-theme #how-it-works .uppercase { text-transform: none; letter-spacing: .035em; font-size: .875rem !important; }
.customer-theme #how-it-works li, .customer-theme main details.group { background-color: var(--customer-panel) !important; border-radius: 1.25rem; }
.customer-theme :is(#how-it-works, .home-invitation) h2 { font-weight: 600; }
.customer-theme .home-invitation { background-image: radial-gradient(ellipse at 50% 100%, rgb(166 206 178 / .1), transparent 75%); }

/* The start screen uses custom styles rather than Tailwind utilities. */
.customer-theme #step-1-panel .creation-choice:not(:disabled) { background: var(--customer-panel); border-color: #566b5d; border-radius: 1.25rem; }
.customer-theme #step-1-panel .creation-choice-logo:not(:disabled) { border-color: #696174; }
.customer-theme #step-1-panel :is(.creation-choice-hype, .creation-choice-dog):not(:disabled) { border-color: #7b7057; }
.customer-theme #step-1-panel .creation-choice:not(:disabled):hover { background: var(--customer-raised); }
.customer-theme #step-1-panel #photo-start-card[data-dragging="true"] { background: #304b39; border-color: var(--customer-accent); }
.customer-theme .photo-upload-button { background: var(--customer-accent); color: #19271f; }
.customer-theme .photo-upload-button:hover { background: var(--customer-accent-hover); }
.customer-theme .creation-choice-logo .creation-choice-action { background: #c4b7d3; color: #282032; }
.customer-theme .creation-choice-logo:hover .creation-choice-action { background: #d5c9e1; }
.customer-theme :is(.creation-choice-title, .photo-entry-heading h1) { color: var(--customer-text); font-weight: 600; }
.customer-theme :is(.creation-choice-description, .creation-choice-note, .photo-upload-formats, .photo-entry-heading > p) { color: var(--customer-muted); }

@media (prefers-contrast: more) {
  .customer-theme :is(.text-zinc-400, .text-zinc-450, .text-zinc-500) { color: #f3f0e8 !important; }
  .customer-theme :is(input, textarea, select, .border-zinc-700, .border-zinc-800, .border-zinc-850) { border-color: #aeb9b0 !important; }
}
