html[data-nova-public] { --nova-theme-components-ready: 1; }
.site-theme-toggle { display: none; }
html[data-nova-public][data-theme-ready] .site-theme-toggle {
  display: inline-grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px;
  box-sizing: border-box; padding: 10px; border: 1px solid var(--touch-line, #e4e5dd);
  border-radius: 50%; background: var(--touch-surface, #fff); color: var(--touch-ink, #242a26);
  cursor: pointer;
}
html[data-nova-public] .site-theme-toggle svg { width: 22px; height: 22px; }
html[data-nova-public] .site-theme-toggle .site-theme-sun { display: none; }
html[data-nova-public][data-theme="dark"] .site-theme-toggle .site-theme-moon { display: none; }
html[data-nova-public][data-theme="dark"] .site-theme-toggle .site-theme-sun { display: block; }
html[data-nova-public] .site-theme-toggle:focus-visible { outline: 2px solid var(--site-focus, #b93830); outline-offset: 2px; }
/* Preserve brand/status typography and height; only share the existing header space. */
html[data-nova-public][data-theme-ready] body:is([data-layout="mobile"], [data-layout="portrait"]) .touch-brand { gap: 6px; }
html[data-nova-public] body:is([data-layout="mobile"], [data-layout="portrait"]) #touchLanguage { flex: 0 0 44px; }
html[data-nova-public] body:is([data-layout="mobile"], [data-layout="portrait"]) .order-method-header > .site-theme-toggle { display: none; }
/* All remaining rules are dark-only and color-only, scoped to the public entry. */
html[data-nova-public][data-theme="dark"] body :is(.touch-brand-lockup, .touch-search, #touchLanguage,
  .supplies-dialog-row, .supplies-dialog-footer, .touch-cart-footer, .customer-details-date-row,
  #customerDetailsFieldsMount, .touch-config-progress, .touch-config-footer,
  .order-confirmation-card, .favorites-conflict-dialog) {
  background-color: var(--site-surface) !important; color: var(--site-ink); border-color: var(--site-line);
}
/* Order confirmation card (owner report 2026-10-16): its surface turns dark above, so the text, row separators,
   e-mail note and SMS step must follow; otherwise the light-mode colours sit on the dark card. */
html[data-nova-public][data-theme="dark"] body .order-confirmation-card :is(.order-confirmation-card__eyebrow,
  .order-confirmation-card__row dt, .order-confirmation-card__sms-status) { color: var(--site-muted); }
html[data-nova-public][data-theme="dark"] body .order-confirmation-card :is(h2, .order-confirmation-card__row dd,
  .order-confirmation-card__sms-button, .order-confirmation-card__sms-confirm-text) { color: var(--site-ink); }
html[data-nova-public][data-theme="dark"] body .order-confirmation-card .order-confirmation-card__row { border-bottom-color: var(--site-line); }
html[data-nova-public][data-theme="dark"] body .order-confirmation-card .order-confirmation-card__mail-note {
  background-color: #0e2412; color: var(--site-ink);
}
html[data-nova-public][data-theme="dark"] body .order-confirmation-card .order-confirmation-card__sms-confirm {
  background-color: var(--site-raised); border-color: var(--site-line);
}
html[data-nova-public][data-theme="dark"] body .order-confirmation-card .order-confirmation-card__sms-confirm-button {
  background-color: var(--site-ink); color: var(--site-canvas); border-color: var(--site-ink);
}
html[data-nova-public][data-theme="dark"] body .order-confirmation-card .order-confirmation-card__sms-cancel-button {
  background-color: var(--site-surface); color: var(--site-ink); border-color: var(--site-line);
}
html[data-nova-public][data-theme="dark"] body #mobileCart #touchCartScroll #cart,
html[data-nova-public][data-theme="dark"] body #cart > li.cart-item {
  background: var(--site-surface) !important; color: var(--site-ink); border-color: var(--site-line);
}
html[data-nova-public][data-theme="dark"] body :is(.supplies-dialog-quantity, .cart-qty-control, .touch-config-step,
  #touchAllCategories, #touchFavoritesAll) { background-color: var(--site-raised) !important; color: var(--site-ink); }
html[data-nova-public][data-theme="dark"] body :is(input:not([type="radio"]):not([type="checkbox"]), select, textarea) {
  background-color: var(--site-surface) !important; color: var(--site-ink) !important;
  border-color: var(--site-line); caret-color: var(--site-ink);
}
html[data-nova-public][data-theme="dark"] body :is(input, textarea)::placeholder { color: var(--site-muted); opacity: 1; }
html[data-nova-public][data-theme="dark"] body input:-webkit-autofill {
  -webkit-text-fill-color: var(--site-ink); box-shadow: 0 0 0 1000px var(--site-surface) inset !important;
}
html[data-nova-public][data-theme="dark"] body :is(button, input, select, textarea, a):focus-visible {
  outline-color: var(--site-focus) !important;
}
html[data-nova-public][data-theme="dark"] body section.touch-menu-section .menu-row.menu-item .favorite-menu-btn {
  background: radial-gradient(circle 14px at center, var(--site-surface) 98%, transparent 100%) !important;
  color: var(--site-muted) !important;
}
html[data-nova-public][data-theme="dark"] body section.touch-menu-section .menu-row.menu-item .favorite-menu-btn.is-active { color: var(--site-accent-text) !important; }
html[data-nova-public][data-theme="dark"] body section.touch-menu-section .menu-row.menu-item .qty-box :is(.qty-plus, .qty-minus, .nova-product-add),
html[data-nova-public][data-theme="dark"] body .touch-menu-section .nova-product-add {
  background: var(--site-accent-soft) !important; color: var(--site-accent-text) !important; border-color: var(--site-line);
}
/* Every layout: each card add "+" keeps the light-pink add control (#fcede9 with a #b93830 "+"), also in dark mode, so
   managed and configurable products (Veggie Box, Viva Box, Xbento, X-Bowl, X-Box, inside-out rolls) match the other rows.
   Phone/portrait since the owner report of 2026-10-13; desktop by owner decision the same evening (one style site-wide). */
html[data-nova-public][data-theme="dark"] body section.touch-menu-section .menu-row.menu-item .qty-box > :is(.qty-plus, .nova-product-add.add-button, .touch-config-trigger) {
  background-color: #fcede9 !important; background-image: none !important; background-clip: padding-box !important; color: #b93830 !important;
}
/* Inside-out roll cards (all layouts) show their "Vanaf" price as the first paragraph (black in the legacy menu CSS). */
html[data-nova-public][data-theme="dark"] body section.touch-menu-section .menu-row.menu-item .menu-content > p[id$="PriceDisplay"] {
  color: var(--site-ink) !important;
}
html[data-nova-public][data-theme="dark"] body .touch-categories :is(#touchCategoryList, #touchFavoritesCategoryList) button[aria-pressed="true"] {
  background-color: var(--site-ink); color: var(--site-canvas);
}
html[data-nova-public][data-theme="dark"] body #touchSuppliesDialog::backdrop { background: var(--site-canvas); }
html[data-nova-public][data-theme="dark"] body :is(.touch-menu-config-sheet, .touch-product-detail-sheet, .touch-category-dialog) {
  background-color: var(--site-canvas); color: var(--site-ink); border-color: var(--site-line);
}
html[data-nova-public][data-theme="dark"] body :is(.touch-config-close, .touch-config-step select, .touch-config-choices,
  .touch-detail-footer, .touch-detail-quantity) { background-color: var(--site-raised); color: var(--site-ink); border-color: var(--site-line); }
html[data-nova-public][data-theme="dark"] body #cart > li.cart-item::after { border-color: var(--site-muted); }
html[data-nova-public][data-theme="dark"] body :is(h1, h2, h3, .p-h3, .menu-note) { color: var(--site-ink) !important; }
html[data-nova-public][data-theme="dark"] body #bestsellerCarousel .bestseller-card { background: var(--site-surface); border-color: var(--site-line); }
html[data-nova-public][data-theme="dark"] body #bestsellerCarousel .bestseller-card .bestseller-add-button,
html[data-nova-public][data-theme="dark"] body .touch-menu-section .touch-config-trigger,
html[data-nova-public][data-theme="dark"] body .menu-soldout-label {
  background-color: var(--site-accent-soft) !important; color: var(--site-accent-text) !important;
}
html[data-nova-public][data-theme="dark"] body .touch-remark-label { color: var(--site-ink) !important; }
html[data-nova-public][data-theme="dark"] body :is(.touch-config-rule, .touch-config-stepper, .touch-product-detail-stepper,
  .touch-product-detail-header button) { background: var(--site-raised); color: var(--site-ink); }
html[data-nova-public][data-theme="dark"] body :is(.touch-config-count-group, .touch-config-save) {
  background: var(--site-surface); border-color: var(--site-line); color: var(--site-accent-text);
}
html[data-nova-public][data-theme="dark"] body .touch-config-count-row { border-color: var(--site-line); }
html[data-nova-public][data-theme="dark"] body .touch-config-progress[data-complete="true"] p { color: #a6d6a4; }
html[data-nova-public][data-theme="dark"] body .touch-config-group[data-complete="true"] .touch-config-step { background: #2e4130; color: #a6d6a4; }

/* Secondary public surfaces: colors only; retain the original layout and actions. */
html[data-nova-public][data-theme="dark"] body :is(#reviewsContent, .favorites-conflict-banner,
  .favorites-conflict-safety, .favorites-conflict-separate, .favorites-conflict-review,
  .favorites-conflict-refresh, .favorites-conflict-lists section) {
  background: var(--site-surface) !important; color: var(--site-ink); border-color: var(--site-line);
}
html[data-nova-public][data-theme="dark"] body .favorites-conflict-lists li span { color: var(--site-muted); }
html[data-nova-public][data-theme="dark"] body .favorites-conflict-status { color: var(--site-accent-text); }
html[data-nova-public][data-theme="dark"] body #customerDetailsModal[data-mode="touch-profile"] #touchDeliveryAddress {
  background: var(--site-surface); border-color: var(--site-line);
}
html[data-nova-public][data-theme="dark"] body #mobileAgentOverlay :is(.mobile-agent-sheet, .mobile-agent-input,
  .mobile-agent-block, .mobile-agent-item, .mobile-agent-item-stepper, .mobile-agent-item-step-btn,
  .mobile-agent-item-remove, .mobile-agent-checkout-shortcut, .contact-icon-link) {
  background: var(--site-surface); color: var(--site-ink); border-color: var(--site-line);
}
html[data-nova-public][data-theme="dark"] body #mobileAgentOverlay :is(.mobile-agent-title,
  .mobile-agent-block-title, .mobile-agent-explanation, .mobile-agent-item-name,
  .mobile-agent-item-price, .mobile-agent-item-step-value) { color: var(--site-ink); }
html[data-nova-public][data-theme="dark"] body #mobileAgentOverlay :is(.mobile-agent-subtitle,
  .mobile-agent-status, .mobile-agent-item-reason, .mobile-agent-note) { color: var(--site-muted); }
html[data-nova-public][data-theme="dark"] body #mobileAgentOverlay .mobile-agent-status.is-error { color: var(--site-accent-text); }
html[data-nova-public][data-theme="dark"] body #mobileAgentOverlay :is(.mobile-agent-item-step-btn,
  .mobile-agent-item-remove):hover { background: var(--site-raised); }
html[data-nova-public][data-theme="dark"] body[data-layout="desktop"] #mobileAgentOverlay .mobile-agent-close {
  background: var(--site-raised); color: var(--site-ink); border-color: var(--site-line);
}
