:root{
/*	--bg:#f6f4f0;	*/
	--bg:#f5f3f1;
	--surface:#fffdfa; --line:#e8e3da; --line2:#f0ece4;
  --ink:#2a2620; --ink2:#7d766a; --dim:#7a7364; /*  --dim:#a59d8e; */
  --accent:#a86b4c; --accent-soft:#f0e6dd;
  --honmei:#c2553f; --taikou:#4a6b63; --tanana:#7a7060; --renka:#a59d8e;
  --radius:12px;
  /* トップページ レース行の状態色（編集可）: done=終了, next=次のレース, other=現状(透明) */
  --row-done:#fcf3eb; --row-next:#fcf4c7;
  --odds-low:#de3b50;  /* 単勝オッズ 10.0未満の赤字（全ページ共通・編集可）*/
  /* レース決着タイプ(HRRT) 1=荒れ(赤)→12=堅い(青) のスケール色（編集可）*/
  --hrrt-1:#dc3a4f; --hrrt-2:#e35563; --hrrt-3:#e96f72;
  --hrrt-4:#d99e3b; --hrrt-5:#e3b347; --hrrt-6:#ebc255;
  --hrrt-7:#5aa85f; --hrrt-8:#69b56e; --hrrt-9:#79c07d;
  --hrrt-10:#4aa3c4; --hrrt-11:#5bb0cf; --hrrt-12:#74c0db;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;
  font-size:15px; line-height:1.6; letter-spacing:.01em;
  /* 日記や記事に貼られた長いURLが折り返さず横スクロールを生むのを防ぐ保険 */
  overflow-wrap:break-word;
}
a{color:inherit; text-decoration:none}

/* header */
.site{display:flex; align-items:center; justify-content:space-between;
  padding:.8rem 1.4rem; background:var(--header-bg); color:var(--header-ink)}
.brand{display:inline-flex; align-items:center; line-height:1}
.logo{height:4.2rem; width:auto; display:block}

/* hamburger button */
.nav-toggle{
  background:none; border:none; cursor:pointer; padding:.5rem;
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  color:var(--header-ink);
}
.nav-toggle span{
  display:block; width:24px; height:2px;
  background:var(--header-ink); border-radius:2px;
  transition:transform .25s, opacity .25s;
}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0; transform:scaleX(0)}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* nav overlay (背景暗幕) */
.nav-overlay{
  display:none; position:fixed; inset:0; z-index:190;
  background:rgba(0,0,0,.45);
}
.nav-overlay.open{display:block}

/* slide-in menu */
.nav-menu{
  position:fixed; top:0; right:0; bottom:0; z-index:200;
  width:min(320px, 85vw);
  background:var(--header-bg); color:var(--header-ink);
  display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform .28s ease;
  overflow-y:auto;
}
.nav-menu.open{transform:translateX(0)}
.nav-close{
  align-self:flex-end; background:none; border:none; cursor:pointer;
  color:var(--header-ink); font-size:1.4rem; padding:1.1rem 1.4rem; line-height:1;
}
.nav-links{list-style:none; margin:0; padding:.5rem 0 1rem; flex:1}
.nav-links li{border-bottom:1px solid rgba(255,255,255,.08)}
.nav-links a{
  display:block; padding:1rem 1.8rem;
  font-size:1.1rem; font-weight:700; color:var(--header-ink);
  transition:background .15s;
}
.nav-links a:hover{background:rgba(255,255,255,.07)}
.nav-foot{
  padding:1.5rem 1.8rem; border-top:1px solid rgba(255,255,255,.1);
  display:flex; flex-direction:column; gap:.6rem;
}
.nav-foot img{height:auto; width:160px; max-width:100%; opacity:.45; object-fit:contain}
.nav-foot .tag{font-size:.72rem; opacity:.4; line-height:1.5}

.wrap{max-width:1080px; margin:0 auto; padding:1.6rem 1.2rem 3rem}

/* top: daybar */
.daybar{display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin:.2rem 0 .9rem}
/* ページ見出し(h1)の共通スタイル。全ページで同じ強さに揃える。
   セクション見出し(.subh)より必ず上位に見えること＝h1>h2の強弱を守る */
.daybar h1, .staticpage h1, .cprof-title, .nwdetail h1{
  font-size:1.35rem; font-weight:700; color:var(--ink); line-height:1.4; margin:0}
.daybar h1{margin:0}
.staticpage h1{margin:.2rem 0 1rem}
.cprof-title{margin:.2rem 0 1.1rem}

