@font-face{font-family:"Shippori";src:url("/fonts/ShipporiMinchoB1-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"ZenKaku";src:url("/fonts/ZenKakuGothicNew-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Jost";src:url("/fonts/Jost.woff2") format("woff2");font-weight:100 900;font-display:swap}
body{line-break:strict}
.pj{word-break:keep-all;overflow-wrap:break-word}
.ph{display:inline-block;overflow-wrap:break-word;vertical-align:baseline}
/* 名前の入る狭い枠では、長い名前は枠の幅で折り返す(表のセルでは使わない: 列が潰れるため) */
.nm .ph,.pn .ph,.opp .ph,.pick .ph,.side .ph{overflow-wrap:anywhere}
[hidden]{display:none!important}*{box-sizing:border-box;margin:0;padding:0}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.num{font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
:root{--paper:#f5f1e6;--ink:#1d2025;--gray:#5b5f66;--dim:#8a8f99;--rule:#cfcabd;--acc:#1f3a63;--accl:#e3e8f0;--alert:#b23a3a;--r:4px;--serif:"Shippori","Hiragino Mincho ProN","Yu Mincho",serif;--sans:"ZenKaku","Hiragino Sans","Hiragino Kaku Gothic ProN",system-ui,sans-serif}
body{background:var(--paper);color:var(--ink);font:700 16px/1.8 var(--sans);-webkit-text-size-adjust:100%}
.wrap{max-width:680px;margin:0 auto;padding:0 16px 96px}
/* 上の太い『運営』帯 */
.band{background:var(--acc);color:var(--paper);margin:0 -16px;padding:16px 16px 12px;position:relative}
.band::after{content:"";position:absolute;left:0;right:0;bottom:-6px;border-bottom:2px solid var(--acc)}
.band .row1{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.band .big{font:700 48px/1 var(--serif);letter-spacing:.2em}
.band .sm{font:700 12px/1.6 var(--serif);letter-spacing:.2em;opacity:.85;text-align:right}
.band .epick{display:flex;align-items:center;gap:8px;margin-top:12px}
.band label{font:700 12px var(--serif);letter-spacing:.2em;opacity:.85}
.band select{background:var(--paper);color:var(--ink)}
select{flex:1;width:100%;min-width:0;height:56px;border:1px solid var(--ink);border-radius:var(--r);background:var(--paper);padding:0 12px;font:700 16px var(--sans);color:var(--ink)}
.eyebrow{font:700 12px/1.6 var(--serif);letter-spacing:.2em;color:var(--gray)}
h2{font:700 24px/1.35 var(--serif);margin:32px 0 8px;letter-spacing:.04em;display:flex;align-items:center;gap:12px}
h2::after{content:"";flex:1;border-top:1px solid var(--ink)}
p,.note{text-align:justify;font:700 15px/1.8 var(--sans);letter-spacing:0;color:var(--ink)}
.note{margin-top:8px}
.warn{color:var(--alert)}
nav{display:flex;border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--paper);z-index:3;margin-top:16px}
nav button{flex:1;min-height:56px;border:0;border-bottom:4px solid transparent;background:none;font:700 16px var(--serif);letter-spacing:.2em;color:var(--dim)}
nav button.on{color:var(--acc);border-bottom-color:var(--acc)}
.btn{display:flex;align-items:center;justify-content:center;min-height:60px;padding:0 20px;border-radius:var(--r);font:700 16px var(--serif);letter-spacing:.06em;border:1px solid var(--ink);background:var(--paper);color:var(--ink);text-decoration:none}
.btn.main{background:var(--acc);border-color:var(--acc);color:var(--paper)}
.btn.full{width:100%}
.btn:disabled{opacity:.35}
.lnk{background:none;border:0;font:700 14px var(--sans);color:var(--ink);text-decoration:underline;text-underline-offset:.2em;min-height:44px;padding:0 4px}
.lnk.alert{color:var(--alert)}
.gap{display:flex;flex-direction:column;gap:8px;margin-top:16px}
input[type=text],input[type=number],input[type=password]{height:56px;width:100%;border:1px solid var(--ink);border-radius:var(--r);background:#fff;padding:0 12px;font:700 16px var(--sans);color:var(--ink)}
textarea{width:100%;min-height:180px;border:1px solid var(--ink);border-radius:var(--r);padding:12px;font:700 14px/1.7 var(--sans);background:#fff;color:var(--ink);margin-top:8px}
/* 参加者の行 */
.pr{border-top:1px solid var(--rule);padding:8px 0}
.pt{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center}
.pt .rk{font:500 16px "Jost",sans-serif;text-align:right;font-variant-numeric:tabular-nums;color:var(--gray)}
.pn{font:700 18px/1.4 var(--serif);overflow-wrap:anywhere;min-width:0}
.pn input{font-weight:700}
.pp{font:500 12px "Jost",sans-serif;color:var(--gray)}
.pact{display:flex;flex-direction:column;align-items:flex-end}
.tg2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.tg{min-height:56px;border:1px solid var(--ink);border-radius:var(--r);background:var(--paper);font:700 16px var(--serif);letter-spacing:.2em;color:var(--ink)}
.tg.in{background:var(--acc);border-color:var(--acc);color:var(--paper)}
.tg.out{background:var(--accl);border-color:var(--ink);color:var(--gray)}
.tg:disabled{cursor:default}
.count{font:700 24px/1.4 var(--serif);margin:16px 0 4px}
.cnt2{font-size:14px;font-weight:700;color:var(--gray)}
.set{border-top:1px solid var(--rule);padding:12px 0}
.set label{display:flex;gap:8px;align-items:center;font-size:14px;min-height:44px}
.set input[type=checkbox],.set input[type=radio]{width:24px;height:24px;accent-color:var(--acc)}
.pts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.pts label{flex-direction:column;align-items:stretch;gap:2px;font-size:12px;color:var(--gray)}
/* 対戦(結果入力) */
.round{margin-top:32px}
.round h3{font:700 24px/1.35 var(--serif);border-bottom:1px solid var(--ink);padding-bottom:4px;position:relative;letter-spacing:.04em}
.round h3::after{content:"";position:absolute;left:0;right:0;bottom:-5px;border-bottom:1px solid var(--ink)}
.round .eyebrow{margin-top:12px}
.match{border:1px solid var(--ink);padding:4px;margin-top:16px}
.grp{display:flex;justify-content:space-between;padding:4px 8px;font:700 12px var(--serif);letter-spacing:.1em;color:var(--gray)}
.sides{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.side{min-height:96px;border:1px solid var(--ink);border-radius:var(--r);background:var(--paper);font:700 22px/1.25 var(--serif);color:var(--ink);padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow-wrap:anywhere;position:relative}
.side small{font:700 12px var(--sans);color:var(--gray);margin-top:2px}
.side small.atk{color:var(--ink);margin-top:0}
.side:active{background:var(--accl)}
.side.win{background:var(--acc);border-color:var(--acc);color:var(--paper)}
.side.win small{color:var(--paper)}
.side.win::after{content:"勝";position:absolute;right:6px;top:6px;width:24px;height:24px;border:1px solid var(--paper);border-radius:4px;font:700 14px/22px var(--serif);text-align:center}
.side.lose{color:var(--dim);border-color:var(--rule);background:var(--paper)}
.side:disabled{cursor:default}
.vs{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding:4px 4px 4px 8px;border-top:1px solid var(--rule);font:700 15px var(--sans);color:var(--gray)}
.vs input{width:80px}
.bye{font:700 14px var(--sans);color:var(--gray);padding:12px 8px}
/* 表 */
table{width:100%;border-collapse:collapse;font-size:16px}
th{text-align:left;font:700 12px var(--serif);letter-spacing:.1em;color:var(--gray);border-bottom:1px solid var(--ink);padding:4px}
td{border-bottom:1px solid var(--rule);padding:10px 4px;vertical-align:middle}
td.n,th.n{width:56px;text-align:right;font-variant-numeric:tabular-nums}
td.r{font:700 20px var(--serif)}
tr.top td{background:var(--accl)}
.tag{font:700 12px var(--serif);border:1px solid var(--ink);padding:0 4px;border-radius:var(--r);margin-left:4px}
.gwrap{overflow-x:auto;margin-top:16px}
table.grid{font-size:12px;line-height:1.5}
.grid th{padding:4px 2px}.grid td{padding:6px 2px}
.gname{font-weight:700;font-size:14px;white-space:nowrap}.gid{color:var(--dim);font-weight:400;font-size:12px}
.gc{font-size:12px}.gw{color:var(--acc)}.gl{color:var(--dim)}.gn{color:var(--gray);font-size:12px}.gs{color:var(--gray)}
.gr{font-weight:700;font-size:14px;width:64px;white-space:nowrap}
/* トーナメント表(横書き。1回戦→勝ち同士→負け同士→順位決定) */
.blk{margin-top:32px}
.bh{display:flex;align-items:baseline;gap:12px;font:700 24px/1.35 var(--serif);letter-spacing:.04em;border-bottom:1px solid var(--ink);padding-bottom:4px;position:relative}
.bh::after{content:"";position:absolute;left:0;right:0;bottom:-5px;border-bottom:1px solid var(--ink)}
.bh small{font:700 12px var(--serif);letter-spacing:.2em;color:var(--gray)}
.bnote{margin-top:12px;text-align:justify;font:700 15px/1.8 var(--sans);letter-spacing:0;color:var(--ink)}
.row{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.bm{display:grid;grid-template-columns:84px minmax(0,1fr) 84px;gap:8px;align-items:stretch;border-bottom:1px solid var(--rule);padding-bottom:8px}
.bid{font:500 20px/1.2 "Jost",sans-serif;color:var(--acc)}
.bid small{display:block;font:700 11px/1.4 var(--serif);color:var(--ink);letter-spacing:0}
.bmt{margin-top:8px;font:700 16px/1.5 var(--serif);color:var(--acc)}
.grp b{font:700 16px var(--serif);color:var(--ink);letter-spacing:.04em}
.bsides{display:flex;flex-direction:column;gap:4px}
.bs{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--ink);border-radius:var(--r);background:#fff;padding:4px 10px;min-height:44px}
.bs .nm{font:700 16px/1.4 var(--serif);overflow-wrap:anywhere;min-width:0;flex:1;text-align:left}
.bs .nm.sm{font:700 12px var(--sans);color:var(--dim)}
.bs .sc{font:500 20px "Jost",sans-serif;min-width:16px;text-align:right}
.bs.slot{background:none;border-style:dashed;border-color:var(--rule)}
.bs.bwin{background:var(--acc);border-color:var(--acc);color:var(--paper)}
.bs.blose{color:var(--dim);border-color:var(--rule);background:var(--paper)}
.bdest{display:flex;flex-direction:column;justify-content:center;font:700 12px/1.7 var(--sans);color:var(--ink)}
.ns{display:none}
.codebox{margin-top:20px;border:1px solid var(--ink);padding:8px 12px 4px}
.codeline{display:flex;flex-direction:column;align-items:stretch;gap:4px}
.codeval{font:500 48px/1.2 'Jost',sans-serif;letter-spacing:.12em;color:var(--acc)}
.codeline .btn{min-height:56px;width:100%;white-space:nowrap}
details.more{margin-top:16px;border-top:1px solid var(--rule);padding-top:8px}details.more summary{font:700 14px var(--sans);color:var(--gray);min-height:44px;display:flex;align-items:center;cursor:pointer}
.setrow{display:flex;gap:6px;flex-wrap:wrap}
.stb{min-width:56px;min-height:56px;border:1px solid var(--ink);border-radius:var(--r);background:var(--paper);font:500 24px 'Jost',sans-serif;color:var(--ink)}
.stb.on{background:var(--acc);border-color:var(--acc);color:var(--paper)}
.stb:disabled{opacity:.4}
.vs{flex-direction:column;align-items:stretch}
table.hist td{font-size:13px;line-height:1.5}
.bs .sd{font:500 14px 'Jost',sans-serif;color:var(--gray);min-width:16px}.bs.bwin .sd{color:var(--paper)}.rk2{display:block;font:700 11px var(--sans);color:var(--gray)}.bwin .rk2{color:var(--paper)}
.seedtab{margin-top:12px}.seedtab td.sn{font:500 24px/1.2 'Jost',sans-serif;color:var(--acc)}.up{margin-left:8px;font:700 12px var(--sans);border:1px solid var(--ink);border-radius:4px;padding:0 4px}
.bl{list-style:none;margin-top:8px}.bl li{font:700 15px/1.8 var(--sans);padding-left:1em;text-indent:-1em}.bl li::before{content:'・'}
.rk3{font:700 11px var(--sans);color:var(--gray)}
.hidden{display:none}

/* ---- 参加者ページ(/hyo)と共通の部品。色は :root の --acc と --accl だけ違う(運営=藍 / 参加者=朱) ---- */
.pick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.pick button{min-height:64px;border:1px solid var(--ink);border-radius:var(--r);background:var(--paper);font:700 18px/1.3 var(--serif);color:var(--ink);display:flex;align-items:center;gap:8px;padding:8px 12px;text-align:left;overflow-wrap:anywhere}
.pick button .sd{font:500 14px 'Jost',sans-serif;color:var(--gray);min-width:20px}
.pick button.on{background:var(--acc);border-color:var(--acc);color:var(--paper)}.pick button.on .sd{color:var(--paper)}
.oppbox{padding:12px 8px}
.opp{font:700 32px/1.3 var(--serif);overflow-wrap:anywhere;margin-top:4px}
.oppsub{font:700 15px/1.8 var(--sans);color:var(--ink);margin-top:8px}
.bs.me{outline:2px solid var(--acc);outline-offset:1px}
.rin{width:100%;height:64px;text-align:center;font:500 32px 'Jost',sans-serif;letter-spacing:.3em}
.sets5{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}
.sets5 .stb{min-width:0;min-height:72px;font-size:32px}
