/* TaiLexi AI 日本の判例・法令検索。配色：和紙（既定）／白磁／墨。本文は明朝、操作部はゴシック。 */
:root {
  --bg: #f4f1ea;
  --paper: #fffdf8;
  --paper-2: #f9f6ef;
  --ink: #1c1f26;
  --ink-2: #363b45;
  --muted: #5f6672;
  --faint: #8c929d;
  --line: #e2dccf;
  --line-2: #ece7dc;
  --ai: #1f3a60;
  --ai-2: #2c5088;
  --ai-soft: #e8edf5;
  --ai-ink: #ffffff;
  --shu: #b0402a;
  --shu-soft: #f6e6e0;
  --kin: #8d6d33;
  --kin-soft: #f3ead6;
  --mark: #fbe3a0;
  --mark-cur: #f2b950;
  --heat: #b0402a;
  --shadow: 0 1px 2px rgba(40, 30, 10, .05), 0 6px 20px rgba(40, 30, 10, .06);
  /* 書体：本文（日本語）は日本語の字形、画面の文言は表示言語の字形（i18n.js が html の lang を切り替える） */
  /* 端末に入っている日本語の書体を先に（Android・Linux の Noto CJK を含む）。どれもない端末だけ Web フォント（Noto Sans/Serif JP）を読む */
  --serif-ja: "Hiragino Mincho ProN", "BIZ UDPMincho", "Yu Mincho", "YuMincho", "Noto Serif CJK JP", "Noto Serif JP", serif;
  --sans-ja: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "BIZ UDPGothic", "Yu Gothic UI", "Meiryo", "Noto Sans CJK JP", "Noto Sans JP", system-ui, sans-serif;
  --serif-zh: "Noto Serif TC", "Songti TC", "PMingLiU", "Noto Serif JP", serif;
  --sans-zh: "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", "Noto Sans JP", system-ui, sans-serif;
  --serif-en: "Noto Serif", Georgia, "Noto Serif JP", serif;
  --sans-en: "Inter", "Helvetica Neue", Arial, "Noto Sans JP", system-ui, sans-serif;
  --serif: var(--serif-ja);
  --sans: var(--sans-ja);
  --radius: 10px;
  --code-bg: #14213a; --code-ink: #e6edf7;
  --wave: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='48'%20height='24'%20viewBox='0%200%2048%2024'%20stroke-width='0.7'%3E%3Ccircle%20cx='24'%20cy='0'%20r='23.4'%20fill='%23f4f1ea'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='24'%20cy='0'%20r='17.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='24'%20cy='0'%20r='11.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='24'%20cy='0'%20r='5.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='23.4'%20fill='%23f4f1ea'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='17.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='11.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='5.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='23.4'%20fill='%23f4f1ea'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='17.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='11.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='5.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='23.4'%20fill='%23f4f1ea'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='17.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='11.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='5.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='23.4'%20fill='%23f4f1ea'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='17.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='11.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='5.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='23.4'%20fill='%23f4f1ea'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='17.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='11.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='5.4'%20fill='none'%20stroke='%23ddd4c2'/%3E%3C/svg%3E");
  color-scheme: light;
}
:root[data-theme="hakuji"] {
  --bg: #f3f5f8;
  --paper: #ffffff;
  --paper-2: #f7f9fb;
  --ink: #161a22;
  --ink-2: #333a46;
  --muted: #5b6475;
  --faint: #8b93a3;
  --line: #dde2ea;
  --line-2: #e9edf2;
  --ai: #1d3d72;
  --ai-2: #2a56a0;
  --ai-soft: #e7eef9;
  --kin-soft: #f1ecdf;
  --wave: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='48'%20height='24'%20viewBox='0%200%2048%2024'%20stroke-width='0.7'%3E%3Ccircle%20cx='24'%20cy='0'%20r='23.4'%20fill='%23f3f5f8'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='24'%20cy='0'%20r='17.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='24'%20cy='0'%20r='11.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='24'%20cy='0'%20r='5.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='23.4'%20fill='%23f3f5f8'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='17.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='11.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='5.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='23.4'%20fill='%23f3f5f8'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='17.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='11.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='5.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='23.4'%20fill='%23f3f5f8'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='17.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='11.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='5.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='23.4'%20fill='%23f3f5f8'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='17.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='11.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='5.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='23.4'%20fill='%23f3f5f8'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='17.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='11.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='5.4'%20fill='none'%20stroke='%23d7dee8'/%3E%3C/svg%3E");
}
:root[data-theme="sumi"] {
  --bg: #111317;
  --paper: #181b21;
  --paper-2: #1d2128;
  --ink: #e9e6df;
  --ink-2: #cfcbc3;
  --muted: #a3a8b1;
  --faint: #7d838d;
  --line: #2b3039;
  --line-2: #242830;
  --ai: #9fbbe8;
  --ai-2: #bcd0f2;
  --ai-soft: #222c3c;
  --ai-ink: #10151d;
  --shu: #e8907a;
  --shu-soft: #3a2621;
  --kin: #d4b77c;
  --kin-soft: #322b1d;
  --mark: #5c4a17;
  --mark-cur: #8a6a14;
  --heat: #e8907a;
  --shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .25);
  --code-bg: #0b0e13; --code-ink: #dfe6f0;
  --wave: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='48'%20height='24'%20viewBox='0%200%2048%2024'%20stroke-width='0.7'%3E%3Ccircle%20cx='24'%20cy='0'%20r='23.4'%20fill='%23111317'%20stroke='%23262b35'/%3E%3Ccircle%20cx='24'%20cy='0'%20r='17.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='24'%20cy='0'%20r='11.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='24'%20cy='0'%20r='5.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='23.4'%20fill='%23111317'%20stroke='%23262b35'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='17.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='11.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='0'%20cy='12'%20r='5.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='23.4'%20fill='%23111317'%20stroke='%23262b35'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='17.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='11.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='48'%20cy='12'%20r='5.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='23.4'%20fill='%23111317'%20stroke='%23262b35'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='17.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='11.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='5.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='23.4'%20fill='%23111317'%20stroke='%23262b35'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='17.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='11.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='0'%20cy='36'%20r='5.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='23.4'%20fill='%23111317'%20stroke='%23262b35'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='17.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='11.4'%20fill='none'%20stroke='%23262b35'/%3E%3Ccircle%20cx='48'%20cy='36'%20r='5.4'%20fill='none'%20stroke='%23262b35'/%3E%3C/svg%3E");
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink); font-family: var(--sans); font-size: 15px; line-height: 1.7;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
a { color: var(--ai-2); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
button { font: inherit; color: inherit; }
mark { background: var(--mark); color: inherit; border-radius: 2px; padding: 0 1px; }
mark.cur { background: var(--mark-cur); }
[hidden] { display: none !important; }
.serif { font-family: var(--serif); }
code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9em; background: var(--paper-2); border: 1px solid var(--line-2); border-radius: 4px; padding: 0 4px; }

/* ---------- 上部バー（ロゴ：台法析のレイヤーのアイコン＋社名。書体と色はこのサイトの明朝・藍に合わせる） ---------- */
.topbar {
  position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 22px; padding: 0 28px; height: 60px;
  background: color-mix(in srgb, var(--paper) 90%, transparent); backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: center; gap: 9px; color: var(--ink); white-space: nowrap; }
.brand:hover { text-decoration: none; }
.brand-ico { width: 28px; height: 28px; flex: none; display: block; }
.brand-name {
  font-family: var(--serif); font-weight: 600; font-size: 17.5px; letter-spacing: .04em; color: var(--ink); line-height: 1;
  font-feature-settings: "palt";
}
.brand-sub {
  font-family: var(--serif); color: var(--muted); font-size: 13px; letter-spacing: .14em; padding-left: 13px; margin-left: 4px;
  border-left: 1px solid var(--line); line-height: 1; font-feature-settings: "palt";
}
.top-nav { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.top-nav > a {
  position: relative; color: var(--ink-2); padding: 8px 13px; font-size: 14px; font-weight: 500; letter-spacing: .06em;
}
.top-nav > a:hover { color: var(--ai); text-decoration: none; }
.top-nav > a.on { color: var(--ai); }
.top-nav > a.on::after { content: ""; position: absolute; left: 13px; right: 13px; bottom: -11px; height: 2px; background: var(--ai); }
.top-nav > a.top-mcp {
  display: inline-flex; align-items: center; gap: 6px; margin: 0 8px 0 6px; padding: 6px 13px; border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--ai-2) 45%, var(--line)); color: var(--ai); background: var(--ai-soft); font-weight: 600; letter-spacing: .04em;
}
.top-nav > a.top-mcp:hover { background: var(--ai); color: var(--ai-ink); border-color: var(--ai); }
.top-nav > a.top-mcp svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.search-box {
  position: relative; display: flex; align-items: center; background: var(--paper); border: 1px solid var(--line);
  border-radius: 12px; transition: border-color .15s, box-shadow .15s;
}
.search-box:focus-within { border-color: var(--ai-2); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ai-2) 18%, transparent); }
.search-box .ico { width: 18px; height: 18px; margin-left: 14px; fill: none; stroke: var(--faint); stroke-width: 2; flex: none; }
.search-box input {
  flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; padding: 10px 12px;
}
.search-box input::placeholder { color: var(--faint); }
.search-box kbd {
  font: 12px var(--sans); color: var(--faint); border: 1px solid var(--line); border-radius: 5px; padding: 0 6px; margin-right: 10px;
}
.search-box.compact { flex: 1; max-width: 560px; }
.search-box.compact input { padding: 8px 10px; }
.search-box.big { border-radius: 14px; box-shadow: var(--shadow); }
.search-box.big input { font-size: 17px; padding: 15px 14px; }
.search-box.big button {
  margin: 6px; border: 0; border-radius: 10px; background: var(--ai); color: var(--ai-ink); font-weight: 600; padding: 10px 22px; cursor: pointer;
}
.search-box.big button:hover { background: var(--ai-2); }

/* 配色の切替 */
.theme-pick { position: relative; }
.tp-btn {
  display: flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: var(--paper); border-radius: 8px;
  padding: 5px 10px; cursor: pointer; font-size: 13px; color: var(--ink-2);
}
.tp-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.tp-menu {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 60; min-width: 150px; background: var(--paper);
  border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); padding: 6px;
}
.tp-menu button {
  display: flex; align-items: center; gap: 10px; width: 100%; border: 0; background: none; padding: 7px 10px; border-radius: 7px;
  cursor: pointer; text-align: left; font-size: 14px;
}
.tp-menu button:hover { background: var(--paper-2); }
.tp-menu .sw { width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line); flex: none; }
.tp-menu .ck { margin-left: auto; color: var(--ai-2); }

main { min-height: 70vh; }
.wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }

/* ---------- バッジ ---------- */
.badge {
  display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 5px; font-size: 12px; font-weight: 600;
  white-space: nowrap; border: 1px solid transparent; letter-spacing: .02em;
}
.b-sc { background: var(--ai); color: var(--ai-ink); }
.b-grand { background: var(--shu); color: #fff; }
:root[data-theme="sumi"] .b-grand { color: #1a1210; }
.b-high { border-color: var(--ai-2); color: var(--ai-2); }
.b-low { border-color: var(--line); color: var(--muted); background: var(--paper-2); }
.b-kind { background: var(--paper-2); color: var(--ink-2); border-color: var(--line-2); font-weight: 500; }
.b-rev { background: var(--shu-soft); color: var(--shu); }
.b-dis { background: var(--paper-2); color: var(--muted); border-color: var(--line-2); font-weight: 500; }
.b-rep { background: var(--kin-soft); color: var(--kin); }
.b-rep.minor { background: var(--paper-2); color: var(--muted); }

/* ---------- ホーム ---------- */
.hero { position: relative; overflow: hidden; padding: 76px 24px 92px; text-align: center; }
.hero::after {  /* 青海波：ヒーロー下端にごく薄く */
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 168px; pointer-events: none; z-index: 0;
  background: var(--wave) repeat-x left bottom / 48px 24px;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 78%); mask-image: linear-gradient(to bottom, transparent 0%, #000 78%);
}
.hero > * { position: relative; z-index: 1; }
.hero-tate {  /* 縦書きの添え書き（広い画面のみ） */
  position: absolute; top: 84px; left: max(28px, calc(50% - 590px)); margin: 0; writing-mode: vertical-rl;
  font-family: var(--serif); font-size: 13px; letter-spacing: .55em; color: var(--muted); font-feature-settings: "vpal";
}
.hero-tate::before { content: ""; display: block; width: 1px; height: 46px; margin: 0 auto 16px; background: var(--shu); }
.hero .eyebrow {
  margin: 0 0 22px; font: 600 11px/1 "Inter", var(--sans); letter-spacing: .32em; color: var(--muted);
}
.hero .eyebrow b { color: var(--shu); font-weight: 600; }
.hero h1 {
  font-family: var(--serif); font-weight: 500; font-size: clamp(30px, 4.4vw, 48px); letter-spacing: .1em; margin: 0;
  line-height: 1.45; font-feature-settings: "palt"; color: var(--ink);
}
.hero-rule { display: block; width: 30px; height: 1px; margin: 26px auto 22px; background: var(--shu); }
.hero .lead { color: var(--ink-2); max-width: 600px; margin: 0 auto 38px; font-size: 15px; line-height: 2.05; letter-spacing: .05em; }
.hero-search { max-width: 760px; margin: 0 auto; text-align: left; }
.mode-tabs { display: flex; gap: 22px; padding: 0 6px; margin: 0 0 10px; }
.mode-tabs button {
  border: 0; background: none; padding: 4px 0 7px; cursor: pointer; color: var(--muted); font-size: 13.5px; font-weight: 500;
  letter-spacing: .08em; border-bottom: 1.5px solid transparent;
}
.mode-tabs button.on { color: var(--ai); border-bottom-color: var(--ai); }
.syntax { color: var(--faint); font-size: 12px; margin: 14px 0 0; text-align: center; letter-spacing: .03em; }
.examples { margin: 20px auto 0; display: flex; flex-wrap: wrap; gap: 6px 8px; justify-content: center; max-width: 820px; }
.examples a {
  font-size: 12.5px; padding: 4px 11px; border-radius: 4px; border: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 70%, transparent);
  color: var(--ink-2); letter-spacing: .02em;
}
.examples a:hover { border-color: var(--ai-2); color: var(--ai); text-decoration: none; }
.examples .ex-k { color: var(--shu); margin-right: 7px; font-size: 10.5px; letter-spacing: .08em; }

.home-wrap { max-width: 1140px; margin: 0 auto; padding: 0 28px; }
.sec-h { display: flex; align-items: baseline; gap: 14px; padding-bottom: 12px; margin: 0 0 6px; border-bottom: 1px solid var(--line); }
.sec-h .en { font: 600 10.5px/1 "Inter", var(--sans); letter-spacing: .26em; color: var(--shu); }
.sec-h h2 { margin: 0; font-family: var(--serif); font-size: 19px; font-weight: 600; letter-spacing: .1em; font-feature-settings: "palt"; }
.sec-h small { color: var(--faint); font-size: 12px; letter-spacing: .04em; }
.sec-h .more { margin-left: auto; font-size: 12.5px; letter-spacing: .06em; color: var(--ai-2); white-space: nowrap; }

/* MCP の帯 */
.mcp-band {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; align-items: center; margin: 8px 0 54px;
  padding: 26px 30px; border: 1px solid var(--line); border-radius: 14px; position: relative; overflow: hidden;
  background: linear-gradient(120deg, var(--paper) 0%, var(--paper) 55%, var(--ai-soft) 100%);
}
.mcp-band::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--ai); }
.mcp-band .en { display: block; font: 600 10.5px/1 "Inter", var(--sans); letter-spacing: .26em; color: var(--ai-2); margin-bottom: 10px; }
.mcp-band h2 { margin: 0 0 8px; font-family: var(--serif); font-weight: 600; font-size: 20px; letter-spacing: .06em; line-height: 1.6; font-feature-settings: "palt"; }
.mcp-band p { margin: 0; color: var(--ink-2); font-size: 13.5px; line-height: 1.95; }
.mcp-band .clients { margin-top: 10px; color: var(--muted); font-size: 12px; letter-spacing: .04em; }
.mcp-end { display: grid; gap: 10px; }
.mcp-url {
  display: flex; align-items: center; gap: 10px; padding: 11px 12px 11px 16px; border-radius: 10px; background: var(--code-bg); color: var(--code-ink);
  font: 500 14px/1.4 ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, monospace; letter-spacing: 0;
}
.mcp-url span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mcp-url button {
  border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .06); color: inherit; border-radius: 7px; padding: 4px 10px;
  font: 500 12px var(--sans); cursor: pointer; letter-spacing: .04em;
}
.mcp-url button:hover { background: rgba(255, 255, 255, .14); }
.mcp-end .row { display: flex; gap: 8px; flex-wrap: wrap; }
.mcp-end .note { font-size: 11.5px; color: var(--faint); letter-spacing: .03em; }

