/* Appearance is independent from collection palettes and the bed configurator. */
.theme-toggle { display: inline-grid; flex: 0 0 auto; place-items: center; width: 2.75rem; height: 2.75rem; padding: .7rem; border: 1px solid currentColor; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.theme-toggle svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.theme-toggle__sun, [data-appearance="dark"] .theme-toggle__moon { display: none; }
[data-appearance="dark"] .theme-toggle__sun { display: block; }
.theme-toggle:hover { background: color-mix(in srgb, currentColor 12%, transparent); }
.theme-toggle:focus-visible, .theme-preference select:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.theme-preference { display: flex; grid-column: 1 / -1; align-items: center; flex-wrap: wrap; gap: .75rem; width: 100%; margin: 1.25rem auto 0; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: .75rem; }
.theme-preference select { min-height: 2.75rem; max-width: 100%; border: 1px solid var(--line); border-radius: .5rem; padding: .5rem 2rem .5rem .75rem; font: inherit; background: var(--paper); color: var(--ink); }
/* The footer now includes appearance settings; wrap long legal links predictably. */
.site-footer { grid-template-columns: 12rem minmax(0, 1fr); gap: 2rem; }
.site-footer nav { flex-wrap: wrap; align-self: start; gap: .35rem 1.5rem; min-width: 0; }
.site-footer__note { grid-column: 1 / -1; width: 100%; max-width: none; text-align: left; }
:root[data-appearance="light"] .customer-document { --content: 100%; --cream: #f7f5f1; --paper: #fbfaf7; --ink: #29241f; --ink-soft: #5e544b; --line: #29241f29; }
.customer-document .theme-preference { width: 100%; }
.customer-document__header .theme-toggle { flex-shrink: 0; }
[data-appearance="dark"] body.customer-document { background: var(--cream); color: var(--ink); }
[data-appearance="dark"] .customer-document__header img { filter: brightness(0) invert(1); }
[data-appearance="dark"] .customer-document__navigation a[aria-current=page] { background: var(--paper); }
[data-appearance="dark"] :is(.customer-document__intro, .customer-document__date) { color: var(--ink-soft); }
[data-appearance="dark"] .customer-document__skip { background: var(--paper); color: var(--ink); }

:root[data-appearance="dark"] {
  color-scheme: dark;
  /* !important deliberately overrides inline collection colors, without changing them. */
  --cream: #0f0f0f !important;
  --cream-deep: #1c1c1c !important;
  --paper: #1c1c1c !important;
  --surface: #1c1c1c;
  --surface-raised: #262626;
  --ink: #eeeeee !important;
  --ink-soft: #bdbdbd !important;
  --ink-faint: #a3a3a3 !important;
  --brown: #bdbdbd !important;
  --brown-dark: #dedede !important;
  --theme-on-accent: #161616 !important;
  --theme-hotspot: #dedede !important;
  --line: #ffffff29;
  --danger: #f3a49a;
  --success: #a9c89e;
  --warning: #e2bf84;
  --shadow-sm: 0 10px 30px #0003;
  --shadow-md: 0 26px 70px #0005;
  --shadow-lg: 0 38px 110px #0008;
}
[data-appearance="dark"] :is(.home-categories, .home-catalog, .home-contact, .custom-kitchen-home, .own-design-contact) { background: var(--cream); }
[data-appearance="dark"] .custom-kitchen-home__gallery figcaption { background: #1c1c1ced; color: var(--ink); border-color: var(--line); }
[data-appearance="dark"] .custom-kitchen-home__gallery figcaption :is(span, small) { color: var(--ink-soft); }
[data-appearance="dark"] .own-design-teaser { background: var(--cream); }
[data-appearance="dark"] .own-design-teaser__link { background: var(--cream); }
[data-appearance="dark"] :is(.own-design-hero, .own-design-craft, .own-design-inspiration__card, .own-design-teaser__link) { color: var(--ink); }
[data-appearance="dark"] :is(.own-design-hero h1 span, .own-design-craft h2 span) { color: var(--ink-soft); }
[data-appearance="dark"] .own-design-hero .button { background: var(--brown-dark); color: var(--theme-on-accent); border-color: var(--brown-dark); }
[data-appearance="dark"] .own-design-teaser__link:is(:hover, :focus-visible) { background: var(--paper); border-color: var(--line); }
[data-appearance="dark"] .home-review, [data-appearance="dark"] .home-review::after { background: var(--paper); border-color: var(--line); }
[data-appearance="dark"] .own-design-teaser__diagram { background: #e8e3db; border-radius: 1.25rem; }
[data-appearance="dark"] :is(.home-review time, .home-work > p, .home-showcase__counter, .catalog-card-status) { color: var(--ink-soft); }
[data-appearance="dark"] .home-showcase__arrows button { border-color: var(--ink-faint); }
[data-appearance="dark"] .home-showcase__dots span { background: #ffffff40; }
[data-appearance="dark"] .home-showcase__dots .is-active { background: var(--brown); }
[data-appearance="dark"] .mobile-menu { background: #1c1c1cf5; }
[data-appearance="dark"] :is(.site-footer__channel > a, .room-preview-trigger--recommendation, .product-peek__actions button.room-preview-trigger--peek, .room-preview-trigger--related, .prompt-guide__formula span, .prompt-example, .room-preview-photo-picker, .room-preview-photo-picker:hover) { background: var(--cream-deep); }
[data-appearance="dark"] .cookie-notice button { background: var(--brown-dark); color: var(--theme-on-accent); }
[data-appearance="dark"] .chat-header__title > img { filter: brightness(0) invert(1); }
[data-appearance="dark"] :is(.mobile-menu__top > img, .site-footer img) { filter: brightness(0) invert(1); }
[data-appearance="dark"] .site-header :is(.brand-link__full--dark, .brand-link__mark--dark) { opacity: 0; }
[data-appearance="dark"] .site-header :is(.brand-link__full--light, .brand-link__mark--light) { opacity: 1; }
[data-appearance="dark"] :is(.icon-button, .icon-button:hover) { background: #ffffff0d; color: var(--ink); border-color: var(--line); }
[data-appearance="dark"] :is(.button--dark, .send-button, .browse-collections-button, .button--outline:hover) { background: var(--brown-dark); color: var(--theme-on-accent); border-color: var(--brown-dark); }
[data-appearance="dark"] :is(.button--dark:hover, .send-button:hover, .browse-collections-button:hover) { background: var(--brown); }
[data-appearance="dark"] :is(.button--light, .button--light:hover) { background: var(--paper); color: var(--ink); }
[data-appearance="dark"] :is(.catalog-favorites-tab.is-active, .catalog-product-card__actions .room-preview-trigger--catalog) { color: var(--theme-on-accent); }
[data-appearance="dark"] :is(.cookie-notice, .generation-resume, .message--user, .collection-cta, .noscript-message) { background: #262626; color: #eeeeee; }
[data-appearance="dark"] :is(.assistant-entry, .assistant-entry__form, .message--assistant, .recommendation-card, .concept-result, .chat-composer textarea, .form-grid input, .form-grid textarea, .color-form textarea, .room-preview-instruction textarea, .generation-bug-images figure, .prompt-guide) { background: var(--paper); color: var(--ink); border-color: var(--line); }
[data-appearance="dark"] :is(input, textarea)::placeholder { color: var(--ink-faint); }
[data-appearance="dark"] .chat-header::after, [data-appearance="dark"] .chat-composer::before { background: none; }
[data-appearance="dark"] :is(.catalog-product-card, .design-agreement) { background: var(--paper); border-color: var(--line); }
/* Keep photographs and their studio backgrounds true to the original. */
[data-appearance="dark"] :is(.catalog-product-card__media, .product-card__media, .home-work__photo) { background: #e9e4dc; }
[data-appearance="dark"] :is(.catalog-card-status--concept, .product-experience--concept .product-detail__visualization-note, .design-agreement--concept, .callback-reference__picker) { background: #262626; color: var(--ink-soft); border-color: var(--line); }
[data-appearance="dark"] .catalog-card-status i { background: #ffffff; }
[data-appearance="dark"] :is(.design-agreement .eyebrow, .design-agreement > p, .design-agreement li > span, .design-agreement li p, .design-agreement > small, .callback-reference__picker small) { color: var(--ink-soft); }
[data-appearance="dark"] .catalog-product-card__secondary :is(.room-preview-trigger--catalog, .catalog-add-button) { background: transparent; color: var(--ink-soft); border-color: var(--line); }
[data-appearance="dark"] .catalog-product-card__secondary .catalog-add-button:hover { background: #ffffff0d; }
[data-appearance="dark"] :is(.catalog-calculate-button, .catalog-add-button) { background: #dedede; color: #161616; }
[data-appearance="dark"] :is(.catalog-calculate-button:hover, .catalog-add-button:hover) { background: #bdbdbd; }
[data-appearance="dark"] :is(.project-card__delete, .generation-bug-trigger, .prompt-example--bad > span, .bed-error) { color: var(--danger); }
[data-appearance="dark"] .prompt-example--good > span { color: var(--success); }
[data-appearance="dark"] :is(.message--error, .specification-alert--danger, .cart-item__remove:hover) { background: #442b28; color: var(--danger); }
[data-appearance="dark"] .specification-alert { background: #3b3224; color: var(--warning); }
[data-appearance="dark"] .skeleton { background: #303030; }
[data-appearance="dark"] .skeleton::after { background: linear-gradient(100deg, transparent 20%, #ffffff0d 45%, transparent 70%); }
[data-appearance="dark"] .site-photo-loading { background: #1c1c1ced; border-color: var(--line); }
[data-appearance="dark"] .site-loading__bar { background: var(--brown); }

/* Transparent 3D canvas: change the backdrop while keeping material colors and lights. */
[data-appearance="dark"] .bed-studio { background: radial-gradient(ellipse at 45% 35%, #222222, #171717 85%); border-color: var(--line); }
[data-appearance="dark"] :is(.bed-studio__top, .bed-studio__bottom) { color: var(--ink-soft); }
[data-appearance="dark"] .bed-dimension-lines { stroke: var(--ink-faint); }
[data-appearance="dark"] :is(.bed-customizer__tools, .bed-dimension, .bed-info > span, .bed-section textarea, .bed-color-value label input) { background: var(--paper); border-color: var(--line); color: var(--ink); }
[data-appearance="dark"] :is(.bed-customizer__tools-heading > span:first-child, .bed-control__heading label, .bed-control__label, .bed-control__heading output, .bed-choice__value strong, .bed-section > summary, .bed-section__intro, .bed-instructions, .bed-color-parts button, .bed-dimension strong) { color: var(--ink); }
[data-appearance="dark"] :is(.bed-customizer__tools-heading > span:last-child, .bed-control__heading output small, .bed-control__bounds, .bed-sync > label, .bed-info > button, .bed-choice__value span, .bed-customizer__tools-note, .bed-customizer__summary-label, .bed-customizer__summary p, .bed-customizer__summary > span:last-child, .bed-section > summary small, .bed-section > summary i, .bed-control__note, .bed-check, .bed-reference-list span, .bed-reference-list button, .bed-brightness, .bed-color-value label, .bed-feedback, .bed-feedback button, .bed-dimension small, .callback-bed-details summary, .callback-bed-details p) { color: var(--ink-soft); }
[data-appearance="dark"] :is(.bed-section, .bed-control, .bed-reference-list > div, .bed-color-parts > div, .callback-bed-details), [data-appearance="dark"] .bed-info > button::before { border-color: var(--line); }
[data-appearance="dark"] :is(.bed-choice button, .bed-color-value > input, .bed-color-value label input) { color: var(--ink); border-color: var(--line); }
[data-appearance="dark"] :is(.bed-reset:hover, .bed-choice button:hover, .bed-upload, .bed-color-parts > div:has([aria-pressed=true])) { background: #242424; color: var(--ink); border-color: var(--brown); }
[data-appearance="dark"] :is(.bed-control, .bed-brightness) input[type=range]::-webkit-slider-runnable-track { background: linear-gradient(to right, var(--brown) 0 var(--range-progress, 50%), #525252 var(--range-progress, 50%) 100%); }
[data-appearance="dark"] :is(.bed-control, .bed-brightness) input[type=range]::-webkit-slider-thumb { background: var(--brown-dark); border-color: var(--paper); }
[data-appearance="dark"] :is(.bed-control, .bed-brightness) input[type=range]::-moz-range-track { background: #525252; }
[data-appearance="dark"] :is(.bed-control, .bed-brightness) input[type=range]::-moz-range-progress { background: var(--brown); }
[data-appearance="dark"] :is(.bed-control, .bed-brightness) input[type=range]::-moz-range-thumb { background: var(--brown-dark); border-color: var(--paper); }
[data-appearance="dark"] .bed-check input { accent-color: var(--brown); }
[data-appearance="dark"] .bed-customizer input[type=checkbox] { accent-color: var(--brown); }

@media (max-width: 85rem) and (min-width: 64.01rem) {
  .site-header__actions .header-projects-button > span, .site-header__actions .header-manager-button > span { display: none; }
}
@media (max-width: 37.5rem) {
  .theme-toggle { width: 2.7rem; height: 2.7rem; padding: .7rem; }
}
@media (max-width: 48rem) {
  .site-footer { grid-template-columns: minmax(0, 1fr); }
  .site-footer nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-contrast: more) {
  :root[data-appearance="dark"] { --ink-soft: #e1e1e1 !important; --ink-faint: #cdcdcd !important; --line: #ffffff80; }
}
@media print {
  .theme-toggle, .theme-preference { display: none; }
  :root[data-appearance] body.customer-document { background: white; color: #29241f; }
  :root[data-appearance] .customer-document :is(.customer-document__intro, .customer-document__date) { color: #5e544b; }
}

/* Neutral control accents follow the reference palette in dark appearance. */
[data-appearance="dark"] .bed-reset { border-color: var(--line); }
[data-appearance="dark"] .bed-dimension.is-selected { border-color: #8a8a8a; }
[data-appearance="dark"] .bed-section.is-selected > summary,
[data-appearance="dark"] .bed-section.is-selected > summary small { color: var(--ink); }
[data-appearance="dark"] :is(.bed-control, .bed-brightness) input[type=range]::-webkit-slider-thumb { box-shadow: 0 0 0 1px #a3a3a3; }
[data-appearance="dark"] :is(.bed-control, .bed-brightness) input[type=range]::-moz-range-thumb { box-shadow: 0 0 0 1px #a3a3a3; }
[data-appearance="dark"] .bed-customizer :is(button,input,textarea,summary):focus-visible { outline-color: var(--ink); }
[data-appearance="dark"] .bed-dimension:is(:hover,:focus-visible) { border-color: #a3a3a3; box-shadow: 0 3px 14px #0003; }

/* Secondary controls use the same neutral palette as the primary sliders. */
[data-appearance="dark"] .bed-customizer input[type=range] { accent-color: var(--brown); }
[data-appearance="dark"] .bed-customizer__tools { scrollbar-color: #525252 transparent; }
[data-appearance="dark"] .bed-upload:focus-within { outline-color: var(--ink); }
[data-appearance="dark"] .bed-zoom button:hover { background: #303030; }
[data-appearance="dark"] .bed-feedback button { border-bottom-color: var(--line); }
[data-appearance="dark"] .bed-color-parts button i { border-color: #777777; }
[data-appearance="dark"] .bed-color-disc > i { box-shadow: 0 0 0 1px #525252, 0 1px 5px #0005; }
[data-appearance="dark"] .bed-choice__value span:not(:empty)::before { color: var(--ink-faint); }
[data-appearance="dark"] .bed-dimension:is([data-fit=unavailable],[data-fit=unknown]) { border-color: #777777; }
[data-appearance="dark"] .bed-studio__top i { border-color: #777777; }
[data-appearance="dark"] .bed-studio__loading { color: var(--ink-soft); }
[data-appearance="dark"] .bed-studio__loading > span { border-color: #525252; border-top-color: var(--ink); }
