:root{color-scheme:light dark;
--fg:#12161c;--bg:#fff;--panel:#fff;--soft:#f4f6f9;--line:#dde2e9;--rule:#c8d0da;
--muted:#5a6472;--first:#0b5cad;--firstbg:#e7f0fa;
--h:#0b5cad;--d:#8a94a3;--a:#256d63;--track:#eceff4}
@media (prefers-color-scheme:dark){:root{
--fg:#eef1f5;--bg:#0f1216;--panel:#161b21;--soft:#171d24;--line:#2b333d;--rule:#3a444f;
--muted:#9aa5b3;--first:#7fb6f0;--firstbg:#16283a;
--h:#7fb6f0;--d:#8b95a3;--a:#5fbfae;--track:#232b34}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);line-height:1.5;
font-family:system-ui,-apple-system,'Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;
-webkit-text-size-adjust:100%}
a{color:var(--first)}

/* masthead ------------------------------------------------------------- */
.mast{display:flex;align-items:center;justify-content:space-between;gap:12px;
flex-wrap:wrap;max-width:1040px;margin:0 auto;padding:10px 14px;
border-bottom:1px solid var(--line)}
.brand{font-size:1.2rem;font-weight:800;letter-spacing:.06em;
text-decoration:none;color:inherit;display:inline-flex;align-items:center;
min-height:40px}
.yomi{margin-left:.4em;font-size:.75rem;font-weight:400;letter-spacing:0;
color:var(--muted)}
.nav{display:flex;gap:6px}
.nav a{font-size:.9rem;font-weight:600;text-decoration:none;color:var(--muted);
padding:0 14px;border:1px solid var(--line);border-radius:6px;
display:inline-flex;align-items:center;min-height:40px}
.nav a:hover{color:var(--first);border-color:var(--first)}

/* round header --------------------------------------------------------- */
.rh,.lede,.picks,.grp,.howto,.notice,footer,.doc{max-width:1040px;margin-left:auto;
margin-right:auto;padding-left:14px;padding-right:14px}
.rh{padding-top:18px}
.tag{margin:0;color:var(--muted);font-size:.8rem}
.rh h1{margin:.15em 0 .5em;font-size:1.5rem;letter-spacing:.01em;
display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.st{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--muted);
border:1px solid var(--rule);border-radius:3px;padding:2px 8px}
.meta{display:flex;flex-wrap:wrap;gap:0;margin:0;border-top:1px solid var(--line);
border-bottom:1px solid var(--line)}
.meta>div{display:flex;align-items:baseline;gap:8px;padding:8px 18px 8px 0}
.meta dt{margin:0;font-size:.75rem;color:var(--muted);letter-spacing:.04em}
.meta dd{margin:0;font-size:.92rem;font-weight:600;font-variant-numeric:tabular-nums}

.lede{margin-top:16px;font-size:.9rem;color:var(--muted)}
.lede p{margin:0 0 6px}
.lede .more{margin:0}
.lede .more a{font-weight:600}

/* highlights ----------------------------------------------------------- */
.picks{margin-top:18px}
.picks h2{font-size:.78rem;letter-spacing:.1em;color:var(--muted);
margin:0 0 8px;font-weight:700}
.picks ul{list-style:none;margin:0;padding:0;display:grid;gap:1px;
background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.pick{display:grid;gap:2px;padding:10px 12px;background:var(--panel);min-width:0}
.pl{font-size:.75rem;color:var(--muted);letter-spacing:.03em}
.pm{font-weight:600;font-size:.92rem;overflow-wrap:anywhere;word-break:break-word}
.pv{font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--first)}
.fine{margin:8px 0 0;font-size:.75rem;color:var(--muted)}

/* league group ---------------------------------------------------------- */
.grp{margin-top:26px}
.gh{margin:0 0 10px;font-size:.8rem;font-weight:800;letter-spacing:.14em;
color:var(--muted);padding-bottom:6px;border-bottom:2px solid var(--rule)}
.matches{list-style:none;margin:0;padding:0;display:grid;gap:10px}

/* one match ------------------------------------------------------------- */
.m{border:1px solid var(--line);border-radius:8px;padding:12px 13px;
background:var(--panel);min-width:0}
.mh{display:flex;align-items:center;gap:9px;font-size:.75rem;color:var(--muted);
letter-spacing:.02em}
.no{display:inline-flex;align-items:center;justify-content:center;min-width:1.55rem;
height:1.55rem;border-radius:4px;background:var(--soft);border:1px solid var(--line);
color:var(--fg);font-weight:800;font-size:.8rem;font-variant-numeric:tabular-nums}
.ko{font-variant-numeric:tabular-nums}
.lg{margin-left:auto;font-weight:700;letter-spacing:.08em}
.mt{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;
margin:9px 0 10px}
.tm{font-weight:700;font-size:1rem;line-height:1.3;overflow-wrap:anywhere;
word-break:break-word;min-width:0}
.mt .tm:last-child{text-align:right}
.at{font-size:.75rem;color:var(--muted);letter-spacing:.06em}

/* the bar: length carries the magnitude, text carries the value ---------- */
.bar{display:flex;height:9px;border-radius:2px;overflow:hidden;
background:var(--track);gap:1px}
.sg{display:block;min-width:2px}
.sg.h{background:var(--h);opacity:.42}
.sg.d{background:var(--d);opacity:.42}
.sg.a{background:var(--a);opacity:.42}
.sg.lead{opacity:1}

.ocs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
margin-top:9px;background:var(--line);border:1px solid var(--line);border-radius:6px;
overflow:hidden}
.ov{background:var(--panel);padding:7px 6px 6px;text-align:center;min-width:0;
display:grid;gap:1px;align-content:start}
.ol{font-size:.75rem;color:var(--muted);white-space:nowrap}
.vl{font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums;
letter-spacing:.01em}
.mk{min-height:1.05em;font-size:.75rem;font-weight:700;letter-spacing:.04em;
color:var(--muted)}
.ov.lead{background:var(--firstbg)}
.ov.lead .vl{color:var(--first);font-weight:800}
.ov.lead .mk{color:var(--first)}
.ov.next .mk{color:var(--fg)}

.rk{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:9px;padding-top:8px;
border-top:1px dashed var(--line);font-size:.82rem}
.rr{display:inline-flex;align-items:baseline;gap:6px;min-width:0;
overflow-wrap:anywhere;word-break:break-word}
.rr b{font-size:.75rem;font-weight:700;color:var(--muted);letter-spacing:.04em;
flex:0 0 auto}

/* tail ------------------------------------------------------------------ */
.howto,.notice{margin-top:24px}
.howto h2{font-size:.78rem;letter-spacing:.1em;color:var(--muted);margin:0 0 8px;
font-weight:700}
.howto ul{margin:0;padding-left:1.1em;color:var(--muted);font-size:.82rem}
.howto li{margin-bottom:4px}
.notice{padding-top:12px;border-top:1px solid var(--line)}
.notice p{margin:0 0 6px;color:var(--muted);font-size:.78rem}
footer{margin-top:24px;padding-top:14px;border-top:2px solid var(--rule);
padding-bottom:36px}
footer h2{font-size:.78rem;letter-spacing:.1em;color:var(--muted);margin:0 0 8px;
font-weight:700}
footer ul{margin:0;padding-left:1.1em;color:var(--muted);font-size:.82rem}
footer li{margin-bottom:4px}

/* the explanation page -------------------------------------------------- */
.doc{max-width:46em;padding-top:18px;padding-bottom:40px}
.rh.dh{max-width:46em}
.rh.dh h1{font-size:1.45rem;margin:.1em 0 .2em}
.doc h2{font-size:1.05rem;margin:30px 0 8px;padding-bottom:6px;
border-bottom:1px solid var(--line)}
.doc h2:first-of-type{margin-top:6px}
.doc p,.doc li{font-size:.94rem}
.doc p{margin:0 0 10px}
.doc ul{padding-left:1.15em;margin:0 0 12px}
.doc li{margin-bottom:7px}
.doc strong{font-weight:700}
.doc details{border:1px solid var(--line);border-radius:8px;padding:10px 12px;
margin:14px 0;background:var(--soft)}
.doc summary{cursor:pointer;font-weight:700;font-size:.88rem}
.doc details[open] summary{margin-bottom:8px;padding-bottom:8px;
border-bottom:1px solid var(--line)}
.scroll{overflow-x:auto;margin:10px 0}
table{border-collapse:collapse;font-size:.86rem;min-width:18em;width:100%}
th{background:var(--soft);font-size:.78rem;letter-spacing:.04em;color:var(--muted)}
th,td{border-bottom:1px solid var(--line);padding:7px 10px;text-align:left;
white-space:nowrap}
td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.back{margin-top:26px;font-size:.9rem}

/* wider screens: two matches abreast, numbers still aligned in-column ---- */
@media (min-width:760px){
.matches{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rh h1{font-size:1.7rem}
.picks ul{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* Narrow phones lose spacing, never type size. */
@media (max-width:400px){
.m{padding:12px 11px}
.mt{gap:6px}
.ov{padding:7px 3px 6px}
}
.ad{max-width:1040px;margin:18px auto 0;padding:0 14px}
.ad .adx{display:grid;gap:12px;padding:12px 14px;background:var(--soft);border:1px solid var(--line);border-left:3px solid var(--first);border-radius:4px}
.ad .adt{min-width:0}
.ad .adk{margin:0 0 4px;font-size:.75rem;font-weight:700;letter-spacing:.12em;color:var(--muted)}
.ad .adh{margin:0 0 4px;font-size:.98rem;font-weight:700}
.ad .adp{margin:0;font-size:.84rem;color:var(--muted);line-height:1.55}
.ad .adl{display:flex}
.ad .adl a{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:10px 16px;border:1px solid var(--first);border-radius:4px;background:var(--panel);color:var(--first);font-size:.92rem;font-weight:700;text-decoration:none;text-align:center;line-height:1.4}
.ad .adl a:hover{background:var(--firstbg)}
.ad .add{margin:10px 0 0;padding:9px 14px 0;border-top:1px solid var(--line);font-size:.76rem;line-height:1.6;color:var(--muted)}
@media (min-width:760px){.ad .adx{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px}.ad .adl a{width:auto;min-width:15em;white-space:nowrap}}
@media (min-width:760px){.matches{grid-template-columns:minmax(0,1fr)}
.m{max-width:620px;margin-left:auto;margin-right:auto;width:100%}
.gh{max-width:620px;margin-left:auto;margin-right:auto}}
.mh{flex-wrap:wrap}
.m .ko{white-space:nowrap}
.pk{font-size:.78rem;font-weight:700;letter-spacing:.02em;color:var(--first);background:var(--firstbg);border:1px solid var(--first);border-radius:3px;padding:1px 8px;white-space:nowrap}
.pk b{margin-left:.15em;font-size:.9rem;font-weight:800;font-variant-numeric:tabular-nums}
:root{--hit:#146b34;--hitbg:#eef7f0;--hitline:#bfe3cc;--edge:#4a5460}
@media (prefers-color-scheme:dark){:root{--hit:#6ede97;--hitbg:#12241a;--hitline:#2f5540;--edge:#8d99a8}}
.verdict{font-size:.75rem;font-weight:700;letter-spacing:.02em;border:1px solid var(--line);border-radius:3px;padding:2px 8px;color:var(--muted);background:var(--panel);white-space:nowrap}
.verdict.hit{color:var(--hit);border-color:var(--hitline);background:var(--hitbg)}
.m.hit{background:var(--hitbg);border-color:var(--hitline);border-left:3px solid var(--hit)}
.m.miss{border-left:3px solid var(--line)}
.score{display:flex;justify-content:center;margin:0 0 9px}
.score .sc{font-size:1.15rem;font-weight:800;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.ov.actual{outline:2px solid var(--edge);outline-offset:-2px}
.m.hit .ov.actual{outline-color:var(--hit)}
.ov .rs{display:block;font-size:.75rem;font-weight:700;letter-spacing:.04em;color:var(--fg)}
.m.hit .ov.lead{background:var(--hitbg)}
.m.hit .ov.lead .vl{color:var(--hit)}
.m.hit .ov.lead .mk{color:var(--hit)}
.m.hit .ov.lead .rs{color:var(--hit)}
.st.done{color:var(--hit);border-color:var(--hitline);background:var(--hitbg)}
.tally{max-width:1040px;margin:16px auto 0;padding:0 14px}
.tally h2{font-size:.78rem;letter-spacing:.1em;color:var(--muted);margin:0 0 8px;font-weight:700}
.tally .tl{display:grid;gap:1px;margin:0;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.tally .tl>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 12px;background:var(--panel)}
.tally dt{margin:0;font-size:.86rem;color:var(--muted)}
.tally dd{margin:0;font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums}
.tally .tl>div:first-child dd{color:var(--hit)}
@media (min-width:760px){.tally .tl{grid-template-columns:repeat(3,minmax(0,1fr))}}
.gt{font-size:.78rem;font-weight:700;letter-spacing:.02em;color:var(--fg);background:var(--panel);border:1px solid var(--edge);border-radius:3px;padding:1px 8px;white-space:nowrap}
.gt b{margin-left:.15em;font-size:.9rem;font-weight:800;font-variant-numeric:tabular-nums}
.aw{color:var(--muted);font-weight:700;font-size:.85rem}
.vs{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0}
.m.hit .pk{color:var(--hit);border-color:var(--hitline);background:var(--hitbg)}