.home-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 48px; margin: 0 0 56px; }
.home-col > section + section { margin-top: 44px; }
.mini-list { list-style: none; margin: 0; padding: 0; }
.mini-list li { padding: 16px 0 15px; border-bottom: 1px solid var(--line-2); }
.mini-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 9px; }
.mini-cite { font-family: var(--serif); font-weight: 600; color: var(--ink); font-size: 15.5px; letter-spacing: .04em; }
.mini-cite:hover { color: var(--ai-2); text-decoration: none; }
.mini-meta { color: var(--muted); font-size: 12px; margin-top: 4px; letter-spacing: .02em; }
.mini-gist { color: var(--ink-2); font-size: 13.5px; line-height: 1.85; margin-top: 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mini-ctx { color: var(--ink-2); font-size: 13.5px; line-height: 1.85; margin-top: 6px; padding-left: 10px; border-left: 2px solid var(--line); overflow-wrap: anywhere; }
.mini-ctx mark { background: color-mix(in srgb, var(--mark) 45%, transparent); color: var(--muted); }
.cb { margin-left: auto; color: var(--muted); font-size: 11.5px; white-space: nowrap; letter-spacing: .04em; }
.cb b { color: var(--shu); font-weight: 700; font-size: 13px; font-family: "Inter", var(--sans); letter-spacing: 0; }
/* 主要法令：六法の爪見出し風 */
/* 著名な判例・よく参照される条文（ホーム・法令一覧） */
.home-more { margin-top: -8px; }
.home-more .sec-h h2, .home-more .sec-h .en, .home-more .sec-h small { white-space: nowrap; }
.fame-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 26px; }
.fame-list li { padding: 12px 0 11px; border-bottom: 1px solid var(--line-2); min-width: 0; }
.fame-list a { display: block; font-family: var(--serif); font-weight: 600; font-size: 15px; letter-spacing: .04em; color: var(--ink); }
.fame-list a:hover { color: var(--ai-2); text-decoration: none; }
.fame-list .fm-c { display: block; margin-top: 3px; font-family: var(--serif); font-size: 12.5px; color: var(--muted); letter-spacing: .02em; overflow-wrap: anywhere; }
.top-arts { list-style: none; margin: 0; padding: 0; }
.top-arts li { border-bottom: 1px solid var(--line-2); }
.top-arts a { display: flex; align-items: baseline; gap: 10px; padding: 10px 0 9px; color: var(--ink); min-width: 0; }
.top-arts a:hover { text-decoration: none; }
.top-arts a:hover b { color: var(--ai-2); }
.top-arts b { font-family: var(--serif); font-weight: 600; font-size: 15px; letter-spacing: .03em; white-space: nowrap; }
.top-arts .ta-c { flex: 1; min-width: 0; font-family: var(--serif); font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.top-arts i { margin-left: auto; font: 600 12px/1 "Inter", var(--sans); font-style: normal; color: var(--shu); letter-spacing: 0; }
.law-top { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 22px; margin: 0 0 26px; }
/* 共有（判例・条文） */
.share { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 12px 0 0; font-size: 12.5px; letter-spacing: .02em; }
.share .sh-k { color: var(--faint); }
.share a, .share button { color: var(--ai-2); background: none; border: 0; padding: 0; font: inherit; cursor: pointer; white-space: nowrap; }
.share a:hover, .share button:hover { text-decoration: underline; }
.law-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; margin-top: 8px; }
.law-grid a {
  display: flex; align-items: center; gap: 12px; padding: 9px 2px; border-bottom: 1px solid var(--line-2); color: var(--ink);
  font-family: var(--serif); font-size: 14.5px; letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.law-grid a i {
  flex: none; display: inline-grid; place-items: center; min-width: 30px; height: 22px; padding: 0 4px; border-radius: 3px;
  border: 1px solid color-mix(in srgb, var(--shu) 55%, var(--line)); color: var(--shu); font-style: normal; font-size: 11.5px; letter-spacing: 0;
}
.law-grid a:hover { color: var(--ai); text-decoration: none; }
.law-grid a:hover i { background: var(--shu); color: var(--paper); border-color: var(--shu); }
.features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; margin: 0 0 64px; padding-top: 34px; border-top: 1px solid var(--line); }
.feature .no { display: block; font-family: var(--serif); font-size: 26px; color: var(--shu); line-height: 1; margin-bottom: 14px; }
.feature b { display: block; font-family: var(--serif); font-size: 16.5px; font-weight: 600; margin-bottom: 10px; letter-spacing: .06em; font-feature-settings: "palt"; }
.feature span { color: var(--muted); font-size: 13.5px; line-height: 1.95; }
.feature code { font-size: 11.5px; }

/* ---------- 検索結果 ---------- */
.results-layout { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 28px; padding-top: 22px; padding-bottom: 40px; }
.facets { position: sticky; top: 72px; align-self: start; max-height: calc(100vh - 88px); overflow: auto; padding-right: 4px; scrollbar-width: thin; }
.fgroup { padding: 4px 0 14px; border-bottom: 1px solid var(--line-2); margin-bottom: 12px; }
.fgroup:last-child { border-bottom: 0; }
.fgroup h3 { font-size: 12.5px; color: var(--muted); font-weight: 600; letter-spacing: .08em; margin: 0 0 6px; }
.fopt {
  display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: none; text-align: left; cursor: pointer;
  padding: 4px 8px; border-radius: 6px; font-size: 13.5px; color: var(--ink-2);
}
.fopt:hover { background: var(--paper); }
.fopt .box { width: 14px; height: 14px; border: 1.5px solid var(--faint); border-radius: 3px; flex: none; position: relative; }
.fopt.on { color: var(--ai); font-weight: 600; }
.fopt.on .box { background: var(--ai); border-color: var(--ai); }
.fopt.on .box::after { content: ""; position: absolute; left: 3.5px; top: .5px; width: 4px; height: 8px; border: solid var(--ai-ink); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.fopt .n { margin-left: auto; color: var(--faint); font-size: 12px; font-variant-numeric: tabular-nums; }
.fopt .lbl { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.decades { display: flex; flex-direction: column; gap: 2px; }
.decade { display: grid; grid-template-columns: 62px 1fr 46px; align-items: center; gap: 8px; border: 0; background: none; cursor: pointer; padding: 2px 8px; border-radius: 6px; font-size: 12.5px; color: var(--ink-2); }
.decade:hover { background: var(--paper); }
.decade.on { color: var(--ai); font-weight: 600; }
.decade .bar { height: 7px; border-radius: 4px; background: var(--ai-soft); position: relative; overflow: hidden; }
.decade .bar i { position: absolute; inset: 0 auto 0 0; background: color-mix(in srgb, var(--ai-2) 70%, transparent); border-radius: 4px; }
.decade .n { text-align: right; color: var(--faint); font-variant-numeric: tabular-nums; }
.yr { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 12.5px; color: var(--muted); }
.yr input { width: 64px; border: 1px solid var(--line); border-radius: 6px; padding: 3px 6px; background: var(--paper); color: var(--ink); font: inherit; }
.yr button { border: 1px solid var(--line); background: var(--paper); border-radius: 6px; padding: 3px 8px; cursor: pointer; }
.toggle-grand { display: flex; align-items: center; gap: 8px; }
.more-btn { border: 0; background: none; color: var(--ai-2); font-size: 12.5px; cursor: pointer; padding: 4px 8px; }

.results-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 10px; }
.count { font-size: 14px; color: var(--muted); }
.count b { font-size: 22px; color: var(--ink); font-weight: 700; margin-right: 2px; font-variant-numeric: tabular-nums; }
.controls { margin-left: auto; display: flex; gap: 8px; align-items: center; }
select, .btn {
  font: inherit; font-size: 13.5px; border: 1px solid var(--line); background: var(--paper); color: var(--ink-2); border-radius: 8px;
  padding: 6px 12px; cursor: pointer;
}
.btn { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.btn:hover { border-color: var(--ai-2); color: var(--ai); text-decoration: none; }
.btn.primary { background: var(--ai); border-color: var(--ai); color: var(--ai-ink); }
.btn.primary:hover { background: var(--ai-2); color: var(--ai-ink); }
.btn svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; }
.only-mobile { display: none; }
.hint { color: var(--muted); font-size: 13px; margin: 0 0 10px; }
.notice { background: var(--kin-soft); color: var(--ink-2); border-radius: 8px; padding: 9px 14px; font-size: 13.5px; margin-bottom: 12px; }
.active { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.active:empty { display: none; }
.chip-x {
  display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--ai-2); color: var(--ai); background: var(--ai-soft);
  border-radius: 999px; padding: 2px 6px 2px 12px; font-size: 13px; cursor: pointer;
}
.chip-x span { font-size: 15px; line-height: 1; opacity: .7; }

.result-list { list-style: none; padding: 0; margin: 0; }
.rcard {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 20px 14px; margin-bottom: 12px;
  transition: border-color .15s, box-shadow .15s;
}
.rcard:hover { border-color: color-mix(in srgb, var(--ai-2) 45%, var(--line)); box-shadow: var(--shadow); }
.rc-badges { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin-bottom: 6px; }
.rc-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.rc-title a.cit { font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--ink); letter-spacing: .02em; }
.rc-title a.cit:hover { color: var(--ai-2); text-decoration: none; }
.rc-sub { color: var(--muted); font-size: 13px; margin-top: 2px; }
.rc-sub .cn { color: var(--ink-2); }
.rc-gist { margin: 10px 0 0; padding: 8px 12px; border-left: 3px solid var(--ai-soft); background: var(--paper-2); border-radius: 0 6px 6px 0; font-size: 14px; color: var(--ink-2); }
.rc-gist .lb { font-size: 11.5px; color: var(--ai-2); font-weight: 700; margin-right: 8px; letter-spacing: .06em; }
.rc-gist .rc-more { margin-top: 4px; }
.rc-gist .rc-more > summary { cursor: pointer; color: var(--ai-2); font-size: 12.5px; font-weight: 600; list-style: none; display: inline-block; padding: 2px 0; }
.rc-gist .rc-more > summary::-webkit-details-marker { display: none; }
.rc-gist .rc-more > summary::before { content: "▸ "; }
.rc-gist .rc-more[open] > summary::before { content: "▾ "; }
.rc-gist .rc-more[open] > summary { margin-bottom: 2px; }
.rc-frag { margin: 8px 0 0; font-size: 13.5px; color: var(--ink-2); font-family: var(--serif); line-height: 1.85; }
.rc-frag + .rc-frag { margin-top: 4px; }
.rc-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 10px; font-size: 12.5px; color: var(--muted); }
.ref-chip {
  display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 6px; padding: 1px 8px; font-size: 12.5px;
  background: var(--paper); color: var(--ink-2); cursor: pointer; font-family: var(--serif);
}
.ref-chip:hover { border-color: var(--ai-2); color: var(--ai); text-decoration: none; }
.ref-chip .ver, .law-btn .ver { font-size: 11px; color: var(--muted); margin-left: 1px; }   /* 「…による改正前の」と引かれた条 */
.rc-actions { margin-left: auto; display: flex; gap: 6px; }
.linkbtn { border: 0; background: none; color: var(--ai-2); cursor: pointer; padding: 2px 4px; font-size: 12.5px; }
.linkbtn:hover { text-decoration: underline; }

.lawbox { margin-bottom: 14px; }
.lawcard { background: var(--paper); border: 1px solid var(--line); border-left: 4px solid var(--kin); border-radius: var(--radius); padding: 14px 18px; margin-bottom: 10px; }
.lawcard .lc-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; }
.lawcard .lc-head b { font-family: var(--serif); font-size: 16.5px; }
.lawcard .lc-head .cap { color: var(--muted); font-family: var(--serif); }
.lawcard .lc-head a.more { margin-left: auto; font-size: 13px; }
.lawcard .lc-text { margin-top: 6px; font-family: var(--serif); font-size: 14.5px; line-height: 1.9; max-height: 9.6em; overflow: hidden; position: relative; }
.lawcard .lc-text.open { max-height: none; }
.lawcard .lc-foot { margin-top: 6px; font-size: 12.5px; color: var(--muted); display: flex; gap: 14px; flex-wrap: wrap; }
.lawhits { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 18px; margin-bottom: 14px; }
.lawhits h4 { margin: 0 0 6px; font-size: 13px; color: var(--muted); font-weight: 600; display: flex; gap: 10px; }
.lawhits h4 a { margin-left: auto; font-weight: 500; }
.lawhits li { font-size: 13.5px; margin: 3px 0; }
.lawhits ul { list-style: none; padding: 0; margin: 0; }
.lawhits .snip { color: var(--muted); font-family: var(--serif); }

.pager { display: flex; justify-content: center; gap: 4px; margin: 20px 0; flex-wrap: wrap; }
.pager a, .pager span { min-width: 36px; height: 36px; display: inline-grid; place-items: center; border-radius: 8px; border: 1px solid var(--line); background: var(--paper); font-size: 14px; color: var(--ink-2); padding: 0 8px; }
.pager a:hover { border-color: var(--ai-2); text-decoration: none; }
.pager .on { background: var(--ai); color: var(--ai-ink); border-color: var(--ai); }
.pager .gap { border: 0; background: none; }
.empty { padding: 40px 10px; text-align: center; color: var(--muted); list-style: none; }

/* ---------- 引用形式のコピー ---------- */
.cite-menu {
  position: absolute; z-index: 70; width: min(560px, calc(100vw - 32px)); background: var(--paper); border: 1px solid var(--line);
  border-radius: 12px; box-shadow: var(--shadow); padding: 12px;
}
.cite-menu .cm-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 12.5px; color: var(--muted); }
.cite-menu .cm-head .seg { margin-left: auto; }
.cite-menu .cm-row {
  display: grid; grid-template-columns: 64px 1fr auto; gap: 10px; align-items: center; width: 100%; padding: 8px 10px; border: 1px solid var(--line-2);
  border-radius: 8px; background: var(--paper-2); margin-top: 6px; cursor: pointer; text-align: left;
}
.cite-menu .cm-row:hover { border-color: var(--ai-2); }
.cite-menu .cm-row .k { font-size: 11.5px; color: var(--muted); font-weight: 600; }
.cite-menu .cm-row .v { font-family: var(--serif); font-size: 14px; color: var(--ink); overflow-wrap: anywhere; }
.cite-menu .cm-row .c { font-size: 12px; color: var(--ai-2); white-space: nowrap; }
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.seg button { border: 0; background: var(--paper); padding: 3px 10px; cursor: pointer; font-size: 12.5px; color: var(--muted); }
.seg button + button { border-left: 1px solid var(--line); }
.seg button.on { background: var(--ai); color: var(--ai-ink); }

/* ---------- 判例本文 ---------- */
.hanrei { padding: 18px 0 60px; }
.back { display: inline-block; font-size: 13.5px; margin-bottom: 12px; }
.hr-head { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 22px 26px 18px; }
.hr-head .rc-badges { margin-bottom: 10px; }
.hr-cite { font-family: var(--serif); font-size: clamp(21px, 2.6vw, 27px); font-weight: 600; margin: 0; letter-spacing: .03em; line-height: 1.45; }
.hr-name { font-family: var(--serif); font-size: 16.5px; color: var(--ink-2); margin: 4px 0 0; }
.facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px 24px; margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid var(--line-2); }
.facts div { min-width: 0; }
.facts dt { font-size: 11.5px; color: var(--faint); letter-spacing: .08em; }
.facts dd { margin: 1px 0 0; font-size: 14px; color: var(--ink); }
.facts dd small { color: var(--muted); }
.hr-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.headnotes { display: grid; gap: 12px; margin: 16px 0 0; }
.headnote { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 16px 22px; }
.headnote h2 { margin: 0 0 6px; font-size: 13px; color: var(--ai-2); letter-spacing: .14em; font-weight: 700; }
.headnote.yoshi h2 { color: var(--shu); }
/* 判示事項・裁判要旨は左寄せ：段落末の短い文節を前の文節とつなげる（hnLine の .nw）と、その前の行が短くなり、
   両端揃え（justify）では字間が大きく空く（「刑 法 二 〇 〇 条 は 、」：51807）。行末のわずかな不揃いの方が読みやすい */
.headnote .hn-body { font-family: var(--serif); font-size: 16px; line-height: 1.95; white-space: pre-wrap; text-align: start; line-break: strict; }
.headnote .refs { display: flex; flex-wrap: wrap; gap: 6px; }
.hr-body { display: grid; grid-template-columns: 200px minmax(0, 1fr) 280px; gap: 28px; margin-top: 22px; align-items: start; }
.hr-body.no-rail { grid-template-columns: 200px minmax(0, 880px); }
.toc { position: sticky; top: 76px; max-height: calc(100vh - 96px); overflow: auto; font-size: 13px; scrollbar-width: thin; }
.toc h3, .rail h3 { font-size: 12px; color: var(--faint); letter-spacing: .12em; font-weight: 600; margin: 0 0 8px; }
.toc a { display: block; padding: 4px 10px; border-left: 2px solid var(--line-2); color: var(--muted); line-height: 1.5; }
.toc a.lv1 { padding-left: 18px; }
.toc a.lv2 { padding-left: 28px; font-size: 12.5px; }
.toc a:hover { color: var(--ink); text-decoration: none; }
.toc a.on { color: var(--ai); border-left-color: var(--ai); font-weight: 600; }
.text {
  background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 34px clamp(18px, 4vw, 52px) 40px;
  font-family: var(--serif); font-size: var(--fs, 16.5px); line-height: 2.05; color: var(--ink); text-align: justify; line-break: strict;
}
.text p { margin: 0 0 .35em; padding-left: calc(var(--l, 0) * 1em); text-indent: 1em; }
.text p.num { text-indent: -1em; padding-left: calc(var(--l, 0) * 1em); }
.text p.h { font-weight: 700; margin-top: 1.1em; }
.text p.h0 { text-align: center; text-indent: 0; font-weight: 700; letter-spacing: .5em; margin: 1.4em 0 .6em; padding: 0; font-size: 1.05em; }
.text p.h0:first-child { margin-top: 0; }
.text p.sig { text-align: right; text-indent: 0; padding: 0; margin: 0; }
.text p.sig:first-of-type, .text p.sig.first { margin-top: 1.6em; }
.text .cite { border-bottom: 1px dotted var(--ai-2); cursor: pointer; }
.text .cite:hover { background: var(--ai-soft); }
.text a.case-link { color: var(--ai-2); border-bottom: 1px solid color-mix(in srgb, var(--ai-2) 40%, transparent); }
.text a.case-link:hover { text-decoration: none; background: var(--ai-soft); }
.text .src { margin-top: 2.4em; padding-top: 1em; border-top: 1px solid var(--line-2); font-family: var(--sans); font-size: 12.5px; color: var(--faint); text-indent: 0; text-align: left; line-height: 1.7; }
.rail { position: sticky; top: 76px; max-height: calc(100vh - 96px); overflow: auto; scrollbar-width: thin; display: grid; gap: 18px; }
.rail section { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.rail ul { list-style: none; padding: 0; margin: 0; }
.rail li { padding: 6px 0; border-top: 1px solid var(--line-2); font-size: 13px; }
.rail li:first-child { border-top: 0; padding-top: 0; }
.rail .law-btn { border: 0; background: none; padding: 0; cursor: pointer; color: var(--ai-2); font-family: var(--serif); font-size: 14px; text-align: left; }
.rail .x { color: var(--faint); font-size: 12px; }
.rail .case { display: block; font-family: var(--serif); font-weight: 600; color: var(--ink); font-size: 13.5px; }
.rail .case:hover { color: var(--ai-2); }
.rail .sub { color: var(--muted); font-size: 12px; }
.rail .big-n { font-size: 26px; font-weight: 700; color: var(--shu); font-variant-numeric: tabular-nums; line-height: 1.1; }
.rail .note { color: var(--faint); font-size: 12px; margin: 6px 0 0; }
/* この判例を引用する裁判：引用している文の抜粋（どの論点で引用されたか） */
.rail .cb-ctx { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; color: var(--ink-2, var(--ink)); font-size: 12px; line-height: 1.65; margin-top: 3px; }
.rail .cb-ctx .cx-c { color: var(--faint); font-size: 11px; margin: 0 1px; }
.rail .similar .sub, .rail .sim-name, .rail .sim-why { display: block; }
.rail .sim-name { color: var(--ink-2, var(--ink)); font-size: 12.5px; margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rail .sim-why { color: var(--faint); font-size: 11.5px; margin-top: 2px; line-height: 1.55; }
.rail .sim-why .why-p { display: block; text-wrap-style: balance; }
.rail .similar .note { text-wrap-style: balance; }
.rail .sim-tag { display: inline-block; margin-right: 6px; padding: 0 6px; border: 1px solid var(--line); border-radius: 999px; font-size: 10.5px; color: var(--muted); line-height: 1.6; }
.rail .sim-tag.same { color: var(--shu); border-color: currentColor; }
.rail .sim-more { margin-top: 6px; }
.rail .sim-more summary { cursor: pointer; color: var(--ai-2); font-size: 12.5px; padding: 4px 0; }
.rail .sim-more ul { margin-top: 4px; }
.rail .sim-more li:first-child { border-top: 1px solid var(--line-2); padding-top: 6px; }
.kw-nav {
  position: fixed; right: 22px; bottom: 22px; z-index: 50; display: flex; align-items: center; gap: 6px; background: var(--paper);
  border: 1px solid var(--line); border-radius: 999px; box-shadow: var(--shadow); padding: 5px 6px 5px 14px; font-size: 13px;
}
.kw-nav button { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--line); background: var(--paper-2); cursor: pointer; }

/* 条文の小窓 */
.law-pop {
  position: absolute; z-index: 80; width: min(460px, calc(100vw - 32px)); background: var(--paper); border: 1px solid var(--line);
  border-radius: 12px; box-shadow: var(--shadow); padding: 14px 16px;
}
.lp-head { display: flex; align-items: baseline; gap: 10px; }
.lp-head b { font-family: var(--serif); font-size: 16px; }
.lp-head b.nw { flex: none; }   /* 法令名＋条番号（popTitle）は縮めず、括弧書きの見出しの方を折り返す */
.lp-head .cap { min-width: 0; }
.lp-head .cap { color: var(--muted); font-family: var(--serif); font-size: 14px; }
.lp-close { margin-left: auto; border: 0; background: none; cursor: pointer; color: var(--faint); font-size: 15px; }
.lp-meta { font-size: 12px; color: var(--faint); margin: 2px 0 8px; }
.lp-text { font-family: var(--serif); font-size: 14.5px; line-height: 1.9; max-height: 40vh; overflow: auto; }
.lp-foot { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--line-2); font-size: 13px; }

