@media (max-width: 720px), (max-width: 940px) and (max-height: 520px) {
  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"], [data-app-view="slotting-templates"]) .analysis-workspace {
    min-width: 0;
    height: 100%;
    gap: 12px;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 12px;
    overscroll-behavior: contain;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) :is(#slottingPanel, #packingPanel) {
    overflow: hidden;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) :is(#slottingContent.slotting-workspace, #packingContent.packing-workspace) {
    height: auto;
    min-height: 100%;
    display: block;
    overflow-x: hidden;
    overflow-y: auto;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-layout-shell {
    height: auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    overflow: visible;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-kpi-shell {
    overflow: visible;
    padding: 10px;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-summary-list,
  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-inner-header {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
    padding: 12px;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-title-line {
    align-items: flex-start;
    flex-direction: column;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-inner-controls,
  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-render-actions {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-workspace-tabs,
  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-detail-tabs,
  body.has-mobile-shell[data-app-view="packing"] .packing-v2-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) :is(.slotting-workspace-tab, .slotting-detail-tab),
  body.has-mobile-shell[data-app-view="packing"] .packing-v2-tabs button {
    min-height: 44px;
    flex: 0 0 auto;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-active-workspace,
  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-workbench,
  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-workbench-body {
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow: visible;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-render-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  body.has-mobile-shell[data-app-view="slotting"] .slotting-webgl-canvas,
  body.has-mobile-shell[data-app-view="packing"] .packing-webgl-stage {
    width: 100%;
    min-height: 260px;
    height: min(52dvh, 390px);
    max-height: 390px;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-webgl-toolbar,
  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-webgl-control-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
  }

  body.has-mobile-shell[data-app-view="slotting"] .slotting-context-inspector,
  body.has-mobile-shell[data-app-view="packing"] .packing-order-rail {
    display: grid;
    min-width: 0;
    max-height: none;
    overflow: visible;
  }

  body.has-mobile-shell[data-app-view="packing"] :is(.packing-order-rail-shell, .packing-order-rail-head, .packing-order-filter) {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) :is(.slotting-container-grid, .slotting-detail-grid, .slotting-container-kpis),
  body.has-mobile-shell[data-app-view="packing"] :is(.packing-v2-summary, .packing-v2-detail, .packing-config-panel .ld-packaging-box, .packing-config-panel .packing-height-reduction-controls) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.has-mobile-shell[data-app-view="packing"] .packing-config-panel .ld-control-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.has-mobile-shell[data-app-view="packing"] :is(.packing-engineer-section, .packing-order-table-shell, .packing-table-toolbar) {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.has-mobile-shell[data-app-view="packing"] .packing-engineer-section {
    grid-template-columns: minmax(0, 1fr);
  }

  body.has-mobile-shell[data-app-view="packing"] .packing-order-table-shell {
    overflow: hidden;
  }

  body.has-mobile-shell[data-app-view="packing"] .packing-order-filter > input[type="search"] {
    width: auto;
    min-width: 0;
    flex: 1 1 auto;
  }

  body.has-mobile-shell[data-app-view="packing"] .packing-config-panel .ld-packaging-mode {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.has-mobile-shell[data-app-view="packing"] .packing-config-panel .ld-packaging-mode label {
    min-height: 48px;
    padding: 8px 10px;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) .slotting-system-footer {
    position: static;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin-top: 12px;
    padding: 12px;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) dialog.drawer-dialog:is(.slotting-engine-drawer, .slotting-detail-drawer) {
    inset: var(--mobile-header-h) 0 var(--mobile-nav-h);
    width: 100vw;
    max-width: 100vw;
    height: auto;
    max-height: none;
    margin: 0;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"]) :is(button, a[href], [role="button"]):not(.slotting-mini-cell) {
    min-width: 44px;
    min-height: 44px;
  }

  body.has-mobile-shell:is([data-app-view="slotting"], [data-app-view="packing"], [data-app-view="slotting-templates"]) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    min-height: 44px;
    font-size: 16px;
  }

  body.has-mobile-shell[data-app-view="slotting-templates"] #slottingTemplatesContent.slotting-template-workspace {
    display: flex;
    padding: 0;
  }

  body.has-mobile-shell[data-app-view="slotting-templates"] .slotting-template-editor {
    width: 100%;
    min-height: 100%;
    overflow: visible;
  }

  body.has-mobile-shell[data-app-view="slotting-templates"] .slotting-template-editor .table-header {
    min-height: 0;
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
  }

  body.has-mobile-shell[data-app-view="slotting-templates"] .slotting-template-editor .toolbar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  body.has-mobile-shell[data-app-view="slotting-templates"] .slotting-template-tabs {
    min-height: 44px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 12px;
  }

  body.has-mobile-shell[data-app-view="slotting-templates"] .slotting-template-table {
    min-height: 360px;
    overflow: auto;
    overscroll-behavior: contain;
  }

  body.has-mobile-shell[data-app-view="slotting-templates"] .slotting-template-table :is(button, a[href], [role="button"]) {
    min-height: 44px;
  }
}
