/* 議場の氏名標(黒地に白の明朝)を発言者の表示に使う。ほかは会議録のように静かに組む。 */
:root {
  --paper: #f6f7f4;
  --ink: #191b1f;
  --sub: #5d6068;
  --rule: #d5d8d1;
  --plate: #0c0c0d;
  --plate-ink: #ffffff;
  --carpet: #8c1c2c; /* 議場の絨毯の赤。速報の印と下線にだけ使う */
  --reply: #eceee8;
  --mincho: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", serif;
  --gothic: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", system-ui, sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: #15171a;
    --ink: #e9e9e4;
    --sub: #a2a59d;
    --rule: #34373c;
    --plate: #e9e9e4;
    --plate-ink: #111214;
    --carpet: #e2848f;
    --reply: #1e2125;
  }
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.85 var(--gothic);
  border-top: 6px solid var(--carpet);
}

a { color: inherit; text-decoration-color: var(--carpet); text-underline-offset: 0.2em; }
a:hover { color: var(--carpet); }
:focus-visible { outline: 2px solid var(--carpet); outline-offset: 2px; }

.top, main, footer { max-width: 46rem; margin: 0 auto; padding: 0 1.25rem; }

.top { padding-top: 1.1rem; font-family: var(--mincho); font-weight: 600; letter-spacing: 0.08em; }
.top a { text-decoration: none; }

/* 日付ページの見出し: 会議録の冒頭と同じく、日付そのものを大きく置く */
h1 { font-family: var(--mincho); font-weight: 600; line-height: 1.35; margin: 2.2rem 0 0.6rem; }
h1.date { font-size: clamp(2rem, 7vw, 2.9rem); letter-spacing: 0.04em; }
h1.date .dow { font-size: 0.45em; color: var(--sub); margin-left: 0.8em; letter-spacing: 0.1em; white-space: nowrap; }
h1.theme-title { font-size: clamp(1.7rem, 6vw, 2.3rem); }

.daynav { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.9rem; margin: 0 0 1.6rem; }
.daynav span { color: var(--sub); }

.meetings { list-style: none; margin: 0 0 1.2rem; padding: 0; font-size: 0.9rem; color: var(--sub); }
.lead { margin: 0 0 1.6rem; }

.flash {
  display: inline-block; margin-left: 0.5em; padding: 0 0.45em;
  border: 1px solid currentColor; color: var(--carpet);
  font-size: 0.72rem; line-height: 1.6; letter-spacing: 0.1em; vertical-align: 0.1em;
}

/* テーマ: 開くとその日の論点が出る */
details.theme { border-top: 1px solid var(--rule); }
details.theme:last-of-type { border-bottom: 1px solid var(--rule); }
details.theme > summary {
  display: flex; align-items: baseline; gap: 0.9rem;
  padding: 1rem 0; cursor: pointer; list-style: none;
}
details.theme > summary::-webkit-details-marker { display: none; }
details.theme > summary::before { content: "＋"; color: var(--sub); font-family: var(--mincho); }
details.theme[open] > summary::before { content: "－"; }
details.theme > summary h2 { margin: 0; font: 600 1.3rem/1.5 var(--mincho); }
.theme-count { margin-left: auto; color: var(--sub); font-size: 0.85rem; white-space: nowrap; }
details.theme > .more { margin: 0 0 1.6rem; font-size: 0.9rem; }

section.day > h2 { font: 600 1.2rem/1.5 var(--mincho); margin: 2.4rem 0 0; padding-bottom: 0.5rem; border-bottom: 1px solid var(--rule); }

/* 論点1件: 左に氏名標、右に発言の要約 */
.entry {
  display: grid; grid-template-columns: 10.5rem minmax(0, 1fr);
  column-gap: 1.3rem; row-gap: 0.7rem;
  padding: 1.3rem 0; border-top: 1px dotted var(--rule);
}
.entry:first-of-type { border-top: 0; }
.entry h3 { margin: 0 0 0.25rem; font-size: 1rem; line-height: 1.6; }
.entry p { margin: 0; }

.plate {
  display: inline-block; padding: 0.3em 0.7em 0.25em;
  background: var(--plate); color: var(--plate-ink);
  font: 600 1.02rem/1.3 var(--mincho); letter-spacing: 0.12em;
}
.plate.gov { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
/* 速報では官僚が「松本農村振興局長」のような長い呼び名になるので、答弁者の札は少し詰める */
.plate.gov { font-size: 0.92rem; letter-spacing: 0.04em; }
.who > div + div { margin-top: 0.6rem; }
.aff { display: block; margin-top: 0.3rem; color: var(--sub); font-size: 0.78rem; line-height: 1.5; }

.said.reply { background: var(--reply); padding: 0.7rem 0.9rem; }
.src { white-space: nowrap; font-size: 0.82rem; color: var(--sub); margin-left: 0.4em; }
.entry .meta { grid-column: 2; color: var(--sub); font-size: 0.8rem; }

footer { margin-top: 3.5rem; padding-top: 1.2rem; padding-bottom: 3rem; border-top: 1px solid var(--rule); color: var(--sub); font-size: 0.82rem; }
footer p { margin: 0 0 0.5rem; }

@media (max-width: 600px) {
  .entry { grid-template-columns: minmax(0, 1fr); }
  .entry .meta { grid-column: 1; }
  .who > div { display: flex; align-items: baseline; gap: 0.7rem; flex-wrap: wrap; }
  .aff { margin-top: 0; }
}