/* venues grid（タブレットまで3列・スマホで1列）*/
.venues{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem}
.venue{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden}
/* 競馬場切替タブ（スマホのみ表示・PCは3カラムで全場見えるので不要）*/
.vtabbar{display:none}
@media(max-width:700px){
  .vtabbar{display:flex; gap:.5rem; overflow-x:auto; padding:.1rem 0 .7rem; -webkit-overflow-scrolling:touch; scrollbar-width:none}
  .vtabbar::-webkit-scrollbar{display:none}
  .vtab{flex:0 0 auto; padding:.5rem 1.4rem; border:1px solid var(--line); border-radius:999px;
        background:var(--surface); color:var(--ink2); font-weight:700; font-size:1rem; white-space:nowrap; cursor:pointer}
  .vtab.active{background:var(--accent); color:#fff; border-color:var(--accent)}
  /* レース一覧を横スワイプのカルーセルに（1場=1画面・フリックで切替）*/
  .venues{display:flex; gap:0; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
          -webkit-overflow-scrolling:touch; scrollbar-width:none}
  .venues::-webkit-scrollbar{display:none}
  .venues > .venue{flex:0 0 100%; scroll-snap-align:start; min-width:0}
}
.venue h2{font-size:.92rem; font-weight:600; margin:0; padding:.85rem 1.1rem;
  color:#FFFDEC; border-bottom:1px solid rgba(255,255,255,.08); background:var(--header-bg)}
.racelist{list-style:none; margin:0; padding:0}
.racerow + .racerow{border-top:1px solid var(--line2)}
.rlink{display:flex; align-items:center; flex-wrap:wrap; gap:.55rem .7rem; padding:.6rem .8rem; transition:background .15s}
.rlink:hover{background:#faf7f2}
/* レース行の状態色（トップページ・色は :root の変数で調整）*/
.racerow.is-done .rlink{background:var(--row-done)}
.racerow.is-next .rlink{background:var(--row-next)}
.racerow.is-done .rlink:hover{background:var(--row-done); filter:brightness(.97)}
.racerow.is-next .rlink:hover{background:var(--row-next); filter:brightness(.97)}
/* レース番号チップ（角丸正方形・非青・netkeiba臭を消す）*/
.rno{flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  width:2.1rem; height:2.1rem; border-radius:9px; background:var(--rno-bg); color:var(--rno-ink);
  font-weight:700; font-size:.92rem; line-height:1; font-variant-numeric:tabular-nums;
  text-shadow:0 1px 1px rgba(0,0,0,.22)}  /* HRRT色背景でも数字が読めるように */
.rno small{font-size:.6rem; font-weight:600; margin-left:1px; opacity:.85}
/* L4 BUYレース: 番号チップにAI風グラデ枠（border-boxで外形サイズは不変・内側に枠）。色/太さは編集可 */
.rno.is-buy{
  border:var(--buy-bw,2.5px) solid transparent;
  background:linear-gradient(var(--rno-bg),var(--rno-bg)) padding-box,
             var(--buy-grad,linear-gradient(135deg,#4d9fff,#9a5bff,#ff5b9f)) border-box;
}
/* 被りレース: 番号チップにレインボー枠。**L1×L2×L3の3人が同じ馬**のときだけ。
   border-box＋box-sizing:border-box で外形2.1rem不変＝行の中身はズレない。 */
.rno.ov-full{
  border:2.5px solid transparent;
  background:linear-gradient(var(--rno-bg),var(--rno-bg)) padding-box, var(--ov-grad) border-box;
  --ov-grad:linear-gradient(120deg,#ffd35b,#ff8f5b,#ff5b9f,#9a5bff,#4dd0ff)}
.rmain{flex:1 1 auto; min-width:0}
.rname{display:block; font-weight:500; font-size:.92rem}
.grade{font-style:normal; font-size:.7rem; margin-left:.4rem; padding:.05rem .4rem;
  border:1px solid var(--accent); color:var(--accent); border-radius:4px; vertical-align:middle}
/* おずみの爆穴🔥が出ているレース。レース名の右・格バッジの左に置く */
.bakuflame{font-style:normal; font-size:.82rem; margin-left:.35rem; vertical-align:middle;
  line-height:1}
.condtag{font-style:normal; font-size:.68rem; margin-left:.35rem; padding:.05rem .4rem;
  border:1px solid var(--taikou); color:var(--taikou); border-radius:4px; vertical-align:middle; white-space:nowrap}
/* WIN5対象：当たれば大きい特別フラグ。金色の塗りバッジで差別化 */
.condtag.win5{border-color:#c8971b; background:#c8971b; color:#fff; font-weight:700; letter-spacing:.02em}
.rmeta{display:block; font-size:.78rem; color:var(--dim)}

/* race page */
.back{display:inline-block; color:var(--ink2); font-size:.85rem; margin-bottom:1rem}
.racehead{margin-bottom:1rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.1rem}
.rh-no{color:var(--ink2); font-size:.9rem}
.rh-no strong{color:var(--ink); font-size:1.1rem}
.racehead h1{font-size:1.4rem; margin:.15rem 0 .3rem}
.rh-meta{color:var(--ink2); font-size:.88rem}
.badge{display:inline-block; margin-top:.7rem; font-size:.74rem; padding:.2rem .65rem; border-radius:999px}
.badge.pre{background:var(--accent-soft); color:var(--accent)}
.badge.final{background:#e7efe9; color:var(--taikou)}
.updated{display:inline-block; margin:.2rem 0 .6rem; font-size:.74rem;
  padding:.25rem .7rem; border-radius:999px; font-variant-numeric:tabular-nums}
.updated.pre{background:#fae1e5; color:var(--accent)}  /* 前日予想：薄赤背景・差し色赤(#de3b50) */
.updated.final{background:#e7efe9; color:#4a6b63}  /* 最終予想：薄緑背景・緑字 */

/* shutuba table */
.tablewrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface)}
.shutuba{width:100%; border-collapse:collapse; font-size:.86rem; white-space:nowrap}
.shutuba th{font-weight:600; font-size:.74rem; color:var(--ink2); background:#fbf9f5;
  padding:.55rem .5rem; border-bottom:1px solid var(--line); text-align:center}
.shutuba td{padding:.5rem .5rem; border-bottom:1px solid var(--line2); text-align:center}
.shutuba tr:last-child td{border-bottom:none}
.shutuba .l{text-align:left}
/* ソート可能ヘッダ（馬番・人気）*/
.shutuba th.sortable{cursor:pointer; user-select:none; -webkit-user-select:none; white-space:nowrap}
.shutuba th.sortable:hover{color:var(--accent)}
.shutuba th.sortable::after{content:"⇅"; margin-left:.2em; font-size:.7em; opacity:.4}
.shutuba th.sortable.sort-asc::after{content:"▲"; opacity:1; color:var(--accent)}
.shutuba th.sortable.sort-desc::after{content:"▼"; opacity:1; color:var(--accent)}
.name{font-weight:600}
.dim{color:var(--ink2)}
.odds{font-variant-numeric:tabular-nums; font-weight:600}
.odds-low{color:var(--odds-low) !important}  /* 単勝オッズ 10.0未満 */
/* 当日の乗り替わり。予想時と実際で騎手が違う場合だけ付く（netkeibaも色を変えている） */
/* 発走前の取消・除外。着列がまだ無いので馬名の前に出す。買えない馬だと分かるように */
.scratched{display:inline-block; font-size:.66rem; font-weight:700; color:#fff;
  background:var(--ink2); border-radius:3px; padding:.05rem .3rem; margin-right:.35rem;
  vertical-align:middle}
tr:has(.scratched) td{opacity:.55}
/* 当日の乗り替わり。前の騎手を併記すると行が2段になって表が重くなるので、
   太字＋色だけにする（前の騎手は title でマウスオーバー時に読める）。
   赤(--odds-low)はオッズと収支マイナスで使っているので、差し色の --accent を使う。 */
/* ニュースの自作画像＋右下のクレジット。引用記事にも出すので出所を明示する */
.nw-figure{position:relative; margin:.6rem 0 .9rem; line-height:0}
.nw-figure .nw-img{display:block; width:100%; height:auto; border-radius:8px}
.nw-credit{position:absolute; right:.5rem; bottom:.5rem; line-height:1.4;
  font-size:.68rem; letter-spacing:.02em; color:#fff;
  background:rgba(8,34,37,.62); padding:.15rem .45rem; border-radius:4px;
  backdrop-filter:saturate(140%) blur(2px)}
@media(max-width:480px){ .nw-credit{font-size:.62rem; right:.35rem; bottom:.35rem} }
/* 予想ロジックを変えた期間の注記。数字は消さず「今の方式ではない」ことだけ伝える */
.logicnote{font-size:.78rem; color:var(--ink2); line-height:1.65; margin:.35rem 0 .6rem;
  padding:.45rem .7rem; background:var(--accent-soft); border-left:3px solid var(--accent);
  border-radius:0 5px 5px 0}
.jk-chg{color:var(--accent); font-weight:700}
.pop{color:var(--ink2); font-variant-numeric:tabular-nums}
.no{font-variant-numeric:tabular-nums; color:var(--ink2)}
/* 馬番（結果ありは着＋馬番）を左固定：横スクロールでも馬の識別列を保持。left値はJSで実測付与 */
.shutuba td.stick{position:sticky; z-index:1; background:var(--surface)}
.shutuba th.stick{position:sticky; z-index:3; background:#fbf9f5}
.shutuba .stick-edge{border-right:1px solid var(--line)}
.tablewrap.scrolled .stick-edge{box-shadow:6px 0 7px -4px rgba(0,0,0,.14)}
/* 枠色（netkeiba準拠・少しミュート。2=黒,3=赤,4=青,6=緑,7=橙,8=桃は白文字）*/
.waku{font-size:.82rem; font-weight:700}
.waku span{display:inline-flex; align-items:center; justify-content:center;
  width:1.55rem; height:1.55rem; border-radius:5px}
.w1 span{background:#fbfaf7; border:1px solid #d8d2c8; color:#3a3631}
.w2 span{background:#3a3631; color:#fff}
.w3 span{background:#cf5b4d; color:#fff}
.w4 span{background:#5b86a8; color:#fff}
.w5 span{background:#e6bd45; color:#3a3631}
.w6 span{background:#6e9e72; color:#fff}
.w7 span{background:#d98a45; color:#fff}
.w8 span{background:#dd93a6; color:#fff}
.mark{font-weight:700; font-size:1.05rem}
.m-honmei{color:var(--honmei)} .m-taikou{color:var(--taikou)}
.m-tanana{color:var(--tanana)} .m-renka{color:var(--renka)} .m-bstar{color:#c8862f} .m-star{color:#d9a441}

/* キャラ予想コーナー */
.charreads{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.6rem}
@media(max-width:640px){ .charreads{grid-template-columns:1fr} }
.cread{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.1rem; min-width:0}
.cread-head{display:flex; align-items:center; gap:.7rem; margin-bottom:.7rem}
.cicon{flex:0 0 auto; width:3rem; height:3rem; border-radius:50%; overflow:hidden;
  background:var(--accent-soft); display:inline-flex; align-items:center; justify-content:center}
.cicon img{width:100%; height:100%; object-fit:cover}
.cname{font-weight:700; font-size:.95rem; line-height:1.35}
a.cname:hover{color:var(--accent); text-decoration:underline}
.picks{list-style:none; margin:0; padding:0}
.picks li{display:flex; align-items:center; gap:.5rem; padding:.32rem 0; border-top:1px solid var(--line2); font-size:.9rem}
.picks li:first-child{border-top:none}
.pmark{flex:0 0 1.3rem; font-weight:700; text-align:center}
.pname{flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500}
.pidx{flex:0 0 auto; font-variant-numeric:tabular-nums; font-weight:700; color:var(--ink2)}
.pfin{flex:0 0 auto; font-size:.74rem; color:var(--dim); margin-left:.2rem}

/* 予想テーブル（印 馬番 馬名 人気 オッズ 指数 着順・横スクロール）*/
.picktable-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch}
.picktable{width:100%; border-collapse:collapse; font-size:.85rem; white-space:nowrap}
.picktable th{font-size:.7rem; color:var(--ink2); font-weight:600; padding:.32rem .45rem;
  border-bottom:1px solid var(--line); text-align:center}
.picktable td{padding:.34rem .45rem; border-bottom:1px solid var(--line2); text-align:center; font-variant-numeric:tabular-nums}
.picktable tr:last-child td{border-bottom:none}
.picktable .l{text-align:left}
.picktable .pname{font-weight:500; max-width:9rem; overflow:hidden; text-overflow:ellipsis}
.picktable .pmark{font-weight:700}
.picktable .pidx{font-weight:700; color:var(--ink2)}
.fin-od{color:var(--dim); font-size:.78rem; margin-left:.35rem}
.pfin2{flex:0 0 auto; margin-left:auto; font-weight:700; font-variant-numeric:tabular-nums; color:var(--ink2)}
.pfin2.f1{color:var(--honmei)} .pfin2.f2{color:var(--taikou)} .pfin2.f3{color:var(--tanana)}

/* キャラ プロフィール兼結果トップ（PC=画像左+プロフ右flex / SP=画像センター縦積み）*/
/* 読み仮名は改行して下に。見出しの途中に挟むと不自然な位置で折り返すため */
.cprof-title small{display:block; font-size:.85rem; color:var(--ink2); font-weight:600; margin-top:.15rem}
.charprofile{display:flex; align-items:center; gap:1.8rem; margin-bottom:1.5rem}
.cprof-icon{flex:0 0 auto; width:240px; height:240px; border-radius:50%;
  object-fit:cover; background:var(--surface)}
/* プロフィールはサイト共通のカード基調に合わせる（素の箇条書きをやめる） */
.cprof-card{flex:1 1 0; min-width:0; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); padding:.9rem 1.1rem}
.cprof-dl{display:grid; grid-template-columns:auto 1fr; gap:.3rem .9rem; margin:0}
.cprof-dl dt{font-size:.78rem; font-weight:700; color:var(--ink2); white-space:nowrap}
.cprof-dl dd{margin:0; font-size:.92rem; color:var(--ink); min-width:0}
.cprof-bio{margin:.8rem 0 0; padding-top:.8rem; border-top:1px dashed var(--line);
  font-size:.86rem; line-height:1.8; color:var(--ink2)}
@media(max-width:640px){
  .charprofile{flex-direction:column; align-items:center; gap:1.1rem}
  .cprof-icon{width:200px; height:200px}
  .cprof-card{align-self:stretch}  /* テキストは左揃えのまま画像だけ中央 */
}

/* キャラ別サマリー */
.charhead{display:flex; align-items:center; gap:.9rem; margin-bottom:1.2rem}
.charhead h1{font-size:1.25rem; margin:0}
.charhead h1 small{font-size:.8rem; color:var(--ink2); font-weight:600}
.charlinks{display:flex; gap:.7rem; flex-wrap:wrap; margin-bottom:1.4rem}
.charlink{display:flex; align-items:center; gap:.6rem; padding:.6rem .9rem; background:var(--surface);
  border:1px solid var(--line); border-radius:999px; font-size:.88rem}
.charlink:hover{background:#faf7f2}
.cicon.sm{width:2.2rem; height:2.2rem}
.subh{font-size:1.15rem; font-weight:700; color:var(--ink); margin:1.6rem 0 .7rem;
  padding:.42rem .8rem; line-height:1.4; border-left:5px solid var(--odds-low);
  background:linear-gradient(90deg, rgba(222,59,80,.09), rgba(222,59,80,0));
  border-radius:0 8px 8px 0}
.subh:first-of-type{margin-top:.4rem}
.subh small{font-size:.78rem; font-weight:400}

/* 収支結果トップ：最新開催日の買い目＋各キャラ成績 */
.latest{display:flex; flex-direction:column; gap:.9rem; margin:.2rem 0 .6rem}
.lblock{}
.lbtitle{display:inline-flex; align-items:baseline; gap:.15rem; font-weight:700;
  font-size:.98rem; color:var(--ink); margin:0 0 .35rem}
a.lbtitle:hover{color:var(--odds-low)}
.lbtitle .lbsub{font-size:.78rem; font-weight:400; color:var(--ink2)}
.lbrow{display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:.72rem .95rem; font-size:.9rem}
a.lbrow:hover{background:#faf7f2}
.lbrow.lbnone{color:var(--ink2)}
.lb-date{font-weight:700; font-variant-numeric:tabular-nums}
.lb-meta{color:var(--ink2); font-size:.82rem}
.lb-val{margin-left:auto; font-weight:700; font-variant-numeric:tabular-nums}
.lb-val.plus{color:var(--taikou)} .lb-val.minus{color:var(--honmei)}
.lb-roi{margin-left:auto; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums}
.lb-val + .lb-roi{margin-left:0}
.lb-go{color:var(--accent); font-weight:700}

/* my bet */
.mybet{margin-top:1.6rem}
.mybet h2{font-size:1rem; font-weight:600; margin:0 0 .6rem}
.bet{border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.1rem;
  display:flex; align-items:center; gap:.9rem; background:var(--surface)}
.bet p{margin:0}
.bdecision{flex:0 0 auto; width:2.4rem; height:2.4rem; border-radius:8px; display:grid; place-items:center;
  font-weight:700; font-size:1.1rem}
.buy .bdecision{background:var(--accent); color:#fff}
.miken .bdecision{background:#ece8e1; color:var(--ink2)}
.bet.locked{color:var(--ink2); font-style:normal; background:#fbf9f5; border-style:dashed;
  flex-direction:column; align-items:flex-start; gap:.55rem}
/* 前日BUYレースの示唆文（ソワソワ感・差し色イタリック）*/
.bet-teaser{font-style:italic; font-weight:600; font-size:.92rem; line-height:1.65; color:var(--accent)}
.empty{color:var(--ink2); padding:2rem; text-align:center;
  border:1px dashed var(--line); border-radius:var(--radius)}

/* 着順（結果反映後）*/
.fin{font-weight:700; font-variant-numeric:tabular-nums; color:var(--ink2)}
.fin.f1{color:var(--honmei)} .fin.f2{color:var(--taikou)} .fin.f3{color:var(--tanana)}

/* 買い目の結果 */
.betres{margin:.55rem 0 0; font-weight:600; font-size:.9rem}
.betres.hit{color:var(--taikou)}
.betres.miss{color:var(--ink2)}

/* パンくず */
.crumbs{font-size:.82rem; color:var(--ink2); margin-bottom:1rem}
.crumbs a{color:var(--accent)}
.crumbs span{margin:0 .35rem; color:var(--dim)}
.crumbs .cur{margin:0; color:var(--ink2)}

/* 競馬場切替タブ（レースページ）*/
.vtabs{display:flex; gap:.45rem; margin-bottom:.7rem; flex-wrap:wrap}
.vtab{font-size:.85rem; font-weight:600; padding:.35rem .95rem; border:1px solid var(--line);
  border-radius:999px; background:var(--surface); color:var(--ink2)}
.vtab.cur{background:var(--accent); color:#fff; border-color:var(--accent)}
@media(max-width:700px){ .vtabs{justify-content:center} }
/* レース番号ストリップ（1R〜12R 横スクロール・現在R=赤背景白文字）*/
.rstrip{display:flex; gap:.4rem; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:.1rem 0 .5rem; margin-bottom:.4rem}
.rstrip::-webkit-scrollbar{height:4px}
.rstrip::-webkit-scrollbar-thumb{background:var(--line); border-radius:2px}
.rchip{flex:0 0 auto; min-width:2.7rem; text-align:center; font-size:.85rem; font-weight:700;
  padding:.35rem .55rem; border:1px solid var(--accent); border-radius:8px; color:var(--accent);
  background:#fff; font-variant-numeric:tabular-nums}
.rchip.cur{background:var(--accent); color:#fff}
.rchip small{font-size:.6rem; font-weight:600; opacity:.85; margin-left:1px}
/* レース決着タイプ(HRRT) バー: 1〜12スケール。現在型だけ色、他は黒レイヤーで減光 */
.hrrtbar{border-top:1px solid var(--line2); border-bottom:1px solid var(--line2);
  padding:.2rem 0 .9rem; margin:.2rem 0 1.2rem}
/* 見出しは他ページと同じ .subh。中身もサイト全体に合わせて左揃え */
.hrrtbar .htsub{font-size:.74rem; color:var(--ink2); margin:.5rem 0 0}
.hrrtbar .htchg{color:var(--honmei)}
.hrrtbar .htchg strong{color:var(--honmei)}
/* 出馬表：オッズ・人気が発走5分前の凍結値であることの注記 */
.basisnote{font-size:.74rem; color:var(--ink2); line-height:1.6; margin:.1rem 0 .5rem}
.basisnote strong{color:var(--ink)}
.basisnote a{color:var(--accent); font-weight:600}
.htypes{display:flex; gap:.2rem; justify-content:center; align-items:center; flex-wrap:nowrap;
  overflow-x:auto; padding:.4rem .15rem}
/* 6頭未満で決着タイプ非表示時：トップのレース番号と同じ黒背景の横長角丸帯 */
.htypes-na{background:var(--rno-bg); color:var(--rno-ink); border-radius:9px;
  padding:.6rem 1rem; text-align:center; font-weight:700; font-size:.92rem}
/* 非アクティブ(減光)は一回り小さい角丸。12個でも主要スマホ幅に収まる */
.htype{flex:0 0 auto; width:1.5rem; height:1.5rem; display:inline-flex; align-items:center; justify-content:center;
  border-radius:6px; font-weight:700; font-size:.76rem; color:#fff; position:relative;
  font-variant-numeric:tabular-nums; text-shadow:0 1px 1px rgba(0,0,0,.25)}
.htype.dim::after{content:""; position:absolute; inset:0; background:rgba(18,16,14,.72); border-radius:6px}
/* 現在型: 大きめ・ボーダー無し・薄いドロップシャドウで浮かせる */
.htype.cur{width:2.2rem; height:2.2rem; border-radius:9px; font-weight:800; font-size:.98rem;
  box-shadow:0 2px 6px rgba(0,0,0,.30)}

/* 開催日ページング */
.pager{display:flex; justify-content:space-between; gap:.6rem; margin:0 0 1.4rem}
.pager .pg{font-size:.85rem; font-weight:600; color:var(--accent); padding:.35rem .7rem;
  border:1px solid var(--line); border-radius:8px; background:var(--surface); font-variant-numeric:tabular-nums}
.pager .pg.dis{color:var(--dim); border-style:dashed; background:transparent}
.pager .pg-arc{color:var(--ink2)}

/* 次の重賞の予告（開催の無い平日のトップ） */
.nextk{background:var(--surface); border:1px solid var(--line);
  border-left:3px solid var(--honmei); border-radius:var(--radius);
  padding:.8rem 1rem; margin:0 0 1.1rem}
.nk-head{font-size:.92rem; font-weight:700; color:var(--ink)}
.nk-head b{font-variant-numeric:tabular-nums}
.nk-in{font-size:.68rem; font-weight:700; color:var(--honmei); margin-left:.4rem;
  border:1px solid var(--honmei); border-radius:4px; padding:0 .3rem}
.nk-list{list-style:none; margin:.5rem 0 0; padding:0;
  display:flex; flex-wrap:wrap; gap:.35rem .9rem}
.nk-list li{font-size:.88rem; color:var(--ink)}
.nk-venue{font-size:.75rem; color:var(--ink2); margin-left:.3rem}
.nk-note{font-size:.75rem; color:var(--ink2); margin:.55rem 0 0}

/* WIN5 要約カード（トップ）。本体は /win5
   バナーロゴ(1087:123)をカード幅いっぱいに中央置き→その下に状態・点数・説明を積む。
   ※2026-08-09 以前は「左にロゴ／右に本文」の横並びだった。ロゴが横長になったので縦積みへ。
   上下のマージンは前後のセクションと揃える（下は .newsbox の 1.6rem と相殺される） */
.w5card{margin:1.6rem 0}
.w5c-link{display:block;
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); padding:.85rem 1rem}
.w5c-link:hover{border-color:var(--accent); background:var(--accent-soft)}
/* 幅で決めて高さは比率まかせ（height を指定すると比率が壊れる） */
.w5c-mark{display:block; width:100%; max-width:460px; height:auto; margin:.15rem auto .7rem}
.w5c-main{display:block; min-width:0}
/* バナーが中央なので、その下の状態＋点数も中央で受ける（説明文は左のまま＝折返しが読みやすい） */
.w5c-head{display:flex; align-items:center; justify-content:center; gap:.5rem;
  font-weight:700; color:var(--ink)}
.w5c-fig{flex:0 0 auto; line-height:1}
.w5c-fig b{font-size:1.7rem; color:var(--honmei); font-variant-numeric:tabular-nums}
.w5c-fig small{font-size:.75rem; color:var(--ink2); margin-left:.1rem}
.w5c-txt{display:block; margin-top:.35rem;
  font-size:.82rem; line-height:1.65; color:var(--ink2)}
.w5c-txt b{color:var(--honmei)}
.w5c-go{display:block; margin-top:.4rem; text-align:right;
  font-size:.82rem; font-weight:700; color:var(--accent)}
.w5date{font-size:.82rem; color:var(--ink2); font-variant-numeric:tabular-nums;
  margin:-.6rem 0 .9rem}
/* WIN5 月別一覧 */
.w5mlist{list-style:none; margin:0; padding:0; display:grid; gap:.5rem}
.w5mrow{display:flex; align-items:center; gap:.8rem; text-decoration:none; color:inherit;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:.75rem .9rem}
.w5mrow:hover{border-color:var(--accent); background:var(--accent-soft)}
.w5m-date{flex:0 0 auto; font-weight:700; font-variant-numeric:tabular-nums}
.w5m-fig{flex:0 0 auto; line-height:1; color:var(--ink2)}
.w5m-fig b{font-size:1.15rem; color:var(--honmei); font-variant-numeric:tabular-nums}
.w5m-fig small{font-size:.72rem; margin-left:.1rem}
.w5m-res{flex:1 1 auto; min-width:0; font-size:.82rem; color:var(--ink2)}
.w5m-hit{font-weight:700; color:var(--ink)}
.w5m-hit.all{color:var(--honmei)}
.w5m-go{flex:0 0 auto; color:var(--accent); font-weight:700}
@media(max-width:480px){
  /* 1行目=日付・点数・矢印 / 2行目=的中状況。orderで矢印を先に回して3行に割れるのを防ぐ */
  .w5mrow{flex-wrap:wrap; gap:.3rem .7rem}
  .w5m-go{order:1; margin-left:auto}
  .w5m-res{order:2; flex:1 0 100%}
}

/* グローバルナビ（ヘッダー直下・全ページ共通） */
.gnav{display:flex; gap:0; overflow-x:auto; background:var(--surface);
  border-bottom:1px solid var(--line); -webkit-overflow-scrolling:touch;
  scrollbar-width:none; position:sticky; top:0; z-index:40}
.gnav::-webkit-scrollbar{display:none}
.gnav .gn{flex:1 1 0; min-width:0; text-align:center; white-space:nowrap;
  padding:.62rem .3rem; font-size:.8rem; font-weight:700; color:var(--ink2);
  border-bottom:2px solid transparent}
@media (min-width:600px){ .gnav .gn{flex:0 1 auto; padding:.62rem 1.2rem; font-size:.86rem} }
.gnav .gn:hover{color:var(--ink); background:var(--accent-soft)}
.gnav .gn.cur{color:var(--honmei); border-bottom-color:var(--honmei)}

/* 海外馬券の発売対象レース（農水大臣指定の116競走） */
.ovs-note{font-size:.85rem; line-height:1.75; color:var(--ink2); background:var(--surface);
  border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:var(--radius); padding:.8rem 1rem; margin:0 0 1.2rem}
.ovs-note strong{color:var(--ink)}
.ovslist{list-style:none; margin:0; padding:0; border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; background:var(--surface)}
.ovslist li + li{border-top:1px solid var(--line2)}
.ovsrow{padding:.8rem 1rem}
.ovs-when{display:flex; align-items:center; gap:.5rem; margin-bottom:.15rem}
.ovs-date{font-size:.78rem; font-weight:700; color:var(--ink2); font-variant-numeric:tabular-nums}
.ovs-post{font-size:.74rem; font-weight:700; color:var(--ink2); font-variant-numeric:tabular-nums}
.ovs-local{font-size:.66rem; color:var(--dim); border:1px solid var(--line);
  border-radius:4px; padding:0 .25rem}
.ovs-soon{font-size:.68rem; font-weight:700; color:var(--accent);
  border:1px solid var(--accent); border-radius:4px; padding:0 .3rem}
.ovs-soon.today{color:#fff; background:var(--honmei); border-color:var(--honmei)}
.ovs-main{display:flex; align-items:baseline; flex-wrap:wrap; gap:.35rem}
.ovs-name{font-weight:700; font-size:1rem; color:var(--ink)}
.ovs-grade{font-style:normal; font-size:.68rem; font-weight:700; color:var(--honmei);
  border:1px solid var(--honmei); border-radius:4px; padding:0 .25rem}
.ovs-en{font-size:.74rem; color:var(--dim)}
.ovs-meta{margin-top:.2rem; font-size:.76rem; color:var(--ink2);
  display:flex; flex-wrap:wrap; gap:.5rem}
.ovs-venue::before, .ovs-cond::before{content:"／"; color:var(--line); margin-right:.5rem}
.ovs-news{list-style:none; margin:.5rem 0 0; padding:.45rem 0 0; border-top:1px dashed var(--line)}
.ovs-news li + li{margin-top:.25rem}
.ovs-news a{font-size:.8rem; color:var(--accent); font-weight:600}
.ovslist.compact .ovsrow{padding:.6rem 1rem}
.ovslist.compact .ovs-name{font-size:.92rem}
.ovsup{margin:0 0 1.4rem}
.ovsworld{margin:1.6rem 0 0}
.ovs-sub{font-size:.8rem; line-height:1.7; color:var(--ink2); margin:0 0 .7rem}
.ovs-more{margin:.55rem 0 0; text-align:right}
.ovs-more a{font-size:.82rem; font-weight:600; color:var(--accent)}

/* 過去の予想アーカイブ（年→月） */
.arcy{margin:0 0 1.2rem}
.arcgrid{list-style:none; margin:0; padding:0; display:grid; gap:.5rem;
  grid-template-columns:repeat(auto-fill, minmax(88px, 1fr))}
.arcm{display:flex; flex-direction:column; align-items:center; gap:.15rem; padding:.6rem .3rem;
  border:1px solid var(--line); border-radius:10px; background:var(--surface)}
.arcm:hover{background:var(--accent-soft); border-color:var(--accent)}
.am-label{font-weight:700; font-size:.95rem; color:var(--ink); font-variant-numeric:tabular-nums}
.am-days{font-size:.72rem; color:var(--ink2)}

/* 収支結果 */
.sumlink{display:inline-flex; align-items:center; gap:.3rem; white-space:nowrap;
  font-size:.85rem; font-weight:700; color:#fff;
  background:var(--odds-low); border:1px solid var(--odds-low);
  padding:.4rem .8rem; border-radius:999px; line-height:1;
  box-shadow:0 1px 3px rgba(222,59,80,.28); transition:filter .12s, transform .12s}
.sumlink:hover{filter:brightness(1.07); transform:translateY(-1px)}
.sumlink .sl-ico{font-size:.95rem}
.sumlink .sl-go{font-weight:700; opacity:.85}

/* サマリー一覧（日別）*/
.daylist{list-style:none; margin:0; padding:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--surface)}
.daylist li + li{border-top:1px solid var(--line2)}
.dayrow{display:flex; align-items:center; gap:.8rem; padding:.85rem 1.1rem}
.dayrow:hover{background:#faf7f2}
.dl-date{font-weight:700; font-variant-numeric:tabular-nums}
.dl-meta{color:var(--ink2); font-size:.8rem}
.dl-pl{margin-left:auto; font-weight:700; font-variant-numeric:tabular-nums}
.dl-pl.plus{color:var(--taikou)} .dl-pl.minus{color:var(--honmei)}
.dl-roi{color:var(--ink2); font-size:.85rem; min-width:3rem; text-align:right; font-variant-numeric:tabular-nums}
.dl-go{color:var(--accent)}

/* レース結果カード（各日サマリー）*/
.racecards{display:flex; flex-direction:column; gap:.7rem}
.rc{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:.85rem 1rem}
.rc-head{display:flex; align-items:center; gap:.6rem; margin-bottom:.5rem}
.rc-title{font-weight:600}
.rc-status{margin-left:auto; display:flex; align-items:center; gap:.6rem}
.rc-pl{font-weight:700; font-variant-numeric:tabular-nums}
.rc-pl.plus{color:var(--taikou)} .rc-pl.minus{color:var(--honmei)}
.rc-row{display:flex; gap:.7rem; font-size:.88rem; padding:.15rem 0}
.rc-k{flex:0 0 3.2rem; color:var(--ink2); font-size:.8rem}
.rc-v{flex:1 1 auto; min-width:0}
.rc-res{display:flex; flex-direction:column; gap:.15rem}
.fin-line b{font-weight:700; margin-right:.3rem}
.fin-line b.f1{color:var(--honmei)} .fin-line b.f2{color:var(--taikou)} .fin-line b.f3{color:var(--tanana)}
.nk{display:inline-block; margin-top:.3rem; color:var(--accent); font-size:.82rem; font-weight:600}
.sumcards{display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:.7rem; margin-bottom:1.4rem}
.sc{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:.75rem .9rem; display:flex; flex-direction:column; gap:.15rem}
.sc-l{color:var(--ink2); font-size:.73rem}
.sc-v{font-size:1.35rem; font-weight:700; font-variant-numeric:tabular-nums}
.sc-v small{font-size:.68rem; color:var(--dim); font-weight:600; margin-left:1px}
.sc.big .sc-v{font-size:1.55rem}
.sc.plus{border-color:#bcd3c3} .sc.plus .sc-v{color:var(--taikou)}
.sc.minus .sc-v{color:var(--honmei)}
.sumtable{width:100%; border-collapse:collapse; font-size:.88rem}
.sumtable th{font-size:.74rem; color:var(--ink2); background:#fbf9f5; padding:.55rem .6rem; border-bottom:1px solid var(--line); text-align:center}
.sumtable td{padding:.6rem; border-bottom:1px solid var(--line2); text-align:center; vertical-align:top}
.sumtable tr:last-child td{border-bottom:none}
.sumtable .l{text-align:left}
.sumtable .num{font-variant-numeric:tabular-nums}
.tag-hit{background:#e7efe9; color:var(--taikou); padding:.12rem .55rem; border-radius:999px; font-size:.78rem; font-weight:600}
.tag-miss{background:#f0ece4; color:var(--ink2); padding:.12rem .55rem; border-radius:999px; font-size:.78rem}

/* disclaimer */
.disclaimer{text-align: right;max-width:1080px; margin:0 auto; padding:1.4rem 1.2rem 2.4rem; color:var(--dim);
  font-size:.74rem; line-height:1.7; border-top:1px solid var(--line); margin-top:2rem}
.disclaimer p{margin:.2rem 0}
.copy{opacity:.7}

@media(max-width:560px){
  .wrap{padding:1.1rem .8rem 2rem}
  .racehead h1{font-size:1.2rem}
  .site{align-items:center; text-align:center}
}

/* L3 おずみ姉さん（決着タイプ別の狙い目）— 1ブロックで全幅 */
.charreads.l3read{grid-template-columns:1fr; margin-top:1rem}
.l3summary{font-size:.9rem; line-height:1.55; margin:.2rem 0 .8rem}
.l3summary p{margin:.3rem 0}
.l3cmt{font-weight:700; color:var(--accent)}
.l3spot{background:var(--accent-soft); border-radius:6px; padding:.4rem .65rem; margin:.4rem 0 !important}
.l3spot strong{color:var(--odds-low)}
tr.l3hit{background:#fcf4e8}
.spotbadge{display:inline-block; font-size:.66rem; font-weight:700; color:#fff; background:var(--odds-low);
  border-radius:4px; padding:.05rem .32rem; vertical-align:middle; line-height:1.3}
/* 爆穴（大頭数の深い妙味1頭）。背景は透過にして🔥だけ見せる（炎が潰れないように） */
.spotbadge.baku{background:transparent; color:inherit; padding:0; font-size:.98rem}
/* L3が出せない(6頭未満)時の「魂の見」バッジ。狙と同じ赤背景・文字は白以外(ゴールド) */
.tamabadge{display:inline-block; font-weight:700; color:#ffd86b; background:var(--odds-low);
  border-radius:6px; padding:.2rem .6rem; font-size:.92rem; line-height:1.4}
.l3note{font-size:.72rem; margin-top:.5rem}
/* 各キャラ予想カードの「予想確定」時刻（テーブル直上）*/
.predfix{font-size:.72rem; color:var(--ink2); margin:.2rem 0 .4rem; font-variant-numeric:tabular-nums}
/* キャラの口調コメント（L1/L2 予想ブロック）*/
.cnote{margin:.7rem 0 0; padding:.5rem .7rem; background:var(--accent-soft); border-radius:8px;
  font-size:.82rem; line-height:1.5; color:var(--ink2)}

/* 単勝100円ベタ収支ボックス（サマリー） */
.tanbox{background:var(--accent-soft); border:1px solid var(--line); border-radius:var(--radius);
  padding:.6rem .8rem; margin:.8rem 0; font-size:.9rem; color:var(--ink)}
.tanbox strong{color:var(--odds-low); font-size:1.05rem; font-variant-numeric:tabular-nums}
/* 推奨馬が取消/除外で集計除外したレースの注意書き（doc59） */
.excnote{background:#fdecef; border:1px solid var(--odds-low); border-left:4px solid var(--odds-low);
  border-radius:8px; padding:.55rem .85rem; margin:.8rem 0; text-align:left}
.excnote p{margin:.15rem 0; font-size:.86rem; color:var(--ink)}
.excnote strong{color:var(--odds-low); font-weight:700}

/* ── 静的ページ共通（about等のテンプレ。新規静的ページはこれを使い回す）── */
.staticpage{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.4rem 1.5rem 1.8rem; margin-top:.6rem; line-height:1.85}
/* style.css: .staticpage h2 を .subh と同じ見た目に統一 */
.staticpage h2{
  font-size:1.15rem; font-weight:700; color:var(--ink);
  margin:1.8rem 0 .7rem; padding:.42rem .8rem; line-height:1.4;
  border-left:5px solid var(--odds-low);
  background:linear-gradient(90deg, rgba(222,59,80,.09), rgba(222,59,80,0));
  border-radius:0 8px 8px 0;
}																																																																																																																																																																																																																																																																																																																																																												
																																																																																																																																																																																																																																																																																																																																																												
.staticpage h3{font-size:1rem; margin:1.1rem 0 .4rem; color:var(--ink)}
.staticpage p{margin:.5rem 0; color:var(--ink)}
.staticpage ul{margin:.5rem 0 .9rem; padding-left:1.3rem}
.staticpage li{margin:.3rem 0}
.staticpage strong{color:var(--accent); font-weight:700}
.staticpage .lead{font-size:1.02rem; color:var(--ink2)}
.staticpage a{color:var(--accent); text-decoration:underline}
.staticpage .note{font-size:.85rem; color:var(--ink2); background:var(--accent-soft);
  border-radius:8px; padding:.7rem .9rem; margin:1rem 0}
.staticpage hr{border:none; border-top:1px solid var(--line2); margin:1.6rem 0}
@media(max-width:640px){ .staticpage{padding:1.1rem 1.1rem 1.4rem} }

/* キャラ紹介カード（aboutで使用・3キャラ） */
.charcards{display:grid; grid-template-columns:1fr; gap:.9rem; margin:.6rem 0 .4rem}
.charcard{display:flex; gap:.9rem; align-items:flex-start; background:var(--bg);
  border:1px solid var(--line); border-radius:var(--radius); padding:.9rem 1rem}
.charcard .ci{flex:0 0 auto; width:4rem; height:4rem; border-radius:50%; overflow:hidden;
  background:var(--accent-soft); display:inline-flex; align-items:center; justify-content:center}
.charcard .ci img{width:100%; height:100%; object-fit:cover}
.charcard .cbody{min-width:0}
.charcard .cn{font-weight:800; font-size:1.02rem}
.charcard .cn small{font-weight:600; color:var(--ink2); font-size:.78rem; margin-left:.4rem}
.charcard .ct{display:inline-block; font-size:.72rem; color:var(--accent);
  border:1px solid var(--accent); border-radius:999px; padding:.05rem .55rem; margin:.25rem 0}
.charcard .cp{font-size:.86rem; color:var(--ink2); margin:.3rem 0 0}

/* ── 運営日記（diary）── */
.diarylist{display:grid; grid-template-columns:1fr; gap:.8rem; margin-top:.4rem}
/* min-width:0 が要る: グリッド項目の既定(auto)だと、抜粋に入った長いURLの
   min-content幅までカードが広がって画面からはみ出す */
.dcard{display:flex; gap:.9rem; min-width:0; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); padding:.85rem 1rem; transition:background .15s}
.dcard:hover{background:#faf7f2}
.dthumb{flex:0 0 auto; width:5rem; height:5rem; border-radius:8px; overflow:hidden; background:var(--accent-soft)}
.dthumb img{width:100%; height:100%; object-fit:cover}
.dcard .dbody{display:flex; flex-direction:column; min-width:0}
.dtitle{font-weight:700; font-size:1rem; color:var(--ink)}
.ddate{font-size:.78rem; color:var(--ink2); margin:.15rem 0}
.dexcerpt{font-size:.85rem; color:var(--ink2); overflow:hidden}
.dimg{max-width:100%; height:auto; border-radius:8px}
.dpostbody{line-height:1.9; margin:.6rem 0}

/* diary フォーム/ボタン（管理） */
.dform{display:flex; flex-direction:column; gap:.9rem; max-width:680px}
.dform label{display:flex; flex-direction:column; gap:.3rem; font-size:.88rem; color:var(--ink2)}
.dform input[type=text], .dform input[type=password], .dform textarea{
  font:inherit; padding:.6rem .7rem; border:1px solid var(--line); border-radius:8px;
  background:var(--surface); color:var(--ink); width:100%}
.dform textarea{resize:vertical; line-height:1.7}
.dform .dcheck{flex-direction:row; align-items:center; gap:.5rem; color:var(--ink)}
.dbtn{display:inline-block; background:var(--accent); color:#fff; border:none; cursor:pointer;
  font:inherit; font-weight:700; padding:.55rem 1.4rem; border-radius:999px; text-decoration:none}
.dbtn:hover{opacity:.85}
.dlink{color:var(--ink2); margin-left:.8rem; font-size:.9rem}
.xshare{display:inline-block; background:#000; color:#fff; padding:.45rem 1.1rem;
  border-radius:999px; font-weight:700; font-size:.9rem; text-decoration:none}
.xshare:hover{opacity:.85}
/* レース・ニュースのページで本文の後ろに置くときの余白 */
.xshare-wrap{margin:1.4rem 0 .4rem; text-align:center}
/* ニュース記事 → そのレースの予想ページへの内部リンク（JRAタグ＋レースバッジのとき） */
.nwpromo{margin:1.3rem 0 .2rem}
.nwpromo a{display:block; text-decoration:none; color:inherit; padding:.75rem .9rem;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius)}
.nwpromo a:hover{border-color:var(--accent); background:var(--accent-soft)}
.nwpromo-t{display:block; font-weight:700; font-size:.9rem; line-height:1.6; word-break:break-word}
.nwpromo-u{display:block; margin-top:.25rem; font-size:.76rem; color:var(--accent);
  word-break:break-all}
.dedit{margin-left:.8rem; color:var(--accent); font-weight:700}

/* diary 管理テーブル */
.dadmin{width:100%; border-collapse:collapse; font-size:.88rem; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden}
.dadmin th{background:#fbf9f5; color:var(--ink2); font-size:.76rem; padding:.5rem .6rem; text-align:center}
.dadmin td{padding:.5rem .6rem; border-top:1px solid var(--line2); text-align:center}
.dadmin .l{text-align:left}
.dactions a{color:var(--accent); margin-right:.6rem}
.ddel{background:none; border:none; color:var(--odds-low); cursor:pointer; font:inherit; padding:0}

/* ── キャラ推奨の被り成績（summary系・_overlap.html macro）── */
.overlaps{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:.9rem 1rem 1.1rem; margin:.8rem 0 1.2rem}
.ovhead{font-size:1rem; margin:.1rem 0 .3rem; padding-left:.5rem; border-left:4px solid var(--accent); color:var(--ink)}
.ovnote{font-size:.78rem; color:var(--ink2); margin:.2rem 0 .8rem; line-height:1.6}
.ovgrid{display:grid; grid-template-columns:1fr 1fr; gap:.7rem}
/* 2カラムを畳む幅を 640→780 に。iPad Air 13インチ横向きの Split View 均等割り(≈653-683px)で
   カード内の円グラフ(88px)＋2列の凡例が入りきらず、カードが右にはみ出していた。
   この帯は「PC扱いだが横幅は狭い」ため、幅だけで見ると見落とす。 */
@media(max-width:780px){ .ovgrid{grid-template-columns:1fr} }
/* grid の子は既定が min-width:auto。中身が縮まずトラックを押し広げるのを止める（はみ出しの元） */
.ovcard{background:var(--bg); border:1px solid var(--line); border-radius:9px; padding:.6rem .8rem;
        min-width:0}
.ovcard.baku{margin-top:.7rem; border-color:#e8821e; background:#fff8f0}
.ovtop{display:flex; align-items:center; justify-content:space-between; gap:.6rem; flex-wrap:wrap}
.ovname{font-weight:800; font-size:.98rem; color:var(--ink); display:flex; align-items:center; gap:.15rem}
.ovicon{width:34px; height:34px; border-radius:50%; object-fit:cover; object-position:center;
  border:2px solid var(--surface); box-shadow:0 0 0 1px var(--line); background:var(--surface)}
.ovx{color:var(--ink2); font-weight:600; margin:0 .12rem; font-size:.9rem}
.ovbaku{font-weight:800; font-size:1rem}
.ovcount{font-size:.82rem; color:var(--ink2); white-space:nowrap}
.ovcount strong{color:var(--accent); font-size:1.05rem; font-variant-numeric:tabular-nums}
.ovcount small{font-size:.72rem; opacity:.8}
/* 着別 円グラフ */
.ovpie{display:flex; align-items:center; gap:1rem; margin-top:.6rem}
.ovpie .pie{width:88px; height:88px; border-radius:50%; flex:0 0 auto;
  box-shadow:0 1px 3px rgba(8,34,37,.14), inset 0 0 0 1px rgba(255,255,255,.35)}
.ovpie .pie-empty{background:repeating-conic-gradient(#e7e3de 0 25%, #ddd8d2 0 50%)}
/* min-width:0 が無いと2列グリッドのmin-contentでflex行がはみ出す（狭幅端末） */
.pielg{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr;
  gap:.15rem .8rem; flex:1 1 auto; min-width:0}
@media(max-width:360px){ .pielg{grid-template-columns:1fr} .ovpie{gap:.7rem} }
/* 凡例が2列で足りるかは「画面幅」ではなく「カードの幅」で決まる（2カラム時は画面の約半分）。
   カード自身を基準にして、狭ければ1列に落とす。これが無いと 781px 付近で
   「3着 0.00%」等が2行に折れる（iPad Split View で最初に見つかった帯）。 */
.ovcard{container-type:inline-size}
@container (max-width:380px){ .pielg{grid-template-columns:1fr} }
/* コンテナクエリが無いブラウザ向けの保険。画面幅で近似する。 */
@supports not (container-type:inline-size){
  @media(max-width:1000px){ .pielg{grid-template-columns:1fr} }
}
.pielg li{font-size:.82rem; color:var(--ink2); display:flex; align-items:center; gap:.35rem; font-variant-numeric:tabular-nums}
.pielg .sw{width:11px; height:11px; border-radius:3px; flex:0 0 auto}
.pielg b{color:var(--ink); font-weight:700; margin-left:auto}
.ovraces{display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.55rem; padding-top:.5rem; border-top:1px dashed var(--line)}
.ovraces a{font-size:.76rem; background:var(--surface); border:1px solid var(--line); border-radius:999px;
  padding:.12rem .55rem; color:var(--ink2); white-space:nowrap}
.ovraces a:hover{border-color:var(--accent); color:var(--accent)}
.ovraces a em{font-style:normal; color:var(--accent); font-weight:700; margin-left:.15rem}

/* ── 推奨頭数別の成績（1頭/2頭）＋爆穴。買い目の工夫用の集計 ── */
.pickstats{margin:1.2rem 0}
.psgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:.7rem}
.pscard{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:.8rem .95rem}
.pscard.baku{border-color:#e8a33d; background:#fffaf2}
.pstop{display:flex; align-items:baseline; gap:.6rem; margin-bottom:.35rem}
.pshead{font-size:.9rem; font-weight:600; color:var(--ink)}
.pshead strong{color:var(--odds-low)}
.pscount{margin-left:auto; font-weight:700; font-variant-numeric:tabular-nums; color:var(--ink2)}
.pscount small{font-weight:400; font-size:.78rem}
.psrec{margin:.1rem 0 .5rem; font-size:1.15rem; font-weight:700; letter-spacing:.04em;
  font-variant-numeric:tabular-nums; color:var(--ink)}
.psrec small{font-size:.68rem; font-weight:400; color:var(--ink2); letter-spacing:0; margin-left:.35rem}
.pslist{list-style:none; margin:0; padding:0; font-size:.85rem}
.pslist li{display:flex; align-items:baseline; gap:.5rem; padding:.22rem 0; border-top:1px solid var(--line2)}
.pslist li:first-child{border-top:none}
.pslist li span{color:var(--ink2)}
.pslist li span small{font-size:.68rem}
.pslist li b{margin-left:auto; font-variant-numeric:tabular-nums; font-size:.95rem}
.pslist li.ps-hit b{color:var(--odds-low); font-size:1.02rem}
.psnote{margin:.45rem 0 0; font-size:.7rem; color:var(--ink2)}

/* 狙い馬×爆穴レースの券種別成績（実払戻ベース） */
.combobox{margin-top:.8rem; background:#fffaf2; border:1px solid #e8a33d; border-radius:var(--radius); padding:.8rem .95rem}
.combobox .ovnote{margin:.2rem 0 .6rem}
.cbwrap{overflow-x:auto}
.cbtable{width:100%; border-collapse:collapse; font-size:.85rem; min-width:22rem}
.cbtable th{font-weight:600; color:var(--ink2); font-size:.78rem; text-align:center;
  padding:.3rem .4rem; border-bottom:1px solid var(--line)}
.cbtable td{padding:.36rem .4rem; text-align:center; border-bottom:1px solid var(--line2);
  font-variant-numeric:tabular-nums}
.cbtable .l{text-align:left}
.cbtable td.l b{font-weight:700}
.cbtable td.l small{color:var(--ink2); font-size:.7rem}
.cbtable tr.cbbaku td.l b{color:#c8791b}
.cbtable td.cbroi{font-weight:700; color:var(--odds-low)}

/* ── チャレンジWIN5（トップ下部・モバイルファースト＝1レース1行の縦積み）── */
.win5box{margin-top:1.6rem; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); padding:1rem 1.1rem 1.1rem}
.w5head{display:flex; align-items:center; gap:.7rem; flex-wrap:wrap}
.w5head h2{font-size:1.15rem; font-weight:700; margin:0; color:var(--ink)}
.w5state{font-size:.72rem; font-weight:700; padding:.2rem .6rem; border-radius:999px}
.w5state.live{background:#fae1e5; color:var(--odds-low)}
.w5state.lock{background:#e7efe9; color:var(--taikou)}
.w5note{font-size:.78rem; color:var(--ink2); line-height:1.6; margin:.4rem 0 .8rem}
.w5note strong{color:var(--ink)}
.w5list{display:flex; flex-direction:column; gap:.5rem}
.w5row{border:1px solid var(--line); border-radius:10px; padding:.55rem .7rem; background:var(--bg)}
.w5row.is-hit{border-color:var(--taikou); background:#f2f8f4}
.w5row.is-miss{opacity:.72}
.w5r-race{display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; font-size:.88rem}
.w5r-race a{font-weight:500}
.w5r-race a:hover b{color:var(--odds-low)}
.w5r-race b{font-weight:700}
.w5r-hrrt{font-size:.68rem; font-weight:700; color:#fff; padding:.1rem .45rem;
  border-radius:5px; text-shadow:0 1px 1px rgba(0,0,0,.25); white-space:nowrap}
.w5r-cells{display:flex; gap:1.2rem; flex-wrap:wrap; margin-top:.4rem}
.w5cell{display:flex; align-items:center; gap:.45rem}
.w5lab{font-size:.7rem; color:var(--ink2); font-weight:600}
.w5nos{display:inline-flex; align-items:center; gap:.25rem; flex-wrap:wrap}
.w5ok{font-style:normal; font-size:.72rem; font-weight:700; color:var(--taikou)}
.w5ng{font-style:normal; font-size:.8rem; color:var(--ink2)}
.w5foot{display:flex; gap:1rem; flex-wrap:wrap; align-items:center; margin-top:.7rem;
  padding-top:.6rem; border-top:1px solid var(--line2); font-size:.82rem; color:var(--ink2)}
.w5foot b{color:var(--ink); font-size:1rem; font-variant-numeric:tabular-nums}
.w5foot small{font-size:.72rem}
.w5res{margin-left:auto; font-weight:700; color:var(--ink)}
.w5res.all{color:var(--odds-low)}

/* WIN5: 推奨馬の人気併記＋合議バッジ */
.w5pick{display:inline-flex; align-items:center; gap:.2rem}
.w5pick + .w5pick{margin-left:.45rem}
.w5pick small{font-size:.66rem; color:var(--ink2); white-space:nowrap}
.w5pick.is-cons small{color:var(--odds-low); font-weight:700}
.w5cons{font-size:.66rem; font-weight:700; color:#fff; background:var(--odds-low);
  padding:.1rem .4rem; border-radius:5px; white-space:nowrap}

/* WIN5: 見出しロゴ／レース連番バッジ（WIN1〜WIN5・一覧のWIN5バッジと同じ金色） */
.w5head h2{display:inline-flex; align-items:center; gap:.45rem; letter-spacing:.01em}
.w5logo{background:#c8971b; color:#fff; font-size:.9rem; font-weight:800; letter-spacing:.06em;
  padding:.16rem .5rem; border-radius:7px; box-shadow:0 1px 3px rgba(200,151,27,.35)}
.w5idx{margin-left:0; flex:0 0 auto; font-size:.66rem; letter-spacing:.03em}
/* ── ページ見出しバナー（1087:123＝約8.8:1 の横長SVG・_pagemark.html から使う）──
   文字はアウトライン化済みなので閲覧環境のフォントに依存しない。スマホ幅いっぱいで映える
   デザインなので **幅100%＋中央合わせ**。※height を指定すると比率が壊れて横に溢れる。
   .pgmark … バナーが h1 そのもの（セクションのトップ。alt に見出しテキストを入れる）
   .pgband … h1 の上に置く装飾看板（日別/月別/記事詳細。h1のテキストは残す＝SEO維持・alt=""） */
.pgmark, .w5mark{display:block; width:100%; height:auto; margin-inline:auto}
.pgh1, .w5h1{margin:0; line-height:1; flex:1 1 100%}  /* daybar内で1行を占有させて中央に */
.pgmark{max-width:620px}
.pgband{display:block; width:100%; max-width:460px; height:auto; margin:.1rem auto .55rem}
.w5h1 .w5mark{max-width:620px}
.w5mark.sm{max-width:520px}
/* PCだけ看板を1.3倍に（460→598px）。スマホは元々ほぼ画面幅いっぱいなので触らない。
   .w5c-mark = トップのWIN5要約カードのバナー。他の max-width と同じく幅だけ指定＝比率は保たれる */
@media(min-width:701px){
  .pgband{max-width:598px}
  .w5c-mark{max-width:598px}
}
/* バナーが1行を占有するので、同じ行の状態バッジ等も中央に落とす */
.pgbar, .w5bar{justify-content:center; text-align:center}
/* セクション見出し版(_win5.html)も同じ組み方 */
.w5head{justify-content:center}
.w5head h2{flex:1 1 100%}

/* WIN5行: バッジ群（合議/決着タイプ）。PC=右端 / スマホ=2行目に左寄せでまとめる */
.w5badges{margin-left:auto; display:inline-flex; align-items:center; gap:.3rem; flex:0 0 auto}
@media(max-width:700px){
  .w5r-race{gap:.3rem .45rem}
  .w5badges{flex-basis:100%; margin-left:0; margin-top:.1rem}
  /* 推奨馬 / 勝ち馬 を必ず別行に（横並びだと折り返しでガタつく）*/
  .w5r-cells{flex-direction:column; gap:.3rem}
  .w5cell{align-items:baseline}
  .w5lab{flex:0 0 3.2rem}
}

/* WIN5 キャラ対決（勝血 vs 論理 vs おずみ・各1頭×5R） */
.w5vs{margin-top:.9rem}
.w5vs-head{font-size:.88rem; font-weight:700; color:var(--ink); margin-bottom:.5rem}
.w5vs-head small{font-weight:400; font-size:.7rem; color:var(--ink2); margin-left:.5rem}
.w5vs-list{display:flex; flex-direction:column; gap:.4rem}
.w5vs-row{display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
  background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:.45rem .6rem}
.w5vs-row.is-all{border-color:#c8971b; background:#fffaf2}
.w5vs-who{display:inline-flex; align-items:center; gap:.4rem; flex:0 0 auto; min-width:8.5rem}
.w5vs-who img{width:1.7rem; height:1.7rem; border-radius:50%; object-fit:cover;
  background:var(--accent-soft); flex:0 0 auto}
.w5vs-who b{font-size:.82rem; font-weight:700}
.w5vs-nos{display:inline-flex; align-items:center; gap:.3rem; flex-wrap:wrap}
.w5vs-nos .w5pick + .w5pick{margin-left:0}
.w5vs-nos .w5pick .waku{opacity:.45}
.w5vs-nos .w5pick.vs-hit .waku{opacity:1; outline:2px solid var(--taikou); outline-offset:1px}
.w5vs-score{margin-left:auto; font-weight:700; font-variant-numeric:tabular-nums; color:var(--ink)}
.w5vs-score small{font-weight:400; font-size:.75rem; color:var(--ink2)}
@media(max-width:700px){
  .w5vs-who{min-width:0; flex:1 1 100%}
  .w5vs-score{margin-left:auto}
}

/* ── 競馬ニュース（doc65）── */
.newsbox{margin-top:1.6rem; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); padding:1rem 1.1rem 1.2rem}
.nwhead{display:flex; align-items:baseline; gap:.8rem; margin-bottom:.2rem}
.nwhead h2{font-size:1.15rem; font-weight:700; margin:0}
.nwmore{margin-left:auto; font-size:.8rem; font-weight:600; color:var(--accent)}
.nwsec{margin-top:.9rem}
.nwsec-h{font-size:.95rem; font-weight:700; margin:0 0 .5rem; padding-left:.5rem;
  border-left:4px solid var(--odds-low)}
.nwsec-h a:hover{color:var(--odds-low)}
.nwgrp{margin-bottom:.7rem}
.nwgrp-h{font-size:.82rem; font-weight:700; color:#fff; background:var(--header-bg);
  display:inline-flex; align-items:baseline; gap:.4rem; padding:.15rem .6rem; border-radius:6px}
.nwgrp-h small{font-weight:400; font-size:.7rem; opacity:.8}
.nwlist{display:flex; flex-direction:column}
.nwitem{padding:.6rem 0; border-bottom:1px solid var(--line2)}
.nwitem:last-child{border-bottom:none}
.nw-title{display:block; font-weight:600; font-size:.95rem; line-height:1.5}
.nw-title:hover{color:var(--odds-low)}
.nw-sum{margin:.25rem 0 .3rem; font-size:.82rem; color:var(--ink2); line-height:1.65}
.nw-meta{display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin:0; font-size:.72rem; color:var(--dim)}
.nw-src{font-weight:600; color:var(--ink2)}
.nw-tag{border:1px solid var(--taikou); color:var(--taikou); border-radius:4px; padding:0 .35rem}
.nw-tag:hover{background:var(--taikou); color:#fff}
.nw-hasnote{background:var(--accent-soft); color:var(--accent); border-radius:4px; padding:0 .35rem; font-weight:700}
/* 一覧・個別 */
.nwtabs{display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:.9rem}
.nwtab{padding:.35rem .9rem; border:1px solid var(--line); border-radius:999px;
  background:var(--surface); font-size:.85rem; font-weight:600; color:var(--ink2)}
.nwtab.cur{background:var(--odds-low); border-color:var(--odds-low); color:#fff}
.nwpager{justify-content:center; gap:1rem; align-items:center}
.nwpg{font-size:.85rem; color:var(--ink2); font-variant-numeric:tabular-nums}
.nwdetail{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.3rem 1.4rem 1.5rem}
.nwdetail h1{line-height:1.5; margin:.1rem 0 .5rem}
.nw-orig{font-size:.78rem; color:var(--ink2); margin:.1rem 0 .4rem}
.nw-lead{font-size:.95rem; line-height:1.9; margin:.9rem 0; color:var(--ink)}
.nw-src-link{margin:1rem 0 0}
.nw-src-link a{color:var(--accent); font-weight:700; font-size:.9rem}
.nwnote{margin-top:1.4rem; background:var(--accent-soft); border-radius:10px; padding:.9rem 1.1rem}
.nwnote p{margin:0; font-size:.92rem; line-height:1.8}
/* 署名は本文の次の行に右寄せ。文字サイズ・色は元の見出しと同じ */
.nwnote .nwnote-by{font-size:.95rem; color:var(--accent); text-align:right; margin:.4rem 0 0}
.nwnote a{color:var(--accent); text-decoration:underline; word-break:break-all}
.nwrel{margin-top:1.6rem}

/* ── ニュース: インラインSVGアイコン ── */
.ic{width:1.05em; height:1.05em; flex:0 0 auto; vertical-align:-.16em; display:inline-block}
.ic.sm{width:.92em; height:.92em; vertical-align:-.12em}
.ic.lg{width:1.5rem; height:1.5rem; vertical-align:-.28em}
/* ── ニュース: 見出しのみ表示（トップ・netkeiba風） ── */
.newsbox .nwhead{display:flex; align-items:center; gap:.5rem; padding-bottom:.6rem;
  border-bottom:2px solid var(--odds-low); margin-bottom:.2rem}
.newsbox .nwhead h2{font-size:1.15rem; font-weight:700; margin:0}
.newsbox .nwhead > .ic{color:var(--odds-low)}
.nwmore{margin-left:auto; display:inline-flex; align-items:center; gap:.1rem;
  font-size:.8rem; font-weight:600; color:var(--ink2)}
.nwmore:hover{color:var(--odds-low)}
.nwsec{margin-top:1rem}
.nwsec-h{font-size:.92rem; font-weight:700; margin:0 0 .5rem; padding:0; border:none}
.nwsec-h a{display:inline-flex; align-items:center; gap:.35rem; color:var(--ink)}
.nwsec-h a > .ic:first-child{color:var(--odds-low)}
.nwsec-h a:hover{color:var(--odds-low)}
.nwgrp{margin-bottom:.5rem}
.nwgrp-h{display:inline-flex; align-items:baseline; gap:.4rem; font-size:.76rem; font-weight:700;
  color:var(--ink2); background:var(--accent-soft); padding:.12rem .55rem; border-radius:999px;
  margin-bottom:.1rem}
.nwgrp-h small{font-weight:400; font-size:.68rem; opacity:.85}
/* 見出しのみモード: 1行1記事でスッキリ（画像が無い分、余白と行間で読ませる） */
.nwitem.is-title{padding:.55rem 0 .5rem; border-bottom:1px dashed var(--line)}
.nwitem.is-title .nw-title{font-size:.95rem; font-weight:700; line-height:1.55; color:var(--ink)}
.nwitem.is-title .nw-meta{margin-top:.2rem; gap:.7rem}
.nw-t{display:inline-flex; align-items:center; gap:.2rem; color:var(--dim)}
.nw-hasnote{display:inline-flex; align-items:center; gap:.15rem}

/* ── ニュース: 一覧の可読性（区切り線を濃く／タイトルと本文の間隔／メタは右寄せ）── */
.nwlist .nwitem{padding:.75rem 0 .65rem; border-bottom:1px solid var(--line)}
.nwlist .nwitem:last-child{border-bottom:none}
.nwitem .nw-title{line-height:1.55}
.nwitem .nw-sum{margin:.5rem 0 .45rem}       /* タイトルと本文にメリハリを付ける */
.nwitem .nw-meta{justify-content:flex-end}    /* 媒体名・時刻は右寄せ＝本文と区別 */
.nwitem.is-title .nw-meta{justify-content:flex-end}
.nw-t{color:var(--ink2)}
.nw-t .ic{color:var(--odds-low)}              /* 時計は差し色でワンポイント */
.nw-hasnote .ic{color:var(--accent)}
/* 個別ページ: 元記事リンクを右寄せ */
.nw-src-link{text-align:right}
.nw-src-link a{display:inline-flex; align-items:center; gap:.3rem}

/* ── トップの競馬ニュース: カテゴリをタブ切替（縦長回避。SEOのため全部DOMに出しCSSで出し分け）── */
.nwswitch{display:flex; gap:.4rem; flex-wrap:wrap; margin:.7rem 0 .2rem}
.nwsw{display:inline-flex; align-items:center; gap:.3rem; padding:.35rem .85rem;
  border:1px solid var(--line); border-radius:999px; background:var(--bg);
  font-size:.82rem; font-weight:700; color:var(--ink2); cursor:pointer}
.nwsw .ic{color:var(--odds-low)}
.nwsw.cur{background:var(--odds-low); border-color:var(--odds-low); color:#fff}
.nwsw.cur .ic{color:#fff}
.nwsec.is-hidden{display:none}

/* ハンバーガー: 競馬ニュースのサブカテゴリ */
.nav-links .has-sub > a{padding-bottom:.6rem}
.nav-sub{list-style:none; margin:0; padding:0 0 .7rem}
.nav-sub li{border-bottom:none}
.nav-sub a{padding:.5rem 1.8rem .5rem 3rem; font-size:.95rem; font-weight:500; opacity:.85}
.nav-sub a::before{content:"–"; margin-right:.5rem; opacity:.5}
.nav-sub a:hover{opacity:1}

/* ── ニュース管理画面 ── */
/* ページ送り（2026-08-13追加。記事が1000件近くなり1ページに全部出せなくなった） */
.nwadm-pager{display:flex; align-items:center; justify-content:center; gap:.9rem; margin:.7rem 0}
.nwadm-pager.bottom{margin-top:1.1rem}
.nwadm-pnum{font-size:.85rem; font-weight:700; color:var(--ink2); font-variant-numeric:tabular-nums}
/* 一括削除バー。チェック0件のときはボタンを押せなくする（JS側で disabled） */
.nwadm-bulk{display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; margin:.5rem 0 .7rem;
  padding:.55rem .8rem; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); font-size:.85rem}
.nwadm-bulk label{display:inline-flex; align-items:center; gap:.35rem; cursor:pointer}
.nwadm-bulkn{color:var(--ink2); font-variant-numeric:tabular-nums; margin-right:auto}
.nwadm-bulk button[disabled]{opacity:.4; cursor:not-allowed}
/* 行頭のチェックボックス。押しやすいよう縦いっぱいの当たり判定にする */
.nwadm-check{flex:0 0 auto; display:flex; align-items:flex-start; padding-top:.15rem; cursor:pointer}
.nwadm-check input{width:1.05rem; height:1.05rem; cursor:pointer}
/* 記事番号。一覧はこの番号の新しい順に並ぶので、並びの手掛かりとして出す */
.nwadm-id{font-variant-numeric:tabular-nums; font-size:.72rem; color:var(--ink2);
  background:var(--bg); border:1px solid var(--line); border-radius:5px;
  padding:.02rem .32rem; text-decoration:none}
.nwadm-id:hover{border-color:var(--accent); color:var(--accent)}
.nwadm{display:flex; flex-direction:column; gap:.6rem}
.nwadm-row{display:flex; gap:1rem; flex-wrap:wrap; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius); padding:.8rem .95rem}
.nwadm-row.is-hidden{opacity:.6; background:var(--bg)}
.nwadm-main{flex:1 1 22rem; min-width:0}
.nwadm-title{display:block; font-weight:700; font-size:.95rem; line-height:1.5}
.nwadm-title:hover{color:var(--odds-low)}
.nwadm-main .nw-meta{justify-content:flex-start; margin-top:.3rem}
.nwadm-main .nw-sum{margin:.4rem 0 0; font-size:.78rem}
.nwadm-race{background:var(--accent-soft); color:var(--accent); border-radius:4px; padding:0 .35rem; font-weight:700}
.nwadm-off{background:var(--odds-low); color:#fff; border-radius:4px; padding:0 .35rem; font-weight:700}
.nwadm-ext{display:inline-flex; align-items:center; gap:.15rem; color:var(--accent); font-weight:600}
.nwadm-ops{flex:1 1 16rem; display:flex; flex-direction:column; gap:.45rem}
.nwadm-note{display:flex; flex-direction:column; gap:.35rem}
.nwadm-note textarea{width:100%; font:inherit; font-size:.85rem; padding:.5rem .6rem;
  border:1px solid var(--line); border-radius:8px; background:var(--bg); resize:vertical}
.nwadm-btns{display:flex; gap:.4rem; flex-wrap:wrap}
.dbtn.sm{font-size:.78rem; padding:.35rem .8rem; border-radius:7px}
.dbtn.ghost{background:var(--surface); color:var(--ink2); border:1px solid var(--line)}
.dbtn.danger{background:var(--odds-low)}

/* ニュース管理の検索 */
.nwsearch{display:flex; gap:.5rem; align-items:center; margin:0 0 .9rem; flex-wrap:wrap}
.nwsearch input[type="search"]{flex:1 1 14rem; min-width:0; font-size:.9rem;
  padding:.5rem .7rem; border:1px solid var(--line); border-radius:8px;
  background:var(--surface); color:var(--ink)}
.nwsearch input[type="search"]:focus{outline:none; border-color:var(--accent)}
.nwsearch-clear{font-size:.8rem; color:var(--ink2); text-decoration:underline}
.nwsearch-res{font-size:.85rem; color:var(--ink2); margin:0 0 .9rem}
.nwsearch-res strong{color:var(--ink)}
.nwsearch-res small{font-size:.75rem}

/* ニュース管理の編集フォーム（誤訳・実体参照・URLの手直し） */
.nwadm-edit{margin-bottom:.6rem; border:1px solid var(--line); border-radius:8px;
  background:var(--bg); padding:.4rem .6rem}
.nwadm-edit > summary{font-size:.82rem; font-weight:700; color:var(--accent); cursor:pointer}
.nwadm-edit label{display:block; font-size:.75rem; color:var(--ink2); margin:.55rem 0 0}
.nwadm-edit input, .nwadm-edit textarea{display:block; width:100%; box-sizing:border-box;
  margin-top:.15rem; font-size:.85rem; padding:.4rem .5rem; border:1px solid var(--line);
  border-radius:6px; background:var(--surface); color:var(--ink); font-family:inherit}
.nwadm-edit input:focus, .nwadm-edit textarea:focus{outline:none; border-color:var(--accent)}
.nwadm-orig{font-size:.72rem; color:var(--dim); margin:.4rem 0 0; word-break:break-all}
.nwadm-hint{font-size:.72rem; color:var(--ink2); margin:.4rem 0 .5rem; line-height:1.6}

.nwadm-msg{font-size:.85rem; padding:.5rem .8rem; border-radius:8px; margin:0 0 .9rem;
  background:#fdecef; border:1px solid var(--honmei); color:var(--honmei)}
.nwadm-msg.ok{background:#eef7f0; border-color:var(--taikou); color:var(--taikou)}
/* 削除済み一覧（再取得よけ）。長い見出しでも横にはみ出さないよう min-width を切る */
.nwdeny{list-style:none; margin:0; padding:0; display:grid; gap:.5rem}
.nwdeny li{display:flex; align-items:center; gap:.8rem; min-width:0;
  background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:.65rem .8rem}
.nwdeny li>div:first-child{flex:1; min-width:0}
.nwdeny-t{font-size:.85rem; line-height:1.5; word-break:break-word}
.nwdeny-m{font-size:.72rem; color:var(--ink2); margin-top:.2rem}
.nwdeny form{flex:none; margin:0}
.nwadm-re{margin-top:.6rem; padding-top:.6rem; border-top:1px dashed var(--line)}
.nwadm-re .nwadm-hint{display:block; margin:.35rem 0 0}

/* 管理画面: 本文取得の状態バッジ */
.nwadm-blk{font-size:.68rem; font-weight:700; color:#fff; background:#8a6d3b;
  border-radius:4px; padding:.05rem .35rem; white-space:nowrap}
.nwadm-emp{font-size:.68rem; color:var(--ink2); border:1px solid var(--line);
  border-radius:4px; padding:.05rem .35rem; white-space:nowrap}

/* 管理画面: タグの付け替え */
.nwadm-tags{font-size:.75rem; color:var(--ink2); margin:.6rem 0 .2rem}
.nwadm-tags small{font-size:.7rem}
.nwadm-tag{display:inline-flex; align-items:center; gap:.25rem; margin:.3rem .5rem 0 0;
  font-size:.82rem; color:var(--ink); cursor:pointer}
.nwadm-tag input{width:auto; display:inline; margin:0}

/* 管理画面: 手動でのニュース登録 */
.nwadm-new{margin:0 0 1rem; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--surface); padding:.6rem .9rem}
.nwadm-new > summary{font-size:.9rem; font-weight:700; color:var(--accent); cursor:pointer}
.nwadm-new label{display:block; font-size:.78rem; color:var(--ink2); margin:.7rem 0 0}
.nwadm-new label em{font-style:normal; color:var(--honmei); font-size:.7rem; margin-left:.3rem}
.nwadm-new input[type=text], .nwadm-new input[type=url],
.nwadm-new textarea, .nwadm-new select{display:block; width:100%; box-sizing:border-box;
  margin-top:.2rem; font-size:.88rem; padding:.45rem .55rem; border:1px solid var(--line);
  border-radius:6px; background:var(--bg); color:var(--ink); font-family:inherit}
.nwadm-new input:focus, .nwadm-new textarea:focus, .nwadm-new select:focus{
  outline:none; border-color:var(--accent)}
.nwadm-new .dbtn{margin-top:.8rem}
/* 説明文の残り文字数カウンタ */
.nwadm-count{display:block; margin-top:.2rem; font-size:.72rem; color:var(--ink2);
  font-variant-numeric:tabular-nums}
.nwadm-count.near{color:#c8971b}
.nwadm-count.over{color:var(--honmei); font-weight:700}
.nwadm-desc small{font-weight:400; color:var(--ink2)}
.nwadm-2col{display:grid; grid-template-columns:1fr 1fr; gap:0 .8rem}
@media(max-width:560px){ .nwadm-2col{grid-template-columns:1fr} }

/* オリジナル記事 */
.nw-body{font-size:.95rem; line-height:1.95; color:var(--ink); margin:.6rem 0 0}
.nw-body a{color:var(--accent); text-decoration:underline; word-break:break-all}
.nw-img{max-width:100%; height:auto; border-radius:8px; margin:.6rem 0}
.nwadm-ori{font-size:.68rem; font-weight:700; color:#fff; background:var(--taikou);
  border-radius:4px; padding:.05rem .35rem; white-space:nowrap}
.nwadm-orig-toggle{display:block; background:var(--accent-soft); border-radius:8px;
  padding:.5rem .7rem; margin:.5rem 0 0 !important}
.nwadm-orig-toggle input{width:auto !important; display:inline !important; margin-right:.3rem}
.nwadm-orig-toggle b{font-size:.88rem; color:var(--ink)}
.nwadm-orig-toggle small{display:block; font-size:.72rem; color:var(--ink2); margin-top:.2rem; line-height:1.6}
.nwadm-img img{max-height:110px; border-radius:6px; display:block; margin:.3rem 0}

.nwgrp-h a{display:inline-flex; align-items:center; gap:.15rem; color:inherit}
.nwgrp-h a:hover{color:var(--accent)}

/* ── 管理画面（ダッシュボード / WIN5の発売設定）───────────────── */
.admgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; margin:16px 0}
.admcard{display:flex; flex-direction:column; gap:4px; padding:14px 16px; border:1px solid var(--line);
  border-radius:10px; background:var(--surface); text-decoration:none; color:inherit}
.admcard:hover{border-color:var(--accent)}
.admc-t{font-weight:700; font-size:1.05rem}
.admc-n{font-size:.85rem; color:var(--accent); font-weight:700}
.admc-d{font-size:.8rem; opacity:.75; line-height:1.5}
.admnote{font-size:.85rem; opacity:.85; line-height:1.7; margin:12px 0}
.admmsg{padding:8px 12px; border-radius:8px; font-size:.9rem; margin:10px 0}
.admmsg.ok{background:#e8f4ec; color:#1d5b34}
.admmsg.ng{background:#fbe9ec; color:#8d2030}
.admwarn{margin-left:4px}

/* 1行=1フォーム。table の中に form は置けないので横並びのカードにしてある */
.w5arow{display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:10px 12px;
  border:1px solid var(--line); border-radius:8px; margin:8px 0; background:var(--surface)}
.w5arow.is-off{background:#fbe9ec; border-color:#e0a9b4}
.w5a-date{font-weight:700; min-width:6.5em}
.w5a-cnt{font-size:.85rem; opacity:.8}
.w5a-cnt small{margin:0 3px; opacity:.7}
.w5a-cnt b{font-size:1rem}
.w5a-off{display:inline-flex; align-items:center; gap:4px; font-size:.9rem; white-space:nowrap}
.w5a-new{background:var(--accent-soft); border-color:var(--accent)}
.w5a-d{padding:5px 8px; border:1px solid var(--line); border-radius:6px}
.w5a-note{flex:1 1 16em; min-width:0; padding:5px 8px; border:1px solid var(--line); border-radius:6px}
/* トップのWIN5コーナー：発売が無い日 */
.w5card.is-off .w5c-link{cursor:default}
.w5card.is-off .w5c-txt{font-weight:700}
.w5off{line-height:1.9}
@media (max-width:560px){
  .w5a-date{min-width:100%}
  .w5a-note{flex:1 1 100%}
}
