/* 海水水槽ラボ 共通スタイル。外部フォント・CDN は使わない。明るい配色のみ。
   前半: サイト全体（トップ・図鑑・記事）。後半: 計算ツール（ui.mjs が出す要素）。 */

/* Layout: 生成りの地に黒の細罫だけで全体を格子に区切る（カード・影・角丸・色面なし）。PCは 目次｜本文｜関連 の3列を縦罫で分ける。差し色は種の色1色だけ */
:root{
  --paper:#f6f3e9; --ink:#141414; --ink-2:#55534c; --ink-3:#8b887d; --line:#141414; --hair:#cfcab9;
  --species:#e4570f; --ok:#22703f; --warn:#9a6a00; --ng:#b3261e;
  --jp:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic UI",Meiryo,sans-serif;
  --lat:"DM Sans","Zen Kaku Gothic New",sans-serif;
}

*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--jp);font-weight:500;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}
:focus-visible{outline:2px solid var(--species);outline-offset:2px}
.g{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.lat{font-family:var(--lat);font-variant-numeric:tabular-nums;letter-spacing:0}
.rule{border-top:1px solid var(--line)}

.tagp{font-size:13px;white-space:nowrap}
.tagp::before{content:"( "}.tagp::after{content:" )"}

/* ヘッダー */
.top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding-block:14px;border-bottom:1px solid var(--line)}
.top nav{display:flex;gap:22px;font-size:13.5px}
.top nav a{text-decoration:none}
.top nav a[aria-current]{text-decoration:underline}
.logo{font-weight:900;font-size:22px;letter-spacing:.06em;text-decoration:none;white-space:nowrap}
.top .r{justify-self:end;display:flex;gap:18px;font-size:13.5px;align-items:center}
.top .r a{text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:1px}
@media (max-width:820px){.top{grid-template-columns:auto 1fr}.top nav{display:none}.top .r a:first-child{display:none}}

/* タイトル */
.head{display:grid;border-bottom:1px solid var(--line)}
@media (min-width:920px){.head{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}
.head .l{padding-block:26px 34px}
.crumbs{font-size:12.5px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:8px}
.crumbs a{text-decoration:none}
.meta1{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;margin:34px 0 10px}
.sci{font-family:var(--lat);font-style:italic;font-size:14px;color:var(--ink-2)}
h1{margin:0;font-weight:900;line-height:1.18;letter-spacing:.01em;word-break:auto-phrase;font-size:clamp(2.2rem,1.2rem + 3.6vw,3.9rem)}
h1 span{display:inline-block}
.subt{font-weight:700;font-size:clamp(1rem,.92rem + .4vw,1.2rem);margin:14px 0 0;letter-spacing:.08em}
.lead{margin:26px 0 0;max-width:33em;font-size:1.02rem;line-height:2}
.stamp{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:26px;font-size:12.5px;color:var(--ink-2)}
.head .r{display:flex;flex-direction:column;justify-content:space-between;padding-block:26px 30px;min-width:0}
@media (min-width:920px){.head .r{border-left:1px solid var(--line);padding-left:28px}}
@media (max-width:919px){.head .r{border-top:1px solid var(--line)}}
.scale-h{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}
.bigsize{font-family:var(--lat);font-weight:500;line-height:.82;letter-spacing:-.04em;font-size:clamp(7rem,3rem + 15vw,13.5rem);margin:18px 0 6px;display:flex;align-items:flex-end;gap:10px}
.bigsize small{font-size:.2em;letter-spacing:0;font-weight:500;padding-bottom:.35em}
.ruler{width:100%;height:auto;display:block}
.ruler text{font-family:var(--lat);font-size:11px;fill:var(--ink-2)}

/* データの格子 */
.data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border-bottom:1px solid var(--line)}
@media (min-width:760px){.data{grid-template-columns:repeat(4,minmax(0,1fr))}}
.cell{padding:14px 20px 18px;border-top:1px solid var(--line);border-left:1px solid var(--line);min-width:0}
.cell:nth-child(-n+2){border-top:0}
.cell:nth-child(2n+1){border-left:0}
@media (min-width:760px){.cell:nth-child(-n+4){border-top:0}.cell:nth-child(2n+1){border-left:1px solid var(--line)}.cell:nth-child(4n+1){border-left:0}}
.cell dt{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-2)}
.cell dd{margin:10px 0 0;font-weight:700;font-size:1.15rem;line-height:1.3}
.cell dd .lat{font-size:2.6rem;font-weight:500;letter-spacing:-.03em;line-height:1}
.cell dd small{font-size:.85rem;font-weight:500}

/* 3列 */
.cols{display:grid}
@media (min-width:1100px){.cols{grid-template-columns:230px minmax(0,1fr) 290px}}
.toc{display:none}
@media (min-width:1100px){.toc{display:block;border-right:1px solid var(--line)}}
.toc .in{position:sticky;top:0;padding:26px 20px 26px 0;padding-left:max(20px,env(safe-area-inset-left,0px))}
.toc ol{list-style:none;margin:10px 0 0;padding:0}
.toc li{border-top:1px solid var(--hair)}
.toc a{display:flex;gap:12px;padding:9px 0;font-size:13.5px;text-decoration:none;color:var(--ink-2)}
.toc a.on{color:var(--ink);font-weight:700}

article{min-width:0}
.sec{border-top:1px solid var(--line);padding:30px 0 40px;scroll-margin-top:0}
.sec:first-child{border-top:0}
@media (min-width:1100px){.sec{padding-left:36px;padding-right:36px}}
@media (max-width:1099px){.sec{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}}
.sec > *{max-width:680px}
.sec > .wide{max-width:none}

h2{margin:0 0 18px;font-weight:900;font-size:clamp(1.45rem,1.2rem + 1vw,1.9rem);line-height:1.4;word-break:auto-phrase;position:relative;padding-left:18px}
h2::before{content:"";position:absolute;left:0;top:.36em;width:5px;height:1em;background:var(--ink)}
p{margin:0 0 18px}
.pend{font-size:12.5px;color:var(--warn)}

/* 罫線の表 */
.rows{border-top:1px solid var(--line);margin-top:22px}
.row{display:grid;gap:4px 18px;align-items:center;padding:13px 0;border-bottom:1px solid var(--hair);font-size:14.5px}
.row:last-child{border-bottom:1px solid var(--line)}
.row.h{font-size:12px;color:var(--ink-3);padding:7px 0;border-bottom:1px solid var(--line)}
.go{font-family:var(--lat);font-size:13px;text-decoration:none;white-space:nowrap}
.pr{font-family:var(--lat);font-size:10.5px;border:1px solid var(--ink-3);color:var(--ink-2);padding:0 5px;margin-left:8px;vertical-align:1px}

.price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-family:var(--lat);font-weight:500;letter-spacing:-.03em;line-height:1;font-size:clamp(2.6rem,1.6rem + 4.6vw,4.6rem);margin:6px 0 4px}
.price small{font-family:var(--jp);font-size:1rem;letter-spacing:0;font-weight:700}
.price i{font-style:normal;color:var(--ink-3);font-size:.6em}

.r-tank{grid-template-columns:minmax(0,1.2fr) 64px minmax(0,2fr) 76px}
.r-tank .nm b{display:block;font-weight:700}
.r-tank .nm span{font-size:12px;color:var(--ink-3)}
.r-tank .vol{font-family:var(--lat);text-align:right}
.bar{height:8px;position:relative;border-left:1px solid var(--line)}
.bar i{position:absolute;left:0;top:0;bottom:0;background:var(--ink)}
.bar u{position:absolute;top:-4px;bottom:-4px;width:1px;background:var(--ink-3);left:100%}
.r-tank .ct{text-align:right;font-family:var(--lat);font-size:1.7rem;font-weight:500;line-height:1;letter-spacing:-.02em}
.r-tank .ct small{font-family:var(--jp);font-size:12px;font-weight:500;letter-spacing:0;margin-left:2px}
.r-tank .ct.no{font-family:var(--jp);font-size:12.5px;color:var(--ink-3);letter-spacing:0;white-space:nowrap}
.r-tank.pick .nm b::after{content:"　このページの目安";font-size:11.5px;font-weight:500;color:var(--species)}
.r-tank.pick .bar i{background:var(--species)}
.r-tank.pick .ct{color:var(--species)}
@media (max-width:620px){.r-tank{grid-template-columns:minmax(0,1fr) 76px}.r-tank .vol{display:none}.r-tank .bar{grid-column:1/-1;order:3}.r-tank.h span:nth-child(2),.r-tank.h span:nth-child(3){display:none}}
.note{border-left:5px solid var(--species);padding:2px 0 2px 16px;margin:24px 0 0;font-size:14.5px}
.links{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn{display:inline-flex;align-items:center;gap:14px;text-decoration:none;font-size:14px;font-weight:700;border:1px solid var(--line);padding:11px 18px;border-radius:999px}
.btn.k{background:var(--ink);color:var(--paper)}
.btn span{font-family:var(--lat)}

.r-mate{grid-template-columns:76px minmax(0,150px) minmax(0,1fr);align-items:start}
.v{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px}
.v::before{content:"";width:10px;height:10px;flex:none}
.v.ng{color:var(--ng)}.v.ng::before{background:var(--ng)}
.v.warn{color:var(--warn)}.v.warn::before{background:var(--warn)}
.v.ok{color:var(--ok)}.v.ok::before{background:var(--ok)}
.r-mate b{font-weight:700}
.r-mate p{margin:0;color:var(--ink-2);font-size:14px;line-height:1.75}
@media (max-width:620px){.r-mate{grid-template-columns:76px minmax(0,1fr)}.r-mate p{grid-column:1/-1}}

.life{width:100%;height:auto;display:block;margin-top:8px}
.life text{font-family:var(--lat)}

.vs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1.1fr);border-top:1px solid var(--line);margin-top:22px;font-size:14.5px}
.vs > div{padding:11px 12px 11px 0;border-bottom:1px solid var(--hair)}
.vs > div:nth-child(3n+2),.vs > div:nth-child(3n){border-left:1px solid var(--hair);padding-left:14px}
.vs .th{font-weight:900;border-bottom:1px solid var(--line)}
.vs .th.me{box-shadow:inset 0 3px 0 var(--species)}
.vs .k{font-size:12.5px;color:var(--ink-2)}
.vs .lat{font-size:1.25rem;font-weight:500}

