/* Worker-only viewport corrections; keep shared/admin presentation untouched. */
body[data-shell="worker"] {
  --worker-top: env(safe-area-inset-top, 0px);
  --worker-right: env(safe-area-inset-right, 0px);
  --worker-bottom: env(safe-area-inset-bottom, 0px);
  --worker-left: env(safe-area-inset-left, 0px);
  min-height: 100dvh;
}
body[data-shell="worker"] .app-shell,
body[data-shell="worker"] .ops-shell { min-height: 100dvh; }
body[data-shell="worker"] .map-panel { height: 100dvh; min-height: 100dvh; }
body[data-shell="worker"] .ops-shell {
  padding-top: max(18px, var(--worker-top));
  padding-left: max(16px, var(--worker-left));
  padding-right: max(16px, var(--worker-right));
}
body[data-shell="worker"] .worker-app-bar { padding-top: var(--worker-top); }
/* Auto grid tracks must not stretch the navigation into a tall blank header. */
body[data-shell="worker"] .worker-home-shell,
body[data-shell="worker"] .worker-home-main { align-content: start; }
body[data-shell="worker"] .worker-app-bar-inner,
body[data-shell="worker"] .worker-home-main {
  padding-left: max(16px, var(--worker-left));
  padding-right: max(16px, var(--worker-right));
}
body[data-shell="worker"] .worker-home-main { padding-bottom: max(32px, var(--worker-bottom)); }
body[data-shell="worker"] .map-overlay {
  top: max(12px, var(--worker-top));
  left: max(12px, var(--worker-left));
  right: max(12px, var(--worker-right));
}
body[data-shell="worker"] .street-strip {
  left: max(12px, var(--worker-left));
  right: max(12px, var(--worker-right));
  margin-inline: auto;
  transform: none;
  width: min(440px, calc(100% - max(12px, var(--worker-left)) - max(12px, var(--worker-right))));
  bottom: max(12px, var(--worker-bottom));
}
body[data-shell="worker"] .street-strip-title { white-space: normal; overflow-wrap: anywhere; }
body[data-shell="worker"] .street-strip-header { align-items: start; }
body[data-shell="worker"] .flat-focus-panel {
  left: max(12px, var(--worker-left));
  right: max(12px, var(--worker-right));
  bottom: max(12px, var(--worker-bottom));
  max-height: min(72dvh, calc(100dvh - var(--worker-tools-bottom, 64px) - var(--worker-notice-height, 0px) - 12px - max(12px, var(--worker-bottom))), 560px);
  /* One scroll owner also keeps the list reachable with large text/landscape. */
  grid-template-rows: auto auto auto;
  overflow: auto;
  overscroll-behavior: contain;
}
body[data-shell="worker"] .flat-focus-list { overflow: visible; }
body[data-shell="worker"] .flat-focus-header > div { min-width: 0; overflow-wrap: anywhere; }
body[data-shell="worker"] .flat-focus-address span { white-space: normal; overflow-wrap: anywhere; }
body[data-shell="worker"] .info-panel {
  overscroll-behavior: contain;
  bottom: max(12px, var(--worker-bottom));
  max-height: calc(100dvh - max(12px, var(--worker-top)) - max(12px, var(--worker-bottom)));
}
body[data-shell="worker"] .info-panel[data-panel-kind="settings"] {
  top: var(--worker-visual-top, 0px);
  bottom: auto;
  height: var(--worker-visual-height, 100dvh);
  max-height: var(--worker-visual-height, 100dvh);
  padding-left: max(16px, var(--worker-left));
  padding-right: max(16px, var(--worker-right));
  grid-auto-rows: max-content;
  align-content: start;
}
body[data-shell="worker"] .address-list,
body[data-shell="worker"] .shared-session-participants { max-height: none; overflow: visible; }
body[data-shell="worker"] .shared-session-dialog-backdrop {
  top: var(--worker-visual-top, 0px);
  bottom: auto;
  height: var(--worker-visual-height, 100dvh);
  padding: max(12px, var(--worker-top)) max(12px, var(--worker-right)) max(12px, var(--worker-bottom)) max(12px, var(--worker-left));
}
body[data-shell="worker"] .shared-session-dialog {
  min-height: 0;
  max-height: 100%;
  overscroll-behavior: contain;
}
body[data-shell="worker"] .sticker-dialog {
  position: fixed;
  left: max(12px, var(--worker-left));
  right: max(12px, var(--worker-right));
  top: calc(var(--worker-visual-top, 0px) + max(12px, var(--worker-top)));
  bottom: auto;
  margin-top: 0;
  max-height: calc(var(--worker-visual-height, 100dvh) - max(12px, var(--worker-top)) - max(12px, var(--worker-bottom)));
  width: min(420px, calc(100% - max(12px, var(--worker-left)) - max(12px, var(--worker-right))));
  overscroll-behavior: contain;
}
body[data-shell="worker"]:has(.sticker-dialog[open]) { overflow: hidden; }
body[data-shell="worker"] .menu-close-button,
body[data-shell="worker"] .shared-session-dialog-close,
body[data-shell="worker"] .overlay-button.map-menu-button,
body[data-shell="worker"] .sticker-heading button {
  width: 44px; height: 44px; flex-basis: 44px;
}
body[data-shell="worker"] :is(.worker-logout-button, .sticker-toast button, #sticker-change, .sticker-dialog summary) { min-height: 44px; }
body[data-shell="worker"] .session-badge { min-height: 44px; }
body[data-shell="worker"] .sticker-toast button { min-width: 44px; }
body[data-shell="worker"] :is(.text-input, textarea, select) { min-width: 0; font-size: max(16px, 1rem); }
@media (min-width: 900px) {
  body[data-shell="worker"] .flat-focus-panel { left: auto; }
}

body[data-shell="worker"] .street-strip {
  max-height: calc(100dvh - var(--worker-tools-bottom, 64px) - var(--worker-notice-height, 0px) - 12px - max(12px, var(--worker-bottom)));
  overflow-y: auto;
  overscroll-behavior: contain;
}
body[data-shell="worker"] .sticker-toast {
  z-index: 705; /* Above the flat, below the menu backdrop and modal dialogs. */
  top: calc(var(--worker-tools-bottom, 64px) + 6px);
  bottom: auto !important; /* Overrides the legacy one-time inline position. */
  left: max(12px, var(--worker-left));
  right: max(12px, var(--worker-right));
  margin-inline: auto;
  transform: none;
  max-width: calc(100% - max(12px, var(--worker-left)) - max(12px, var(--worker-right)));
}
@media (min-width: 761px) {
  body[data-shell="worker"] .worker-app-bar-inner,
  body[data-shell="worker"] .worker-home-main {
    padding-left: max(32px, var(--worker-left));
    padding-right: max(32px, var(--worker-right));
  }
}
