@charset "UTF-8";
:root {
  /* 브랜드 색상 */
  --color-primary:       #1B5E20;
  --color-primary-hover: #0D3B12;
  --color-primary-light: #f0fdf4;
  --color-primary-mid:   #4caf74;
  --color-secondary:     #475569;
  --color-success:       #059669;
  --color-danger:        #e11d48;
  --color-warning:       #d97706;
  --color-info:          #0284c7;

  /* 파크골프 추가 색상 */
  --color-earth:         #8b6914;
  --color-earth-light:   #fdf3dc;
  --color-sky:           #0077b6;
  --color-sky-light:     #e0f4fd;

  /* 배경 */
  --bg:                  #f8fafc;
  --bg-white:            #ffffff;
  --bg-card:             #ffffff;
  --bg-muted:            #f1f5f9;

  /* 텍스트 */
  --text:                #666;
  --text-muted:          #64748b;
  --text-light:          #94a3b8;

  /* 테두리 */
  --border:              #e2e8f0;
  --border-dark:         #cbd5e1;

  /* 그림자 */
  --shadow-sm:           0 1px 3px rgba(0,0,0,.07);
  --shadow-md:           0 4px 12px rgba(0,0,0,.08);
  --shadow-lg:           0 8px 24px rgba(0,0,0,.12);

  /* 반경 */
  --radius:              4px;
  --radius-lg:           8px;
  --radius-xl:           12px;

  /* 기타 */
  --transition:          0.2s ease-in-out;
  --font:                'SCoreDream', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --input-height:        42px;
  --notice-h:            48px;
  --header-h:            78px;

  /* FAQ/브랜드 별칭 */
  --green-dark:          var(--color-primary);
  --green-main:          var(--color-primary);
  --green-light:         #4caf74;
  --green-pale:          var(--color-primary-light);
  --gold:                #c9a84c;
  --gold-light:          #f0d98a;
  --text-soft:           var(--text-light);

  /* ── 스코어 입력 모달 전용 토큰 ── */
  --sc-bg:               #f8fafc;
  --sc-surface:          #ffffff;
  --sc-border:           #e2e8f0;
  --sc-text:             #1e293b;
  --sc-muted:            #64748b;
  --sc-header-bg:        linear-gradient(135deg,#0a1f0f 0%,#1B5E20 60%,#166534 100%);
  --sc-accent:           #1B5E20;
  --sc-accent-lt:        #dcfce7;
  --sc-btn-bg:           #1e293b;
  --sc-btn-txt:          #ffffff;
  --sc-minus-bg:         #f1f5f9;
  --sc-minus-txt:        #374151;
  --sc-card-bg:          #ffffff;
  --sc-val-ghost:        #d1d5db;
  --sc-pen-border:       #94a3b8;
  --sc-sep:              #e2e8f0;
  --sc-step-bg:          #f8fafc;
  --sc-footer-bg:        #ffffff;
  --sc-sel-ring:         #1B5E20;
  --sc-sel-bg:           #f0fdf4;
  --sc-tag-bg:           #f1f5f9;
  --sc-tag-txt:          #475569;
  --sc-tag-sel-bg:       #1B5E20;
  --sc-tag-sel:          #ffffff;
  --sc-shadow:           0 2px 8px rgba(0,0,0,.06);
  --sc-radius:           14px;
  --sc-card-r:           16px;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   2. 다크모드 — [data-theme="dark"] 단일 방식
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
[data-theme="dark"] {
  /* 배경 */
  --bg:                  #0f172a;
  --bg-white:            #1e293b;
  --bg-card:             #1e293b;
  --bg-muted:            #1a2535;

  /* 텍스트 */
  --text:                #f1f5f9;
  --text-muted:          #94a3b8;
  --text-light:          #64748b;

  /* 테두리 */
  --border:              #334155;
  --border-dark:         #475569;

  /* 파크골프 추가 색상 */
  --color-primary-mid:   #52b788;
  --color-earth:         #b8952e;
  --color-earth-light:   #2a2415;
  --color-sky:           #0096d6;
  --color-sky-light:     #0a2a35;

  /* FAQ/브랜드 별칭 */
  --green-pale:          rgba(27,94,32,.15);
  --gold:                #fbbf24;
  --gold-light:          #d97706;

  /* 스코어 입력 모달 토큰 */
  --sc-bg:               #0d1117;
  --sc-surface:          #161b22;
  --sc-border:           #30363d;
  --sc-text:             #e6edf3;
  --sc-muted:            #8b949e;
  --sc-btn-bg:           #e6edf3;
  --sc-btn-txt:          #0d1117;
  --sc-minus-bg:         #21262d;
  --sc-minus-txt:        #c9d1d9;
  --sc-card-bg:          #161b22;
  --sc-val-ghost:        #484f58;
  --sc-pen-border:       #484f58;
  --sc-sep:              #21262d;
  --sc-step-bg:          #0d1117;
  --sc-footer-bg:        #161b22;
  --sc-sel-bg:           #1c3829;
  --sc-tag-bg:           #21262d;
  --sc-tag-txt:          #8b949e;
  --sc-tag-sel-bg:       #238636;
  --sc-shadow:           0 2px 8px rgba(0,0,0,.4);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   27. 권한 배지 & 레벨 배지
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.staff-badge { font-size:.6rem; padding:1px 5px; border-radius:8px; font-weight:700; margin-left:.2rem; vertical-align:middle; }
.staff-badge.admin   { background:#ef4444; color:#fff; }
.staff-badge.manager { background:#f59e0b; color:#1e293b; }
.level-badge { display:inline-flex; align-items:center; gap:.25rem; padding:2px 8px; border-radius:10px; font-size:.68rem; font-weight:700; }
.level-badge.lv10 { background:#ef4444; color:#fff; }
.level-badge.lv8  { background:#f59e0b; color:#1e293b; }
.level-badge.lv5  { background:#3b82f6; color:#fff; }
.level-badge.lv2  { background:#e2e8f0; color:#475569; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   28. 스코어 색상 토큰
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.hole-eagle  { color:#8b5cf6; }
.hole-birdie { color:#3b82f6; }
.hole-par    { color:#22c55e; }
.hole-bogey  { color:#f97316; }
.hole-double { color:#ef4444; }
.hole-triple { color:#dc2626; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   29. 스코어 입력 모달
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#modal-score-input { z-index:9999; }
#modal-score-input .slide-modal-container {
  width:100% !important; max-width:100% !important;
  height:100dvh; height:-webkit-fill-available;
  display:flex; flex-direction:column; border-radius:0;
  background:var(--sc-bg); color:var(--sc-text);
}

/* 헤더 */
.score-modal-header {
  background:var(--sc-header-bg); color:#fff !important;
  flex-shrink:0; padding:.9rem 1.1rem;
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:2px solid #22c55e;
}
.score-header-left { display:flex; align-items:center; gap:.6rem; font-weight:700; font-size:1.05rem; color:#fff; }
.score-header-right { display:flex; gap:.4rem; align-items:center; }
.score-mode-badge { padding:3px 10px; border-radius:20px; font-size:.72rem; font-weight:700; letter-spacing:.5px; }
.score-mode-badge.admin   { background:#ef4444; color:#fff; }
.score-mode-badge.manager { background:#f59e0b; color:#1e293b; }

/* 스텝 공통 */
.score-step { display:flex; flex-direction:column; flex:1; overflow:hidden; }
.score-step-title { padding:.75rem 1.1rem; font-weight:700; font-size:.85rem; color:var(--sc-muted); background:var(--sc-step-bg); border-bottom:1px solid var(--sc-border); display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
.score-step-body  { flex:1; overflow-y:auto; padding:1.1rem 1rem; -webkit-overflow-scrolling:touch; }
.score-step-footer { flex-shrink:0; padding:.85rem 1rem; background:var(--sc-footer-bg); border-top:1px solid var(--sc-border); display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.score-back-btn { background:none; border:none; cursor:pointer; padding:0; display:flex; align-items:center; color:var(--sc-muted); }

/* STEP 1 — 버튼식 카테고리 */
.sc-sel-group { margin-bottom:1.25rem; }
.sc-sel-group-label { font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--sc-muted); margin-bottom:.55rem; display:flex; align-items:center; gap:.35rem; }
.sc-sel-group-label .step-dot { width:20px; height:20px; border-radius:50%; background:var(--sc-accent); color:#fff; font-size:.65rem; font-weight:800; display:inline-flex; align-items:center; justify-content:center; }
.sc-btn-row { display:flex; flex-wrap:wrap; gap:.45rem; }

.sc-cat-btn { padding:.55rem 1rem; border-radius:24px; border:1.5px solid var(--sc-border); background:var(--sc-tag-bg); color:var(--sc-tag-txt); font-size:.875rem; font-weight:600; cursor:pointer; transition:all .18s ease; -webkit-tap-highlight-color:transparent; line-height:1.2; display:flex; align-items:center; gap:.3rem; }
.sc-cat-btn:active { transform:scale(.96); }
.sc-cat-btn.selected { background:var(--sc-tag-sel-bg); border-color:var(--sc-tag-sel-bg); color:var(--sc-tag-sel); box-shadow:0 2px 8px rgba(27,94,32,.25); }
.sc-cat-btn.disabled-look { opacity:.4; cursor:default; pointer-events:none; }

.sc-empty-hint    { font-size:.8rem; color:var(--sc-val-ghost); padding:.3rem 0; display:flex; align-items:center; gap:.3rem; }
.sc-inline-loader { display:inline-flex; align-items:center; gap:.4rem; font-size:.8rem; color:var(--sc-muted); padding:.3rem 0; }
.sc-inline-loader::before { content:''; width:14px; height:14px; border:2px solid var(--sc-border); border-top-color:var(--sc-accent); border-radius:50%; animation:sc-spin .7s linear infinite; display:block; flex-shrink:0; }
@keyframes sc-spin { to { transform:rotate(360deg); } }

.sc-cta-btn { width:100%; margin-top:1.5rem; padding:1rem 1.25rem; border-radius:14px; border:none; background:var(--sc-btn-bg); color:var(--sc-btn-txt); font-size:1rem; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:.5rem; transition:opacity .2s,transform .1s; -webkit-tap-highlight-color:transparent; box-shadow:var(--sc-shadow); letter-spacing:.02em; }
.sc-cta-btn:disabled { opacity:.3; cursor:default; transform:none; }
.sc-cta-btn:not(:disabled):active { transform:scale(.98); }

.sc-selection-bar { margin-top:1rem; padding:.75rem 1rem; background:var(--sc-sel-bg); border:1.5px solid var(--sc-sel-ring); border-radius:12px; display:none; flex-direction:column; gap:.35rem; }
.sc-selection-bar.visible { display:flex; }
.sc-sel-row { display:flex; align-items:center; gap:.4rem; font-size:.82rem; color:var(--sc-text); }
.sc-sel-row .sc-sel-icon { color: var(--sc-accent); font-size: .9rem; font-family: 'Material Symbols Outlined'; font-variation-settings: 'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24; }

/* STEP 2 — 선수 탭 */
.player-tabs { display:flex; gap:.5rem; flex-wrap:nowrap; overflow-x:auto; padding:.75rem 0; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.player-tabs::-webkit-scrollbar { display:none; }
.player-tab { flex-shrink:0; padding:.55rem 1.1rem; border-radius:24px; border:2px solid var(--sc-border); background:var(--sc-surface); font-size:.85rem; font-weight:600; cursor:pointer; transition:all .18s; white-space:nowrap; color:var(--sc-muted); -webkit-tap-highlight-color:transparent; }
.player-tab.active    { background:var(--sc-accent); border-color:var(--sc-accent); color:#fff; }
.player-tab.finalized { border-color:var(--sc-pen-border); color:var(--sc-val-ghost); }
.player-tab.finalized.active { background:#475569; border-color:#475569; color:#fff; }

/* 홀 스코어 그리드 */
.score-grid-wrap { padding-bottom:1.25rem; }
/* 스코어 그리드 반응형: 모바일 2열 → 480px 3열 → 720px 4열 */
.score-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem; }
@media (min-width:480px)  { .score-grid { grid-template-columns:repeat(3,1fr); } }
@media (min-width:720px)  { .score-grid { grid-template-columns:repeat(4,1fr); } }

.score-hole-card { background:var(--sc-card-bg); border:1.5px solid var(--sc-border); border-radius:var(--sc-card-r); padding:.75rem .55rem .65rem; text-align:center; transition:border-color .2s,box-shadow .2s; position:relative; box-shadow:var(--sc-shadow); }
.score-hole-card.has-score { border-color:#22c55e; }
.score-hole-card.is-readonly { opacity:.72; }

.hole-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:.45rem; padding:0 .1rem; }
.hole-num-label { font-size:.78rem; font-weight:800; color:var(--sc-accent); }
.hole-par-label { font-size:.68rem; font-weight:700; color:#fff; background:var(--sc-muted); border-radius:10px; padding:1px 6px; }

/* 타수 컨트롤 */
.stroke-control { display:flex; align-items:stretch; justify-content:center; border:1.5px solid var(--sc-border); border-radius:10px; overflow:hidden; background:var(--sc-card-bg); margin:0 .1rem; }
.sc-btn { flex:0 0 36px; height:40px; border:none; background:var(--sc-minus-bg); color:var(--sc-minus-txt); font-size:1.25rem; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .12s; -webkit-tap-highlight-color:transparent; }
.sc-btn:active { background:var(--sc-border); }
.sc-btn.minus  { border-right:1px solid var(--sc-border); }
.sc-btn.plus   { border-left:1px solid var(--sc-border); }
.sc-btn:disabled { opacity:.3; cursor:not-allowed; }

.sc-val-wrap { flex:1; display:flex; align-items:center; justify-content:center; min-width:0; height:40px; overflow:hidden; position:relative; }
.sc-val { font-size:1.45rem; font-weight:800; color:var(--sc-text); line-height:1; display:block; }
.sc-val.empty { color:var(--sc-val-ghost); font-size:1.1rem; }

@keyframes sc-num-up   { from { transform:translateY(60%); opacity:0; } to { transform:translateY(0); opacity:1; } }
@keyframes sc-num-down { from { transform:translateY(-60%); opacity:0; } to { transform:translateY(0); opacity:1; } }
.sc-val.anim-up,  .pen-val.anim-up   { animation:sc-num-up   .18s cubic-bezier(.2,.8,.4,1) both; }
.sc-val.anim-down,.pen-val.anim-down  { animation:sc-num-down .18s cubic-bezier(.2,.8,.4,1) both; }

/* 벌타 컨트롤 */
.penalty-row { display:flex; align-items:center; justify-content:center; gap:.3rem; margin-top:.5rem; padding-top:.45rem; border-top:1px solid var(--sc-sep); }
.penalty-label { font-size:.62rem; color:#ef4444; font-weight:700; }
.pen-ctrl { display:flex; align-items:stretch; border:1.5px solid var(--sc-pen-border); border-radius:8px; overflow:hidden; flex:1; }
.pen-btn { flex:0 0 26px; height:26px; border:none; background:var(--sc-minus-bg); color:var(--sc-minus-txt); font-size:.8rem; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .12s; -webkit-tap-highlight-color:transparent; }
.pen-btn:active { background:var(--sc-border); }
.pen-btn.minus { border-right:1px solid var(--sc-pen-border); }
.pen-btn.plus  { border-left:1px solid var(--sc-pen-border); }
.pen-btn:disabled { opacity:.3; cursor:not-allowed; }
.pen-val-wrap { flex:1; display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; }
.pen-val { font-size:.85rem; font-weight:800; color:#ef4444; min-width:16px; text-align:center; display:block; }

/* 스코어 인디케이터 */
.score-indicator { position:absolute; top:6px; left:6px; width:7px; height:7px; border-radius:50%; }
.score-indicator.birdie { background:#3b82f6; }
.score-indicator.eagle  { background:#8b5cf6; }
.score-indicator.bogey  { background:#f97316; }
.score-indicator.double { background:#ef4444; }
.score-indicator.par    { background:#22c55e; }

/* 합계 표시 */
.score-total-display { font-size:.9rem; font-weight:700; color:var(--sc-text); }
.score-total-display .total-num  { font-size:1.35rem; color:var(--sc-accent); }
.score-total-display .total-diff { font-size:.8rem; margin-left:.3rem; }
.score-total-display .total-diff.over  { color:#ef4444; }
.score-total-display .total-diff.under { color:#3b82f6; }
.score-total-display .total-diff.even  { color:#22c55e; }

/* 확정 버튼 */
.btn-admin-only { background:linear-gradient(135deg,#7c3aed,#5b21b6); color:#fff; border:none; border-radius:8px; padding:.6rem 1.1rem; font-size:.85rem; font-weight:700; cursor:pointer; display:flex; align-items:center; gap:.4rem; transition:opacity .2s; }
.btn-admin-only:disabled { opacity:.4; cursor:not-allowed; }

/* 선수 정보 바 */
#sc-player-info-bar { background:var(--sc-sel-bg); border:1px solid #bbf7d0; border-radius:10px; padding:.6rem 1rem; margin-bottom:.75rem; display:flex; align-items:center; justify-content:space-between; }
[data-theme="dark"] #sc-player-info-bar { border-color:#1e4620; }
[data-theme="dark"] #sc-cur-player-name { color:#4ade80 !important; }

/* Par 박스 */
.sc-par-box { background:#f0fdf4; border:1px solid #bbf7d0; border-radius:10px; padding:.75rem; margin:.75rem 0; }
.sc-par-title { display:flex; align-items:center; gap:.3rem; font-size:.78rem; font-weight:700; color:#166534; margin-bottom:.5rem; }
.sc-par-grid { display:grid; grid-template-columns:repeat(9,1fr); gap:.25rem; }
.sc-par-item { text-align:center; background:#fff; border:1px solid #bbf7d0; border-radius:6px; padding:.2rem .1rem; }
.sc-par-item .p-hole { font-size:.6rem; color:#166534; font-weight:600; }
.sc-par-item .p-par  { font-size:.85rem; font-weight:800; color:#1e293b; }
[data-theme="dark"] .sc-par-box   { background:#0f2d17; border-color:#166534; }
[data-theme="dark"] .sc-par-title { color:#4ade80; }
[data-theme="dark"] .sc-par-item  { background:#1e293b; border-color:#166534; }
[data-theme="dark"] .sc-par-item .p-hole { color:#4ade80; }
[data-theme="dark"] .sc-par-item .p-par  { color:#f1f5f9; }

/* 스코어 저장 애니메이션 */
.score-saved-flash { animation:score-flash .4s ease-out; }
@keyframes score-flash { 0% { background:rgba(34,197,94,.3); } 100% { background:transparent; } }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   30. 전광판 스코어보드
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#modal-scoreboard { z-index:9999; }
#modal-scoreboard .slide-modal-container {
  width:100% !important; max-width:100% !important;
  height:100dvh; height:-webkit-fill-available;
  background:radial-gradient(ellipse at top,#0a1f0f 0%,#020d06 60%);
  color:#e2e8f0; display:flex; flex-direction:column; border-radius:0;
}
#modal-scoreboard:fullscreen,
#modal-scoreboard:-webkit-full-screen,
#modal-scoreboard:-moz-full-screen { width:100vw !important; height:100vh !important; }
#modal-scoreboard:fullscreen .slide-modal-container,
#modal-scoreboard:-webkit-full-screen .slide-modal-container { width:100vw !important; height:100vh !important; max-width:none !important; border-radius:0 !important; }

.sb-header { background:linear-gradient(135deg,#020d06,#0a1f0f); border-bottom:2px solid #22c55e; padding:.8rem 1.1rem; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.sb-header-left { display:flex; align-items:center; gap:.6rem; font-weight:700; font-size:1rem; color:#22c55e; }
.sb-live-badge { background:#ef4444; color:#fff; font-size:.65rem; font-weight:700; padding:2px 7px; border-radius:10px; letter-spacing:.5px; animation:sb-pulse 1.4s infinite; }
@keyframes sb-pulse { 0%,100% { opacity:1; } 50% { opacity:.5; } }
.sb-header-right { display:flex; gap:.4rem; align-items:center; }
.sb-icon-btn { width:36px; height:36px; border:1px solid rgba(34,197,94,.3); border-radius:8px; background:rgba(34,197,94,.1); color:#22c55e; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .2s; }
.sb-icon-btn:hover { background:rgba(34,197,94,.2); }
.sb-icon-btn .material-symbols-outlined { font-size:1.1rem; }

.sb-body { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; background:#020d06; }

.sb-tour-header { background:linear-gradient(135deg,#0a1f0f,#122b16); border-bottom:1px solid rgba(34,197,94,.2); padding:.8rem 1.1rem; text-align:center; }
.sb-tour-name { font-size:1.1rem; font-weight:800; color:#86efac; letter-spacing:.5px; }
.sb-tour-meta { font-size:.72rem; color:#4ade80; margin-top:.2rem; }

.sb-div-tabs { display:flex; overflow-x:auto; background:#0a1a0f; border-bottom:1px solid rgba(34,197,94,.15); -webkit-overflow-scrolling:touch; }
.sb-div-tab { flex-shrink:0; padding:.7rem 1.2rem; font-size:.82rem; font-weight:600; color:var(--text-light); cursor:pointer; border-bottom:3px solid transparent; transition:all .2s; white-space:nowrap; background:none; border-top:none; border-left:none; border-right:none; }
.sb-div-tab.active { color:#22c55e; border-bottom-color:#22c55e; background:rgba(34,197,94,.07); }

.sb-rank-table { width:100%; border-collapse:collapse; }
.sb-rank-table thead th { background:#0a1f0f; color:#4ade80; font-size:.7rem; font-weight:700; padding:.55rem .5rem; text-align:center; border-bottom:1px solid rgba(34,197,94,.2); letter-spacing:.3px; white-space:nowrap; }
.sb-rank-table thead th:nth-child(2) { text-align:left; }
.sb-rank-row { border-bottom:1px solid rgba(255,255,255,.04); transition:background .2s; cursor:default; animation:sb-row-in .3s ease-out both; }
.sb-rank-row:hover { background:rgba(34,197,94,.05); }
.sb-rank-row:nth-child(1)   { animation-delay:.05s; }
.sb-rank-row:nth-child(2)   { animation-delay:.10s; }
.sb-rank-row:nth-child(3)   { animation-delay:.15s; }
.sb-rank-row:nth-child(4)   { animation-delay:.20s; }
.sb-rank-row:nth-child(5)   { animation-delay:.25s; }
.sb-rank-row:nth-child(n+6) { animation-delay:.30s; }
@keyframes sb-row-in { from { opacity:0; transform:translateX(-8px); } to { opacity:1; transform:translateX(0); } }
.sb-rank-row td { padding:.65rem .5rem; text-align:center; font-size:.85rem; color:#d1fae5; }
.sb-rank-row td:nth-child(2) { text-align:left; }
.sb-rank-row.rank-1 { background:rgba(251,191,36,.08); } .sb-rank-row.rank-1 td { color:#fde68a; }
.sb-rank-row.rank-2 { background:rgba(148,163,184,.06); } .sb-rank-row.rank-2 td { color:#e2e8f0; }
.sb-rank-row.rank-3 { background:rgba(217,119,6,.06); }   .sb-rank-row.rank-3 td { color:#fcd34d; }

.sb-rank-badge { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; font-size:.8rem; font-weight:800; }
.sb-rank-badge.r1    { background:linear-gradient(135deg,#f59e0b,#d97706); color:#1e293b; }
.sb-rank-badge.r2    { background:linear-gradient(135deg,#94a3b8,#64748b); color:#fff; }
.sb-rank-badge.r3    { background:linear-gradient(135deg,#d97706,#b45309); color:#fff; }
.sb-rank-badge.other { background:rgba(255,255,255,.08); color:#6b7280; font-size:.75rem; }

.sb-player-name { font-weight:700; font-size:.88rem; }
.sb-player-club { font-size:.68rem; color: var(--text-light); margin-top:1px; }
.sb-score-cell  { font-weight:800; font-size:.95rem; }
.sb-diff-cell   { font-size:.78rem; font-weight:600; }
.sb-diff-cell.over  { color:#f97316; }
.sb-diff-cell.under { color:#60a5fa; }
.sb-diff-cell.even  { color:#34d399; }

.sb-hole-scores { display:flex; gap:2px; flex-wrap:nowrap; overflow-x:auto; }
.sb-hole-score { min-width:22px; height:22px; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:.65rem; font-weight:700; background:rgba(255,255,255,.06); color:#9ca3af; }
.sb-hole-score.birdie { background:rgba(59,130,246,.3);  color:#93c5fd; }
.sb-hole-score.eagle  { background:rgba(139,92,246,.4);  color:#c4b5fd; }
.sb-hole-score.par    { background:rgba(34,197,94,.2);   color:#86efac; }
.sb-hole-score.bogey  { background:rgba(249,115,22,.25); color:#fdba74; }
.sb-hole-score.double { background:rgba(239,68,68,.3);   color:#fca5a5; }
.sb-hole-score.empty  { background:rgba(255,255,255,.03);color:#374151; }

.sb-loading { text-align:center; padding:4rem 1rem; color:#374151; }
.sb-loading .material-symbols-outlined { font-size:3rem; display:block; margin-bottom:1rem; color:#1f4d2a; animation:sb-rotate 2s linear infinite; }
@keyframes sb-rotate { to { transform:rotate(360deg); } }

.sb-refresh-bar { flex-shrink:0; background:#0a1a0f; border-top:1px solid rgba(34,197,94,.1); padding:.4rem 1rem; display:flex; align-items:center; justify-content:space-between; font-size:.7rem; color:#374151; }
.sb-refresh-bar progress { width:100px; height:3px; -webkit-appearance:none; appearance:none; }
.sb-refresh-bar progress::-webkit-progress-bar   { background:#1f2937; border-radius:2px; }
.sb-refresh-bar progress::-webkit-progress-value { background:#22c55e; border-radius:2px; }

.btn-fullscreen-hint { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; color:rgba(34,197,94,.6); padding:.3rem .6rem; border:1px solid rgba(34,197,94,.2); border-radius:20px; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   31. 기타 공통 컴포넌트
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.no-permission-overlay { position:absolute; inset:0; background:rgba(0,0,0,.7); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; color:#fff; font-size:.9rem; z-index:10; border-radius:inherit; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   32. 반응형 브레이크포인트
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* 1200px 이하 — PC 메뉴 숨김 */
@media (max-width:1200px) {
  .gnb_wrap, .auth-buttons { display:none; }
  .mobile-menu-btn { display:flex; }
  .gnb_nav .menu > li > .item { display:none !important; }
  .notice-label span, .notice-close span { display:none; }
  #main-content .container { padding:2rem 1rem; }
}

/* 1200px 이상 — 전광판 텍스트 확대 */
@media (min-width:1200px) {
  .sb-rank-table th,
  .sb-rank-row td { font-size:.95rem; padding:.8rem .7rem; }
  .sb-player-name { font-size:1rem; }
  .sb-score-cell  { font-size:1.1rem; }
  .sb-rank-badge  { width:34px; height:34px; font-size:.95rem; }
  .sb-tour-name   { font-size:1.4rem; }
}

/* 1024px 이하 */
@media (max-width:1024px) {
  .hero-grid { grid-template-columns:1fr; gap:2rem; }
  .hero { min-height:auto; padding:8rem 0 4rem; }
  .ranking-grid, .community-grid-3 { grid-template-columns:repeat(2,1fr); }
  .gallery-grid { grid-template-columns:repeat(3,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .slide-modal-container { width:440px; }
  .quick-menu-grid { grid-template-columns:repeat(3,1fr); }
}

/* 768px 이하 */
@media (max-width:768px) {
  :root { --notice-h:40px; --header-h:64px; }
  #notice-bar, .notice-container { height:40px; }
  .notice-content, .notice-item { height:20px; line-height:20px; }
  .notice-label { display:none; }
  #header { top:40px; }
  #main-content .container { padding:2rem 0.5rem; }
  .slide-modal-container { width:100%; max-width:100%; border-radius:var(--radius-xl) var(--radius-xl) 0 0; transform:translateX(100%); }
  .slide-modal.open .slide-modal-container { transform:translateX(0); }
  .tournament-mode-banner { flex-direction:column; text-align:center; }
  .tournament-mode-actions { justify-content:center; }
}

/* 600px 이하 */
@media (max-width:600px) {
  #main-content .container { padding:1rem 0.5rem; }
  .ranking-grid, .community-grid-3 { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr; gap:1.75rem; }
  .footer-bottom { flex-direction:column; text-align:center; }
  .section { padding:2.5rem 0; }
  .section-container, .container { padding:0 1rem; }
  .hero-actions { flex-direction:column; }
  .hero-actions a, .hero-actions button { width:100%; justify-content:center; }
  .slide-modal-container { width:100% !important; max-width:100vw; }
  .floating-reserve { bottom:1rem; right:1rem; }
  .top-btn { display:none; }
  .quick-menu-grid { grid-template-columns:repeat(2,1fr); gap:.85rem; }
  .quick-card { padding:1rem 0.5rem; }
  .quick-icon { font-size:1.5rem; }
  .sb-rank-table .col-holes,
  .sb-rank-table .col-hcp { display:none; }
  .sc-par-grid { grid-template-columns:repeat(6,1fr); }

  /* v11: 전광판 라운드 탭 — 모바일 스크롤 최적화 */
  .sb-round-tabs { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:.5rem; }
  .sb-round-tabs::-webkit-scrollbar { display:none; }

  /* v11: 전광판 리그 테이블 — 모바일에서 라운드별 컬럼 숨김 */
  .sb-league-table .sb-rnd-col { display:none; }

  /* v11: 스코어 푸터 버튼 — 라운드확정 버튼 축소 */
  #btn-round-finalize { padding:.4rem .6rem; font-size:.75rem; }
}

/* 480px 이하 */
@media (max-width:480px) {
  .notice-link { font-size:11px; }
}

/* 터치 디바이스 — 최소 탭 영역 확보 */
@media (hover:none) {
  .sc-btn, .pen-btn { min-width:40px; min-height:40px; }
  .player-tab { min-height:40px; padding:.5rem 1.2rem; }
}
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   33. v11.0 추가 — 리그전·혼합 대회 전용 스타일
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* ── 전광판: 대회 유형 배지 ── */
.sb-type-badge { display:inline-block; font-size:.68rem; font-weight:700; padding:1px 7px; border-radius:8px; margin-left:6px; vertical-align:middle; }
.sb-type-badge.league { background:#3b82f6; color:#fff; }
.sb-type-badge.hybrid { background:#8b5cf6; color:#fff; }

/* ── 전광판: 라운드 탭 ── */
.sb-round-tabs { display:flex; flex-wrap:wrap; gap:.35rem; padding:.55rem .75rem .35rem; background:var(--bg-muted,#f8fafc); border-bottom:1px solid var(--border,#e2e8f0); }
[data-theme="dark"] .sb-round-tabs { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.1); }

.sb-round-tab { padding:.28rem .75rem; border-radius:14px; border:1px solid var(--border,#e2e8f0); background:transparent; color:var(--text-muted,#64748b); font-size:.78rem; font-family:var(--font); cursor:pointer; transition:background .18s, color .18s, border-color .18s; white-space:nowrap; }
.sb-round-tab:hover, .sb-round-tab.active { background:#3b82f6; color:#fff; border-color:#3b82f6; font-weight:600; }
[data-theme="dark"] .sb-round-tab { border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.6); }
[data-theme="dark"] .sb-round-tab:hover, [data-theme="dark"] .sb-round-tab.active { background:#2563eb; border-color:#2563eb; color:#fff; }

/* ── 전광판: 리그 테이블 ── */
.sb-league-table .sb-rnd-col { font-size:.8rem; color:var(--text-muted,#64748b); min-width:60px; text-align:center; }
[data-theme="dark"] .sb-league-table .sb-rnd-col { color:rgba(255,255,255,.5); }
.sb-league-pts-cell { font-weight:700; color:#3b82f6; font-size:1rem; }
[data-theme="dark"] .sb-league-pts-cell { color:#60a5fa; }

/* ── 스코어 입력: 라운드 STEP 확정 버튼 스타일 ── */
.sc-cat-btn.finalized { opacity:.65; border-style:dashed; }
.sc-cat-btn.finalized::after { content:' 🔒'; font-size:.75em; }

/* ── 스코어 입력: 라운드 배지 ── */
#sc-round-badge { font-size:.7rem; background:#3b82f6; color:#fff; padding:2px 8px; border-radius:10px; margin-left:6px; }
#sc-round-finalized-badge { font-size:.7rem; background:#475569; color:#fff; padding:2px 8px; border-radius:10px; margin-left:4px; }

/* ── 스코어 입력: 라운드 전체 확정 버튼 ── */
#btn-round-finalize { display:inline-flex; align-items:center; gap:.3rem; padding:.45rem .9rem; border-radius:8px; border:none; background:#1d4ed8; color:#fff; font-size:.82rem; font-family:var(--font); font-weight:600; cursor:pointer; transition:background .18s; }
#btn-round-finalize:hover { background:#1e40af; }

/* ── 스코어 입력: 선수 승점 배지 ── */
#sc-cur-league-pts { font-size:.75rem; background:#3b82f6; color:#fff; padding:1px 7px; border-radius:8px; margin-left:.4rem; }

/* ── 스코어 입력: 스테이블포드 포인트 합계 ── */
#sc-total-pts-wrap { display:inline-flex; align-items:center; gap:.3rem; margin-left:.8rem; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   33. v11 — 전광판 라운드탭 + 리그 전용
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.sb-round-tabs {
    display:flex; flex-wrap:wrap; gap:.35rem;
    padding:.55rem .75rem .35rem;
    background:#0d2414;
    border-bottom:1px solid rgba(34,197,94,.2);
}
.sb-round-tab {
    padding:.3rem .85rem; border-radius:14px;
    border:1px solid rgba(34,197,94,.3);
    background:rgba(34,197,94,.06);
    color:#6ee7a0;
    font-size:.78rem; font-family:var(--font);
    cursor:pointer;
    transition:background .18s, color .18s, border-color .18s;
    white-space:nowrap;
}
.sb-round-tab:hover,
.sb-round-tab.active {
    background:#22c55e; color:#052e0a;
    border-color:#22c55e; font-weight:700;
}
.sb-type-badge { display:inline-block; font-size:.68rem; font-weight:700; padding:1px 7px; border-radius:8px; margin-left:6px; vertical-align:middle; }
.sb-type-badge.league { background:#3b82f6; color:#fff; }
.sb-type-badge.hybrid { background:#8b5cf6; color:#fff; }
.sb-league-pts-cell { font-weight:700; color:#3b82f6; font-size:1rem; }
.sb-league-table .sb-rnd-col { font-size:.8rem; color:#6ee7a0; min-width:60px; text-align:center; opacity:.75; }

/* 모달이 닫혀 있을 때(display: none) 버튼을 보이게 함 */
#modal-score-entry[style*="display: none"] ~ .right-bottom-buttons {
    display: flex !important;
}

/* 기본적으로 모달이 열리면 숨김 (이전 코드) */
#modal-score-entry[style*="display: block"] ~ .right-bottom-buttons {
    display: none !important;
}