/* SPG KOREA CUP registration (/bonspiel) and /admin/bonspiel */
.bsp-hero-meta { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:12px; font-weight:600; }
.bsp-highlights { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0 0 28px; }
.bsp-highlights .card { text-align:center; }
.bsp-highlights strong { display:block; font-size:1.6rem; line-height:1.2; color:var(--maple, #c8102e); }
.bsp-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:28px; align-items:start; }
.bsp-layout > * { min-width:0; }
.bsp-list { padding-left:1.1em; margin:0 0 12px; }
.bsp-list li { margin:4px 0; }
.bsp-phase { border-left:4px solid var(--maple, #c8102e); padding:12px 14px; background:rgba(255,255,255,.75); border-radius:10px; margin:0 0 18px; }
.bsp-phases li.is-current { font-weight:700; }
.bsp-form .field { margin-bottom:14px; }
.bsp-form label { display:block; font-weight:600; margin-bottom:4px; }
.bsp-form input[type=text], .bsp-form input[type=email], .bsp-form input[type=tel], .bsp-form textarea { width:100%; max-width:100%; box-sizing:border-box; padding:10px 12px; border:1px solid #c9d2de; border-radius:10px; font:inherit; }
.bsp-form textarea { min-height:90px; }
.bsp-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.bsp-radio { display:flex; gap:18px; flex-wrap:wrap; }
.bsp-radio label, .bsp-check label { display:inline-flex; gap:8px; align-items:flex-start; font-weight:400; }
.bsp-hp { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.bsp-req { color:var(--maple, #c8102e); }
.bsp-done { border:2px solid #2e7d32; border-radius:14px; padding:18px; background:#f3faf3; }
.bsp-done h2 { margin-top:0; }
.bsp-table-wrap { overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch; }
.bsp-table { width:100%; border-collapse:collapse; font-size:.92rem; }
.bsp-table th, .bsp-table td { text-align:left; padding:8px; border-bottom:1px solid #dde3ea; vertical-align:top; }
.bsp-status { display:inline-block; padding:2px 8px; border-radius:999px; font-size:.8rem; font-weight:700; white-space:nowrap; }
.bsp-status-pending_payment { background:#fff3cd; color:#7a5a00; }
.bsp-status-confirmed { background:#d9f2dc; color:#1e5e24; }
.bsp-status-cancelled { background:#eee; color:#555; }
.bsp-actions { display:flex; gap:6px; flex-wrap:wrap; }
.bsp-actions .btn { padding:6px 12px; font-size:.85rem; }
.bsp-summary { display:flex; gap:14px; flex-wrap:wrap; margin:8px 0 14px; font-weight:600; }
@media (max-width: 900px) { .bsp-layout { grid-template-columns:1fr; } }
@media (max-width: 600px) {
  .bsp-highlights, .bsp-row { grid-template-columns:1fr; }
  .bsp-table thead { display:none; }
  .bsp-table, .bsp-table tbody, .bsp-table tr, .bsp-table td { display:block; width:100%; box-sizing:border-box; }
  .bsp-table tr { border:1px solid #dde3ea; border-radius:10px; margin-bottom:10px; padding:6px; }
  .bsp-table td { border:0; padding:4px 6px; }
  .bsp-table td[data-label]::before { content:attr(data-label) ": "; font-weight:700; }
}
.bsp-form h3 { margin:18px 0 8px; }
.bsp-player { display:grid; grid-template-columns:70px minmax(0,1fr) auto; gap:8px; align-items:center; margin-bottom:10px; }
.bsp-player > label:first-child { font-weight:600; }
.bsp-contact-pick { display:inline-flex; gap:6px; align-items:center; font-size:.9rem; white-space:nowrap; }
.bsp-privacy { background:#f4f7fb; border-radius:10px; padding:10px 12px; margin-bottom:10px; }
.bsp-privacy p { margin:0; }
.bsp-sender { width:100%; font-size:.85rem; margin-bottom:4px; }
.bsp-form .bsp-check label { display:flex; gap:10px; align-items:flex-start; text-align:left; }
.bsp-form input[type=checkbox], .bsp-form input[type=radio] { width:auto !important; min-width:0; flex:0 0 auto; margin:3px 0 0; padding:0; height:auto; }
.bsp-form .bsp-check label > span { flex:1 1 auto; }
.bsp-total { text-align:center; font-weight:800; font-size:1.25rem; margin:-12px 0 24px; color:var(--navy, #0b1f3a); }

.bsp-waitnote { border: 2px solid #C8102E; background: #fff4f5; border-radius: 10px; padding: 12px 16px; margin: 0 0 18px; }
.bsp-waitnote p { margin: .3em 0; }
.bsp-status-waitlisted { background: #fff1d6; color: #7a4b00; }

.bsp-media-help { margin: 8px 0 0; }
.bsp-media { display: inline-block; padding: 2px 8px; border-radius: 999px; font-weight: 700; font-size: .85em; }
.bsp-media-yes { background: #e3f6e8; color: #17602d; }
.bsp-media-no { background: #f1f1f1; color: #555; }
.bsp-tl-banner { background:#0b1f3a; color:#fff; border-radius:14px; padding:14px 16px; margin:0 0 18px; box-shadow:0 6px 20px rgba(0,0,0,.18); border-left:8px solid var(--maple, #c8102e); }
.bsp-now { margin:0 0 8px; font-size:1.3rem; line-height:1.25; font-weight:800; color:#fff; }
.bsp-now-label { display:inline-block; background:var(--maple, #c8102e); color:#fff; padding:2px 10px; border-radius:6px; margin-right:4px; letter-spacing:.02em; }
.bsp-timeline { list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; font-size:1.02rem; line-height:1.3; }
.bsp-timeline li { flex:1 1 210px; padding:8px 12px; border:2px solid rgba(255,255,255,.35); border-radius:10px; color:#e6edf7; }
.bsp-timeline li .bsp-tl-date { margin-right:4px; font-size:1.15rem; font-weight:800; color:#fff; }
.bsp-now-sub { margin:-4px 0 10px; font-size:1.02rem; font-weight:700; color:#ffd23f; }
.bsp-tl-deadline { margin:10px 0 0; font-size:1.05rem; font-weight:800; color:#fff; }
.bsp-timeline li.is-current { border-color:#ffd23f; background:#ffd23f; color:#0b1f3a; font-weight:700; }
.bsp-timeline li.is-current .bsp-tl-date { color:#0b1f3a; }
.bsp-entry-no { font-size:1.4rem; margin:0 0 8px; }
.bsp-entry-no strong { color:var(--maple, #c8102e); font-size:1.8rem; }
.bsp-table td.bsp-no { font-weight:800; font-size:1.15rem; white-space:nowrap; }
