/* 型（UI設計書「優先順位の型」2026-11-06・Map-0011）の見た目。型にした地図だけが読む（そのページの <style> のあと）。
   上から 題名（言語のボタン）→ 件数1行 → 絞り込み → 地図 → 一覧。すぐには使わないものはいちばん下の折りたたみ #mn-extras。
   色：基本 #23395D、赤 #B3261E は注意だけ。検査：scripts/layout_gate.py の決まり3 */
:root { --ink:#1d1d1f; --muted:#4a4a4f; --bg:#f6f5f2; --accent:#23395d; --warn:#b3261e; }
body { font:16px/1.6 "Noto Sans JP", "Noto Sans", system-ui, -apple-system, "Segoe UI", sans-serif; }
body:lang(en) { font-family:"Noto Sans", system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color:var(--accent); text-decoration:underline; text-underline-offset:2px; }
:focus-visible { outline:3px solid var(--accent); outline-offset:2px; box-shadow:0 0 0 2px #fff; }
.mn-crumbs.mn-top { display:none !important; }
header .topbar:not(:has(> :not(.mn-crumbs):not(style))) { display:none; }
.titlerow { display:flow-root; }
.titlerow > .langmenu { float:right; margin:0 0 4px 8px; }
.titlerow h1 { font-feature-settings:"palt"; font-size:30px; line-height:1.3; margin:4px 0 0; }
.langmenu { position:relative; flex:none; }
.langmenu > summary { list-style:none; display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:0 12px; border:1px solid var(--line); border-radius:999px; background:var(--panel); color:var(--accent); font-size:14px; font-weight:700; cursor:pointer; }
.langmenu > summary, .fmenu > summary { margin-block:0; padding-block:0; }
.langmenu > summary::-webkit-details-marker { display:none; }
.langmenu > summary::before { content:"🌐"; margin-right:4px; }
.langmenu > .langs { display:none; }
.langmenu[open] > .langs { position:absolute; right:0; top:calc(100% + 4px); z-index:1100; display:flex; flex-direction:column; flex-wrap:nowrap; gap:4px; padding:6px; background:var(--panel); border:1px solid var(--line); border-radius:12px; box-shadow:0 4px 14px rgba(0,0,0,.15); overflow:visible; max-width:none; }
.langmenu .langs a { display:inline-flex; align-items:center; min-height:44px; padding:0 14px; font-size:16px; white-space:nowrap; }
.updated { font-size:14px; color:var(--muted); }
.mn-late { color:var(--warn) !important; }
.tally { gap:4px 20px; }
.tally .n { font-size:28px; line-height:1; font-weight:900; color:var(--accent); }
.tally .l { font-size:14px; }
.big b { font-family:inherit; font-size:28px; line-height:1.1; font-weight:900; color:var(--accent); }
.big span { font-size:14px; }
.fmenu > summary { list-style:none; display:flex; align-items:center; gap:8px; min-height:44px; padding:0 14px; border:1px solid var(--line); border-radius:999px; background:var(--panel); cursor:pointer; font-size:14px; overflow:hidden; white-space:nowrap; }
.fmenu > summary::-webkit-details-marker { display:none; }
.fmenu > summary::after { content:"▾"; margin-left:auto; color:var(--accent); }
.fmenu[open] > summary::after { content:"▴"; }
.fmenu .fm-h { font-weight:700; color:var(--accent); flex:none; }
.fmenu .fm-now { min-width:0; overflow:hidden; text-overflow:ellipsis; color:var(--ink); }
.fmenu > .filters { margin-top:8px; flex-wrap:wrap !important; overflow:visible !important; }
.fmenu > .filters .controls { flex-wrap:wrap !important; overflow:visible !important; }
.fmenu > .legend { margin-top:8px; font-size:14px; }
.chip { min-height:44px; padding:0 14px; font-size:14px; }
#map { height:min(560px, 60vh); height:min(560px, 60svh); min-height:0; }
.leaflet-control-zoom a { width:44px !important; height:44px !important; line-height:44px !important; font-size:22px !important; }
.leaflet-popup-close-button { width:44px !important; height:44px !important; font:24px/44px sans-serif !important; }
.mn-share a, .mn-share button, .mn-emb summary { min-height:44px !important; }
.mn-extras { margin:8px 0 0; border-top:1px solid var(--line); }
.mn-extras > summary { list-style:none; display:flex; align-items:center; gap:8px; min-height:44px; margin-block:0; padding:0 4px; font-size:14px; font-weight:700; color:var(--accent); cursor:pointer; }
.mn-extras > summary::-webkit-details-marker { display:none; }
.mn-extras > summary::before { content:"▸"; }
.mn-extras[open] > summary::before { content:"▾"; }
.mn-extras > * + * { margin-top:12px; }
.mn-mapsize { min-height:44px; padding:0 12px; border:2px solid rgba(0,0,0,.25); border-radius:8px; background:#fff; color:var(--accent); font-family:inherit; font-size:14px; font-weight:700; line-height:1; cursor:pointer; box-shadow:none; }
body.popopen .mn-mapsize { visibility:hidden; }
@media (min-width:761px) { .mn-mapsize { display:none; } }
@media (max-width:760px) {
  .titlerow h1 { font-size:20px; line-height:1.3; margin:2px 0 0; }
  .tally .n { font-size:26px; }
  .big b { font-size:26px; }
  .big > div { flex-direction:row; align-items:baseline; gap:6px; }
  .big > div + div { display:none; }
  .tally .l { line-height:1.25; }
  .tally .tc + .tc { display:none; }
  .langmenu > summary { width:44px; padding:0; }
  .langmenu > summary::before { margin:0; font-size:20px; }
  .langmenu .lmt { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  #map { height:30vh; height:30svh; min-height:0; }
  body.mapbig #map { height:min(560px, 70vh); height:min(560px, 70svh); }
  .fmenu:not([open]) > .filters, .fmenu:not([open]) > .legend { display:none; }
}
@media (min-width:861px) {
  .wrap > #map { height:min(78vh,760px); height:min(78svh,760px); min-height:0; }
  .wrap > #listbox { max-height:min(78vh,760px); max-height:min(78svh,760px); }
}
@media (min-width:861px) and (max-height:599px) {
  .wrap > #map { height:min(60svh,760px); }
  .wrap > #listbox { max-height:min(60svh,760px); }
}
/* 一覧の1件：色丸＋名前 → いつ・どこ・状態 の短い形。くわしくは吹き出し（ピン）で（UI設計書 4.） */
#listbox .card { display:flex; flex-direction:column; padding:10px 0; }
#listbox .card > h3 { order:-1; font-size:16px; margin:0; }
#listbox .card > :not(h3):not(.meta):not(.rel):not(aside) { display:none; }
#listbox .card .meta { font-size:14px; }
#listbox .card .meta > i { display:none; }
#listbox .card > h3 button:not(:has(i))::before { content:""; flex:none; display:inline-block; width:12px; height:12px; margin-right:8px; border-radius:50%; background:var(--c); vertical-align:baseline; }
