/* Mirror My Map below 2D / 3D. Keep a single stable 44px touch target. */
html body main.app-shell section.map-stage.map-focus .mappi-intelligence-entry {
  position: absolute; z-index: 760; right: var(--mymappi-explore-right-edge);
  top: calc(var(--mymappi-explore-header-top) + var(--mymappi-explore-instrument-height) + var(--mymappi-explore-stack-gap) + var(--mymappi-explore-instrument-height) + var(--mymappi-explore-caption-gap));
  width: var(--mymappi-explore-instrument-width); min-height: 44px; margin: 0; padding: 6px 5px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border: 1px solid #45667a; border-radius: 13px; background: #00243f; color: #f5fafc;
  box-shadow: 0 4px 12px #00243f20; line-height: 1.1; transform: none; touch-action: manipulation;
}
html body main.app-shell section.map-stage.map-focus .mappi-intelligence-entry strong { font-size: 11px; font-weight: 750; }
html body main.app-shell section.map-stage.map-focus .mappi-intelligence-entry > span { font-size: 10px; color: #c7dce6; }
html body main.app-shell section.map-stage.map-focus .mappi-intelligence-entry[data-active="true"],
html body main.app-shell section.map-stage.map-focus .mappi-intelligence-entry[aria-expanded="true"] { border-color: #75d9c3; }
.mappi-intelligence-entry [data-mi-count]:not(:empty) { position: absolute; top: -6px; right: -5px; min-width: 18px; padding: 3px; border-radius: 20px; font: 700 10px/1 system-ui; background: #75d9c3; color: #00243f !important; }
html body main.app-shell section.map-stage.map-focus .map-scope-caption { min-height: 44px !important; box-sizing: border-box; }
html body .mappi-intelligence-entry[hidden], html body .mappi-intelligence-dialog [hidden] { display: none !important; }
html body .mappi-intelligence-dialog {
  --mi-navy: #00243f; --mi-mint: #75d9c3; --mi-muted: #506b7b; --mi-line: #d4e2e9;
  --mi-visible-height: var(--mymappi-visible-height, 100dvh);
  --mi-safe-top: env(safe-area-inset-top, 0px);
  --mi-safe-bottom: env(safe-area-inset-bottom, 0px);
  --mi-safe-left: env(safe-area-inset-left, 0px);
  --mi-safe-right: env(safe-area-inset-right, 0px);
  --mi-frame-gap: 16px;
  --mi-safe-height: max(0px, calc(var(--mi-visible-height) - var(--mi-safe-top) - var(--mi-safe-bottom)));
  --mi-frame-height: min(760px, calc(var(--mi-safe-height) - 2 * var(--mi-frame-gap)));
  /* Use the shared visual viewport so the keyboard cannot cover the composer.
     Center inside the safe area, not the screen including the notch. The app
     freezes these values during pinch zoom; no new resize loop is needed. */
  position: fixed;
  inset: calc(var(--mymappi-visual-offset-top, 0px) + var(--mi-safe-top) + (var(--mi-safe-height) - var(--mi-frame-height)) / 2) calc(var(--mi-safe-right) + var(--mi-frame-gap)) auto auto;
  margin: 0; padding: 0; width: min(440px, calc(100vw - var(--mi-safe-left) - var(--mi-safe-right) - 2 * var(--mi-frame-gap))); max-width: none;
  height: var(--mi-frame-height);
  max-height: var(--mi-frame-height);
  border: 1px solid var(--mi-line); border-radius: 26px; background: #f5fafc; color: var(--mi-navy);
  box-shadow: 0 24px 64px #00162440; overflow: hidden; box-sizing: border-box;
  font-family: inherit; text-align: left; transform: none;
}
html body .mappi-intelligence-dialog[open] { display: flex; flex-direction: column; }
.mappi-intelligence-dialog::backdrop { background: #00182b55; }
.mappi-intelligence-dialog * { box-sizing: border-box; }
.mappi-intelligence-dialog .mi-header { display: flex; flex-shrink: 0; align-items: center; gap: 12px; padding: 22px 20px; background: var(--mi-navy); }
.mappi-intelligence-dialog .mi-header > div { flex: 1; min-width: 0; }
.mappi-intelligence-dialog .mi-mark { display: grid; place-items: center; width: 44px; height: 48px; color: var(--mi-mint); }
.mappi-intelligence-dialog .mi-mark svg { width: 30px; height: 30px; }
.mappi-intelligence-dialog h2 { margin: 0; font-size: 1.4375rem; line-height: 1.2; color: #f5fafc; }
.mappi-intelligence-dialog .mi-header p { margin: 4px 0 0; font-size: 0.75rem; color: #c7dce6; }
.mappi-intelligence-dialog h3 { margin: 22px 0 10px; font-size: 1.4375rem; line-height: 1.25; color: var(--mi-navy); letter-spacing: -.025em; }
.mappi-intelligence-dialog h4 { margin: 20px 0 10px; color: var(--mi-navy); font-size: 1rem; }
.mappi-intelligence-dialog p { color: var(--mi-muted); font-size: 0.875rem; line-height: 1.55; overflow-wrap: anywhere; }
.mappi-intelligence-dialog button { font-family: inherit; min-height: 44px; cursor: pointer; touch-action: manipulation; line-height: 1.3; font-size: 0.8125rem; border: 1px solid var(--mi-line); border-radius: 13px; color: var(--mi-navy); background: #fff; box-shadow: none; transform: none; margin: 0; }
.mappi-intelligence-dialog button:focus-visible, .mappi-intelligence-dialog summary:focus-visible, .mappi-intelligence-dialog input:focus-visible, .mappi-intelligence-dialog textarea:focus-visible, .mappi-intelligence-entry:focus-visible { outline: 3px solid #287e9a; outline-offset: 3px; }
.mappi-intelligence-dialog .mi-close { width: 44px; flex: 0 0 44px; padding: 0; font-size: 1.625rem; border-radius: 50%; background: #14374e; border-color: #45667a; color: #f5fafc; }
.mappi-intelligence-dialog .mi-tabs { display: flex; flex-shrink: 0; gap: 4px; padding: 4px; margin: 18px 20px 20px; background: #e6eff3; border-radius: 16px; }
.mappi-intelligence-dialog .mi-tabs button { flex: 1; min-width: 0; border: 0; background: transparent; transition: none; font-weight: 650; }
.mappi-intelligence-dialog .mi-tabs [aria-selected="true"] { background: var(--mi-mint); color: var(--mi-navy); font-weight: 750; }
.mappi-intelligence-dialog .mi-scroll { overflow-y: auto; overflow-anchor: none; overscroll-behavior: contain; min-height: 0; flex: 1; padding: 0 20px 22px; scrollbar-width: thin; scroll-behavior: auto; }
.mappi-intelligence-dialog .mi-area-label, .mappi-intelligence-dialog .mi-eyebrow { font-size: 0.625rem; letter-spacing: .12em; font-weight: 750; color: var(--mi-muted); }
.mappi-intelligence-dialog .mi-area-label { margin: 0 0 14px; }
.mappi-intelligence-dialog .mi-question-label { display: block; font-size: 1.5625rem; line-height: 1.2; font-weight: 750; letter-spacing: -.025em; color: var(--mi-navy); }
.mappi-intelligence-dialog .mi-composer-hint { margin: 10px 0 18px; font-size: 0.8125rem; }
.mappi-intelligence-dialog .mi-search-target { display: flex; gap: 6px; padding: 4px; margin: 0 0 14px; border-radius: 16px; background: #e6eff3; }
.mappi-intelligence-dialog .mi-search-target button { flex: 1; min-width: 0; padding: 9px; border: 0; background: transparent; }
.mappi-intelligence-dialog .mi-search-target [aria-pressed="true"] { background: #fff; font-weight: 750; box-shadow: 0 2px 8px #00243f0a; }
.mappi-intelligence-dialog .mi-memory-privacy { font-size: .75rem; margin: 0 0 14px; }
.mappi-intelligence-dialog .mi-memory-how :is(summary, p) { font-size: .75rem; }
.mappi-intelligence-dialog .mi-refinements { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.mappi-intelligence-dialog .mi-refinements button { padding: 10px 14px; border-radius: 24px; }
.mappi-intelligence-dialog .mi-memory-snippet { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.mappi-intelligence-dialog[data-search-target="memories"] :is(.mi-ask-map, .mi-guide-slot) { display: none; }
.mappi-intelligence-dialog .mi-area-control { margin: 0 0 14px; border: 0; }
.mappi-intelligence-dialog .mi-area-control summary { width: fit-content; max-width: 100%; min-height: 44px; padding: 9px 12px; gap: 14px; border: 1px solid var(--mi-line); border-radius: 24px; background: #e8f4f1; font-size: .75rem; }
.mappi-intelligence-dialog .mi-area-control summary::after { content: none; }
.mappi-intelligence-dialog #miAreaSummary { min-width: 0; overflow-wrap: anywhere; }
.mappi-intelligence-dialog .mi-area-change { font-weight: 500; color: var(--mi-muted); }
.mappi-intelligence-dialog .mi-area-control[open] .mi-search-label { margin-top: 12px; }
.mappi-intelligence-dialog .mi-guide-slot:empty { display: none; }
.mappi-intelligence-dialog .mi-guide-slot { margin-top: 16px; }
.mappi-intelligence-dialog[data-answered="true"] .mi-compose { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--mi-line); }
.mappi-intelligence-dialog[data-answered="true"] .mi-compose .mi-prompts,
.mappi-intelligence-dialog[data-answered="true"] .mi-compose .mi-prompt-label,
.mappi-intelligence-dialog[data-answered="true"] .mi-compose .mi-ask-map,
.mappi-intelligence-dialog[data-answered="true"] .mi-compose .mi-guide-slot { display: none; }
.mappi-intelligence-dialog[data-answered="true"] .mi-question-label { font-size: 1.125rem; }
.mappi-intelligence-dialog[data-answered="true"] textarea { height: 80px; min-height: 80px; }
.mappi-intelligence-dialog #miAskArea { width: 100%; min-width: 0; height: 46px; margin: 0 0 14px; padding: 10px 12px; font: inherit; font-size: 1rem; border: 1px solid #bbcfdc; border-radius: 12px; background: #fff; color: var(--mi-navy); }
.mappi-intelligence-dialog .mi-search-label span { color: var(--mi-muted); font-size: 0.625rem; }
.mappi-intelligence-dialog .mi-ai-consent { display: flex; align-items: flex-start; gap: 10px; margin-top: 16px; font-size: 0.75rem; line-height: 1.5; }
.mappi-intelligence-dialog .mi-ai-consent input { width: 20px; height: 20px; flex-shrink: 0; accent-color: var(--mi-navy); }
.mappi-intelligence-dialog .mi-ai-consent small { display: block; margin-top: 4px; font-size: 0.6875rem; color: var(--mi-muted); }
.mappi-intelligence-dialog .mi-match-caveat { padding: 10px 12px; border-left: 3px solid #75d9c3; background: #edf4f7; font-size: 0.75rem; color: var(--mi-navy); border-radius: 0 8px 8px 0; }
.mappi-intelligence-dialog .mi-area-choice { text-align: left; padding: 12px; }
.mappi-intelligence-dialog .mi-composer-box { padding: 6px; background: #fff; border: 1px solid #bbcfdc; border-radius: 20px; box-shadow: 0 5px 18px #00243f08; }
.mappi-intelligence-dialog .mi-composer-box:focus-within { border-color: #287e9a; }
.mappi-intelligence-dialog textarea { width: 100%; display: block; resize: none; height: 108px; min-height: 108px; padding: 12px; font-family: inherit; font-size: 1rem; line-height: 1.5; color: var(--mi-navy); background: transparent; border: 0; border-radius: 14px; }
.mappi-intelligence-dialog textarea::placeholder { color: #617988; opacity: 1; }
.mappi-intelligence-dialog .mi-ask-actions { display: flex; gap: 8px; padding: 4px; }
.mappi-intelligence-dialog .mi-ask-actions button { padding: 11px 12px; font-size: 0.8125rem; }
.mappi-intelligence-dialog #miVoiceButton { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 108px; border-color: transparent; background: #edf4f7; }
.mappi-intelligence-dialog #miVoiceButton svg { width: 17px; height: 22px; flex: 0 0 17px; }
.mappi-intelligence-dialog #miVoiceButton[aria-pressed="true"] { background: var(--mi-mint); color: var(--mi-navy); border-color: #287e9a; }
.mappi-intelligence-dialog[data-listening="true"] .mi-composer-box { border-color: #287e9a; }
.mappi-intelligence-dialog #miVoiceStatus { font-size: 0.75rem; margin: 8px 0 0; color: var(--mi-navy); }
.mappi-intelligence-dialog #miVoiceStatus:empty { display: none; }
.mappi-intelligence-dialog .mi-footnote { display: block; margin: 12px 0 0; color: var(--mi-muted); font-size: 0.6875rem; line-height: 1.5; }
.mappi-intelligence-dialog .mi-prompt-label { font-size: 0.75rem; margin: 24px 0 10px; }
.mappi-intelligence-dialog .mi-prompts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.mappi-intelligence-dialog .mi-prompts button { padding: 9px 12px; font-size: 0.75rem; border-radius: 24px; }
.mappi-intelligence-dialog .mi-ask-map { width: 100%; text-align: left; padding: 12px 0; border: 0; background: transparent; font-weight: 700; }
.mappi-intelligence-dialog .mi-ask-map span { float: right; }
.mappi-intelligence-dialog details { border-top: 1px solid var(--mi-line); }
.mappi-intelligence-dialog summary { display: flex; justify-content: space-between; align-items: center; gap: 8px; cursor: pointer; min-height: 52px; font-weight: 700; font-size: 0.875rem; list-style: none; }
.mappi-intelligence-dialog summary::-webkit-details-marker { display: none; }
.mappi-intelligence-dialog summary::after { content: "+"; font-size: 1.25rem; color: var(--mi-muted); }
.mappi-intelligence-dialog details[open] summary::after { content: "−"; }
.mappi-intelligence-dialog .mi-how summary { font-size: 0.75rem; color: var(--mi-muted); font-weight: 500; }
.mappi-intelligence-dialog .mi-how p { font-size: 0.75rem; margin: 0 0 12px; }
.mappi-intelligence-dialog .mi-intro { font-size: 1.125rem; margin: 0 0 20px; color: var(--mi-navy); font-weight: 650; }
.mappi-intelligence-dialog .mi-search-label { display: block; font-size: 0.75rem; color: var(--mi-muted); margin: 0 0 8px; }
.mappi-intelligence-dialog #miQuery { display: block; width: 100%; min-width: 0; height: 48px; background: #fff; color: var(--mi-navy); border: 1px solid #bbcfdc; border-radius: 13px; padding: 10px 12px; font: inherit; font-size: 1rem; }
.mappi-intelligence-dialog #miQuery::placeholder { color: #617988; }
.mappi-intelligence-dialog .mi-picks { display: flex; align-items: center; gap: 12px; padding: 16px 0; min-height: 64px; cursor: pointer; font-size: 0.875rem; color: var(--mi-navy); }
.mappi-intelligence-dialog .mi-picks input { accent-color: #00243f; width: 20px; height: 20px; margin: 0; }
.mappi-intelligence-dialog .mi-picks small { display: block; margin-top: 4px; font-size: 0.75rem; color: var(--mi-muted); }
.mappi-intelligence-dialog .mi-scope { font-size: 0.75rem; margin: 0 0 16px; }
.mappi-intelligence-dialog .mi-group-count { margin-left: auto; font-size: 0.6875rem; font-weight: 500; color: var(--mi-muted); }
.mappi-intelligence-dialog .mi-choices { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 18px; }
.mappi-intelligence-dialog .mi-choices button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 12px; }
.mappi-intelligence-dialog .mi-choices small { font-size: 0.625rem; opacity: .85; }
.mappi-intelligence-dialog .mi-choices [aria-pressed="true"] { border-color: #75d9c3; background: var(--mi-mint); color: var(--mi-navy); font-weight: 750; }
.mappi-intelligence-dialog .mi-primary { background: var(--mi-navy); color: #f5fafc; border-color: var(--mi-navy); font-weight: 750; padding: 12px 16px; flex: 1; }
.mappi-intelligence-dialog button:disabled { opacity: .5; cursor: default; }
.mappi-intelligence-dialog .mi-footer { padding: 14px 20px 18px; background: #fff; border-top: 1px solid var(--mi-line); flex-shrink: 0; }
.mappi-intelligence-dialog .mi-result-status { font-size: 0.75rem; margin: 0 0 12px; }
.mappi-intelligence-dialog .mi-footer-actions { display: flex; gap: 10px; }
.mappi-intelligence-dialog .mi-footer-actions button { padding: 10px 16px; }
.mappi-intelligence-dialog .mi-request-summary { margin: 8px 0 0; color: var(--mi-navy); font-size: 1.0625rem; font-weight: 600; }
.mappi-intelligence-dialog .mi-edit-question { background: transparent; border: 0; padding: 8px 0; text-decoration: underline; text-underline-offset: 3px; color: var(--mi-muted); }
.mappi-intelligence-dialog .mi-recommendation { margin-top: 14px; padding: 18px; background: #fff; border: 1px solid var(--mi-line); border-radius: 20px; box-shadow: 0 3px 12px #00243f06; }
.mappi-intelligence-dialog .mi-recommendation .mi-eyebrow { display: inline-block; background: #e4f6f0; color: var(--mi-navy); padding: 5px 8px; border-radius: 6px; font-size: 0.5625rem; }
.mappi-intelligence-dialog .mi-recommendation h4 { color: var(--mi-navy); margin: 10px 0 6px; font-size: 1.25rem; overflow-wrap: anywhere; }
.mappi-intelligence-dialog .mi-recommendation p { margin: 8px 0; font-size: 0.8125rem; }
.mappi-intelligence-dialog .mi-recommendation .mi-match-reason { color: var(--mi-navy); }
.mappi-intelligence-dialog .mi-recommendation button { width: 100%; margin-top: 12px; }
.mappi-intelligence-dialog .mi-answer-message { font-size: 0.8125rem; margin: 0 0 12px; }
.mappi-intelligence-dialog .mi-answer-detail { padding: 14px; background: #e6eff3; color: var(--mi-navy); border-radius: 14px; }
.mappi-intelligence-dialog .mi-understood { color: var(--mi-muted); font-size: 0.75rem; }
.mappi-intelligence-dialog .mi-retry { width: 100%; margin-top: 12px; }
.mappi-intelligence-dialog .mi-follow-up { display: block; width: 100%; margin-top: 10px; text-align: left; }
.mappi-intelligence-dialog .mi-name-correction { padding: 12px; overflow-wrap: anywhere; }
.mappi-intelligence-dialog .mi-ask-again { width: 100%; margin-top: 16px; font-weight: 650; }
.mappi-intelligence-dialog .mi-answer:focus { outline: none; }
.mappi-intelligence-dialog .mi-answer > h3 { margin-top: 0; }
.mappi-intelligence-dialog .mi-answer > h3:focus { outline: none; }
.mappi-intelligence-dialog .mi-request-controls { display: flex; align-items: flex-start; gap: 12px; margin-top: 8px; }
.mappi-intelligence-dialog .mi-request-context { flex: 1; min-width: 0; border-top: 0; }
.mappi-intelligence-dialog .mi-request-controls .mi-edit-question { flex: 0 0 auto; }
.mappi-intelligence-dialog .mi-request-context summary { font-size: .8125rem; min-height: 44px; }
.mappi-intelligence-dialog .mi-pick-follow-up { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 20px; }
.mappi-intelligence-dialog .mi-pick-follow-up button { flex: 1 1 130px; padding: 12px; }
.mappi-intelligence-dialog .mi-pick-follow-up p { flex: 0 0 100%; margin: 0; }
.mappi-intelligence-dialog .mi-announcement { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.mappi-intelligence-dialog :is(#miAskArea, #miQuery) { height: auto; min-height: 48px; }
.mappi-intelligence-dialog .mi-ask-actions { flex-wrap: wrap; }
.mappi-intelligence-dialog .mi-ask-actions button { flex: 1 1 120px; }
.mappi-intelligence-dialog .mi-place-info { margin: 0; }
.mappi-intelligence-dialog .mi-place-info > div { border-bottom: 1px solid var(--mi-line); padding: 12px 0; }
.mappi-intelligence-dialog dt { color: var(--mi-muted); font-size: 0.6875rem; margin-bottom: 5px; }
.mappi-intelligence-dialog dd { margin: 0; font-size: 0.875rem; line-height: 1.55; color: var(--mi-navy); overflow-wrap: anywhere; }
.mappi-intelligence-dialog dd.mi-missing { color: var(--mi-muted); }
.mappi-intelligence-dialog .mi-place-pick { display: inline-block; padding: 8px 12px; background: #e4f6f0; font-size: 0.75rem; border-radius: 9px; }
.mappi-intelligence-dialog .mi-insider-tip { margin: 18px 0; padding: 16px; border-left: 3px solid var(--mi-mint); background: #fff; border-radius: 0 14px 14px 0; }
.mappi-intelligence-dialog .mi-insider-tip h4, .mappi-intelligence-dialog .mi-insider-tip p { margin: 0; }
.mappi-intelligence-dialog .mi-insider-tip p { margin-top: 8px; }
.mappi-intelligence-dialog .mi-all-details { margin-top: 20px; }
@media (max-width: 720px), (hover: none) and (pointer: coarse) {
  html body main.app-shell section.map-stage.map-focus .mappi-intelligence-entry { position: fixed; }
}
@media (max-width: 480px) {
  html body .mappi-intelligence-dialog {
    --mi-frame-gap: 12px;
    --mi-frame-height: calc(var(--mi-safe-height) - 2 * var(--mi-frame-gap));
    inset-inline: calc(var(--mi-safe-left) + 10px) calc(var(--mi-safe-right) + 10px);
    width: auto; border-radius: 22px;
  }
  .mappi-intelligence-dialog .mi-header { padding: 16px; }
  .mappi-intelligence-dialog h2 { font-size: 1.3125rem; }
  .mappi-intelligence-dialog .mi-tabs { margin: 14px 16px 18px; }
  .mappi-intelligence-dialog .mi-scroll, .mappi-intelligence-dialog .mi-footer { padding-left: 16px; padding-right: 16px; }
  .mappi-intelligence-dialog .mi-question-label { font-size: 1.4375rem; }
}
@media (max-width: 350px) {
  .mappi-intelligence-dialog .mi-header { gap: 6px; }
  .mappi-intelligence-dialog .mi-mark { width: 26px; }
  .mappi-intelligence-dialog .mi-ask-actions { gap: 4px; padding: 0; }
  .mappi-intelligence-dialog .mi-ask-actions button { padding: 10px 8px; font-size: 0.75rem; }
  .mappi-intelligence-dialog #miVoiceButton { min-width: 100px; }
}
/* Keep the actual question and search action near the top on compact phones.
   Supporting copy remains in the scroll flow below the primary task. */
@media (orientation: portrait) and (max-width: 350px) and (max-height: 650px) {
  .mappi-intelligence-dialog .mi-header { padding: 10px 14px; }
  .mappi-intelligence-dialog .mi-header p,
  .mappi-intelligence-dialog .mi-composer-hint { display: none; }
  .mappi-intelligence-dialog .mi-tabs { margin: 8px 14px 10px; }
  .mappi-intelligence-dialog .mi-question-label { font-size: 1.2rem; }
  .mappi-intelligence-dialog .mi-search-target { margin-bottom: 8px; }
  .mappi-intelligence-dialog .mi-area-control { margin-bottom: 8px; }
  .mappi-intelligence-dialog textarea { height: 76px; min-height: 76px; }
}
/* A landscape phone has much less vertical room, so make the free Ask composer
   usable before the secondary area and explanation controls. Touch targets
   remain 44px; no functionality is removed from the scrollable dialog. */
@media (orientation: landscape) and (max-height: 500px) {
  html body .mappi-intelligence-dialog {
    --mi-frame-gap: 12px;
    left: calc(var(--mi-safe-left) + (100vw - var(--mi-safe-left) - var(--mi-safe-right)) / 2);
    right: auto;
    width: min(680px, calc(100vw - var(--mi-safe-left) - var(--mi-safe-right) - 24px));
    transform: translateX(-50%);
  }
  .mappi-intelligence-dialog .mi-header { gap: 8px; padding: 8px 14px; }
  .mappi-intelligence-dialog .mi-header p { display: none; }
  .mappi-intelligence-dialog .mi-mark { width: 32px; height: 44px; }
  .mappi-intelligence-dialog .mi-mark svg { width: 25px; height: 25px; }
  .mappi-intelligence-dialog h2 { font-size: 1.125rem; }
  .mappi-intelligence-dialog .mi-tabs { margin: 6px 14px; padding: 3px; }
  .mappi-intelligence-dialog .mi-scroll { padding: 0 14px 12px; }
  .mappi-intelligence-dialog #miAskForm { display: flex; flex-direction: column; }
  .mappi-intelligence-dialog .mi-question-label {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
  .mappi-intelligence-dialog .mi-composer-hint { display: none; }
  .mappi-intelligence-dialog .mi-search-target { order: 1; margin: 0 0 6px; }
  .mappi-intelligence-dialog .mi-memory-privacy { order: 2; margin: 0 0 6px; }
  .mappi-intelligence-dialog .mi-composer-box { order: 3; padding: 4px; }
  .mappi-intelligence-dialog textarea { height: 58px; min-height: 58px; padding: 8px 10px; }
  .mappi-intelligence-dialog .mi-ask-actions { padding: 2px; }
  .mappi-intelligence-dialog .mi-area-control { order: 4; margin: 8px 0 0; }
  .mappi-intelligence-dialog #miVoiceStatus { order: 5; }
  .mappi-intelligence-dialog #miVoicePrivacy { order: 6; }
  .mappi-intelligence-dialog .mi-ai-consent { order: 7; }
  .mappi-intelligence-dialog .mi-intro { display: none; }
  .mappi-intelligence-dialog .mi-footer { padding: 6px 14px; }
  .mappi-intelligence-dialog .mi-result-status { margin: 0 0 4px; font-size: .6875rem; line-height: 1.25; }
  .mappi-intelligence-dialog .mi-footer .mi-footnote { display: none; }
}
@media (orientation: landscape) and (max-height: 360px) {
  .mappi-intelligence-dialog .mi-header { padding: 4px 14px; }
  .mappi-intelligence-dialog .mi-tabs { margin: 4px 14px; }
  .mappi-intelligence-dialog .mi-search-target { margin-bottom: 4px; }
  .mappi-intelligence-dialog textarea { height: 50px; min-height: 50px; }
}
/* A keyboard already consumes the bottom safe area. Fill the remaining visual
   viewport, with one scroll surface so the tabs/introduction cannot trap the
   composer below a short fixed body. Keep Close visible while typing. */
html body.keyboard-open .mappi-intelligence-dialog {
  --mi-keyboard-top: max(8px, calc(var(--mi-safe-top) - var(--mymappi-visual-offset-top, 0px)));
  top: calc(var(--mymappi-visual-offset-top, 0px) + var(--mi-keyboard-top));
  height: calc(var(--mi-visible-height) - var(--mi-keyboard-top) - 8px);
  max-height: calc(var(--mi-visible-height) - var(--mi-keyboard-top) - 8px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-behavior: auto;
}
html body.keyboard-open .mappi-intelligence-dialog .mi-header {
  position: sticky; top: 0; z-index: 2; padding: 8px 16px;
}
html body.keyboard-open .mappi-intelligence-dialog .mi-header p,
html body.keyboard-open .mappi-intelligence-dialog .mi-area-label,
html body.keyboard-open .mappi-intelligence-dialog .mi-composer-hint { display: none; }
html body.keyboard-open .mappi-intelligence-dialog .mi-question-label {
  /* Retain the textarea's accessible name without repeating a large heading. */
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
html body.keyboard-open .mappi-intelligence-dialog .mi-tabs { margin: 8px 16px; }
html body.keyboard-open .mappi-intelligence-dialog .mi-scroll {
  flex: 0 0 auto; overflow: visible; padding-bottom: 12px;
}
html body.keyboard-open .mappi-intelligence-dialog textarea {
  height: max(64px, 3em); min-height: max(64px, 3em); padding: 8px 12px;
}
html body.keyboard-open .mappi-intelligence-dialog #miAskArea { margin-bottom: 10px; }
/* The expanded discovery drawer owns this corner on compact screens. Its close
   button must never sit underneath the otherwise persistent Ask entry. */
html body main.app-shell section.map-stage.our-map-discovery-open #mappiIntelligenceButton {
  visibility: hidden !important;
  pointer-events: none !important;
}
