/* Warehouse surfaces consume the same tenant theme as the management app. */
:is(.warehouse-planner, .warehouse-3d, .warehouse-mobile-body, .warehouse-mobile-auth) {
    --wh-primary: var(--primary-color, #4f46e5);
    --wh-text: var(--text-color, #182433);
    --wh-muted: var(--secondary-color, #64748b);
    --wh-line: var(--esdra-data-line, var(--bb-border-color, #dce3ec));
    --wh-surface: var(--esdra-data-surface, #fff);
    --wh-subtle: #f8fafc;
    --wh-accent: color-mix(in srgb, var(--wh-primary) 8%, white);
    font-family: var(--primary-font, Inter), system-ui, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: var(--wh-text);
    background: var(--wh-surface);
}
:is(.warehouse-planner, .warehouse-3d, .warehouse-mobile-body, .warehouse-mobile-auth) :is(button, input, select, textarea) { font-family: inherit; }
:is(.warehouse-planner, .warehouse-3d, .warehouse-mobile-body, .warehouse-mobile-auth) :is(button, a, input, select, textarea):focus-visible { outline: 2px solid var(--wh-primary); outline-offset: 2px; }
:is(.warehouse-planner, .warehouse-3d, .warehouse-mobile-body, .warehouse-mobile-auth) :is(button, input, select, textarea):disabled { opacity: .55; cursor: not-allowed; }
:is(.warehouse-planner, .warehouse-3d) :is(.warehouse-toolbar, .warehouse-3d__toolbar) {
    min-height: 64px; padding: 12px 16px; gap: 16px; flex-wrap: wrap;
    background: var(--wh-surface); border-bottom: 1px solid var(--wh-line); backdrop-filter: none;
}
:is(.warehouse-planner, .warehouse-3d) :is(.warehouse-title h1, .warehouse-3d__title h1) { color: var(--wh-text); font-size: 16px; line-height: 1.4; font-weight: 600; }
:is(.warehouse-planner, .warehouse-3d) :is(.warehouse-title span, .warehouse-3d__title span) { color: var(--wh-muted); font-size: 12px; }
:is(.warehouse-planner, .warehouse-3d) :is(.warehouse-actions, .warehouse-3d__actions) { gap: 8px; flex-wrap: wrap; }
:is(.warehouse-planner, .warehouse-3d) :is(.warehouse-btn, .warehouse-3d__button) {
    min-height: 40px; padding: 8px 12px; border: 1px solid var(--wh-line); border-radius: 6px;
    color: var(--wh-text); background: var(--wh-surface); font-size: 14px; font-weight: 500; line-height: 1.4;
    box-shadow: none; backdrop-filter: none;
}
:is(.warehouse-planner, .warehouse-3d) :is(.warehouse-btn, .warehouse-3d__button):hover { color: var(--wh-primary); border-color: var(--wh-primary); background: var(--wh-accent); }
.warehouse-planner .warehouse-btn.primary, .warehouse-3d .warehouse-3d__button.is-active { background: var(--wh-primary); border-color: var(--wh-primary); color: #fff; }
:is(.warehouse-planner, .warehouse-3d) :is(.warehouse-side, .warehouse-3d__side) { background: var(--wh-surface); border-left: 1px solid var(--wh-line); }
:is(.warehouse-planner, .warehouse-3d) :is(.side-head, .warehouse-3d__side-head) { padding: 16px; border-bottom: 1px solid var(--wh-line); }
:is(.warehouse-planner, .warehouse-3d) :is(.side-head strong, .warehouse-3d__side-head strong) { color: var(--wh-text); font-size: 14px; font-weight: 600; }
:is(.warehouse-planner, .warehouse-3d) :is(.side-head span, .warehouse-3d__side-head span) { color: var(--wh-muted); font-size: 13px; line-height: 1.5; }
:is(.warehouse-planner, .warehouse-3d) :is(.side-panel, .warehouse-3d__panel) { padding: 16px; scrollbar-width: thin; }
.warehouse-planner .side-tabs { gap: 4px; padding: 0 12px; border-bottom: 1px solid var(--wh-line); overflow-x: auto; }
.warehouse-planner .side-tab { min-height: 44px; padding: 10px 12px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: var(--wh-muted); font-size: 13px; font-weight: 500; }
.warehouse-planner .side-tab.active { color: var(--wh-primary); background: transparent; border-bottom-color: var(--wh-primary); }
.warehouse-planner .field-grid { gap: 12px; align-items: start; }
.warehouse-planner .field { gap: 6px; align-content: start; }
.warehouse-planner .field label { color: var(--wh-text); font-size: 13px; font-weight: 500; line-height: 1.4; }
.warehouse-planner .field :is(input, select), .warehouse-3d .warehouse-3d__route select {
    min-height: 40px; height: 40px; padding: 8px 10px; border: 1px solid var(--wh-line); border-radius: 6px;
    color: var(--wh-text); background: var(--wh-surface); font-size: 14px; box-shadow: none;
}
.warehouse-planner fieldset.field-grid { border: 0; padding: 0; margin-block: 20px; min-width: 0; }
.warehouse-planner fieldset.field-grid legend { float: none; width: 100%; margin-bottom: 12px; font-size: 14px; font-weight: 600; }
.warehouse-planner fieldset.field-grid .storage-unit-help { grid-column: 1 / -1; }
.warehouse-planner .palette-item { padding: 14px; min-height: 64px; border: 1px solid var(--wh-line); border-radius: 6px; background: var(--wh-subtle); font-weight: 500; }
.warehouse-planner :is(.selection-panel, .selection-empty, .product-card, .warehouse-level-target) { border-color: var(--wh-line); border-radius: 6px; box-shadow: none; }
.warehouse-planner :is(.warehouse-stage, .warehouse-canvas-wrap) { background: var(--wh-subtle); }
.warehouse-planner .warehouse-map { border-color: var(--wh-line); border-radius: 0; box-shadow: none; }
.warehouse-planner .warehouse-scale-legend { padding: 10px 16px; border-bottom: 1px solid var(--wh-line); background: var(--wh-surface); gap: 8px 16px; }
.warehouse-planner .warehouse-shelf { background: var(--wh-surface); border: 1px solid var(--wh-primary); color: var(--wh-text); border-radius: 4px; box-shadow: 0 2px 4px #1824330a; }
.warehouse-planner .warehouse-shelf__meta { color: var(--wh-muted); }
.warehouse-planner :is(.warehouse-zone, .warehouse-shelf).is-selected { outline-color: var(--wh-primary); box-shadow: 0 0 0 7px var(--wh-accent); }
.warehouse-planner .warehouse-zone { border-radius: 4px; }
.warehouse-planner .resize-handle { background: var(--wh-primary); }
.warehouse-planner .context-menu { background: var(--wh-surface); border-color: var(--wh-line); color: var(--wh-text); }

/* The toolbar occupies a real row, so it cannot cover the camera canvas. */
.warehouse-3d { grid-template-rows: auto minmax(0, 1fr); }
.warehouse-3d .warehouse-3d__toolbar { position: static; grid-column: 1 / -1; pointer-events: auto; }
.warehouse-3d .warehouse-3d__actions { justify-content: flex-end; }
.warehouse-3d .warehouse-3d__stage { overflow: hidden; background: var(--wh-subtle); }
.warehouse-3d :is(.warehouse-3d__stat, .warehouse-3d__details, .warehouse-3d__route) { border: 1px solid var(--wh-line); border-radius: 6px; background: var(--wh-surface); padding: 16px; box-shadow: none; }
.warehouse-3d :is(.warehouse-3d__stat strong, .warehouse-3d__details h2, .warehouse-3d__details h3, .warehouse-3d__details strong, .warehouse-3d__route label, .warehouse-3d__route-progress) { color: var(--wh-text); font-weight: 600; }
.warehouse-3d :is(.warehouse-3d__stat span, .warehouse-3d__details p, .warehouse-3d__details dt, .warehouse-3d__legend, .warehouse-3d__route-status) { color: var(--wh-muted); }
.warehouse-3d .warehouse-3d__details dd { color: var(--wh-text); }
.warehouse-3d .warehouse-3d__kv { color: var(--wh-muted); }
.warehouse-3d .warehouse-3d__kv span { color: var(--wh-text); }
.warehouse-3d .warehouse-3d__stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border: 1px solid var(--wh-line); border-radius: 6px; overflow: hidden; }
.warehouse-3d .warehouse-3d__stat { border: 0; border-radius: 0; }
.warehouse-3d .warehouse-3d__stat + .warehouse-3d__stat { border-left: 1px solid var(--wh-line); }
.warehouse-3d .warehouse-3d__stat { min-width: 0; }
.warehouse-3d .warehouse-3d__stat:nth-child(odd) { border-left: 0; }
.warehouse-3d .warehouse-3d__stat:nth-child(n+3) { border-top: 1px solid var(--wh-line); }
.warehouse-3d .warehouse-3d__legend { font-size: 12px; line-height: 1.6; }

/* Standalone operator app: tenant fonts/colors, management-style sections, touch targets. */
.warehouse-mobile-body .mw-app { padding: 0 0 calc(70px + env(safe-area-inset-bottom)); background: var(--wh-surface); }
.warehouse-mobile-body .mw-top { min-height: 64px; margin: 0; padding: max(10px, env(safe-area-inset-top)) 16px 10px; border-color: var(--wh-line); gap: 12px; }
.warehouse-mobile-body .mw-heading .esdra-launchpad-home { background: var(--wh-primary); border-radius: 0; width: 44px; height: 44px; flex-basis: 44px; }
.warehouse-mobile-body .mw-title { font-size: 16px; line-height: 1.4; font-weight: 600; }
.warehouse-mobile-body :is(.mw-eva-open, .mw-logout) { min-height: 44px; padding: 8px 12px; border-radius: 6px; border-color: var(--wh-line); background: var(--wh-surface); color: var(--wh-text); font-size: 14px; font-weight: 500; }
.warehouse-mobile-body .mw-eva-open { color: var(--wh-primary); }
.warehouse-mobile-body .mw-screen { padding: 16px; scrollbar-width: thin; overscroll-behavior: contain; }
.warehouse-mobile-body .mw-screen.active { gap: 16px; }
.warehouse-mobile-body :is(.mw-screen-title h2, .mw-assistant__top h2) { font-size: 18px; line-height: 1.4; font-weight: 600; }
.warehouse-mobile-body .mw-screen-title p { display: block; margin: 4px 0 0; color: var(--wh-muted); font-size: 13px; line-height: 1.5; }
.warehouse-mobile-body :is(.mw-next, .mw-card, .mw-item, .mw-job, .mw-home-action) { background: var(--wh-surface); border-color: var(--wh-line); border-radius: 6px; box-shadow: none; }
.warehouse-mobile-body .mw-next { padding: 16px; gap: 12px; border-left: 3px solid var(--wh-primary); }
.warehouse-mobile-body :is(.mw-next strong, .mw-job strong, .mw-home-action, .mw-card__head h2) { font-size: 15px; line-height: 1.5; font-weight: 600; }
.warehouse-mobile-body :is(.mw-home-action span, .mw-job span, .mw-stat span, .mw-label) { color: var(--wh-muted); font-weight: 500; line-height: 1.5; }
.warehouse-mobile-body :is(.mw-card__head, .mw-card__body, .mw-job, .mw-home-action) { padding: 16px; }
.warehouse-mobile-body :is(.mw-form, .mw-grid, .mw-list) { gap: 16px; }
.warehouse-mobile-body .mw-row { gap: 12px; align-items: start; }
.warehouse-mobile-body :is(.mw-input, .mw-select, .mw-textarea) { border-color: var(--wh-line); border-radius: 6px; color: var(--wh-text); padding: 10px 12px; font-size: 16px; }
.warehouse-mobile-body .mw-button { background: var(--wh-primary); border-color: var(--wh-primary); border-radius: 6px; font-weight: 500; line-height: 1.5; }
.warehouse-mobile-body :is(.mw-button--ghost, .mw-button--dark) { background: var(--wh-surface); border-color: var(--wh-line); color: var(--wh-text); }
.warehouse-mobile-body :is(.mw-button--soft, .mw-pill) { background: var(--wh-accent); border-color: var(--wh-line); color: var(--wh-primary); font-weight: 500; }
.warehouse-mobile-body .mw-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border: 1px solid var(--wh-line); border-radius: 6px; padding: 0; }
.warehouse-mobile-body .mw-stat { border: 0; border-radius: 0; padding: 12px 16px; }
.warehouse-mobile-body .mw-stat:nth-child(even) { border-left: 1px solid var(--wh-line); }
.warehouse-mobile-body .mw-stat:nth-child(n+3) { border-top: 1px solid var(--wh-line); }
.warehouse-mobile-body .mw-stat strong { font-size: 22px; font-weight: 600; }
.warehouse-mobile-body .mw-tabs { border-color: var(--wh-line); }
.warehouse-mobile-body .mw-tab { border-radius: 0; border-top: 2px solid transparent; font-weight: 500; color: var(--wh-muted); }
.warehouse-mobile-body .mw-tab.active { color: var(--wh-primary); border-top-color: var(--wh-primary); background: var(--wh-accent); }
.warehouse-mobile-body .mw-assistant { background: var(--wh-subtle); color: var(--wh-text); }
.warehouse-mobile-body .mw-assistant__msg--user { background: var(--wh-primary); }
.warehouse-mobile-body .mw-scanner__frame { border-color: var(--wh-primary); }
.warehouse-mobile-body .mw-empty { border-color: var(--wh-line); color: var(--wh-muted); padding: 24px 16px; }
.warehouse-mobile-auth { background: var(--wh-subtle); }
.warehouse-mobile-auth :is(.mobile-login, .shop, .empty) { border: 1px solid var(--wh-line); border-radius: 6px; box-shadow: none; }
.warehouse-mobile-auth :is(h1, .shop-title) { color: var(--wh-text); font-size: 18px; line-height: 1.5; font-weight: 600; }
.warehouse-mobile-auth :is(.brand-icon, .shop-icon) { background: var(--wh-primary); border-radius: 6px; }
.warehouse-mobile-auth input { border-color: var(--wh-line); border-radius: 6px; }
.warehouse-mobile-auth label { font-weight: 500; }
.warehouse-mobile-auth .mobile-login button { margin-top: 16px; background: var(--wh-primary); border-radius: 6px; font-weight: 500; }
.warehouse-mobile-auth header { min-height: 64px; border-color: var(--wh-line); }
.warehouse-mobile-auth header button { min-height: 44px; padding: 8px 12px; border: 1px solid var(--wh-line); border-radius: 6px; }
@media (max-width: 980px) {
    .warehouse-3d { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(220px, 1fr) minmax(180px, 36dvh); }
    .warehouse-3d .warehouse-3d__side { max-height: none; border-left: 0; border-top: 1px solid var(--wh-line); }
    .warehouse-3d .warehouse-3d__toolbar { gap: 8px; padding: 8px 12px; }
    .warehouse-3d .warehouse-3d__actions { flex: 1; justify-content: flex-start; }
}
