/* 徴税庁 令和108年分確定申告書作成コーナー
   配色：緑ベース（引き継ぎ書 7-1）。スマホ優先・横スクロールなし・ボタンは高さ44px以上。 */
:root {
  --green: #1B7F4B; --green-dark: #145E38; --green-pale: #E6F2EA;
  --yellow: #F5C242; --yellow-line: #C9971A;
  --ink: #1A1F26; --sub: #4A5563; --line: #C9D1DB; --bg: #EEF1F5;
  --orange: #9A4A06; --red: #8F1D15;
  --night: #1E2A24;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.7 'BIZ UDPGothic', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif; }
#app { min-height: 100vh; display: flex; flex-direction: column; }
#app.dark { background: var(--night); }
h1 { font-size: 22px; line-height: 1.4; margin: 0 0 12px; }
h2 { font-size: 17px; margin: 20px 0 8px; }
h3 { font-size: 15px; margin: 16px 0 8px; }
p { margin: 0 0 12px; }
.small { font-size: 13px; color: var(--sub); }
.center { text-align: center; }
.danger { color: var(--red); font-weight: 700; font-size: 14px; margin-top: 12px; }

/* ── 詳細な注意事項（免責の全文） ── */
.about-list { margin: 8px 0 0; padding-left: 1.3em; font-size: 15px; }
.about-list li { margin-bottom: 6px; }
.about-list a { color: var(--green-dark); font-weight: 700; }
.btn.link.inline { min-height: 0; padding: 0; font-size: inherit; color: inherit; }

/* ── ヘッダー・状態表示・フッター ── */
.gov { background: var(--green); color: #fff; }
.gov-in { max-width: 1120px; margin: 0 auto; padding: 12px 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.gov-org { font-size: 12px; letter-spacing: .08em; opacity: .9; }
.gov-title { font-size: 18px; font-weight: 700; line-height: 1.3; }
.gov-sub { margin-left: auto; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.4); border-radius: 4px; padding: 4px 10px; font-size: 13px; }
.status { position: sticky; top: 0; z-index: 5; background: #fff; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; padding: 8px 12px; font-size: 14px; }
.status b { font-variant-numeric: tabular-nums; }
.status .neg { color: var(--red); }
#app.dark .status { background: #14201A; color: #fff; border-bottom-color: #2F4038; }
#app.dark .status .neg { color: #FF9C8F; }
.disclaimer { margin-top: auto; padding: 16px; font-size: 12px; line-height: 1.6; color: var(--sub); text-align: center; max-width: 880px; align-self: center; }
#app.dark .disclaimer { color: #9FB0A7; }

/* ── ステップ表示 ── */
.steps { list-style: none; margin: 0; padding: 10px 12px; display: flex; gap: 6px; background: #fff; border-bottom: 1px solid var(--line); overflow: hidden; justify-content: center; }
.steps li { flex: 1 1 0; min-width: 0; max-width: 210px; font-size: 12px; line-height: 1.3; padding: 6px 4px; text-align: center; border-radius: 4px; background: var(--bg); color: var(--sub); }
.steps li span { display: block; font-weight: 700; font-size: 14px; }
.steps li.now { background: var(--green); color: #fff; font-weight: 700; }
.steps li.done { background: var(--green-pale); color: var(--green-dark); }

/* ── カード・表 ── */
main { width: 100%; }
.card, .doc { max-width: 960px; margin: 16px auto; padding: 20px 16px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.narrow { max-width: 560px; }
@media (max-width: 640px) { .card, .doc { margin: 0; border-left: 0; border-right: 0; border-radius: 0; } }
table { width: 100%; border-collapse: collapse; }
td { padding: 8px 6px; border-bottom: 1px solid #E3E8EE; vertical-align: top; }
td:last-child { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
tr.head td { background: var(--green-pale); font-weight: 700; font-size: 13px; color: var(--green-dark); text-align: left; }
tr.head td:last-child { text-align: right; }
tr.total td { font-weight: 700; border-top: 2px solid var(--green-dark); background: #F7FAF8; }
.list.click tr { cursor: pointer; }
.list.click tr:hover, .list.click tr:focus { background: var(--green-pale); outline: none; }
.list.click tr.sel { background: var(--green-pale); box-shadow: inset 4px 0 0 var(--green); }
.small-rows td { font-size: 14px; }
.plain { margin: 0 0 12px; padding-left: 20px; }
.plain li { margin-bottom: 6px; }
.two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
@media (max-width: 760px) { .two { grid-template-columns: minmax(0, 1fr); } }
.detail { background: #F7F9FB; border: 1px solid var(--line); border-radius: 6px; padding: 12px; }
.detail h2 { margin-top: 0; }
.fix { margin-bottom: 12px; display: flex; flex-direction: column; gap: 6px; }
.fix-title { font-size: 14px; font-weight: 700; }
.notice { background: var(--green-pale); border-left: 4px solid var(--green); padding: 8px 12px; font-size: 14px; }
.warn { background: #FFF6E8; border: 1px solid #E8B56A; border-radius: 6px; padding: 12px 14px; margin: 16px 0; font-size: 14px; color: #5A3204; }
.warn.strong { font-size: 17px; text-align: center; border-color: var(--orange); }
.bigsum { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; background: var(--green-pale); border: 1px solid var(--green); border-radius: 6px; padding: 14px 16px; margin-bottom: 8px; }
.bigsum b { font-size: 28px; font-variant-numeric: tabular-nums; }

/* ── ボタン ── */
.btn { font: inherit; min-height: 48px; padding: 10px 16px; border-radius: 8px; cursor: pointer; border: 1px solid transparent; line-height: 1.4; }
.btn:focus-visible { outline: 3px solid #2B6CB0; outline-offset: 2px; }
.btn.primary { background: var(--yellow); border-color: var(--yellow-line); color: var(--ink); font-weight: 700; }
.btn.primary:hover { background: #F0B62A; }
.btn.outline { background: #fff; border-color: var(--green); color: var(--green-dark); }
.btn.outline:hover { background: var(--green-pale); }
.btn.picked { background: var(--green); border-color: var(--green-dark); color: #fff; font-weight: 700; text-align: left; }
.fix .btn { text-align: left; }
.btn.link { background: none; color: var(--green-dark); text-decoration: underline; }
#app.dark .btn.link { color: #A8DDBD; }
.btn.big { font-size: 18px; padding: 14px 28px; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; margin-top: 20px; }
.actions.center { justify-content: center; }
.actions.column { flex-direction: column; }
.text { font: inherit; width: 100%; min-height: 48px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; }

/* ── 注意書き（役所の文書風） ── */
.doc { max-width: 800px; padding: 28px 20px 32px; }
.doc h1 { text-align: center; font-size: 22px; margin: 8px 0 20px; }
.doc-date { text-align: right; font-size: 14px; margin: 0; }
.doc-lead { border: 2px solid var(--ink); padding: 12px 14px; margin-bottom: 20px; font-size: 15px; }
.doc-lead p:last-child { margin: 0; }
.doc section h2 { font-size: 16px; margin: 18px 0 4px; }
.doc section p { font-family: 'BIZ UDPMincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif; padding-left: 2em; margin: 0; }
.doc-closing { margin-top: 24px; text-align: center; font-weight: 700; }
.doc section table { margin-top: 8px; }

/* ── 暗転（つなぎ・エンディング） ── */
.blackout { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; padding: 48px 20px; color: #fff; text-align: center; font-size: 20px; line-height: 2; min-height: 70vh; }
.blackout p { margin: 0; }
.ending h1 { font-size: 26px; }
.ending p { font-size: 16px; line-height: 1.9; }
.end-kind { font-size: 15px !important; letter-spacing: .3em; padding: 4px 18px; border: 1px solid currentColor; border-radius: 4px; }
.end-kind.clear { color: var(--yellow); }
.end-kind.bad { color: #FF9C8F; }

/* ── 本編：スマホ通知形式 ── */
.phone, .scene { max-width: 430px; margin: 0 auto; flex: 1; display: flex; flex-direction: column; color: var(--ink); }
.lock { padding: 24px 20px 10px; color: #fff; text-align: center; }
.lock-date { font-size: 14px; opacity: .85; }
.lock-time { font-size: 56px; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.notes { padding: 8px 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.note { background: rgba(255,255,255,.95); border-radius: 14px; padding: 10px 14px; font-size: 14px; line-height: 1.6; }
.note.official { background: #FFF6E8; border: 1px solid #E8B56A; }
.note-head { display: flex; justify-content: space-between; font-size: 12px; color: var(--sub); }
.note.official .note-head { color: #8A4205; font-weight: 700; }
.note-title { font-weight: 700; }
.sheet { margin-top: auto; background: #fff; border-radius: 18px 18px 0 0; padding: 14px 18px 22px; }
.sheet.flat { border-radius: 0; margin-top: 0; }
.grip { width: 40px; height: 4px; background: var(--line); border-radius: 2px; margin: 0 auto 12px; }
.sheet h2 { margin: 0 0 4px; font-size: 17px; }
.sheet-sub { font-size: 13px; color: var(--sub); margin-bottom: 12px; }
.choices { display: flex; flex-direction: column; gap: 8px; }
.choice { text-align: left; font-weight: 400 !important; }
.advisors { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); display: flex; flex-direction: column; gap: 6px; }
.advisors-title { font-size: 13px; color: var(--sub); }
.advisors .btn { display: flex; justify-content: space-between; gap: 12px; text-align: left; font-size: 15px; }
.advice { display: flex; gap: 10px; align-items: flex-start; background: var(--green-pale); border: 1px solid var(--green); border-radius: 8px; padding: 10px; margin-bottom: 12px; font-size: 14px; }
.advice svg { flex: none; }
.advice p { margin: 4px 0 0; }
.advice-name { font-weight: 700; font-size: 13px; color: var(--green-dark); }

/* ── 本編・調査：会話形式 ── */
.scene-top { display: flex; justify-content: space-between; gap: 12px; padding: 10px 16px; color: #fff; font-size: 13px; opacity: .9; }
.scene-stage { flex: 1; min-height: 240px; display: flex; align-items: flex-end; justify-content: center; background: linear-gradient(#DCE5DF 0 72%, #B9C7BE 72% 100%); }
.talk { background: #fff; border-top: 3px solid var(--green); padding: 0 18px 12px; }
.nameplate { display: inline-block; background: var(--green); color: #fff; font-weight: 700; font-size: 14px; padding: 2px 14px; border-radius: 0 0 6px 6px; margin-bottom: 8px; }
.talk p { margin: 0; font-size: 16px; }
.person { display: block; }

/* ── 解説（エンディング後） ── */
.explain { border: 1px solid var(--line); border-left: 5px solid var(--green); border-radius: 6px; padding: 14px 16px; margin: 16px 0; }
.explain-no { font-size: 13px; color: var(--sub); }
.explain h2 { margin: 2px 0 10px; font-size: 17px; }
.explain h3 { margin: 12px 0 2px; font-size: 14px; color: var(--green-dark); }
.explain p { margin: 0; }
.explain dl { margin: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 12px; align-items: baseline; }
.explain dt { font-size: 13px; font-weight: 700; padding: 1px 8px; border-radius: 4px; white-space: nowrap; }
.explain dt.yours { background: #FBE9E7; color: var(--red); }
.explain dt.right { background: var(--green-pale); color: var(--green-dark); }
.explain dd { margin: 0; }
.blackout .actions.column { width: 100%; max-width: 360px; }
.blackout .btn.outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.blackout .btn.outline:hover { background: rgba(255,255,255,.12); }

/* ── 見直し画面（帳票のタブ・行の操作） ── */
.card.wide { max-width: 1120px; }
.tabs { display: flex; flex-wrap: wrap; gap: 4px; }
.tab { font: inherit; font-size: 14px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-bottom: 0; border-radius: 6px 6px 0 0; background: var(--bg); color: var(--sub); cursor: pointer; }
.tab.on { background: var(--green); border-color: var(--green-dark); color: #fff; font-weight: 700; }
.tab:focus-visible { outline: 3px solid #2B6CB0; outline-offset: 2px; }
.form { border: 2px solid var(--green-dark); padding: 10px; background: #FBFDFC; }
.form-title { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-weight: 700; font-size: 14px; margin-bottom: 6px; }
.form-title span { font-weight: 400; color: var(--sub); }
.form table { margin-bottom: 10px; }
.form table:last-child { margin-bottom: 0; }
.list.click tr.plain-row { cursor: default; color: var(--sub); }
.list.click tr.plain-row:hover { background: none; }
.num { display: inline-block; min-width: 110px; padding: 2px 8px; border: 1px solid var(--green); border-radius: 4px; background: #fff; color: var(--ink); }
tr.sel .num { background: var(--yellow); border-color: var(--yellow-line); font-weight: 700; }
tr.deleted td { text-decoration: line-through; color: #8A9099; }
tr.rowact td { text-align: left; padding: 0 6px 10px; border-bottom: 1px solid var(--line); white-space: normal; }
.btn.mini { min-height: 36px; padding: 4px 10px; font-size: 13px; background: #fff; border-color: var(--line); color: var(--sub); border-radius: 6px; margin: 0 6px 0 0; }
.btn.mini:hover { border-color: var(--green); color: var(--green-dark); }
.edited { display: inline-block; font-size: 13px; font-weight: 700; color: var(--orange); margin-right: 10px; }

/* ── 調査：地の文（割り込み） ── */
.talk.narration { border-top-color: var(--sub); padding-top: 12px; color: var(--sub); font-style: normal; }

/* ── 行政からの書面（調査結果・労務従事命令書） ── */
.doc-to { margin: 8px 0 0; }
.doc-from { text-align: right; margin: 0 0 8px; }
.doc-body { margin: 0 0 16px; }
.a4 { max-width: 760px; min-height: 1075px; margin: 20px auto; padding: 56px 60px 48px; background: #fff; border: 1px solid #B9C0C8; box-shadow: 0 2px 10px rgba(0,0,0,.18);
  font-family: 'BIZ UDPMincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif; font-size: 15px; line-height: 1.85; color: #111; }
@media (max-width: 640px) { .a4 { margin: 0; padding: 28px 18px 32px; min-height: 0; border-left: 0; border-right: 0; } }
.a4-no { text-align: right; }
.a4-to { margin-top: 18px; font-size: 16px; }
.a4-from { display: flex; justify-content: flex-end; align-items: center; gap: 14px; margin-top: 12px; text-align: right; }
.seal { width: 74px; height: 74px; flex: none; border: 2px solid #B3261E; color: #B3261E; border-radius: 4px; display: flex; align-items: center; justify-content: center; text-align: center;
  font-size: 12px; line-height: 1.35; font-weight: 700; transform: rotate(-3deg); opacity: .85; }
.a4 h1 { text-align: center; font-size: 24px; letter-spacing: .4em; margin: 34px 0 22px; font-family: inherit; }
.a4-lead { text-indent: 1em; margin: 0; }
.a4-ki { text-align: center; margin: 18px 0 8px; }
.a4 section h2 { font-size: 15px; margin: 14px 0 2px; font-family: 'BIZ UDPGothic', sans-serif; }
.a4 section p { margin: 0; padding-left: 2em; }
.a4 section ol { margin: 0; padding-left: 4em; }
.a4 section ol li { list-style: none; position: relative; counter-increment: a4; }
.a4 section ol { counter-reset: a4; }
.a4 section ol li::before { content: '(' counter(a4) ')'; position: absolute; left: -2.2em; }
.a4-appeal { margin: 26px 0 0; padding: 10px 12px; border: 1px solid #111; font-size: 14px; line-height: 1.7; }
.a4-end { text-align: right; margin: 14px 0 0; }

/* ── イメージキャラクターと、電話相談 ── */
.mascot-box { display: flex; align-items: center; gap: 10px; margin: 18px 0 0; }
.mascot-box svg { flex: none; }
.bubble { position: relative; background: var(--green-pale); border: 1px solid var(--green); border-radius: 12px; padding: 8px 12px; font-size: 14px; line-height: 1.5; min-width: 0; }
.bubble::before { content: ''; position: absolute; left: -7px; top: 50%; width: 12px; height: 12px; margin-top: -6px; background: var(--green-pale); border-left: 1px solid var(--green); border-bottom: 1px solid var(--green); transform: rotate(45deg); }
.bubble b { display: block; font-size: 12px; color: var(--green-dark); }
.fineprint { margin: 14px 0 0; font-size: 10px; line-height: 1.5; color: #9AA3AD; text-align: right; }
.calling { color: #9EE6B8; }
.calling::before { content: '●'; margin-right: 4px; animation: blink 1.4s infinite; }
@keyframes blink { 50% { opacity: .2; } }
@media (prefers-reduced-motion: reduce) { .calling::before { animation: none; } }
.call-stage { background: linear-gradient(#D5E6DC 0 72%, #AFC6B8 72% 100%); }
.hold { text-align: center; padding: 16px; color: var(--green-dark); font-size: 14px; align-self: center; }
.hold p { margin: 6px 0 0; }
.talk p + p { margin-top: 6px; }
.btn.mini.close { float: right; margin: 0 0 6px 8px; }

/* ── 通報（全問正解なのに納税資金が足りないとき） ── */
.report { gap: 14px; font-size: 16px; line-height: 1.9; }
.report h1 { font-size: 22px; margin: 0 0 6px; }
.report h2 { font-size: 18px; margin: 14px 0 0; color: var(--yellow); }
.report p { max-width: 560px; }
.targets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; width: 100%; max-width: 900px; }
@media (max-width: 760px) { .targets { grid-template-columns: minmax(0, 1fr); } }
.target { font: inherit; text-align: left; display: flex; gap: 10px; align-items: flex-start; padding: 12px; min-height: 48px; border: 1px solid rgba(255,255,255,.4); border-radius: 8px; background: rgba(255,255,255,.06); color: #fff; cursor: pointer; }
.target:hover, .target:focus-visible { background: rgba(255,255,255,.14); border-color: var(--yellow); outline: none; }
.target svg { flex: none; }
.target span { font-size: 14px; line-height: 1.7; min-width: 0; }
.target b { display: block; font-size: 16px; color: var(--yellow); }
.ending .after { font-size: 14px; color: #C9D6CE; max-width: 560px; }

/* ── エンディングの内訳 ── */
.end-detail { width: 100%; max-width: 440px; border-collapse: collapse; font-size: 14px; line-height: 1.6; color: #E4ECE7; text-align: left; }
.end-detail td { padding: 5px 8px; border-bottom: 1px solid rgba(255,255,255,.15); }
.end-detail td:last-child { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.end-detail tr.head td { padding-top: 14px; font-size: 14px; font-weight: 700; color: #fff; background: transparent; text-align: left; border-bottom: 1px solid rgba(255,255,255,.5); }
.end-detail tr.total td { font-weight: 700; color: var(--yellow); background: rgba(255,255,255,.06); border-top: 1px solid rgba(255,255,255,.5); }
.btn.share { display: flex; align-items: center; justify-content: center; background: #000; border-color: #fff; color: #fff; font-weight: 700; text-decoration: none; }
.btn.share:hover { background: #222; }

/* ── 消音ボタン（右下に固定） ── */
.mute { position: fixed; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 50; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); background: rgba(255,255,255,.92); color: var(--ink); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.2); padding: 0; }
.mute[aria-pressed="true"] { color: var(--red); }
.mute:focus-visible { outline: 3px solid #2B6CB0; outline-offset: 2px; }

/* ── 「戻る」を押したときの確認 ── */
.modal { position: fixed; inset: 0; z-index: 60; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.modal-box { background: #fff; color: var(--ink); border-radius: 8px; padding: 20px 18px; max-width: 420px; width: 100%; box-shadow: 0 6px 24px rgba(0,0,0,.3); }
.modal-box h2 { margin-top: 0; }

/* ── イベント図鑑（徴税庁の事案綴り風） ── */
.dex { position: relative; max-width: 820px; width: 100%; margin: 16px auto; padding: 0 12px 0 34px; }
.dex-binder { position: absolute; left: 0; top: 0; bottom: 0; width: 40px; background: #3F5A4C; border-radius: 6px 0 0 6px; background-image: radial-gradient(circle at 50% 50%, #E9E4D6 0 5px, #2B3F35 6px, transparent 7px); background-size: 40px 120px; background-position: 0 40px; }
.dex-paper { position: relative; background: #FBF8EF; border: 1px solid #CFC6AE; border-left: 0; padding: 22px 18px 24px 22px; box-shadow: 2px 2px 0 #E6DFCB, 4px 4px 0 #D8D0B8; font-family: 'BIZ UDPMincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif; }
.dex-head { text-align: center; border-bottom: 3px double var(--ink); padding-bottom: 10px; margin-bottom: 14px; }
.dex-head h1 { margin: 6px 0 0; letter-spacing: .1em; }
.dex-no { text-align: right; font-size: 12px; color: var(--sub); line-height: 1.5; }
.dex-sub { margin: 0; font-size: 14px; color: var(--sub); }
.dex-count { text-align: center; font-size: 15px; margin-bottom: 6px; }
.dex-count b { font-size: 20px; color: var(--green-dark); }
.dex-bar { height: 8px; background: #E6DFCB; border-radius: 4px; overflow: hidden; margin-bottom: 16px; }
.dex-bar span { display: block; height: 100%; background: var(--green); }
.dex-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid #CFC6AE; }
.dex-item { border-bottom: 1px solid #CFC6AE; }
.dex-item summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 10px 4px; cursor: pointer; min-height: 44px; }
.dex-item.locked { display: flex; gap: 10px; padding: 10px 4px; color: #A49C88; }
.dex-item-no { flex: 0 0 auto; font-size: 13px; color: var(--sub); font-variant-numeric: tabular-nums; }
.dex-item.locked .dex-item-no { color: #A49C88; }
.dex-item-title { flex: 1 1 200px; min-width: 0; font-size: 15px; overflow-wrap: anywhere; }
.dex-tag { font-family: 'BIZ UDPGothic', sans-serif; font-size: 11px; color: var(--green-dark); border: 1px solid var(--green); border-radius: 3px; padding: 0 6px; }
.dex-item details[open] summary { background: #F2EDDF; }
.dex-item details > :not(summary) { margin-left: 8px; margin-right: 8px; }
.dex-item h3 { font-size: 14px; margin: 10px 8px 2px; }
.dex-item p { font-size: 14px; margin-bottom: 8px; }
.dex .actions { font-family: 'BIZ UDPGothic', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif; }
@media (max-width: 640px) { .dex { margin: 0 auto; padding: 0 0 0 22px; } .dex-binder { width: 26px; background-size: 26px 100px; } .dex-paper { padding: 18px 12px 20px 14px; } }

/* ── 提出状況（全国の人数） ── */
.count-top { margin: 0 0 12px; padding: 6px 12px; border: 1px solid var(--line); border-left: 4px solid var(--green); background: var(--green-pale); font-size: 14px; color: var(--green-dark); }
.count-top b { font-size: 18px; font-variant-numeric: tabular-nums; }
.end-count { width: 100%; display: flex; justify-content: center; }

/* ── 申告者の情報 ── */
.people { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 12px 0; }
.person-card { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.person-card svg { flex: none; }
.person-card > div { min-width: 0; }
.person-label { font-size: 13px; font-weight: 700; color: var(--green-dark); }
.person-name { font-size: 17px; font-weight: 700; margin-bottom: 4px; }
.person-card ul, .profile .home { margin: 0; padding-left: 1.2em; font-size: 14px; line-height: 1.7; }
.profile h2 { margin-top: 16px; }