/* ---------- 法令 ---------- */
.law-page { padding: 22px 0 60px; }
.crumbs { font-size: 13px; color: var(--muted); margin-bottom: 10px; }
.crumbs a { color: var(--muted); }
.crumbs span { margin: 0 6px; color: var(--faint); }
.law-head { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 22px 26px; }
.law-head h1 { font-family: var(--serif); font-size: clamp(22px, 3vw, 30px); font-weight: 600; margin: 0; letter-spacing: .05em; line-height: 1.4; }
.law-head .ln { color: var(--muted); font-family: var(--serif); margin-top: 2px; }
.law-head .meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 12px; font-size: 13px; color: var(--muted); }
.law-head .meta b { color: var(--ink-2); font-weight: 500; }
.law-head .acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.hot { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 12.5px; color: var(--muted); }
.hot a { display: inline-flex; gap: 6px; align-items: baseline; border: 1px solid var(--line); border-radius: 6px; padding: 2px 9px; background: var(--paper-2); color: var(--ink-2); font-family: var(--serif); font-size: 13.5px; }
.hot a i { font-style: normal; font-family: var(--sans); font-size: 11.5px; color: var(--shu); font-weight: 700; }
.hot a:hover { border-color: var(--ai-2); text-decoration: none; }
.law-body { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 28px; margin-top: 22px; align-items: start; }
.law-toc { position: sticky; top: 76px; max-height: calc(100vh - 96px); overflow: auto; font-size: 13px; scrollbar-width: thin; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 12px 8px; }
.law-toc a { display: block; padding: 3px 10px; color: var(--muted); border-radius: 6px; line-height: 1.5; }
.law-toc a:hover { background: var(--paper-2); color: var(--ink); text-decoration: none; }
.law-toc a.on { color: var(--ai); background: var(--ai-soft); font-weight: 600; }
.law-toc a.d2 { padding-left: 20px; }
.law-toc a.d3 { padding-left: 30px; font-size: 12.5px; }
.law-toc a.d4 { padding-left: 40px; font-size: 12px; }
.law-find { display: flex; gap: 6px; margin: 0 0 10px; }
.law-find input { flex: 1; min-width: 0; border: 1px solid var(--line); background: var(--paper); color: var(--ink); border-radius: 8px; padding: 7px 10px; font: inherit; font-size: 13.5px; }
.statute { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 26px clamp(16px, 3.4vw, 44px) 40px; font-family: var(--serif); }
.statute h2, .statute h3, .statute h4, .statute h5 { font-weight: 600; letter-spacing: .08em; margin: 1.8em 0 .8em; }
.statute h2 { font-size: 19px; text-align: center; }
.statute h3 { font-size: 17px; padding-left: 1em; }
.statute h4 { font-size: 15.5px; padding-left: 2em; }
.statute h5 { font-size: 15px; padding-left: 3em; }
.statute > :first-child { margin-top: 0; }
.art { position: relative; padding: 10px 0 10px; border-top: 1px solid transparent; scroll-margin-top: 80px; }
.art.flash { animation: flash 1.6s ease-out; }
@keyframes flash { from { background: var(--mark); } to { background: transparent; } }
.art .cap { color: var(--ink-2); margin: 0 0 1px 1em; font-size: 15px; }
.ar-p { margin: 0; font-size: 16px; line-height: 1.95; padding-left: 1em; text-indent: -1em; }
.ar-item { padding-left: 2em; }
.ar-sub { padding-left: 3em; }
.ar-sub2 { padding-left: 4em; }
.ar-no { font-weight: 700; color: var(--ink); }
a.ar-no:hover { color: var(--ai-2); text-decoration: none; }
.art.deleted .ar-p { color: var(--faint); }
.art .heat {
  position: absolute; right: -6px; top: 12px; display: inline-flex; align-items: center; gap: 6px; font-family: var(--sans); font-size: 11.5px;
  color: var(--muted); padding: 1px 8px 1px 6px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--paper);
}
.art .heat:hover { border-color: var(--shu); color: var(--shu); text-decoration: none; }
.art .heat i { display: block; width: 26px; height: 5px; border-radius: 3px; background: var(--line-2); position: relative; overflow: hidden; }
.art .heat i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--h, 0%); background: var(--heat); border-radius: 3px; }
.art.has-heat .ar-p, .art.has-heat .cap { padding-right: 6.5em; }
.art.has-heat .ar-p ~ .ar-p { padding-right: 0; }

.article-box { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 24px 28px; margin-top: 16px; font-family: var(--serif); }
.article-box .cap { color: var(--ink-2); margin-left: 1em; }
.article-box .ar-p { font-size: 17.5px; line-height: 2; }
.art-nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 12px; font-size: 13.5px; }
.art-nav a { max-width: 48%; display: grid; gap: 1px; line-height: 1.6; }
.art-nav a.next { text-align: right; margin-left: auto; }
.art-nav a { min-width: 0; }
.art-nav .an-l { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.art-nav .an-c { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.art-nav .an-c { font-size: 12.5px; color: var(--muted); font-family: var(--serif); }
.art-nav a:hover { text-decoration: none; }
.art-nav a:hover .an-l { text-decoration: underline; text-underline-offset: 3px; }
.art-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; margin-top: 22px; align-items: start; }
.art-cases h2 { font-family: var(--serif); font-size: 19px; font-weight: 600; margin: 0 0 4px; letter-spacing: .04em; }
.art-cases .sum { color: var(--muted); font-size: 13.5px; margin-bottom: 12px; }
.art-cases .sum b { color: var(--shu); font-size: 18px; }
.art-cases .sum .cov-link { margin-left: .8em; font-size: 12.5px; white-space: nowrap; }   /* 収録範囲（/jp/about#cov）：件数は収録した判例の中での数 */
.spark { display: flex; align-items: flex-end; gap: 4px; height: 54px; margin: 6px 0 14px; }
.spark div { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; }
.spark i { display: block; width: 100%; max-width: 34px; background: color-mix(in srgb, var(--ai-2) 60%, transparent); border-radius: 3px 3px 0 0; min-height: 2px; }
.spark span { font-size: 10.5px; color: var(--faint); }
.co { display: flex; flex-wrap: wrap; gap: 6px; }
.co a { display: inline-flex; gap: 6px; align-items: baseline; border: 1px solid var(--line); border-radius: 6px; padding: 2px 9px; background: var(--paper); font-family: var(--serif); font-size: 13.5px; color: var(--ink-2); }
.co a i { font-style: normal; font-family: var(--sans); font-size: 11px; color: var(--faint); }

.law-index { padding: 26px 0 60px; }
.law-index h1 { font-family: var(--serif); font-weight: 600; font-size: 28px; letter-spacing: .06em; margin: 0 0 6px; }
.law-index .lead { color: var(--muted); margin: 0 0 18px; }
.law-search { max-width: 720px; }
.cats { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0; }
.cats a { border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 3px 12px; font-size: 13px; color: var(--ink-2); }
.cats a.on { background: var(--ai); border-color: var(--ai); color: var(--ai-ink); }
.cats a i { font-style: normal; color: var(--faint); font-size: 11.5px; margin-left: 4px; }
.cats a.on i { color: inherit; opacity: .75; }
.law-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.law-list { list-style: none; margin: 0; padding: 0; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; }
.law-list li { padding: 11px 16px; border-top: 1px solid var(--line-2); }
.law-list li:first-child { border-top: 0; }
.law-list a.t { font-family: var(--serif); font-weight: 600; font-size: 15px; color: var(--ink); }
.law-list a.t:hover { color: var(--ai-2); }
.law-list .m { color: var(--faint); font-size: 12px; margin-top: 2px; }
.law-list .snip { font-family: var(--serif); color: var(--ink-2); font-size: 13.5px; margin-top: 3px; }
.sec-title { font-size: 13px; color: var(--muted); font-weight: 600; letter-spacing: .06em; margin: 0 0 8px; display: flex; gap: 8px; }

/* ---------- フッター等 ---------- */
.footer { border-top: 1px solid var(--line); margin-top: 24px; padding: 30px 28px 26px; color: var(--muted); font-size: 12.5px; line-height: 1.8; background: color-mix(in srgb, var(--paper) 55%, var(--bg)); }
.footer .f-in { max-width: 1140px; margin: 0 auto; }
.footer p { margin: 0; }
.f-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 40px; }
.f-logo { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); text-decoration: none; }
.f-logo .brand-ico { width: 24px; height: 24px; }
.f-logo .brand-name { font-size: 15px; }
.f-logo .brand-sub { font-size: 12px; }
.f-nav { display: flex; flex-wrap: wrap; gap: 6px 24px; }
.f-nav a { color: var(--muted); text-decoration: none; font-size: 13px; letter-spacing: .04em; }
.f-nav a:hover { color: var(--ai); }
.f-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--line-2); }
.f-copy { font-size: 11.5px; color: var(--faint); letter-spacing: .04em; }
.f-copy span + span::before { content: "·"; margin: 0 .7em; }
.toast {
  position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 20px); opacity: 0; transition: .2s; z-index: 100;
  background: var(--ink); color: var(--paper); padding: 9px 18px; border-radius: 999px; font-size: 13.5px; pointer-events: none;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.skeleton { background: linear-gradient(90deg, var(--line-2), var(--paper-2), var(--line-2)); background-size: 200% 100%; animation: sk 1.2s infinite; border-radius: 10px; }
@keyframes sk { from { background-position: 200% 0; } to { background-position: -200% 0; } }
.card-sk { height: 132px; margin-bottom: 12px; list-style: none; }
.nf { padding: 80px 0; text-align: center; }
.nf h1 { font-family: var(--serif); font-weight: 600; }

/* ---------- 狭い画面 ---------- */
@media (max-width: 1100px) {
  .hero-tate { display: none; }
}
@media (max-width: 1180px) {
  .hr-body, .hr-body.no-rail { grid-template-columns: 180px minmax(0, 1fr); }
  .rail { grid-column: 1 / -1; position: static; max-height: none; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}
@media (max-width: 900px) {
  .topbar { flex-wrap: wrap; gap: 10px; padding: 10px 16px; height: auto; }
  .top-nav > a.on::after { display: none; }
  .top-nav > a { padding: 6px 9px; }
  .top-nav > a.top-mcp { margin: 0 4px; }
  .mcp-band { grid-template-columns: minmax(0, 1fr); padding: 22px 20px; gap: 18px; }
  .home-wrap { padding: 0 16px; }
  .hero { padding: 48px 20px 76px; }
  .brand-sub { display: none; }
  .search-box.compact { order: 3; max-width: none; flex-basis: 100%; }
  .wrap { padding: 0 16px; }
  .home-grid, .features, .law-cols, .art-grid { grid-template-columns: minmax(0, 1fr); }
  .home-more { margin-top: 0; }
  .results-layout { grid-template-columns: minmax(0, 1fr); }
  .facets { position: fixed; inset: 0 auto 0 0; width: min(320px, 86vw); max-height: none; z-index: 90; background: var(--bg); padding: 18px 16px; transform: translateX(-105%); transition: transform .2s; box-shadow: var(--shadow); top: 0; }
  .facets.open { transform: none; }
  .only-mobile { display: inline-flex; }
  .hr-body, .hr-body.no-rail, .law-body { grid-template-columns: minmax(0, 1fr); }
  .toc, .law-toc { position: static; max-height: 260px; }
  .toc { display: none; }
  .hr-head, .law-head { padding: 18px 18px 16px; }
  .text { padding: 22px 16px 28px; }
  .art .heat { position: static; margin: 0 0 4px 1em; }
  .art.has-heat .ar-p, .art.has-heat .cap { padding-right: 0; }
  .hero { padding-top: 40px; }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
  .panel h2 small { display: none; }
  .law-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media print {
  .topbar, .facets, .toc, .rail, .hr-actions, .share, .kw-nav, .footer, .back, .law-toc, .art .heat { display: none !important; }
  body { background: #fff; }
  .text, .hr-head, .headnote, .statute { border: 0; padding: 0; }
  .hr-body, .law-body { display: block; }
}
.text p.pre { text-indent: 0; padding: 0; font-family: var(--sans); font-size: .82em; color: var(--muted); line-height: 1.75; margin: 0 0 .2em; }
.text p.pre + p.h0 { margin-top: 1.6em; }
/* 行政機関の裁決・命令・審決と、出典（税資・訟月等）のバッジ */
.b-adm { background: var(--kin-soft); color: var(--kin); border-color: color-mix(in srgb, var(--kin) 40%, transparent); }
.b-src { background: transparent; color: var(--muted); border-color: var(--line); font-weight: 500; }
.rc-reps { font-size: 12px; color: var(--kin); letter-spacing: .02em; }
.headnote.fold summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; }
.headnote.fold summary::-webkit-details-marker { display: none; }
.headnote.fold summary::after { content: "＋"; color: var(--faint); margin-left: auto; font-size: 13px; }
.headnote.fold[open] summary::after { content: "－"; }
.headnote.fold summary h2 { margin: 0; }
.headnote .hn-body.small { font-size: 14px; line-height: 1.9; }
/* 判例評釈・関連文献（右欄）：種類・著者・「題名」・誌名 巻号 頁（年）、引用をコピー */
.litb { margin-left: auto; color: var(--muted); font-size: 11.5px; white-space: nowrap; letter-spacing: .04em; border: 0; background: none; padding: 0; font-family: inherit; }
.cb + .litb { margin-left: 10px; }
button.litb { cursor: pointer; }
button.litb:hover { color: var(--ai-2); }
.litb b { color: var(--ai-2); font-weight: 700; font-size: 13px; font-family: "Inter", var(--sans); letter-spacing: 0; }
.rail .lit h3 { display: flex; align-items: baseline; gap: 8px; }
.rail .lit-n { margin-left: auto; font-size: 12px; letter-spacing: .02em; color: var(--muted); font-weight: 500; }
.rail .lit-kinds { margin: -2px 0 8px; font-size: 11.5px; color: var(--faint); }
.rail .lit-i { padding: 9px 0; }
.rail .lit-h { display: flex; align-items: center; flex-wrap: wrap; gap: 3px 7px; }
.rail .lit-k { flex: none; padding: 0 6px; border-radius: 4px; font-size: 10.5px; line-height: 1.7; letter-spacing: .04em; color: var(--muted); background: var(--paper-2); border: 1px solid var(--line); }
.rail .lit-k.k-kai { color: var(--shu); background: var(--shu-soft); border-color: transparent; }
.rail .lit-k.k-hyo { color: var(--ai-2); background: var(--ai-soft); border-color: transparent; }
.rail .lit-k.k-hyk { color: var(--paper); background: var(--ai-2); border-color: transparent; font-weight: 600; }   /* 判例百選：目立たせる */
.rail .lit-au { flex: 1 1 auto; min-width: 0; font-size: 12.5px; color: var(--ink); }
.rail .lit-copy { flex: none; margin-left: auto; display: inline-flex; align-items: center; gap: 3px; border: 0; background: none; padding: 2px 0 2px 4px; color: var(--faint); cursor: pointer; font-size: 11px; }
.rail .lit-copy:hover { color: var(--ai-2); }
.rail .lit-copy svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; }
.rail .lit-t { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; margin-top: 3px; font-family: var(--serif); font-weight: 600; font-size: 13.5px; line-height: 1.6; color: var(--ink); overflow-wrap: anywhere; }
.rail .lit-t:hover { color: var(--ai-2); }
.rail .lit-src { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }
.rail .lit-more { margin-top: 6px; padding-left: 0; }
.rail .lit .note a { margin-left: .4em; white-space: nowrap; }
.rail .lit-attr { margin-top: 4px; }
.rail .rel { display: inline-block; margin-right: 6px; font-size: 11px; color: var(--shu); letter-spacing: .04em; }

/* ---------- 日本語の改行 ----------
   見出し・短い文は文節で折り返す（phrase.js が文節の切れ目に <wbr> を入れ、.bx-on を付ける）。行の長さをそろえ、
   1〜3 文字だけの行（「索。」「事例」など）を作らない。判決・条文の本文は通常の禁則処理のまま。 */
.bx-on { word-break: keep-all; overflow-wrap: anywhere; }
h1, h2, h3, h4, .lead, .hr-cite, .hr-name, .rc-title, .mini-cite, .sec-h h2, .law-head h1, .feature b, .mcp-band h2,
.cards b, .tool-h, .an-c { text-wrap-style: balance; }
.lead, .feature span, .mcp-band p, .mini-gist, .rc-gist, .rc-sub, .mini-meta, .headnote .hn-body, .doc p, .doc li, .cards span,
.law-list .m, .law-list .snip, .footer p, .lawcard .lc-foot, .rail .sub, .rail .sim-why, .rail .cb-ctx, .mini-ctx, .ar-p, .text p { text-wrap-style: pretty; }
/* 区切りの「·」は項目の前に付ける（狭い画面では消して間隔だけにする：行頭に「·」が来ないように） */
.syntax, .mcp-band .clients { display: flex; flex-wrap: wrap; gap: 2px 0; }
.syntax { justify-content: center; }
.syntax > span, .mcp-band .clients > span { white-space: nowrap; }
.syntax > span + span::before, .mcp-band .clients > span + span::before { content: "·"; margin: 0 10px; color: var(--faint); }
.law-grid a i { width: 34px; min-width: 34px; padding: 0; }

@media (max-width: 600px) { .fame-list { grid-template-columns: minmax(0, 1fr); } .fame-list li:nth-child(n+9) { display: none; } }
@media (max-width: 600px) {
  .topbar { gap: 8px; padding: 0 12px; height: 56px; flex-wrap: nowrap; }
  .topbar:has(.search-box.compact:not([hidden])) { flex-wrap: wrap; height: auto; padding: 8px 12px 10px; }
  .brand { gap: 7px; }
  .brand-name { font-size: 15.5px; letter-spacing: .02em; }
  .brand-ico { width: 26px; height: 26px; }
  .top-nav { gap: 0; }
  .top-nav > a { padding: 6px 7px; font-size: 13.5px; letter-spacing: .02em; }
  .top-nav > a.top-mcp { padding: 4px 9px; margin: 0 3px; font-size: 12.5px; gap: 4px; }
  .top-nav > a.top-mcp svg { width: 13px; height: 13px; }
  .tp-btn { padding: 6px 7px; border-color: transparent; }
  .tp-btn span { display: none; }
  .hero { padding: 40px 18px 70px; }
  .hero .eyebrow { letter-spacing: .22em; font-size: 10px; }
  .hero .lead { font-size: 14.5px; line-height: 1.95; margin-bottom: 30px; }
  .mode-tabs { gap: 18px; }
  .search-box.big input { font-size: 16px; padding: 13px 10px; }
  .search-box.big button { padding: 9px 16px; }
  .syntax { font-size: 11.5px; }
  .examples a { font-size: 12px; }
  .sec-h { flex-wrap: wrap; gap: 6px 10px; }
  .sec-h small { display: none; }
  .law-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
  .law-grid a { font-size: 14px; gap: 9px; letter-spacing: .02em; }
  .features { gap: 26px; }
  .syntax, .mcp-band .clients { gap: 4px 14px; }
  .syntax > span + span::before, .mcp-band .clients > span + span::before { content: none; }
  .mcp-url { font-size: 12.5px; padding: 9px 9px 9px 12px; gap: 8px; }
  .mcp-url button { padding: 4px 8px; font-size: 11.5px; }
  .mcp-band h2 { font-size: 18px; }
  /* 一覧：1 行目にバッジと被引用、2 行目に裁判の表示（見出しを途中で折り返さない） */
  .mini-head .mini-cite { order: 3; flex-basis: 100%; font-size: 16px; }
  .mini-head .cb { order: 2; }
  /* 検索結果：件数と並び替えを 1 行に */
  .results-head { flex-wrap: nowrap; gap: 8px; }
  .count { white-space: nowrap; }
  .count .took { display: none; }
  .controls { gap: 6px; }
  .controls .btn, .controls select { font-size: 13px; padding-left: 10px; padding-right: 10px; }
  /* 判例ページ：操作ボタンを 2 列にそろえる（印刷は狭い画面では出さない） */
  .hanrei { padding-top: 22px; }
  .hr-head { padding: 18px 16px 16px; }
  .hr-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .hr-actions .btn { justify-content: center; min-width: 0; padding-left: 8px; padding-right: 8px; font-size: 13px; overflow: hidden; text-overflow: ellipsis; }
  .hr-actions .seg { display: grid; grid-template-columns: 1fr 1fr; }
  .hr-actions .seg button { padding: 8px 0; font-size: 13px; }
  .hr-actions .print-btn { display: none; }
  .headnote { padding: 14px 16px; }
  .headnote .hn-body { font-size: 15.5px; line-height: 1.9; }
  .facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 14px; }
}
.bx-nobr, .nw { white-space: nowrap; }
/* 判示事項・裁判要旨の項目：番号の後ろにそろえる（ぶら下げインデント） */
.hn-body p { margin: 0; }
.hn-body p + p { margin-top: .5em; }
.hn-body p.hn-i { padding-left: var(--hn); text-indent: calc(-1 * var(--hn)); }
.hn-body .hn-n { display: inline-block; width: var(--hn); text-indent: 0; }
.count .took { margin-left: 12px; color: var(--faint); font-size: 13px; }