.qa details{border-bottom:1px solid var(--hair)}
.qa details:first-of-type{border-top:1px solid var(--line)}
.qa details:last-of-type{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:28px minmax(0,1fr) 20px;gap:8px;padding:15px 0;font-weight:700;line-height:1.6}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font-family:var(--lat);text-align:right;color:var(--ink-3)}
.qa details[open] summary::after{content:"–"}
.qa details p{margin:-2px 28px 18px 36px;color:var(--ink-2);font-size:14.5px}

/* 右の列 */
aside{min-width:0;border-top:1px solid var(--line)}
@media (min-width:1100px){aside{border-top:0;border-left:1px solid var(--line)}}
.side{position:sticky;top:0}
.blk{padding:26px 0 28px 24px;padding-right:max(20px,env(safe-area-inset-right,0px));border-bottom:1px solid var(--line)}
@media (max-width:1099px){.blk{padding-left:max(20px,env(safe-area-inset-left,0px))}}
.blk h3{font-size:1.2rem;font-weight:900;line-height:1.5;margin:8px 0 10px;word-break:auto-phrase}
.blk p{font-size:13.5px;color:var(--ink-2);line-height:1.8;margin:0 0 16px}
.blk .item{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;padding:11px 0;border-top:1px solid var(--hair);text-decoration:none;font-size:14px;font-weight:700;line-height:1.55}
.blk .item small{display:block;font-weight:500;color:var(--ink-3);font-size:12px}

/* 次に読む */

footer{display:grid;gap:22px;padding-block:28px 96px;font-size:13px;color:var(--ink-2)}
@media (min-width:820px){footer{grid-template-columns:1.3fr 1fr 1fr 1.2fr}}
footer b{display:block;color:var(--ink);font-weight:900;margin-bottom:6px}
footer a{display:block;text-decoration:none;line-height:2}
footer p{margin:0;line-height:1.8}

html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

footer{padding-block:28px 28px}
img{display:block;max-width:100%}
.ph{position:relative;overflow:hidden;background:var(--hair)}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
a:hover .ph img{transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.ph img{transition:none}a:hover .ph img{transform:none}}
.more{font-family:var(--lat);font-size:13px;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;white-space:nowrap}
.band{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-block:13px;border-bottom:1px solid var(--line)}
.band h2{margin:0;padding:0;font-size:1.05rem;font-weight:900;letter-spacing:.06em}
.band h2::before{display:none}

/* ---- トップ */
.tools{display:grid;border-bottom:1px solid var(--line)}
@media (min-width:860px){.tools{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tool{display:flex;flex-direction:column;gap:18px;padding-block:22px 26px;text-decoration:none;min-width:0;border-bottom:1px solid var(--line)}
.tool:last-child{border-bottom:0}
@media (min-width:860px){.tool{border-bottom:0}.tool + .tool{border-left:1px solid var(--line)}}
.tool .t{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-2)}
.tool b{font-size:1.45rem;font-weight:900;line-height:1.45;word-break:auto-phrase}

.tool .more{align-self:flex-start}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--line)}
@media (min-width:860px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tile{display:flex;flex-direction:column;text-decoration:none;min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.tiles .tile:nth-child(2n){border-right:0}
@media (min-width:860px){.tiles .tile:nth-child(2n){border-right:1px solid var(--line)}.tiles .tile:nth-child(4n){border-right:0}.tiles.one .tile{border-bottom:0}}
.tile .ph{aspect-ratio:4/3}
.tile .b{padding:12px 16px 16px;display:flex;flex-direction:column;gap:2px;flex:1}
.tile .n{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.tile .n b{font-size:1.08rem;font-weight:900;line-height:1.5}
.tile .sci{font-size:12px}
.tile dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0 0;border-top:1px solid var(--hair);padding-top:10px;gap:8px}
.tile dt{font-size:11px;color:var(--ink-3);line-height:1.4}
.tile dd{margin:0;font-family:var(--lat);font-size:1.15rem;font-weight:500;line-height:1.3;letter-spacing:-.01em;white-space:nowrap}
.tile dd small{font-family:var(--jp);font-size:11px;letter-spacing:0;margin-left:1px}

/* ---- 一覧 */
.lhead{display:grid;border-bottom:1px solid var(--line)}
@media (min-width:860px){.lhead{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.lhead .a{padding-block:26px 30px}
.lhead h1{font-size:clamp(2.6rem,1.6rem + 4vw,4.6rem);margin:26px 0 0}
.lhead .b{padding-block:26px 30px;display:flex;flex-direction:column;justify-content:flex-end;gap:14px}
@media (min-width:860px){.lhead .b{border-left:1px solid var(--line);padding-left:28px}}
.lhead .b p{margin:0;max-width:32em}
.lhead .cnt{font-family:var(--lat);font-size:3rem;font-weight:500;letter-spacing:-.03em;line-height:1}
.lhead .cnt small{font-family:var(--jp);font-size:.95rem;letter-spacing:0;margin-left:6px;font-weight:700}
.filters{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper);z-index:10}
.frow{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;align-items:center;padding-block:9px;border-bottom:1px solid var(--hair)}
.frow:last-child{border-bottom:0}
.frow .l{font-size:12px;color:var(--ink-3)}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-block:1px}
.chip{flex:none;font:inherit;font-size:13px;font-weight:500;color:var(--ink);background:transparent;border:1px solid var(--hair);border-radius:999px;padding:4px 13px;cursor:pointer;white-space:nowrap}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.lstat{display:flex;justify-content:space-between;align-items:baseline;padding-block:10px;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink-2)}
.lstat select{font:inherit;font-size:13px;color:var(--ink);background:var(--paper);border:1px solid var(--hair);border-radius:999px;padding:3px 10px}
.empty{padding-block:60px;text-align:center;color:var(--ink-2);border-bottom:1px solid var(--line)}
.tile[hidden]{display:none}
@media (max-width:600px){.tile .b{padding:10px 12px 14px}.tile dl{gap:6px}.tile dd{font-size:1rem;white-space:normal}.tile dd small{display:block;margin:0}.tile .soon{display:none}.tile .n b{font-size:.98rem}.frow{grid-template-columns:1fr}.frow .l{display:none}}
.tile .soon{font-size:11px;color:var(--ink-3);border:1px solid var(--hair);padding:0 6px;white-space:nowrap;font-weight:500}

/* ---- 魚種ページ（写真つき） */
.head .r{padding:0;justify-content:flex-start}
@media (min-width:920px){.head .r{padding-left:0}}
.head .r .ph{aspect-ratio:16/10;border-bottom:1px solid var(--line)}
.head .r .scale{padding:16px 20px 20px;padding-right:max(20px,env(safe-area-inset-right,0px))}
.bigsize{font-size:clamp(3.6rem,2.4rem + 4vw,5.6rem);margin:6px 0 10px}

/* ---- UX の追加 */
.top{position:relative;z-index:30}
.menu{display:none}
@media (max-width:820px){.menu{display:block}.top .r > a:first-child{display:none}}
.menu summary{list-style:none;cursor:pointer;width:34px;height:34px;display:grid;place-content:center;gap:4px;border:1px solid var(--line);border-radius:50%}
.menu summary::-webkit-details-marker{display:none}
.menu summary span{display:block;width:18px;height:2px;background:var(--ink)}
.menu .sheet{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid}
.menu .sheet a{border:0;border-bottom:1px solid var(--hair);padding:14px 0;font-size:15px;font-weight:700;text-decoration:none}
.menu .sheet a:last-child{border-bottom:0}

/* トップ: 水槽から探す */
.bytank{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--line)}
@media (min-width:860px){.bytank{grid-template-columns:1.2fr repeat(4,minmax(0,1fr))}}
.bytank .q{grid-column:1/-1;padding-block:20px;border-bottom:1px solid var(--line)}
@media (min-width:860px){.bytank .q{grid-column:auto;border-bottom:0;border-right:1px solid var(--line)}}
.bytank .q b{display:block;font-size:1.35rem;font-weight:900;line-height:1.5}
.bytank .q span{font-size:13px;color:var(--ink-2)}
.bt{display:flex;flex-direction:column;gap:10px;padding:16px 18px 18px;text-decoration:none;border-right:1px solid var(--line);min-width:0}
.bt:nth-child(odd){border-right:0}
@media (max-width:859px){.bt:nth-child(-n+3){border-bottom:1px solid var(--line)}}
@media (min-width:860px){.bt:nth-child(odd){border-right:1px solid var(--line)}.bt:last-child{border-right:0}}
.bt svg{width:100%;height:54px}
.bt .w{font-family:var(--lat);font-size:1.9rem;font-weight:500;letter-spacing:-.03em;line-height:1}
.bt .w small{font-family:var(--jp);font-size:12px;letter-spacing:0;margin-left:3px}
.bt .c{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-2);border-top:1px solid var(--hair);padding-top:8px}
.bt:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}

