/* 地图页与地图核心 —— 仅引用 tokens.css 中的变量。浮动件位置、尺寸与开合移植自原型 app.css 的地图部分（地图规范「浮动件位置」）；
   画布由 MapLibre 绘制，库的控件与默认外观不用，只经状态属性覆盖光标（实现接管「MapLibre 接管」） */

/* ── 地图核心（桌面与手机共用） ── */
.map-core { position: relative; overflow: hidden; background: var(--fill-soft); isolation: isolate; } /* 中性底；独立堆叠上下文，不遮挡界面按钮 */
.map-core .maplibregl-canvas:focus { outline: none; }
.map-core::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; border-radius: inherit; }
.map-core:has(.maplibregl-canvas:focus-visible)::after { box-shadow: inset var(--focus-ring); }
.map-core[data-hit="plot"] .maplibregl-canvas-container { cursor: pointer; }
/* 常驻标注：白字 + 深色描边光晕，名称 12px/600；不拦截指针（地图色板「标注」） */
.map-labels { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; }
.map-label { position: absolute; left: 0; top: 0; margin: 3px 0 0; translate: -50% 0; white-space: nowrap; color: var(--bg); font-size: 12px; font-weight: 600; line-height: 1.2;
  -webkit-text-stroke: 3px var(--fg); -webkit-text-stroke: 3px color-mix(in oklch, var(--fg) 72%, transparent); paint-order: stroke fill; stroke-linejoin: round; }
/* 键盘代理：宗地只占一个 Tab 停靠点，按钮覆盖在当前宗地的外接框上，焦点以地图上的强调色描边表达 */
.plot-key { position: absolute; left: 0; top: 0; z-index: 2; padding: 0; border: 0; background: transparent; pointer-events: none; opacity: 0; }
.plot-key:focus-visible { box-shadow: none; }
/* 悬浮卡：80% 强玻璃小卡，名称、阶段色点与一行当前办理事实 */
.hover-card { position: absolute; z-index: 30; display: grid; gap: 4px; max-width: 250px; padding: 9px 12px; border-radius: var(--radius-md); font-size: var(--text-caption); pointer-events: none; }
.hover-card b { font-size: var(--text-table); }
.hover-card .sw { width: 8px; height: 8px; border-radius: 50%; }

/* ── 桌面地图页 ── */
.main.map-page { margin-left: 0; } /* 地图为全屏画布，侧栏浮在其上，浮层与取景各自避让 */
.map-page { --kg-banner-top: 74px; --kg-banner-height: 0px; position: relative; height: 100vh; --insp-width: 320px; --legend-height: 120px; --legend-bottom: 32px; --left-stack: 114px; --scale-height: 28px; --float-left: calc(var(--side-gap) + var(--side-push) + 16px); /* 侧栏右缘外 16px */ --map-search-size: min(380px, calc(100% - var(--float-left) - var(--insp-width) - 48px - 6.5rem));
  /* 左上浮层（搜索结果、筛选面板）止于左下工具区上方 12px，避免相交；--left-stack 由 map-page.mjs 实测 */
  --float-bottom: calc(var(--legend-height) + var(--legend-bottom) + 16px + var(--left-stack) + 12px); }
.map-page:has(.insp[data-view="card"]) { --insp-width: 380px; }
.map-page:has(.insp.is-closed) { --insp-width: 56px; }
.map-host-wrap { position: absolute; inset: 0; }
.map-page .map-host { position: absolute; inset: 0; }
.map-page :is(.search-cap, .search-res, .filter-panel, .chips-bar, .zoom-ctl, .map-scale, .legend-dock, .map-attrib) { transition: left var(--motion-base) var(--ease-standard); }
/* 按下的 0ms 由 base.css 的 :root .btn:active 保证（优先级高于本规则）；这里不再另设 0ms，避免压过下面的减少动态效果与横向位移过渡 */
.map-page .filter-btn { transition: background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), left var(--motion-base) var(--ease-standard); }
.float { position: absolute; z-index: 10; }
.map-state { position: absolute; z-index: 12; top: 50%; left: calc(50% - 180px); transform: translate(-50%, -50%); display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--radius-lg); color: var(--fg-2); }

