:root {
    --lg-primary: #ff5a3c;
    --lg-primary-hover: #d94229;
    --lg-primary-soft: #fff0ec;
    --lg-page: #f5f7f9;
    --lg-surface: #fff;
    --lg-text: #222831;
    --lg-muted: #7c8590;
    --lg-border: #e3e6e9;
    --lg-accent: #e96379;
    --lg-on-primary: #fff;
    --lg-shadow: 0 18px 48px rgba(24,33,44,.11), 0 4px 14px rgba(24,33,44,.05);
}
:root[data-lg-theme="standard"][data-app-surface="admin"],
:root[data-lg-theme="standard"][data-app-surface="partner"] {
    --lg-primary: #53606d;
    --lg-primary-hover: #36414c;
    --lg-primary-soft: #eef0f2;
    --lg-page: #f3f4f5;
    --lg-surface: #fff;
    --lg-text: #252b31;
    --lg-muted: #747c85;
    --lg-border: #dfe2e5;
    --lg-accent: #ff5a3c;
    --lg-on-primary: #fff;
    --lg-shadow: 0 16px 42px rgba(32,38,44,.09), 0 3px 12px rgba(32,38,44,.04);
}
:root[data-lg-theme="rosa"] {
    --lg-primary: #b8326a; --lg-primary-hover: #8f244f; --lg-primary-soft: #fff0f6;
    --lg-page: #f5f7f9; --lg-surface: #fff; --lg-text: #29242a; --lg-muted: #817680;
    --lg-border: #eadfe5; --lg-accent: #b8326a; --lg-on-primary: #fff;
}
:root[data-lg-theme="nacht"] {
    color-scheme: dark;
    --lg-primary: #98b9eb; --lg-primary-hover: #b1ccf2; --lg-primary-soft: #273342;
    --lg-page: #16171a; --lg-surface: #202125; --lg-text: #ececef; --lg-muted: #a7a9b2;
    --lg-border: #393a40; --lg-accent: #e891aa; --lg-on-primary: #172334;
    --lg-shadow: 0 16px 44px rgba(0,0,0,.3);
}
:root[data-lg-theme="mode"] {
    --lg-primary: #171717; --lg-primary-hover: #000; --lg-primary-soft: #f0ece6;
    --lg-page: #eee9e2; --lg-surface: #fffdf9; --lg-text: #171717; --lg-muted: #736e68;
    --lg-border: #ded7cf; --lg-accent: #a80f4d; --lg-on-primary: #fff;
}
:root[data-lg-theme="robust"] {
    --lg-primary: #3d552f; --lg-primary-hover: #26371d; --lg-primary-soft: #edf1e8;
    --lg-page: #e8e5da; --lg-surface: #fbfaf5; --lg-text: #2b2a23; --lg-muted: #777064;
    --lg-border: #d8d2c3; --lg-accent: #995034; --lg-on-primary: #fff;
}
:root[data-lg-theme="silber"] {
    --lg-primary: #50565f; --lg-primary-hover: #30353c; --lg-primary-soft: #e7e9ec;
    --lg-page: #d0d1d5; --lg-surface: #f8f8f9; --lg-text: #24282e; --lg-muted: #68707a;
    --lg-border: #c9cdd2; --lg-accent: #717b89; --lg-on-primary: #fff;
}

:root[data-lg-theme] {
    --navy: var(--lg-primary); --navy-dark: var(--lg-primary-hover); --canvas: var(--lg-page);
    --white: var(--lg-surface); --ink: var(--lg-text); --muted: var(--lg-muted); --line: var(--lg-border);
    --blue: var(--lg-primary); --blue-dark: var(--lg-primary-hover); --blue-soft: var(--lg-primary-soft);
    --rose: var(--lg-accent); --rose-soft: color-mix(in srgb, var(--lg-accent) 9%, var(--lg-surface));
    --border: var(--lg-border); --page: var(--lg-page); --surface: var(--lg-surface); --shadow: var(--lg-shadow);
}

