/* Basket Score — 体育館で見やすい高コントラスト配色（標準はダーク） */
:root{
  --bg:#0e1117; --panel:#171c25; --panel2:#212836; --line:#323b4c;
  --text:#f3f5f9; --muted:#a3adbf; --accent:#ff8a1f; --accent-ink:#1a1000;
  --good:#2fd36f; --warn:#ffcf33; --bad:#ff4d55; --info:#58a6ff;
  --radius:12px; --tap:56px;
  --safe-b:env(safe-area-inset-bottom,0px);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#eef1f5; --panel:#ffffff; --panel2:#e6eaf0; --line:#c5ccd8;
  --text:#10141b; --muted:#536075; --accent:#e06d00; --accent-ink:#fff;
  --good:#11883f; --warn:#a87700; --bad:#d01f2b; --info:#1f63c6;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}
body{min-height:100dvh;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}
input,select,textarea{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px;min-height:44px;width:100%}
input[type=checkbox]{width:26px;height:26px;min-height:0;accent-color:var(--accent)}
input[type=color]{padding:2px;width:64px;height:44px}
h1,h2,h3{margin:0}
.muted{color:var(--muted)}
.small{font-size:.85em}
.hidden{display:none!important}
.num{font-variant-numeric:tabular-nums}

/* ---------- 共通ボタン ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel2);font-weight:700}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}
.btn.good{background:var(--good);border-color:var(--good);color:#04210f}
.btn.big{min-height:64px;font-size:1.2rem;width:100%}
.btn.block{width:100%}
.row a.btn{text-decoration:none;color:inherit;text-align:center}
.btn.two{flex-direction:column;gap:2px;min-height:62px;line-height:1.25}
.btn.two small{font-size:.75rem;font-weight:700;opacity:.8}
.btn:disabled{opacity:.4}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.row > .grow{flex:1}

/* ---------- ページ（ホーム・設定など） ---------- */
.page{max-width:860px;margin:0 auto;padding:16px 16px calc(32px + var(--safe-b))}
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--line)}
.topbar h1{font-size:1.1rem;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .btn{white-space:nowrap;padding:0 12px;flex-shrink:0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:12px 0}
.card h2{font-size:1.05rem;margin-bottom:12px}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.field label{font-size:.85rem;color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.logo{display:flex;align-items:center;gap:12px;margin:12px 0 4px}
.logo .ball{width:56px;height:56px;border-radius:13px}
.logo h1{font-size:1.7rem;letter-spacing:.02em}
.home-actions{display:grid;gap:12px;margin-top:18px}
.resume{border-color:var(--accent)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{flex:1 1 auto;min-height:48px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);font-weight:700}
.seg button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--info)}
.note{font-size:.82rem;color:var(--muted);line-height:1.6}

