/* Dedicated mobile.html map surface. Shared Web styles and geography stay intact. */
body.client-ui #view.map-full:has(.mm-page) { padding-left: 0 !important; padding-right: 0 !important; padding-top: env(safe-area-inset-top, 0px) !important; }
body.client-ui .mm-page { color: #1e3035; margin: 0 auto; width: 100%; max-width: 1200px; padding: 20px; box-sizing: border-box; }
body.client-ui .mm-page *, body.client-ui .mm-page *::before, body.client-ui .mm-page *::after { box-sizing: border-box; }
body.client-ui .mm-page [hidden] { display: none !important; }
body.client-ui .mm-page button, body.client-ui .mm-page input, body.client-ui .mm-page select { font: inherit; }
body.client-ui .mm-page button { cursor: pointer; min-height: 44px; border: 1px solid var(--client-line); color: #1e3035; background: #fff; border-radius: 12px; }
body.client-ui .mm-page button:disabled { opacity: .55; cursor: default; }
body.client-ui .mm-page button:focus-visible, body.client-ui .mm-page input:focus-visible, body.client-ui .mm-page select:focus-visible { outline: 3px solid var(--client-teal); outline-offset: 3px; }
body.client-ui .mm-page button:active:not(:disabled) { background: #edf6f5; }
body.client-ui .mm-page svg { display: block; width: 22px; height: 22px; flex-shrink: 0; }
body.client-ui .mm-heading { margin-bottom: 20px; }
body.client-ui .mm-heading h1, body.client-ui .mm-detail-heading h1 { font-size: 24px; font-weight: 700; margin: 0; line-height: 1.4; }
body.client-ui .mm-heading p { color: #66777d; margin: 6px 0 0; font-size: 14px; }
body.client-ui .mm-tools { display: grid; gap: 12px; margin-bottom: 16px; }
body.client-ui .mm-search { display: flex; align-items: center; padding: 0 14px; min-height: 50px; background: #fff; border: 1px solid var(--client-line); border-radius: 14px; gap: 10px; color: #66777d; }
body.client-ui .mm-search input { border: 0; outline: none; background: transparent; color: #1e3035; font-size: 16px; width: 100%; min-width: 0; height: 48px; padding: 0; appearance: none; }
body.client-ui .mm-search input::-webkit-search-cancel-button { display: none; }
body.client-ui .mm-search button { border: 0; min-width: 44px; margin-right: -10px; font-size: 24px; }
body.client-ui .mm-filters { display: flex; gap: 8px; overflow: auto; padding: 2px 0 4px; scrollbar-width: none; }
body.client-ui .mm-filters button { white-space: nowrap; padding: 0 14px; font-size: 14px; flex-shrink: 0; border-radius: 24px; }
body.client-ui .mm-filters button[aria-pressed="true"] { color: #126870; border-color: #c3e1df; background: #edf4ff; font-weight: 600; }
body.client-ui .mm-layout { display: grid; gap: 20px; align-items: start; min-width: 0; }
body.client-ui .mm-map-card { border: 1px solid var(--client-line); border-radius: 16px; overflow: hidden; background: #fff; min-width: 0; }
body.client-ui .mm-map-label { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 54px; padding: 4px 12px; }
body.client-ui .mm-map-label > span { display: flex; gap: 6px; align-items: center; color: var(--client-teal); }
body.client-ui .mm-map-label b { font-size: 14px; }
body.client-ui .mm-map-label button { border: 0; padding: 0 8px; font-size: 13px; color: var(--client-teal); }
body.client-ui .mm-map { position: relative; height: clamp(260px, calc(100dvh - var(--client-tab-height, 64px) - 400px), 350px); min-height: 260px; width: 100%; isolation: isolate; overflow: hidden; background: #f1f5f2; }
body.client-ui .mm-map-help { font-size: 12px; color: #66777d; padding: 10px 14px; margin: 0; background: #fff; }
body.client-ui .mm-directory { min-width: 0; }
body.client-ui .mm-directory-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 12px; }
body.client-ui .mm-directory-heading h2 { font-size: 19px; line-height: 1.4; margin: 0; }
body.client-ui .mm-directory-heading p { font-size: 12px; line-height: 1.5; color: #66777d; margin: 4px 0 0; }
body.client-ui .mm-province-select select { min-height: 44px; max-width: 108px; min-width: 76px; border: 1px solid var(--client-line); border-radius: 12px; background: #fff; color: var(--client-teal); padding: 0 8px; font-size: 14px; }
body.client-ui .mm-province-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
body.client-ui .mm-province-grid button { text-align: left; padding: 14px; min-height: 82px; display: grid; grid-template-columns: 1fr 18px; gap: 5px; border-radius: 16px; }
body.client-ui .mm-province-grid strong { font-size: 16px; }
body.client-ui .mm-province-grid small { color: #66777d; grid-row: 2; font-size: 12px; }
body.client-ui .mm-province-grid svg { grid-column: 2; grid-row: 1 / 3; align-self: center; width: 18px; color: #849498; }
body.client-ui .mm-results { display: grid; gap: 12px; }
body.client-ui .mm-spot { width: 100%; display: flex; align-items: center; text-align: left; gap: 12px; padding: 12px; border-radius: 16px !important; }
body.client-ui .mm-spot > img, body.client-ui .mm-spot-placeholder { width: 70px; height: 78px; border-radius: 10px; flex-shrink: 0; object-fit: cover; background: #eaf2ef; }
body.client-ui .mm-spot-placeholder { display: grid; place-items: center; color: var(--client-teal); }
body.client-ui .mm-spot-copy { display: grid; gap: 5px; min-width: 0; flex: 1; }
body.client-ui .mm-spot-copy strong { font-size: 16px; line-height: 1.45; overflow-wrap: anywhere; }
body.client-ui .mm-spot-copy small { font-size: 12px; color: #66777d; }
body.client-ui .mm-spot-copy > span { font-size: 12px; color: var(--client-teal); }
body.client-ui .mm-spot > svg { width: 16px; color: #849498; }
body.client-ui .mm-empty, body.client-ui .mm-status { text-align: center; padding: 32px 18px; color: #66777d; font-size: 14px; }
body.client-ui .mm-empty { border-radius: 16px; background: #fff; }
body.client-ui .mm-empty b, body.client-ui .mm-status b { color: #1e3035; display: block; }
body.client-ui .mm-empty p, body.client-ui .mm-status p { margin: 8px 0 16px; line-height: 1.6; }
body.client-ui .mm-empty button, body.client-ui .mm-status button { padding: 0 20px; color: var(--client-teal); }
body.client-ui .mm-detail-heading { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
body.client-ui .mm-detail-heading button { display: grid; place-items: center; width: 44px; flex-shrink: 0; background: transparent; border: 0; margin-left: -8px; }
body.client-ui .mm-detail-heading h1 { font-size: 20px; }
body.client-ui .mm-detail-layout { display: grid; gap: 20px; align-items: start; }
body.client-ui .mm-detail-intro, body.client-ui .mm-practice-card { min-width: 0; }
body.client-ui .mm-cover { border-radius: 16px; background: #eaf2ef; overflow: hidden; aspect-ratio: 16 / 10; }
body.client-ui .mm-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.client-ui .mm-cover.mm-image-missing { display: none; }
body.client-ui .mm-breadcrumb { font-size: 13px; color: #66777d; margin: 20px 0 8px; }
body.client-ui .mm-detail-intro > h2 { font-size: 26px; line-height: 1.45; letter-spacing: -.5px; margin: 0 0 10px; overflow-wrap: anywhere; }
body.client-ui .mm-summary { color: #66777d; line-height: 1.65; font-size: 15px; margin: 0 0 16px; }
body.client-ui .mm-detail-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 20px; }
body.client-ui .mm-detail-meta span { font-size: 12px; padding: 6px 10px; background: #edf4ff; color: #126870; border-radius: 8px; }
body.client-ui .mm-learning-card, body.client-ui .mm-practice-card { border: 1px solid var(--client-line); background: #fff; border-radius: 16px; padding: 16px; }
body.client-ui .mm-learning-card h3, body.client-ui .mm-practice-title h3 { font-size: 18px; margin: 0; }
body.client-ui .mm-learning-card > p { margin: 8px 0 20px; color: #66777d; font-size: 14px; line-height: 1.7; }
body.client-ui .mm-resource { width: 100%; display: flex; align-items: center; gap: 12px; text-align: left; padding: 12px; }
body.client-ui .mm-resource > svg { color: var(--client-teal); }
body.client-ui .mm-resource > span { display: grid; gap: 5px; flex: 1; }
body.client-ui .mm-resource b { font-size: 15px; }
body.client-ui .mm-resource small { color: #66777d; font-size: 12px; }
body.client-ui .mm-page .mm-primary { color: #fff; background: var(--client-teal); width: 100%; min-height: 50px; border: 0; margin-top: 16px; font-weight: 600; }
body.client-ui .mm-page .mm-primary:active { background: #116c74; }
body.client-ui .mm-practice-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; gap: 10px; }
body.client-ui .mm-practice-title button { border: 0; color: var(--client-teal); font-size: 13px; flex-shrink: 0; }
body.client-ui .mm-page .sd-inline-quiz { background: none; padding: 0; border: 0; }
body.client-ui .mm-page .spot-inline-head { display: flex; gap: 12px; align-items: center; color: #66777d; font-size: 12px; }
body.client-ui .mm-page .spot-inline-head i { flex: 1; height: 4px; border-radius: 3px; background: linear-gradient(to right,var(--client-teal) var(--spot-progress),var(--client-line) var(--spot-progress)); }
body.client-ui .mm-page .spot-inline-stem { font-size: 17px; line-height: 1.8; color: #1e3035; font-weight: 600; margin: 20px 0; }
body.client-ui .mm-page .spot-inline-options { display: grid; gap: 12px; }
body.client-ui .mm-page .spot-inline-options button { display: flex; align-items: flex-start; gap: 12px; text-align: left; min-height: 52px; padding: 14px 12px; font-size: 16px; line-height: 1.65; white-space: normal; }
body.client-ui .mm-page .spot-inline-options button i { font-size: 13px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #f5f7f8; font-style: normal; flex-shrink: 0; }
body.client-ui .mm-page .spot-inline-options button.selected { background: #edf4ff; border-color: var(--client-teal); }
body.client-ui .mm-page .spot-inline-options button.selected i { background: var(--client-teal); color: #fff; }
body.client-ui .mm-page .spot-inline-options button.correct, body.client-ui .mm-page .spot-inline-options button.ok { background: #e9f5ed; border-color: #5b9a75; }
body.client-ui .mm-page .spot-inline-options button.wrong, body.client-ui .mm-page .spot-inline-options button.no { background: #fff0ec; border-color: #c87563; }
body.client-ui .mm-page .spot-inline-result { font-size: 15px; line-height: 1.75; }
body.client-ui .mm-page .spot-inline-result > div { margin-top: 16px; border-radius: 12px; padding: 14px; background: #f5f7f8; }
body.client-ui .mm-page .spot-inline-result b, body.client-ui .mm-page .spot-inline-result span { display: block; }
body.client-ui .mm-page .spot-inline-next, body.client-ui .mm-page .spot-inline-submit, body.client-ui .mm-page .spot-practice-cta { background: var(--client-teal); color: #fff; width: 100%; padding: 10px 16px; border: 0; margin-top: 12px; }
body.client-ui .mm-page .spot-inline-submit { background: var(--client-teal) !important; color: #fff !important; justify-content: center; }
body.client-ui .mm-page .spot-inline-multi-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin-top: 16px; font-size: 13px; color: #66777d; }
body.client-ui .mm-page .spot-inline-multi-actions .spot-inline-submit { margin-top: 0; }
body.client-ui .mm-page .spot-inline-loading, body.client-ui .mm-page .spot-inline-empty, body.client-ui .mm-page .spot-inline-summary { padding: 20px 0; font-size: 15px; line-height: 1.7; color: #66777d; }
body.client-ui .mm-page .spot-inline-summary { display: grid; gap: 12px; text-align: center; }
body.client-ui .mm-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (min-width: 800px) {
  body.client-ui .mm-page { padding: 24px 28px; }
  body.client-ui .mm-tools { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  body.client-ui .mm-layout { grid-template-columns: minmax(0,1.35fr) minmax(300px,1fr); gap: 24px; }
  body.client-ui .mm-map-card { position: sticky; top: 20px; }
  body.client-ui .mm-map { height: clamp(300px, calc(100dvh - var(--client-tab-height, 64px) - 280px), 600px); min-height: 300px; }
  body.client-ui .mm-directory .mm-results { max-height: calc(100dvh - var(--client-tab-height, 64px) - 240px); overflow-y: auto; overscroll-behavior: contain; padding-bottom: 4px; }
  body.client-ui .mm-detail-layout { grid-template-columns: minmax(0,1fr) minmax(320px,1.1fr); gap: 24px; }
  body.client-ui .mm-detail-intro { max-width: 540px; }
  body.client-ui .mm-practice-card { position: sticky; top: 20px; }
}
@media (prefers-reduced-motion: reduce) { body.client-ui .mm-page { scroll-behavior: auto; } }

/* Approved mobile / Pad composition: open pale map and a white directory sheet. */
body.client-ui .mm-page { padding:16px 20px 0; max-width:1440px; animation:none !important; transform:none !important; filter:none !important; }
body.client-ui .mm-heading { margin-bottom:14px; }
body.client-ui .mm-tools { gap:12px; margin-bottom:0; }
body.client-ui .mm-search { border-radius:22px; border-color:#dce3e9; min-height:48px; }
body.client-ui .mm-filters { gap:8px; }
body.client-ui .mm-filters button { border-radius:12px; padding:0 12px; font-size:13px; min-height:40px; }
body.client-ui .mm-filters button[aria-pressed="true"] { background:#087f8a; color:white; border-color:#087f8a; }
body.client-ui .mm-layout { display:grid; gap:0; }
body.client-ui .mm-map-card { position:relative; border:0; border-radius:0; margin:0 -20px; background:#f5f7f9; overflow:hidden; }
body.client-ui .mm-map { height:clamp(250px,calc(100dvh - 535px),480px); min-height:250px; background:#f5f7f9; }
body.client-ui .mm-canvas { width:100%; height:100%; display:block; touch-action:none; outline-offset:-4px; }
body.client-ui .mm-map-controls { position:absolute; right:16px; top:45%; display:grid; width:44px; border:1px solid var(--client-line); border-radius:12px; overflow:hidden; background:white; }
body.client-ui .mm-map-controls button { border:0; border-radius:0; height:44px; font-size:25px; color:#26404b; padding:0; }
body.client-ui .mm-map-controls button + button { border-top:1px solid #edf1f4; }
body.client-ui .mm-map-help { display:flex; align-items:center; gap:5px; position:absolute; left:16px; bottom:12px; border-radius:8px; padding:7px 9px; background:#ffffffed; color:#657681; font-size:11px; pointer-events:none; }
body.client-ui .mm-map-help svg { width:16px; height:16px; color:#087f8a; }
body.client-ui .mm-directory { margin:0 -20px; border:1px solid var(--client-line); border-bottom:0; border-radius:24px 24px 0 0; background:#fff; padding:0 20px 14px; min-width:0; }
body.client-ui .mm-page .mm-sheet-handle { border:0; min-height:44px; width:100%; display:grid; place-items:center; background:transparent; }
body.client-ui .mm-sheet-handle i { display:block; width:36px; height:4px; border-radius:4px; background:#cbd3d9; }
body.client-ui .mm-directory-heading { margin-bottom:10px; }
body.client-ui .mm-spot-preview { display:grid; gap:10px; margin:0 0 12px; padding:12px; border:1px solid #b9dede; border-radius:14px; background:#f4fbfb; }
body.client-ui .mm-spot-preview-copy { display:grid; gap:3px; min-width:0; }
body.client-ui .mm-spot-preview-copy strong { font-size:16px; overflow-wrap:anywhere; }
body.client-ui .mm-spot-preview-copy small, body.client-ui .mm-spot-preview-copy span { color:#66777d; font-size:12px; }
body.client-ui .mm-spot-preview-actions { display:grid; grid-template-columns:1fr auto; gap:8px; }
body.client-ui .mm-spot-preview-actions button { min-height:44px; padding:0 12px; }
body.client-ui .mm-spot-preview-actions .mm-primary { margin:0; min-height:44px; }
body.client-ui .mm-directory-heading h2 { font-size:20px; }
body.client-ui .mm-directory-heading p { font-size:11px; }
body.client-ui .mm-province-select select { border:0; max-width:96px; font-size:13px; }
body.client-ui .mm-results { gap:8px; }
body.client-ui .mm-spot { min-height:68px; padding:10px 12px; border-radius:10px !important; }
body.client-ui .mm-spot-placeholder { width:38px; height:40px; background:transparent; }
body.client-ui .mm-spot-placeholder svg { width:29px; height:29px; }
body.client-ui .mm-spot-copy { gap:3px; }
body.client-ui .mm-spot-copy strong { font-size:15px; }
body.client-ui .mm-spot-copy > span { display:none; }
body.client-ui .mm-browse { min-height:44px !important; margin-top:10px !important; border-radius:7px !important; font-size:15px; }
body.client-ui .mm-directory.is-expanded .mm-results { max-height:48dvh; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
body.client-ui .mm-more { color:#087f8a; border:0; }
body.client-ui .mm-detail { padding-bottom:94px; }
body.client-ui .mm-detail-heading { position:relative; margin-bottom:12px; justify-content:center; min-height:44px; }
body.client-ui .mm-detail-heading button { position:absolute; left:0; }
body.client-ui .mm-breadcrumb { margin:6px 0 14px; }
body.client-ui .mm-cover { margin-bottom:20px; aspect-ratio:1.8; }
body.client-ui .mm-detail-intro > h2 { font-size:24px; }
body.client-ui .mm-learning-card { padding:16px; border:0; box-shadow:0 2px 8px #14263806; }
body.client-ui .mm-learning-card .mm-resource { border:0; border-radius:0; padding:16px 0; min-height:66px; }
body.client-ui .mm-learning-card .mm-resource + .mm-resource { border-top:1px solid #edf1f4; }
body.client-ui .mm-resource-pane { margin-top:20px; border-radius:16px; background:#fff; padding:16px; }
body.client-ui .mm-resource-pane h3 { margin:0 0 16px; font-size:18px; }
body.client-ui .mm-resource-pane figure { margin:0 0 16px; }
body.client-ui .mm-resource-pane figure button { width:100%; padding:0; overflow:hidden; border:0; }
body.client-ui .mm-resource-pane img { display:block; width:100%; height:auto; }
body.client-ui .mm-resource-pane figcaption { font-size:12px; text-align:center; color:#66777d; margin-top:8px; }
body.client-ui .mm-detail-actions { position:fixed; z-index:40; bottom:var(--client-tab-height,64px); left:0; right:0; background:#fffffffa; border-top:1px solid var(--client-line); display:grid; grid-template-columns:1fr 1.5fr; gap:12px; padding:10px 20px; }
body.client-ui .mm-detail-actions button { border:1px solid #087f8a; color:#087f8a; border-radius:8px; min-height:46px; margin:0 !important; }
body.client-ui .mm-detail-actions .mm-primary { color:#fff; }
body.client-ui .mm-detail-actions [aria-pressed="true"] { background:#e5f3f3; }
body.client-ui .mm-practice-card { scroll-margin-top:18px; }
body.client-ui .mm-practice-card .spot-inline-options button { scroll-margin-bottom:150px; }
body.client-ui #spotModal .exam-map-gallery { padding:16px; color:#1e3035; background:#f5f7f8; }
body.client-ui #spotModal .exam-map-gallery-head { background:#fff; border:1px solid var(--client-line); border-radius:16px; padding:16px; }
body.client-ui #spotModal .exam-map-gallery-head > div > span { display:none; }
body.client-ui #spotModal .exam-map-gallery-head h2 { color:#1e3035; font-size:20px; }
body.client-ui #spotModal .exam-map-gallery-head p { color:#66777d; font-size:13px; }
body.client-ui #spotModal .exam-map-gallery-head button { color:#087f8a; min-height:44px; }
body.client-ui #spotModal .exam-map-gallery-grid { grid-template-columns:1fr; gap:16px; }
body.client-ui #spotModal .exam-map-gallery-item { background:#fff; border:1px solid var(--client-line); border-radius:14px; }
body.client-ui #spotModal .exam-map-gallery-item em { color:#34525b; background:#fff; }
@media (min-width:800px) {
  body.client-ui .mm-page { padding:20px 24px 0; }
  body.client-ui .mm-tools { margin-bottom:16px; }
  body.client-ui .mm-layout { grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr); gap:12px; align-items:stretch; }
  body.client-ui .mm-map-card { position:relative; top:auto; border:1px solid #dde5eb; border-radius:16px; margin:0; }
  body.client-ui .mm-map { height:calc(100dvh - var(--client-tab-height,64px) - 175px); min-height:360px; }
  body.client-ui .mm-directory { margin:0; border:1px solid var(--client-line); border-radius:16px; padding:20px 16px; display:flex; flex-direction:column; }
  body.client-ui .mm-page .mm-sheet-handle, body.client-ui .mm-browse { display:none; }
  body.client-ui .mm-directory .mm-results, body.client-ui .mm-directory.is-expanded .mm-results { max-height:calc(100dvh - var(--client-tab-height,64px) - 278px); overflow-y:auto; overscroll-behavior:contain; }
  body.client-ui .mm-detail-layout { grid-template-columns:minmax(0,1fr) minmax(320px,1.1fr); }
  body.client-ui .mm-detail-actions { left:24px; right:auto; width:calc(46% - 24px); border:1px solid var(--client-line); border-radius:12px 12px 0 0; }
  body.client-ui #spotModal .exam-map-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
body.client-ui .mm-gallery-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
body.client-ui .mm-gallery-head h3 { margin:0; }
body.client-ui .mm-page .mm-gallery-head button { color:#087f8a; border:0; min-height:44px; padding:0 10px; }
body.client-ui .mm-knowledge-gallery { display:grid; gap:16px; }
body.client-ui .mm-knowledge-gallery button { padding:0; overflow:hidden; }
body.client-ui .mm-knowledge-gallery button span { display:block; padding:12px; font-size:13px; text-align:left; }
body.client-ui .mm-page .mm-image-missing::before { content:'图片暂未加载，轻点重试'; display:grid; place-items:center; min-height:56px; padding:14px; color:#66777d; font-size:14px; text-align:center; }
body.client-ui .spot-image-lightbox { padding:64px 12px calc(30px + env(safe-area-inset-bottom,0px)); }
body.client-ui .spot-image-lightbox img { max-width:100%; max-height:calc(100dvh - 130px); object-fit:contain; }
body.client-ui .spot-image-lightbox :is(.spot-image-lightbox-close,.spot-image-lightbox-prev,.spot-image-lightbox-next) { width:48px; height:48px; min-height:48px; }

body.client-ui .mm-results.is-national { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; align-content:start; grid-auto-rows:max-content; }
body.client-ui .mm-results.is-national .mm-empty { grid-column:1/-1; }
body.client-ui .mm-page .mm-province { display:grid; gap:4px; text-align:left; padding:10px 12px; min-height:62px; background:#f8fafb; }
body.client-ui .mm-province strong { font-size:14px; font-weight:600; }
body.client-ui .mm-province small { font-size:11px; color:#71818b; }
body.client-ui .mm-spot.is-mastered .mm-spot-placeholder, body.client-ui .mm-spot.is-mastered small { color:#946414; }
body.client-ui .mm-detail-meta .mm-mastery { color:#946414; background:#fff5dc; }
body.client-ui .mm-detail-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:16px 0; padding:2px; border:1px solid #dce7f2; border-radius:14px; background:#fff; }
body.client-ui .mm-detail-tabs button { min-height:44px; border:0; border-radius:11px; color:#183b67; background:transparent; }
body.client-ui .mm-detail-tabs button[aria-current="page"] { color:#075f9a; background:#eaf5ff; font-weight:700; }
body.client-ui .mm-detail-overview { position:relative; margin-bottom:16px; padding:18px 16px 16px; }
body.client-ui .mm-detail-overview h3 { margin:0 0 8px; font-size:20px; }
body.client-ui .mm-detail-overview p { margin:0 0 34px; color:#60758f; line-height:1.7; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
body.client-ui .mm-detail-overview.is-expanded p { display:block; }
body.client-ui .mm-text-action { position:absolute; right:14px; bottom:12px; border:0; background:transparent; color:#087f8a; min-height:44px; }
body.client-ui .mm-related-entry { margin-top:16px; padding:16px; border:1px solid var(--client-line); border-radius:16px; background:#fff; }
body.client-ui .mm-related-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
body.client-ui .mm-related-heading h3 { margin:0; font-size:18px; }
body.client-ui .mm-related-heading p { margin:5px 0 0; color:#66777d; font-size:12px; }
body.client-ui .mm-related-heading strong { color:#176eac; white-space:nowrap; }

@media (min-width:800px) {
  body.client-ui .mm-detail-layout > .mm-resource-pane { grid-column:1; grid-row:2; margin-top:0; }
  body.client-ui .mm-detail-layout > .mm-practice-card { grid-column:2; grid-row:1 / span 2; align-self:start; }
}

body.client-ui .mm-page .mm-detail-shortcuts { display:flex; gap:8px; padding:8px; margin:16px 0 0; }
body.client-ui .mm-page .mm-detail-shortcuts .mm-resource { justify-content:center; flex:1; padding:8px 4px; min-height:44px; border:0; gap:5px; }
body.client-ui .mm-detail-shortcuts .mm-resource b { font-size:13px; }
body.client-ui .mm-page .mm-detail-gallery { display:block; padding:16px; }
body.client-ui .mm-gallery-strip { display:flex; overflow-x:auto; gap:10px; margin-top:12px; }
body.client-ui .mm-gallery-strip button { flex:0 0 126px; min-height:44px; text-align:left; background:#f4f8fc; border:1px solid #dce7f2; border-radius:12px; padding:6px; }
body.client-ui .mm-gallery-strip img { width:112px; height:94px; object-fit:contain; border-radius:8px; }
body.client-ui .mm-gallery-strip span { display:block; font-size:12px; line-height:1.5; padding:6px 2px; }
body.client-ui .mm-question-row { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:14px 0; min-height:68px; border:0; border-bottom:1px solid #e7edf4; text-align:left; background:transparent; }
body.client-ui .mm-question-row strong { display:block; margin-top:6px; font-size:14px; line-height:1.65; font-weight:500; }
body.client-ui .mm-question-row small { color:#667c92; }
body.client-ui .mm-question-row svg { width:18px; flex:0 0 18px; }
body.client-ui .mm-practice-modes button[aria-pressed="true"] { color:#fff; background:#176eac; }
body.client-ui .mm-page .mm-spot.mm-image-missing::before { content:attr(data-type-icon); width:56px; height:56px; flex:0 0 56px; min-height:0; padding:0; border-radius:10px; background:#edf4fa; font-size:24px; }
body.client-ui .mm-preview-head img { width:56px; height:56px; flex:0 0 56px; }
body.client-ui .mm-image-viewer { position:fixed; inset:0; z-index:1000; display:flex; flex-direction:column; background:#f4f7fb; color:#203a51; padding-top:env(safe-area-inset-top,0px); }
body.client-ui .mm-image-viewer header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 16px; background:white; }
body.client-ui .mm-image-viewer button { min-height:44px; padding:8px 12px; border:1px solid #dbe6f0; border-radius:10px; background:white; color:#176eac; }
body.client-ui .mm-image-stage { position:relative; flex:1; min-height:0; overflow:hidden; touch-action:none; display:flex; align-items:center; justify-content:center; }
body.client-ui .mm-image-stage img { width:100%; height:100%; object-fit:contain; transform-origin:center; user-select:none; pointer-events:none; }
body.client-ui .mm-image-stage p { position:absolute; inset:auto 20px; text-align:center; }
body.client-ui .mm-image-viewer [hidden] { display:none; }
body.client-ui .mm-image-viewer footer { background:white; text-align:center; padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)); }
body.client-ui .mm-image-viewer nav { display:flex; justify-content:space-between; gap:10px; margin-top:10px; }
body.client-ui .mm-image-viewer button:disabled { opacity:.4; }
body.client-ui .mm-detail-shortcuts .mm-resource small, body.client-ui .mm-detail-shortcuts .mm-resource > svg:last-child { display:none; }
body.client-ui .mm-detail-shortcuts .mm-resource > svg:first-child { width:18px; height:18px; }

/* Map redesign contract: type is visual identity; completion/review is a
   separate state, so a completed marker never hides its category. */
body.client-ui .mm-status-filters { border-top:1px solid #edf2f6; padding-top:8px; }
body.client-ui .mm-status-filters button[aria-pressed="true"] { color:#075f9a; border-color:#a9d1ed; background:#eaf5ff; }
body.client-ui .mm-filters button[aria-pressed="true"] { color:#075f9a; border-color:#a9d1ed; background:#eaf5ff; }
body.client-ui .mm-spot-placeholder b { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:#fff; background:#2d78b9; font-size:12px; font-weight:700; }
body.client-ui .mm-spot.mm-status-allCorrect .mm-spot-placeholder b { background:#2f9a65; }
body.client-ui .mm-spot.mm-status-review .mm-spot-placeholder b { background:#e8892e; }
body.client-ui .mm-spot-copy > span { color:#286b9a; }
body.client-ui .mm-spot-copy > span { display:block; font-size:11px; margin-top:3px; }
/* Directory rows follow the approved real-photo treatment: compact 56px
   square, with the question total attached to the spot name. */
body.client-ui .mm-spot > img { width:56px; height:56px; border-radius:10px; flex:0 0 56px; object-fit:cover; background:#eaf3fb; }
body.client-ui .mm-spot-question-count { color:#60758f !important; font-size:13px !important; font-weight:500; white-space:nowrap; }
body.client-ui .mm-spot > img + .mm-spot-copy { min-width:0; }
body.client-ui .mm-sync { display:block; text-align:left; border:0; background:transparent; color:#60758f; font-size:11px; min-height:44px; padding:4px 0; }
body.client-ui .mm-practice-modes { display:flex; gap:8px; margin:12px 0; }
body.client-ui .mm-practice-modes button { flex:1; min-height:44px; border:1px solid #d8e4f5; background:#eef5ff; color:#235fa5; border-radius:10px; font-size:12px; }
body.client-ui .mm-preview-head { display:flex; gap:12px; align-items:center; }
body.client-ui .mm-preview-head img { width:78px; height:64px; object-fit:cover; border-radius:10px; }
body.client-ui .mm-preview-summary { margin:0; color:#536b87; font-size:12px; line-height:1.5; }
body.client-ui .mm-sheet-handle { touch-action:none; }
body.client-ui .mm-region-picker { display:flex; gap:8px; align-items:center; padding:4px 0 8px; flex-shrink:0; }
body.client-ui .mm-region-picker :is(button,select),body.client-ui .mm-directory-heading>button { min-height:44px; border:1px solid #dce7f2; border-radius:10px; background:#f7fbff; color:#176eac; padding:0 10px; }
body.client-ui .mm-region-picker select { max-width:130px; }
@media (min-width:800px) { body.client-ui .mm-directory-heading>button { display:none; } }
body.client-ui .mm-map-region { position:absolute; z-index:2; top:8px; left:12px; right:12px; display:flex; gap:4px; align-items:center; pointer-events:none; }
body.client-ui .mm-map-region button { pointer-events:auto; min-height:44px; padding:0 10px; border-radius:12px; background:#ffffffed; color:#176eac; border:1px solid #deebf3; }
body.client-ui .mm-map-region button:last-child { margin-left:auto; }
@media (max-width:799px) {
  body.client-ui .mm-heading { margin-bottom:8px; }
  body.client-ui .mm-heading h1 { font-size:20px; }
  body.client-ui .mm-tools { gap:4px; }
  body.client-ui .mm-search,body.client-ui .mm-search input { min-height:44px; height:44px; }
  body.client-ui .mm-page .mm-sync { border:0; background:transparent; font-size:11px; color:#60758f; }
  body.client-ui .mm-explore { display:flex; flex-direction:column; height:calc(100dvh - 80px - var(--client-tab-height,64px)); min-height:420px; }
  body.client-ui .mm-explore[hidden] { display:none; }
  body.client-ui .mm-layout { position:relative; flex:1; min-height:0; margin:0 -20px; }
  body.client-ui .mm-map-card { position:absolute; inset:0 0 100px; margin:0; }
  body.client-ui .mm-map { height:100%; min-height:0; }
  body.client-ui .mm-directory { position:fixed; z-index:25; left:0; right:0; bottom:var(--client-tab-height,64px); margin:0; height:min(46dvh,calc(100dvh - var(--client-tab-height,64px) - 8px)); min-height:132px; padding:0 16px 8px; display:flex; flex-direction:column; overflow:hidden; transition:height .18s ease-out; box-shadow:0 -3px 20px #1834540a; }
  body.client-ui .mm-directory[data-sheet-level="0"] { height:132px; }
  body.client-ui .mm-directory[data-sheet-level="1"] { height:max(260px,46dvh); }
  body.client-ui .mm-directory[data-sheet-level="2"] { height:calc(100dvh - var(--client-tab-height,64px) - max(8px,env(safe-area-inset-top,0px))); }
  body.client-ui .mm-directory.is-dragging { transition:none; user-select:none; }
  body.client-ui .mm-directory .mm-sheet-handle { flex:0 0 44px; min-height:44px; padding:0; }
  body.client-ui .mm-directory-heading { touch-action:none; }
  body.client-ui .mm-directory .mm-results { flex:1; min-height:0; max-height:none; overflow-y:auto; overscroll-behavior:contain; }
  body.client-ui .mm-directory.has-preview .mm-results,body.client-ui .mm-directory.has-preview .mm-directory-heading,body.client-ui .mm-directory.has-preview .mm-sync { display:none; }
  body.client-ui .mm-directory .mm-browse { display:none; }
  body.client-ui .mm-directory .mm-sync { min-height:44px; flex-shrink:0; margin:0; }
  body.client-ui .mm-directory[data-sheet-level="0"] :is(.mm-results,.mm-sync,.mm-region-picker,.mm-browse) { display:none; }
  body.client-ui .mm-directory[data-sheet-level="0"] .mm-directory-heading>button { visibility:hidden; }
  body.client-ui .mm-directory-heading { margin-bottom:4px; flex-shrink:0; }
  body.client-ui .mm-spot-preview { margin:0; overflow:auto; flex:1; display:flex; flex-direction:column; }
  body.client-ui .mm-spot-preview-actions { margin-top:auto; }
  body.client-ui .mm-spot-preview-actions button { height:44px; }
  body.client-ui .mm-filters button { min-height:44px; }
}
body.client-ui .mm-review { color:#b7651c !important; background:#fff3e5 !important; }
body.client-ui .mm-directory .mm-results { overflow-y:auto; overscroll-behavior:contain; }
body.client-ui .mm-directory .mm-results:not(.is-national) { align-content:start; grid-auto-rows:max-content; }
body.client-ui .mm-page .mm-spot { min-height:96px; height:auto; }
body.client-ui .mm-page .mm-spot-copy strong { display:flex; align-items:baseline; gap:4px; }
body.client-ui .mm-spot-name { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.client-ui .mm-page .mm-spot-question-count { flex-shrink:0; }
body.client-ui .mm-spot .mm-spot-placeholder { width:56px; height:56px; flex:0 0 56px; }
body.client-ui .mm-directory[data-sheet-level="2"] .mm-sheet-handle i { background:#087f8a; }
body.client-ui .mm-province em { display:block; font-size:11px; color:#2f7d60; font-style:normal; white-space:normal; overflow-wrap:anywhere; letter-spacing:-.2px; }
body.client-ui .mm-province-progress { display:block; height:3px; border-radius:3px; overflow:hidden; background:#e5edf4; }
body.client-ui .mm-province-progress i { display:block; height:100%; border-radius:inherit; background:#2d78b9; }
@media (max-width:430px) {
  body.client-ui .mm-results.is-national { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.client-ui .mm-page .mm-province { min-height:74px; padding:9px 10px; }
  body.client-ui .mm-province em { font-size:10px; }
}