.search-cap { top: 16px; left: var(--float-left); width: var(--map-search-size); display: flex; align-items: center; gap: 8px; height: 46px; padding: 0 8px 0 14px; border-radius: var(--radius-pill); }
.search-cap input { flex: 1; min-width: 0; height: 44px; border: 0; background: transparent; font-size: var(--text-body); color: var(--fg); outline: none; }
.search-cap input::placeholder { color: var(--muted); }
.search-cap:focus-within { box-shadow: var(--focus-ring), var(--glass-shadow-sm); }
.search-cap > .btn-icon { position: relative; width: 36px; height: 36px; margin: 0; border: 0; border-radius: 50%; background: transparent; color: var(--fg-2); display: inline-grid; place-items: center; }
.search-cap > .btn-icon::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; } /* 36→44 */
.search-cap > .btn-icon:focus-visible { box-shadow: var(--focus-ring); outline: none; }
.search-res { top: 68px; left: var(--float-left); width: var(--map-search-size); max-height: max(7.5rem, min(340px, calc(100% - 68px - var(--float-bottom)))); overflow: auto; padding: 6px; border-radius: var(--radius-md); }
.res-item { display: grid; gap: 2px; width: 100%; min-height: 44px; padding: 7px 10px; border: 0; border-radius: var(--radius-sm); background: none; color: var(--fg); text-align: left; font-size: var(--text-table); }
.res-item:focus-visible { background: var(--fill-soft); outline: none; }
@media (hover: hover) { .res-item:hover { background: var(--fill-soft); } }
.res-item small { color: var(--muted); font-size: var(--text-caption); }
.res-item .res-hit { overflow-wrap: anywhere; } /* 命中字段说明，长文号可换行 */
.filter-btn { top: 16px; left: calc(var(--float-left) + var(--map-search-size) + 12px); }
.filter-panel { top: 70px; left: var(--float-left); width: 340px; max-height: max(7.5rem, calc(100% - 70px - var(--float-bottom))); /* 不压到缩放工具与图例 */ display: flex; flex-direction: column; overflow: hidden; border-radius: var(--radius-panel); }
.filter-body { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 2px 16px 14px; }
.filter-panel .to-ledger { flex-shrink: 0; padding: 8px 16px; border-top: .5px solid var(--glass-border); }
.filter-panel .to-ledger .btn { width: 100%; justify-content: space-between; min-height: 44px; }
.filter-panel h4 { margin: 12px 0 6px; font-size: var(--text-label); color: var(--muted); font-weight: 600; }
.chip.on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-ink); }
.chip .x { position: relative; }
.chip .x::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; } /* 20→28 */
/* 已应用条件：在缩放工具右侧、与其底边对齐，同在比例尺上方（不相交）；强玻璃底保证压在影像上可读（2026-10-20 用户确认） */
.chips-bar { left: calc(var(--float-left) + 60px); bottom: calc(var(--legend-height) + var(--legend-bottom) + 18px + var(--scale-height)); display: flex; flex-wrap: wrap; align-items: center; gap: 6px; max-width: calc(100% - var(--float-left) - var(--insp-width) - 108px); padding: 6px 8px; border-radius: var(--radius-pill); }
/* 左下工具：放大、缩小与当前级；比例尺在工具栏下方同一左缘（地图规范「工具与比例尺」），--scale-height 为其实测高度（字号放大时随之增高） */
.zoom-ctl { left: var(--float-left); bottom: calc(var(--legend-height) + var(--legend-bottom) + 18px + var(--scale-height)); display: grid; border-radius: var(--radius-md); overflow: hidden; }
.zoom-ctl button { width: 44px; height: 44px; border: 0; background: transparent; color: var(--fg); display: grid; place-items: center; }
.zoom-ctl button + button { border-top: 0.5px solid var(--border); }
@media (hover: hover) { .zoom-ctl button:hover { background: var(--fill-soft); } }
.zoom-ctl button:focus-visible { box-shadow: inset var(--focus-ring); outline: none; }
.zoom-ctl .z { padding: 2px 0 4px; text-align: center; font-size: var(--text-label); color: var(--muted); }
.map-scale { left: var(--float-left); bottom: calc(var(--legend-height) + var(--legend-bottom) + 12px); display: grid; gap: 2px; padding: 2px 6px 3px; border-radius: var(--radius-sm); background: var(--glass-bg-strong); color: var(--fg-2); font-size: var(--text-label); line-height: 1.2; pointer-events: none; }
.map-scale-bar { display: block; height: 5px; border: 1.5px solid var(--fg-2); border-top: 0; }
.insp { top: 16px; right: 16px; bottom: calc(var(--legend-height) + var(--legend-bottom) + 16px); width: var(--insp-width); display: flex; flex-direction: column; border-radius: var(--radius-panel); overflow: hidden; transform-origin: top right; } /* 开合以右上角的开关为原点 */
.insp[data-view="controls"] { bottom: auto; max-height: calc(100% - var(--legend-height) - var(--legend-bottom) - 32px); }
.insp.is-closed { bottom: auto; width: auto; }
.insp-top { display: flex; flex-shrink: 0; align-items: center; gap: 6px; padding: 8px; border-bottom: 0.5px solid var(--glass-border); }
.insp.is-closed .insp-top { border-bottom: 0; }
.insp-body { flex: 1; min-height: 0; overflow: auto; padding: 12px 16px 18px; }
.insp-title { flex: 1; min-width: 0; }
.insp[data-view="controls"] .insp-top { border-bottom: 0; padding-left: 20px; }
.insp[data-view="controls"] .insp-body { padding: 0 20px 16px; }
.insp[data-view="controls"] .insp-top > .btn-text { min-height: 44px; padding: 6px; }
.map-control-title { margin: 0; font-size: var(--text-body); font-weight: 600; line-height: 1.35; }
.map-display { border-top: 0.5px solid var(--border-soft); margin-top: 14px; padding-top: 14px; }
.map-display > .map-control-title { margin-bottom: 8px; }
.map-setting { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; min-height: 44px; font-size: var(--text-table); }
.map-setting .seg { flex-wrap: wrap; }
.map-setting .seg button { min-height: 44px; min-width: 54px; padding: 6px 14px; }
.map-setting .switch { margin: 8px 0; }
.map-label-hint { margin: 6px 0 0; }
.map-label-hint:empty { display: none; }
/* 控规展开区（地图规范「检查器」，同原型 .kg-display-fold）：不透明度与图例随开关出现与收起，0fr↔1fr 配合透明度过渡 220ms，可中途反向；
   减少动态效果时由 base.css 的通用规则直接切换 */
