@import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&display=swap'); /* 2026-10-18 DA3: 等幅の札・数字（アプリと同じ Space Mono） */
/* プライバシーポリシー・利用規約の共通スタイル（アプリと同じ暗い配色。長文なので本文は大きめ・行間広め） */
:root { --bg:#141413; --card:#1f1f1d; --line:#353530; --ink:#f2efe8; --soft:#b9b5ab; --faint:#959188; --green:#ef5e26; --green-d:#f37949;
  /* 2026-10-18 DA3: アプリと同じ「A 計器」の配色（変数の名前は前のまま。--green＝信号色のオレンジ）。数字・札は等幅（--font-mono） */ --amber:#f5c542; --coral:#f472b6; --lime-rgb:239,94,38; --amber-rgb:245,197,66; --ov-rgb:255,255,255; --glass-rgb:20,20,19; --glass2-rgb:20,20,19; color-scheme:dark;
  --font-mono:'Space Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono';
  /* 2026-10-17 C9: 文字の段（app.css と同じ） */
  --fs-2xs:0.6875rem; --fs-xs:0.75rem; --fs-s:0.8125rem; --fs-m:0.875rem; --fs-l:1rem; --fs-xl:1.25rem; --fs-2xl:1.5rem; --fs-3xl:2rem; --fs-display:2.75rem; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:-apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Segoe UI", sans-serif; font-size:var(--fs-l); line-height:1.85; text-wrap:pretty; line-break:strict; }
a { color:var(--green-d); text-underline-offset:3px; }
/* 改行: 日本語は文節で折る（Chrome系）。文節で折れないブラウザ（Safari）では pretty を使わない（全部の行を短く詰めて「公式ア／プリ」のように語の途中で折れた） */
html[lang="ja"] body { word-break:auto-phrase; }
@supports not (word-break:auto-phrase) { body { text-wrap:wrap; } }
/* 下のタブ（アプリと同じ5画面へ戻る。フッターからこのページに来ても下のタブが消えないように） */
body.lg-has-tabs { padding-bottom:calc(70px + env(safe-area-inset-bottom)); }
#lg-tabs { position:fixed; left:0; right:0; bottom:0; z-index:20; display:grid; grid-template-columns:repeat(5, 1fr); background:rgba(var(--glass-rgb),0.95); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom); }
#lg-tabs a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:58px; font-size:var(--fs-xs); font-weight:800; color:var(--faint); text-decoration:none; -webkit-tap-highlight-color:transparent; }
#lg-tabs a svg { width:22px; height:22px; }
#lg-tabs a:focus-visible { outline:2px solid var(--green); outline-offset:-4px; border-radius:12px; }
@media (min-width:769px) { #lg-tabs { left:50%; right:auto; bottom:14px; transform:translateX(-50%); width:min(560px, 94vw); border:1px solid var(--line); border-radius:18px; box-shadow:0 10px 32px rgba(0,0,0,0.55); padding-bottom:0; } body.lg-has-tabs { padding-bottom:96px; } }
.lg-head { position:sticky; top:0; z-index:5; display:flex; align-items:center; gap:12px; justify-content:space-between; padding:10px 18px; background:rgba(var(--glass2-rgb),0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.lg-brand { display:flex; align-items:center; gap:8px; color:var(--ink); text-decoration:none; font-weight:800; letter-spacing:0.12em; font-size:var(--fs-s); }
.lg-brand img { width:28px; height:28px; border-radius:8px; }
.lg-lang { display:flex; border:1px solid var(--line); border-radius:999px; overflow:hidden; }
.lg-lang button { background:none; border:0; color:var(--soft); font:inherit; font-size:var(--fs-s); font-weight:700; padding:6px 13px; min-height:36px; cursor:pointer; }
.lg-lang button.on { background:rgba(var(--lime-rgb),0.14); color:var(--green-d); }
.lg-main { max-width:760px; margin:0 auto; padding:24px 20px 60px; }
h1 { font-size:var(--fs-2xl); line-height:1.35; margin:10px 0 4px; }
h2 { font-size:var(--fs-xl); margin:36px 0 8px; padding-top:14px; border-top:1px solid var(--line); scroll-margin-top:70px; }
h3 { font-size:var(--fs-l); margin:20px 0 4px; color:var(--green-d); }
p, li { color:var(--ink); }
ul, ol { padding-left:1.4em; margin:6px 0; }
li { margin:3px 0; }
.lg-meta { color:var(--faint); font-size:var(--fs-s); margin:0 0 16px; }
.lg-toc { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:10px 16px; margin:18px 0; font-size:var(--fs-m); }
.lg-toc ol { margin:0; columns:2; column-gap:24px; }
@media (max-width:560px) { .lg-toc ol { columns:1; } }
.lg-table { width:100%; border-collapse:collapse; margin:10px 0; font-size:var(--fs-s); line-height:1.6; }
.lg-table th, .lg-table td { border:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top; }
.lg-table th { background:var(--card); color:var(--soft); font-weight:700; white-space:nowrap; }
.lg-todo { color:var(--amber); font-weight:700; }
.lg-contact { display:inline-flex; align-items:center; min-height:44px; padding:8px 18px; border:1px solid var(--green); border-radius:12px; text-decoration:none; font-weight:800; background:none; } /* 2026-10-18 FIX1: 地を敷かない（明るい配色で濃いオレンジの字が 4.5:1 を切った。枠と字だけ） */
.lg-contact.pending { border-color:var(--line); color:var(--faint); background:none; pointer-events:none; }
.lg-foot { margin-top:40px; padding-top:16px; border-top:1px solid var(--line); font-size:var(--fs-s); color:var(--faint); }
/* スマホでは表を行ごとのカードにする（3列だと1列が数文字幅になり読みにくい）。見出しは legal.js が data-label に写す */
@media (max-width:560px) {
  .lg-table thead { display:none; }
  .lg-table, .lg-table tbody, .lg-table tr, .lg-table td { display:block; width:100%; }
  .lg-table tr { border:1px solid var(--line); border-radius:12px; padding:8px 12px; margin:10px 0; background:var(--card); }
  .lg-table td { border:0; padding:3px 0; }
  .lg-table td::before { content:attr(data-label); display:block; font-size:var(--fs-xs); font-weight:700; color:var(--faint); }
}
/* お問い合わせフォーム */
.ct-form { margin:18px 0 0; display:flex; flex-direction:column; gap:14px; }
.ct-l { display:flex; flex-direction:column; gap:6px; font-weight:700; font-size:var(--fs-m); }
.ct-l small { font-weight:400; color:var(--faint); font-size:var(--fs-s); }
.ct-form select, .ct-form textarea, .ct-form input[type=text] { font:inherit; font-size:var(--fs-l); color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:10px; padding:10px 12px; min-height:44px; width:100%; }
.ct-form textarea { resize:vertical; line-height:1.6; }
.ct-form select:focus, .ct-form textarea:focus, .ct-form input:focus { outline:none; border-color:var(--green); }
.ct-form button.lg-contact { align-self:flex-start; cursor:pointer; color:var(--green-d); font-size:var(--fs-l); }
.ct-form button[disabled] { opacity:0.5; cursor:default; }
.ct-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.ct-status { min-height:1.5em; margin:0; color:var(--green-d); font-weight:700; }
/* 2026-10-22 CONF: 予測・完走確率のお問い合わせの前の案内（ITRA・過去の大会が無いとき）。枠だけ・それでも送れる */
.ct-conf { padding:10px 12px; border:1px dashed var(--green); border-radius:6px; font-size:var(--fs-m); line-height:1.7; }
.ct-conf[hidden] { display:none; } .ct-conf p { margin:0 0 8px; } .ct-conf a { font-weight:800; white-space:nowrap; }
.ct-conf .ct-anyway { cursor:pointer; color:var(--green-d); font:inherit; font-weight:800; font-size:var(--fs-m); }
/* よくある質問（開閉） */
.faq { border:1px solid var(--line); border-radius:12px; background:var(--card); margin:8px 0; padding:0 14px; }
/* ▶は枠の内側に描く（以前は list-style-position:outside で、印がカードの枠線に重なっていた） */
.faq summary { cursor:pointer; font-weight:700; padding:12px 0 12px 22px; min-height:44px; list-style:none; position:relative; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::before { content:""; position:absolute; left:2px; top:21px; border-left:8px solid currentColor; border-top:5px solid transparent; border-bottom:5px solid transparent; transition:transform .15s; }
.faq[open] summary { color:var(--green-d); }
.faq[open] summary::before { transform:rotate(90deg); }
@media (prefers-reduced-motion: reduce) { .faq summary::before { transition:none; } }
.faq p { margin:0 0 12px; }
/* 返信先が空のときの控えめな案内（2026-10-04 要望が「不具合」・返信先空欄で届き、返せなかった） */
.ct-l small.ct-hint { color:var(--soft); padding:4px 8px; border-left:3px solid var(--green); background:rgba(var(--lime-rgb),0.06); border-radius:4px; }
.ct-l small[hidden] { display:none; }
/* 大会ごとの公開ページ（race/*.html。tools/build-race-pages.js が作る。2026-10-10） */
.rp-head-cta { color:var(--soft); font-size:var(--fs-s); font-weight:700; text-decoration:none; padding:8px 4px; }
.rp-crumb { font-size:var(--fs-s); color:var(--faint); margin:0 0 4px; }
.rp-crumb a { color:var(--soft); }
.rp-alias { font-size:var(--fs-s); color:var(--soft); margin:-8px 0 12px; }
.rp-cta { background:rgba(var(--lime-rgb),0.07); border:1px solid rgba(var(--lime-rgb),0.35); border-radius:14px; padding:14px 16px; margin:18px 0; }
.rp-cta p { margin:0 0 10px; }
.rp-note { font-size:var(--fs-s); color:var(--soft); }
.rp-dl { display:grid; grid-template-columns:auto 1fr; gap:0; margin:10px 0; border:1px solid var(--line); border-radius:12px; overflow:hidden; font-size:var(--fs-m); }
.rp-dl dt, .rp-dl dd { margin:0; padding:9px 12px; border-top:1px solid var(--line); }
.rp-dl dt { color:var(--soft); font-weight:700; background:var(--card); white-space:nowrap; }
.rp-dl dt:first-of-type, .rp-dl dt:first-of-type + dd { border-top:0; }
.rp-dl dd { overflow-wrap:anywhere; }
.rp-scroll { overflow-x:auto; margin:10px 0; border:1px solid var(--line); border-radius:12px; }
.rp-tbl { width:100%; border-collapse:collapse; font-size:var(--fs-s); line-height:1.5; }
.rp-tbl th, .rp-tbl td { padding:8px 10px; text-align:left; border-top:1px solid var(--line); vertical-align:top; }
.rp-tbl thead th { border-top:0; background:var(--card); color:var(--soft); font-size:var(--fs-s); white-space:nowrap; }
.rp-tbl td:nth-child(2), .rp-tbl td:nth-child(4), .rp-tbl td:nth-child(5) { white-space:nowrap; }
.rp-tbl td small { display:block; font-size:var(--fs-xs); color:var(--faint); }
@media (max-width:560px) { .rp-tbl .rp-n, .rp-tbl .rp-seg { display:none; } .rp-tbl th, .rp-tbl td { padding:8px 7px; } .rp-tbl { font-size:var(--fs-s); } }
.rp-fig { margin:8px 0 4px; }
.rp-fig svg { width:100%; height:auto; display:block; background:var(--card); border:1px solid var(--line); border-radius:12px; }
.rp-fig figcaption { font-size:var(--fs-xs); color:var(--faint); margin-top:6px; }
.rp-area { fill:rgba(var(--lime-rgb),0.16); }
.rp-line { fill:none; stroke:var(--green); stroke-width:1.6; stroke-linejoin:round; }
.rp-grid { stroke:var(--line); stroke-width:1; }
.rp-aid { stroke:var(--amber); stroke-width:1; stroke-dasharray:3 3; opacity:0.7; }
.rp-aidn { fill:var(--amber); font-size:var(--fs-m); font-weight:700; }
.rp-ax { fill:var(--faint); font-size:var(--fs-m); }
.rp-rel { list-style:none; padding:0; }
.rp-rel li { margin:0; padding:9px 0; border-bottom:1px solid var(--line); }
.rp-rel li a { font-weight:700; }
.rp-rel li span { display:block; font-size:var(--fs-s); color:var(--faint); margin-top:2px; }
.rp-intro { font-size:var(--fs-l); line-height:1.8; margin:4px 0 12px; }
.rp-cdesc { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin:0 0 14px; }
.rp-cdesc b { display:block; font-size:var(--fs-xs); letter-spacing:0.06em; color:var(--green-d); margin-bottom:4px; }
.rp-cdesc p { margin:0; font-size:var(--fs-m); line-height:1.8; }
/* EN 2026-10-11: 大会ページの上の言語の切り替え（日本語版 ⇄ 英語版 en/race/） */
.rp-head-r { display:flex; align-items:center; gap:6px; }
.rp-lang { display:inline-flex; align-items:center; min-height:40px; padding:0 12px; border:1px solid var(--line); border-radius:999px; color:var(--soft); font-size:var(--fs-s); font-weight:700; text-decoration:none; }
.rp-lang:hover { color:var(--green-d); border-color:rgba(var(--lime-rgb),0.45); }
.rp-head-cta { display:inline-flex; align-items:center; min-height:40px; }
/* PAGES 2026-10-11: 大会ページの「ITRA 指数で予測」（race/predict.js）。フォーム → 完走予測・エイドの通過と関門の余裕の表 → アプリへ */
.rpp { background:var(--card); border:1px solid rgba(var(--lime-rgb),0.35); border-radius:14px; padding:4px 16px 2px; margin:18px 0; }
.rpp .rpp-h { border-top:0; margin:10px 0 4px; padding-top:0; font-size:var(--fs-l); }
.rpp-lead { font-size:var(--fs-m); color:var(--soft); margin:0 0 10px; line-height:1.7; }
.rpp-form label { display:block; font-size:var(--fs-s); font-weight:800; letter-spacing:0.04em; color:var(--soft); margin-bottom:4px; }
.rpp-row { display:flex; gap:8px; flex-wrap:wrap; }
.rpp-row input { flex:1 1 140px; min-width:0; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:12px; background:var(--bg); color:var(--ink); font:inherit; font-size:var(--fs-xl); font-weight:700; }
.rpp-row input:focus { outline:2px solid var(--green); outline-offset:1px; }
.rpp-row button.lg-contact { cursor:pointer; color:var(--green-d); font:inherit; font-weight:800; font-size:var(--fs-l); }
.rpp-row button.lg-contact:disabled { opacity:0.6; cursor:progress; }
.rpp-err { color:var(--coral); font-size:var(--fs-s); margin:6px 0 0; }
.rpp-out { margin:14px 0 4px; }
.rpp-total { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; padding:10px 14px; border-radius:12px; background:rgba(var(--lime-rgb),0.10); border:1px solid rgba(var(--lime-rgb),0.45); }
.rpp-total span { font-size:var(--fs-s); font-weight:800; color:var(--soft); letter-spacing:0.06em; }
.rpp-total b { font-size:var(--fs-3xl); line-height:1.2; color:var(--green-d); font-variant-numeric:tabular-nums; }
.rpp-total small { font-size:var(--fs-s); color:var(--soft); }
.rpp-m { font-size:var(--fs-s); margin:8px 0 0; }
.rpp-tbl td small { display:block; }
.rpp-tbl .rpp-t, .rpp-tbl .rpp-c { white-space:nowrap; font-variant-numeric:tabular-nums; }
.rpp-tbl .rpp-c b { display:block; font-size:var(--fs-s); }
.rpp-ok { color:var(--green-d); } .rpp-warn { color:var(--amber); } .rpp-ng { color:var(--coral); }
.rpp-cta { margin:12px 0 14px; }
/* LANG 2026-10-11: 大会ページの上の言語の切り替え（5言語の小さなメニュー。<details> なので JS なし）。狭い画面では地球の印だけ */
.rp-langs { position:relative; }
.rp-langs > summary { list-style:none; display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 12px; border:1px solid var(--line); border-radius:999px; color:var(--soft); font-size:var(--fs-s); font-weight:700; cursor:pointer; white-space:nowrap; }
.rp-langs > summary::-webkit-details-marker { display:none; }
.rp-langs > summary:hover, .rp-langs[open] > summary { color:var(--green-d); border-color:rgba(var(--lime-rgb),0.45); }
.rp-langs-m { position:absolute; right:0; top:calc(100% + 6px); z-index:10; display:flex; flex-direction:column; min-width:168px; padding:6px; background:var(--card); border:1px solid var(--line); border-radius:12px; box-shadow:0 10px 28px rgba(0,0,0,0.55); }
.rp-langs-m .rp-lang, .rp-lang-cur { display:flex; align-items:center; min-height:40px; padding:0 12px; border:0; border-radius:8px; font-size:var(--fs-m); }
.rp-langs-m .rp-lang:hover { background:rgba(var(--ov-rgb),0.06); }
.rp-lang-cur { color:var(--green-d); font-weight:800; }
.rp-lang-cur::after { content:"✓"; margin-left:auto; padding-left:12px; }
@media (max-width:380px) { .rp-langs > summary span { display:none; } .rp-langs > summary { padding:0 11px; } }
/* PRED 2026-10-11: 完走者データの無い大会の「目安（この大会の完走者データなし）」の印（大会ページの予測。race/predict.js） */
.rpp-est { display:inline-block; margin:2px 0 8px; padding:3px 10px; border-radius:999px; font-size:var(--fs-s); font-weight:800; color:var(--amber); background:rgba(var(--amber-rgb),0.12); border:1px solid rgba(var(--amber-rgb),0.45); }
.rpp-out .rpp-est { margin:10px 0 0; }

/* COUNT 2026-10-11 */
/* 大会ページの「アプリで◯人がこの大会を目標にしています」（race/count.js が見出しの下に足す。3人以上のときだけ） */
.rp-count { display:inline-flex; align-items:center; gap:6px; margin:-8px 0 14px; padding:3px 11px; border-radius:999px; font-size:var(--fs-s); font-weight:700; line-height:1.6; color:var(--green-d); background:rgba(var(--lime-rgb),0.10); border:1px solid rgba(var(--lime-rgb),0.28); }
.rp-count::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--green); flex:0 0 auto; }


/* BRIEF 2026-10-11 */
.rp-rn { margin:6px 0 10px; }
.rp-rn a { display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border:1px solid var(--green); border-radius:999px; font-weight:800; text-decoration:none; }
.rp-rn a:focus-visible { outline:2px solid var(--green); outline-offset:2px; }
.faq ul { margin:0 0 12px; padding-left:1.3em; } .faq li + li { margin-top:6px; } /* 2026-10-17 C21 */
/* 2026-10-17 C24: 下のリンクはいまの言語だけ（以前は「よくある質問 / FAQ」と2言語） */
html[lang="ja"] .lg-foot [lang="en"], html[lang="en"] .lg-foot [lang="ja"] { display:none; }
/* 2026-10-17 B31: 「ほかの大会」の過ぎた大会の札（race/count.js ended） */
.rp-rel li .rp-end { display:inline-block; margin-left:8px; padding:1px 8px; border:1px solid var(--line); border-radius:999px; font-size:var(--fs-xs); font-weight:700; color:var(--ink-faint); vertical-align:1px; }
/* ===== R3 2026-10-18: 明るい配色（アプリの設定 › 表示 › 配色と同じ値。自動＝端末の設定。アプリで選んだライト／ダークは先頭の小さな <script> が data-theme に） ===== */
:root[data-theme="light"] { color-scheme:light; --bg:#f5f3ee; --card:#f9f8f3; --line:#d3d0c7; --ink:#12110f; --soft:#3a3833; --faint:#55524b; --green:#aa3c13; --green-d:#aa3c13;
    --amber:#524000; --coral:#a3164f; --lime-rgb:170,60,19; --amber-rgb:82,64,0; --ov-rgb:18,17,15; --glass-rgb:249,248,243; --glass2-rgb:249,248,243; }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) { color-scheme:light; --bg:#f5f3ee; --card:#f9f8f3; --line:#d3d0c7; --ink:#12110f; --soft:#3a3833; --faint:#55524b; --green:#aa3c13; --green-d:#aa3c13;
    --amber:#524000; --coral:#a3164f; --lime-rgb:170,60,19; --amber-rgb:82,64,0; --ov-rgb:18,17,15; --glass-rgb:249,248,243; --glass2-rgb:249,248,243; } }
/* ===== DA3 2026-10-18: 「A 計器」— 札・見出しの番号・数字は等幅、角は小さく、目次と FAQ は計器の行 ===== */
.lg-brand, .lg-meta, .lg-lang button, #lg-tabs a, .rp-crumb, .rp-lang, .rp-langs > summary, .rp-count, .rpp-est, .rp-end, .rpp-total span, .rp-dl dt, .lg-table th, .rp-tbl thead th { font-family:var(--font-mono),-apple-system,sans-serif; letter-spacing:0.06em; }
.lg-brand { letter-spacing:0.18em; }
.rpp-total b, .rp-tbl td, .rpp-tbl .rpp-t, .rpp-tbl .rpp-c { font-family:var(--font-mono),-apple-system,sans-serif; }
h2 { border-top:1px solid var(--line); }
h2::before { content:'/ '; font-family:var(--font-mono),sans-serif; color:var(--green-d); }
.lg-toc, .faq, .rp-cdesc, .rp-dl, .rp-scroll, .rp-fig svg, .rpp, .rp-cta, .rpp-total, .lg-table tr { border-radius:10px; }
.lg-lang, .rp-lang, .rp-langs > summary, .rp-count, .rpp-est, .rp-rn a, .lg-contact, .rp-end { border-radius:6px; }
.lg-lang button.on { background:var(--green); color:var(--bg); }
.lg-toc { counter-reset:lgt; } .lg-toc li { font-family:inherit; }
.rp-count::before { border-radius:0; transform:rotate(45deg); }
.rp-line { stroke:var(--green); }
.rp-area { fill:rgba(var(--lime-rgb),0.12); }
.rp-aid { stroke:var(--soft); }
.rp-aidn { fill:var(--soft); font-family:var(--font-mono),sans-serif; }
#lg-tabs a[aria-current="page"], #lg-tabs a.on { color:var(--green); }
/* ===== SOR-3 2026-10-18: アプリとそろえる — 下のタブは「STATUS／状態」の2段・アイコンなし、言語メニューは角 4px・影なし、大会ページの断面は液晶の小窓 ===== */
#lg-tabs a { gap:2px; color:var(--soft); font-weight:700; border-top:2px solid transparent; }
#lg-tabs a svg { display:none; }
#lg-tabs .lg-mono { font-family:var(--font-mono),sans-serif; font-size:var(--fs-xs); letter-spacing:0.08em; font-weight:700; line-height:1.2; }
#lg-tabs .lg-tl { font-family:-apple-system, BlinkMacSystemFont, "Hiragino Sans", sans-serif; font-size:var(--fs-xs); line-height:1.3; letter-spacing:0; }
html[lang="en"] #lg-tabs .lg-mono { display:none; }
html[lang="en"] #lg-tabs .lg-tl { font-family:var(--font-mono),sans-serif; letter-spacing:0.08em; text-transform:uppercase; }
#lg-tabs a[aria-current="page"], #lg-tabs a.on { border-top-color:var(--green); }
@media (min-width:769px) { #lg-tabs { border-radius:14px; overflow:hidden; box-shadow:none; } }
.rp-langs-m { border-radius:4px; box-shadow:none; border-color:var(--soft); }
.rp-langs-m .rp-lang, .rp-lang-cur { border-radius:2px; font-family:var(--font-mono),-apple-system,sans-serif; letter-spacing:0.04em; }
.rp-langs > summary { border-radius:4px; }
/* 断面: 灰色の液晶の小窓。点線の道筋・◆（エイド・番号は下の表）・(!)（関門）・○スタート・■フィニッシュ。液晶の色は暗い・明るい配色とも同じ（字は 7:1 以上）
   道筋の SVG は横に伸び縮みし、印と字は % の位置の HTML（build-race-pages.js profileSvg）。上の 46px は (!) の2段 */
.rp-fig.rp-lcd { --lcd:#a9b1b2; --lcd-ink:#141617; background:var(--lcd); color:var(--lcd-ink); border-radius:10px; padding:8px 12px 6px; margin:8px 0 4px; overflow:hidden; }
.rp-lcd .rl-h, .rp-lcd .rl-x { display:flex; justify-content:space-between; gap:8px; font-family:var(--font-mono),sans-serif; font-size:var(--fs-xs); letter-spacing:0.08em; line-height:1.5; color:var(--lcd-ink); }
.rp-lcd .rl-h span:first-child { font-weight:700; letter-spacing:0.16em; }
.rp-lcd .rl-w { padding:46px 0 20px; }
.rp-lcd .rl-p { position:relative; height:112px; }
@media (min-width:560px) { .rp-lcd .rl-p { height:150px; } }
.rp-fig.rp-lcd svg { position:absolute; inset:0; width:100%; height:100%; display:block; overflow:visible; background:none; border:0; border-radius:0; }
.rp-lcd .rl-a { fill:rgba(20,22,23,0.14); }
.rp-lcd .rl-l { fill:none; stroke:var(--lcd-ink); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:0.1 5; }
.rp-lcd .rl-g { fill:none; stroke:rgba(20,22,23,0.3); stroke-width:1; stroke-dasharray:1 4; }
.rp-lcd .rl-p > i, .rp-lcd .rl-p > b { position:absolute; display:block; transform:translate(-50%, -50%); }
.rp-lcd .rl-d { width:9px; height:9px; background:var(--lcd-ink); transform:translate(-50%, -50%) rotate(45deg) !important; }
.rp-lcd .rl-n { transform:translate(-50%, calc(-100% - 7px)) !important; padding:0 1px; background:var(--lcd); font-family:var(--font-mono),sans-serif; font-size:var(--fs-xs); font-weight:700; line-height:1.1; color:var(--lcd-ink); }
.rp-lcd .rl-cl { width:0; border-left:1px dashed var(--lcd-ink); transform:translateX(-50%) !important; }
.rp-lcd .rl-c { width:20px; height:20px; margin-top:-10px; transform:translateX(-50%) !important; border:2px solid var(--lcd-ink); border-radius:50%; background:var(--lcd); font-family:var(--font-mono),sans-serif; font-size:var(--fs-xs); font-weight:700; line-height:16px; text-align:center; color:var(--lcd-ink); }
.rp-lcd .rl-s { width:11px; height:11px; border:2.5px solid var(--lcd-ink); border-radius:50%; background:var(--lcd); }
.rp-lcd .rl-f { width:11px; height:11px; background:var(--lcd-ink); }
.rp-lcd .rl-k { position:absolute; top:100%; margin-top:3px; transform:translateX(-50%); font-family:var(--font-mono),sans-serif; font-size:var(--fs-xs); line-height:1.2; color:var(--lcd-ink); }
.rp-fig.rp-lcd figcaption { color:var(--lcd-ink); font-size:var(--fs-xs); line-height:1.6; margin-top:4px; padding-top:6px; border-top:1px dashed rgba(20,22,23,0.35); }
/* THEMES 2026-10-20: アプリで選んだテーマ（先頭の小さな <script> が data-palette を付ける）に合わせる。値は app.css の「THEMES 2026-10-20」と同じ。
   変数の名前は前のまま（--green＝差し色・--green-d＝差し色の字）。ロゴの画像はどのテーマでもオレンジのまま */
/* 2026-10-20 SOFT: 差し色の彩度と明るさを少し下げ、地・面・枠を少し持ち上げた（app.css と同じ値） */
:root[data-palette="ice"] { --green:#59bee6; --green-d:#93d4f0; --lime-rgb:89,190,230; }
:root[data-palette="amber"] { --green:#e6ad45; --green-d:#f0c571; --lime-rgb:230,173,69; }
:root[data-palette="rednight"] { --bg:#151110; --card:#211b19; --line:#3a2e29; --ink:#e8d5ca; --soft:#b9a398; --faint:#a08b81; --green:#eb5c51; --green-d:#f0877b; --lime-rgb:235,92,81; --ov-rgb:232,213,202; --glass-rgb:33,27,25; --glass2-rgb:33,27,25; }
:root[data-palette="mono"] { --bg:#141414; --card:#1f1f1f; --line:#353535; --ink:#ececec; --soft:#b5b5b5; --faint:#949494; --green:#ece9e2; --green-d:#ece9e2; --lime-rgb:236,233,226; --glass-rgb:31,31,31; --glass2-rgb:31,31,31; }
:root[data-palette="classic"] { --bg:#131614; --card:#1e2320; --line:#333b36; --ink:#e6ebe8; --soft:#9fa8a3; --faint:#8f9994; --green:#29cf38; --green-d:#83c793; --lime-rgb:41,207,56; --glass-rgb:30,35,32; --glass2-rgb:30,35,32; }
/* 2026-10-22 SUPPORT2: よくある質問の下の方の応援（Ko-fi）の1行。小さく・枠の点線で区切る */
.lg-sup { text-wrap:balance; margin:32px 0 0; padding-top:12px; border-top:1px dashed var(--line); font-size:var(--fs-s); color:var(--soft); }
.lg-sup a { display:inline-block; padding:12px 4px; margin:-12px 0; white-space:nowrap; color:var(--ink); font-weight:700; text-underline-offset:3px; } /* 押す所は 44px・行の高さは変えない */
.lg-vh { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