/* 一覧: 検索 */
.search{display:flex;align-items:center;gap:10px;padding-block:10px;border-bottom:1px solid var(--hair)}
.search input{flex:1;min-width:0;font:inherit;font-size:16px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);padding:6px 2px;border-radius:0}
.search input::placeholder{color:var(--ink-3)}
.search button{font:inherit;font-size:12.5px;background:none;border:0;color:var(--ink-2);cursor:pointer;text-decoration:underline}

/* 魚種: スマホの目次・固定の導線・近い魚 */
@media (max-width:1099px){
  .toc{display:block;position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
  .toc .in{position:static;padding:0}
  
  .toc ol{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:0;padding:8px max(20px,env(safe-area-inset-left,0px))}
  .toc li{border:0;flex:none}
  .toc a{padding:5px 12px;border-radius:999px;font-size:13px;gap:0}
  
  .toc a.on{background:var(--ink);color:var(--paper)}
}
@media (min-width:700px){.answer a{border-bottom:0}.answer a + a{border-left:1px solid var(--hair)}}
.cta{position:fixed;left:0;right:0;bottom:0;z-index:35;display:grid;grid-template-columns:1fr 1fr;background:var(--paper);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);transform:translateY(110%);transition:transform .25s ease}
.cta.show{transform:none}
.cta a{padding:13px 10px;text-align:center;text-decoration:none;font-size:14px;font-weight:700}
.cta a + a{background:var(--ink);color:var(--paper)}
@media (min-width:1100px){.cta{display:none}}
@media (prefers-reduced-motion:reduce){.cta{transition:none}}
.pn{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.pn a{padding:16px 20px;text-decoration:none;display:flex;flex-direction:column;gap:2px;min-width:0}
.pn a + a{border-left:1px solid var(--line);text-align:right}
.pn small{font-size:12px;color:var(--ink-3)}
.pn b{font-weight:900}

/* ---- ツール */
.thead{display:grid;border-bottom:1px solid var(--line)}
@media (min-width:860px){.thead{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}
.thead .a{padding-block:24px 28px}
.thead h1{font-size:clamp(1.9rem,1.2rem + 2.6vw,3rem);margin:22px 0 0;line-height:1.3}
.thead .b{padding-block:24px 28px;display:flex;align-items:flex-end}
@media (min-width:860px){.thead .b{border-left:1px solid var(--line);padding-left:28px}}
.thead .b p{margin:0;font-size:14.5px;color:var(--ink-2);max-width:34em}

.step{border-bottom:1px solid var(--line);padding-block:20px 24px}

.step h2{font-size:1.2rem;margin:0;padding-left:14px}
.step h2::before{width:4px}

.temp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center}
.temp .v{font-family:var(--lat);font-size:3rem;font-weight:500;letter-spacing:-.03em;line-height:1}
.temp .v small{font-size:1rem}
.temp input{width:100%;accent-color:var(--ink)}
.temp .sc{display:flex;justify-content:space-between;font-family:var(--lat);font-size:11.5px;color:var(--ink-3)}
.hint{font-size:13px;color:var(--ink-2);margin:10px 0 0}
.pick{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:10px 0 0}

.res{border-top:1px solid var(--line);min-width:0}
@media (min-width:980px){.res{border-top:0;border-left:1px solid var(--line)}}
.res .in{position:sticky;top:0;padding-block:20px 26px}
@media (min-width:980px){.res .in{padding-left:28px}}

.pct{font-family:var(--lat);font-weight:500;letter-spacing:-.04em;line-height:.9;font-size:clamp(4.6rem,3rem + 6vw,7rem);margin:10px 0 0;display:flex;align-items:flex-end;gap:6px}
.pct small{font-size:.28em;letter-spacing:0;padding-bottom:.3em}
.pct.over{color:var(--ng)}
.verdict{font-weight:900;font-size:1.1rem;margin:10px 0 12px;line-height:1.5}

.chosen{border-top:1px solid var(--line);margin-top:18px}
.chosen .c{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;padding:9px 0;border-bottom:1px solid var(--hair);font-size:14px;align-items:baseline}
.chosen .c b{font-weight:700}
.chosen .c .x{font-family:var(--lat);color:var(--ink-2)}
.chosen .c button{font:inherit;font-size:12px;border:0;background:none;color:var(--ink-3);cursor:pointer;text-decoration:underline}
.warn{font-size:13px;line-height:1.7;border-left:4px solid var(--warn);padding-left:12px;margin:12px 0 0}
.warn.ng{border-color:var(--ng)}

.res .links{margin-top:20px}

.items{border-top:1px solid var(--line)}
.it{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;padding:12px 0;border-bottom:1px solid var(--hair)}
.it b{font-weight:700;font-size:14.5px}
.it .tagp{font-size:11.5px;color:var(--ink-3);margin-right:8px}
.it small{grid-column:1;font-size:12.5px;color:var(--ink-2);line-height:1.6}

.it a{font-size:12.5px}

@media (max-width:979px){.r-tank.pick .nm b::after{content:none}}

/* ---- 仕上げ: 飾りを減らし、文字と色を落ち着かせる */
:root{--paper:#fbfbf8;--ink:#17191b;--ink-2:#565b60;--ink-3:#8b9095;--line:#17191b;--hair:#dcdcd6;
  --jp:"IBM Plex Sans JP","Hiragino Sans","Yu Gothic UI",Meiryo,sans-serif;--lat:"IBM Plex Sans","IBM Plex Sans JP",sans-serif}
body{font-weight:400;letter-spacing:.02em}
h1,h2,.logo,.blk h3,.tool b,.tile .n b,.verdict,.vs .th,footer b,.band h2,.pn b,.bytank .q b{font-weight:700}
h1{letter-spacing:.02em}
.logo{font-size:20px;letter-spacing:.1em}
.btn,.chip,.menu summary,.lstat select,.toc a{border-radius:0}
.btn{padding:12px 18px}
.chip{padding:5px 12px}
.tagp::before,.tagp::after{content:none}
.tagp{font-size:12.5px;color:var(--ink-2)}
.lbl{display:block;font-size:12.5px;color:var(--ink-2);margin:0 0 10px}
h2.plain{font-size:1.05rem;padding:0;margin:0 0 8px}
h2.plain::before{display:none}

.step h2{padding-left:0}
.step h2::before{display:none}

.cell dd .lat,.bigsize,.price,.pct,.lhead .cnt,.bt .w,.r-tank .ct{font-weight:400;letter-spacing:-.02em}
.sec{padding-top:36px}
.toc ol{margin-top:0}
.gindex{display:grid;border-bottom:1px solid var(--line)}
@media (min-width:860px){.gindex{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gindex a{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:2px 16px;align-items:center;text-decoration:none;padding:12px 20px;border-bottom:1px solid var(--hair);padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
@media (min-width:860px){.gindex a:nth-child(odd){border-right:1px solid var(--line)}.gindex a:nth-last-child(-n+2){border-bottom:0}}
.gindex a:last-child{border-bottom:0}
.gindex img{grid-row:span 2;width:72px;height:54px;object-fit:cover}
.gindex .gn{font-weight:700;font-size:1.02rem;align-self:end}
.gindex .gm{grid-column:2;font-size:12.5px;color:var(--ink-2);align-self:start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gindex .gc{grid-row:1/span 2;grid-column:3;font-size:13px;color:var(--ink-2)}
.gindex a:hover .gn{text-decoration:underline}
.blk .item{grid-template-columns:minmax(0,1fr) auto}
.r-tank.pick .nm b::after{content:none}
.r-tank.pick .nm span::after{content:" ・ このページの目安";color:var(--species)}
.row.r-tank.pick{display:grid;overflow:visible;margin:0;gap:4px 18px}

/* ---- 本番: フォントは端末のものを使う */
:root{--jp:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic","Noto Sans JP",Meiryo,sans-serif;--lat:"Helvetica Neue","Hiragino Sans","Yu Gothic UI",Arial,sans-serif;color-scheme:light}

/* ---- 写真がないときの枠（大きさの目盛り） */
.ph.none{background:transparent;display:flex;flex-direction:column;justify-content:flex-end;padding:14px 16px;border-bottom:1px solid var(--hair)}
.ph.none .sz{font-family:var(--lat);font-size:2.6rem;line-height:1;letter-spacing:-.02em}
.ph.none .sz small{font-family:var(--jp);font-size:.8rem;letter-spacing:0;margin-left:3px}
.ph.none svg{width:100%;height:22px;margin-top:8px;display:block}
.prose h3{font-size:1.05rem;font-weight:700;margin:26px 0 8px}
.prose ul,.prose ol{margin:0 0 18px;padding-left:1.4em}
.prose table{width:100%;border-collapse:collapse;font-size:14.5px;margin:0 0 18px}
.prose th,.prose td{text-align:left;padding:9px 10px 9px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.prose thead th{font-size:12.5px;color:var(--ink-2);font-weight:400;border-bottom:1px solid var(--line)}

/* =====================================================================
   計算ツール（ui.mjs が出す要素）。旧 tools.css を新しい見た目に合わせた。
   ===================================================================== */
:root{--bg:var(--paper);--surface:var(--paper);--ink-soft:var(--ink-2);--accent:var(--ink);--accent-soft:#eeeeea;
  --ok:#22703f;--ok-bg:#e6f1ea;--caution:#8a5a00;--caution-bg:#f7efd9;--ng:#b3261e;--ng-bg:#f8e4e1;--radius:0}
main.tool { padding: 0 max(20px,env(safe-area-inset-right,0px)) 40px max(20px,env(safe-area-inset-left,0px)); }

/* スマホ: 入力 → 結果 → 混泳・収容数。PC: 左に入力とその下に混泳・収容数、右に結果。 */
main.tool .layout { display: grid; gap: 16px; grid-template-areas: "inputs" "result" "side"; }
main.tool .layout > .inputs { grid-area: inputs; }
main.tool .layout > .results { grid-area: result; }
main.tool .layout > .side { grid-area: side; }
@media (min-width: 900px) {
  main.tool .layout {
    grid-template-columns: minmax(300px, 380px) 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas: "inputs result" "side result";
    align-items: start;
  }
}

main.tool .card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
}
main.tool .card + .card { margin-top: 16px; }

/* フォーム */
main.tool .field { margin-bottom: 16px; }
main.tool .field > label, main.tool .field > .label { display: block; font-weight: 700; margin-bottom: 6px; }
main.tool .hint { font-size: 13px; color: var(--ink-soft); margin: 4px 0 0; }
main.tool select, main.tool input[type="number"], main.tool input[type="text"], main.tool input[type="search"] {
  width: 100%;
  font: inherit;
  padding: 10px 12px;
  border: 1px solid #b9c7cc;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  min-height: 44px;
}
main.tool input[type="number"] { font-variant-numeric: tabular-nums; }
main.tool .radio-row { display: flex; flex-wrap: wrap; gap: 8px; }
main.tool .radio-row label {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid #b9c7cc; border-radius: 999px; padding: 8px 14px; cursor: pointer; background: #fff;
  min-height: 44px;
}
main.tool .radio-row input { accent-color: var(--accent); }
main.tool .radio-row label:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); font-weight: 700; }
main.tool .inline { display: flex; align-items: center; gap: 8px; }
main.tool .inline input { max-width: 8em; }

main.tool button {
  font: inherit; cursor: pointer; border-radius: 8px; min-height: 40px; padding: 6px 14px;
  border: 1px solid var(--accent); background: #fff; color: var(--accent);
}

main.tool button.linklike { border: none; background: none; color: var(--accent); padding: 4px 6px; min-height: 32px; text-decoration: underline; }

/* 魚種の選択 */
main.tool .picker-list {
  max-height: 260px; overflow-y: auto; border: 1px solid var(--line); border-radius: 8px; margin-top: 8px; background: #fff;
}
main.tool .picker-list label {
  display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-bottom: 1px solid #eef2f3; cursor: pointer; min-height: 44px;
}
main.tool .picker-list label:last-child { border-bottom: none; }
main.tool .picker-list input { accent-color: var(--accent); width: 18px; height: 18px; flex: none; }
main.tool .picker-list .group { margin-left: auto; font-size: 12px; color: var(--ink-soft); }
main.tool .picker-list .empty { padding: 10px 12px; color: var(--ink-soft); }
main.tool .chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; min-height: 8px; }
main.tool .chip {
  display: inline-flex; align-items: center; gap: 4px; background: var(--accent-soft); color: var(--ink);
  border-radius: 999px; padding: 2px 4px 2px 12px; font-size: 14px;
}
main.tool .chip button { border: none; background: none; min-height: 32px; padding: 0 8px; color: var(--ink-soft); }

/* 結果 */
main.tool .notice-draft {
  background: var(--caution-bg); border: 1px solid #ecd49a; color: #5c3d00;
  border-radius: 8px; padding: 10px 12px; margin-bottom: 12px; font-size: 14px;
}
main.tool .notice-error { background: var(--ng-bg); border: 1px solid #efc2bc; color: #6e231c; border-radius: 8px; padding: 10px 12px; }
main.tool .pr-label {
  display: inline-block; font-size: 12px; font-weight: 700; border: 1px solid #8a9aa1; color: #4b5c66;
  border-radius: 4px; padding: 0 6px; margin-right: 6px; vertical-align: 1px;
}
main.tool .pr-note { font-size: 13px; color: var(--ink-soft); margin: 0 0 12px; }
main.tool .totals { display: grid; gap: 10px; grid-template-columns: 1fr; margin-bottom: 8px; }
@media (min-width: 560px) { main.tool .totals { grid-template-columns: 1fr 1fr; } }
main.tool .total { background: var(--accent-soft); border-radius: 8px; padding: 12px 14px; }
main.tool .total .k { font-size: 13px; color: var(--ink-soft); }
main.tool .total .v { font-size: 1.45rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.4; }
main.tool .total .s { font-size: 12px; color: var(--ink-soft); }

main.tool table { width: 100%; border-collapse: collapse; font-size: 15px; }
main.tool th, main.tool td { text-align: left; padding: 8px 6px; border-bottom: 1px solid #e6ecee; vertical-align: top; }
main.tool th { font-size: 13px; color: var(--ink-soft); font-weight: 600; }
main.tool td.num, main.tool th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
main.tool .item-name { font-weight: 600; }
main.tool .item-sub { display: block; font-size: 13px; color: var(--ink-soft); font-weight: 400; }
main.tool .item-links { display: block; font-size: 13px; margin-top: 2px; }
main.tool .item-links a { margin-right: 10px; }
@media (max-width: 559px) {
  main.tool table.stack thead { display: none; }
  main.tool table.stack tr { display: block; border-bottom: 1px solid #e6ecee; padding: 6px 0; }
  main.tool table.stack td { display: block; border: none; padding: 2px 0; text-align: left; }
  main.tool table.stack td.num { text-align: left; white-space: normal; }
  main.tool table.stack td[data-label]::before { content: attr(data-label) "："; color: var(--ink-soft); font-size: 13px; }
}

main.tool .badge {
  display: inline-block; font-weight: 700; font-size: 13px; border-radius: 6px; padding: 1px 8px; white-space: nowrap;
}
main.tool .badge.ok { background: var(--ok-bg); color: var(--ok); }
main.tool .badge.caution { background: var(--caution-bg); color: var(--caution); }
main.tool .badge.ng { background: var(--ng-bg); color: var(--ng); }
main.tool .badge.none { background: #eef2f3; color: var(--ink-soft); }

main.tool .pair { border-top: 1px solid #e6ecee; padding: 10px 0; }
main.tool .pair:first-child { border-top: none; }
main.tool .pair-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-weight: 600; }
main.tool .pair ul { margin: 6px 0 0; padding-left: 1.2em; }
main.tool .pair .basis { font-size: 12px; color: var(--ink-soft); }

main.tool .summary-box { border-left: 4px solid var(--accent); background: #fff; padding: 10px 12px; margin-top: 12px; border-radius: 0 8px 8px 0; }
main.tool .summary-box h3 { margin-top: 0; }
main.tool .muted { color: var(--ink-soft); font-size: 14px; }
main.tool .next-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
main.tool .next-links a {
  display: inline-block; border: 1px solid var(--accent); border-radius: 999px; padding: 6px 14px; text-decoration: none; font-size: 14px;
}

main.tool .meter { height: 12px; background: #e6ecee; border-radius: 6px; overflow: hidden; margin: 6px 0; }
main.tool .meter > span { display: block; height: 100%; background: var(--accent); }
main.tool .meter.over > span { background: var(--ng); }

main.tool .video-box { border: 1px solid var(--line); border-radius: 8px; padding: 12px; margin-top: 16px; background: #fbfdfd; }

main.tool .months { display: grid; grid-template-columns: 3em 1fr 6.5em; gap: 4px 8px; align-items: center; font-size: 14px; }
main.tool .months .bar { height: 10px; background: var(--accent); border-radius: 4px; min-width: 2px; }
main.tool .months .val { text-align: right; font-variant-numeric: tabular-nums; }

main.tool .power-table input { min-height: 40px; padding: 6px 8px; }
main.tool .power-table td { vertical-align: middle; }
main.tool .power-table input.w { max-width: 6.5em; }
main.tool .power-table input.h { max-width: 6em; min-width: 5.5em; }
main.tool .power-table input.d { max-width: 5em; }
main.tool .power-table button.linklike { white-space: nowrap; }
main.tool .power-table input.m { max-width: 9em; }
main.tool .power-table input.name { min-width: 8em; }

main.tool section.about, main.tool section.sources { margin-top: 24px; }
main.tool section.about h2, main.tool section.sources h2 { font-size: 1.1rem; }
main.tool section.about p { margin: 0 0 10px; }
main.tool .sources ol { padding-left: 1.4em; font-size: 14px; word-break: break-all; }
main.tool .sources li { margin-bottom: 6px; }
main.tool .sources .for { color: var(--ink-soft); display: block; word-break: normal; }

[hidden] { display: none !important; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
main.tool .layout > .card { margin-top: 0; }

main.tool .tag { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 0 6px; margin-left: 6px; vertical-align: 2px; background: #eef2f3; color: var(--ink-soft); }
main.tool .tag.rec { background: var(--accent-soft); color: var(--accent); }
main.tool .uncounted td { color: var(--ink-soft); }
main.tool .note-box { font-size: 13px; color: var(--ink-soft); background: #f3f6f7; border-radius: 6px; padding: 8px 10px; margin: 6px 0 10px; }
main.tool .item-sub, main.tool .item-name { overflow-wrap: anywhere; }
main.tool td.num .item-sub { white-space: normal; }
main.tool .badge.clear { background: #e8eef6; color: #2e4a6b; }
main.tool .power-table input.w { min-width: 4.8em; }
main.tool .power-table input.d { min-width: 4.2em; }
main.tool .power-table td { min-width: 0; }
main.tool .power-table td:first-child { min-width: 7em; }
main.tool .power-table .item-sub { max-width: 16em; }

/* ツールの見た目の上書き */
main.tool > h1 {font-size:clamp(1.7rem,1.1rem + 2.2vw,2.6rem);line-height:1.35;margin:26px 0 10px;font-weight:700}
main.tool > .lead {color:var(--ink-2);max-width:44em;margin:0 0 24px;font-size:.95rem}
main.tool h2 {font-size:1.15rem;padding-left:14px;margin:0 0 12px}
main.tool h2::before {width:4px}
main.tool h3 {font-size:1rem;font-weight:700;margin:18px 0 8px}
main.tool .card {border:0;border-top:1px solid var(--line);padding:18px 0 4px;background:transparent}
main.tool .card + .card {margin-top:0}
@media (min-width:900px){main.tool .layout {gap:0 36px}main.tool .layout > .results {border-left:1px solid var(--line);padding-left:32px}}
main.tool select, main.tool input[type="number"], main.tool input[type="text"], main.tool input[type="search"] {border:1px solid var(--line);border-radius:0;background:var(--paper)}
main.tool .radio-row label {border:1px solid var(--hair);border-radius:0;background:transparent}
main.tool .radio-row label:has(input:checked) {border-color:var(--ink);background:var(--ink);color:var(--paper)}
main.tool .radio-row label:has(input:checked) input {accent-color:var(--paper)}
main.tool button {border-radius:0;border:1px solid var(--line);background:transparent;color:var(--ink)}

main.tool button.linklike {border:0}
main.tool .picker-list {border:1px solid var(--line);border-radius:0;background:transparent}
main.tool .picker-list label {border-bottom:1px solid var(--hair)}
main.tool .chip {border-radius:0;background:var(--accent-soft);border:0;padding:2px 4px 2px 10px}
main.tool .totals {gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:14px}
main.tool .total {background:transparent;border-radius:0;padding:12px 0}
@media (min-width:560px){main.tool .total + .total {border-left:1px solid var(--hair);padding-left:16px}}
main.tool .total .v {font-family:var(--lat);font-size:1.9rem;font-weight:400;letter-spacing:-.02em}
main.tool th, main.tool td {border-bottom:1px solid var(--hair)}
main.tool thead th {border-bottom:1px solid var(--line);font-weight:400}
main.tool .badge {border-radius:0}
main.tool .meter {height:14px;border-radius:0;border:1px solid var(--line);background:transparent}
main.tool .meter > span {background:var(--ink)}
main.tool .months .bar {border-radius:0;background:var(--ink)}
main.tool .notice-draft, main.tool .notice-error, main.tool .note-box, main.tool .summary-box, main.tool .video-box {border-radius:0}
main.tool .summary-box {border-left:4px solid var(--ink);background:transparent}
main.tool .next-links a {border-radius:0;border:1px solid var(--line);color:var(--ink);font-weight:700}
main.tool .tag, main.tool .pr-label {border-radius:0}
main.tool section.about, main.tool section.sources {border-top:1px solid var(--line);margin-top:28px;padding-top:24px;max-width:760px}

/* ---- 本番で足した小さな部品 */
.srclist{list-style:none;margin:0;padding:0;font-size:13px;display:grid;gap:4px 24px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));max-width:760px}
.srclist a{color:var(--ink-2)}
.gindex.text a{grid-template-columns:minmax(0,1fr) auto}
.gindex.text .gm{grid-column:1}
.gindex.text .gc{grid-column:2}
.qa summary{grid-template-columns:0 minmax(0,1fr) 20px;gap:0}
.qa details > p,.qa details > ul{margin:-2px 28px 18px 0;color:var(--ink-2);font-size:14.5px}
.ruler text{font-family:var(--lat);font-size:11px;fill:var(--ink-2)}
div.tile{cursor:default}
.tablewrap{overflow-x:auto}
.tile .ph.none{aspect-ratio:auto;padding-top:22px}
.sec > *{min-width:0}
.vs > div{min-width:0;overflow-wrap:anywhere}
.cols > *{min-width:0}
@media (max-width:1099px){.toc .lbl{display:none}.toc a{white-space:nowrap}}
.tile .soon{display:inline-block}
.lnote{font-size:12.5px;color:var(--ink-2);line-height:1.8;padding-block:16px 20px;margin:0;border-bottom:1px solid var(--line);max-width:none}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1,h2,h3,.vs > div,.tile .n b,.blk h3{overflow-wrap:anywhere}
/* 釣れる魚: 持ち帰りのルール確認（固定文） */
.catchnote{margin:0;padding:14px 20px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.8;color:var(--ink);padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.catchnote b{display:inline-block;margin-right:12px;font-weight:700}
.catchnote a{color:inherit}

/* =====================================================================
   仕上げ（2026-11 デザイン）: ロゴ・トップの最初の画面・スマホの読みやすさ
   ===================================================================== */
/* ロゴ: マーク＋文字 */
.logo{display:inline-flex;align-items:center;gap:9px;font-size:19px;letter-spacing:.08em;line-height:1}
.logo .mark{width:28px;height:28px;flex:none;color:var(--ink)}
@media (max-width:820px){.top{padding-block:10px}.logo{font-size:18px}.logo .mark{width:26px;height:26px}}
.menu summary{width:44px;height:44px}
.menu .sheet a{padding:15px 0;font-size:16px}

/* トップ: 最初の画面に「何のサイトで何ができるか」 */
.intro{display:grid;border-bottom:1px solid var(--line)}
@media (min-width:980px){.intro{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}}
.intro-t{padding-block:22px 20px;display:flex;flex-direction:column;justify-content:center}
@media (min-width:980px){.intro-t{padding-block:48px;border-right:1px solid var(--line)}}
.intro .kicker{font-size:13px;color:var(--ink-2);margin:0 0 10px;line-height:1.6}
.intro h1{font-size:clamp(1.85rem,1.2rem + 2.6vw,3rem);line-height:1.3;margin:0}
.intro .lead{margin:14px 0 0;font-size:15px;line-height:1.85;color:var(--ink-2);max-width:32em}
.acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
@media (min-width:980px){.acts{border-top:0}}
.act{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0;min-height:128px;padding:14px 16px 16px;text-decoration:none;border-bottom:1px solid var(--line)}
.act:nth-child(odd){border-right:1px solid var(--line)}
.act:nth-last-child(-n+2){border-bottom:0}
.act .k{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-2)}
.act .k svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--species);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.act b{font-size:1.12rem;font-weight:700;line-height:1.45;margin-top:6px;overflow-wrap:anywhere}
.act small{font-size:12.5px;color:var(--ink-2);line-height:1.6;padding-right:20px}
.act .go{position:absolute;right:14px;bottom:14px;font-size:16px}
.act:hover,.bt:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.act:hover b{text-decoration:underline}
@media (min-width:980px){.act{min-height:190px;padding:22px 24px 24px}.act b{font-size:1.4rem;margin-top:auto}.act small{font-size:13.5px}.act .go{right:22px;bottom:22px}}
@media (max-width:359px){.act small{display:none}.act{min-height:96px}}

/* 見出し: スマホでは1行に入る文字を増やす */
h1{font-size:clamp(1.85rem,1.2rem + 3vw,3.9rem)}
.head .l h1{line-height:1.25}
main.tool > h1{font-size:clamp(1.5rem,1.1rem + 1.9vw,2.4rem)}
@media (max-width:600px){h2{font-size:1.35rem}.sec{padding-top:28px;padding-bottom:32px}}

/* 小さすぎる文字を 12px 以上に */
.tile dt,.tile dd small,.tile .soon,main.tool .tag{font-size:12px}
.pr{font-size:12px}
.tile .ph.none svg text{display:none}

/* タップしやすさ（指で押す部品は高さ 40px 前後） */
.chip{min-height:40px;padding:6px 14px;font-size:14px}
.lstat select{min-height:36px;padding:4px 10px}
.search button{min-height:40px;padding:0 4px}
.crumbs a{display:inline-block;padding-block:6px;margin-block:-6px}
@media (max-width:820px){.crumbs{align-items:center}.crumbs a{display:inline-flex;align-items:center;min-height:40px;padding-block:0;margin-block:-8px}}
@media (max-width:1099px){.toc a{padding:8px 14px;font-size:14px}.toc ol{padding-block:6px}}
footer{font-size:14px}
footer a{line-height:1.6;padding-block:7px}
.srclist{font-size:14px}
.srclist a{display:inline-block;padding-block:6px}
.more{display:inline-block;padding-block:8px 2px}
main.tool button.linklike{min-height:40px;padding:8px 6px}
.cta a{padding:15px 10px}

/* ツール: スマホで機材の説明が細い列に押し込まれないように */
@media (max-width:559px){main.tool .power-table .item-sub{max-width:none}main.tool .power-table td:first-child{min-width:0}}
main.tool .total .v{display:block}
main.tool .total .v::before{content:none}
main.tool .item-links a{display:inline-block;padding-block:6px}
@media (max-width:559px){main.tool table.stack td[data-label]::before{display:inline-block;min-width:8.6em}}
.logo{padding-block:8px}
/* 目盛り（SVG）の数字: スマホで縮んで読めなくならないように */
@media (max-width:600px){.head .ruler text{font-size:20px}.life text{font-size:21px}.vs .th{font-size:13px;letter-spacing:0}}

/* 魚種ページ: 動画で見る */
.vidlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.vidlist li{display:grid;gap:2px;padding:10px 0;border-bottom:1px solid var(--hair)}
.vidlist a{font-weight:600;overflow-wrap:anywhere}
.vidlist span{font-size:12.5px;color:var(--ink-2)}
/* 下書き: ページ上部の帯と /drafts/ の一覧（scripts/build_site.py が出す） */
.draftbar{background:#fff3c4;border-bottom:2px solid var(--warn);color:var(--ink);font-size:13.5px;line-height:1.7}
.draftbar .in{padding:10px max(20px,env(safe-area-inset-right,0px)) 10px max(20px,env(safe-area-inset-left,0px))}
.draftbar p{margin:0}
.draftbar .t{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px}
.draftbar .t b{color:var(--warn);font-size:14.5px}
.draftbar .t span{color:var(--ink-2)}
.draftbar .t a{margin-left:auto;white-space:nowrap}
.draftbar code,.draftlist code{font-family:var(--lat);font-size:.95em;overflow-wrap:anywhere}
.draftbar .rv,.draftlist .rv{margin-top:6px;overflow-wrap:anywhere}
.draftbar .rv b,.draftlist .rv b{display:inline-block;font-size:12px;border:1px solid var(--warn);color:var(--warn);padding:0 6px;margin-right:8px;line-height:1.6}
.draftlist{list-style:none;margin:0 0 48px;padding-top:0;padding-bottom:0}
.draftlist li{border-bottom:1px solid var(--hair);padding:16px 0}
.draftlist li > a{font-size:17px;overflow-wrap:anywhere}
.draftlist .m{display:flex;flex-wrap:wrap;gap:2px 18px;font-size:13px;color:var(--ink-2);margin-top:4px}
.draftlist .rv{font-size:14px;margin-bottom:0}
/* 機材の一覧（/gear/） */
.hublist{list-style:none;margin:0 0 48px;padding-top:0;padding-bottom:0}
.hublist li{border-bottom:1px solid var(--hair);padding:18px 0}
.hublist li > a{font-size:18px;overflow-wrap:anywhere}
.hublist p{margin:6px 0 0;font-size:14px;color:var(--ink-2);max-width:46em}
/* ナビが5本になったので、1行に収まらない幅（1000px以下）ではメニューのボタンに切り替える */
.top nav{white-space:nowrap}
@media (max-width:1000px){.top{grid-template-columns:auto 1fr}.top nav{display:none}.menu{display:block}.top .r > a:first-child{display:none}}
/* メニューを開いたときの最初のリンク（魚の図鑑）が、「魚を探す」を隠す規則に巻き込まれて消えていたのを戻す */
.menu .sheet a:first-child{display:block}
/* 関連ページのブロック・図鑑の一覧ページ・データ表（scripts/structure.py と build_site.py の一覧ページが出す） */
.related .relgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 28px}
.related h3{font-size:13px;font-weight:700;color:var(--ink-2);margin:14px 0 4px}
.related ul{list-style:none;margin:0;padding:0}
.related li{border-top:1px solid var(--hair);padding:9px 0;font-size:14.5px;line-height:1.55}
.related li a{font-weight:700;display:inline-block;padding-block:3px}
.related li span{display:block;font-size:12.5px;color:var(--ink-2)}
/* ツールの中では、ほかの節（このツールについて・数字の出典）と同じ幅・同じ左端にそろえる */
main.tool .related{margin-top:28px;padding:24px 0 8px;max-width:760px}
main.tool .related h2.plain{padding-left:0;font-size:1.1rem}
main.tool .related h3{font-size:13px;margin:14px 0 4px}
.datatable{overflow-x:auto;margin:0 0 14px}
.datatable table{width:100%;border-collapse:collapse;font-size:14px}
.datatable th,.datatable td{text-align:left;padding:9px 12px 9px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.datatable thead th{font-size:12.5px;color:var(--ink-2);font-weight:400;border-bottom:1px solid var(--line);white-space:nowrap}
.datatable td:first-child{font-weight:700;min-width:8em}
@media (max-width:899px){.datatable table{min-width:860px}}
.datatable tr:target td{background:var(--accent-soft,#eeeeea)}
.citebox{border:1px solid var(--hair);padding:12px 14px;overflow-wrap:anywhere}
.citebox code{font-family:inherit;font-size:14px}
.cols.listcols{grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.cols.listcols .sec{padding-left:20px;padding-right:20px}}
.related .relnote{font-size:12.5px;color:var(--ink-2);margin:0 0 6px}
.datatable sup.chk{font-size:11px;margin-left:2px;color:var(--ink-2)}
.lead b{display:block;margin-bottom:4px}

/* =====================================================================
   UX（2026-11-15、Issue #42）
   読みやすさ（コントラスト）・キーボード操作・図鑑の絞り込み・ツールの入力と結果・
   暗い配色・印刷。ここより上の値を上書きするので、この節はファイルの最後に置く。
   ===================================================================== */

/* ---- 色: 直書きだった色を変数にして、文字の濃さを WCAG AA（4.5:1）以上にそろえる */
:root{
  color-scheme:light dark;
  --ink-3:#686d72; --warn:#7d5500; --caution:#7d5500; --species-ink:#b4430a;
  --soft:#eeeeea; --note-bg:#f1f3f1; --field:#fbfbf8;
  --caution-line:#e3cb8f; --caution-ink:#5c3d00; --ng-line:#efc2bc; --ng-ink:#6e231c;
  --info-bg:#e8eef6; --info-ink:#2e4a6b; --draft-bg:#fff3c4; --shade:rgba(23,25,27,.16);
  --accent-soft:var(--soft);
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#14171a; --ink:#ecebe6; --ink-2:#b6bbc0; --ink-3:#969ca2; --line:#9aa0a6; --hair:#353a3f;
    --species:#ff7d45; --species-ink:#ff9466; --ok:#74d39b; --warn:#e5b657; --caution:#e5b657; --ng:#ff8f85;
    --ok-bg:#16301f; --caution-bg:#3a2e10; --ng-bg:#3d1b18;
    --soft:#23282c; --note-bg:#1c2125; --field:#191d20;
    --caution-line:#6b5520; --caution-ink:#f0d896; --ng-line:#7a342e; --ng-ink:#ffb9b0;
    --info-bg:#1d2a3a; --info-ink:#a9c7ee; --draft-bg:#3a3110; --shade:rgba(0,0,0,.5);
  }
}
.r-tank.pick .nm span::after{color:var(--species-ink)}
.r-tank.pick .ct{color:var(--species-ink)}
.draftbar{background:var(--draft-bg)}
main.tool select, main.tool input[type="number"], main.tool input[type="text"], main.tool input[type="search"]{background:var(--field);color:var(--ink)}
main.tool .notice-draft{border-color:var(--caution-line);color:var(--caution-ink)}
main.tool .notice-error{border-color:var(--ng-line);color:var(--ng-ink)}
main.tool .pr-label{border-color:var(--ink-3);color:var(--ink-2)}
main.tool .badge.none,main.tool .tag{background:var(--soft);color:var(--ink-2)}
main.tool .tag.rec{background:var(--soft);color:var(--ink)}
main.tool .badge.clear{background:var(--info-bg);color:var(--info-ink)}
main.tool .note-box{background:var(--note-bg)}
main.tool .video-box{background:transparent}
main.tool .pair{border-top-color:var(--hair)}

@media (max-width:559px){main.tool table.stack tr{border-bottom-color:var(--hair)}}

/* ---- 押しやすさ: 指で押すリンクは高さ 44px 前後に */
footer a{padding-block:11px}
.srclist a{padding-block:10px}
.more{padding-block:14px 4px}
.top nav{gap:10px}
.top nav a{padding-inline:6px}
.top nav a:first-child{margin-left:-6px}
.crumbs a{padding-inline:6px;margin-inline:-6px}
.draftbar .t a{display:inline-block;padding-block:10px;margin-block:-6px}
main.tool .sources li a{padding-block:10px}
main.tool .summary-box > a{display:inline-block;padding-block:11px}
.vidlist a{display:inline-block;padding-block:7px}

/* ---- キーボード操作: 本文へ移動・フォーカスの輪郭 */
.skip{position:absolute;left:8px;top:8px;z-index:100;background:var(--ink);color:var(--paper);padding:12px 18px;font-size:15px;font-weight:700;text-decoration:none}
.skip:not(:focus){width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--species);outline-offset:2px}
main:focus,#result:focus{outline:none}
main.tool .radio-row label:has(input:focus-visible),main.tool .picker-list label:has(input:focus-visible){outline:3px solid var(--species);outline-offset:-3px}
main.tool .radio-row input:focus-visible,main.tool .picker-list input:focus-visible{outline:none}
.tile:focus-visible,.act:focus-visible,.bt:focus-visible,.gindex a:focus-visible,.pn a:focus-visible,.cta a:focus-visible{outline-offset:-3px}

/* ---- ヘッダー・メニュー: 押せる範囲を広げる */
.top nav a{display:inline-block;padding-block:10px}
.top nav a:hover,.menu .sheet a:hover{text-decoration:underline}
.top .r > a{display:inline-block;padding-block:8px 6px}
.menu summary:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}
.menu[open] summary{background:var(--ink)}
.menu[open] summary span{background:var(--paper)}
.menu .sheet{box-shadow:0 12px 24px var(--shade)}
.menu .sheet a[aria-current]{text-decoration:underline}

/* ---- 名前で探す（トップ・404） */
.hsearch-band{border-bottom:1px solid var(--line);padding-block:14px 16px}
.hsearch{display:grid;gap:6px;max-width:560px}
.hsearch label{font-size:13px;color:var(--ink-2)}
.hsearch div{display:flex;gap:8px}
.hsearch input{flex:1;min-width:0;font:inherit;font-size:16px;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:0;padding:9px 12px;min-height:46px}
.hsearch button{font:inherit;font-size:15px;font-weight:700;color:var(--paper);background:var(--ink);border:1px solid var(--ink);border-radius:0;padding:0 20px;min-height:46px;cursor:pointer}
.head .hsearch{margin-top:24px}
@media (min-width:980px){.hsearch-band .hsearch{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;max-width:720px}}

/* ---- 図鑑の一覧: 絞り込みは流し、件数と並び順だけを上に固定する */
.filters{position:static}
.search{margin:0}
.search input{padding:9px 2px;min-height:44px}
.search button{white-space:nowrap}
.frow .l{color:var(--ink-2)}
@media (max-width:600px){.frow{gap:2px;padding-block:7px 9px}.frow .l{display:block;font-size:12px}}
.chips{mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);padding-right:28px;scroll-padding-inline:20px}
main.tool .chips{mask-image:none;-webkit-mask-image:none;padding-right:0}
.chip:hover{border-color:var(--ink)}
.chips{position:relative}
.fmore{border-top:1px solid var(--hair)}
.fmore summary{cursor:pointer;font-size:13px;color:var(--ink-2);min-height:44px;display:flex;align-items:center;gap:8px;list-style:none}
.fmore summary::-webkit-details-marker{display:none}
.fmore summary::before{content:"＋";font-family:var(--lat)}
.fmore[open] summary::before{content:"－"}
.fmore summary:hover{color:var(--ink)}
.fmore .frow:first-of-type{border-top:1px solid var(--hair)}
@media (max-width:600px){.lstat .sl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lstat{flex-wrap:nowrap}.lstat select{max-width:9.5em}.lhead .a{padding-block:18px 14px}.lhead h1{margin-top:14px}.lhead .b{padding-block:16px 18px;gap:10px}.lhead .cnt{font-size:2.2rem}}
.lstat{position:sticky;top:0;z-index:10;background:var(--paper);align-items:center;gap:10px;flex-wrap:wrap}
.lstat .n{margin-right:auto}
.lstat label{display:inline-flex;align-items:center;gap:6px}
.lstat select{min-height:40px;max-width:11.5em;border-color:var(--ink-3)}
.tofilters{font:inherit;font-size:13px;color:var(--ink);background:transparent;border:1px solid var(--ink-3);border-radius:0;min-height:40px;padding:4px 12px;cursor:pointer}
.active{display:flex;flex-wrap:wrap;gap:6px;padding-block:8px;border-bottom:1px solid var(--line)}
.clr{font:inherit;font-size:13px;color:var(--ink);background:var(--soft);border:1px solid var(--hair);border-radius:0;min-height:40px;padding:4px 12px;cursor:pointer}
.clr:hover{border-color:var(--ink)}
/* スマホ: 条件を入れたあとは絞り込みの欄をたためる（結果のタイルが最初の画面に入るように） */
.toresults{display:none}
@media (max-width:600px){
  .toresults:not([hidden]){display:flex;align-items:center;justify-content:center;min-height:46px;margin-block:8px 10px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:700;text-decoration:none}
  .filters.folded .frow,.filters.folded .fmore,.filters.folded .toresults{display:none}
  .filters.folded{border-bottom:1px solid var(--hair)}
  .tofilters[aria-expanded="false"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
}
.empty{padding-block:44px 52px}
.empty p{margin:0 0 6px;font-weight:700;color:var(--ink)}
.empty p.sub{font-weight:400;color:var(--ink-2);font-size:14px}
.empty .clrs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}
.empty .clr{background:transparent;border-color:var(--line);font-weight:700;padding:6px 16px}
a.tile:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}
a.tile:hover .n b{text-decoration:underline}

/* ---- 記事・魚種ページ: 目次・表・固定の帯 */
@media (max-width:1099px){
  .sec,[id="sources"],[id="videos"]{scroll-margin-top:60px}
  .toc ol{mask-image:linear-gradient(to right,#000 calc(100% - 32px),transparent);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 32px),transparent);padding-right:40px;scroll-behavior:smooth}
  .toc a{min-height:40px;align-items:center}
}
.toc a:hover{color:var(--ink)}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tablewrap.scrolls,.datatable.scrolls{box-shadow:inset -14px 0 12px -12px var(--shade)}
.tablewrap.scrolls.at-end,.datatable.scrolls.at-end{box-shadow:none}
.datatable td:nth-child(3){min-width:5.5em}
.tablewrap.scrolls::before,.datatable.scrolls::before{content:"横にスクロールできます →";display:block;position:sticky;left:0;font-size:12.5px;color:var(--ink-2);padding-bottom:4px}
.prose .tablewrap table{min-width:480px}
.prose a,.lnote a,.catchnote a{text-decoration-thickness:1px}
.prose a:hover{text-decoration-thickness:2px}
.qa summary:hover{text-decoration:underline}
.blk .btn{margin:0 8px 8px 0}
.blk .item:hover span:first-child{text-decoration:underline}
.btn:hover{background:color-mix(in srgb,var(--ink) 7%,transparent)}
.btn.k:hover{background:color-mix(in srgb,var(--ink) 86%,var(--paper))}
body:has(.cta) footer{padding-bottom:84px}
@media (min-width:1100px){body:has(.cta) footer{padding-bottom:28px}}

/* ---- ツール: 入力 */
main.tool{scroll-margin-top:0}
main.tool > .lead{margin-bottom:18px}
main.tool .field > .label small{font-weight:400;font-size:12.5px;color:var(--ink-2);margin-left:6px}
main.tool .field-error{margin:6px 0 0;font-size:13.5px;color:var(--ng-ink);background:var(--ng-bg);border-left:4px solid var(--ng);padding:6px 10px}
main.tool input[aria-invalid="true"]{border-color:var(--ng);box-shadow:inset 0 0 0 1px var(--ng)}
main.tool select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 19px) 50%,calc(100% - 13px) 50%;background-size:6px 6px;background-repeat:no-repeat}
main.tool .radio-row label{min-height:46px;padding:8px 14px}
main.tool .radio-row label:hover{border-color:var(--ink)}
/* 数の入力（− 数 ＋） */
main.tool .stepper{display:inline-flex;align-items:stretch;border:1px solid var(--line);background:var(--field);vertical-align:middle}
main.tool .stepper .st-b{width:44px;min-height:44px;padding:0;border:0;font-size:20px;line-height:1;background:transparent;color:var(--ink)}
main.tool .stepper .st-b:hover:not(:disabled){background:var(--soft)}
main.tool .stepper .st-b:disabled{opacity:.35;cursor:default}
main.tool .stepper input[type="number"]{width:2.6em;min-height:44px;padding:0 2px;border:0;border-left:1px solid var(--hair);text-align:right;background:transparent;font-size:16px;appearance:textfield;-moz-appearance:textfield}
main.tool .stepper input::-webkit-outer-spin-button,main.tool .stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
main.tool .stepper .st-u{display:flex;align-items:center;font-size:13px;color:var(--ink-2);padding:0 8px 0 3px;border-right:1px solid var(--hair)}
main.tool td.num .stepper{margin-block:2px}
/* 魚を選ぶ */
main.tool .picker-status{margin:8px 0 0;font-size:13px;color:var(--ink-2)}
main.tool .chips{gap:8px;margin-top:8px}
main.tool .chip{display:inline-flex;align-items:center;gap:8px;background:var(--soft);padding:0 0 0 12px;min-height:46px;font-size:15px;cursor:default;white-space:normal;max-width:100%}
main.tool .chip .chip-n{font-weight:700;overflow-wrap:anywhere}
main.tool .chip .chip-x{min-width:44px;min-height:46px;padding:0;border:0;border-left:1px solid var(--hair);font-size:18px;color:var(--ink-2);background:transparent}
main.tool .chip .chip-x:hover{background:var(--ng-bg);color:var(--ng-ink)}
main.tool .chip-clear{font-size:13.5px}
main.tool .picker-list{max-height:min(46vh,340px);overscroll-behavior:contain;margin-top:10px}
main.tool .picker-list .pg{position:sticky;top:0;z-index:1;background:var(--soft);color:var(--ink-2);font-size:12.5px;font-weight:700;padding:5px 12px;border-bottom:1px solid var(--hair)}
main.tool .picker-list label{min-height:46px}
main.tool .picker-list label:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}
main.tool .picker-list label:has(input:checked){background:var(--soft);font-weight:700}
main.tool .picker-list .nm{overflow-wrap:anywhere}
main.tool .picker-list .group{font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}
main.tool .picker-list .empty{padding:16px 12px;text-align:left;border:0;font-size:14px}
main.tool .picker-list .empty button{display:block;margin-top:4px}

/* ---- ツール: 結果 */
main.tool .results > h2:first-child{margin-bottom:14px}
main.tool .notice-draft{font-size:13px;padding:7px 10px}
main.tool .total .v{font-size:clamp(1.55rem,1.2rem + 1.6vw,2.1rem);line-height:1.3;overflow-wrap:anywhere}
main.tool .total .s{line-height:1.7;margin-top:2px}
main.tool .item-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:4px}
main.tool .item-links a{margin-right:0;padding-block:8px}
main.tool .item-links a.guide{font-weight:700;text-decoration:none;border:1px solid var(--line);padding:10px 12px}
main.tool .item-links a.guide:hover,main.tool .next-links a:hover{background:var(--ink);color:var(--paper)}
main.tool .next-box{border-top:1px solid var(--line);margin-top:22px;padding-top:4px}
main.tool .next-links a{min-height:44px;display:inline-flex;align-items:center;padding:8px 16px}
main.tool .next-box .next-links a:first-child{background:var(--ink);color:var(--paper)}
main.tool .start-box{border:1px dashed var(--ink-3);padding:18px 16px;margin:6px 0 14px}
main.tool .start-box p{margin:0 0 6px}
main.tool .verdict-box{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0 10px;margin:0 0 6px}
main.tool .verdict-box p{margin:0 0 6px}
main.tool .verdict-box .vb-k{font-size:13px;color:var(--ink-2)}
main.tool .verdict-box .vb-v{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;line-height:1.1}
main.tool .verdict-box .vb-v .num{font-family:var(--lat);font-size:clamp(3rem,2rem + 5vw,4.4rem);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
main.tool .verdict-box .vb-v small{font-size:1.3rem;margin-right:8px}
main.tool .verdict-box.over .vb-v .num,main.tool .verdict-box.over .vb-v small{color:var(--ng)}
main.tool .verdict-box .badge{font-size:14px;padding:3px 10px}
main.tool .verdict-box .vb-s{font-size:14.5px;margin-top:8px}
main.tool .meter{margin:10px 0 6px}
main.tool .vb-note{margin:0 0 14px;font-size:13.5px;color:var(--ink-2)}
main.tool .tool-actions{border-top:1px solid var(--hair);margin-top:22px;padding-top:14px}
main.tool .tool-actions p{margin:0 0 10px;font-size:13px}
main.tool .tool-actions .btns{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
main.tool .tool-actions button{min-height:44px;font-weight:700}
main.tool .tool-actions a.linklike{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;font-size:14px}
main.tool .tool-actions .copied{font-size:13.5px;color:var(--ok);font-weight:700}
main.tool button:hover:not(:disabled):not(.linklike):not(.st-b):not(.chip-x){background:var(--ink);color:var(--paper)}
/* 出典: 件数だけ見せて、開いて確かめる */
main.tool .sources summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding-block:6px;min-height:44px}
main.tool .sources summary::-webkit-details-marker{display:none}
main.tool .sources summary h2{margin:0}
main.tool .sources summary .n{font-size:14px;color:var(--ink-2);overflow-wrap:anywhere;min-width:0}
main.tool .sources summary .t{font-size:13px;text-decoration:underline;text-underline-offset:4px;margin-left:auto}
main.tool .sources details[open] summary .t{display:none}
main.tool .sources details[open] summary{margin-bottom:10px}
main.tool .sources ol{word-break:normal;overflow-wrap:anywhere;margin:0 0 12px}
main.tool .sources li a{display:inline-block;padding-block:4px}
/* スマホ: 結果が下に隠れているあいだ、まとめを下端に出す（押すと結果へ） */
.rbar{position:fixed;left:0;right:0;bottom:0;z-index:35;display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--ink);color:var(--paper);text-decoration:none;padding:9px max(16px,env(safe-area-inset-right,0px)) calc(9px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));min-height:56px;transform:translateY(110%);visibility:hidden;transition:transform .2s ease,visibility .2s}
.rbar.show{transform:none;visibility:visible}
.rbar:empty{display:none}
.rbar-t{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;min-width:0;line-height:1.35}
.rbar-k{font-size:12px;opacity:.85}
.rbar b{font-family:var(--lat);font-size:1.12rem;font-weight:700;font-variant-numeric:tabular-nums}
.rbar-n{font-size:12px;opacity:.85;flex-basis:100%}
.rbar-go{flex:none;font-size:13px;font-weight:700;border:1px solid currentColor;padding:6px 10px;white-space:nowrap}
@media (min-width:900px){.rbar{display:none}}
@media (max-width:899px){main.tool{padding-bottom:84px}}

/* ---- 動きを減らす設定の人には、動かさない */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

/* ---- 印刷: 結果と本文だけを、白地に黒で */
@media print{
  :root{--paper:#fff;--ink:#000;--ink-2:#333;--ink-3:#555;--line:#000;--hair:#bbb;--soft:#f2f2f2;--note-bg:#f6f6f6;--field:#fff;--species:#b4430a;--species-ink:#b4430a}
  body{font-size:11pt;line-height:1.6;background:#fff}
  .top nav,.top .r,.skip,.menu,.toc,.cta,.rbar,.filters,.lstat,.active,.hsearch-band,.hsearch,.pn,aside,footer a,.tool-actions,.draftbar a,main.tool .picker-list,main.tool input[type="search"],main.tool .chip-x,main.tool .chip-clear,main.tool .st-b,main.tool .next-box,main.tool .next-links,#add-row,#reset-rows,main.tool button.linklike{display:none !important}
  .top{border-bottom:1px solid #000;padding-block:6px}
  .cols,main.tool .layout{display:block}
  main.tool .layout > .results{border-left:0;padding-left:0}
  .sec,main.tool .card{padding-block:12pt;break-inside:auto}
  footer div:has(a):not(:has(p)){display:none}
  h1{font-size:20pt}h2{font-size:14pt;break-after:avoid}h3{break-after:avoid}
  tr,.row,.cell,.tile,main.tool .total,.verdict-box{break-inside:avoid}
  .tile[hidden]{display:none !important}
  a{text-decoration:none}
  .prose a[href^="http"]::after,.srclist a::after{content:" (" attr(href) ")";font-size:9pt;word-break:break-all}
  main.tool .sources summary .t{display:none}
  footer{padding-block:10pt;font-size:9pt}
  .tablewrap{overflow:visible}.tablewrap::before,.datatable::before{display:none !important}
  .datatable{overflow:visible}.datatable table{min-width:0;font-size:8.5pt}.datatable th,.datatable td{padding:3pt 4pt 3pt 0}.datatable thead th{white-space:normal}
  .related li{break-inside:avoid}.toresults{display:none !important}
}
