/* 区市町村選択の「現在地から選ぶ」。色・間隔・角は app.css のトークンだけを使う。 */
.geo { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1) var(--s3); padding: 0 var(--s4) var(--s2); }
.geo__status { flex: 1 1 12em; min-width: 0; margin: 0; font-size: var(--t-meta); color: var(--ink-2); line-height: 1.5; }
.geo__status:empty { display: none; }
.geo[data-geo-state="locating"] .geo__status { min-height: 44px; display: flex; align-items: center; }
.geo__locate {
  flex: none; min-height: 44px; display: inline-flex; align-items: center; gap: var(--s1);
  padding: 0 var(--s3); border: 0; border-radius: var(--r-chip);
  background: var(--paper-2); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-strong);
  font-size: var(--t-meta); font-weight: 700; white-space: nowrap;
}
.geo__locate:active { background: var(--paper-3); }
.geo__locate svg.i { width: 18px; height: 18px; }

/* 判定できたとき: 見出し行と主ボタンを1枚にまとめる */
.geo[data-geo-state="found"] .geo__status,
.geo__found { flex: 1 1 100%; }
.geo[data-geo-state="found"] {
  margin: 0 var(--s4) var(--s2); padding: var(--s3); border-radius: var(--r-m); background: var(--go-tint); gap: var(--s2);
}
.geo__status--found { font-size: var(--t-body); color: var(--ink); }
.geo__status--found b { font-family: var(--font-display); font-weight: 900; font-size: var(--t-lead); }
.geo__found { display: grid; gap: var(--s1); }
.geo__found[hidden] { display: none; }
.geo__note { margin: 0; font-size: var(--t-meta); color: var(--ink-2); }

/* 一覧の末尾の出典 */
.geo-src { padding: var(--s5) 0 var(--s2); }
.geo-src a { white-space: normal; }
