/* BashoMap foundations v1. Opt in with .bm-ui; never override legacy :root. */
.bm-ui, body.app-shell-nav-mode, body.my-page-mobile-mode {
  --bm-paper:#fcfaf5; --bm-surface:#ffffff; --bm-tint:#edf3ef;
  --bm-ink:#183e47; --bm-muted:#52676c; --bm-line:#cbd8d4;
  --bm-action:#1c6370; --bm-action-hover:#144d58; --bm-danger:#a02f35;
  --bm-space-1:4px; --bm-space-2:8px; --bm-space-3:12px;
  --bm-space-4:16px; --bm-space-5:24px; --bm-space-6:32px; --bm-space-7:48px;
  --bm-radius-control:12px; --bm-radius-panel:20px; --bm-target:48px;
  --bm-font: -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;
}
.bm-ui {
  color:var(--bm-ink); background:var(--bm-paper); font:400 16px/1.6 var(--bm-font);
  overflow-wrap:anywhere; color-scheme:light;
}
.bm-ui *, .bm-ui *::before, .bm-ui *::after { box-sizing:border-box; }
.bm-ui [hidden] { display:none !important; }
.bm-ui :is(button,input,select,textarea) { font:inherit; }
.bm-ui :is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid var(--bm-action); outline-offset:3px; }
.bm-ui h1 { font-size:clamp(26px,3vw,32px); line-height:1.3; letter-spacing:-.02em; margin:0; }
.bm-ui h2 { font-size:20px; line-height:1.4; margin:0; }
.bm-ui p { margin:0; }
.bm-ui a { color:var(--bm-action); text-underline-offset:4px; }
.bm-muted { color:var(--bm-muted); }
.bm-caption { font-size:14px; }
.bm-stack { display:grid; gap:var(--bm-space-4); }
.bm-row { display:flex; align-items:center; flex-wrap:wrap; gap:var(--bm-space-3); }
.bm-panel { background:var(--bm-surface); border:1px solid var(--bm-line); border-radius:var(--bm-radius-panel); padding:var(--bm-space-5); }
.bm-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:var(--bm-target); padding:10px 20px; border:1px solid transparent; border-radius:var(--bm-radius-control); background:var(--bm-action); color:white; font-weight:600!important; cursor:pointer; text-align:center; text-decoration:none; }
.bm-button--secondary { background:transparent; border-color:var(--bm-action); color:var(--bm-action); }
.bm-button--quiet { color:var(--bm-action); background:transparent; }
.bm-button--danger { color:var(--bm-danger); background:transparent; border-color:var(--bm-danger); }
.bm-button:disabled { opacity:.5; cursor:not-allowed; }
.bm-icon-button { width:48px; min-width:48px; padding:12px; }
.bm-icon-button svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; }
.bm-icon-button[aria-pressed=true] svg { fill:currentColor; }
.bm-field { display:grid; gap:8px; font-weight:600; }
.bm-field :is(input,select,textarea) { min-width:0; width:100%; min-height:48px; padding:12px; border:1px solid #72888c; border-radius:12px; color:var(--bm-ink); background:white; font-weight:400; }
.bm-field [aria-invalid=true] { border:2px solid var(--bm-danger); }
.bm-error { color:var(--bm-danger); font-size:14px; }
.bm-check { display:flex; align-items:center; gap:12px; min-height:48px; cursor:pointer; }
.bm-check input { width:20px; height:20px; flex:none; accent-color:var(--bm-action); }
.bm-segments { display:flex; gap:4px; padding:4px; background:var(--bm-tint); border-radius:14px; }
.bm-segments button { flex:1; min-width:0; min-height:48px; padding:8px; border:0; background:transparent; color:var(--bm-muted); border-radius:10px; cursor:pointer; font-weight:600; }
.bm-segments button[aria-pressed=true] { background:white; color:var(--bm-ink); box-shadow:0 1px 3px #183e471a; }
.bm-setting { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:60px; padding:12px 0; border-bottom:1px solid var(--bm-line); color:inherit!important; text-decoration:none; }
.bm-setting:last-child { border-bottom:0; }
.bm-notice { padding:16px; background:var(--bm-tint); border-radius:12px; }
@media (hover:hover) { .bm-button:not(:disabled):hover { filter:brightness(.94); } }
@media (max-width:599px) { .bm-panel { padding:16px; } }
@media (prefers-reduced-motion:reduce) { .bm-ui *, .bm-ui *::before, .bm-ui *::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