.kg-display-fold { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows var(--motion-base) var(--ease-exit), opacity var(--motion-base) var(--ease-exit); }
.kg-display-fold.is-open { grid-template-rows: 1fr; opacity: 1; transition-timing-function: var(--ease-standard); }
.kg-display-inner { min-height: 0; overflow: hidden; }
.map-opacity { padding: 6px 0; }
.map-opacity label { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 8px; color: var(--fg-2); font-size: var(--text-caption); }
.map-opacity output { font-variant-numeric: tabular-nums; }
.map-opacity .range { display: block; width: 100%; min-height: 44px; margin: 0; accent-color: var(--accent); } /* range 用 accent，不计入 accent 上限（实现接管） */
.kg-legend { margin: 4px 0 0; padding: 4px 0 2px; border-top: 0.5px solid var(--border-soft); }
.kg-legend-title { margin: 0 0 4px; color: var(--fg-2); font-size: var(--text-label); font-weight: 600; line-height: 1.4; }
.kg-legend-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 10px; margin: 0; padding: 0; list-style: none; } /* 两列静态说明，不是按钮 */
.kg-legend-items li { display: flex; align-items: flex-start; gap: 6px; min-width: 0; color: var(--fg); font-size: var(--text-caption); line-height: 1.4; }
.kg-legend-items li > span { min-width: 0; overflow-wrap: anywhere; }
/* 控规色块：14px，1px 体系描边保证留白用地与浅色可辨；用途为空只画专用灰线（色值在 SVG 属性中，来自 palette.mjs） */
.kg-sw { flex: none; width: 14px; height: 14px; margin-top: 2px; }
.kg-sw:not(.is-outline) rect { stroke: var(--border); stroke-width: 1; }
.kg-sw.is-outline rect { stroke-width: 1; }
/* 控规瓦片局部失败：附在底图状态行，警告色图标加重试 */
.map-attrib { flex-wrap: wrap; }
.map-kg-state { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.map-kg-state > .i { color: var(--warn-ink); }
@media (prefers-contrast: more) { .kg-legend { border-top-color: var(--fg-2); } .kg-sw:not(.is-outline) rect { stroke: var(--fg-2); } }
/* 地图信息：按需展开，写明底图来源、署名与审图号、底图状态与合成数据说明 */
.map-info { margin-top: 6px; }
.map-info-toggle { min-height: 44px; margin-left: -10px; }
.map-info-toggle .i { transition: transform var(--motion-fast) var(--ease-standard); }
.map-info-toggle[aria-expanded="true"] .i { transform: rotate(180deg); }
.map-info-list { display: grid; gap: 2px; padding: 4px 0 2px; color: var(--fg-2); }
.map-info-list .dt-row { font-size: var(--text-caption); }
.map-info-list dd { overflow-wrap: anywhere; }
.legend-dock { bottom: var(--legend-bottom); left: var(--float-left); right: 16px; padding: 4px 10px 6px; border-radius: var(--radius-lg); --muted: var(--fg-2); }
.legend-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; min-height: 44px; }
.legend-head b { font-size: var(--text-caption); }
.legend-head > button { margin-left: auto; min-height: 44px; }
.legend-head .i { transform: rotate(180deg); }
.legend-head [aria-expanded="false"] .i { transform: none; }
.legend-items { display: flex; flex-wrap: wrap; gap: 0 4px; max-height: min(10rem, 24vh); overflow: auto; overscroll-behavior: contain; padding: 2px; }
.legend-items[hidden] { display: none; }
.legend-item { display: inline-flex; align-items: center; justify-content: flex-start; gap: 6px; flex: 0 0 auto; max-width: 100%; min-height: 44px; padding: 4px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--fg); font-size: var(--text-caption); text-align: left; line-height: 1.4; }
.legend-item > .sw { flex: none; }
.legend-item > span:not(.sw) { overflow-wrap: anywhere; }
.legend-item small { color: var(--muted); font-size: var(--text-label); font-variant-numeric: tabular-nums; }
.legend-item:focus-visible, .region-area:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.legend-item:active, .region-area:active { background: var(--fill-soft); }
@media (hover: hover) { .legend-item:hover, .region-area:hover { background: var(--fill-soft); } }
.sw-ggs { width: 10px; height: 10px; border-radius: 50%; margin: 2px; background: var(--map-ggs); }
/* 底图状态行：位置同原型左下的底图来源行，图例据其高度上移；暂不可用时带“重试” */
.map-attrib { left: var(--float-left); bottom: 10px; display: inline-flex; align-items: center; gap: 6px; min-height: 22px; padding: 3px 8px; border-radius: var(--radius-sm); background: var(--glass-bg-strong); color: var(--fg-2); font-size: var(--text-label); }
.map-attrib .btn-text { position: relative; height: 22px; padding: 0 6px; font-size: inherit; }
.map-attrib .btn-text::after { content: ""; position: absolute; inset: -11px -4px; } /* 22→44 */