/* 本文中の条文：判例ページの右欄が下に回る幅ではチップで並べる */
@media (max-width: 1180px) {
  .rail ul.chips { display: flex; flex-wrap: wrap; gap: 6px; }
  .rail ul.chips li { border: 0; padding: 0; }
  .rail ul.chips .law-btn { border: 1px solid var(--line); border-radius: 999px; padding: 3px 11px; background: var(--paper-2); font-size: 13px; }
}
/* 絞り込みドロワー：背景を暗くし、開いている間は本文を動かさない */
@media (max-width: 900px) {
  .facets { overflow-y: auto; overscroll-behavior: contain; padding-bottom: 40px; }
  body:has(.facets.open) { overflow: hidden; }
  body:has(.facets.open)::before { content: ""; position: fixed; inset: 0; z-index: 85; background: rgba(12, 16, 24, .38); }
}
details > summary.sec-title { list-style: none; display: flex; align-items: center; gap: 8px; }
details > summary.sec-title::-webkit-details-marker { display: none; }
details > summary.sec-title::after { content: "＋"; font-size: 12px; color: var(--faint); }
details[open] > summary.sec-title::after { content: "－"; }
@media (max-width: 600px) {
  /* 判決本文：階層の字下げは半分に（最大 2 字分）して、狭い画面でも 1 行の字数を確保 */
  .text p, .text p.num { padding-left: calc(min(var(--l, 0), 4) * .5em); }
  .text { font-size: var(--fs, 16px); line-height: 2; }
  /* 法令ページ */
  .law-head { padding: 18px 16px; }
  .law-head .acts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .law-head .acts .btn { justify-content: center; min-width: 0; padding-left: 6px; padding-right: 6px; font-size: 12.5px; letter-spacing: 0; }
  .law-head .acts .btn svg { display: none; }
  .hot > span { flex-basis: 100%; margin-bottom: 2px; }
  .article-box { padding: 18px 16px; }
  .article-box .ar-p { font-size: 16.5px; line-height: 2; }
  .statute { padding: 20px 14px 30px; }
  .ar-p { font-size: 15.5px; }
  .art-nav { font-size: 13px; }
}
/* 全文を掲載しない資料の案内 */
.withheld { border: 1px dashed var(--line); border-radius: 12px; padding: 18px 20px; background: var(--paper-2); font-family: var(--sans); font-size: 14px; }
.withheld b { display: block; margin-bottom: 6px; color: var(--ink); letter-spacing: .06em; }
.withheld p { text-indent: 0; padding: 0; margin: 0 0 12px; color: var(--ink-2); line-height: 1.85; }
.law-src { margin: 10px 2px 0; font-size: 11.5px; line-height: 1.75; color: var(--faint); overflow-wrap: anywhere; }
/* 出典表示の URL は長いので、狭い画面ではどこでも折り返す */
.src, .law-src { overflow-wrap: anywhere; }
/* 目次のない資料（短い答申・本文を載せない資料）：本文と右欄だけ */
.hr-body.no-toc { grid-template-columns: minmax(0, 1fr) 280px; }
.hr-body.no-toc.no-rail { grid-template-columns: minmax(0, 940px); justify-content: center; }
@media (max-width: 1180px) {
  .hr-body.no-toc, .hr-body.no-toc.no-rail { grid-template-columns: minmax(0, 1fr); }
}
.withheld .btn { white-space: normal; text-align: left; line-height: 1.5; }
/* 点線のリーダー（jcore.LEADER）：どこでも改行できるように */
.ldr { line-break: anywhere; word-break: break-all; }
/* 本文中の表（jcore.tableize：措置命令の別表など）：列が狭い画面では表の中だけ横にスクロール */
.text .tbl { margin: .7em 0 1.1em; }
.bt-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.bt { border-collapse: collapse; width: 100%; min-width: calc(var(--nc, 3) * 7.5em); font-size: .86em; line-height: 1.8; text-align: left; text-indent: 0; }
.bt th, .bt td { min-width: 5.5em; padding: .5em .75em; vertical-align: top; border-top: 1px solid var(--line-2); border-left: 1px solid var(--line-2); overflow-wrap: break-word; text-wrap-style: pretty; }   /* 短い列が 1 字幅につぶれないように */
.bt td.bt-x { color: var(--muted); font-size: .92em; }
.bt tr > :first-child { border-left: 0; }
.bt tr > td.bt-nl { border-left: 1px solid var(--line-2); }   /* 上のセルと結合した列の右：行の最初の td でも 1 列目ではない */
.bt thead th { border-top: 0; font: 600 .92em/1.6 var(--sans); color: var(--ink-2); background: color-mix(in srgb, var(--paper) 70%, var(--bg)); }
.bt tbody tr:first-child td { border-top: 0; }
.bt thead + tbody tr:first-child td { border-top: 1px solid var(--line-2); }
.bt td { scroll-margin-top: calc(var(--hdr-h, 60px) + 58px); }
@media (min-width: 1181px) {   /* 表の多い文書：右欄を本文の下に回して本文を広く */
  .hr-body.wide { grid-template-columns: 200px minmax(0, 1fr); }
  .hr-body.wide.no-toc { grid-template-columns: minmax(0, 1fr); }
  .hr-body.wide .rail { grid-column: 1 / -1; position: static; max-height: none; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}
@media (max-width: 600px) {
  .hr-actions .btn { white-space: normal; line-height: 1.35; text-align: center; padding-top: 8px; padding-bottom: 8px; }
  .hr-actions .btn svg { flex: none; }
}
/* 検索結果上部の「語句を含む条文」：各行は 2 行までに */
.lawhits li { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.75; margin: 6px 0; }
.rc-title .rc-reps { display: block; margin-top: 2px; }
@media (max-width: 600px) {
  .lawhits { padding: 12px 14px; }
  .lawhits h4 { flex-wrap: wrap; }
}

/* ---------- 判決日時点の条文・改正履歴・新旧対照 ---------- */
.lp-tabs { display: flex; gap: 2px; margin: 6px 0 8px; border-bottom: 1px solid var(--line-2); }
.lp-tabs button { border: 0; background: none; padding: 6px 10px 7px; font-size: 12.5px; color: var(--muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; letter-spacing: .02em; }
.lp-tabs button.on { color: var(--ai); border-bottom-color: var(--ai); font-weight: 600; }
.lp-note { margin: 8px 0 0; font-size: 11.5px; line-height: 1.7; color: var(--faint); }
/* 判決日が改正履歴の収録開始より前：収録開始時点の条文の注記とその間の改正 */
.lp-cov { margin: 0 0 8px; padding: 6px 10px; border-left: 3px solid var(--kin); background: var(--paper-2, rgba(0,0,0,.03)); border-radius: 4px; font-size: 12px; line-height: 1.7; color: var(--ink-2); overflow-wrap: anywhere; }
.lp-cov.ok { border-left-color: var(--line); color: var(--faint); }
.lp-cov p { margin: 0 0 4px; }
.lp-cov p.warn { font-weight: 600; }
.lp-cov ul { margin: 0 0 4px; padding-left: 1.2em; }
.lp-cov li { margin: 0; overflow-wrap: anywhere; }
.lp-cov li.pri { font-weight: 600; }
.lp-old { margin-top: 8px; font-size: 12.5px; color: var(--muted); }
.lp-old summary { cursor: pointer; }
.diff { white-space: pre-wrap; }
.diff del { background: color-mix(in srgb, var(--shu) 16%, transparent); color: var(--shu); text-decoration: line-through; text-decoration-thickness: 1px; border-radius: 2px; }
.diff ins { background: color-mix(in srgb, #2f7d4f 16%, transparent); color: #1f6b3f; text-decoration: none; border-bottom: 1px solid #2f7d4f; border-radius: 2px; }
:root[data-theme="sumi"] .diff ins { color: #8fd1a6; border-bottom-color: #8fd1a6; background: rgba(143, 209, 166, .14); }
.hv-meta del, .lp-meta del { color: var(--shu); }
.hv-meta ins, .lp-meta ins { color: #1f6b3f; text-decoration: none; border-bottom: 1px solid #2f7d4f; }
.hist-list { list-style: none; margin: 4px 0 0; padding: 0 0 0 14px; border-left: 2px solid var(--line); }
.hist-list li { position: relative; padding: 8px 0 10px; font-size: 13px; }
.hist-list li::before { content: ""; position: absolute; left: -20px; top: 14px; width: 9px; height: 9px; border-radius: 50%; background: var(--paper); border: 2px solid var(--line); }
.hist-list li.cur::before { background: var(--ai); border-color: var(--ai); }
.hist-list li.fut::before { border-style: dashed; }
.hl-d { font-family: var(--serif); font-weight: 600; color: var(--ink); letter-spacing: .02em; }
.hl-tag { display: inline-block; margin-left: 8px; font: 600 10.5px/1.6 var(--sans); color: var(--ai-ink); background: var(--ai); border-radius: 4px; padding: 0 6px; vertical-align: 1px; }
.hl-tag.fut { background: var(--kin); }
.hl-a { color: var(--muted); font-size: 12.5px; line-height: 1.7; margin-top: 2px; }
.hl-a b { color: var(--ink-2); font-weight: 600; margin-right: 6px; }
/* 条番号の付け替え（law_history.identity）・収録開始前の改正（pre） */
.hist-id { margin: 6px 0 8px; padding: 8px 10px; font-size: 12.5px; line-height: 1.7; color: var(--ink-2); background: var(--paper-2, rgba(0,0,0,.03)); border-left: 3px solid var(--ai); border-radius: 4px; overflow-wrap: anywhere; }
.hist-id.warn { border-left-color: var(--kin); }
.hist-list li.hist-sep { padding: 10px 0 2px; font-size: 11.5px; color: var(--faint); }
.hist-list li.hist-sep::before { display: none; }
.hist-list li.other { opacity: .72; }
.hist-list li.other::before { border-style: dotted; }
.hist-list li.pre::before { border-style: dashed; }
.hl-no { display: block; color: var(--ink-2); font-family: var(--serif); }
.hl-what { display: block; color: var(--faint); font-size: 12px; }
.cases-since { margin: 10px 0 0; font-size: 12.5px; color: var(--muted); line-height: 1.7; }
.hl-x { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; font-size: 12.5px; }
.hist-view { margin-top: 14px; }
.hv-head { display: flex; align-items: center; gap: 10px; }
.hv-head h2 { margin: 0; font-size: 15.5px; font-family: var(--serif); }
.hv-meta { font-size: 12.5px; color: var(--muted); margin: 6px 0 12px; }
.hv-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.hv-cols h3 { margin: 0 0 6px; font-size: 12.5px; color: var(--muted); font-weight: 600; letter-spacing: .04em; }
.hist-view .lp-text { max-height: none; font-size: 15px; }
@media (max-width: 760px) { .hv-cols { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 通達・ガイドライン ---------- */
.guide-panel { margin-top: 16px; }
.guide-panel > h2 { font-size: 15.5px; margin: 0 0 8px; display: flex; align-items: baseline; gap: 10px; }
.guide-panel > h2 span { font-size: 12.5px; color: var(--muted); font-weight: 500; }
.gp-group { margin-top: 10px; }
.gp-group h3 { margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--ink-2); display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.gp-group h3 i { font-style: normal; color: var(--faint); font-weight: 500; font-size: 12px; }
.gp-org { font-size: 11px; color: var(--kin); background: var(--kin-soft); border-radius: 4px; padding: 0 6px; font-weight: 600; letter-spacing: .04em; }
.guide-panel ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 0 18px; }
.guide-panel li a { display: flex; gap: 10px; align-items: baseline; padding: 5px 0; border-bottom: 1px solid var(--line-2); color: var(--ink); font-size: 13.5px; }
.guide-panel li a b { flex: none; font-family: var(--serif); font-weight: 600; color: var(--ai-2); min-width: 6.5em; white-space: nowrap; }
.guide-panel li a span { color: var(--ink-2); font-family: var(--serif); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
/* 文書回答など番号が長い（件名そのもの）通達：番号側も縮めて省略表示（横にはみ出さない） */
.guide-panel li { min-width: 0; }
.guide-panel li a b { flex: 0 1 auto; max-width: 60%; overflow: hidden; text-overflow: ellipsis; }
.guide-panel li a:hover { text-decoration: none; }
.guide-panel li a:hover span { color: var(--ai); }
.gp-more summary, .gp-men summary { cursor: pointer; font-size: 12.5px; color: var(--ai-2); margin: 6px 0 2px; }
.gp-men { margin-top: 12px; }
.gp-men .more { display: inline-block; margin-top: 6px; font-size: 12.5px; }
.guide-panel .note { margin: 10px 0 0; font-size: 11.5px; color: var(--faint); }
.suppl-note { margin: 6px 0 0; font-size: 12.5px; color: var(--muted); }
.suppl-note a { margin-right: 10px; font-family: var(--serif); }
/* 2026-10-10 条文ページの関係通達：文書名は群の見出しに一度だけ、各項目は番号＋件名を省略せずに（折り返す） */
.gp-group h3 .gp-doc { font-family: var(--serif); font-size: 14px; color: var(--ink); }
.gp-group h3 .gp-kind { font-size: 11.5px; color: var(--muted); font-weight: 500; }
.gp-basis { margin: 0 0 4px; font-size: 11.5px; color: var(--faint); }
.guide-panel ul.gp-list { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 0 22px; }
.guide-panel .gp-list li a { display: flex; flex-wrap: nowrap; align-items: baseline; }
.guide-panel .gp-list li a b { flex: none; max-width: none; min-width: 5.2em; overflow: visible; text-overflow: clip; white-space: nowrap; }
.guide-panel .gp-list li a span { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.55; }
.guide-panel .gp-mix li a b { min-width: 0; white-space: normal; max-width: 45%; }
@media (max-width: 560px) { .guide-panel ul.gp-list { grid-template-columns: 1fr; } }
.guide-list .gch { font-size: 11.5px; color: var(--faint); margin-top: 1px; }
.guide-colls a { font-family: var(--serif); }
.guide-note { margin-top: 18px; font-size: 12px; color: var(--faint); }
/* /tsutatsu：出典ごとの文書一覧・並び順・年・目次（2026-10-10） */
.gc-group { margin: 0 0 18px; }
.gc-group h3 { font-size: 14px; font-weight: 600; margin: 0 0 2px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; }
.gc-group h3 a { color: var(--ink); }
.gc-group h3 i { font-style: normal; font-weight: 400; font-size: 12px; color: var(--faint); }
.gc-group .cats { margin: 6px 0; }
.gc-more summary { cursor: pointer; font-size: 12.5px; color: var(--ai-2); }
.g-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 4px 0 10px; }
.g-tools .cats { margin: 0; }
.g-years { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }
.g-years label { display: flex; align-items: center; gap: 6px; }
.g-years select { font: inherit; font-size: 13px; padding: 3px 6px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink-2); max-width: 11em; }
.g-years .btn { padding: 3px 12px; font-size: 13px; }
.g-years a { font-size: 12.5px; }
.g-cover { font-size: 12px; color: var(--faint); margin: 0 0 10px; }
.g-toc { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 8px 14px; margin: 0 0 14px; }
.g-toc summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--muted); display: flex; gap: 8px; }
.g-toc summary span { font-weight: 400; color: var(--faint); }
.g-toc ul { list-style: none; margin: 6px 0 2px; padding: 0; columns: 2 22em; column-gap: 28px; }
.g-toc li { display: flex; gap: 8px; align-items: baseline; break-inside: avoid; font-family: var(--serif); font-size: 13.5px; padding: 1px 0; }
.g-toc li.d1 { padding-left: 1.2em; font-size: 12.5px; }
.g-toc li a { color: var(--ink-2); }
.g-toc li.on a { color: var(--ai); font-weight: 600; }
.g-toc li i { font-style: normal; font-size: 11px; color: var(--faint); margin-left: auto; }
.guide-list .gdate { display: inline-block; margin-left: 8px; font-size: 11.5px; color: var(--faint); white-space: nowrap; }
.guide-list .gnum { margin-left: 6px; font-size: 12.5px; color: var(--muted); }
/* 条文の検索：本条を解釈する文書／本文・注で言及するだけの文書（2026-10-10 第3輪） */
.guide-list .grel { display: inline-block; margin-right: 6px; padding: 0 5px; border-radius: 4px; font-size: 11px; line-height: 18px;
  vertical-align: 2px; background: var(--ai-soft); color: var(--ai); }
.guide-list .grel.men { background: var(--paper-2); color: var(--muted); border: 1px solid var(--line); }
.g-hint { margin: 6px 0 10px; font-size: 13px; color: var(--muted); }
.g-hint a { color: var(--ai-2); }
.g-hint.doctrine { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 8px 12px; border: 1px solid var(--line);
  border-radius: 8px; background: var(--paper-2); }
.g-hint.doctrine .refs { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.g-hint.doctrine .ref-chip small { margin-left: 4px; color: var(--muted); font-size: 11px; }
.g-hint.doctrine .dc-note { flex-basis: 100%; color: var(--muted); font-size: 12px; }
.ref-chip.former { border-style: dashed; color: var(--muted); cursor: help; }
.cases-pre { margin-top: 16px; padding-top: 12px; border-top: 1px dashed var(--line); }
.cases-pre h3 { margin: 0 0 6px; font-size: 14.5px; }
.cases-pre h3 > span { margin-left: 6px; font-size: 12.5px; color: var(--muted); font-weight: 400; }
@media (max-width: 560px) { .g-toc ul { columns: 1; } .g-years select { max-width: 9.5em; } }
/* 通達本文中の算式・図（国税庁ページの画像＋代替テキスト／機械読み取り） */
.g-fig { margin: 8px 0 16px; padding: 10px 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; max-width: 100%; overflow-x: auto; }
.g-fig img { display: block; max-width: 100%; height: auto; background: #fff; padding: 6px; border-radius: 6px; box-sizing: border-box; }
.g-fig figcaption { margin-top: 6px; font-size: 12px; color: var(--faint); line-height: 1.6; display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: baseline; }
.g-fig .fx { font-family: var(--serif); font-size: 14px; color: var(--ink-2); flex-basis: 100%; }
.g-fig .fx-src { font-size: 12px; }
.guide-head h1 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.guide-head .gcap { font-size: .62em; color: var(--muted); font-weight: 500; letter-spacing: .02em; }
.guide-head .gpath { display: block; font-size: 12.5px; color: var(--faint); margin-top: 2px; }
.guide-text { line-height: 2; }
.guide-text .hn-body { font-family: var(--serif); font-size: 16px; line-height: 2; text-align: start; line-break: strict; }   /* .headnote .hn-body と同じ理由で左寄せ */
.g-qa { display: grid; grid-template-columns: 2.2em minmax(0, 1fr); gap: 4px 10px; margin-bottom: 14px; }
.g-mark { font: 700 15px/1.9 "Inter", var(--sans); color: var(--ai); }
.g-mark.a { color: var(--shu); }
.g-notes { margin-top: 16px; padding-top: 10px; border-top: 1px dashed var(--line); }
.g-notes h3 { margin: 0 0 4px; font-size: 13px; color: var(--muted); letter-spacing: .1em; }
.g-quoted { margin-top: 14px; font-size: 13px; color: var(--muted); }
.g-quoted summary { cursor: pointer; }
@media (max-width: 600px) {
  .guide-panel ul { grid-template-columns: minmax(0, 1fr); }
  .guide-text .hn-body { font-size: 15.5px; }
}
.hn-body p.hn-c { padding-left: var(--hn); }
.guide-panel li a b { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .guide-panel li a { display: block; padding: 7px 0; }
  .guide-panel li a b { display: block; min-width: 0; }
  .guide-panel li a span { display: block; white-space: normal; font-size: 13px; }
}
.guide-page .headnote, .guide-page .article-box { margin-top: 12px; }


/* ---------- 表示言語（繁體中文・English）：画面の文言だけ訳し、本文は lang="ja" の日本語 ---------- */
:root:lang(zh-Hant) { --serif: var(--serif-zh); --sans: var(--sans-zh); }
:root:lang(en) { --serif: var(--serif-en); --sans: var(--sans-en); }
[lang="ja"] { --serif: var(--serif-ja); --sans: var(--sans-ja); }
[lang="zh-Hant"] { --serif: var(--serif-zh); --sans: var(--sans-zh); }
[lang="en"] { --serif: var(--serif-en); --sans: var(--sans-en); }
:where(:root:not(:lang(ja)) [lang="ja"]), :where(:root:lang(ja) [lang="zh-Hant"]), :where(:root:lang(ja) [lang="en"]) { font-family: var(--sans); }
/* 法律用語の見出し：原語＋小さな訳語 */
.gl { margin-left: .25em; font-size: .86em; font-weight: 500; letter-spacing: .02em; color: var(--muted); font-family: var(--sans); }
.rc-gist .lb .gl { margin-left: .05em; }
/* 英語：日本語用の広い字間を詰める（大文字の欧文ラベルはそのまま） */
:root:lang(en) h1, :root:lang(en) h2, :root:lang(en) h3, :root:lang(en) .top-nav > a, :root:lang(en) .mode-tabs button,
:root:lang(en) .sec-h h2, :root:lang(en) .feature b, :root:lang(en) .mcp-band h2, :root:lang(en) .facts dt, :root:lang(en) .headnote h2,
:root:lang(en) .fgroup h3, :root:lang(en) .btn, :root:lang(en) .badge { letter-spacing: .005em; }
:root:lang(en) .hero h1 { letter-spacing: -.005em; line-height: 1.35; }
:root:lang(en) .hero .lead, :root:lang(en) .feature span, :root:lang(en) .mcp-band p { letter-spacing: 0; line-height: 1.75; }
:root:lang(zh-Hant) .hero h1 { letter-spacing: .06em; }
/* 検索結果：訳したときは西暦の日付を添える */
.rc-date { margin-left: 10px; font-size: 12.5px; color: var(--faint); font-family: var(--sans); font-weight: 500; letter-spacing: .02em; }
/* 表示設定のメニュー（言語・配色） */
.tp-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.tp-btn span { font-size: 12.5px; letter-spacing: .04em; }
.tp-menu.dm { width: 236px; padding: 6px 6px 8px; }
.dm-h { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 10px 4px; font-size: 11.5px; font-weight: 600; color: var(--ink-2); letter-spacing: .08em; }
.dm-h i { font-style: normal; font: 600 9.5px/1 "Inter", var(--sans); letter-spacing: .22em; color: var(--faint); }
.tp-menu .dm-lang { font-size: 14px; }
.tp-menu .dm-lang.on { color: var(--ai); font-weight: 600; }
.dm-themes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 2px 4px 4px; }
.tp-menu .dm-themes button { flex-direction: column; gap: 5px; padding: 8px 4px 6px; justify-content: center; font-size: 12px; border: 1px solid transparent; border-radius: 8px; }
.tp-menu .dm-themes button.on { border-color: var(--ai-2); color: var(--ai); }
.tp-menu .dm-themes .sw { width: 26px; height: 26px; }
.dm-note { text-wrap-style: balance; margin: 6px 10px 2px; padding-top: 8px; border-top: 1px solid var(--line-2); font-size: 11.5px; line-height: 1.65; color: var(--faint); }
/* 頁尾の言語切り替え */
.f-langs { display: flex; gap: 2px; }
.f-langs button { border: 0; background: none; padding: 2px 10px 2px 0; color: var(--muted); font-size: 12.5px; cursor: pointer; }
.f-langs button + button { padding-left: 10px; border-left: 1px solid var(--line); }
.f-langs button:hover { color: var(--ai); }
:root[data-lang="ja"] .f-langs [data-lang-set="ja"], :root[data-lang="zh"] .f-langs [data-lang-set="zh"], :root[data-lang="en"] .f-langs [data-lang-set="en"] { color: var(--ink); font-weight: 600; }
@media (max-width: 600px) {
  /* 英語は語が長いので、狭い画面ではヘッダーの MCP を省き（ホーム・フッターから入れる）、間隔を詰める */
  :root:lang(en) .top-nav > a.top-mcp { display: none; }
  :root:lang(en) .top-nav > a { padding: 6px 6px; font-size: 13px; letter-spacing: 0; }
  :root:lang(en) .brand-name { font-size: 14.5px; }
  :root:lang(en) .controls select { max-width: 46vw; }
}

@media (max-width: 600px) {
  .footer { padding: 26px 18px 22px; }
  .f-top { flex-direction: column; align-items: flex-start; }
  .f-nav { gap: 4px 18px; }
  .f-bottom { flex-direction: column; align-items: flex-start; }
}
/* データの出典（/jp/about） */
.about { max-width: 920px; margin: 0 auto; padding: 8px 0 24px; }
.about h1 { font-family: var(--serif); font-size: 28px; font-weight: 600; letter-spacing: .06em; margin: 10px 0 10px; }
.about .lead { color: var(--muted); font-size: 14px; margin: 0 0 30px; }
.about h2 { font-size: 15px; font-weight: 600; letter-spacing: .08em; margin: 30px 0 10px; color: var(--ink-2); }
.src-tbl { border: 1px solid var(--line); border-radius: 10px; background: var(--paper); overflow: hidden; }
.src-tbl table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.src-tbl th, .src-tbl td { text-align: left; vertical-align: top; padding: 11px 16px; border-top: 1px solid var(--line-2); line-height: 1.7; }
.src-tbl thead th { border-top: 0; font-size: 11.5px; font-weight: 600; letter-spacing: .1em; color: var(--faint); background: color-mix(in srgb, var(--paper) 70%, var(--bg)); }
.src-tbl tbody th { width: 30%; font-weight: 600; color: var(--ink); }
.src-tbl td:last-child { width: 22%; color: var(--muted); font-size: 12.5px; white-space: nowrap; }
.src-tbl td a { color: var(--ai); text-decoration: none; overflow-wrap: anywhere; }
.src-tbl td a:hover { text-decoration: underline; }
.src-tbl td small { display: block; margin-top: 2px; font-size: 12px; color: var(--faint); }
.about-notes { margin: 0; padding-left: 1.2em; color: var(--muted); font-size: 13.5px; line-height: 1.9; }
/* 収録範囲：資料・件数・期間・更新 */
.cov-asof { margin-left: 10px; font-size: 12px; font-weight: 500; letter-spacing: .02em; color: var(--faint); }
.about h3 { font-size: 13px; font-weight: 600; color: var(--muted); margin: 18px 0 8px; letter-spacing: .06em; }
.about h2 + h3 { margin-top: 4px; }
.cov-tbl tbody th { width: auto; }
.cov-tbl td.n { width: 16%; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--ink); }
.cov-tbl td.p { width: 15%; white-space: nowrap; color: var(--ink-2); }
.cov-tbl td.u { width: 17%; }
.cov-tbl th small, .cov-tbl td small { display: block; margin-top: 1px; font-size: 12px; font-weight: 400; color: var(--faint); text-wrap-style: pretty; }
.cov-tbl th, .cov-tbl td { padding-top: 8px; padding-bottom: 8px; }
.cov h3 .cov-asof { font-weight: 400; }
@media (max-width: 600px) {
  .about h1 { font-size: 23px; }
  .src-tbl thead { display: none; }
  .src-tbl tr { display: block; padding: 10px 14px; border-top: 1px solid var(--line-2); }
  .src-tbl tbody tr:first-child { border-top: 0; }
  .src-tbl th, .src-tbl td { display: block; width: auto !important; padding: 0; border: 0; white-space: normal !important; }
  .src-tbl tbody th { margin-bottom: 2px; }
  .src-tbl td:last-child { margin-top: 4px; }
  /* 収録範囲：件数・期間・更新を 1 行に（「67,722 件 · 1947〜2026年 · 毎日」） */
  .cov-tbl tbody td, .cov-tbl tbody td.u { display: inline; margin: 0; color: var(--muted); font-size: 12.5px; text-align: left; }
  .cov-tbl tbody td + td::before { content: " · "; color: var(--faint); }
  .cov-tbl tbody td small { display: inline; margin: 0 0 0 4px; }
  .cov-tbl tbody th { margin-bottom: 3px; }
}

/* 照会の抜粋表示・画像 PDF の注記、引用通達のリスト */
.g-excerpt { margin: 0 0 6px; font-size: 12px; color: var(--faint); letter-spacing: .02em; font-family: var(--sans); }
.g-excerpt a { color: var(--ai); }
.g-ocr { border-left: 2px solid var(--line); padding-left: 8px; }   /* 画像の PDF を OCR した本文 */
.hn-list { margin: 6px 0 0; padding-left: 1.2em; font-size: 13.5px; line-height: 1.8; color: var(--ink-2); }
/* 注記などに含まれる長い URL を折り返す（スマートフォンで横にはみ出さない） */
.article-box .hn-body, .headnote .hn-body, .hn-list { overflow-wrap: anywhere; }

/* ---------------- 立法資料（国会審議）：条文ページ「この条の立法資料」・法令の経緯・法律案・会議録 ---------------- */
.art-main { min-width: 0; display: grid; gap: 22px; align-content: start; }
.lg { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 22px 26px 18px; min-width: 0; }
.lg + .lg { margin-top: 0; }
.lg-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.lg-h h2 { font-family: var(--serif); font-size: 19px; font-weight: 600; margin: 0; letter-spacing: .04em; }
.lg-h .sub { color: var(--muted); font-size: 13px; }
.lg-h .sub b { color: var(--shu); font-size: 16px; font-weight: 700; margin-right: 1px; }
.lg-h .r { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.lg-h .lg-sub2 { display: block; font-size: 12px; color: var(--faint); margin-top: 2px; }
.lg-why { margin: 12px 0 4px; padding: 10px 12px; border-radius: 6px; background: var(--paper-2); font-size: 13px; line-height: 1.75; color: var(--ink-2); overflow-wrap: anywhere; }
.lg-why p { margin: 0; }
.lg-why .lg-why-b { margin-top: 6px; color: var(--muted); font-size: 12.5px; }
.lg-why small { margin-left: 4px; color: var(--faint); }
.lg-empty .lg-h h2 { font-size: 16px; }
.lg-am { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.lg-am li { padding: 4px 0; border-top: 1px solid var(--line-2); }
.lg-am li:first-child { border-top: 0; }
.lg-am a { font-family: var(--serif); margin-right: 6px; }
.lg-am span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.lg-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 10px 0 2px; font-size: 13px; color: var(--muted); }
.lg-chain a, .lg-chain .x { font-family: var(--serif); color: var(--ink-2); }
.lg-chain a { color: var(--ai-2); }
.lg-chain i { font-style: normal; color: var(--faint); }
.lg-sec { margin-top: 20px; }
.lg-sec > h3, .lg-refs > summary h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; font-size: 13px; color: var(--muted); font-weight: 600; letter-spacing: .08em; margin: 0 0 10px; }
.lg-sec > h3 .n, .lg-refs > summary h3 .n { font-weight: 500; letter-spacing: .02em; }
.lg-refs > summary { cursor: pointer; list-style: none; }
.lg-refs > summary::-webkit-details-marker { display: none; }
.lg-refs > summary h3::before { content: "▸"; color: var(--faint); }
.lg-refs[open] > summary h3::before { content: "▾"; }
.lg-weak-note { margin: 0 0 6px; font-size: 12px; color: var(--faint); line-height: 1.7; }
.lg-filter { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 12px; }
.lg-filter button { font: 500 12.5px var(--sans); border: 1px solid var(--line); background: var(--paper); color: var(--ink-2); border-radius: 999px; padding: 3px 11px; cursor: pointer; }
.lg-filter button.on { background: var(--ai); border-color: var(--ai); color: var(--ai-ink); }
.lg-filter button i { font-style: normal; color: var(--faint); margin-left: 4px; font-size: 11.5px; }
.lg-filter button.on i { color: color-mix(in srgb, var(--ai-ink) 70%, transparent); }
.lg-filter .sep { width: 1px; background: var(--line); margin: 2px 4px; }
.sp { border-top: 1px solid var(--line-2); padding: 16px 0 14px; }
#lg-cards > .sp:first-child, .lg-refs > .sp:first-of-type { border-top: 0; padding-top: 4px; }
.sp[hidden] { display: none; }
.sp-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.sp-t { font-family: var(--serif); font-weight: 600; font-size: 15.5px; color: var(--ink); letter-spacing: .03em; line-height: 1.6; }
.sp-when { margin-left: auto; color: var(--muted); font-size: 12px; white-space: nowrap; }
.sp-basis { margin: 4px 0 0; font-size: 11.5px; color: var(--faint); letter-spacing: .02em; }
.sp-basis:empty { display: none; }
.sp-bill { margin: 4px 0 0; font-size: 11.5px; color: var(--faint); text-wrap: pretty; }
.sp-bill a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.b-min { background: var(--ai); color: var(--ai-ink); border-color: var(--ai); }
.b-para { border-color: color-mix(in srgb, var(--shu) 50%, var(--line)); color: var(--shu); background: var(--paper); font-weight: 500; }
.b-ok { background: var(--kin-soft); color: var(--kin); border-color: transparent; }
.b-cite { background: var(--shu-soft); color: var(--shu); border-color: transparent; }
.sp-q { margin: 10px 0 0; padding: 0 0 0 12px; border-left: 2px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.85; overflow-wrap: anywhere; }
.sp-q .who { color: var(--ink-2); font-weight: 600; margin-right: 6px; }
.sp-a { margin: 10px 0 0; font-family: var(--serif); font-size: 15.5px; line-height: 2; color: var(--ink); text-align: justify; line-break: strict; overflow-wrap: anywhere; }
.sp-a .who { font-family: var(--sans); font-size: 12.5px; font-weight: 600; color: var(--ai); margin-right: 8px; letter-spacing: .02em; }
.sp-a mark, .reason mark, .fu mark { background: color-mix(in srgb, var(--mark) 75%, transparent); }
.gap, .reason .ctx { color: var(--faint); }
.sp-conf { margin: 8px 0 0; padding: 7px 12px; background: var(--paper-2); border-radius: 8px; font-size: 13px; color: var(--ink-2); line-height: 1.8; }
.sp-conf .who { font-weight: 600; color: var(--ai); margin-right: 6px; }
.sp-cited { margin: 8px 0 0; font-size: 12.5px; color: var(--shu); }
.sp-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 8px; font-size: 12.5px; }
.sp-foot .src { color: var(--faint); font-size: 11.5px; flex-basis: 100%; overflow-wrap: anywhere; }
.sp-foot a { color: var(--ai-2); }
.sp-foot .cp { border: 0; background: none; padding: 0; color: var(--ai-2); font: inherit; cursor: pointer; }
.lg-more { display: flex; justify-content: center; margin-top: 10px; }
.lg-more-d > summary { list-style: none; margin: 10px auto 0; display: flex; width: max-content; cursor: pointer; }
.lg-more-d > summary::-webkit-details-marker { display: none; }
.reason { font-family: var(--serif); font-size: 15.5px; line-height: 2; color: var(--ink); padding: 12px 16px; background: var(--paper-2); border-radius: 10px; text-align: justify; overflow-wrap: anywhere; }
.reason-full p { margin: 0 0 .6em; text-indent: 1em; }
.reason-full { max-height: 520px; overflow: auto; }
.reason-m { color: var(--muted); font-size: 12.5px; margin-top: 6px; overflow-wrap: anywhere; }
.futai { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.fu { border: 1px solid var(--line-2); border-radius: 10px; padding: 12px 14px; min-width: 0; }
.fu-h { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 12.5px; color: var(--muted); }
.fu-h b { color: var(--ink-2); font-weight: 600; }
.fu p { margin: 8px 0 0; font-family: var(--serif); font-size: 14.5px; line-height: 1.95; color: var(--ink); overflow-wrap: anywhere; }
.fu p .no { color: var(--shu); margin-right: 6px; font-weight: 600; }
.fu .fu-pre { color: var(--muted); font-size: 13.5px; }
.fu-src { margin-top: 6px; font-size: 12px; }
.lg-note { color: var(--faint); font-size: 11.5px; margin: 14px 0 0; line-height: 1.75; }
.lg-side h2 { font-size: 15.5px; margin: 0 0 8px; }
.lg-side .note { color: var(--faint); font-size: 12px; line-height: 1.7; margin: 0 0 8px; text-wrap-style: pretty; }   /* 側欄の注記（判例ページの .rail .note と同じ大きさ） */
.lg-side + .lg-side, aside > .lg-side + section { margin-top: 18px; }
.kv { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 10px; font-size: 13px; line-height: 1.7; margin: 0; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; color: var(--ink-2); overflow-wrap: anywhere; }
.kv dd a { font-family: var(--serif); }
.bars { display: grid; gap: 7px; margin-top: 4px; font-size: 12.5px; }
.bars div { display: grid; grid-template-columns: minmax(5.6em, max-content) minmax(0, 1fr) 3em; align-items: center; gap: 8px; color: var(--ink-2); }
.bars i { display: block; height: 7px; border-radius: 4px; background: color-mix(in srgb, var(--ai-2) 55%, transparent); }
.bars span { text-align: right; color: var(--muted); font-variant-numeric: tabular-nums; }
.rel a, .rel .rel-x { display: flex; gap: 8px; align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--line-2); font-size: 13.5px; color: var(--ink); }
.rel a:last-child { border-bottom: 0; }
.rel b { font-family: var(--serif); color: var(--ai-2); font-weight: 600; white-space: nowrap; }
.rel a span { color: var(--muted); font-family: var(--serif); font-size: 13px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rel i { margin-left: auto; font-style: normal; color: var(--faint); font-size: 11.5px; white-space: nowrap; }
.rel a:hover { text-decoration: none; }
.rel a:hover b { text-decoration: underline; }
/* 法令ページ：制定・改正の経緯 */
.lg-law { margin-top: 16px; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 18px 26px 14px; }
.lg-law h2 { font-family: var(--serif); font-size: 17px; font-weight: 600; margin: 0 0 8px; display: flex; gap: 12px; align-items: baseline; }
.lg-law h2 span { font-family: var(--sans); font-size: 12.5px; color: var(--muted); font-weight: 400; }
.ltl { list-style: none; margin: 0; padding: 0; }
.ltl li { display: grid; grid-template-columns: 9.5em minmax(0, 1fr) minmax(0, auto); gap: 4px 14px; align-items: baseline; padding: 6px 0; border-top: 1px solid var(--line-2); font-size: 13px; }
.ltl li:first-child { border-top: 0; }
.ltl .d { color: var(--muted); font-variant-numeric: tabular-nums; }
.ltl .w { color: var(--ink-2); font-family: var(--serif); overflow-wrap: anywhere; }
.ltl .w b { font-weight: 600; color: var(--ink); margin-right: 8px; }
.ltl .w em { font-style: normal; font-family: var(--sans); color: var(--faint); font-size: 12px; margin-left: 6px; }
.ltl li:not(.pri) .w { color: var(--muted); }
.ltl .b { display: flex; flex-wrap: wrap; gap: 4px 6px; justify-content: flex-end; align-items: baseline; }
.ltl-b { font-family: var(--serif); white-space: nowrap; }
.ltl-more > summary { cursor: pointer; color: var(--ai-2); font-size: 13px; margin: 8px 0 0; }
.lg-law .note { color: var(--faint); font-size: 11.5px; margin: 10px 0 0; }
/* 法律案ページ */
.bill-head .tags, .mv-page .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.bill-head .grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 24px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-2); }
.bill-head .grid div small { display: block; color: var(--faint); font-size: 11.5px; letter-spacing: .06em; margin-bottom: 2px; }
.bill-head .grid div { font-size: 13.5px; color: var(--ink-2); line-height: 1.7; min-width: 0; overflow-wrap: anywhere; }
.bill-page .art-grid { margin-top: 16px; }
.tl { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; margin-top: 12px; }
.tl-col h4 { margin: 0 0 8px; font-size: 13.5px; font-family: var(--serif); color: var(--ink); display: flex; gap: 8px; align-items: baseline; }
.tl-col h4 span { font-family: var(--sans); font-size: 12px; color: var(--muted); font-weight: 400; }
.tl ol { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid var(--line); }
.tl li { position: relative; padding: 5px 0 7px; display: grid; grid-template-columns: 5.6em minmax(0, 1fr) auto; gap: 8px; align-items: baseline; font-size: 13px; }
.tl li::before { content: ""; position: absolute; left: -20px; top: 11px; width: 8px; height: 8px; border-radius: 50%; background: var(--paper); border: 2px solid var(--line); }
.tl li.key::before { background: var(--ai); border-color: var(--ai); }
.tl li.vote::before { background: var(--shu); border-color: var(--shu); }
.tl .d { font-family: var(--serif); color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.tl .w { color: var(--ink-2); min-width: 0; overflow-wrap: anywhere; }
.tl .w em { font-style: normal; color: var(--faint); font-size: 12px; margin-left: 4px; }
.tl .c { color: var(--faint); font-size: 11.5px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.topics { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 20px; margin-top: 10px; }
.topics a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 8px 0; border-bottom: 1px solid var(--line-2); color: var(--ink); }
.topics a b { font-family: var(--serif); font-weight: 600; font-size: 14.5px; }
.topics a span { grid-column: 1; color: var(--muted); font-size: 12px; }
.topics a i { grid-row: 1 / span 2; grid-column: 2; align-self: center; font-style: normal; font-weight: 600; color: var(--shu); font-size: 14px; }
.topics a:hover { text-decoration: none; }
.topics a:hover b { color: var(--ai); }
.cites { list-style: none; margin: 10px 0 0; padding: 0; }
.cites li { padding: 8px 0; border-top: 1px solid var(--line-2); font-size: 13.5px; line-height: 1.7; overflow-wrap: anywhere; }
.cites li:first-child { border-top: 0; }
/* 会議録ビューア */
.mv { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; margin-top: 16px; align-items: start; }
.mv-rail { position: sticky; top: 76px; display: grid; gap: 16px; max-height: calc(100vh - 96px); overflow: auto; scrollbar-width: thin; }
.mv-rail h3 { font-size: 12px; color: var(--faint); font-weight: 600; letter-spacing: .12em; margin: 0 0 6px; }
.mv-rail ul { list-style: none; margin: 0; padding: 0; }
.mv-rail li { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; padding: 4px 0; color: var(--ink-2); }
.mv-rail li a { color: var(--ink-2); min-width: 0; }
.mv-rail li small { display: block; color: var(--faint); font-size: 11.5px; }
.mv-rail li i { font-style: normal; color: var(--faint); font-size: 12px; font-variant-numeric: tabular-nums; }
.mv-rail .agenda li { display: block; font-family: var(--serif); line-height: 1.6; padding: 5px 0; border-bottom: 1px solid var(--line-2); }
.mv-rail .agenda li a { color: var(--ai-2); }
.mv-near { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.mv-near a small { display: block; color: var(--faint); font-size: 11.5px; }
.mv-find { display: flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 8px; padding: 5px 10px; background: var(--paper); font-size: 13px; }
.mv-find input { border: 0; outline: 0; background: transparent; font: inherit; width: 100%; min-width: 0; color: var(--ink); }
.mv-find em { font-style: normal; color: var(--faint); font-size: 12px; white-space: nowrap; }
.mv-body { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 8px 26px 16px; min-width: 0; }
.mv-cov { color: var(--muted); font-size: 12.5px; background: var(--paper-2); border-radius: 8px; padding: 8px 12px; margin: 10px 0; }
.pg { display: flex; align-items: center; gap: 10px; color: var(--faint); font-size: 11.5px; margin: 14px 0 2px; letter-spacing: .06em; scroll-margin-top: 80px; }
.pg::after { content: ""; flex: 1; height: 1px; background: var(--line-2); }
.ut { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); gap: 14px; padding: 12px 0; border-top: 1px solid var(--line-2); scroll-margin-top: 80px; }
.ut .who { font-size: 13px; line-height: 1.55; min-width: 0; overflow-wrap: anywhere; }
.ut .who b { display: block; font-family: var(--serif); font-weight: 600; color: var(--ink); font-size: 14.5px; }
.ut .who span { color: var(--muted); font-size: 12px; }
.ut .who .no { display: block; color: var(--faint); font-size: 11px; margin-top: 2px; font-variant-numeric: tabular-nums; }
.ut .tx { font-family: var(--serif); font-size: 15.5px; line-height: 2; color: var(--ink); text-align: justify; line-break: strict; min-width: 0; overflow-wrap: anywhere; }
.ut .tx p { margin: 0 0 .4em; }
.ut.gov .tx { padding-left: 14px; border-left: 2px solid color-mix(in srgb, var(--ai-2) 45%, transparent); }
.ut.min .who b::after { content: "大臣"; margin-left: 6px; font: 600 10.5px/1.6 var(--sans); color: var(--ai-ink); background: var(--ai); border-radius: 4px; padding: 0 5px; vertical-align: 2px; }
html[data-lang="zh"] .ut.min .who b::after { content: "大臣"; }
html[data-lang="en"] .ut.min .who b::after { content: "Minister"; }
.ut.focus { background: color-mix(in srgb, var(--ai-soft) 70%, transparent); margin: 0 -26px; padding: 14px 26px; border-top-color: transparent; }
.ut .art-ln { color: var(--ai-2); border-bottom: 1px dotted var(--ai-2); }
.ut .art-ln:hover { text-decoration: none; }
.ut .acts { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 6px; font-family: var(--sans); font-size: 12.5px; opacity: .85; }
.ut .acts a, .ut .acts button { color: var(--ai-2); border: 0; background: none; padding: 0; font: inherit; cursor: pointer; }
.cite-box { margin-top: 10px; text-align: left; background: var(--paper-2); border: 1px solid var(--line-2); border-radius: 8px; padding: 9px 12px; font-size: 12.5px; color: var(--ink-2); line-height: 1.75; font-family: var(--sans); overflow-wrap: anywhere; }
.cite-box b { display: block; color: var(--muted); font-weight: 600; font-size: 11.5px; letter-spacing: .06em; }
@media (max-width: 900px) {
  .lg, .lg-law { padding: 18px 16px 14px; }
  .bill-head .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sp-when { margin-left: 0; flex-basis: 100%; }
  .lg-h .r { margin-left: 0; }
  .mv { grid-template-columns: minmax(0, 1fr); }
  .mv-rail { position: static; max-height: none; }
  .mv-body { padding: 6px 16px 14px; }
  .ut { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .ut .who b { display: inline; margin-right: 6px; }
  .ut .who .no { display: inline; margin-left: 6px; }
  .ut.focus { margin: 0 -16px; padding: 12px 16px; }
  .ut, .pg, .lg { scroll-margin-top: 150px; }
  .ltl li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .ltl .b { justify-content: flex-start; }
  .tl li { grid-template-columns: 5.6em minmax(0, 1fr) auto; }
}
@media (max-width: 600px) {
  .tl { grid-template-columns: minmax(0, 1fr); }
  .futai { grid-template-columns: minmax(0, 1fr); }
  .sp-a, .reason, .ut .tx { font-size: 15px; }
}

/* 通達 ⇔ 裁決・判例（判例本文の通達リンク・要旨の参考判決・通達ページの言及する裁決・判例） */
.text a.tsu-link { color: var(--ai-2); border-bottom: 1px dashed color-mix(in srgb, var(--ai-2) 55%, transparent); }
.text a.tsu-link:hover { text-decoration: none; background: var(--ai-soft); }
.text a.tsu-link.old { border-bottom-style: dotted; }
.headnote .sanko { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line-2); }
.headnote .sanko h3 { margin: 0 0 4px; font-size: 12.5px; color: var(--muted); letter-spacing: .1em; font-weight: 700; }
.headnote .sanko ul { list-style: none; margin: 0; padding: 0; font-family: var(--serif); font-size: 15px; line-height: 1.9; }
.headnote .sanko a.case-link { color: var(--ai-2); border-bottom: 1px solid color-mix(in srgb, var(--ai-2) 40%, transparent); }
.headnote .sanko a.case-link:hover { text-decoration: none; background: var(--ai-soft); }
.g-cases { margin-top: 18px; }
.g-cases h2 .g-n { color: var(--ink); font-weight: 600; letter-spacing: .04em; margin-left: 4px; }
.g-cases .mini-list li { padding: 12px 0 11px; }
.g-cases .mini-list li:last-child { border-bottom: 0; }
.g-cases .g-more summary { cursor: pointer; color: var(--ai-2); font-size: 13px; padding: 6px 0; }
.g-cases .note { color: var(--muted); font-size: 12px; margin: 8px 0 0; }

/* ---------------- 判例の読書補助（2026-10-10）：読書バー・目次シート・個別意見・署名・意見の一覧・表示の密度と書体 ---------------- */
/* 個別意見の色：補足意見＝藍、意見＝金、反対意見＝朱（配色ごとのトークンに従う） */
.op-hosoku, .og-hosoku { --op-c: var(--ai-2); --op-soft: var(--ai-soft); }
.op-iken, .og-iken, .op-shosu, .og-shosu { --op-c: var(--kin); --op-soft: var(--kin-soft); }
.op-hantai, .og-hantai { --op-c: var(--shu); --op-soft: var(--shu-soft); }
.hr-main { min-width: 0; display: grid; gap: 18px; align-content: start; }
.text { --tp: clamp(18px, 4vw, 52px); --tt: 34px; }
.text p { scroll-margin-top: calc(var(--hdr-h, 60px) + 58px); }
/* 読書バー：本文の上端に貼りつく（いま読んでいる部分・目次・語句の移動・先頭へ・進み具合） */
.rbar {
  position: sticky; top: var(--hdr-h, 60px); z-index: 30; display: flex; align-items: center; gap: 4px;
  margin: calc(-1 * var(--tt)) calc(-1 * var(--tp)) 22px; padding: 5px calc(var(--tp) - 12px);
  background: color-mix(in srgb, var(--paper) 93%, transparent); backdrop-filter: saturate(1.3) blur(10px); -webkit-backdrop-filter: saturate(1.3) blur(10px);
  border-bottom: 1px solid var(--line-2); border-radius: 13px 13px 0 0; font-family: var(--sans); font-size: 13px; line-height: 1.4;
  text-align: left; text-indent: 0; letter-spacing: 0; transition: top .22s ease; user-select: none; -webkit-user-select: none;
}
.rb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; flex: none; min-width: 36px; height: 36px; padding: 0 8px;
  border: 0; background: none; color: var(--ink-2); border-radius: 8px; cursor: pointer; font: 500 13px/1 var(--sans); letter-spacing: .04em; }
.rb-btn:hover { background: var(--paper-2); color: var(--ai); }
.rb-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.rb-toc { display: none; }
.rb-cur { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0 6px; color: var(--muted);
  font-family: var(--serif); font-size: 13.5px; letter-spacing: .02em; }
.rb-cur[data-op="hosoku"], .rb-cur[data-op="iken"], .rb-cur[data-op="shosu"], .rb-cur[data-op="hantai"] { color: var(--ink); }
.rb-cur[data-op="hosoku"] { --op-c: var(--ai-2); } .rb-cur[data-op="iken"], .rb-cur[data-op="shosu"] { --op-c: var(--kin); } .rb-cur[data-op="hantai"] { --op-c: var(--shu); }
.rb-cur[data-op="hosoku"]::before, .rb-cur[data-op="iken"]::before, .rb-cur[data-op="shosu"]::before, .rb-cur[data-op="hantai"]::before {
  content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 7px; vertical-align: 1px; background: var(--op-c); }
.rb-kw { display: inline-flex; align-items: center; flex: none; }
.rb-kw b { font: 600 12px/1.5 var(--sans); font-variant-numeric: tabular-nums; background: var(--mark); color: var(--ink); border-radius: 4px; padding: 0 6px; white-space: nowrap; }
.rb-kw button { width: 32px; height: 36px; border: 0; background: none; cursor: pointer; color: var(--ink-2); border-radius: 8px; font-size: 15px; }
.rb-kw button:hover { background: var(--paper-2); color: var(--ai); }
.rb-prog { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--ai-2); opacity: .8; transform: scaleX(0); transform-origin: 0 50%; pointer-events: none; }
/* 個別意見の冒頭：種類の小見出し・色の罫 */
.text p.op { position: relative; text-indent: 0; padding: 1.15em 0 0; margin: 2.6em 0 .9em; border-top: 1px solid var(--line); font-weight: 700; letter-spacing: .02em; }
.text p.op::before { content: attr(data-k); display: block; margin-bottom: .3em; font: 600 11.5px/1.5 var(--sans); letter-spacing: .16em; color: var(--op-c); }
.text p.op::after { content: ""; position: absolute; left: 0; top: -1px; width: 3.5em; height: 2px; background: var(--op-c); }
/* 目次：個別意見は色の点、意見の中の見出しは一段下げる */
.toc a.op { margin-top: 8px; color: var(--ink-2); font-weight: 500; }
.toc a.op::before, .sh-toc a.op::before { content: ""; display: inline-block; flex: none; width: 6px; height: 6px; border-radius: 50%; margin-right: 7px; vertical-align: 2px; background: var(--op-c); }
.toc a.sub.lv1 { padding-left: 28px; font-size: 12.5px; }
.toc a.sub.lv2 { padding-left: 38px; font-size: 12px; }
/* 見出しの「意見」欄：誰がどの意見を書いたか */
.ops { display: flex; align-items: baseline; gap: 6px 14px; margin: 14px 0 0; padding: 12px 0 0; border-top: 1px solid var(--line-2); }
.ops-k { flex: none; font-size: 11.5px; color: var(--faint); letter-spacing: .08em; }
.ops-v { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; min-width: 0; }
.og { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; min-width: 0; }
.og > b { font-size: 12px; font-weight: 600; color: var(--op-c); letter-spacing: .04em; }
.og a { font-family: var(--serif); font-size: 14.5px; color: var(--ink); padding: 1px 2px; border-bottom: 1px solid color-mix(in srgb, var(--op-c) 50%, transparent); }
.og a:hover { text-decoration: none; background: var(--op-soft); }
.og a small { margin-left: 5px; font-family: var(--sans); font-size: 11.5px; color: var(--muted); }
.og-una { font-size: 13.5px; color: var(--ink-2); font-weight: 500; }
.og-una small { margin-left: 6px; font-size: 12px; color: var(--faint); font-weight: 400; }
/* 署名欄：肩書と氏名を空けて並べる */
.text p.sig .sj { display: inline-block; margin-left: 1.1em; white-space: nowrap; }
/* 目次シート（狭い画面）：下からせり上がる。いまの位置を強調 */
html.sheet-open { overflow: hidden; }
.sheet { position: fixed; inset: 0; z-index: 95; }
.sh-back { position: absolute; inset: 0; background: rgba(12, 16, 24, .4); opacity: 0; transition: opacity .2s ease; }
.sh-panel { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; max-height: min(80vh, 720px);
  background: var(--paper); border-radius: 16px 16px 0 0; box-shadow: 0 -10px 30px rgba(0, 0, 0, .18); transform: translateY(100%);
  transition: transform .22s ease; padding-bottom: env(safe-area-inset-bottom); }
.sheet.open .sh-back { opacity: 1; }
.sheet.open .sh-panel { transform: none; }
.sh-grip { flex: none; width: 36px; height: 4px; border-radius: 2px; background: var(--line); margin: 8px auto 0; }
.sh-head { flex: none; display: flex; align-items: center; gap: 10px; padding: 0 6px 0 18px; border-bottom: 1px solid var(--line-2); }
.sh-head b { font-size: 14px; font-weight: 600; letter-spacing: .12em; }
.sh-pct { color: var(--faint); font-size: 12px; font-variant-numeric: tabular-nums; }
.sh-x { margin-left: auto; width: 44px; height: 44px; border: 0; background: none; color: var(--muted); font-size: 16px; cursor: pointer; border-radius: 10px; }
.sheet .ops { flex: none; margin: 0; padding: 8px 18px 10px; border-top: 0; border-bottom: 1px solid var(--line-2); }
.sheet .ops-k { display: none; }
.sh-toc { overflow: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 6px 8px 16px; }
.sh-toc a { display: flex; align-items: center; min-height: 44px; padding: 6px 12px; border-radius: 9px; color: var(--ink-2); font-family: var(--serif); font-size: 15px; line-height: 1.45; }
.sh-toc a:hover { text-decoration: none; background: var(--paper-2); }
.sh-toc a.lv0 { font-weight: 600; color: var(--ink); letter-spacing: .06em; }
.sh-toc a.lv1 { padding-left: 24px; }
.sh-toc a.lv2 { padding-left: 36px; font-size: 14px; color: var(--muted); }
.sh-toc a.op { font-weight: 600; color: var(--ink); margin-top: 6px; border-top: 1px solid var(--line-2); border-radius: 0; }
.sh-toc a.sub.lv1 { padding-left: 34px; font-size: 14px; }
.sh-toc a.sub.lv2 { padding-left: 46px; font-size: 13.5px; }
.sh-toc a.on { background: var(--ai-soft); color: var(--ai); font-weight: 600; border-radius: 9px; }
/* この判例を引用する裁判（全件）：本文の欄 */
.cited-full { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 18px 22px 16px; min-width: 0; scroll-margin-top: calc(var(--hdr-h, 60px) + 16px); }
.cited-full.busy { opacity: .6; transition: opacity .15s; }
.cf-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.cf-h h2 { margin: 0; font-family: var(--serif); font-size: 18px; font-weight: 600; letter-spacing: .04em; }
.cf-n { color: var(--muted); font-size: 13px; }
.cf-sort { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); }
.cf-sort select { font: inherit; font-size: 13px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; min-height: 36px; }
.cf-f { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.cf-f button { font: 500 12.5px var(--sans); border: 1px solid var(--line); background: var(--paper); color: var(--ink-2); border-radius: 999px; padding: 4px 12px; cursor: pointer; min-height: 32px; }
.cf-f button.on { background: var(--ai); border-color: var(--ai); color: var(--ai-ink); }
.cf-f button i { font-style: normal; color: var(--faint); margin-left: 5px; font-size: 11.5px; }
.cf-f button.on i { color: color-mix(in srgb, var(--ai-ink) 70%, transparent); }
.cited-full .mini-list { margin-top: 6px; }
.cited-full .mini-list li:last-child { border-bottom: 0; }
.cf-more { text-align: center; margin: 12px 0 0; }
.cited-full .note { color: var(--faint); font-size: 12px; margin: 10px 0 0; }
/* 英語表示：法令の公定英訳名 */
.law-head .en-title { margin: 2px 0 0; font-family: var(--serif-en); font-size: 15px; color: var(--muted); letter-spacing: .01em; }
.en-t { margin-left: .6em; font-family: var(--sans-en); font-size: .86em; color: var(--muted); }
/* 表示設定：本文の密度・書体 */
.dm-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 2px 4px 4px; }
.tp-menu .dm-seg button { justify-content: center; border: 1px solid var(--line-2); border-radius: 8px; padding: 7px 4px; font-size: 13px; }
.tp-menu .dm-seg button.on { border-color: var(--ai-2); color: var(--ai); font-weight: 600; }
.tp-menu .dm-seg .f-serif { font-family: var(--serif-ja); }
.tp-menu .dm-seg .f-sans { font-family: var(--sans-ja); }
:root[data-bodyfont="sans"] .text, :root[data-bodyfont="sans"] .headnote .hn-body, :root[data-bodyfont="sans"] .rb-cur { font-family: var(--sans); }
:root[data-density="compact"] .text { line-height: 1.82; font-feature-settings: "palt"; letter-spacing: .01em; }
:root[data-density="compact"] .text p { margin-bottom: .15em; }
:root[data-density="compact"] .text p.h0 { margin: 1.1em 0 .4em; }
:root[data-density="compact"] .headnote .hn-body { line-height: 1.8; font-feature-settings: "palt"; }
/* 入力の「/」キーの案内：キーボードのない端末では出さない */
@media (hover: none), (pointer: coarse) { .search-box kbd { display: none; } }
@media (max-width: 900px) {
  /* ヘッダー：読み進めると隠し、戻すと出す（読書バーはその下に貼りつく） */
  .topbar { transition: transform .22s ease; }
  html.hdr-hide .topbar { transform: translateY(-100%); }
  html.hdr-hide .rbar { top: 0; }
  .text { --tp: 16px; --tt: 22px; }
  .text p { scroll-margin-top: 62px; }
  .rbar { gap: 0; padding: 2px 4px; border-radius: 13px 13px 0 0; }
  .rb-btn { min-width: 44px; height: 44px; }
  .rb-toc { display: inline-flex; padding: 0 10px 0 8px; }
  .rb-kw button { width: 40px; height: 44px; }
  .rb-cur { font-size: 13px; padding: 0 4px; }
  /* 語句の移動は読書バーの中へ（本文に重ならない）。バーのない短い文書は右下の小さな枠 */
  .hanrei:has(.rbar) .kw-nav { display: none !important; }
  .kw-nav { right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); padding: 2px 3px 2px 12px; }
  .kw-nav button { width: 44px; height: 44px; }
  .hanrei.has-kw, .law-page:has(.kw-nav:not([hidden])) { padding-bottom: 96px; }
  .cited-full { padding: 16px 16px 14px; }
  .cf-sort { margin-left: 0; flex-basis: 100%; }
}
@media (max-width: 600px) {
  :root[data-density="compact"] #hanrei.wrap { padding-left: 10px; padding-right: 10px; }
  :root[data-density="compact"] .text { --tp: 12px; padding-left: 12px; padding-right: 12px; line-height: 1.8; }
  :root[data-density="compact"] .text p, :root[data-density="compact"] .text p.num { padding-left: calc(min(var(--l, 0), 4) * .35em); }
  .ops { flex-direction: column; gap: 4px; }
  .rb-toc span { font-size: 12.5px; }
}
/* 指で押すもの：44px 以上（タッチ端末） */
@media (pointer: coarse) {
  .sp-foot a, .sp-foot .cp, .ut .acts a, .ut .acts button, .linkbtn, .back, .crumbs a, .lp-tabs button, .hl-x a,
  .f-langs button, .tp-menu .dm-lang, .tp-menu .dm-seg button, .og a, .og-una, .cf-f button, .rail .law-btn { display: inline-flex; align-items: center; min-height: 44px; }
  .rail .lit-copy, button.litb { min-height: 44px; min-width: 44px; justify-content: flex-end; }
  .tp-menu .dm-lang { display: flex; }
  .ref-chip { display: inline-flex; align-items: center; min-height: 44px; }
  .tp-btn, .lp-close { min-width: 44px; min-height: 44px; justify-content: center; }
  .top-nav > a { display: inline-flex; align-items: center; min-height: 44px; }
  .seg button, .hr-actions .seg button { min-height: 44px; }
  .rail li { position: relative; }
  .rail li > a.case:only-of-type::after { content: ""; position: absolute; inset: 0; }
  .rail li > a.case { min-height: 44px; display: flex; align-items: center; }
  details > summary { min-height: 44px; padding-top: 10px; padding-bottom: 10px; box-sizing: border-box; }
  .headnote.fold > summary { padding-top: 0; padding-bottom: 0; }
  .pager a, .pager span { min-width: 44px; height: 44px; }
  .cf-sort select { min-height: 44px; }
}
@media print {
  .rbar, .sheet, .cited-full .cf-f, .cf-sort, .cf-more { display: none !important; }
  .text p.op::after { display: none; }
}
/* 目次の見出し：番号の後ろで折り返しをそろえる。意見の一覧は氏名に下線 */
.toc a, .sh-toc a { display: flex; gap: .55em; }
.toc a .tn, .sh-toc a .tn { flex: none; }
.toc a .tt, .sh-toc a .tt { min-width: 0; }
.og a { border-bottom: 0; padding: 1px 3px; border-radius: 4px; }
.og a > span[lang] { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--op-c) 55%, transparent); text-decoration-thickness: 1px; text-underline-offset: 5px; }

