/* LEVEL UP BASEBALL CAMP 접수 — 모바일 우선. 테마와 섞이지 않게 전부 .mlbcamp 아래에 둔다. */
.mlbcamp { --mlb-ink:#14213d; --mlb-muted:#5b6478; --mlb-line:#d9dde5; --mlb-bg:#fff; --mlb-accent:#0b3d91; --mlb-err:#b3261e; --mlb-ok:#1b7f4a; --mlb-warn:#b26a00;
  max-width: 680px; margin: 0 auto; color: var(--mlb-ink); font-size: 16px; line-height: 1.55; -webkit-text-size-adjust: 100%; }
.mlbcamp * { box-sizing: border-box; }
.mlbcamp .mlb-card { background: var(--mlb-bg); border: 1px solid var(--mlb-line); border-radius: 12px; padding: 18px 16px; margin: 0 0 16px; }
.mlbcamp fieldset.mlb-card { min-width: 0; }
.mlbcamp legend, .mlbcamp .mlb-legend { font-weight: 700; font-size: 17px; padding: 0 6px; margin-bottom: 6px; }
.mlbcamp .mlb-field { margin: 14px 0 0; }
.mlbcamp .mlb-field label, .mlbcamp .mlb-label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 15px; }
.mlbcamp em { color: var(--mlb-err); font-style: normal; }
.mlbcamp input[type=text], .mlbcamp input[type=tel], .mlbcamp input[type=email], .mlbcamp input[type=number], .mlbcamp input[type=date], .mlbcamp select, .mlbcamp textarea {
  width: 100%; font: inherit; font-size: 16px; padding: 12px 12px; border: 1px solid var(--mlb-line); border-radius: 8px; background: #fff; color: var(--mlb-ink); min-height: 46px; }
.mlbcamp textarea { resize: vertical; }
.mlbcamp input:focus, .mlbcamp select:focus, .mlbcamp textarea:focus { outline: 2px solid var(--mlb-accent); outline-offset: 1px; border-color: var(--mlb-accent); }
.mlbcamp .has-err input, .mlbcamp .has-err select, .mlbcamp .has-err textarea { border-color: var(--mlb-err); }
.mlbcamp .mlb-err { color: var(--mlb-err); font-size: 14px; margin: 6px 0 0; }
.mlbcamp .mlb-help { color: var(--mlb-muted); font-size: 13.5px; margin: 8px 0 0; }
.mlbcamp .mlb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mlbcamp .mlb-row-3 { grid-template-columns: 1fr 1fr 1fr; }
.mlbcamp .mlb-row .mlb-field { margin-top: 14px; }
.mlbcamp .mlb-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.mlbcamp .mlb-chip { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; border: 1px solid var(--mlb-line); border-radius: 999px; cursor: pointer; min-height: 44px; font-weight: 500; }
.mlbcamp .mlb-chip input { margin: 0; }
.mlbcamp .mlb-pos-badge { font-size: 11px; font-weight: 700; padding: 1px 6px; border-radius: 999px; background: #fff4e0; color: var(--mlb-warn); margin-left: 2px; }
.mlbcamp .mlb-chip:has(input:checked) { border-color: var(--mlb-accent); background: #eef3fb; color: var(--mlb-accent); }
.mlbcamp .mlb-cohort { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border: 1px solid var(--mlb-line); border-radius: 10px; margin: 10px 0 0; cursor: pointer; }
.mlbcamp .mlb-cohort:has(input:checked) { border-color: var(--mlb-accent); background: #eef3fb; }
.mlbcamp .mlb-cohort.is-disabled { opacity: .6; cursor: not-allowed; }
.mlbcamp .mlb-cohort input { margin-top: 4px; }
.mlbcamp .mlb-cohort-body { display: flex; flex-direction: column; gap: 3px; }
.mlbcamp .mlb-cohort-meta { color: var(--mlb-muted); font-size: 14px; }
.mlbcamp .mlb-badge { display: inline-block; align-self: flex-start; font-size: 12.5px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: #eef0f4; color: var(--mlb-muted); }
.mlbcamp .mlb-badge.is-open, .mlbcamp .mlb-badge.is-green { background: #e6f4ec; color: var(--mlb-ok); }
.mlbcamp .mlb-badge.is-wait, .mlbcamp .mlb-badge.is-amber { background: #fff4e0; color: var(--mlb-warn); }
.mlbcamp .mlb-badge.is-off, .mlbcamp .mlb-badge.is-gray, .mlbcamp .mlb-badge.is-slate { background: #eef0f4; color: var(--mlb-muted); }
.mlbcamp .mlb-badge.is-blue { background: #e7eefb; color: var(--mlb-accent); }
.mlbcamp .mlb-badge.is-red { background: #fbe9e7; color: var(--mlb-err); }
.mlbcamp .mlb-detail { margin-top: 10px; }
.mlbcamp .mlb-consent { display: flex; gap: 10px; align-items: flex-start; padding: 12px 0; border-top: 1px solid var(--mlb-line); cursor: pointer; }
.mlbcamp .mlb-consent:first-of-type { border-top: 0; }
.mlbcamp .mlb-consent input[type=checkbox] { width: 22px; height: 22px; margin-top: 2px; flex: none; }
.mlbcamp .mlb-consent small { color: var(--mlb-muted); display: block; margin-top: 2px; }
.mlbcamp .mlb-btn { display: inline-block; width: 100%; font: inherit; font-size: 17px; font-weight: 700; padding: 14px 18px; border: 0; border-radius: 10px; background: var(--mlb-accent); color: #fff; cursor: pointer; text-align: center; text-decoration: none; min-height: 52px; }
.mlbcamp .mlb-btn[disabled] { opacity: .5; cursor: not-allowed; }
.mlbcamp .mlb-btn-secondary { background: #fff; color: var(--mlb-accent); border: 2px solid var(--mlb-accent); }
.mlbcamp .mlb-submit { margin: 8px 0 24px; }
.mlbcamp .mlb-notice { border: 1px solid var(--mlb-line); border-left: 4px solid var(--mlb-accent); border-radius: 8px; padding: 12px 14px; margin: 0 0 16px; background: #f7f9fc; }
.mlbcamp .mlb-notice-error { border-left-color: var(--mlb-err); background: #fff6f5; }
.mlbcamp .mlb-notice p { margin: 4px 0 0; }
.mlbcamp .mlb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mlbcamp .mlb-dl { display: grid; grid-template-columns: 6.5em 1fr; gap: 8px 12px; margin: 14px 0; }
.mlbcamp .mlb-dl dt { color: var(--mlb-muted); font-size: 14px; }
.mlbcamp .mlb-dl dd { margin: 0; }
.mlbcamp .mlb-no { font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: .02em; font-size: 18px; }
.mlbcamp .mlb-done-title { font-size: 22px; margin: 0 0 8px; }
.mlbcamp .mlb-done-desc { margin: 0 0 8px; }
.mlbcamp .mlb-bank { margin-top: 16px; padding: 14px; border-radius: 10px; background: #f3f6fb; }
.mlbcamp .mlb-bank h3 { margin: 0 0 6px; font-size: 16px; }
/* JS 가 상황에 따라 보이고 숨긴다. JS 가 없으면 전부 보인다 — 서버가 어차피 검증한다. */
.mlbcamp.js .mlb-guardian.is-hidden, .mlbcamp.js .mlb-only-minor-block.is-hidden, .mlbcamp.js .mlb-detail.is-hidden, .mlbcamp.js .mlb-receipt-id.is-hidden,
.mlbcamp.js .mlb-only-minor.is-hidden, .mlbcamp.js .mlb-req-adult.is-hidden, .mlbcamp.js .mlb-req-aff.is-hidden { display: none; }
@media (min-width: 640px) { .mlbcamp .mlb-card { padding: 22px 24px; } .mlbcamp .mlb-btn { width: auto; min-width: 240px; } }
/* 참가비에 포함되지 않는 비용 (2026-10-01) — 참가비 금액이 보이는 자리마다 붙인다 */
.mlbcamp .mlb-fee-ex { color: var(--mlb-err); font-weight: 700; white-space: nowrap; }
.mlbcamp .mlb-feescope { border: 1px solid #f3c9c4; background: #fff6f5; border-radius: 10px; padding: 12px 14px; margin: 14px 0 0; font-size: 14.5px; }
.mlbcamp .mlb-feescope-h { margin: 0 0 6px; font-weight: 800; color: var(--mlb-err); }
.mlbcamp .mlb-feescope-h span { font-weight: 700; }
.mlbcamp .mlb-feescope ul { margin: 0; padding: 0; list-style: none; }
.mlbcamp .mlb-feescope li { position: relative; padding-left: 18px; margin: 2px 0; font-weight: 700; }
.mlbcamp .mlb-feescope li::before { content: "✕"; position: absolute; left: 0; color: var(--mlb-err); }
.mlbcamp .mlb-feescope-hotel, .mlbcamp .mlb-feescope-in { margin: 8px 0 0; color: var(--mlb-muted); font-size: 13.5px; }
.mlbcamp .mlb-feescope-in b { color: var(--mlb-ink); }
.mlbcamp .mlb-fee-remind { color: var(--mlb-err); }