/* 区域定位 */
.region-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.region-head .btn { min-height: 44px; }
.region-groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.region-groups button { min-width: 0; height: auto; min-height: 44px; padding: 4px; }
.region-location { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 2px; color: var(--fg-2); font-size: var(--text-caption); line-height: 1.5; }
.region-location > .i { flex: none; }
.region-location b { color: var(--fg); font-weight: 600; }
.region-path-divider { margin: 0 8px; color: var(--muted); }
.region-area-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 8px; padding: 4px 2px 8px; color: var(--muted); font-size: var(--text-label); }
.region-areas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.region-area { display: flex; align-items: center; justify-content: space-between; gap: 6px; width: 100%; min-height: 44px; padding: 10px 10px; border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--bg); color: var(--fg); font-size: var(--text-table); text-align: left; transition: background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard); }
.region-area > span { min-width: 0; overflow-wrap: anywhere; }
.region-area .i { flex: none; }
.region-area .region-check { display: grid; place-items: center; flex: none; width: 16px; height: 16px; visibility: hidden; }
.region-area[aria-pressed="true"] { background: var(--fill-accent-soft); border-color: var(--accent); color: var(--accent-ink); font-weight: 600; }
.region-area[aria-pressed="true"] .region-check { visibility: visible; }
.region-area small { display: block; font-weight: 400; color: var(--fg-2); font-size: var(--text-caption); }
.region-area:active { transform: scale(.97); transition-duration: 0ms; }
@media (hover: hover) { .region-area[aria-pressed="true"]:hover { background: var(--fill-accent-soft); } }
.region-note { margin-top: 12px; }