/* ---- 検索結果：裁判例／裁決等のタブ、同義語の注記、事件の通称カード、通達ブロック、0 件時の提案（2026-10-10） ---- */
.src-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin: 0 0 10px; overflow-x: auto; scrollbar-width: none; }
.src-tabs::-webkit-scrollbar { display: none; }
.src-tab { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; min-height: 40px; font-size: 13.5px; color: var(--muted);
  border-bottom: 2px solid transparent; margin-bottom: -1px; text-decoration: none; white-space: nowrap; }
.src-tab:hover { color: var(--ink); text-decoration: none; }
.src-tab.on { color: var(--ai); border-bottom-color: var(--ai); font-weight: 600; }
.src-tab i { font-style: normal; font-size: 12px; color: var(--faint); font-variant-numeric: tabular-nums; }
.src-tab.on i { color: var(--ai-2); }
.src-tab .tl-short { display: none; }
@media (max-width: 480px) {
  .src-tab { padding: 8px 10px; }
  .src-tab .tl-long { display: none; }
  .src-tab .tl-short { display: inline; }
}
.exp-note { font-size: 12.5px; line-height: 1.7; }
.exp-note b { color: var(--ink-2); font-weight: 600; }
.case-card { background: var(--paper); border: 1px solid var(--line); border-left: 4px solid var(--ai); border-radius: var(--radius); padding: 12px 18px 6px; margin-bottom: 12px; }
.case-card .cc-h { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.case-card .cc-lb { font-size: 11.5px; letter-spacing: .08em; color: var(--ai); border: 1px solid var(--ai); border-radius: 3px; padding: 0 6px; }
.case-card .cc-h b { font-family: var(--serif); font-size: 16px; }
.b-case { background: var(--paper); color: var(--ai); border-color: var(--ai); font-weight: 500; }
.case-card .mini-list { margin: 0; }
.gblock { list-style: none; background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 16px; margin: 4px 0 14px; }
.gblock .gb-h { display: flex; align-items: baseline; gap: 10px; font-size: 13px; color: var(--muted); margin-bottom: 4px; }
.gblock .gb-h b { color: var(--ink-2); }
.gblock .gb-h a { margin-left: auto; }
.gblock ul { list-style: none; padding: 0; margin: 0; }
.gblock li li { font-size: 13.5px; padding: 4px 0; border-top: 1px dashed var(--line-2); display: flex; flex-wrap: wrap; gap: 2px 10px; }
.gblock li li:first-child { border-top: 0; }
.gblock .gb-src { color: var(--faint); font-size: 12px; }
.recover { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 16px; margin: 10px 0 14px; font-size: 13.5px; }
.recover .rv-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 4px 0; }
.recover .rv-lb { color: var(--muted); font-size: 12.5px; min-width: 9.5em; }
.recover .rv-lits { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; flex: 1 1 0; min-width: 0; }
.recover .rv-lits .rv-sub { display: block; color: var(--muted); font-size: 12.5px; line-height: 1.6; overflow-wrap: anywhere; }
.recover .rv-note { flex: 1 1 0; min-width: 0; font-size: 13px; color: var(--ink-2); }
.rc-alt { font-family: inherit; font-size: 12.5px; color: var(--muted); }
.cases-admin { margin: 10px 0 0; font-size: 13px; }
@media (max-width: 640px) {
  .recover .rv-lb { min-width: 0; width: 100%; }
  .gblock { padding: 10px 12px; }
  .case-card { padding: 10px 12px 4px; }
}
/* 読書バーの長い見出し（省略表示）が本文の欄の幅を押し広げないように */
.hr-main { grid-template-columns: minmax(0, 1fr); }
.rb-cur { flex: 1 1 0; width: 0; }
.rc-sub .aka { color: var(--muted); margin-left: .3em; }
/* 指で押すもの（続き）：ボタン・ロゴ・一覧の見出し・チップ。一覧の見出しは行全体を押せるように（見た目は変えない） */
@media (pointer: coarse) {
  .btn, .search-box input, .controls select { min-height: 44px; }
  .brand, .f-logo { min-height: 44px; }
  .mini-list li { position: relative; }
  .mini-list li .mini-cite::after { content: ""; position: absolute; inset: 0; }
  .mini-list li .mini-head .cb, .mini-list li .badge { position: relative; }
  .co a, .hot a, .fu-src a, .lg-filter button, .ltl-b, .examples a, .mode-tabs button, .guide-panel li a, .law-toc a, .law-grid a,
  .sec-h .more, .gp-more summary, .gp-men summary { display: inline-flex; align-items: center; min-height: 44px; }
  .guide-panel li a, .law-toc a { display: flex; }
  .art .heat { position: relative; }
  .art .heat::after { content: ""; position: absolute; inset: -10px -6px; }
}
@media (pointer: coarse) {
  .art-nav a, .lg-chain a, .reason-m a, .lg-am a, .rel a, .cats a, .law-list a.t, .mcp-url button { display: inline-flex; align-items: center; min-height: 44px; }
  .art-nav a { flex-direction: column; justify-content: center; align-items: flex-start; }
  .art-nav a.next { align-items: flex-end; }
  .rel a { display: flex; }
  .law-find input { min-height: 44px; }
  a.more { display: inline-flex; align-items: center; min-height: 44px; }
}
.cited-full .note, .ops-v, .og a small { text-wrap-style: pretty; }
.toc a .tt, .sh-toc a .tt { text-wrap-style: balance; }
.text p.op { text-wrap-style: balance; }
/* 個別意見の冒頭：見出しとして左寄せ（均等割付で字間が開かないように） */
.text p.op { text-align: left; text-align-last: auto; }
.text .withheld.no-text { margin-top: 4px; }
@media (pointer: coarse) { select { min-height: 44px; } }
/* タッチ端末：検索結果の見出しリンク（.cit）を 44px 以上の押せる高さに（2026-10-10） */
@media (pointer: coarse) {
  .rc-title .cit { display: inline-flex; align-items: center; min-height: 44px; }
  .src-tab { min-height: 44px; }
  .recover .rv-row a, .gblock li li a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* 別表（法令の provision="appdx"：/law/印紙税法/別表第一）。e-Gov の表のまま（rowspan／colspan、罫線なしの辺 nb-*、揃え al-*／va-*）。
   広い表は枠（.ax-scroll）の中で横スクロールし、ページ全体は横にはみ出さない */
.appdx-box { padding: 20px clamp(12px, 2.6vw, 28px); min-width: 0; }
.appdx-box .ar-p { font-size: 16px; line-height: 1.9; }
.appdx-box .ax-tt { margin-top: .9em; }
.ax-scroll { overflow-x: auto; max-width: 100%; margin: 10px 0 16px; -webkit-overflow-scrolling: touch; }
.ax-scroll:focus-visible { outline: 2px solid var(--ai-2); outline-offset: 2px; }
.ax-tbl { border-collapse: collapse; font-family: var(--serif); font-size: 14.5px; line-height: 1.7; min-width: 100%; background: var(--paper); }
.ax-tbl td, .ax-tbl th { border: 1px solid var(--line); border-color: color-mix(in srgb, var(--ink) 22%, transparent); padding: 5px 8px; vertical-align: top; text-align: left; min-width: 3em; }
.ax-tbl th { background: var(--paper-2); font-weight: 600; }
.ax-tbl .w { min-width: 13em; }
.ax-tbl .s { white-space: nowrap; }
.ax-tbl .nb-t { border-top-style: none; } .ax-tbl .nb-b { border-bottom-style: none; }
.ax-tbl .nb-l { border-left-style: none; } .ax-tbl .nb-r { border-right-style: none; }
.ax-tbl .al-c { text-align: center; } .ax-tbl .al-r { text-align: right; } .ax-tbl .al-j { text-align: justify; }
.ax-tbl .va-m { vertical-align: middle; } .ax-tbl .va-b { vertical-align: bottom; }
.ax-note { font-size: 14.5px; color: var(--ink-2); }
.ax-index { margin-top: 18px; }
.ax-index h2 { font-size: 17px; text-align: left; margin: 0 0 .6em; }
.ax-list { list-style: none; margin: 0; padding: 0; }
.ax-list li a { display: block; padding: 8px 0; border-bottom: 1px dashed var(--line); color: var(--ink); }
.ax-list li:last-child a { border-bottom: 0; }
.ax-list li a:hover { color: var(--ai-2); text-decoration: none; }
.ax-list b { margin-right: .6em; }
.ax-list small { display: block; color: var(--muted); font-size: 12.5px; }
.ax-list li.on a { color: var(--shu); }
@media (max-width: 600px) {
  .ax-tbl { font-size: 13.5px; }
  .ax-tbl td, .ax-tbl th { padding: 4px 6px; }
  .ax-tbl .w { min-width: 11em; }
}
/* ---- この事件の審級（判例ページの頭）：第一審 › 控訴審 › 上告審（2026-10-10） ---- */
.inst { display: flex; align-items: baseline; gap: 6px 14px; margin: 14px 0 0; padding: 12px 0 0; border-top: 1px solid var(--line-2); }
.inst + .ops { margin-top: 10px; }
.inst-v { list-style: none; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 0; margin: 0; padding: 0; min-width: 0; }
.inst-v li { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; white-space: nowrap; }
.inst-v li + li::before { content: "›"; color: var(--faint); margin: 0 10px 0 8px; }
.inst-v .ir { font-size: 12px; font-weight: 600; color: var(--ai-2); letter-spacing: .04em; }
.inst-v a, .inst-v b { font-family: var(--serif); font-size: 14.5px; color: var(--ink); }
.inst-v b { font-weight: 600; }
.inst-v a { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--ai) 45%, transparent); text-decoration-thickness: 1px; text-underline-offset: 5px; }
.inst-v a:hover { text-decoration: none; background: var(--ai-soft); }
.inst-v small { font-size: 12px; color: var(--muted); }
.facts dd a[data-link] { color: inherit; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--ai) 45%, transparent); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.facts dd a[data-link]:hover { text-decoration: none; background: var(--ai-soft); }
@media (max-width: 600px) {
  .inst { flex-direction: column; gap: 4px; }
  .inst-v { flex-direction: column; align-items: flex-start; }
  .inst-v li + li::before { content: none; }
}
@media (pointer: coarse) {   /* 押せる高さ 44px：見た目の行の高さは変えずに当たり判定だけ広げる */
  .inst-v a { padding: 12px 0; margin: -12px 0; }
  .inst-v li { padding: 6px 0; }
  .facts dd a[data-link] { padding: 12px 0; }
}
/* ---- 長い本文・法令全文：画面外の段落・条は描画を省く（2026-10-10）。推定の高さ＝字数（--cn）× 1 字あたりの行数（--cpl、app.js setCpl）。
   段落のはみ出し（ぶら下げの字下げ・意見の色の線）は overflow-clip-margin で切らない。対応していない（Safari 等）ときは使わない ---- */