/* 選手登録表 */
.roster{width:100%;border-collapse:collapse}
.roster th{font-size:.75rem;color:var(--muted);text-align:left;padding:4px;white-space:nowrap}
.roster td{padding:3px}
.roster td.c{text-align:center}
.libbtns{display:grid;grid-template-columns:1.3fr 1.1fr .6fr;gap:6px}
.libbtns .btn{min-height:54px;padding:0 6px;font-size:.88rem;line-height:1.25;text-align:center}
.roster input.no{width:64px;text-align:center;font-weight:800;font-size:1.1rem}
.roster .del{width:44px;height:44px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--bad)}
.teamhead{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.chip{display:inline-block;width:18px;height:18px;border-radius:5px;background:var(--tc);border:1px solid rgba(255,255,255,.4);vertical-align:middle}
.tag{display:inline-block;font-size:.72rem;font-weight:800;padding:2px 7px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);letter-spacing:.04em}
.tag.home{background:var(--tc,#d93a2b);color:var(--tink,#fff);border-color:transparent}
.tag.away{background:var(--tc,#2f6fe0);color:var(--tink,#fff);border-color:transparent}

/* ---------- 試合中メイン画面 ---------- */
.live{display:flex;flex-direction:column;height:100dvh;overflow:hidden}
.sb{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;padding:6px 8px;padding-top:max(6px,env(safe-area-inset-top));background:var(--panel);border-bottom:1px solid var(--line)}
.sbteam{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"name name" "score info";align-items:center;column-gap:8px;padding:4px 8px;border-radius:10px;border-top:5px solid var(--tc);min-width:0}
.sbteam.A{grid-template-columns:1fr auto;grid-template-areas:"name name" "info score"}
.sbteam .tname{grid-area:name;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.95rem}
.sbteam .score{grid-area:score;font-size:3rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.sbteam .info{grid-area:info;display:flex;flex-direction:column;gap:3px;font-size:.78rem}
.sbteam.A .info{align-items:flex-end}
.sbteam.A .tname{text-align:right}
.tf{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;background:var(--panel2);font-weight:800;white-space:nowrap}
.tf b{font-size:1.15rem}
.tf.w4{background:var(--warn);color:#1d1600}
.tf.w5{background:var(--bad);color:#fff}
.tobtn{border:1px solid var(--line);background:var(--panel2);border-radius:6px;padding:3px 8px;font-weight:800;white-space:nowrap;font-size:.78rem;min-height:30px}
.tobtn.zero{opacity:.55}
.sbmid{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:120px}
.period{font-weight:900;font-size:.95rem;color:var(--accent);white-space:nowrap}
.period .cat{font-size:.68rem;font-weight:800;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:0 5px;vertical-align:middle}
.clock{font-size:2.3rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.05;letter-spacing:.02em;border:none;background:none;padding:0}
.clock.run{color:var(--good)}
.clock.zero{color:var(--bad)}
.interval{font-size:.75rem;color:var(--warn);font-weight:700}
.bigp{font-size:2.3rem;font-weight:900;line-height:1.05;font-variant-numeric:tabular-nums}
.nextp{min-height:64px;border-radius:var(--radius);border:2px solid var(--accent);background:transparent;color:var(--accent);font-size:1.15rem;font-weight:900}
.bottombar .np{border:2px solid var(--accent);background:transparent;color:var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;white-space:nowrap}
.bottombar .np small{font-size:.7rem;font-weight:700}

.board{flex:1;display:grid;grid-template-columns:1fr minmax(240px,27%) 1fr;gap:8px;padding:8px;min-height:0}
.tpanel{display:flex;flex-direction:column;gap:6px;min-height:0;background:var(--panel);border-radius:var(--radius);padding:8px;border:1px solid var(--line);border-top:5px solid var(--tc)}
.tpanel .phead{display:flex;align-items:center;gap:6px;font-weight:800}
.tpanel .phead .grow{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.quick.no3{grid-template-columns:repeat(3,1fr)}
.qbtn{min-height:48px;border-radius:10px;border:2px solid var(--line);background:var(--panel2);font-weight:900;font-size:1.15rem}
.qbtn.f{color:var(--bad)}
.qbtn.armed{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);animation:pulse 1s infinite}
@keyframes pulse{50%{filter:brightness(1.25)}}
.armhint{font-size:.85rem;font-weight:800;color:var(--accent);text-align:center}
.pgrid{flex:1;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));grid-auto-rows:minmax(74px,auto);gap:6px;align-content:start;padding-bottom:4px}
.pbtn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;border:2px solid var(--line);background:var(--panel2);padding:4px 2px;line-height:1.1;overflow:hidden}
.pbtn .pno{font-size:1.9rem;font-weight:900;font-variant-numeric:tabular-nums}
.pbtn .pno::before{content:"#";font-size:.55em;opacity:.6;margin-right:1px}
.pbtn .pname{font-size:.68rem;color:var(--muted);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pbtn .pmeta{font-size:.72rem;font-weight:700;display:flex;gap:6px}
.pbtn .fd{letter-spacing:-1px;color:var(--muted)}
.pbtn .fd i{font-style:normal;color:var(--bad)}
.pbtn.on{border-color:var(--tc);box-shadow:inset 0 0 0 1px var(--tc)}
.pbtn.on::after{content:"出場";position:absolute;top:2px;left:4px;font-size:.58rem;font-weight:800;color:var(--good)}
.pbtn.bench{opacity:.42;border-style:dashed}
.pbtn.f4{border-color:var(--warn)}
.pbtn.f4 .pmeta .fl{color:var(--warn)}
.pbtn.out{border-color:var(--bad);background:repeating-linear-gradient(45deg,var(--panel2),var(--panel2) 8px,rgba(255,77,85,.13) 8px,rgba(255,77,85,.13) 16px)}
.pbtn.out::before{content:"退場";position:absolute;top:2px;right:4px;font-size:.6rem;font-weight:900;color:var(--bad)}
.pbtn.unk .pno::before{content:""}
.pbtn.target{animation:pulse 1s infinite;border-color:var(--accent)}
.pbtn:active{transform:scale(.95)}
.pfoot{display:flex;gap:6px}
.pfoot .btn{flex:1;min-height:44px;padding:0 8px;font-size:.9rem}

.center{display:flex;flex-direction:column;gap:8px;min-height:0}
.clockctl{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.startstop{grid-column:1/-1;min-height:64px;border-radius:var(--radius);border:none;font-size:1.3rem;font-weight:900;background:var(--good);color:#04210f}
.startstop.stop{background:var(--bad);color:#fff}
.mini{min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);font-weight:700;font-size:.9rem}
.undo{min-height:56px;border-radius:var(--radius);border:2px solid var(--warn);background:transparent;color:var(--warn);font-weight:900;font-size:1.1rem}
.undo:disabled{opacity:.35}
.histbox{flex:1;min-height:0;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:4px 8px}
.hist{list-style:none;margin:0;padding:0}
.hist li{display:flex;gap:8px;padding:7px 2px;border-bottom:1px solid var(--line);font-size:.9rem;align-items:center}
.hist li:first-child{font-weight:800}
.hist .ht{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8rem}
.hist .hx{flex:1}
.hist .tg{font-size:.68rem;font-weight:900;padding:1px 5px;border-radius:4px;background:var(--tc);color:var(--tink)}
.last{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;font-size:.9rem;min-height:44px}
.last .grow{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.tabs,.bottombar,.subrow{display:none}
.subrow{grid-template-columns:1fr 1fr .8fr;gap:5px}
.subrow .mini{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}
.menubtns{display:grid;grid-template-columns:1fr 1fr;gap:6px}

/* 縦画面（スマホ片手）：チームをタブで切り替え、操作は画面下へ */
@media (orientation:portrait){
  .board{grid-template-columns:1fr;padding:6px;gap:6px}
  .board .center{display:none}
  .tpanel:not(.active){display:none}
  .tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px 6px 0}
  .tabs button{min-height:50px;border-radius:10px;border:2px solid var(--line);background:var(--panel);font-weight:900;font-size:1rem;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;min-width:0}
  .tabs .tn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .tabs button.on{border-color:var(--tc);background:var(--tc);color:var(--tink)}
  .tabs .s{font-variant-numeric:tabular-nums;flex-shrink:0}
  .pgrid{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(70px,auto)}
  .bottombar{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:6px;padding:6px 6px calc(6px + var(--safe-b));background:var(--panel);border-top:1px solid var(--line)}
  .bottombar button{min-height:58px;border-radius:12px;font-weight:900;font-size:1rem}
  .bottombar .ss{border:none;background:var(--good);color:#04210f;font-size:1.15rem}
  .bottombar .ss.stop{background:var(--bad);color:#fff}
  .bottombar .ub{border:2px solid var(--warn);background:transparent;color:var(--warn)}
  .bottombar .mb{border:1px solid var(--line);background:var(--panel2);font-size:.85rem;white-space:nowrap;padding:0 4px;text-align:center}
  .lastwrap{padding:0 6px}
  .sbteam .score{font-size:2.6rem}
  .clock{font-size:2rem}
}
@media (orientation:portrait) and (max-width:360px){
  .pgrid{grid-template-columns:repeat(3,1fr)}
  .sbteam .score{font-size:2.2rem}
}
/* 横画面スマホ（高さが低い） */
@media (orientation:landscape) and (max-height:520px){
  .sb{padding:3px 8px}
  .sbteam{padding:2px 6px;border-top-width:4px}
  .sbteam .score{font-size:2.2rem}
  .clock{font-size:1.7rem}
  .board{padding:5px;gap:5px;grid-template-columns:1fr minmax(200px,25%) 1fr}
  .tpanel{padding:5px;gap:4px}
  .pgrid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));grid-auto-rows:minmax(52px,auto);gap:4px}
  .pbtn .pno{font-size:1.45rem}
  .pbtn .pname{display:none}
  .qbtn{min-height:40px}
  .startstop{min-height:50px}
  .undo{min-height:46px}
  .mini{min-height:38px}
  .pfoot,.tpanel .phead,.lastwrap{display:none}
  .subrow{display:grid!important}
  .menubtns{display:none}
  .center{gap:5px}
  .mini{font-size:.8rem}
}
/* タブレット以上 */
@media (min-width:1000px) and (orientation:landscape){
  .pgrid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-auto-rows:minmax(92px,auto)}
  .pbtn .pno{font-size:2.4rem}
  .sbteam .score{font-size:4rem}
  .clock{font-size:3.2rem}
}

/* ---------- モーダル ---------- */
.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center}
.modal[hidden]{display:none}
@media (min-width:600px),(orientation:landscape){.modal{align-items:center}}
.sheet{background:var(--panel);border:1px solid var(--line);border-radius:18px 18px 0 0;width:100%;max-width:560px;max-height:92dvh;overflow:auto;padding:14px 14px calc(14px + var(--safe-b));border-top:6px solid var(--tc,var(--accent))}
@media (min-width:600px),(orientation:landscape){.sheet{border-radius:18px}}
.sheet h3{font-size:1.15rem;margin-bottom:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sheet .who{font-size:1.6rem;font-weight:900}
.acts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.acts.c2{grid-template-columns:repeat(2,1fr)}
.acts.c4{grid-template-columns:repeat(4,1fr)}
.acts.c6{grid-template-columns:repeat(3,1fr)}
@media (min-width:500px){.acts.c6{grid-template-columns:repeat(6,1fr)}}
.act{min-height:76px;border-radius:14px;border:2px solid var(--line);background:var(--panel2);font-weight:900;font-size:1.35rem;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.act small{font-size:.7rem;font-weight:700;color:var(--muted);margin-top:3px}
.act.pt{border-color:var(--good)}
.act.pt3{border-color:var(--info)}
.act.foul{border-color:var(--bad);color:var(--bad);min-height:64px}
.act.sub{min-height:56px;font-size:.95rem;line-height:1.25;text-align:center}
.act.three{min-height:84px;font-size:1.05rem;gap:2px}
.act.three .lb{font-size:.85rem;font-weight:800}
.act.three small{margin-top:0}
.act.miss{min-height:56px;font-size:1rem;color:var(--muted);border-style:dashed}
.act.st{min-height:52px;font-size:.92rem}
.act.st.long{font-size:.78rem;white-space:nowrap;letter-spacing:-.02em;padding:0 2px}
.act:active{transform:scale(.95)}
.sec{font-size:.78rem;color:var(--muted);margin:10px 0 6px;font-weight:700}
.cancel{width:100%;min-height:50px;margin-top:6px;line-height:1.35;padding:6px;border-radius:12px;border:1px solid var(--line);background:transparent;font-weight:700}
.sublist{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px}
.sublist .pbtn{min-height:66px}
.sublist .pbtn.sel-out{border-color:var(--bad);background:rgba(255,77,85,.18)}
.sublist .pbtn.sel-in{border-color:var(--good);background:rgba(47,211,111,.18)}

/* ---------- トースト ---------- */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(8px + var(--safe-b));width:max-content;z-index:60;display:flex;align-items:center;gap:12px;background:#000c;color:#fff;border:1px solid #fff3;padding:10px 12px 10px 16px;border-radius:12px;font-weight:700;max-width:92vw;box-shadow:0 6px 24px #0008}
.toast[hidden]{display:none}
.toast button{white-space:nowrap;flex-shrink:0;border:1px solid var(--warn);background:transparent;color:var(--warn);border-radius:8px;min-height:40px;padding:0 12px;font-weight:900}
.toast.bad{background:var(--bad)}
/* 縦画面では下の操作バー(UNDO/START)をふさがない位置に出す */
@media (orientation:portrait){.toast{bottom:calc(80px + var(--safe-b))}}

/* ---------- 表（ボックススコア・一覧） ---------- */
.tblwrap{overflow-x:auto}
table.box{border-collapse:collapse;width:100%;font-size:.88rem;font-variant-numeric:tabular-nums}
table.box th,table.box td{padding:6px 5px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}
table.box th{color:var(--muted);font-size:.75rem;font-weight:700}
table.box td.l,table.box th.l{text-align:left}
table.box tr.tot td{font-weight:900;border-top:2px solid var(--line)}
table.box td.pts{font-weight:900;font-size:1rem}
.final{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;text-align:center}
.final .s{font-size:3rem;font-weight:900;font-variant-numeric:tabular-nums}
.final .n{font-weight:800}
.badge{display:inline-block;font-size:.75rem;font-weight:900;padding:2px 8px;border-radius:999px}
.badge.win{background:var(--good);color:#04210f}
.badge.lose{background:var(--panel2);color:var(--muted)}
.badge.draw{background:var(--warn);color:#1d1600}
.badge.now{background:var(--accent);color:var(--accent-ink)}
.gitem{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-bottom:8px}
.gitem .gm{flex:1;min-width:0}
.gitem .gm div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gitem .gs{font-size:1.4rem;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}
.chk{list-style:none;margin:0;padding:0}
.chk li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);line-height:1.5}
.chk .ic{font-weight:900;min-width:2.6em}
.sheet .chk .ic{min-width:1.4em}
.chk .e .ic{color:var(--bad)} .chk .w .ic{color:var(--warn)} .chk .o .ic{color:var(--good)}
.chk .hint{font-size:.82rem;color:var(--muted)}
.evrow{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.evrow .grow{flex:1}
.evrow button{min-height:40px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:var(--panel2);font-weight:700;font-size:.85rem}
.evrow.edited .grow::after{content:" (修正済)";color:var(--warn);font-size:.75rem}

/* ---------- スコアシート（A4・印刷用オリジナル様式） ---------- */
.sheetwrap{overflow:auto;padding:12px;background:#5b6270}
.ss-page{width:794px;min-height:1123px;margin:0 auto;background:#fff;color:#111;padding:26px 28px;font-size:10.5px;line-height:1.3;font-family:"Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;box-shadow:0 4px 20px #0006}
.ss-page *{border-color:#222}
.ss-title{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:3px solid #111;padding-bottom:4px;margin-bottom:6px}
.ss-title h1{font-size:18px;letter-spacing:.08em}
.ss-title .sub{font-size:10px;color:#444}
.ss-meta{display:grid;grid-template-columns:2.2fr 1fr 1.6fr 1fr 1fr;border:1px solid #222;margin-bottom:6px}
.ss-meta div{padding:3px 5px;border-right:1px solid #222;min-height:30px}
.ss-meta div:last-child{border-right:none}
.ss-meta b{display:block;font-size:8px;color:#555;font-weight:600}
.ss-body{display:grid;grid-template-columns:1fr 212px;gap:8px}
.ss-team{border:1.5px solid #111;margin-bottom:8px}
.ss-thead{display:flex;align-items:center;gap:6px;padding:3px 6px;background:#f0f0f0;border-bottom:1px solid #111;font-weight:800;font-size:12px}
.ss-thead .ab{font-size:9px;border:1px solid #111;padding:0 4px;border-radius:3px;background:#fff}
.ss-thead .sw{width:12px;height:12px;border:1px solid #111;background:var(--tc)}
.ss-thead .tot{margin-left:auto;font-size:14px}
.ss-boxes{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #111}
.ss-boxes > div{padding:3px 6px}
.ss-boxes > div:first-child{border-right:1px solid #111}
.ss-boxes .lbl{font-size:8.5px;font-weight:700;color:#333;margin-right:4px}
.ss-boxes .ln{display:flex;align-items:center;gap:2px;margin:1px 0;flex-wrap:wrap}
.ss-boxes .pl{display:inline-block;width:22px;font-size:8.5px;font-weight:700}
.bx{display:inline-flex;align-items:center;justify-content:center;width:16px;height:14px;border:1px solid #333;font-size:8px;font-weight:700}
.bx.x{background:#222;color:#fff}
.bx.lim{border-width:2px}
.bx.wide{width:auto;min-width:30px;padding:0 2px}
table.ss-pl{width:100%;border-collapse:collapse;font-size:9.5px;font-variant-numeric:tabular-nums}
table.ss-pl th,table.ss-pl td{border:1px solid #333;padding:1px 2px;text-align:center;height:15px}
table.ss-pl th{font-size:7.5px;background:#f6f6f6;font-weight:700}
table.ss-pl td.nm{text-align:left;max-width:96px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
table.ss-pl td.no{font-weight:800;font-size:10.5px}
table.ss-pl td.f{width:20px;font-size:8px;font-weight:700}
table.ss-pl td.fx{background:#ddd}
table.ss-pl td.q{width:13px;font-size:8px}
table.ss-pl td.pt{font-weight:900;font-size:10.5px}
/* 時計を使わない試合は「出場時間」の列を出さない */
.ss-team.noclock table.ss-pl tr > :last-child{display:none}
table.ss-pl tr.tot td{font-weight:900;border-top:2px solid #111}
.ss-run{border:1.5px solid #111}
.ss-run h4{margin:0;padding:3px 6px;background:#f0f0f0;border-bottom:1px solid #111;font-size:10px;text-align:center}
.ss-run .cols{display:flex}
.ss-run table{border-collapse:collapse;flex:1;font-size:8.5px;font-variant-numeric:tabular-nums}
.ss-run td{border:1px solid #bbb;height:12.6px;width:17px;text-align:center;padding:0}
.ss-run td.n{background:#f4f4f4;color:#666;font-size:7.5px}
.ss-run td.hit{font-weight:800;color:#000}
.ss-run td.p3{border:1.5px solid #000;border-radius:50%}
.ss-run td.ft::before{content:"•";margin-right:1px}
.ss-run td.skip{background:linear-gradient(to top right,transparent 46%,#999 48%,#999 52%,transparent 54%)}
.ss-run td.pe{border-bottom:2.5px solid #d40000}
.ss-run .hd td{font-weight:800;background:#eee;font-size:7.5px;border-color:#333}
.ss-foot{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;margin-top:2px}
table.ss-q{width:100%;border-collapse:collapse;font-size:10px;font-variant-numeric:tabular-nums}
table.ss-q th,table.ss-q td{border:1px solid #333;padding:3px;text-align:center}
table.ss-q th{background:#f0f0f0;font-size:8.5px}
table.ss-q td.big{font-size:14px;font-weight:900}
.ss-result{border:1.5px solid #111;padding:6px;font-size:11px}
.ss-result .w{font-size:14px;font-weight:900;margin:2px 0 6px}
.ss-sign{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;margin-top:6px}
.ss-sign div{border-bottom:1px solid #333;padding-top:12px;font-size:8.5px;color:#444}
.ss-legend{font-size:8px;color:#444;margin-top:4px;line-height:1.5}
.ss-mark{font-size:8px;color:#666;text-align:right;margin-top:4px}

@media print{
  @page{size:A4 portrait;margin:8mm}
  html,body{background:#fff!important;min-height:0!important;height:auto!important}
  #app{padding:0!important}
  .ss-page{break-after:avoid;page-break-after:avoid}
  .noprint,.topbar,.toast,.modal{display:none!important}
  .sheetwrap{padding:0;background:#fff;overflow:visible}
  .ss-page{box-shadow:none;width:100%;min-height:0;padding:0;margin:0;zoom:.92!important}
  .page{padding:0;max-width:none}
}

/* チェックボックスと説明文を横並びに */
label.row{flex-wrap:nowrap;line-height:1.45}
label.row input[type=checkbox]{flex-shrink:0}

/* iPhoneの画面のふち（時計の欄・ノッチ）をよける */
#app > .page:first-child{padding-top:max(16px,env(safe-area-inset-top))}
#app{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}

/* iPad縦向き：画面が大きいので文字とボタンを大きく */
@media (orientation:portrait) and (min-width:760px){
  html{font-size:21px}
  .page{max-width:980px}
  .sheet{max-width:760px}
  .bottombar button,.tabs button{min-height:76px}
  .sbteam .score{font-size:3.6rem}
  .bigp,.clock{font-size:3rem}
  .board{padding:12px}
  .quick .qbtn{min-height:84px;font-size:1.7rem;border-radius:16px}
  .pgrid{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(150px,auto);gap:12px}
  .pbtn{border-radius:18px}
  .pbtn .pno{font-size:3.4rem}
  .pbtn .pname{font-size:1.05rem}
  .pbtn .pmeta{font-size:1.1rem}
  .pbtn.on::after,.pbtn.out::before{font-size:.85rem}
  .tpanel .phead{font-size:1.3rem}
  .pfoot .btn{min-height:70px;font-size:1.3rem}
}

/* iPhoneの日付・時刻の入力欄が枠からはみ出さないように */
.field{min-width:0}
input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%;display:block;text-align:left}

/* 設定画面の（ ）書きの調整 */
.act small.paren{font-size:.82rem;line-height:1.3;margin-top:4px}
.btn.two small.one{font-size:.66rem;white-space:nowrap;letter-spacing:-.03em}
.card h2 .h2sub{font-size:.8rem;font-weight:700;color:var(--muted)}

/* 退場した選手がコートに残っているときの警告 */
.foulbar{display:flex;align-items:center;gap:8px;margin:6px 6px 0;padding:8px 10px;border-radius:10px;background:rgba(255,77,85,.16);border:2px solid var(--bad);color:var(--text);font-weight:800;font-size:.9rem}
.foulbar .grow{flex:1;min-width:0}
.foulbar button{flex-shrink:0;white-space:nowrap;min-height:40px;padding:0 12px;border-radius:8px;border:none;background:var(--bad);color:#fff;font-weight:900}
.foulout{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:rgba(255,77,85,.16);border:2px solid var(--bad);font-weight:800;line-height:1.5}
.sublist .pbtn[disabled]{opacity:.35}

@media (orientation:landscape) and (max-height:520px){
  .foulbar{margin:3px 5px 0;padding:3px 8px;font-size:.8rem}
  .foulbar button{min-height:30px;padding:0 10px}
}