/* 地图浮层上的次要文字深一档：合成背景上 --muted 不足 4.5:1（色彩「影像与遮罩上的可读性」）；80% 强玻璃上的小号动作文字用 --accent-glass-ink */
:is(.insp, .search-cap, .search-res, .filter-panel, .zoom-ctl, .hover-card, .map-state, .map-attrib) { --muted: var(--fg-2); }
:is(.insp, .legend-dock, .search-res, .filter-panel, .map-state, .map-attrib) :is(.btn-text, a:not(.btn)) { color: var(--accent-glass-ink); }

/* 按压反馈：按下立即生效，松开 150ms 回位 */
.res-item, .zoom-ctl button, .search-cap > .btn-icon { transition: background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard); }
.res-item:active { transform: scale(.985); background: var(--fill-soft); transition-duration: 0ms; }
.res-item[aria-disabled="true"]:active { transform: none; background: none; }
.zoom-ctl button:active, .search-cap > .btn-icon:active { background: var(--fill-soft); transform: scale(.92); transition-duration: 0ms; }
@media (prefers-reduced-motion: reduce) {
  :is(.res-item, .zoom-ctl button, .search-cap > .btn-icon, .region-area):active { transform: none; }
  .map-page :is(.search-cap, .search-res, .filter-panel, .chips-bar, .zoom-ctl, .map-scale, .legend-dock, .map-attrib, .filter-btn) { transition: none; }
}
@media (prefers-contrast: more) { .region-area { border-color: var(--fg-2); } }
/* 减少动态效果时筛选按钮的按下反馈仍即时（底色由 base.css 与下方的 transform 规则给出） */
@media (prefers-reduced-motion: reduce) { .map-page .filter-btn:active { transition-duration: 0ms; } }
html.sim-reduce-motion .map-page .filter-btn { transition: none; }
html.sim-reduce-motion .map-page .filter-btn:active { transition-duration: 0ms; }

/* ── 地图页背景模糊层数 ≤8（玻璃材质「内容层」、AD-18 方案 A）：缩放工具、手绘新增与已应用条件改为 --glass-bg-strong 实色、不再计算背景模糊；
   保留原有圆角、描边、投影与尺寸。:root 前缀压过 .glass／.glass-strong 的背景与模糊，也就同样压过 glass.css 与模拟类的实底降级，
   所以减少透明度／增强对比度下在此补回 --bg 实底；描边与投影不覆盖，沿用玻璃的降级（增强对比度 1px --fg-2），计算值与改动前一致 ── */
