:root {
  --red: #a33; --red-bg: #fcebeb; --red-tx: #501313;
  --blue: #185fa5; --blue-bg: #e6f1fb; --blue-tx: #042c53;
  --line: #d9d9d9; --muted: #666; --ok: #1d7a52; --warn: #9a6700; --danger: #b3261e;
}
* { box-sizing: border-box; }
body { font-family: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;
  margin: 0; color: #1b1b1b; background: #f4f4f3; -webkit-text-size-adjust: 100%; }
.wrap { max-width: 460px; margin: 0 auto; padding: 12px; }
.card { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
.row { display: flex; gap: 8px; }
.muted { color: var(--muted); font-size: 13px; }
h1 { font-size: 18px; margin: 6px 0 12px; }
button { font: inherit; padding: 8px 12px; border: 1px solid #bbb; background: #fff; border-radius: 8px; cursor: pointer; }
button:active { transform: scale(0.98); }
button.primary { border-color: var(--blue); color: var(--blue); }
button.ok { border-color: var(--ok); color: var(--ok); }
button.danger { border-color: var(--danger); color: var(--danger); }
button.sel { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
input, select { font: inherit; padding: 8px; border: 1px solid #bbb; border-radius: 8px; width: 100%; }
.score-cards { display: flex; align-items: stretch; gap: 0; }
.team { flex: 1; text-align: center; border: 2px solid; border-radius: 12px; padding: 8px; cursor: pointer; user-select: none; }
.team.red { background: var(--red-bg); border-color: var(--red-bg); }
.team.blue { background: var(--blue-bg); border-color: var(--blue-bg); }
.team.serving.red { border-color: var(--red); }
.team.serving.blue { border-color: var(--blue); }
.team .label { font-size: 12px; }
.team .num { font-size: 40px; font-weight: 600; line-height: 1.05; }
.team .pl { min-height: 22px; font-size: 13px; }
.tag { font-size: 10px; padding: 1px 6px; border-radius: 8px; margin-left: 4px; }
.tag.serve { color: #fff; }
.net { border-left: 2px dashed #bbb; margin: 4px 8px; }
.banner { text-align: center; border-radius: 8px; padding: 7px; font-size: 13px; font-weight: 600; margin: 8px 0; }
.banner.warn { background: #fdf3df; color: var(--warn); }
.banner.info { background: #e6f1fb; color: var(--blue); }
.banner.ok { background: #e7f4ee; color: var(--ok); }
.sheet { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 8px; }
.sheet table { border-collapse: collapse; }
.sheet td { min-width: 20px; height: 20px; text-align: center; font-size: 11px; border: 0.5px solid #ccc; }
.sheet .scroll { overflow-x: auto; min-width: 0; }
.sheet .names td { border: 0.5px solid transparent; padding: 0 8px 0 2px; white-space: nowrap; text-align: left; }
.courts { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.badge { font-size: 11px; padding: 2px 8px; border-radius: 10px; }
.badge.live { background: #e7f4ee; color: var(--ok); }
.badge.pre { background: #fdf3df; color: var(--warn); }
.badge.done { background: #eee; color: var(--muted); }
a { color: var(--blue); }