html[data-lg-theme] body { color:var(--lg-text); background:var(--lg-page); }
html[data-lg-theme] .admin-topbar,
html[data-lg-theme] .admin-sidebar,
html[data-lg-theme] .admin-context,
html[data-lg-theme] .card,
html[data-lg-theme] .table-card,
html[data-lg-theme] .form-card,
html[data-lg-theme] .account-popover,
html[data-lg-theme] .quick-results,
html[data-lg-theme] .photo-header,
html[data-lg-theme] .photo-card,
html[data-lg-theme] .customer-photo-item { color:var(--lg-text); background-color:var(--lg-surface); border-color:var(--lg-border); }
html[data-lg-theme] .admin-sidebar .nav-link.active { color:var(--lg-primary); background:var(--lg-primary-soft); border-color:color-mix(in srgb,var(--lg-primary) 40%,var(--lg-border)); }
html[data-lg-theme] .admin-sidebar .nav-link.active .nav-icon { color:var(--lg-on-primary); background:var(--lg-primary); }
html[data-lg-theme] .admin-context .context-link.active,
html[data-lg-theme] .button:not(.secondary):not(.danger),
html[data-lg-theme] .photo-file-button,
html[data-lg-theme] .submit,
html[data-lg-theme] .customer-photo-save { color:var(--lg-on-primary); background-color:var(--lg-primary); }
html[data-lg-theme] .photo-card h1,
html[data-lg-theme] .photo-card h2,
html[data-lg-theme] .customer-photo-list h2,
html[data-lg-theme] .booking-ref { color:var(--lg-primary); }
html[data-lg-theme] .booking-ref { background:var(--lg-primary-soft); }
html[data-lg-theme] .dropzone { background:var(--lg-page); border-color:var(--lg-border); }
html[data-lg-theme] .photo-tag-input { color:var(--lg-text); background:var(--lg-surface); border-color:var(--lg-border); }
html[data-lg-theme] .admin-sidebar .nav-link:not(.active),
html[data-lg-theme] .context-link:not(.active) { color:var(--lg-muted); background:var(--lg-page); border-color:var(--lg-border); }
html[data-lg-theme="nacht"] { color-scheme:dark; }
html[data-lg-theme="nacht"] .control,
html[data-lg-theme="nacht"] input,
html[data-lg-theme="nacht"] select,
html[data-lg-theme="nacht"] textarea { color: var(--lg-text); background-color: #292a30; border-color: var(--lg-border); }
html[data-lg-theme="nacht"] th { color: var(--lg-muted); background: #292a30; }
html[data-lg-theme="nacht"] td { border-color: var(--lg-border); }
html[data-lg-theme="nacht"] .site-header { background: rgba(32,33,37,.95); border-color: var(--lg-border); }
html[data-lg-theme="nacht"] .step { color: #999ba4; }

.theme-picker { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:9px 0 5px; padding-top:9px; border-top:1px solid var(--lg-border); }
.theme-picker-label { grid-column:1/-1; color:var(--lg-muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.theme-choice { display:grid; width:100%; min-width:0; min-height:46px; padding:5px 3px; justify-items:center; align-content:center; gap:4px; color:var(--lg-muted); background:var(--lg-page); border:1px solid var(--lg-border); border-radius:7px; font-size:8px; line-height:1; cursor:pointer; }
.theme-choice-label { display:block; width:100%; max-width:100%; overflow-wrap:anywhere; text-align:center; white-space:normal; line-height:1.15; }
.theme-choice[aria-pressed="true"] { color:var(--lg-primary); border-color:var(--lg-primary); box-shadow:0 0 0 2px color-mix(in srgb,var(--lg-primary) 14%,transparent); }
.theme-swatch { display:flex; width:30px; height:10px; overflow:hidden; border:1px solid color-mix(in srgb,var(--lg-border) 70%,#888); border-radius:999px; }
.theme-swatch i { flex:1; }
@media(max-width:720px) { .theme-picker { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* Shared admin palette: every panel, control and status follows the selected theme. */
:root[data-lg-theme] {
    --lg-control: color-mix(in srgb, var(--lg-surface) 90%, var(--lg-page));
    --lg-subtle: color-mix(in srgb, var(--lg-surface) 72%, var(--lg-page));
    --lg-success: #18754b;
    --lg-success-soft: color-mix(in srgb, #18754b 11%, var(--lg-surface));
    --lg-danger: #ad3949;
    --lg-danger-soft: color-mix(in srgb, #ad3949 9%, var(--lg-surface));
    --lg-warning: #916313;
    --lg-warning-soft: color-mix(in srgb, #dca826 15%, var(--lg-surface));
    --lg-on-success: #fff;
    --lg-on-danger: #fff;
    --lg-logo: var(--lg-primary);
}
:root[data-lg-theme="rosa"] { --lg-page:#fbf5f8; --lg-primary-soft:#fae7ef; }
:root[data-lg-theme="mode"] { --lg-page:#eee9e2; --lg-primary-soft:#e7e0d7; }
:root[data-lg-theme="robust"] { --lg-page:#e8e5da; --lg-primary-soft:#e3e9d9; }
:root[data-lg-theme="silber"] { --lg-page:#d0d1d5; --lg-primary-soft:#e7e9ec; }
:root[data-lg-theme="nacht"] {
    --lg-control:#292a30; --lg-subtle:#25262b;
    --lg-success:#69d49c; --lg-success-soft:#20352d;
    --lg-danger:#ff9ba6; --lg-danger-soft:#40282d;
    --lg-warning:#f0c86e; --lg-warning-soft:#3b3424;
    --lg-on-success:#10261c; --lg-on-danger:#321017;
    --lg-logo:#fff;
}

html[data-lg-theme] .top-brand-logo { background-color:var(--lg-logo); }
html[data-lg-theme="standard"] .top-brand-logo,
html[data-lg-theme="rosa"] .top-brand-logo { display:none; }
html[data-lg-theme="standard"] .top-brand-color,
html[data-lg-theme="rosa"] .top-brand-color { display:block; }
html[data-lg-theme] .admin-topbar,
html[data-lg-theme] .admin-sidebar,
html[data-lg-theme] .admin-context,
html[data-lg-theme] .card,
html[data-lg-theme] .table-card,
html[data-lg-theme] .form-card,
html[data-lg-theme] .account-popover,
html[data-lg-theme] .quick-results,
html[data-lg-theme] .context-group-menu,
html[data-lg-theme] .checkin-dialog,
html[data-lg-theme] .check-action,
html[data-lg-theme] .checkin-preorders,
html[data-lg-theme] .checkin-preorder-row,
html[data-lg-theme] .checkout-choice-card,
html[data-lg-theme] .delivery-row,
html[data-lg-theme] .delivery-customer,
html[data-lg-theme] .delivery-address-card,
html[data-lg-theme] .delivery-contact,
html[data-lg-theme] .booking-mobile-card,
html[data-lg-theme] .booking-mobile-empty,
html[data-lg-theme] .customer-reservation-extra,
html[data-lg-theme] .document-card,
html[data-lg-theme] .document-empty,
html[data-lg-theme] .customer-photo-card,
html[data-lg-theme] .reservation-image-card {
    color:var(--lg-text); background-color:var(--lg-surface); border-color:var(--lg-border);
}
html[data-lg-theme] .admin-topbar { background-color:color-mix(in srgb,var(--lg-surface) 94%,transparent); }
html[data-lg-theme] .top-account summary { color:var(--lg-on-primary); background:var(--lg-primary); }
html[data-lg-theme] .field label,
html[data-lg-theme] .field-label,
html[data-lg-theme] .muted { color:var(--lg-muted); }
html[data-lg-theme] .admin-content h1,
html[data-lg-theme] .admin-content h2,
html[data-lg-theme] .admin-content h3,
html[data-lg-theme] .admin-content h4,
html[data-lg-theme] .admin-context>strong,
html[data-lg-theme] .checkin-heading h2,
html[data-lg-theme] .checkin-preorder-row strong,
html[data-lg-theme] .check-action-copy strong,
html[data-lg-theme] .checkout-choice-card strong,
html[data-lg-theme] .delivery-row strong,
html[data-lg-theme] .delivery-address-card strong,
html[data-lg-theme] .document-card-meta strong { color:var(--lg-primary-hover); }
html[data-lg-theme] .control,
html[data-lg-theme] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
html[data-lg-theme] select,
html[data-lg-theme] textarea {
    color:var(--lg-text); background-color:var(--lg-control); border-color:var(--lg-border); accent-color:var(--lg-primary);
}
html[data-lg-theme] input[type="file"] { color:var(--lg-muted); cursor:pointer; }
html[data-lg-theme] input[type="file"]::file-selector-button {
    min-height:32px; margin-right:10px; padding:0 12px; color:var(--lg-on-primary); background:var(--lg-primary);
    border:1px solid var(--lg-primary); border-radius:8px; box-shadow:none; font:inherit; font-size:10px; font-weight:800; cursor:pointer;
    transition:background-color .16s,border-color .16s,transform .16s;
}
html[data-lg-theme] input[type="file"]::-webkit-file-upload-button {
    min-height:32px; margin-right:10px; padding:0 12px; color:var(--lg-on-primary); background:var(--lg-primary);
    border:1px solid var(--lg-primary); border-radius:8px; box-shadow:none; font:inherit; font-size:10px; font-weight:800; cursor:pointer;
    transition:background-color .16s,border-color .16s,transform .16s;
}
html[data-lg-theme] input[type="file"]:hover::file-selector-button,
html[data-lg-theme] input[type="file"]:focus-visible::file-selector-button {
    background:var(--lg-primary-hover); border-color:var(--lg-primary-hover); transform:translateY(-1px);
}
html[data-lg-theme] input[type="file"]:hover::-webkit-file-upload-button,
html[data-lg-theme] input[type="file"]:focus-visible::-webkit-file-upload-button {
    background:var(--lg-primary-hover); border-color:var(--lg-primary-hover); transform:translateY(-1px);
}
html[data-lg-theme] .lg-panel-quick-nav input { background:transparent; }
html[data-lg-theme] .control:focus,
html[data-lg-theme] input:focus,
html[data-lg-theme] select:focus,
html[data-lg-theme] textarea:focus { border-color:var(--lg-primary); }
html[data-lg-theme] th,
html[data-lg-theme] .checkin-preorder-row:hover,
html[data-lg-theme] .delivery-row:hover,
html[data-lg-theme] .quick-results a:hover { color:var(--lg-text); background:var(--lg-subtle); }
html[data-lg-theme] td,
html[data-lg-theme] .checkin-preorder-row,
html[data-lg-theme] .delivery-row,
html[data-lg-theme] .document-card-meta,
html[data-lg-theme] .customer-reservation-extra { border-color:var(--lg-border); }
html[data-lg-theme] .admin-sidebar .nav-link:not(.active),
html[data-lg-theme] .admin-sidebar .nav-icon,
html[data-lg-theme] .context-link:not(.active),
html[data-lg-theme] .theme-choice,
html[data-lg-theme] .button.secondary,
html[data-lg-theme] .button-neutral,
html[data-lg-theme] .button-secondary,
html[data-lg-theme] .icon-button,
html[data-lg-theme] .settings-card-toggle,
html[data-lg-theme] .shop-panel-arrow,
html[data-lg-theme] .banner-chevron,
html[data-lg-theme] .reservation-image-chevron,
html[data-lg-theme] .booking-status-chevron {
    color:var(--lg-primary); background-color:var(--lg-primary-soft); border-color:var(--lg-border);
}
html[data-lg-theme] .button:not(.secondary):not(.danger),
html[data-lg-theme] .button-primary,
html[data-lg-theme] .context-link.active,
html[data-lg-theme] .admin-sidebar .nav-link.active .nav-icon,
html[data-lg-theme] .customer-photo-actions .copy-to-reservation-images { color:var(--lg-on-primary); background-color:var(--lg-primary); border-color:var(--lg-primary); }
html[data-lg-theme] .button.danger { color:#fff; background-color:var(--lg-danger); border-color:var(--lg-danger); }
html[data-lg-theme] .badge { color:var(--lg-primary); background-color:var(--lg-primary-soft); border-color:var(--lg-border); }
html[data-lg-theme] .checkin-preorders-head>span {
    color:var(--lg-primary);
    background-color:var(--lg-primary-soft);
    border:1px solid color-mix(in srgb,var(--lg-primary) 24%,var(--lg-border));
}
html[data-lg-theme] .badge.green,
html[data-lg-theme] .is-yes,
html[data-lg-theme] .checkin-message.is-success,
html[data-lg-theme] .notice { color:var(--lg-success); background-color:var(--lg-success-soft); border-color:color-mix(in srgb,var(--lg-success) 26%,var(--lg-border)); }
html[data-lg-theme] .badge.red,
html[data-lg-theme] .is-no,
html[data-lg-theme] .checkin-message.is-error,
html[data-lg-theme] .errors,
html[data-lg-theme] .icon-button.remove-banner,
html[data-lg-theme] .icon-button.remove-reservation-image { color:var(--lg-danger); background-color:var(--lg-danger-soft); }
html[data-lg-theme] .badge.amber { color:var(--lg-warning); background-color:var(--lg-warning-soft); }
html[data-lg-theme] .bookings-table .booking-extra-indicator.is-yes,
html[data-lg-theme] .booking-mobile-flag .booking-extra-indicator.is-yes {
    color:var(--lg-success);
    background-color:var(--lg-success-soft);
}
html[data-lg-theme] .bookings-table .booking-extra-indicator.is-no,
html[data-lg-theme] .booking-mobile-flag .booking-extra-indicator.is-no {
    color:var(--lg-danger);
    background-color:var(--lg-danger-soft);
}
html[data-lg-theme] .pagination-summary { color:var(--lg-muted); }
html[data-lg-theme] .pagination-summary strong { color:var(--lg-text); }
html[data-lg-theme] .pagination-page,
html[data-lg-theme] .pagination-control {
    color:var(--lg-text);
    background-color:var(--lg-control);
    border-color:var(--lg-border);
}
html[data-lg-theme] .pagination-page.is-current {
    color:var(--lg-on-primary);
    background-color:var(--lg-primary);
    border-color:var(--lg-primary);
}
html[data-lg-theme] .pagination-control:hover,
html[data-lg-theme] .pagination-page:not(.is-current):hover {
    color:var(--lg-primary);
    background-color:var(--lg-primary-soft);
    border-color:color-mix(in srgb,var(--lg-primary) 38%,var(--lg-border));
}
html[data-lg-theme] .pagination-control.is-disabled {
    color:color-mix(in srgb,var(--lg-muted) 58%,transparent);
    background-color:var(--lg-subtle);
    border-color:var(--lg-border);
}
html[data-lg-theme] .pagination-ellipsis { color:var(--lg-muted); }
html[data-lg-theme] .checkin-message,
html[data-lg-theme] .current-luggage,
html[data-lg-theme] .checkout-facts>div,
html[data-lg-theme] .booking-mobile-flag,
html[data-lg-theme] .delivery-loading,
html[data-lg-theme] .delivery-empty { color:var(--lg-muted); background-color:var(--lg-subtle); border-color:var(--lg-border); }
html[data-lg-theme] .check-action-icon { color:var(--lg-primary); background-color:var(--lg-primary-soft); }
html[data-lg-theme] .check-action-icon.is-checkout { color:var(--lg-success); background-color:var(--lg-success-soft); }
html[data-lg-theme] .delivery-confirm-card { background:var(--lg-warning-soft); border-color:color-mix(in srgb,var(--lg-warning) 30%,var(--lg-border)); }
html[data-lg-theme] .checkin-dialog .checkin-close,
html[data-lg-theme] .documents-search-field,
html[data-lg-theme] .lg-panel-quick-nav { color:var(--lg-text); background:var(--lg-control); border-color:var(--lg-border); }
html[data-lg-theme] .lg-panel-quick-nav input { background:transparent; border:0; }
html[data-lg-theme="nacht"] .checkin-video-wrap,
html[data-lg-theme="nacht"] .photo-preview { background:#101820; }

/* Theme tokens are also applied to components with legacy, page-local styles. */
html[data-lg-theme] .report-period-form,
html[data-lg-theme] .report-comparison,
html[data-lg-theme] .dashboard-booking-card,
html[data-lg-theme] .dashboard-booking-empty,
html[data-lg-theme] .customer-drawer,
html[data-lg-theme] .customer-profile-summary,
html[data-lg-theme] .customer-reservation,
html[data-lg-theme] .customer-empty,
html[data-lg-theme] .shop-hub-photos,
html[data-lg-theme] .preorder-item,
html[data-lg-theme] .extra-detail,
html[data-lg-theme] .date-summary,
html[data-lg-theme] .summary-card,
html[data-lg-theme] .booking-panel,
html[data-lg-theme] .confirmation-card,
html[data-lg-theme] .how-grid article,
html[data-lg-theme] .luggage-card,
html[data-lg-theme] .extra-choice-card,
html[data-lg-theme] .product-shelf,
html[data-lg-theme] .shop-product-card,
html[data-lg-theme] .preorder-cart,
html[data-lg-theme] .shop-cart-empty,
html[data-lg-theme] .shop-cart-row,
html[data-lg-theme] .shop-search,
html[data-lg-theme] .extra-field-wide,
html[data-lg-theme] .billing-address-field {
    color:var(--lg-text); background-color:var(--lg-surface); border-color:var(--lg-border);
}
html[data-lg-theme] .report-comparison-metrics article,
html[data-lg-theme] .shop-product-image,
html[data-lg-theme] .luggage-visual,
html[data-lg-theme] .extra-choice-icon,
html[data-lg-theme] .calendar-head,
html[data-lg-theme] .calendar-hint,
html[data-lg-theme] .shop-cart-heading,
html[data-lg-theme] .shop-cart-total,
html[data-lg-theme] .date-value {
    color:var(--lg-text); background-color:var(--lg-subtle); border-color:var(--lg-border);
}
html[data-lg-theme] .report-preset,
html[data-lg-theme] .report-date-range .control,
html[data-lg-theme] .report-date-range input,
html[data-lg-theme] .neutral-button,
html[data-lg-theme] .text-button,
html[data-lg-theme] .help-button,
html[data-lg-theme] .shop-cart-qty,
html[data-lg-theme] .change-extras {
    color:var(--lg-primary); background-color:var(--lg-control); border-color:var(--lg-border);
}
html[data-lg-theme] .counter { color:var(--lg-primary); background:transparent; border:0; }
html[data-lg-theme] .report-preset:hover,
html[data-lg-theme] .report-date-range .control:hover,
html[data-lg-theme] .neutral-button:hover,
html[data-lg-theme] .text-button:hover { color:var(--lg-primary); background-color:var(--lg-primary-soft); }
html[data-lg-theme] .report-preset.is-active,
html[data-lg-theme] .extra-choice-card.is-selected,
html[data-lg-theme] .luggage-card.is-selected { color:var(--lg-on-primary); background-color:var(--lg-primary); border-color:var(--lg-primary); }
html[data-lg-theme] .report-preset.is-active * { color:inherit; }
html[data-lg-theme] .report-comparison-heading>strong,
html[data-lg-theme] .report-comparison-metrics article>strong,
html[data-lg-theme] .dashboard-booking-card strong,
html[data-lg-theme] .customer-profile-summary strong,
html[data-lg-theme] .shop-product-info strong,
html[data-lg-theme] .shop-cart-total strong,
html[data-lg-theme] .summary-total strong,
html[data-lg-theme] .confirmation-details strong { color:var(--lg-primary-hover); }
html[data-lg-theme] .booking-location-card { color:var(--lg-text); background:var(--lg-surface); border-color:var(--lg-border); }
html[data-lg-theme] .booking-location-card strong { color:var(--lg-primary-hover); }
html[data-lg-theme] .booking-location-card small,
html[data-lg-theme] .booking-location-card>div span { color:var(--lg-muted); }
html[data-lg-theme] .booking-location-icon { color:var(--lg-primary); background:var(--lg-primary-soft); }
html[data-lg-theme] .booking-location-card>a { color:var(--lg-primary); }
html[data-lg-theme] .report-comparison-heading>span,
html[data-lg-theme] .report-comparison-heading>small,
html[data-lg-theme] .report-comparison-metrics article>span,
html[data-lg-theme] .report-comparison-metrics article>strong small,
html[data-lg-theme] .report-comparison-metrics em,
html[data-lg-theme] .shop-product-info small,
html[data-lg-theme] .shop-cart-note,
html[data-lg-theme] .confirmation-details small { color:var(--lg-muted); }
html[data-lg-theme] .report-comparison-metrics em.is-positive { color:var(--lg-success); }
html[data-lg-theme] .report-comparison-metrics em.is-negative { color:var(--lg-danger); }
html[data-lg-theme] .account-popover button,
html[data-lg-theme] .customer-drawer .close-button,
html[data-lg-theme] .customer-profile-close { color:var(--lg-primary); background:var(--lg-control); border:1px solid var(--lg-border); }
html[data-lg-theme] .calendar,
html[data-lg-theme] .calendar-grid,
html[data-lg-theme] .calendar-day,
html[data-lg-theme] .date-summary,
html[data-lg-theme] .summary-row,
html[data-lg-theme] .summary-item,
html[data-lg-theme] .confirmation-details>div { border-color:var(--lg-border); }
html[data-lg-theme] .calendar-day { color:var(--lg-text); background:var(--lg-control); }
html[data-lg-theme] .calendar-day.is-outside { color:var(--lg-muted); }
html[data-lg-theme] .calendar-day.is-in-range { color:var(--lg-primary); background:var(--lg-primary-soft); }
html[data-lg-theme] .calendar-day.is-range-start,
html[data-lg-theme] .calendar-day.is-range-end,
html[data-lg-theme] .calendar-day.is-selected { color:var(--lg-on-primary); background:var(--lg-primary); }
html[data-lg-theme] .step-panel,
html[data-lg-theme] .summary-card,
html[data-lg-theme] .confirmation-card { box-shadow:var(--lg-shadow); }
html[data-lg-theme] .site-header { color:var(--lg-text); background-color:var(--lg-surface); border-color:var(--lg-border); }
html[data-lg-theme]:not([data-lg-theme="standard"]):not([data-lg-theme="rosa"]) .brand img,
html[data-lg-theme]:not([data-lg-theme="standard"]):not([data-lg-theme="rosa"]) footer>img,
html[data-lg-theme]:not([data-lg-theme="standard"]):not([data-lg-theme="rosa"]) .photo-header img { display:none; }
.brand-monochrome,.footer-monochrome { display:none; }
html[data-lg-theme]:not([data-lg-theme="standard"]):not([data-lg-theme="rosa"]) .brand-monochrome {
    display:block; width:156px; height:36px; flex:none; background:var(--lg-logo);
    -webkit-mask:url('/images/luggigo-logo.png') center/contain no-repeat; mask:url('/images/luggigo-logo.png') center/contain no-repeat;
}
html[data-lg-theme]:not([data-lg-theme="standard"]):not([data-lg-theme="rosa"]) footer>.footer-monochrome {
    display:block; width:132px; height:30px; flex:none; background:var(--lg-logo);
    -webkit-mask:url('/images/luggigo-logo.png') center/contain no-repeat; mask:url('/images/luggigo-logo.png') center/contain no-repeat;
}
html[data-lg-theme="nacht"] .account-popover button { color:var(--lg-text); background:#292a30; border-color:var(--lg-border); }
html[data-lg-theme="nacht"] .report-period-form,
html[data-lg-theme="nacht"] .report-comparison,
html[data-lg-theme="nacht"] .dashboard-booking-card,
html[data-lg-theme="nacht"] .dashboard-booking-empty,
html[data-lg-theme="nacht"] .customer-drawer,
html[data-lg-theme="nacht"] .customer-profile-summary,
html[data-lg-theme="nacht"] .customer-reservation,
html[data-lg-theme="nacht"] .customer-empty,
html[data-lg-theme="nacht"] .shop-hub-photos,
html[data-lg-theme="nacht"] .confirmation-card { color:var(--lg-text); }
html[data-lg-theme="nacht"] .promo-button,
html[data-lg-theme="nacht"] .art-badge { color:var(--lg-text); background-color:var(--lg-control); border-color:var(--lg-border); }
html[data-lg-theme="nacht"] .confirmation-page { background:var(--lg-page); }
html[data-lg-theme="nacht"] .success-icon,
html[data-lg-theme="nacht"] .booking-qr__frame { border-color:var(--lg-border); box-shadow:0 0 0 7px var(--lg-subtle); }

/* Form controls, cards and image submission states stay legible in every palette. */
html[data-lg-theme] .customer-photo-form,
html[data-lg-theme] .customer-photo-preview,
html[data-lg-theme] .reservation-image-preview,
html[data-lg-theme] .document-search,
html[data-lg-theme] .customer-photo-empty,
html[data-lg-theme] .bookings-table tbody tr,
html[data-lg-theme] .customers-table tbody tr.customer-row,
html[data-lg-theme] .documents-table tbody tr,
html[data-lg-theme] .settings-accordion,
html[data-lg-theme] .landing-banner-card,
html[data-lg-theme] .reservation-image-card { color:var(--lg-text); background:var(--lg-surface); border-color:var(--lg-border); }
html[data-lg-theme] .customer-photo-item input,
html[data-lg-theme] .customer-photo-item textarea { color:var(--lg-text); background:var(--lg-control); border-color:var(--lg-border); }
html[data-lg-theme] .field-error,
html[data-lg-theme] .error-banner { color:var(--lg-danger); background:var(--lg-danger-soft); border-color:var(--lg-border); }
html[data-lg-theme] .status-dot { box-shadow:0 0 0 4px var(--lg-success-soft); }
html[data-lg-theme="nacht"] .date-pulse { background:var(--lg-primary-soft); }
html[data-lg-theme="nacht"] .report-date-range .control,
html[data-lg-theme="nacht"] .report-date-range input { color:var(--lg-text); background:#292a30; border-color:var(--lg-border); }

/* Mobile and overlay components that previously kept their light-only colors. */
html[data-lg-theme] .customer-mobile-card,
html[data-lg-theme] .customer-drawer-empty,
html[data-lg-theme] .report-export-card,
html[data-lg-theme] .booking-photo-dialog,
html[data-lg-theme] .booking-email-client,
html[data-lg-theme] .booking-email-client-bar,
html[data-lg-theme] .delivery-postal-menu>summary,
html[data-lg-theme] .delivery-postal-popover {
    color:var(--lg-text); background-color:var(--lg-surface); border-color:var(--lg-border);
}
html[data-lg-theme] .customer-drawer-close,
html[data-lg-theme] .report-format-choice span,
html[data-lg-theme] .report-detail-choice span,
html[data-lg-theme] .report-export-toggle,
html[data-lg-theme] .read-only-value,
html[data-lg-theme] .booking-item,
html[data-lg-theme] .booking-photo-dialog>img,
html[data-lg-theme] .banner-preview {
    color:var(--lg-text); background-color:var(--lg-control); border-color:var(--lg-border);
}
html[data-lg-theme] .customer-mobile-card[open] summary,
html[data-lg-theme] .report-export-form,
html[data-lg-theme] .customer-mobile-details>div,
html[data-lg-theme] .document-card-meta,
html[data-lg-theme] .booking-item-photos,
html[data-lg-theme] .reservation-image-fields,
html[data-lg-theme] .banner-editor-head {
    border-color:var(--lg-border);
}
html[data-lg-theme] .customer-mobile-name,
html[data-lg-theme] .report-export-card>summary b,
html[data-lg-theme] .customer-mobile-spend strong,
html[data-lg-theme] .customer-mobile-date strong,
html[data-lg-theme] .customer-mobile-details strong,
html[data-lg-theme] .booking-item-main strong {
    color:var(--lg-primary-hover);
}
html[data-lg-theme] .customer-mobile-count,
html[data-lg-theme] .report-export-card>summary small,
html[data-lg-theme] .report-export-field>span,
html[data-lg-theme] .report-format-choice legend,
html[data-lg-theme] .report-detail-choice legend,
html[data-lg-theme] .report-export-action p,
html[data-lg-theme] .customer-mobile-spend small,
html[data-lg-theme] .customer-mobile-date small,
html[data-lg-theme] .customer-mobile-details small,
html[data-lg-theme] .booking-item-main span,
html[data-lg-theme] .booking-item-unit {
    color:var(--lg-muted);
}
html[data-lg-theme] .customer-reservation:hover,
html[data-lg-theme] .customer-row:hover td,
html[data-lg-theme] .checkout-choice-card:hover,
html[data-lg-theme] .delivery-row:hover {
    background-color:color-mix(in srgb,var(--lg-primary) 7%,var(--lg-surface));
    border-color:color-mix(in srgb,var(--lg-primary) 32%,var(--lg-border));
}
html[data-lg-theme] .report-format-choice input:checked+span {
    color:var(--lg-on-primary); background-color:var(--lg-primary); border-color:var(--lg-primary);
}
html[data-lg-theme] .report-detail-choice input:checked+span {
    color:var(--lg-primary); background-color:var(--lg-primary-soft); border-color:color-mix(in srgb,var(--lg-primary) 36%,var(--lg-border));
}
html[data-lg-theme] .report-format-choice input:focus-visible+span,
html[data-lg-theme] .report-detail-choice input:focus-visible+span {
    outline-color:var(--lg-primary);
}
html[data-lg-theme] .booking-email-client {
    color:var(--lg-text);
    background-color:var(--lg-control);
    border-color:var(--lg-border);
    box-shadow:0 12px 32px color-mix(in srgb,var(--lg-text) 10%,transparent);
}
html[data-lg-theme] .booking-email-client-bar {
    color:var(--lg-muted);
    background-color:var(--lg-surface);
    border-color:var(--lg-border);
}
html[data-lg-theme] .booking-email-frame {
    background-color:var(--lg-page);
}
html[data-lg-theme="nacht"] .booking-mobile-card.booking-new-notice,
html[data-lg-theme="nacht"] .bookings-table tbody tr.booking-new-notice {
    background-color:var(--lg-danger-soft); border-color:color-mix(in srgb,var(--lg-danger) 32%,var(--lg-border));
}

/* Keep Rosa calm and neutral; reserve pink for selected states and accents. */
:root[data-lg-theme="rosa"] { --lg-page:#f3f5f7; --lg-primary-soft:#eff1f4; }
html[data-lg-theme] .admin-sidebar { color:var(--lg-text); background:var(--lg-subtle); border-color:var(--lg-border); }
html[data-lg-theme] .admin-sidebar .nav-link:not(.active) {
    color:var(--lg-muted); background:var(--lg-surface); border-color:var(--lg-border);
}
html[data-lg-theme] .admin-sidebar .nav-link:not(.active) .nav-icon {
    color:var(--lg-muted); background:var(--lg-control);
}
html[data-lg-theme] .admin-sidebar .nav-link:not(.active):hover,
html[data-lg-theme] .admin-sidebar .nav-link:not(.active):focus-visible {
    color:var(--lg-primary); background:color-mix(in srgb,var(--lg-primary) 7%,var(--lg-surface)); border-color:color-mix(in srgb,var(--lg-primary) 32%,var(--lg-border));
}
html[data-lg-theme] .admin-sidebar .nav-link.active {
    color:var(--lg-primary); background:var(--lg-primary-soft); border-color:color-mix(in srgb,var(--lg-primary) 38%,var(--lg-border));
}
html[data-lg-theme] .admin-sidebar .nav-link.active .nav-icon {
    color:var(--lg-on-primary); background:var(--lg-primary);
}
html[data-lg-theme="rosa"] .date-summary,
html[data-lg-theme="rosa"] .heading-icon,
html[data-lg-theme="rosa"] .booking-ref {
    background:#f8edf2; border-color:#eed8e2;
}
html[data-lg-theme="rosa"] .calendar-day.is-in-range::before,
html[data-lg-theme="rosa"] .calendar-hint span { background:#f5e8ef; }
html[data-lg-theme="rosa"] .calendar-day:not(:disabled):hover span { background:#f5e8ef; }
html[data-lg-theme="rosa"] .luggage-card.has-items,
html[data-lg-theme="rosa"] .extra-choice-card.is-reviewed {
    background:#faf2f6; border-color:#dfb8cb;
}
html[data-lg-theme="rosa"] :focus-visible { outline-color:#d99ab8; }

/* Customer-facing booking flow: use the same theme tokens and interaction states as the admin. */
html[data-lg-theme] .site-header { color:var(--lg-text); background:color-mix(in srgb,var(--lg-surface) 94%,transparent); border-color:var(--lg-border); box-shadow:var(--lg-shadow); }
html[data-lg-theme] .summary-card::before { background:linear-gradient(90deg,var(--lg-primary),var(--lg-primary-hover)); }
html[data-lg-theme] .ribbon-icon,
html[data-lg-theme] .ribbon-icon.rose,
html[data-lg-theme] .ribbon-icon.violet,
html[data-lg-theme] .ribbon-icon.amber,
html[data-lg-theme] .heading-icon,
html[data-lg-theme] .heading-icon.rose,
html[data-lg-theme] .heading-icon.violet { color:var(--lg-primary); background:var(--lg-primary-soft); }
html[data-lg-theme] .brand { color:var(--lg-primary); }
html[data-lg-theme] .brand>span:last-child { border-color:var(--lg-border); }
html[data-lg-theme] .site-theme-trigger,
html[data-lg-theme] .help-button,
html[data-lg-theme] .site-language-trigger { color:var(--lg-primary); background:var(--lg-primary-soft); }
html[data-lg-theme] .site-theme-options { color:var(--lg-text); background:var(--lg-surface); border-color:var(--lg-border); }
html[data-lg-theme] .site-theme-choice { color:var(--lg-muted); background:var(--lg-control); border-color:var(--lg-border); }
html[data-lg-theme] .site-theme-choice[aria-pressed="true"] { color:var(--lg-on-primary); background:var(--lg-primary); border-color:var(--lg-primary); }
html[data-lg-theme] .site-language-options { color:var(--lg-text); background:var(--lg-surface); border-color:var(--lg-border); }
html[data-lg-theme] .site-language-choice { color:var(--lg-muted); background:var(--lg-control); border-color:var(--lg-border); }
html[data-lg-theme] .site-language-choice b { color:var(--lg-primary); background:var(--lg-primary-soft); }
html[data-lg-theme] .site-language-choice[aria-pressed="true"] { color:var(--lg-on-primary); background:var(--lg-primary); border-color:var(--lg-primary); }
html[data-lg-theme] .site-language-choice[aria-pressed="true"] b { color:var(--lg-primary); background:var(--lg-on-primary); }
html[data-lg-theme] .hero h1,
html[data-lg-theme] .panel-heading h2,
html[data-lg-theme] .luggage-copy h3,
html[data-lg-theme] .extras-kicker,
html[data-lg-theme] .calendar-head strong,
html[data-lg-theme] .trust-ribbon strong { color:var(--lg-primary-hover); }
html[data-lg-theme] .hero h1 em,
html[data-lg-theme] .eyebrow,
html[data-lg-theme] .luggage-copy strong { color:var(--lg-primary); }
html[data-lg-theme] .trust-ribbon,
html[data-lg-theme] .booking-panel,
html[data-lg-theme] .summary-card,
html[data-lg-theme] .confirmation-card,
html[data-lg-theme] .calendar,
html[data-lg-theme] .luggage-card,
html[data-lg-theme] .extra-choice-card,
html[data-lg-theme] .extra-detail,
html[data-lg-theme] .delivery-scene,
html[data-lg-theme] .how-grid article { color:var(--lg-text); background:var(--lg-surface); border-color:var(--lg-border); }
html[data-lg-theme] .date-summary,
html[data-lg-theme] #dayCountBadge,
html[data-lg-theme] .calendar-head button,
html[data-lg-theme] .luggage-visual,
html[data-lg-theme] .heading-icon,
html[data-lg-theme] .extra-choice-icon,
html[data-lg-theme] .counter button,
html[data-lg-theme] .neutral-button,
html[data-lg-theme] .site-theme-choice,
html[data-lg-theme] .site-theme-trigger,
html[data-lg-theme] .help-button { color:var(--lg-primary); background:var(--lg-control); border-color:var(--lg-border); }
html[data-lg-theme] .date-summary { background:var(--lg-primary-soft); }
html[data-lg-theme] .step { color:var(--lg-muted); }
html[data-lg-theme] .step.is-active { color:var(--lg-primary); }
html[data-lg-theme] .step span { color:var(--lg-muted); border-color:var(--lg-border); }
html[data-lg-theme] .step.is-active span { color:var(--lg-on-primary); background:var(--lg-primary); border-color:var(--lg-primary); }
html[data-lg-theme] .step.is-complete span { color:var(--lg-success); background:var(--lg-success-soft); border-color:color-mix(in srgb,var(--lg-success) 35%,var(--lg-border)); }
html[data-lg-theme] .calendar-day { color:var(--lg-text); background:transparent; }
html[data-lg-theme] .calendar-day.is-in-range::before,
html[data-lg-theme] .calendar-hint span { background:var(--lg-primary-soft); }
html[data-lg-theme] .calendar-day:not(:disabled):hover span { color:var(--lg-primary); background:color-mix(in srgb,var(--lg-primary) 12%,var(--lg-surface)); }
html[data-lg-theme] .calendar-day.is-range-start span,
html[data-lg-theme] .calendar-day.is-range-end span,
html[data-lg-theme] .calendar-day.is-selected span { color:var(--lg-on-primary); background:var(--lg-primary); }
html[data-lg-theme] .luggage-card.has-items { background:color-mix(in srgb,var(--lg-primary) 9%,var(--lg-surface)); border-color:color-mix(in srgb,var(--lg-primary) 42%,var(--lg-border)); }
html[data-lg-theme] .extra-choice-card:hover,
html[data-lg-theme] .extra-choice-card.is-selected { background:color-mix(in srgb,var(--lg-primary) 9%,var(--lg-surface)); border-color:color-mix(in srgb,var(--lg-primary) 50%,var(--lg-border)); }
html[data-lg-theme] .extra-choice-card.is-reviewed { background:var(--lg-success-soft); border-color:color-mix(in srgb,var(--lg-success) 38%,var(--lg-border)); }
html[data-lg-theme] .extra-choice-card.is-selected .extra-check,
html[data-lg-theme] .counter button:last-child { color:var(--lg-on-primary); background:var(--lg-primary); border-color:var(--lg-primary); }
html[data-lg-theme] .extra-choice-card strong,
html[data-lg-theme] .counter output,
html[data-lg-theme] .date-summary strong { color:var(--lg-primary-hover); }
html[data-lg-theme] .extra-state { color:var(--lg-success); background:var(--lg-success-soft); }
html[data-lg-theme] .extra-choice-card:not(.is-reviewed) .extra-state { color:var(--lg-primary); background:var(--lg-primary-soft); }
html[data-lg-theme] .time-grid label>span,
html[data-lg-theme] .details-grid label>span,
html[data-lg-theme] .billing-address-field>span,
html[data-lg-theme] .extra-fields label span { color:var(--lg-muted); }
html[data-lg-theme] select,
html[data-lg-theme] input[type="text"],
html[data-lg-theme] input[type="email"],
html[data-lg-theme] input[type="tel"],
html[data-lg-theme] .billing-address-field input,
html[data-lg-theme] .extra-fields input { color:var(--lg-text); background:var(--lg-control); border-color:var(--lg-border); }
html[data-lg-theme] select:focus,
html[data-lg-theme] input:focus,
html[data-lg-theme] .billing-address-field input:focus { border-color:var(--lg-primary); box-shadow:0 0 0 4px color-mix(in srgb,var(--lg-primary) 16%,transparent); }
/* The branch-search shell provides the field boundary; keep the native search input visually unboxed. */
html[data-lg-theme] .customer-branch-search input,
html[data-lg-theme] .customer-branch-search input:focus,
html[data-lg-theme] .customer-branch-search input:focus-visible {
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
    background:transparent!important;
    -webkit-appearance:none;
    appearance:none;
}
html[data-lg-theme] .primary-button,
html[data-lg-theme] .submit-button { color:var(--lg-on-primary); background:var(--lg-primary); border-color:var(--lg-primary); }
html[data-lg-theme] .primary-button:hover,
html[data-lg-theme] .submit-button:hover { color:var(--lg-on-primary); background:var(--lg-primary-hover); border-color:var(--lg-primary-hover); }
html[data-lg-theme] .neutral-button:hover,
html[data-lg-theme] .text-button:hover,
html[data-lg-theme] .calendar-head button:not(:disabled):hover,
html[data-lg-theme] .counter button:not(:disabled):hover,
html[data-lg-theme] .site-theme-trigger:hover,
html[data-lg-theme] .help-button:hover { color:var(--lg-primary); background:color-mix(in srgb,var(--lg-primary) 12%,var(--lg-surface)); border-color:color-mix(in srgb,var(--lg-primary) 40%,var(--lg-border)); }
html[data-lg-theme] .primary-button:focus-visible,
html[data-lg-theme] .neutral-button:focus-visible,
html[data-lg-theme] .site-theme-choice:focus-visible,
html[data-lg-theme] .step:focus-visible,
html[data-lg-theme] .calendar-day:focus-visible { outline:3px solid color-mix(in srgb,var(--lg-primary) 45%,transparent); outline-offset:2px; }
html[data-lg-theme] .date-summary>svg { color:var(--lg-muted); }
html[data-lg-theme] .date-value { color:var(--lg-text); background:transparent; border:0; }
html[data-lg-theme] .calendar-head { color:var(--lg-text); background:transparent; }
html[data-lg-theme] .calendar-head button { color:var(--lg-primary); background:var(--lg-control); border:1px solid var(--lg-border); }
html[data-lg-theme] .calendar-head button:disabled { color:var(--lg-muted); background:var(--lg-control); }

/* Night theme buttons follow the dark, blue-outlined capsule used by the document count. */
html[data-lg-theme="nacht"] :is(
    .button, .button-primary, .button-secondary, .button-neutral,
    .primary-button, .submit-button, .neutral-button, .text-button,
    .help-button, .site-theme-trigger, .site-theme-choice, .report-preset,
    .context-link, .icon-button, .theme-choice, .settings-card-toggle,
    .shop-panel-arrow, .banner-chevron, .reservation-image-chevron, .booking-status-chevron
) {
    color:var(--lg-primary) !important;
    background-color:var(--lg-primary-soft) !important;
    border:1px solid color-mix(in srgb,var(--lg-primary) 24%,var(--lg-primary-soft)) !important;
    border-radius:999px !important;
    box-shadow:none;
}
html[data-lg-theme="nacht"] :is(
    .button, .button-primary, .button-secondary, .button-neutral,
    .primary-button, .submit-button, .neutral-button, .text-button,
    .help-button, .site-theme-trigger, .site-theme-choice, .report-preset,
    .context-link, .icon-button, .theme-choice, .settings-card-toggle,
    .shop-panel-arrow, .banner-chevron, .reservation-image-chevron, .booking-status-chevron
):not(:disabled):not([aria-disabled="true"]):hover {
    color:var(--lg-primary) !important;
    background-color:color-mix(in srgb,var(--lg-primary) 15%,var(--lg-primary-soft)) !important;
    border-color:color-mix(in srgb,var(--lg-primary) 42%,var(--lg-primary-soft)) !important;
}
html[data-lg-theme="nacht"] :is(
    .button, .button-primary, .button-secondary, .button-neutral,
    .primary-button, .submit-button, .neutral-button, .text-button,
    .help-button, .site-theme-trigger, .site-theme-choice, .report-preset,
    .context-link, .icon-button, .theme-choice
):focus-visible { outline:2px solid color-mix(in srgb,var(--lg-primary) 65%,transparent); outline-offset:2px; }
html[data-lg-theme] .extra-choice-card.is-selected { color:var(--lg-on-primary); background:var(--lg-primary); border-color:var(--lg-primary); }
html[data-lg-theme] .extra-choice-card.is-selected strong,
html[data-lg-theme] .extra-choice-card.is-selected small,
html[data-lg-theme] .extra-choice-card.is-selected .extra-state { color:var(--lg-on-primary); }
html[data-lg-theme] .extra-choice-card.is-selected .extra-state { background:color-mix(in srgb,var(--lg-on-primary) 16%,var(--lg-primary)); }
html[data-lg-theme] .extra-choice-card.is-selected .extra-choice-icon { color:var(--lg-on-primary); background:color-mix(in srgb,var(--lg-on-primary) 16%,var(--lg-primary)); }
html[data-lg-theme] .extra-choice-card.is-selected .extra-check { color:var(--lg-primary); background:var(--lg-on-primary); border-color:var(--lg-on-primary); }
html[data-lg-theme] .extra-choice-card.is-selected:hover { background:var(--lg-primary-hover); border-color:var(--lg-primary-hover); }
html[data-lg-theme] .extra-choice-card.is-unavailable,
html[data-lg-theme] .extra-choice-card.is-unavailable:hover {
    color:var(--lg-muted);
    background:var(--lg-surface);
    border-color:var(--lg-border);
}
html[data-lg-theme] .extra-choice-card.is-unavailable strong,
html[data-lg-theme] .extra-choice-card.is-unavailable small,
html[data-lg-theme] .extra-choice-card.is-unavailable .extra-choice-icon { color:var(--lg-muted); }
html[data-lg-theme] .calendar-day.is-range-start span,
html[data-lg-theme] .calendar-day.is-range-end span,
html[data-lg-theme] .calendar-day.is-selected span { color:var(--lg-on-primary); background:var(--lg-primary); }
html[data-lg-theme] footer { color:var(--lg-muted); }
html[data-lg-theme] footer>img { filter:none; }
html[data-lg-theme="nacht"] .site-header { background:color-mix(in srgb,var(--lg-surface) 94%,transparent); }
html[data-lg-theme="nacht"] .confirmation-page { color:var(--lg-text); background:var(--lg-page); }
/* Keep the bookings table hover restrained in night mode instead of flashing white. */
html[data-lg-theme="nacht"] .bookings-table tbody tr.booking-row:hover td {
    color:var(--lg-text);
    background-color:color-mix(in srgb,var(--lg-primary) 8%,var(--lg-surface)) !important;
}

/* Selected report controls stay graphite in the night theme instead of
   introducing a large light-blue block into the otherwise neutral UI. */
html[data-lg-theme="nacht"] :is(
    .partner-section-nav button.is-active,
    .partner-period-buttons button.is-active,
    .report-preset.is-active
) {
    color:#f3f4f6 !important;
    background:#3a3c43 !important;
    border-color:#555861 !important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 5px 14px rgba(0,0,0,.18) !important;
}
html[data-lg-theme="nacht"] :is(
    .partner-section-nav button.is-active,
    .partner-period-buttons button.is-active,
    .report-preset.is-active
):hover {
    color:#fff !important;
    background:#464951 !important;
    border-color:#646873 !important;
}

html[data-lg-theme="nacht"] .booking-row:hover td {
    color:var(--lg-text) !important;
    background-color:color-mix(in srgb,#fff 4%,var(--lg-surface)) !important;
}
html[data-lg-theme="nacht"] .booking-row:hover td strong { color:#d9e2ef !important; }
html[data-lg-theme="nacht"] .booking-row:hover .muted { color:var(--lg-muted) !important; }

/* Reservation detail fields and item rows use the active theme instead of
   hard-coded light surfaces from the page-local legacy styles. */
html[data-lg-theme] .read-only-value,
html[data-lg-theme] .booking-item,
html[data-lg-theme] .preorder-item {
    color:var(--lg-text);
    background-color:var(--lg-control);
    border-color:var(--lg-border);
}
html[data-lg-theme] .read-only-value strong,
html[data-lg-theme] .booking-item-quantity,
html[data-lg-theme] .booking-item-total,
html[data-lg-theme] .preorder-item-quantity { color:var(--lg-text); }
html[data-lg-theme] .booking-item-main strong,
html[data-lg-theme] .preorder-item-main strong,
html[data-lg-theme] .booking-photo-dialog-footer strong { color:var(--lg-primary-hover); }
html[data-lg-theme] .booking-item-main span,
html[data-lg-theme] .booking-item-unit,
html[data-lg-theme] .preorder-item-main span { color:var(--lg-muted); }
html[data-lg-theme] .booking-item-photos { border-color:var(--lg-border); }
html[data-lg-theme] .booking-photo-thumb { background:var(--lg-subtle); border-color:var(--lg-border); }
html[data-lg-theme] .booking-photo-dialog { color:var(--lg-text); background:var(--lg-surface); border-color:var(--lg-border); }
html[data-lg-theme] .booking-photo-dialog>img { background:var(--lg-subtle); }
html[data-lg-theme] .booking-photo-close { color:var(--lg-text); background:var(--lg-control); border-color:var(--lg-border); }

/* Calendar days are text targets, not individual buttons/cards. The night
   theme's shared button treatment must not turn every day into a pill. */
html[data-lg-theme="nacht"] .calendar-day.calendar-day,
html[data-lg-theme="nacht"] .calendar-day.calendar-day:hover,
html[data-lg-theme="nacht"] .calendar-day.calendar-day:focus-visible {
    color:var(--lg-text) !important;
    background:transparent !important;
    border:0 none transparent !important;
    border-radius:0 !important;
    box-shadow:none !important;
}
html[data-lg-theme="nacht"] .calendar-day.is-range-start,
html[data-lg-theme="nacht"] .calendar-day.is-range-end,
html[data-lg-theme="nacht"] .calendar-day.is-selected { color:var(--lg-on-primary) !important; }
html[data-lg-theme="nacht"] button.step.step,
html[data-lg-theme="nacht"] button.step.step:hover,
html[data-lg-theme="nacht"] button.step.step:focus-visible {
    color:var(--lg-muted) !important;
    background:transparent !important;
    border:0 none transparent !important;
    border-radius:0 !important;
    box-shadow:none !important;
}
html[data-lg-theme="nacht"] button.step.step.is-active { color:var(--lg-primary) !important; }
html[data-lg-theme] .confirmation-cancel button {
    color:var(--lg-danger) !important;
    background:var(--lg-danger-soft) !important;
    border:1px solid color-mix(in srgb,var(--lg-danger) 35%,var(--lg-border)) !important;
    border-radius:10px !important;
    box-shadow:none !important;
}
html[data-lg-theme] .confirmation-cancel button:hover {
    color:var(--lg-danger) !important;
    background:color-mix(in srgb,var(--lg-danger) 16%,var(--lg-surface)) !important;
    border-color:var(--lg-danger) !important;
}

/* Keep calendar dates plain; show selection on the number, not as button pills. */
html[data-lg-theme] .calendar-day,
html[data-lg-theme] .calendar-day:hover,
html[data-lg-theme] .calendar-day:focus-visible {
    color:var(--lg-text) !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
}
html[data-lg-theme] .calendar-day span {
    color:inherit;
    background:transparent;
    border-radius:50%;
    box-shadow:none;
}
html[data-lg-theme] .calendar-day:not(:disabled):hover span {
    color:var(--lg-primary);
    background:var(--lg-primary-soft);
}
html[data-lg-theme] .calendar-day.is-in-range::before { background:var(--lg-primary-soft); }
html[data-lg-theme] .calendar-day.is-range-start:not(.is-range-end)::before { display:none; }
html[data-lg-theme] .calendar-day.is-range-start span,
html[data-lg-theme] .calendar-day.is-range-end span,
html[data-lg-theme] .calendar-day.is-selected span {
    color:var(--lg-on-primary) !important;
    background:var(--lg-primary) !important;
    border-radius:50%;
}

/* Every compact framed symbol follows the active palette. */
html[data-lg-theme] :is(
    .settings-card-toggle,
    .shop-panel-arrow,
    .banner-chevron,
    .reservation-image-chevron,
    .booking-status-chevron,
    .report-export-toggle,
    .icon-button:not(.remove-banner):not(.remove-reservation-image),
    .customer-drawer-close,
    .booking-photo-close,
    .checkin-close
) {
    color:var(--lg-primary) !important;
    background-color:var(--lg-primary-soft) !important;
    border:1px solid color-mix(in srgb,var(--lg-primary) 24%,var(--lg-border)) !important;
    box-shadow:none !important;
}
html[data-lg-theme] :is(
    .settings-card-toggle,
    .shop-panel-arrow,
    .banner-chevron,
    .reservation-image-chevron,
    .report-export-toggle,
    .icon-button:not(.remove-banner):not(.remove-reservation-image),
    .customer-drawer-close,
    .booking-photo-close,
    .checkin-close
):hover {
    color:var(--lg-primary) !important;
    background-color:color-mix(in srgb,var(--lg-primary) 15%,var(--lg-primary-soft)) !important;
    border-color:color-mix(in srgb,var(--lg-primary) 44%,var(--lg-border)) !important;
}
html[data-lg-theme] :is(
    .luggage-delete-button,
    .delivery-location-remove,
    .delivery-postal-remove,
    .user-delete-button,
    .icon-button.remove-banner,
    .icon-button.remove-reservation-image
) {
    color:var(--lg-danger) !important;
    background-color:var(--lg-danger-soft) !important;
    border:1px solid color-mix(in srgb,var(--lg-danger) 28%,var(--lg-border)) !important;
    box-shadow:none !important;
}
html[data-lg-theme] :is(
    .luggage-delete-button,
    .delivery-location-remove,
    .delivery-postal-remove,
    .user-delete-button,
    .icon-button.remove-banner,
    .icon-button.remove-reservation-image
):not(:disabled):hover {
    color:var(--lg-danger) !important;
    background-color:color-mix(in srgb,var(--lg-danger) 17%,var(--lg-surface)) !important;
    border-color:var(--lg-danger) !important;
}
html[data-lg-theme] .current-luggage-icon {
    color:var(--lg-primary);
    background-color:var(--lg-primary-soft);
    border:1px solid color-mix(in srgb,var(--lg-primary) 22%,var(--lg-border));
}
html[data-lg-theme] .final-checkin-mark {
    color:var(--lg-success-soft);
    background-color:var(--lg-success);
    box-shadow:0 0 0 5px var(--lg-success-soft);
}
html[data-lg-theme] :is(.check-action-arrow,.checkin-preorder-arrow) { color:var(--lg-muted); }
html[data-lg-theme] .shutter-button {
    background:var(--lg-control);
    border-color:var(--lg-surface);
    box-shadow:0 0 0 1px var(--lg-border),0 5px 15px color-mix(in srgb,var(--lg-text) 18%,transparent);
}
html[data-lg-theme] .shutter-button span {
    background:var(--lg-surface);
    border-color:var(--lg-muted);
}
html[data-lg-theme] .shutter-button:active span { background:var(--lg-primary-soft); }

/* File pickers use the same site control in every browser and theme. */
.site-file-picker {
    position:relative;
    display:grid;
    min-height:40px;
    padding:4px;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:10px;
    overflow:hidden;
    border-radius:9px;
}
.site-file-input {
    position:absolute !important;
    inset:0;
    z-index:2;
    width:100% !important;
    height:100% !important;
    padding:0 !important;
    opacity:0;
    cursor:pointer;
}
.site-file-button {
    display:inline-flex;
    min-height:32px;
    padding:0 13px;
    align-items:center;
    justify-content:center;
    border:1px solid transparent;
    border-radius:8px;
    font-size:10px;
    font-weight:800;
    white-space:nowrap;
}
.site-file-name { min-width:0; overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
html[data-lg-theme] .site-file-picker {
    color:var(--lg-text);
    background:var(--lg-control);
    border:1px solid var(--lg-border);
}
html[data-lg-theme] .site-file-picker:focus-within {
    border-color:var(--lg-primary);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--lg-primary) 14%,transparent);
}
html[data-lg-theme] .site-file-button {
    color:var(--lg-on-primary);
    background:var(--lg-primary);
    border-color:var(--lg-primary);
}
html[data-lg-theme] .site-file-picker:hover .site-file-button,
html[data-lg-theme] .site-file-picker:focus-within .site-file-button {
    background:var(--lg-primary-hover);
    border-color:var(--lg-primary-hover);
}
html[data-lg-theme] .site-file-name { color:var(--lg-muted); }

/* Shared public language picker (booking, confirmation, invoice address and photo pages). */
.site-language-picker { position:relative; flex:none; }
.site-language-picker>summary { list-style:none; }
.site-language-picker>summary::-webkit-details-marker { display:none; }
.site-language-trigger { display:flex; min-width:58px; height:38px; padding:0 10px; align-items:center; justify-content:center; gap:6px; border:1px solid var(--lg-border); border-radius:12px; cursor:pointer; }
.site-language-trigger svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.site-language-trigger span { font-size:10px; font-weight:850; letter-spacing:.04em; }
.site-language-options { position:absolute; top:calc(100% + 10px); right:0; z-index:60; display:grid; width:250px; padding:8px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; border:1px solid var(--lg-border); border-radius:14px; box-shadow:var(--lg-shadow); }
.site-language-choice { display:flex; min-width:0; min-height:39px; padding:6px 8px; align-items:center; gap:7px; border:1px solid var(--lg-border); border-radius:9px; font:inherit; font-size:10px; font-weight:750; text-align:left; cursor:pointer; }
.site-language-choice b { display:grid; min-width:28px; min-height:22px; padding:0 4px; place-items:center; border-radius:6px; font-size:8px; }
html[dir="rtl"] .site-language-options { right:auto; left:0; }
@media(max-width:480px){.site-language-trigger{min-width:54px;height:36px;padding:0 8px}.site-language-options{position:fixed;top:70px;right:12px;left:12px;width:auto}html[dir="rtl"] .site-language-options{right:12px;left:12px}}

/* Keep the legal footer at the bottom of short partner-panel pages without
   pinning it over long content. */
.partner-shell { display:flex; min-height:100vh; flex-direction:column; }
.partner-layout { width:100%; flex:1 0 auto; }

/* Partner panel navigation follows the compact admin-panel language. */
.partner-shell .partner-nav {
    width:158px;
    padding:11px 4px 9px;
    gap:3px;
    background:color-mix(in srgb,var(--lg-surface,#fff) 97%,transparent);
    border:1px solid var(--lg-border,#dfe5eb);
    border-radius:17px;
    box-shadow:0 13px 36px rgba(20,42,66,.11);
}
.partner-shell .partner-nav a {
    display:grid;
    min-height:29px;
    padding:2px 5px;
    grid-template-columns:20px minmax(0,1fr);
    align-items:center;
    gap:6px;
    color:var(--lg-muted,#718092);
    background:color-mix(in srgb,var(--lg-surface,#fff) 88%,var(--lg-canvas,#f8fafc));
    border:1px solid var(--lg-border,#dfe5eb);
    border-radius:9px;
    font-size:8px;
    font-weight:700;
    transition:color .16s,background .16s,border-color .16s,box-shadow .16s;
}
.partner-shell .partner-nav a:hover,.partner-shell .partner-nav a:focus-visible {
    color:var(--lg-primary,#ff5a3c);
    background:color-mix(in srgb,var(--lg-primary,#ff5a3c) 7%,var(--lg-surface,#fff));
    border-color:color-mix(in srgb,var(--lg-primary,#ff5a3c) 34%,var(--lg-border,#dfe5eb));
    outline:0;
}
.partner-shell .partner-nav a.active {
    color:var(--lg-primary,#ff5a3c);
    background:color-mix(in srgb,var(--lg-primary,#ff5a3c) 10%,var(--lg-surface,#fff));
    border-color:color-mix(in srgb,var(--lg-primary,#ff5a3c) 38%,var(--lg-border,#dfe5eb));
    box-shadow:0 0 0 2px color-mix(in srgb,var(--lg-primary,#ff5a3c) 12%,transparent);
    font-weight:800;
}
.partner-shell .partner-nav i {
    width:20px;
    height:20px;
    color:var(--lg-primary,#16467b);
    background:color-mix(in srgb,var(--lg-primary,#ff5a3c) 9%,var(--lg-surface,#fff));
    border-radius:6px;
    font-size:8px;
    font-weight:900;
}
.partner-shell .partner-nav a.active i { color:var(--lg-on-primary,#fff); background:var(--lg-primary,#ff5a3c); }
.partner-shell .partner-nav-profile {
    display:grid;
    min-width:0;
    margin:0 5px 4px;
    padding:6px 7px 10px;
    gap:2px;
    border-bottom:1px solid var(--lg-border,#dfe5eb);
}
.partner-shell .partner-nav-profile strong,
.partner-shell .partner-nav-profile small {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.partner-shell .partner-nav-profile strong { color:var(--lg-text,var(--ink,#1c2b3b)); font-size:10px; font-weight:850; }
.partner-shell .partner-nav-profile small { color:var(--lg-muted,var(--muted,#778698)); font-size:8px; }

/* One centered arrow treatment for collapsible cards in every theme. */
.settings-card-toggle,.shop-panel-arrow,.banner-chevron,.context-group-arrow,
.partner-content .setting-card>summary>span:last-child:not(.settings-card-toggle) {
    display:grid !important;
    place-items:center !important;
    align-content:center !important;
    justify-content:center !important;
    text-align:center !important;
    line-height:1 !important;
    transform-origin:center !important;
}
.settings-card-toggle svg,.shop-panel-arrow svg,.banner-chevron svg,.context-group-arrow svg {
    display:block;
    margin:auto;
}

/* Draw the partner-panel chevron instead of relying on the off-centre text glyph.
   The parent keeps its existing 180° rotation while open. */
.partner-content .setting-card>summary>span:last-child:not(.settings-card-toggle) {
    position:relative !important;
    font-size:0 !important;
}
.partner-content .setting-card>summary>span:last-child:not(.settings-card-toggle)::after {
    content:"";
    display:block;
    width:7px;
    height:7px;
    border-right:1.7px solid currentColor;
    border-bottom:1.7px solid currentColor;
    transform:rotate(45deg) translate(-1px,-1px);
}

/* Keep the Öffnungszeiten disclosure control identical in admin and partner panels. */
.opening-hours-settings-card > summary > .settings-card-toggle,
.partner-hours-editor > summary > .settings-card-toggle,
.partner-weekly-editor > summary > .settings-card-toggle {
    display:grid !important;
    width:28px !important;
    min-width:28px !important;
    height:28px !important;
    flex:0 0 28px !important;
    padding:0 !important;
    place-items:center !important;
    color:var(--lg-primary,var(--navy,#16467b)) !important;
    background:var(--lg-primary-soft,#edf3f9) !important;
    border:1px solid var(--lg-border,var(--line,#dce3eb)) !important;
    border-radius:8px !important;
    transform-origin:center !important;
}
.opening-hours-settings-card > summary > .settings-card-toggle svg,
.partner-hours-editor > summary > .settings-card-toggle svg,
.partner-weekly-editor > summary > .settings-card-toggle svg {
    display:block !important;
    width:12px !important;
    height:12px !important;
    margin:0 !important;
    overflow:visible !important;
}
.opening-hours-settings-card > summary > .settings-card-toggle path,
.partner-hours-editor > summary > .settings-card-toggle path,
.partner-weekly-editor > summary > .settings-card-toggle path {
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:1.7 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
}

/* Some legacy cards are server-rendered open. Hide their body until the
   startup script has closed them, so the initial state never flashes open. */
.partner-content:not(.partner-collapsibles-ready) .setting-card[open]>.setting-body {
    display:none;
}
.partner-chain-notice{display:none!important;top:4px!important;right:4px!important;z-index:4}
.partner-chain-notice:not([hidden]){display:block!important;animation:none!important;box-shadow:none!important}
.admin-sidebar .nav-link.partner-chain-has-unread,.admin-context .context-link.partner-chain-has-unread{position:relative!important}

@media(max-width:900px){
    .partner-shell .partner-nav { width:auto; padding:8px; gap:5px; border-radius:12px; }
    .partner-shell .partner-nav a { display:flex; min-height:34px; padding:0 9px; gap:7px; font-size:8px; }
    .partner-shell .partner-nav i { flex:0 0 19px; width:19px; height:19px; }
}

/* The partner navigation deliberately follows the admin-panel geometry too:
   floating left rail on desktop, compact action grid on mobile. */
@media(min-width:721px){
    .partner-shell .partner-layout{
        width:auto;
        max-width:none;
        margin:0 24px 0 210px;
        padding:50px 26px 34px;
        grid-template-columns:minmax(0,1fr);
    }
    .partner-shell .partner-nav{
        position:fixed;
        inset:50% auto auto 26px;
        z-index:10;
        width:158px;
        max-height:calc(100vh - 28px);
        padding:11px 4px 9px;
        overflow:auto;
        border-radius:17px;
        transform:translateY(-50%);
    }
    .partner-shell .partner-nav a{
        min-height:29px;
        padding:2px 5px;
        grid-template-columns:20px minmax(0,1fr);
        font-size:8px;
    }
}
@media(max-width:720px){
    .partner-shell .partner-nav-profile { display:none; }
    .partner-shell .partner-layout{
        display:flex;
        margin:0;
        padding:12px;
        flex-direction:column;
        gap:12px;
    }
    .partner-shell .partner-nav{
        position:sticky;
        top:calc(54px + env(safe-area-inset-top,0px));
        z-index:7;
        display:grid;
        width:min(100%,420px);
        max-width:100%;
        margin:0 auto;
        padding:0;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:5px;
        overflow:visible;
        background:transparent !important;
        border:0 !important;
        border-radius:0;
        box-shadow:none !important;
        transform:none;
    }
    .partner-shell .partner-nav a{
        display:grid;
        min-width:0;
        width:100%;
        min-height:58px;
        padding:5px 3px;
        grid-template-columns:minmax(0,1fr);
        grid-template-rows:23px minmax(10px,auto);
        justify-items:center;
        align-content:center;
        gap:4px;
        font-size:8px;
        line-height:1.15;
        text-align:center;
        white-space:normal;
    }
    .partner-shell .partner-nav i{
        display:grid;
        width:22px;
        height:22px;
        place-items:center;
        font-size:12px;
        line-height:1;
    }
}

/* One shared, theme-aware down-chevron for disclosures and dropdowns. */
html[data-lg-theme] :is(
    .settings-card-toggle,
    .shop-panel-arrow,
    .banner-chevron,
    .reservation-image-chevron,
    .booking-status-chevron,
    .report-export-toggle
) {
    display:grid !important;
    width:28px !important;
    min-width:28px !important;
    height:28px !important;
    flex:0 0 28px !important;
    padding:0 !important;
    place-items:center !important;
    align-content:center !important;
    justify-content:center !important;
    color:var(--lg-primary) !important;
    background:var(--lg-primary-soft) !important;
    border:1px solid color-mix(in srgb,var(--lg-primary) 24%,var(--lg-border)) !important;
    border-radius:8px !important;
    text-align:center !important;
    line-height:1 !important;
    transform-origin:center !important;
    box-shadow:none !important;
}
html[data-lg-theme] :is(.settings-card-toggle svg,.shop-panel-arrow svg,.banner-chevron svg,.reservation-image-chevron svg,.booking-status-chevron svg,.report-export-toggle svg) {
    display:block !important;
    width:12px !important;
    height:12px !important;
    margin:0 !important;
    overflow:visible !important;
}
html[data-lg-theme] :is(.settings-card-toggle path,.shop-panel-arrow path,.banner-chevron path,.reservation-image-chevron path,.booking-status-chevron path,.report-export-toggle path) {
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:1.7 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
}
html[data-lg-theme] .partner-content .setting-card>summary>span:last-child:not(.settings-card-toggle) { position:relative !important; font-size:0 !important; }
html[data-lg-theme] .partner-content .setting-card>summary>span:last-child:not(.settings-card-toggle)::after {
    content:"";
    display:block;
    width:7px;
    height:7px;
    border-right:1.7px solid currentColor;
    border-bottom:1.7px solid currentColor;
    transform:rotate(45deg) translate(-1px,-1px);
}
html[data-lg-theme] :is(details[open]>summary .settings-card-toggle,details[open]>summary .shop-panel-arrow,details[open]>summary .report-export-toggle) { transform:rotate(180deg) !important; }
html[data-lg-theme] :is(.banner-toggle[aria-expanded="true"] .banner-chevron,.reservation-image-toggle[aria-expanded="true"] .reservation-image-chevron) { transform:rotate(180deg) !important; }
html[data-lg-theme] .reservation-image-chevron:not(:has(svg)) { position:relative; font-size:0 !important; }
html[data-lg-theme] .reservation-image-chevron:not(:has(svg))::after { content:""; width:7px; height:7px; border-right:1.7px solid currentColor; border-bottom:1.7px solid currentColor; transform:rotate(45deg) translate(-1px,-1px); }

/* Replace OS-specific oversized select triangles with the same centered V. */
html[data-lg-theme] select:not([multiple]):not([size]),
html[data-lg-theme] select.control:not([multiple]):not([size]) {
    -webkit-appearance:none !important;
    appearance:none !important;
    padding-right:44px !important;
    background-image:
        linear-gradient(45deg,transparent 45%,currentColor 46%,currentColor 57%,transparent 58%),
        linear-gradient(-45deg,transparent 45%,currentColor 46%,currentColor 57%,transparent 58%) !important;
    background-repeat:no-repeat !important;
    background-position:calc(100% - 17px) 50%,calc(100% - 11px) 50% !important;
    background-size:6px 6px,6px 6px !important;
}
html[data-lg-theme] :is(.site-select-wrap select,.booking-select-wrap select,.booking-status-select select) { background-image:none !important; }
html[data-lg-theme] :is(.site-select-arrow,.booking-select-wrap>svg,.delivery-postal-menu-arrow) {
    box-sizing:border-box !important;
    display:block !important;
    width:28px !important;
    min-width:28px !important;
    height:28px !important;
    padding:7px !important;
    color:var(--lg-primary) !important;
    background:var(--lg-primary-soft) !important;
    border:1px solid color-mix(in srgb,var(--lg-primary) 24%,var(--lg-border)) !important;
    border-radius:8px !important;
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:1.7 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
    transform-origin:center !important;
}
html[data-lg-theme] :is(.site-select-arrow,.booking-select-wrap>svg) { right:6px !important; }
html[data-lg-theme] .delivery-postal-menu[open] .delivery-postal-menu-arrow { transform:rotate(180deg) !important; }

/* Match every disclosure/dropdown chevron to the Öffnungszeiten control. */
:is(
    .settings-card-toggle,
    .shop-panel-arrow,
    .banner-chevron,
    .context-group-arrow,
    .reservation-image-chevron,
    .booking-status-chevron,
    .report-export-toggle
) {
    box-sizing:border-box !important;
    width:26px !important;
    min-width:26px !important;
    height:26px !important;
    flex:0 0 26px !important;
    padding:0 !important;
    place-items:center !important;
    color:var(--lg-primary,var(--navy)) !important;
    background:var(--lg-primary-soft,#edf3f9) !important;
    border:1px solid var(--lg-border,var(--line)) !important;
    border-radius:7px !important;
    line-height:1 !important;
    transform-origin:center !important;
}
:is(
    .settings-card-toggle svg,
    .shop-panel-arrow svg,
    .banner-chevron svg,
    .context-group-arrow svg,
    .reservation-image-chevron svg,
    .booking-status-chevron svg,
    .report-export-toggle svg
) {
    display:block !important;
    width:14px !important;
    height:14px !important;
    margin:0 !important;
    overflow:visible !important;
}
:is(
    .settings-card-toggle path,
    .shop-panel-arrow path,
    .banner-chevron path,
    .context-group-arrow path,
    .reservation-image-chevron path,
    .booking-status-chevron path,
    .report-export-toggle path
) {
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:1.8 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
}
html[data-lg-theme] :is(.site-select-arrow,.booking-select-wrap>svg,.delivery-postal-menu-arrow) {
    width:26px !important;
    min-width:26px !important;
    height:26px !important;
    padding:6px !important;
    border:1px solid var(--lg-border) !important;
    border-radius:7px !important;
    stroke-width:1.8 !important;
}
html[data-lg-theme] select:not([multiple]):not([size]),
html[data-lg-theme] select.control:not([multiple]):not([size]) {
    background-size:6px 6px,6px 6px !important;
}

/* Prevent iOS/Safari from auto-zooming the page when a form control receives focus. */
@media (pointer:coarse),(any-pointer:coarse),(max-width:720px) {
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="file"]),
    select,
    textarea,
    [contenteditable="true"] {
        font-size:16px !important;
    }
}

/* Keep the customer navbar opaque on phones so blue content cannot show through it while scrolling. */
@media (max-width:640px) {
    html[data-lg-theme] .site-header {
        background:var(--lg-surface);
        backdrop-filter:none;
        -webkit-backdrop-filter:none;
    }
}
/* Shared in-app alerts and confirmations. */
.lg-app-dialog-layer{position:fixed;inset:0;z-index:1000;display:grid;padding:18px;place-items:center;background:color-mix(in srgb,var(--lg-text,#17283a) 42%,transparent);backdrop-filter:blur(5px);opacity:0;transition:opacity .16s ease}
.lg-app-dialog-layer.is-visible{opacity:1}
.lg-app-dialog{display:grid;width:min(430px,100%);padding:22px;grid-template-columns:42px minmax(0,1fr);gap:14px;color:var(--lg-text,#1c2b3b);background:color-mix(in srgb,var(--lg-surface,#fff) 96%,transparent);border:1px solid var(--lg-border,#dce4ec);border-radius:20px;box-shadow:0 28px 90px color-mix(in srgb,var(--lg-text,#1c2b3b) 28%,transparent);transform:translateY(10px) scale(.985);transition:transform .16s ease}
.lg-app-dialog-layer.is-visible .lg-app-dialog{transform:translateY(0) scale(1)}
.lg-app-dialog-icon{display:grid;width:42px;height:42px;place-items:center;color:var(--lg-primary,#ff5a3c);background:var(--lg-primary-soft,#eaf2f9);border:1px solid color-mix(in srgb,var(--lg-primary,#ff5a3c) 18%,var(--lg-border,#dce4ec));border-radius:13px;font-size:19px;font-weight:900}
.lg-app-dialog-copy{display:grid;min-width:0;gap:6px;align-content:center}.lg-app-dialog-copy strong{color:var(--lg-heading,var(--lg-text,#1c2b3b));font-size:15px}.lg-app-dialog-copy p{margin:0;color:var(--lg-muted,#778698);font-size:12px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.lg-app-dialog-actions{display:flex;grid-column:1/-1;margin-top:7px;justify-content:flex-end;gap:8px}.lg-app-dialog-button{min-height:40px;padding:0 17px;border-radius:11px;font:800 11px/1 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer}.lg-app-dialog-button.is-primary{color:var(--lg-on-primary,#fff);background:var(--lg-primary,#ff5a3c);border:1px solid var(--lg-primary,#ff5a3c)}.lg-app-dialog-button.is-secondary{color:var(--lg-text,#1c2b3b);background:var(--lg-control,#f2f6fa);border:1px solid var(--lg-border,#dce4ec)}.lg-app-dialog-button:focus-visible{outline:3px solid color-mix(in srgb,var(--lg-primary,#ff5a3c) 24%,transparent);outline-offset:2px}
@media(max-width:480px){.lg-app-dialog{padding:18px;border-radius:17px}.lg-app-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.lg-app-dialog-actions:has(.lg-app-dialog-button:only-child){grid-template-columns:1fr}.lg-app-dialog-button{width:100%}}

/* Anchor header menus to the inline end: right in LTR, left in RTL. */
html .account-popover,
html .partner-account-dropdown,
html .site-theme-options {
    right:auto;
    left:auto;
    inset-inline-end:0;
    box-sizing:border-box;
    max-width:calc(100vw - 24px);
    max-height:min(560px, calc(100vh - 90px));
    max-height:min(560px, calc(100dvh - 90px));
    overflow-y:auto;
    overscroll-behavior:contain;
    text-align:start;
}
/* Lift the complete sticky header while its dropdown is open. A child menu
   cannot escape a lower stacking context, regardless of its own z-index. */
html .admin-topbar:has(.top-account[open]),
html .partner-topbar:has(.partner-account[open]),
html .site-header:has(.site-theme-picker[open]),
html .site-header:has(.site-language-picker[open]) {
    z-index:2147483647;
}
html .account-popover,
html .partner-account-dropdown,
html .site-theme-options,
html .site-language-options {
    z-index:2147483647;
}
@media (max-width:480px) {
    /* Use the whole action group as the anchor beside the language button. */
    .site-header-actions .site-theme-picker { position:static; }
}
/* A language submenu inside a profile grows within it, never out of its side. */
html .partner-account-dropdown .site-language-picker { min-width:0; }
html .partner-account-dropdown .site-language-options {
    position:static;
    inset:auto;
    display:none;
    width:100%;
    max-width:100%;
    margin-block:8px;
    box-sizing:border-box;
    box-shadow:none;
}
html .partner-account-dropdown .site-language-picker[open] .site-language-options { display:grid; }
html .account-popover button,
html .partner-account-dropdown .logout { text-align:start; }

/* Keep the profile-menu language control legible across every admin theme. */
html[data-lg-theme] .account-popover .site-language-picker>summary {
    color:var(--lg-text);
    background:var(--lg-control);
    border-color:var(--lg-border);
}
html[data-lg-theme] .account-popover .site-language-choice {
    color:var(--lg-text);
    background:var(--lg-control);
    border-color:var(--lg-border);
}
html[data-lg-theme] .account-popover .site-language-choice b {
    color:var(--lg-primary);
    background:var(--lg-primary-soft);
}
html[data-lg-theme] .account-popover .site-language-choice[aria-pressed="true"] {
    color:var(--lg-on-primary);
    background:var(--lg-primary);
    border-color:var(--lg-primary);
}
html[data-lg-theme] .account-popover .site-language-choice[aria-pressed="true"] b {
    color:var(--lg-primary);
    background:var(--lg-on-primary);
}
html[data-lg-theme] .account-popover .site-language-choice[aria-pressed="true"]::after {
    color:var(--lg-on-primary);
}
