:root{
  --red:#c8102e;
  --red-dark:#8f0a20;
  --ink:#14161a;
  --muted:#666e79;
  --line:#e3e6ea;
  --bg:#f6f7f9;
  --card:#ffffff;
  --radius:14px;
}
@media (prefers-color-scheme: dark){
  :root{
    --ink:#eef1f5;
    --muted:#9aa4b0;
    --line:#2a2f37;
    --bg:#101317;
    --card:#171b21;
  }
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  font-size:16px;
  line-height:1.7;
  -webkit-text-size-adjust:100%;
  padding-bottom:calc(96px + env(safe-area-inset-bottom));
}
.wrap{max-width:640px;margin:0 auto;padding:0 16px}

/* ヘッダー */
.topbar{
  background:linear-gradient(135deg,var(--red) 0%,var(--red-dark) 100%);
  color:#fff;padding:13px 0 12px;margin-bottom:12px;
}
.topbar h1{font-size:19px;margin:0;letter-spacing:.02em;display:inline-block}
.topbar .sub{margin:2px 0 0;font-size:12px;opacity:.85}
.crest{
  display:inline-block;width:22px;height:22px;vertical-align:-4px;margin-right:7px;
  background:#fff;
  clip-path:polygon(50% 0,100% 22%,100% 66%,50% 100%,0 66%,0 22%);
  opacity:.95;
}

/* パネル */
.panel{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:12px;margin-bottom:12px;
}
.label{font-size:11px;font-weight:700;color:var(--muted);margin:0 0 8px;letter-spacing:.06em}

/* フォーメーションのチップ */
.chips{display:flex;gap:7px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -12px;padding:0 12px 2px}
.chips::-webkit-scrollbar{display:none}
.chip{
  appearance:none;border:1px solid var(--line);background:transparent;color:var(--ink);
  border-radius:999px;padding:8px 14px;font-size:14.5px;font-weight:700;cursor:pointer;
  font-family:inherit;white-space:nowrap;flex:0 0 auto;touch-action:manipulation;
}
.chip[aria-pressed="true"]{background:var(--red);border-color:var(--red);color:#fff}

/* ピッチ */
.pitch{width:100%}
.pitch svg{width:100%;height:auto;display:block;border-radius:10px}
.hint{font-size:12px;color:var(--muted);text-align:center;margin:10px 0 0}

/* 入力 */
.input{
  width:100%;padding:12px;font-size:16px;font-family:inherit;
  border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);
}

/* ボタン */
.btn{
  appearance:none;border:1px solid var(--line);background:var(--card);color:var(--ink);
  border-radius:12px;padding:15px 10px;font-size:16px;font-weight:700;cursor:pointer;
  font-family:inherit;touch-action:manipulation;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--red);border-color:var(--red);color:#fff}

/* 画面の下に貼りつく操作バー（スマホで指が届く位置） */
.bottombar{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  background:color-mix(in srgb, var(--card) 88%, transparent);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
}
.bottombar-in{max-width:640px;margin:0 auto;display:flex;gap:8px}
.bottombar .btn-primary{flex:1 1 auto}
.bottombar .btn-x{flex:0 0 34%}

/* ピッチの下の小さな操作 */
.mini{display:flex;gap:6px;margin-top:8px}
.matchinfo{font-size:12px;color:var(--muted);text-align:center;margin:8px 0 0}
.matchinfo:empty{display:none}
#scorebar{border-color:var(--red)}
.scoretext{margin:0 0 10px;font-size:14px;font-weight:700;line-height:1.6}
#scorebar .btn-primary{width:100%}
.mini-btn{
  flex:1;appearance:none;border:1px solid var(--line);background:transparent;color:var(--muted);
  border-radius:999px;padding:9px 4px;font-size:12.5px;font-weight:600;
  font-family:inherit;cursor:pointer;touch-action:manipulation;white-space:nowrap;
}

.note{min-height:22px;text-align:center;font-size:13px;color:var(--red);font-weight:600;margin:0 0 10px}
.about p{font-size:13px;color:var(--muted);margin:0 0 6px}
.about .by a{color:var(--red);text-decoration:none;font-weight:600}

/* 選手選択シート */
.sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet[hidden]{display:none}
.sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.sheet-body{
  position:relative;width:100%;max-width:640px;max-height:82vh;display:flex;flex-direction:column;
  background:var(--card);border-radius:18px 18px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom));
}
.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.sheet-head h2{font-size:16px;margin:0}
.x{appearance:none;border:0;background:transparent;color:var(--muted);font-size:26px;line-height:1;cursor:pointer;padding:0 6px}
.sheet-list{overflow-y:auto;-webkit-overflow-scrolling:touch;margin:0 -14px;padding:0 14px}
.grp{font-size:11px;font-weight:700;color:var(--muted);margin:12px 0 6px;letter-spacing:.08em}
.pl{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  appearance:none;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);
  padding:11px 2px;font-size:16px;font-family:inherit;cursor:pointer;
}
.pl .fl{flex:0 0 auto;font-size:17px}
.pl .n{
  flex:0 0 34px;height:26px;line-height:26px;text-align:center;border-radius:6px;
  background:var(--bg);color:var(--muted);font-size:13px;font-weight:700;
}
.pl.used{opacity:.35}
.pl.used .tag{margin-left:auto;font-size:11px;color:var(--muted)}
.pl-remove{color:var(--red);font-weight:700}
.sheet-foot{display:flex;gap:8px;padding-top:12px;border-top:1px solid var(--line);margin-top:6px}
.sheet-foot .input{flex:1}
.sheet-foot .btn{flex:0 0 auto}

/* 生成した画像を表示する画面 */
.imgview{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px}
.imgview-bg{position:absolute;inset:0;background:rgba(0,0,0,.72)}
.imgview-body{position:relative;max-width:420px;width:100%;text-align:center}
.imgview-body img{width:100%;height:auto;border-radius:10px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.imgview-body p{color:#fff;font-size:13px;margin:10px 0}
.imgview-body .btn{width:100%;flex:none}
