/* 共通：多言語フォントと基本トークン */
:root {
  --f-base: "Noto Sans", "Noto Sans JP", system-ui, sans-serif;
  --c-accent: #0e7c86;
  --c-accent-2: #f2a516;
  --c-warn: #c2410c;
  --c-ok: #15803d;
  /* 言語ごとの識別色（大画面の見出し線などに使用） */
  --l-ja: #f8fafc; --l-1: #38bdf8; --l-2: #f472b6; --l-3: #a3e635; --l-4: #fbbf24; --l-5: #c084fc; --l-6: #2dd4bf;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: var(--f-base); -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }

/* 文字体系ごとのフォントと行の高さ（上下に大きい文字は行間を広げ、切れや重なりを防ぐ） */
:lang(ja) { font-family: "Noto Sans JP", var(--f-base); }
:lang(zh-Hans) { font-family: "Noto Sans SC", "Noto Sans", sans-serif; }
:lang(ko) { font-family: "Noto Sans KR", "Noto Sans", sans-serif; }
:lang(th) { font-family: "Noto Sans Thai", "Noto Sans", sans-serif; line-height: 1.75; }
:lang(my) { font-family: "Noto Sans Myanmar", "Noto Sans", sans-serif; line-height: 2; }
:lang(km) { font-family: "Noto Sans Khmer", "Noto Sans", sans-serif; line-height: 1.9; }
:lang(lo) { font-family: "Noto Sans Lao", "Noto Sans", sans-serif; line-height: 1.85; }
:lang(si) { font-family: "Noto Sans Sinhala", "Noto Sans", sans-serif; line-height: 1.8; }
:lang(ta) { font-family: "Noto Sans Tamil", "Noto Sans", sans-serif; line-height: 1.75; }
:lang(bn) { font-family: "Noto Sans Bengali", "Noto Sans", sans-serif; line-height: 1.75; }
:lang(hi), :lang(ne) { font-family: "Noto Sans Devanagari", "Noto Sans", sans-serif; line-height: 1.75; }
/* タミル語などは単語が長いので、狭い列では途中で折り返す */
.tx { overflow-wrap: anywhere; word-break: normal; }

mark { background: rgba(242, 165, 22, .28); color: inherit; border-radius: 3px; padding: 0 .1em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }

.badge-weak { display: inline-block; font-size: 11px; line-height: 1; padding: 3px 6px; border-radius: 999px; background: #fde7d9; color: #9a3412; font-family: "Noto Sans JP", sans-serif; font-weight: 600; vertical-align: middle; white-space: nowrap; }

.toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(20px); opacity: 0; transition: .25s; z-index: 1000; max-width: min(92vw, 640px);
  background: #1f2937; color: #fff; padding: 12px 18px; border-radius: 10px; font-size: 14px; line-height: 1.6; box-shadow: 0 8px 30px rgba(0,0,0,.25); pointer-events: none; font-family: "Noto Sans JP", sans-serif; }
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