@supports (content-visibility: auto) and (overflow-clip-margin: 1em) {
  .text > p { content-visibility: auto; overflow-clip-margin: 1.5em; contain-intrinsic-size: auto calc((var(--cn, 24) * var(--cpl, .03) + .6) * 2.05em); }
  .statute > .art { content-visibility: auto; overflow-clip-margin: 1.5em; contain-intrinsic-size: auto calc((var(--cn, 60) * var(--cpl, .03) + 1.8) * 1.95em + 20px); }
}
@media print { .text > p, .statute > .art { content-visibility: visible !important; } }
/* ---- 判決に添付された当事者の上告理由・訟月の【参考】下級審判決：裁判所の判断と区別して控えめに（2026-10-10） ---- */
.text p.app { color: var(--ink-2); font-size: .95em; }
.text p.apph, .text p.appstart { position: relative; margin: 2.8em 0 .9em; padding-top: 1.15em; border-top: 1px dashed var(--line); text-indent: 0; }
.text p.apph { font-weight: 700; text-align: left; text-align-last: auto; }
.text p.apph::before, .text p.appstart::before { content: attr(data-k); display: block; margin-bottom: .3em; font: 600 11.5px/1.5 var(--sans);
  letter-spacing: .12em; color: var(--faint); }
.text p.appstart { text-indent: 1em; }
.text p.appstart::before { text-indent: 0; }
.text p.apptoc { font-size: .85em; color: var(--muted); text-indent: 0; margin: 0; line-height: 1.8; }
.toc a.app-g, .sh-toc a.app-g { margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--line-2); color: var(--faint); font-weight: 500; font-size: 12px; letter-spacing: .04em; }
.toc a.app, .sh-toc a.app { color: var(--faint); }
.toc a.app.on, .toc a.app-g.on { color: var(--ai); }
/* ---- 狭い画面（〜600px）：ロゴとナビを 1 行に（検索欄はその下の 1 行）。2026-10-10 ---- */
@media (max-width: 600px) {
  .topbar:has(.search-box.compact:not([hidden])) { column-gap: 6px; row-gap: 6px; padding: 6px 12px 10px; }
  .brand { gap: 6px; }
  .brand-name { font-size: 15px; letter-spacing: .01em; }
  .top-nav > a { padding: 6px 6px; letter-spacing: 0; }
  .top-nav > a.top-mcp { padding: 4px 8px; margin: 0 2px; gap: 3px; }
  .theme-pick .tp-btn { padding: 6px 4px; }
}
@media (max-width: 360px) {
  .brand-name { font-size: 14px; }
  .top-nav > a { padding: 6px 4px; font-size: 13px; }
  .top-nav > a.top-mcp { padding: 4px 6px; }
}
/* ---- 条文の小窓・引用のコピー：指で操作する端末・狭い画面では下から出るシート（2026-10-10） ---- */
.pop-back { position: fixed; inset: 0; z-index: 75; background: rgba(15, 20, 30, .32); animation: fadeIn .15s ease-out; }
.law-pop.as-sheet, .cite-menu.as-sheet {
  position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; max-height: min(78vh, 78dvh); overflow: auto; overscroll-behavior: contain;
  border-radius: 16px 16px 0 0; border-bottom: 0; padding: 0 16px calc(12px + env(safe-area-inset-bottom)); z-index: 80;
  box-shadow: 0 -8px 30px rgba(0, 0, 0, .18); animation: sheetUp .2s ease-out;
}
.law-pop.as-sheet .lp-head, .cite-menu.as-sheet .cm-head { position: sticky; top: 0; z-index: 1; background: var(--paper); padding: 12px 0 6px; margin: 0; }
.law-pop.as-sheet .lp-head::before { content: ""; position: absolute; top: 5px; left: 50%; width: 36px; height: 4px; margin-left: -18px; border-radius: 2px; background: var(--line); }
.law-pop.as-sheet .lp-text { max-height: none; }
.law-pop.as-sheet .lp-foot { position: sticky; bottom: calc(-12px - env(safe-area-inset-bottom)); background: var(--paper); margin: 10px 0 0; padding: 6px 0 calc(10px + env(safe-area-inset-bottom)); gap: 0 16px; }
.law-pop.as-sheet .lp-foot a { display: inline-flex; align-items: center; min-height: 44px; }
.cite-menu.as-sheet .cm-head { padding-top: 14px; }
@keyframes sheetUp { from { transform: translateY(24px); opacity: .6; } to { transform: none; opacity: 1; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .law-pop.as-sheet, .cite-menu.as-sheet, .pop-back { animation: none; } }
/* ---- 絞り込みの引き出し（狭い画面）：行は 44px 以上、選んでから「適用」（2026-10-10） ---- */
@media (max-width: 900px) {
  .facets { overflow-y: auto; overscroll-behavior: contain; padding-bottom: 0; bottom: 0; height: 100vh; height: 100dvh; max-height: 100dvh; }
  .facets .fopt { min-height: 44px; font-size: 14.5px; padding: 6px 8px; }
  .facets .fopt .box { width: 18px; height: 18px; }
  .facets .fopt.on .box::after { left: 5px; top: 1.5px; width: 5px; height: 10px; }
  .facets .decade { min-height: 44px; width: 100%; font-size: 13.5px; }
  .facets .yr { flex-wrap: wrap; font-size: 14px; }
  .facets .yr input { width: 88px; min-height: 44px; font-size: 16px; padding: 6px 10px; }
  .facets .yr button { min-height: 44px; padding: 6px 14px; font-size: 14px; }
  .facets .only-mobile .btn { min-height: 44px; }
  .f-apply { position: sticky; bottom: 0; z-index: 2; display: flex; gap: 10px; margin: 8px -16px 0; padding: 10px 16px calc(12px + env(safe-area-inset-bottom));
    background: var(--bg); border-top: 1px solid var(--line); }
  .f-apply .btn { flex: 1; justify-content: center; min-height: 46px; font-size: 15px; }
  .facets.dirty .f-apply .primary { box-shadow: 0 0 0 3px var(--ai-soft); }
}
/* ---- 指で押すもの：フッターのリンク、評釈欄の「誤りを報告」（2026-10-10） ---- */
@media (pointer: coarse) {
  .f-nav { gap: 0 18px; }
  .f-nav a { display: inline-flex; align-items: center; min-height: 44px; }
  .rail .note a[href^="mailto:"], .lit .note a[href^="mailto:"] { display: inline-block; padding: 12px 8px; margin: -12px -8px; }
}
@media (max-width: 340px) { .top-nav > a.top-mcp { display: none; } }
/* ボタンの名前：漢字と片仮名の境目（app.js kanaWbr の <wbr>）でだけ折り返す */
.kb { word-break: keep-all; overflow-wrap: anywhere; }
.about-notes li { text-wrap: pretty; }
/* プライバシーポリシー（/privacy） */
.privacy .pv-foot { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 22px; margin: 32px 0 0; padding-top: 14px; border-top: 1px solid var(--line-2); font-size: 12.5px; color: var(--muted); }
.privacy .pv-langs { display: inline-flex; gap: 14px; }
.privacy .pv-langs a[aria-current] { color: var(--ink); font-weight: 600; }
/* 判例の書き出し：検索結果の「選択」、下の選択バー、まとめて印刷（PDF）の版面 */
.pick { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; color: var(--muted); cursor: pointer; padding: 2px 4px; white-space: nowrap; }
.pick input { margin: 0; accent-color: var(--ai); width: 15px; height: 15px; cursor: pointer; }
.pick:has(input:checked) { color: var(--ai); font-weight: 600; }
.hr-actions [data-pick-doc][aria-pressed="true"] { border-color: var(--ai-2); color: var(--ai); background: var(--ai-soft); }
#pick-bar {
  position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 90;
  display: flex; align-items: center; gap: 12px; flex-wrap: nowrap; justify-content: center; max-width: calc(100vw - 32px); white-space: nowrap;
  background: var(--paper); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); padding: 8px 10px 8px 16px;
}
#pick-bar .pb-n { font-size: 13.5px; color: var(--ink-2); font-weight: 600; white-space: nowrap; }
#pick-bar .pb-n small { font-weight: 400; color: var(--faint); font-size: 11.5px; margin-left: 2px; }
#pick-bar .pb-act { display: flex; gap: 6px; align-items: center; }
body:has(#pick-bar) .toast { bottom: 92px; }
body:has(#pick-bar) .footer { padding-bottom: 88px; }
body.is-exporting, body.is-exporting button { cursor: progress; }
#print-export { display: none; }
@media print {
  #pick-bar, .toast { display: none !important; }
  body.printing-export > *:not(#print-export) { display: none !important; }
  body.printing-export { background: #fff; }
  body.printing-export #print-export { display: block; color: #000; font-family: var(--serif-ja); font-size: 10.5pt; line-height: 1.75; }
  @page { size: A4; margin: 18mm 18mm 20mm; }
  #print-export h1 { font-family: var(--sans-ja); font-size: 14pt; line-height: 1.5; margin: 0 0 8pt; }
  #print-export h2 { font-family: var(--sans-ja); font-size: 10.5pt; margin: 12pt 0 4pt; break-after: avoid; }
  #print-export .pe-no { display: inline-block; min-width: 1.8em; color: #555; }
  #print-export .pe-cover { break-after: page; }
  #print-export .pe-cover h1 { font-size: 20pt; margin-top: 30mm; text-align: center; }
  #print-export .pe-cover .pe-meta { text-align: center; color: #555; font-size: 9pt; margin-bottom: 14mm; }
  #print-export .pe-cover ol { font-size: 10pt; padding-left: 2em; }
  #print-export .pe-doc + .pe-doc { break-before: page; }
  #print-export .pe-facts { margin: 0 0 8pt; padding-bottom: 6pt; border-bottom: .5pt solid #999; font-size: 9.5pt; }
  #print-export .pe-facts div { display: flex; gap: 1em; }
  #print-export .pe-facts dt { font-family: var(--sans-ja); font-weight: 700; min-width: 7.5em; }
  #print-export .pe-facts dd { margin: 0; }
  #print-export .pe-text { white-space: pre-wrap; overflow-wrap: anywhere; }
  #print-export .pe-note { color: #555; }
  #print-export .pe-src { margin-top: 14pt; padding-top: 6pt; border-top: .5pt solid #bbb; font-size: 8pt; color: #444; overflow-wrap: anywhere; }
  #print-export .pe-src p { margin: 0 0 2pt; }
}
@media print {
  #print-export .pe-body p { margin: 0 0 3pt; white-space: pre-wrap; overflow-wrap: anywhere; }
  #print-export .pe-body .pe-h0 { font-family: var(--sans-ja); font-weight: 700; margin: 10pt 0 5pt; break-after: avoid; }
  #print-export .pe-body .pe-h, #print-export .pe-body .pe-op { font-weight: 700; margin-top: 7pt; break-after: avoid; }
  #print-export .pe-body .pe-sig { text-align: right; margin: 0; }
  #print-export .pe-body .pe-pre { font-size: 9pt; color: #555; }
}
#pick-bar .linkbtn { white-space: nowrap; }
@media (max-width: 600px) {
  #pick-bar { left: 16px; right: 16px; transform: none; max-width: none; flex-wrap: nowrap; justify-content: space-between; gap: 8px; padding: 8px 8px 8px 12px; }
  #pick-bar .pb-n small { display: none; }
  #pick-bar .btn { padding: 6px 10px; }
}
/* 判例の一覧（重要判例・判例百選・大法廷：hubs.py） */
.hub .hub-crumb { font-size: 12.5px; color: var(--faint); margin: 4px 0 10px; }
.hub .hub-crumb a { color: var(--muted); }
.hub-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 6px; }
.hub-tabs a { font-size: 13px; padding: 4px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-2); background: var(--paper); }
.hub-tabs a[aria-current="page"] { background: var(--ai); border-color: var(--ai); color: var(--ai-ink); }
.hub .sec-h { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 6px; }
.hub .sec-h h2 { margin: 0; }
.hub .sec-h small { color: var(--faint); font-size: 12px; }
.hub .sec-h .more { margin-left: auto; font-size: 13px; }
.hub-sec { margin: 0 0 26px; }
.hub-sec > h2 { border-bottom: 1px solid var(--line); padding-bottom: 6px; }
.hub-list li { position: relative; }
ol.hub-list li { padding-left: 34px; }
.hub-rank { position: absolute; left: 0; top: 17px; width: 26px; text-align: right; font-family: "Inter", var(--sans); font-size: 13px; font-weight: 700; color: var(--kin); }
.hub-fields, .hub-toc { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; margin: 0 0 18px; }
.hub-fields a[aria-current="page"] { font-weight: 700; color: var(--ink); }
.hub-eds { list-style: none; margin: 0; padding: 0; columns: 2 300px; column-gap: 32px; }
.hub-eds li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line-2); break-inside: avoid; }
.hub-n { color: var(--faint); font-size: 12.5px; white-space: nowrap; }
.hy-art { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; font-size: 13px; color: var(--ink-2); margin: 0 0 6px; }
.hy-pg { font-family: "Inter", var(--sans); font-size: 11.5px; color: var(--kin); white-space: nowrap; }
.hy-art small { color: var(--faint); font-size: 12px; }
.hub-home { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; }
.hub-home a { font-size: 12.5px; padding: 4px 11px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ai-2); }