:root .map-page :is(.zoom-ctl, .chips-bar, .draw-start) { background: var(--glass-bg-strong); -webkit-backdrop-filter: none; backdrop-filter: none; }
:root .map-page .draw-start:focus-visible { box-shadow: var(--focus-ring); }
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) { :root .map-page :is(.zoom-ctl, .chips-bar, .draw-start) { background: var(--bg); } }
:root:is(.sim-reduce-transparency, .sim-contrast-more) .map-page :is(.zoom-ctl, .chips-bar, .draw-start) { background: var(--bg); }
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) { .map-attrib, .map-scale { background: var(--bg); } }
@media (pointer: coarse) and (max-width: 1023px), (max-width: 640px) {
  .chip .x::after { inset: -12px; } /* 20→44 */
  :root .search-cap input { font-size: max(16px, 1rem); }
}
@media (max-width: 1023px) { .map-page:has(.insp[data-view="card"]) { --insp-width: 320px; } }
@media (max-width: 900px) { .map-page { --insp-width: 300px; } }

/* 控规07：与已确认双端原型同一属性卡、候选与模式提示。 */
.kg-pick-center { transition-property: none; position: absolute; z-index: 5; display: grid; place-items: center; width: 28px; height: 28px; transform: translate(-50%, -50%); border-radius: 50%; background: var(--glass-bg-strong); color: var(--fg); box-shadow: var(--elev-ring); pointer-events: none; }
.kg-pick-center[hidden] { display: none; }
.map-core[data-pick-target="kg"] .maplibregl-canvas-container { cursor: crosshair; }
.kg-pick-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; padding: 4px 10px; border-radius: var(--radius-lg); font-size: var(--text-caption); }
.kg-pick-banner[hidden] { display: none; }
.kg-pick-banner .btn { min-height: 44px; }
.kg-pick-banner .btn-text { color: var(--accent-glass-ink); }
.map-page > .kg-pick-banner { position: absolute; z-index: 11; top: var(--kg-banner-top, 74px); left: var(--float-left); max-width: calc(100% - var(--float-left) - var(--insp-width) - 48px); }
.map-page:has(> .kg-pick-banner:not([hidden])) :is(.search-res, .filter-panel) { top: calc(var(--kg-banner-top, 74px) + 12px + var(--kg-banner-height)); max-height: max(44px, calc(100% - var(--kg-banner-top, 74px) - 12px - var(--kg-banner-height) - var(--float-bottom))); }
.kg-pick-card { position: absolute; z-index: 12; padding: 12px 16px; border-radius: var(--radius-lg); overflow: auto; overscroll-behavior: contain; touch-action: pan-y; cursor: auto; user-select: text; --muted: var(--fg-2); }
.kg-pick-card:focus-visible { outline: none; box-shadow: var(--focus-ring), var(--glass-shadow-sm); }
.kg-pick-card .btn-text { color: var(--accent-glass-ink); }
.kg-pick-card :is(.btn, .res-item) { min-height: 44px; }
.kg-pick-fields { margin: 12px 0; display: grid; gap: 10px; }
.kg-pick-fields dt { color: var(--fg-2); font-size: var(--text-caption); }
.kg-pick-fields dd { margin: 2px 0 0; font-size: var(--text-body); overflow-wrap: anywhere; white-space: pre-wrap; }
.kg-pick-list .res-item { border-bottom: .5px solid var(--border-soft); }
.kg-pick-list .res-item:focus-visible { outline: none; box-shadow: inset var(--focus-ring); }
.kg-pick-list .res-item:active { background: var(--fill-soft); }

/* 年度计划保持阶段填充，独立红边与图例。 */
.sw-plan { background: transparent; border: 2.5px solid var(--map-plan); box-shadow: 0 0 0 2px color-mix(in srgb, var(--map-plan) 55%, transparent); }
.tag.plan-tag { color: var(--map-plan-ink); background: var(--bg); box-shadow: inset 0 0 0 1.5px var(--map-plan); }
.map-plan-state { font-size: .75rem; line-height: 1.5; padding-block: 6px; overflow-wrap: anywhere; }
.chips-bar, .m-scope { flex-wrap: wrap; }

.map-plan-selectors { display: flex; flex-wrap: wrap; gap: 8px; margin-block: 8px; }
.map-plan-selectors .field { flex: 1 1 8rem; min-width: 0; }
.map-plan-selectors select { width: 100%; min-height: 44px; padding-inline: 8px; background: transparent; color: var(--fg); border: 0; font: inherit; }
