/* タビルール — サイト側ページ共通CSS
   ※ツールは各自HTMLにCSSを内包する。ここを直してもツールの見た目は変わらない。 */
:root{
  --bg:#f5f7f9; --card:#fff; --ink:#111823; --sub:#5d6675; --line:#e4e9ef; --line2:#eef2f6;
  --accent:#0f5ea8; --accent-bg:#eaf2fb; --accent-dk:#0b4680;
  --ok:#0b7a4c; --ok-bg:#e8f6ef; --ok-line:#c4e6d5;
  --ng:#c0322b; --ng-bg:#fdedec; --ng-line:#f3ccc9;
  --cond:#8f5b00; --cond-bg:#fdf4e3; --cond-line:#f0dcb4;
  --unk:#5d6675; --unk-bg:#eff1f4; --unk-line:#dfe3e9;
  --r:16px; --r-s:11px;
  --wrap:1080px; --side:300px;
  --sh:0 1px 2px rgba(16,24,40,.04), 0 10px 26px -16px rgba(16,24,40,.28);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;
  font-size:16.5px;line-height:1.9;padding-bottom:0;
  font-feature-settings:"palt" 1;
}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
a{color:var(--accent);text-underline-offset:3px}
img,svg{vertical-align:middle}

/* ===== ヘッダー ======================================================= */
header.site{
  background:rgba(255,255,255,.88);backdrop-filter:saturate(1.6) blur(10px);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;
}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 20px}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink)}
.brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;
  background:linear-gradient(140deg,var(--accent),#1f7fd0);color:#fff;box-shadow:0 4px 10px -4px rgba(15,94,168,.6)}
.brand-text{font-weight:800;font-size:17px;letter-spacing:.02em;line-height:1.25;display:block}
.brand-text i{display:block;font-style:normal;color:var(--sub);font-weight:500;font-size:11px;letter-spacing:0}
.gnav{display:flex;gap:6px;flex:none}
.gnav a{font-size:13.5px;font-weight:700;text-decoration:none;color:var(--sub);
  padding:7px 12px;border-radius:999px;white-space:nowrap}
.gnav a:hover{background:var(--accent-bg);color:var(--accent)}
@media (max-width:560px){ .gnav a{padding:6px 9px;font-size:12.5px} .brand-text i{display:none} }

/* ===== パンくず ======================================================= */
.crumb{font-size:12.5px}
.crumb .wrap{padding:12px 20px 0;color:var(--sub);overflow-x:auto;white-space:nowrap}
.crumb a{color:var(--sub);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.crumb i{font-style:normal;color:#bcc4cf;margin:0 3px}

/* ===== 2カラム ======================================================== */
.page{display:grid;gap:40px;grid-template-columns:minmax(0,1fr);padding-top:4px;padding-bottom:56px;align-items:start}
.page .col{min-width:0}
/* 165番：ページごとの更新日。グリッドの最後に全幅で1行だけ置く */
.page-updated{grid-column:1/-1;margin:0;padding-top:16px;border-top:1px solid var(--line);
  font-size:12.5px;line-height:1.7;color:var(--sub)}
.page.narrow .col{max-width:820px}
@media (min-width:900px){
  .page.has-side{grid-template-columns:minmax(0,1fr) var(--side)}
  .page.has-side .col{max-width:700px}
}
.side{display:flex;flex-direction:column;gap:14px;min-width:0}
@media (min-width:900px){ .side{position:sticky;top:78px} }
@media (max-width:899px){ .toc{display:none} }
.side-box{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.side-box h2{font-size:12px;letter-spacing:.06em;color:var(--sub);margin:0 0 10px;
  text-transform:none;font-weight:800;border:0;padding:0}
.side-box h2::before{display:none}
.side-note{font-size:12.5px;line-height:1.75;color:var(--sub);margin:10px 0 0}
.toc ul{list-style:none;margin:0;padding:0;font-size:14px}
.toc li{margin-bottom:2px}
.toc a{display:block;text-decoration:none;color:var(--ink);padding:5px 10px;border-radius:8px}
.toc a:hover{background:var(--accent-bg);color:var(--accent)}
.side-more{display:inline-block;margin-top:10px;font-size:13px;font-weight:700;text-decoration:none}
.side-cats{list-style:none;margin:0;padding:0;font-size:14px}
.side-cats a{display:flex;justify-content:space-between;align-items:center;gap:8px;
  text-decoration:none;color:var(--ink);padding:7px 0;border-bottom:1px solid var(--line2)}
.side-cats li:last-child a{border-bottom:0}
.side-cats b{background:var(--accent-bg);color:var(--accent);border-radius:999px;padding:1px 9px;font-size:11.5px}
.side-scenes{list-style:none;margin:0;padding:0;font-size:14px}
.side-scenes a{display:flex;justify-content:space-between;align-items:center;gap:8px;
  text-decoration:none;color:var(--ink);padding:7px 0;border-bottom:1px solid var(--line2)}
.side-scenes li:last-child a{border-bottom:0}
.side-scenes a:hover{color:var(--accent)}
.side-scenes b{background:var(--bg);color:var(--sub);border:1px solid var(--line2);
  border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:700}
.side-cta{display:block;text-align:center;text-decoration:none;font-weight:700;font-size:14px;
  background:var(--accent);color:#fff;border-radius:10px;padding:11px;margin-bottom:8px}
.side-cta.sub{background:#fff;color:var(--accent);border:1px solid var(--line);margin-bottom:0}

/* ===== 見出し・本文 =================================================== */
h1{font-size:30px;line-height:1.45;margin:22px 0 10px;letter-spacing:-.01em;font-weight:800}
h2{font-size:18px;margin:38px 0 12px;font-weight:800;letter-spacing:.01em;
  padding-left:13px;position:relative;line-height:1.6}
h2::before{content:"";position:absolute;left:0;top:.42em;width:4px;height:1.05em;
  border-radius:2px;background:var(--accent)}
h3{font-size:15.5px;margin:24px 0 6px}
p{margin:0 0 15px}
.hint{font-size:13px;color:var(--sub);margin:9px 0 0;line-height:1.75}
.sp{display:none}
@media (max-width:520px){ .sp{display:inline} h1{font-size:25px} }

/* ===== トップページ ================================================== */
.masthead{padding:14px 0 6px}
.eyebrow{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.08em;
  color:var(--accent);background:var(--accent-bg);border-radius:999px;padding:4px 12px;margin:0 0 14px}
.masthead h1{margin-top:0;font-size:34px;line-height:1.4}
.lede{color:var(--sub);font-size:16px;max-width:38em;margin-bottom:18px}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 6px;font-size:11.5px;color:var(--sub)}
.stats span{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 16px;line-height:1.5}
.stats b{display:block;font-size:20px;color:var(--ink);line-height:1.3;letter-spacing:-.01em}
@media (max-width:520px){ .masthead h1{font-size:27px} .lede{font-size:15px} }

.tools{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:26px 0 8px}
@media (max-width:720px){ .tools{grid-template-columns:1fr} }
.tool{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:22px;text-decoration:none;color:inherit;box-shadow:var(--sh);
  transition:transform .15s ease, box-shadow .15s ease;position:relative;overflow:hidden}
.tool::after{content:"";position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,var(--accent),#3b9ae0)}
.tool:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(16,24,40,.05),0 18px 34px -20px rgba(16,24,40,.45)}
.tool-ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;
  background:var(--accent-bg);color:var(--accent);margin-bottom:12px}
.tool b{display:block;font-size:19px;font-weight:800;margin-bottom:6px;letter-spacing:-.01em}
.tool small{display:block;color:var(--sub);font-size:14px;line-height:1.8}
.tool-meta{display:inline-block;margin-top:12px;font-size:12px;font-weight:700;color:var(--accent)}

ol.rules{margin:0;padding:0;list-style:none;counter-reset:r;
  display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:720px){ ol.rules{grid-template-columns:1fr} }
ol.rules li{counter-increment:r;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-s);padding:15px 17px;font-size:13.5px;color:var(--sub);line-height:1.8}
ol.rules b{display:block;color:var(--ink);font-size:14.5px;margin-bottom:3px}
ol.rules b::before{content:counter(r);display:inline-grid;place-items:center;width:20px;height:20px;
  border-radius:6px;background:var(--accent-bg);color:var(--accent);font-size:11.5px;margin-right:8px;
  vertical-align:2px}

ul.upcoming{list-style:none;margin:0;padding:0;font-size:14.5px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);padding:4px 18px}
ul.upcoming li{padding:12px 0;border-bottom:1px solid var(--line2)}
ul.upcoming li:last-child{border-bottom:0}
ul.upcoming b{display:block;color:var(--accent);font-size:12.5px;font-weight:800;letter-spacing:.03em}

ul.catnav{list-style:none;margin:0;padding:0;display:grid;gap:10px;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
ul.catnav a{display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);padding:14px 16px;
  text-decoration:none;color:var(--ink);font-size:14.5px;font-weight:700;
  border-left:3px solid var(--accent);transition:background .15s ease}
ul.catnav a:hover{background:var(--accent-bg)}
ul.catnav span{background:var(--accent-bg);color:var(--accent);border-radius:999px;
  padding:1px 10px;font-size:12px;font-weight:800;flex:none}

/* ===== 品目ページ ==================================================== */
.hero{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:22px 24px 24px;box-shadow:var(--sh);margin:16px 0 8px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--unk)}
.hero-ok::before{background:linear-gradient(90deg,var(--ok),#3aa77a)}
.hero-ng::before{background:linear-gradient(90deg,var(--ng),#e0655e)}
.hero-conditional::before{background:linear-gradient(90deg,var(--cond),#d9a43f)}
.hero-cat{margin:0 0 6px;font-size:12.5px}
.hero-cat a{color:var(--sub);text-decoration:none;font-weight:700}
.hero-cat a:hover{color:var(--accent)}
.item h1{font-size:28px;line-height:1.42;margin:0 0 18px}
@media (max-width:520px){ .item h1{font-size:23px} .hero{padding:18px 17px 20px} }

.verdict-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px}
.vp{border-radius:13px;padding:14px 10px;text-align:center;border:1px solid transparent}
.vp b{display:block;font-size:38px;line-height:1.1;margin:3px 0;font-weight:700}
.vp-label{font-size:11.5px;font-weight:700;opacity:.8;letter-spacing:.04em}
.vp-word{font-size:13.5px;font-weight:800}
.vp-ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
.vp-ng{background:var(--ng-bg);color:var(--ng);border-color:var(--ng-line)}
.vp-conditional{background:var(--cond-bg);color:var(--cond);border-color:var(--cond-line)}
.vp-unknown{background:var(--unk-bg);color:var(--unk);border-color:var(--unk-line)}

.summary{font-size:16.5px;line-height:1.9;margin:0;font-weight:500}

.changed{background:var(--accent-bg);border:1px solid #cfe1f3;border-radius:var(--r-s);
  padding:13px 15px;font-size:13.5px;color:#0d3f70;margin:16px 0 0;line-height:1.8}
.changed b{display:block;font-size:14px}
.alert{background:var(--ng-bg);border:1px solid var(--ng-line);border-radius:var(--r-s);
  padding:13px 15px;font-size:14px;color:#8d2620;margin:16px 0 0;line-height:1.8}

.route{background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);
  padding:6px 18px;font-size:14.5px}
.route div{padding:13px 0}
.route div + div{border-top:1px solid var(--line2)}
.route em{font-style:normal;color:var(--accent);display:block;font-size:11.5px;font-weight:800;
  letter-spacing:.05em;margin-bottom:3px}

ul.cond{margin:0;padding:0;list-style:none;font-size:14.5px}
ul.cond li{position:relative;padding:9px 0 9px 26px;border-bottom:1px solid var(--line2);line-height:1.8}
ul.cond li:last-child{border-bottom:0}
ul.cond li::before{content:"";position:absolute;left:4px;top:1.05em;width:7px;height:7px;
  border-radius:50%;background:var(--accent);opacity:.55}

table.diff{width:100%;border-collapse:collapse;font-size:14.5px}
table.diff th{text-align:left;padding:12px 14px 12px 0;vertical-align:top;white-space:nowrap;
  border-bottom:1px solid var(--line2);width:1%}
table.diff th::after{content:"";display:block}
table.diff tr th{color:var(--accent);font-weight:800;font-size:13px}
table.diff td{padding:12px 0;vertical-align:top;border-bottom:1px solid var(--line2);line-height:1.8}
table.diff tr:last-child th,table.diff tr:last-child td{border-bottom:0}
@media (max-width:520px){
  table.diff,table.diff tbody,table.diff tr,table.diff th,table.diff td{display:block;width:auto}
  table.diff th{border-bottom:0;padding:12px 0 0}
  table.diff td{padding:2px 0 12px}
}

.conflict{background:var(--cond-bg);border:1px solid var(--cond-line);border-radius:var(--r-s);
  padding:15px 17px;font-size:14px;color:#6f4900;margin-bottom:10px;line-height:1.85}
.conflict p{margin:0 0 8px}
.conflict a{color:#6f4900;font-weight:700;font-size:13px}

.notebox{background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);
  padding:15px 17px;font-size:14px;color:var(--sub);margin-top:18px;line-height:1.85}
.intro{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:var(--r-s);padding:15px 17px;font-size:14.5px;line-height:1.85;margin:0 0 16px}
.intro p{margin:0}
.intro-src{margin-top:10px !important;font-size:12px;color:var(--sub)}

ul.src{list-style:none;margin:0;padding:0;font-size:13.5px}
ul.src li{padding:9px 0;border-bottom:1px solid var(--line2);line-height:1.65}
ul.src li:last-child{border-bottom:0}
ul.src a{font-weight:600;text-decoration:none}
ul.src a:hover{text-decoration:underline}
ul.src span{display:block;color:var(--sub);font-size:11.5px}

.cta{display:flex;gap:10px;flex-wrap:wrap;margin:34px 0 0}
.cta a{flex:1;min-width:200px;text-align:center;text-decoration:none;border-radius:12px;
  padding:15px 12px;font-size:14.5px;font-weight:800}
.cta-main{background:var(--accent);color:#fff;box-shadow:0 8px 18px -12px rgba(15,94,168,.9)}
.cta-main:hover{background:var(--accent-dk)}
.cta-sub{background:var(--card);color:var(--accent);border:1px solid var(--line)}

ul.rel{list-style:none;margin:0;padding:0}
ul.rel a{display:flex;align-items:center;gap:9px;padding:7px 0;
  text-decoration:none;color:var(--ink);font-size:14px;border-bottom:1px solid var(--line2)}
ul.rel li:last-child a{border-bottom:0}
ul.rel a:hover .rel-name{color:var(--accent);text-decoration:underline}
.rel-mark{flex:none;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;
  font-size:13px;font-weight:700;line-height:1}
.rel-ok{background:var(--ok-bg);color:var(--ok)}
.rel-ng{background:var(--ng-bg);color:var(--ng)}
.rel-conditional{background:var(--cond-bg);color:var(--cond)}
.rel-unknown{background:var(--unk-bg);color:var(--unk)}

/* ===== カテゴリページ ================================================ */
.cathead{margin:16px 0 18px}
.cathead h1{margin:0 0 10px}
.counts{display:flex;gap:7px;flex-wrap:wrap;margin:0}
.chip{border-radius:999px;padding:3px 12px;font-size:12.5px;font-weight:800}
.chip-all{background:var(--accent-bg);color:var(--accent)}
.chip-ng{background:var(--ng-bg);color:var(--ng)}
.chip-cond{background:var(--cond-bg);color:var(--cond)}

table.catlist{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:15px;box-shadow:var(--sh)}
table.catlist thead th{background:#f2f5f8;color:var(--sub);font-size:11.5px;font-weight:800;
  letter-spacing:.05em;text-align:left;padding:10px 16px}
table.catlist th.c,table.catlist td.c{text-align:center;width:58px}
table.catlist td{padding:14px 16px;border-top:1px solid var(--line2);vertical-align:top}
table.catlist tbody tr:hover td{background:#fafbfc}
table.catlist td a{font-weight:700;text-decoration:none;font-size:15.5px}
table.catlist td small{display:block;color:var(--sub);font-size:12.5px;line-height:1.7;margin-top:3px}
.m{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;
  font-size:16px;font-weight:700;line-height:1}
.m-ok{background:var(--ok-bg);color:var(--ok)}
.m-ng{background:var(--ng-bg);color:var(--ng)}
.m-conditional{background:var(--cond-bg);color:var(--cond)}
.m-unknown{background:var(--unk-bg);color:var(--unk)}
.badge-new{display:inline-block;background:var(--ng-bg);color:var(--ng);border-radius:6px;
  padding:1px 8px;font-size:11px;font-weight:800;margin-left:6px;vertical-align:1px}
.legend{display:flex;gap:6px;align-items:center;flex-wrap:wrap;
  font-size:12.5px;color:var(--sub);margin:14px 0 0}
.legend .m{width:22px;height:22px;font-size:12px;margin-left:8px}
.legend .m:first-child{margin-left:0}

/* ===== フッター ====================================================== */
footer.site{border-top:1px solid var(--line);background:var(--card)}
footer.site .wrap{padding:24px 20px 40px;font-size:13px;color:var(--sub)}
footer.site nav{margin-bottom:12px;display:flex;gap:16px;flex-wrap:wrap}
footer.site nav a{font-weight:700;text-decoration:none}
footer.site nav a:hover{text-decoration:underline}
footer.site p{margin:0 0 6px;line-height:1.8}
footer.site .fine{font-size:11.5px;color:#8b93a0}

/* ===== 運営者情報・プライバシー ====================================== */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:20px 22px;margin-bottom:14px;font-size:15px}
.card > p:last-child{margin-bottom:0}
.card ol.rules{grid-template-columns:1fr;gap:0}
.card ol.rules li{background:none;border:0;border-bottom:1px solid var(--line2);
  border-radius:0;padding:14px 0;font-size:14.5px}
.card ol.rules li:first-child{padding-top:0}
.card ol.rules li:last-child{border-bottom:0;padding-bottom:0}
dl.meta{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;font-size:15px;margin:0}
dl.meta dt{color:var(--sub);font-size:13px;font-weight:700}
dl.meta dd{margin:0}

/* ===== 似ているのに逆になるもの ====================================== */
.vs{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:0 0 16px}
@media (max-width:620px){ .vs{grid-template-columns:1fr;gap:8px} }
.vs-card{display:block;text-align:center;text-decoration:none;border-radius:13px;
  padding:14px 10px;border:1px solid transparent}
.vs-card b{display:block;font-size:34px;line-height:1.1;margin:2px 0;font-weight:700}
.vs-name{display:block;font-size:13.5px;font-weight:800;line-height:1.5}
.vs-word{display:block;font-size:12.5px;font-weight:700;opacity:.9}
.vs-ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
.vs-ng{background:var(--ng-bg);color:var(--ng);border-color:var(--ng-line)}
.vs-conditional{background:var(--cond-bg);color:var(--cond);border-color:var(--cond-line)}
.vs-unknown{background:var(--unk-bg);color:var(--unk);border-color:var(--unk-line)}
.vs-mid{font-size:12.5px;color:var(--sub);text-align:center;font-weight:700;
  padding:0 6px;max-width:170px;line-height:1.6}
.flip{display:block;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--cond);
  border-radius:var(--r-s);padding:16px 18px;text-decoration:none;color:inherit;margin-bottom:8px}
.flip:hover{background:#fffdf8}
.flip b{display:block;font-size:16px;font-weight:800;margin-bottom:4px}
.flip small{display:block;color:var(--sub);font-size:13.5px;line-height:1.8}
.flip.kata{border-left-color:var(--accent)}
.flip.kata:hover{background:var(--accent-bg)}
table.catlist td small a.cat-of{font-size:11.5px;font-weight:600;color:var(--sub);text-decoration:none;
  background:var(--bg);border-radius:6px;padding:1px 8px;display:inline-block;margin-top:4px}
table.catlist td small a.cat-of:hover{color:var(--accent)}
.chip-ok{background:var(--ok-bg);color:var(--ok)}
.chip-unknown{background:var(--unk-bg);color:var(--unk)}


/* ── 国の区分ページ ───────────────────────────── */
.src-line{font-size:13px;color:var(--sub);margin:-6px 0 22px}
.src-line a{color:var(--accent)}
.kubun-nav{list-style:none;padding:0;margin:0 0 30px;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.kubun-nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:var(--bg);border:1px solid var(--line);border-radius:10px;
  padding:9px 12px;font-size:13.5px;font-weight:600;color:var(--fg);text-decoration:none}
.kubun-nav a:hover{border-color:var(--accent);color:var(--accent)}
.kubun-nav span{font-size:12px;font-weight:700;color:var(--sub)}
.kubun{border-top:1px solid var(--line);padding-top:20px;margin:26px 0}
.kubun h2{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:19px}
.kubun h2 i{flex:0 0 auto;font-style:normal;font-size:15px;font-weight:700;
  background:var(--accent);color:#fff;border-radius:8px;padding:3px 9px;line-height:1.4}
.kubun-out h2 i{background:var(--unk)}
.kubun-gloss{font-size:13px;color:var(--sub);margin:0 0 8px;line-height:1.7}
.kubun-rule{font-size:14.5px;line-height:1.85;margin:0 0 14px}
.kubun-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px}
.flip.kubun-flip b::before{content:"";}
@media(max-width:600px){
  .kubun-nav{grid-template-columns:1fr 1fr}
  .kubun-items{grid-template-columns:1fr}
}
.aka{font-size:12.5px;color:var(--sub);margin:10px 0 0;line-height:1.75}
.aka b{font-weight:600;color:var(--ink)}
.hero-kubun{font-size:12.5px;color:var(--sub);margin:12px 0 0}
.hero-kubun a{color:var(--accent);font-weight:600}


/* ── 数字から引く ───────────────────────────── */
.numnav{list-style:none;padding:0;margin:0 0 30px;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.numnav a{display:flex;flex-direction:column;gap:2px;background:var(--bg);
  border:1px solid var(--line);border-radius:10px;padding:10px 12px;text-decoration:none}
.numnav a:hover{border-color:var(--accent)}
.numnav b{font-size:16px;font-weight:800;color:var(--accent);letter-spacing:-.01em}
.numnav span{font-size:11.5px;color:var(--sub)}
.num{border-top:1px solid var(--line);padding-top:20px;margin:26px 0}
.num h2{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 10px;font-size:18.5px}
.num h2 i{flex:0 0 auto;font-style:normal;font-size:14px;font-weight:800;
  background:var(--accent);color:#fff;border-radius:8px;padding:4px 10px;letter-spacing:-.01em}
.num-mean{font-size:15px;line-height:1.9;margin:0 0 12px}
.num-exc{background:var(--bg);border-left:3px solid var(--cond);border-radius:0 10px 10px 0;
  padding:11px 14px;font-size:14px;line-height:1.85;margin:0 0 14px}
.num-exc b{display:block;font-size:12px;color:var(--cond);margin-bottom:3px}
@media(max-width:600px){ .numnav{grid-template-columns:1fr 1fr} }


/* ── 見出し画像（AI生成） ───────────────────────── */
.hero-img,.sec-img{margin:0 0 20px;padding:0}
.hero-img img,.sec-img img{width:100%;height:auto;display:block;border-radius:14px;background:var(--bg)}
.hero-img figcaption,.sec-img figcaption{font-size:11px;color:var(--sub);padding:5px 2px 0;letter-spacing:.02em}
.sec-img{margin:14px 0 16px}
.sec-img img{border-radius:12px}
@media(max-width:600px){
  .hero-img img,.sec-img img{border-radius:10px}
}

/* ===== ハブ（場面・判定・分類の入口一覧） ============================= */
ul.hubs{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:12px;
  grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}
ul.hubs a{display:block;height:100%;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:16px 18px;text-decoration:none;color:var(--ink);
  transition:background .15s,border-color .15s}
ul.hubs a:hover{background:var(--accent-bg);border-color:#cfe0f3}
ul.hubs b{display:flex;align-items:center;gap:8px;font-size:16.5px;font-weight:800;
  line-height:1.6;margin-bottom:6px}
ul.hubs b em{margin-left:auto;flex:none;font-style:normal;font-size:12px;font-weight:700;
  background:var(--accent-bg);color:var(--accent);border-radius:999px;padding:2px 10px}
ul.hubs a:hover b em{background:#fff}
ul.hubs small{display:block;color:var(--sub);font-size:13.5px;line-height:1.8;
  overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}
ul.hubs .hub-meta{display:block;margin-top:9px;padding-top:9px;border-top:1px solid var(--line2);
  font-size:12px;color:var(--sub);letter-spacing:.02em}
/* 141番：場面の一覧にサムネイル（440×251 が使われていなかった） */
ul.hubs a:has(.hub-th){padding:0;overflow:hidden}
ul.hubs .hub-th{display:block;background:var(--line2)}
ul.hubs .hub-th img{display:block;width:100%;height:auto;aspect-ratio:440/251;object-fit:cover}
ul.hubs a:has(.hub-th) b{margin:14px 18px 6px}
ul.hubs a:has(.hub-th) small{margin:0 18px}
ul.hubs a:has(.hub-th) .hub-meta{margin:9px 18px 0;padding:9px 0 14px}
@media(max-width:600px){
  ul.hubs a:has(.hub-th) b{margin:12px 15px 6px}
  ul.hubs a:has(.hub-th) small{margin:0 15px}
  ul.hubs a:has(.hub-th) .hub-meta{margin:9px 15px 0;padding:9px 0 12px}
}
@media(max-width:600px){
  ul.hubs{grid-template-columns:1fr;gap:10px}
  ul.hubs a{padding:14px 15px}
}
.sec-lead{margin:-6px 0 12px;font-size:13.5px}
.sec-lead a{font-weight:700;text-decoration:none}
.sec-lead a:hover{text-decoration:underline}

/* ===== 場面ページ：荷づくりの仕分けと効いている数値 =================== */
.sec-note{margin:-6px 0 14px;font-size:13.5px;color:var(--sub);line-height:1.8}
.pack{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  align-items:start;margin:0 0 26px}
.pack-g{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--line);
  border-radius:var(--r);padding:15px 17px}
.pack-g h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:15.5px;font-weight:800;
  border:0;padding:0}
.pack-g h3 em{margin-left:auto;font-style:normal;font-size:12px;font-weight:700;
  border-radius:999px;padding:2px 10px;background:var(--bg);color:var(--sub)}
.pack-g p{margin:0 0 10px;font-size:12.5px;color:var(--sub);line-height:1.75}
.pack-g ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pack-g li a{display:inline-block;font-size:13px;font-weight:700;text-decoration:none;
  background:var(--bg);border:1px solid var(--line2);border-radius:999px;padding:4px 11px;color:var(--ink)}
.pack-ok{border-left-color:var(--ok)}
.pack-ok h3{color:var(--ok)}
.pack-ok h3 em{background:var(--ok-bg);color:var(--ok)}
.pack-ok li a:hover{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}
.pack-cond{border-left-color:var(--cond)}
.pack-cond h3{color:var(--cond)}
.pack-cond h3 em{background:var(--cond-bg);color:var(--cond)}
.pack-cond li a:hover{background:var(--cond-bg);border-color:var(--cond-line);color:var(--cond)}
.pack-ng{border-left-color:var(--ng)}
.pack-ng h3{color:var(--ng)}
.pack-ng h3 em{background:var(--ng-bg);color:var(--ng)}
.pack-ng li a:hover{background:var(--ng-bg);border-color:var(--ng-line);color:var(--ng)}
.pack-unk{border-left-color:var(--unk)}
.pack-unk h3{color:var(--unk)}
.numhit{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:8px}
.numhit a{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-s);padding:11px 15px;text-decoration:none;color:var(--ink)}
.numhit a:hover{background:var(--accent-bg);border-color:#cfe0f3}
.numhit b{flex:none;min-width:116px;font-size:15px;font-weight:800;color:var(--accent);
  font-feature-settings:"tnum" 1}
.numhit span{flex:1;font-size:13.5px;color:var(--sub);line-height:1.6}
.numhit em{flex:none;font-style:normal;font-size:12px;font-weight:700;color:var(--sub);
  background:var(--bg);border-radius:999px;padding:2px 10px}
@media(max-width:600px){
  .pack{grid-template-columns:1fr}
  .numhit a{flex-wrap:wrap;gap:4px 10px}
  .numhit b{min-width:0}
  .numhit span{flex:1 1 100%;order:3}
}

/* ===== 判定別の内訳・数値から場面へ =================================== */
.split{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:8px;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.split li{display:flex;align-items:center;gap:9px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r-s);padding:11px 14px;font-size:14px}
.split b{font-weight:800}
.split em{margin-left:auto;font-style:normal;font-size:12px;font-weight:700;color:var(--sub)}
.split-ok{border-color:var(--ok-line);background:var(--ok-bg)}
.split-ng{border-color:var(--ng-line);background:var(--ng-bg)}
.split-cond{border-color:var(--cond-line);background:var(--cond-bg)}
.split-unk{border-color:var(--unk-line);background:var(--unk-bg)}
.num-scenes{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line2);
  font-size:13px;line-height:2.2}
.num-scenes b{display:inline-block;margin-right:8px;font-size:12px;color:var(--sub);font-weight:700}
.num-scenes a{display:inline-block;margin:0 6px 0 0;text-decoration:none;font-weight:700;
  background:var(--accent-bg);color:var(--accent);border-radius:999px;padding:3px 11px;font-size:12.5px}
.num-scenes a:hover{background:var(--accent);color:#fff}

/* ===== 会社差・食い違いの束ねページ =================================== */
ul.ka{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:14px}
ul.ka>li{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
ul.ka>li>h2{display:flex;align-items:center;gap:9px;margin:0 0 11px;padding:0;border:0;font-size:16.5px}
ul.ka>li>h2::before{display:none}
ul.ka>li>h2 a{text-decoration:none;color:var(--ink);font-weight:800}
ul.ka>li>h2 a:hover{color:var(--accent)}
ul.ka>li>h2 .m{margin-left:0}
ul.ka>li>h2 .m:first-of-type{margin-left:auto}
ul.ka .diff{margin:0}
ul.ka .conflict{margin:0 0 9px}
ul.ka .conflict:last-of-type{margin-bottom:0}
.ka-of{margin:11px 0 0;padding-top:10px;border-top:1px solid var(--line2);font-size:12px}
@media(max-width:600px){
  ul.ka>li{padding:14px 15px}
  ul.ka>li>h2{flex-wrap:wrap;gap:7px;font-size:15.5px}
  ul.ka>li>h2 .m:first-of-type{margin-left:0}
}
.flip.kuichigai-flip{border-left-color:var(--ng)}
.flip.kuichigai-flip:hover{background:var(--ng-bg)}
.flip.kaisha-flip{border-left-color:var(--accent)}
.flip.kaisha-flip:hover{background:var(--accent-bg)}
.numnav li.nav-ok b{color:var(--ok)}
.numnav li.nav-ng b{color:var(--ng)}
.numnav li.nav-cond b{color:var(--cond)}
.numnav li.nav-unk b{color:var(--unk)}

/* ===== 品目のピル（束ねページで名前だけ並べるとき） ================== */
ul.pills{list-style:none;margin:0 0 26px;padding:15px 17px;display:flex;flex-wrap:wrap;gap:7px;
  background:var(--card);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--r)}
ul.pills a{display:inline-block;font-size:13.5px;font-weight:700;text-decoration:none;color:var(--ink);
  background:var(--bg);border:1px solid var(--line2);border-radius:999px;padding:5px 12px}
ul.pills-ok{border-left-color:var(--ok)}
ul.pills-ok a:hover{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}
.h2-count{margin-left:10px;vertical-align:middle}

/* ===== 取り違えやすいもの（品目ページ） ============================== */
.pair{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--cond);
  border-radius:var(--r-s);padding:13px 16px;margin:0 0 9px}
.pair-head{display:flex;align-items:center;gap:9px;margin:0 0 4px}
.pair-head a{font-size:15.5px;font-weight:800;text-decoration:none}
.pair-head a:hover{text-decoration:underline}
.pair-head i{font-style:normal;font-size:12.5px;color:var(--sub);font-weight:700}
.pair-why{margin:0;font-size:13px;color:var(--sub);line-height:1.8}
.pair-why a{margin-left:6px;font-weight:700;white-space:nowrap}
.kubun-cats{margin:10px 0 12px;font-size:12.5px;line-height:2.1}
.kubun-cats b{display:inline-block;margin-right:7px;color:var(--sub);font-weight:700}
.kubun-cats a{display:inline-block;margin:0 5px 0 0;text-decoration:none;font-weight:700;font-size:12.5px;
  background:var(--accent-bg);color:var(--accent);border-radius:999px;padding:2px 10px}
.kubun-cats a:hover{background:var(--accent);color:#fff}
.kubun-cats a i{font-style:normal;margin-left:5px;opacity:.75}
.kubun-ng{display:inline-block;margin-left:4px;font-size:11.5px;font-weight:700;
  background:var(--ng-bg);color:var(--ng);border-radius:999px;padding:2px 9px}

/* ===== どこに何と書いてあるか（会社別の表） ========================== */
table.orows{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;margin:0 0 10px;font-size:14px}
table.orows th{background:var(--bg);font-size:12px;color:var(--sub);font-weight:700;
  text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}
table.orows th.c,table.orows td.c{text-align:center;width:52px}
table.orows td{padding:11px 12px;border-bottom:1px solid var(--line2);vertical-align:top}
table.orows tr:last-child td{border-bottom:0}
.orow-org{font-weight:800;white-space:nowrap}
.orow-none .orow-org{color:var(--sub)}
.orow-na{display:inline-block;font-size:11.5px;font-weight:700;color:var(--unk);
  background:var(--unk-bg);border-radius:999px;padding:2px 9px;white-space:nowrap}
.orow-q{display:block;margin:0 0 5px;quotes:"「" "」";font-size:13.5px;line-height:1.85;color:var(--ink)}
.qsep{display:block;color:var(--sub);font-size:11.5px;line-height:1.2;margin:3px 0 1px}
.orow-q::before{content:open-quote}
.orow-q::after{content:close-quote}
.orow-n{display:block;font-size:13px;color:var(--sub);line-height:1.8}
.orow-src{display:inline-block;margin:6px 8px 0 0;font-size:12px;font-weight:700;text-decoration:none}
.orow-d{font-size:11.5px;color:var(--sub)}
@media(max-width:600px){
  table.orows{display:block;border:0;background:none}
  table.orows thead{display:none}
  table.orows tbody,table.orows tr,table.orows td{display:block}
  table.orows tr{background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);
    margin-bottom:9px;padding:11px 13px;position:relative}
  table.orows td{border:0;padding:0}
  table.orows td.c{display:inline-block;width:auto;text-align:left;margin:0 8px 6px 0}
  .orow-org{margin-bottom:5px}
}
.orow-yes{display:inline-block;font-size:11.5px;font-weight:700;color:var(--accent);
  background:var(--accent-bg);border-radius:999px;padding:2px 9px;white-space:nowrap}
.upcoming-past li{opacity:.9}
.upcoming-past b{color:var(--sub)}

/* ===== トップの「品名を打つ→答え」 ================================== */
.quick{margin:0 0 22px}
.quick-label{display:block;font-size:13.5px;font-weight:700;color:var(--sub);margin:0 0 8px}
.quick input{width:100%;font-size:17px;padding:15px 17px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--card);box-shadow:var(--sh);-webkit-appearance:none}
.quick input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.quick-help{margin:8px 2px 0;font-size:12.5px;color:var(--sub)}
.quick-out{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:7px}
.quick-out a{display:block;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-s);padding:11px 14px;text-decoration:none;color:var(--ink)}
.quick-out a:hover{background:var(--accent-bg);border-color:#cfe0f3}
.quick-n{font-size:15.5px;font-weight:800;margin-right:10px}
.quick-v{display:inline-block;font-size:12px;color:var(--sub);font-weight:700;white-space:nowrap}
.quick-v i{margin:0 3px 0 8px;font-style:normal}
.quick-out small{display:block;font-size:12.5px;color:var(--sub);line-height:1.75;margin-top:3px}
.quick-none{background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);
  padding:11px 14px;font-size:13.5px;color:var(--sub)}
.quick-more{margin:10px 2px 0;font-size:13px}
.quick-more a{font-weight:700;text-decoration:none}

/* 会社ごとの名簿ページ（/kaisha/） */
ul.srcpages{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}
ul.srcpages li{font-size:13px;line-height:1.7;word-break:break-all}
ul.srcpages li a{color:var(--accent)}
ul.srcpages li .m{margin-left:4px}
ul.srcpages li small{display:block;color:var(--sub);font-size:12.5px;line-height:1.75;margin-top:3px;word-break:normal}
ul.hdlist{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:7px}
ul.hdlist li{background:var(--bg);border:1px solid var(--line2);border-radius:999px;
  padding:5px 11px;font-size:12.5px;color:var(--sub);line-height:1.6}
ul.ka q.orow-q{display:block;margin:0 0 8px}
table.diff th small{display:block;font-weight:600;color:var(--sub);font-size:11.5px;margin-top:2px}
.ka-brief{color:var(--sub);font-size:13px;line-height:1.75;margin:8px 0 0}

/* 変わるルール・変わったルール（/rule-change/） */
ul.rc{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:14px}
ul.rc>li{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 18px 14px}
ul.rc h3{margin:0 0 4px;font-size:17px;line-height:1.5}
ul.rc h3::before{display:none}
.rc-date{display:inline-block;background:var(--accent-bg);color:var(--accent);border-radius:999px;
  padding:3px 10px;font-size:12.5px;font-weight:800;margin-right:9px;vertical-align:2px;white-space:nowrap}
.rc-who{color:var(--sub);font-size:12.5px;margin:0 0 10px}
.rc-items{font-size:13.5px;margin:12px 0 0;padding-top:11px;border-top:1px solid var(--line2)}
ul.rc .src-line{margin:10px 0 0}
ul.rc ul.cond{margin-bottom:10px}

/* 国内線と国際線の違い（全品目） */
.route-why{font-size:13px;color:var(--sub);line-height:1.8;margin:-10px 0 22px}

/* 渡航先で変わるもの（/hinmoku/tokochi/） */
.tk-scope{display:block;font-size:12px;font-weight:400;color:var(--sub);margin-top:3px}
.tk-note{font-size:13px;color:var(--sub);line-height:1.85;margin:8px 0 14px}
.tk-rownote{display:block;color:var(--sub);line-height:1.7;margin-top:4px}
table.orows.tk td small a{font-weight:600}
table.orows td.v-ng{color:var(--ng);font-weight:700}
table.orows td.v-ok{color:var(--ok);font-weight:700}
table.orows td.v-conditional{color:var(--cond);font-weight:700}
table.orows td.v-unknown{color:var(--sub);font-weight:700}
table.catlist td.num{text-align:center;width:66px;font-weight:700}
@media(max-width:640px){
  table.orows.tk td.c::before{content:attr(data-l) "：";color:var(--sub);font-weight:400;font-size:12px;margin-right:6px}
  table.orows.tk td.c{text-align:left;width:auto}
}
.tk-nav{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 26px}
.tk-nav a{display:inline-block;padding:6px 11px;border:1px solid var(--line);border-radius:999px;
  background:var(--card);font-size:12.5px;font-weight:600;color:var(--accent);text-decoration:none}
.tk-nav a:hover{background:var(--bg)}
.stats-p{font-size:14.5px;line-height:2;margin:0 0 14px}
.stats-src{font-size:13px;line-height:1.9;color:var(--sub);margin:0 0 6px}
