/* Shared overlay geometry. Feature styles own only the content within the body. */
:root {
  /* Preserve existing order while retiring scattered global stack numbers. */
  --z-discovery: 50;
  --z-panel-backdrop: 55;
  --z-panel: 60;
  --z-panel-mask: 65;
  --z-actions: 80;
  --z-wheel: 90;
  --z-wheel-prize: 95;
  --z-soil-backdrop: 135;
  --z-soil: 140;
  --z-notice: 145;
  --z-panel-raised: 150;
  --z-hint: 180;
  --z-conflict-legacy: 200;
  --z-dialog: 210;
  --z-celebration: 220;
  --z-header: 500;
  --z-overlay: 610;
  --z-overlay-active: 620;
  --z-showcase: 700;
  --z-caretaker: 760;
  --z-reward: 900;
  --z-conflict: 1000;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-radius: 8px;
  --ui-target: 44px;
  --ui-text-caption: 14px;
  --ui-text-body: 16px;
  --ui-text-action: 16px;
  --ui-text-heading: 20px;
  --ui-weight-body: 400;
  --ui-weight-label: 600;
  --ui-weight-heading: 700;
}
@media (min-width: 700px) and (max-width: 1400px) {
  :root {
    --ui-text-caption: 18.667px;
    --ui-text-body: 18.667px;
    --ui-text-action: 20px;
    --ui-text-heading: 24px;
  }
}
:is(.context-bar, .order-card, .tool-card, .codex-entry, .ui-sheet-body) {
  font-size: var(--ui-text-body);
  line-height: 1.5;
}
:is(.context-bar, .order-card, .tool-card, .codex-entry, .ui-sheet-body) :is(p, label) {
  font-size: var(--ui-text-body);
  font-weight: var(--ui-weight-body);
}
:is(.context-bar, .order-card, .tool-card, .codex-entry, .ui-sheet-body) :is(small, summary) {
  font-size: var(--ui-text-caption);
  line-height: 1.5;
}
:is(.context-bar, .order-card, .tool-card, .codex-entry, .ui-sheet-body) button {
  font-size: var(--ui-text-action);
  font-weight: var(--ui-weight-label);
  white-space: normal;
  overflow-wrap: anywhere;
}
:is(.order-heading, .tool-card, .codex-entry, .ui-sheet-body) h3,
.context-heading > div > strong {
  font-size: var(--ui-text-heading);
  font-weight: var(--ui-weight-heading);
  line-height: 1.3;
}
.context-bar { align-content: start; row-gap: var(--ui-space-3); }
.context-bar .context-actions { align-content: start; align-items: start; }
.context-bar .context-actions .replace { min-height: var(--ui-target); padding: 10px 14px; font-size: var(--ui-text-action); }
.context-device-summary { display: block; font-size: var(--ui-text-caption); }
:is(.context-bar, .order-card, .tool-card, .codex-entry, .ui-sheet-body) button strong {
  font-size: inherit;
  font-weight: inherit;
}
.ui-overlay {
  --sheet-width: 720px;
  position: fixed;
  inset: 0;
  z-index: var(--overlay-layer, var(--z-overlay));
  display: grid;
  place-items: center;
  grid-template-rows: minmax(0, 1fr);
  padding: var(--ui-space-4);
  box-sizing: border-box;
}
.ui-overlay[hidden] { display: none; }
.ui-overlay.reward-modal, .ui-overlay.community-modal { top: var(--workspace-header-height, 0px); }
.ui-overlay > button:first-child {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: rgb(27 34 30 / 52%);
}
.ui-overlay > .ui-sheet {
  position: relative;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: min(var(--sheet-width), 100%);
  min-width: 0;
  min-height: 0;
  max-height: 100%;
  height: auto;
  overflow: hidden;
  gap: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--ui-radius);
  background: var(--panel);
  box-shadow: 0 24px 70px rgb(27 34 30 / 25%);
}
.ui-overlay > .ui-sheet > header {
  position: static;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex: 0 0 auto;
  gap: var(--ui-space-3);
  margin: 0;
  padding: var(--ui-space-4);
  border-bottom: 1px solid var(--line);
  background: var(--panel);
}
.ui-sheet > header > div { min-width: 0; }
.ui-sheet > header > button:last-child {
  flex: 0 0 var(--ui-target);
  width: var(--ui-target);
  height: var(--ui-target);
  min-width: var(--ui-target);
  min-height: var(--ui-target);
}
.ui-sheet-body {
  min-width: 0;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: var(--ui-space-4);
  scrollbar-gutter: stable;
}
.info-modal { --sheet-width: 500px; }
.feedback-modal { --sheet-width: 560px; }
.ui-sheet-body .info-body { margin-bottom: 16px; }
.ui-sheet-body #feedbackForm { padding: 0; }
.ui-sheet-body .reward-route-view,
.ui-sheet-body .reward-research-view { padding: 0; overflow: visible; }
.ui-overlay .leaderboard > header { position: static; }
.context-actions .harvest-choice { min-height: 64px; padding: var(--ui-space-4); text-align: center; }
#orderGrid > .lin-story.order-card { margin: 0; min-width: 0; }
#orderGrid > .lin-story-archived { background: #edf0ed; }
#orderGrid > .lin-story .order-heading { align-items: start; }
@media (max-width: 600px) {
  .ui-overlay { padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)); }
  .ui-overlay > .ui-sheet > header { padding: var(--ui-space-3); }
  .ui-sheet-body { padding: var(--ui-space-3); }
}
