@charset "UTF-8";
/* ============================================================
   파크골프 서브페이지 공통 스타일 v2.0
   - 다크모드 고대비 재설계
   - 글자 크기 소폭 확대
   ============================================================ */

/* ━━ 0. CSS 변수 ━━ */
:root {
  --pg-primary:      #1B5E20;
  --pg-primary-h:    #0D3B12;
  --pg-primary-lt:   #f0fdf4;
  --pg-accent:       #4ade80;
  --pg-accent2:      #22c55e;
  --pg-success:      #059669;
  --pg-warning:      #d97706;
  --pg-danger:       #e11d48;
  --pg-info:         #0284c7;
  --pg-text:         var(--text,  #1e293b);
  --pg-text-m:       var(--text-muted, #64748b);
  --pg-text-lt:      var(--text-light, #94a3b8);
  --pg-bg:           var(--bg,    #f8fafc);
  --pg-card:         var(--bg-card, #ffffff);
  --pg-border:       var(--border, #e2e8f0);
  --pg-shadow-sm:    0 1px 3px rgba(0,0,0,.07);
  --pg-shadow-md:    0 4px 16px rgba(0,0,0,.09);
  --pg-shadow-lg:    0 8px 32px rgba(0,0,0,.13);
  --pg-radius:       4px;
  --pg-radius-lg:    8px;
  --pg-radius-xl:    12px;
  --pg-transition:   0.2s ease-in-out;
  --input-height:    46px;
  --input-padding:   11px 15px;

  /* [패치 v12.4] 접두사 없는 별칭 변수 자급자족 보강
     — pg_sub.css 의 .club-* / .course-* 등은 var(--text), var(--bg-card) 등을
       참조하는데, 이 정의가 메인 style.css 에만 있어 로드 순서/누락 시 카드 글씨가
       사라지는 문제가 있었음. 여기서 동일 사양으로 보강해 단독 동작을 보장. */
  --text:                #1e293b;
  --text-muted:          #475569;
  --text-light:          #94a3b8;
  --bg:                  #f8fafc;
  --bg-card:             #ffffff;
  --bg-white:            #ffffff;
  --bg-muted:            #f1f5f9;
  --border:              #e2e8f0;
  --color-primary:       #1B5E20;
  --color-primary-hover: #0D3B12;
  --color-primary-light: #f0fdf4;
  --radius:              4px;
  --radius-lg:           8px;
  --radius-xl:           12px;
  --shadow-md:           0 4px 16px rgba(0,0,0,.09);
}

[data-theme="dark"] {
  --pg-text:    #f9fafb;
  --pg-text-m:  #d1d5db;
  --pg-text-lt: #9ca3af;
  --pg-bg:      #111827;
  --pg-card:    #1f2937;
  --pg-border:  #374151;
  --pg-primary:    #34d399;
  --pg-primary-h:  #10b981;
  --pg-primary-lt: rgba(52,211,153,.12);
  --pg-success:    #34d399;
  --pg-warning:    #fbbf24;
  --pg-danger:     #f87171;
  --pg-info:       #60a5fa;
  --pg-shadow-sm:  0 1px 4px rgba(0,0,0,.4);
  --pg-shadow-md:  0 4px 16px rgba(0,0,0,.5);

  /* [패치 v12.4] 다크모드 별칭 변수 보강 — 카드 배경/글씨 대비 확보 */
  --text:                #f9fafb;
  --text-muted:          #d1d5db;
  --text-light:          #9ca3af;
  --bg:                  #111827;
  --bg-card:             #1f2937;
  --bg-white:            #1f2937;
  --bg-muted:            #283040;
  --border:              #374151;
  --color-primary:       #34d399;
  --color-primary-hover: #10b981;
  --color-primary-light: rgba(52,211,153,.12);
  --shadow-md:           0 4px 16px rgba(0,0,0,.5);
}

/* ━━ 1. 서브 히어로 ━━ */
.page-hero {
  position:relative; height:300px; width:100%;
  overflow:hidden; display:flex; align-items:center;
  background:linear-gradient(135deg,#1B5E20 0%,#064e3b 100%);
}
.page-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.6; }
.page-hero-overlay { position:absolute; inset:0; background:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,.15)); z-index:1; }
.page-hero-content { position:relative; z-index:2; color:#fff; max-width:1280px; margin:0 auto; padding:0 1.5rem; width:100%; }
.page-hero h1 { font-size:2.6rem; font-weight:800; margin-bottom:.5rem; letter-spacing:-.02em; }
.page-hero p  { font-size:1rem; max-width:500px; opacity:.9; }
@media (max-width:768px) {
  .page-hero { height:250px; }
  .page-hero h1 { font-size:1.9rem; }
}

/* ━━ 2. 공통 래퍼 ━━ */
.sub-wrap { padding:2.5rem 0 4rem; min-height:60vh; }

/* ━━ 3. 섹션 탭 ━━ */
.sub-tab-nav { display:flex; gap:.5rem; flex-wrap:wrap; border-bottom:2px solid var(--pg-border); margin-bottom:2rem; }
.sub-tab-nav .tab-btn {
  padding:.65rem 1.3rem; border:none; border-bottom:3px solid transparent;
  background:transparent; color:var(--pg-text-m); font-size:.95rem; font-weight:600;
  cursor:pointer; margin-bottom:-2px; transition:all var(--pg-transition);
  border-radius:var(--pg-radius) var(--pg-radius) 0 0; font-family:inherit;
}
.sub-tab-nav .tab-btn:hover { color:var(--pg-primary); background:var(--pg-primary-lt); }
.sub-tab-nav .tab-btn.active { color:var(--pg-primary); border-bottom-color:var(--pg-primary); background:var(--pg-primary-lt); font-weight:700; }

/* ━━ 4. 카드 공통 ━━ */
.pg-card {
  background:var(--pg-card); border:1px solid var(--pg-border);
  border-radius:var(--pg-radius-lg); box-shadow:var(--pg-shadow-sm);
  overflow:hidden; transition:box-shadow var(--pg-transition),transform var(--pg-transition);
}
.pg-card:hover { box-shadow:var(--pg-shadow-md); transform:translateY(-2px); }
.pg-card-header {
  padding:1.3rem 1.5rem; border-bottom:1px solid var(--pg-border);
  background:var(--pg-primary-lt);
  display:flex; justify-content:space-between; align-items:center;
}
.pg-card-header h3 { font-size:1.05rem; font-weight:700; color:var(--pg-primary); margin:0; }
.pg-card-body { padding:1.5rem; }
[data-theme="dark"] .pg-card-header { background:rgba(52,211,153,.1); border-color:#374151; }

/* ━━ 5. 폼 공통 ━━ */
.form-group { margin-bottom:18px; }
.form-group label { display:block; margin-bottom:6px; font-weight:500; font-size:.92rem; color:var(--pg-text-m); }
.form-group label.required::after { content:'*'; color:var(--pg-danger); margin-left:4px; }

.form-control,
input[type="text"], input[type="number"], input[type="date"],
input[type="tel"],  input[type="email"],  input[type="password"],
select, textarea {
  width:100%; height:var(--input-height); padding:var(--input-padding);
  border:1.5px solid var(--pg-border); border-radius:var(--pg-radius);
  font-family:inherit; font-size:.92rem;
  color:var(--pg-text); background:var(--pg-card); transition:all .2s;
}
[data-theme="dark"] .form-control,
[data-theme="dark"] input[type="text"],[data-theme="dark"] input[type="number"],
[data-theme="dark"] input[type="date"],[data-theme="dark"] input[type="tel"],
[data-theme="dark"] input[type="email"],[data-theme="dark"] input[type="password"],
[data-theme="dark"] select,[data-theme="dark"] textarea {
  /* [수정] background 단축속성은 select 화살표(no-repeat·위치)를 지워 화살표가 반복됨 → background-color 로 변경 */
  background-color:#283040; border-color:#4b5563; color:#f9fafb;
}
[data-theme="dark"] .form-control::placeholder,
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder { color:#9ca3af; }
.form-control:focus,input:focus,select:focus,textarea:focus {
  outline:none; border-color:var(--pg-primary); box-shadow:0 0 0 3px rgba(27,94,32,.15);
}
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] input:focus,[data-theme="dark"] select:focus,[data-theme="dark"] textarea:focus {
  border-color:#34d399; box-shadow:0 0 0 3px rgba(52,211,153,.2);
}
textarea.form-control { resize:vertical; min-height:80px; line-height:1.6; }
/* [패치 v12.5] 화살표 처리를 모든 select 로 확대 (다크모드 기본 화살표 충돌 방지) */
select,
select.form-control {
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  /* [고정] 어떤 배경 단축속성보다 우선하도록 !important — 다크/명세 충돌로 화살표가 반복되던 문제 근본 차단 */
  background-repeat:no-repeat !important; background-position:right 12px center !important; background-size:12px 12px !important; padding-right:32px; cursor:pointer;
}
[data-theme="dark"] select,
[data-theme="dark"] select.form-control {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23d1d5db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
}
[data-theme="dark"] select option { background:#283040; color:#f9fafb; }

/* 체크박스 */
input[type="checkbox"] {
  appearance:none; width:22px!important; height:22px!important;
  border:2px solid #cbd5e1; border-radius:var(--pg-radius);
  background:#fff; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; margin:0;
}
input[type="checkbox"]:hover { border-color:var(--pg-primary); background:#f0fdf4; }
input[type="checkbox"]:checked { background-color:var(--pg-primary)!important; border-color:var(--pg-primary)!important; }
input[type="checkbox"]::after {
  content:''; width:6px; height:11px; border:solid #fff;
  border-width:0 2.5px 2.5px 0; transform:rotate(45deg) scale(0);
  transition:transform .15s cubic-bezier(.4,0,.2,1);
}
input[type="checkbox"]:checked::after { transform:rotate(45deg) scale(1); }
[data-theme="dark"] input[type="checkbox"] { background:#283040; border-color:#4b5563; }
[data-theme="dark"] input[type="checkbox"]:hover { border-color:#34d399; background:rgba(52,211,153,.1); }
[data-theme="dark"] input[type="checkbox"]:checked { background-color:#059669!important; border-color:#059669!important; }

/* 라디오 */
input[type="radio"] {
  appearance:none; width:18px; height:18px;
  border:2px solid #cbd5e1; border-radius:50%;
  background:#fff; cursor:pointer; position:relative; margin:0; vertical-align:middle;
}
input[type="radio"]:checked { border-color:var(--pg-primary); }
input[type="radio"]:checked::after {
  content:''; position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%); width:10px; height:10px;
  background:var(--pg-primary); border-radius:50%;
}
[data-theme="dark"] input[type="radio"] { background:#283040; border-color:#4b5563; }
[data-theme="dark"] input[type="radio"]:checked { border-color:#34d399; }
[data-theme="dark"] input[type="radio"]:checked::after { background:#34d399; }

/* 검색바 */
.search-bar {
  display:flex; justify-content:space-between; align-items:center;
  background:var(--pg-card); border:1px solid var(--pg-border);
  border-radius:var(--pg-radius); padding:16px 20px; margin-bottom:20px; flex-wrap:wrap; gap:12px;
}
[data-theme="dark"] .search-bar { background:#1f2937; border-color:#374151; }

/* 그리드 */
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }

/* 페이지네이션 기본 */
.pg-page-nav { clear:both; margin:30px 0; text-align:center; }
.pagination { display:inline-flex; align-items:center; gap:3px; list-style:none; margin:0; padding:0; }
.pagination li a,
.pagination li span.cur {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:30px; height:30px; padding:0 8px; font-size:1.083em;
  border-radius:3px; border:1px solid #bbbcc3; background:#f3f3f3; text-decoration:none;
}
.pagination li a { color:#555; }
.pagination li a:hover { background:#ddd; }
.pagination li span.cur { background:var(--pg-primary); color:#fff; font-weight:bold; border-color:var(--pg-primary); cursor:default; }
[data-theme="dark"] .pagination li a { background:#283040; border-color:#374151; color:#d1d5db; }
[data-theme="dark"] .pagination li a:hover { background:#374151; }
.pagination li a.page-first { background-image:url('./img/btn_first.gif'); }
.pagination li a.page-prev  { background-image:url('./img/btn_prev.gif');  }
.pagination li a.page-next  { background-image:url('./img/btn_next.gif');  }
.pagination li a.page-last  { background-image:url('./img/btn_end.gif');   }
.pagination li a.page-first,.pagination li a.page-prev,
.pagination li a.page-next,.pagination li a.page-last {
  text-indent:-999px; overflow:hidden; width:30px;
  background-repeat:no-repeat; background-position:50% 50%;
}

/* 토글 스위치 */
.rv-toggle { position:relative; display:inline-block; width:40px; height:20px; cursor:pointer; }
.rv-toggle input { opacity:0; width:0; height:0; position:absolute; }
.rv-toggle-slider {
  position:absolute; top:0; left:0; right:0; bottom:0;
  background:var(--pg-border); border-radius:20px; transition:.2s;
}
.rv-toggle-slider:before {
  position:absolute; content:""; height:16px; width:16px;
  left:2px; bottom:2px; background:#fff; border-radius:50%; transition:.2s;
}
.rv-toggle input:checked + .rv-toggle-slider { background:var(--pg-success); }
.rv-toggle input:checked + .rv-toggle-slider:before { transform:translateX(20px); }
[data-theme="dark"] .rv-toggle-slider { background:#374151; }

/* 순서정렬 버튼 */
.pg-order-btn {
  display:inline-block; width:28px; height:26px; line-height:24px;
  text-align:center; background:#e2e8f0; border:1px solid #cbd5e1;
  border-radius:4px; color:#475569; font-size:14px; font-weight:bold;
  cursor:pointer; transition:all .15s; margin:0 2px;
}
.pg-order-btn:hover { background:#94a3b8; color:#fff; }
.pg-order-btn:disabled { color:#cbd5e1; cursor:default; background:#f8fafc; opacity:.6; }
[data-theme="dark"] .pg-order-btn { background:#283040; border-color:#4b5563; color:#d1d5db; }
[data-theme="dark"] .pg-order-btn:hover { background:#34d399; color:#111827; }

/* 시간 슬롯 */
.time-slot-grid { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.btn-time-slot {
  padding:9px 17px; border:1px solid var(--pg-border);
  background:var(--pg-card); border-radius:var(--pg-radius);
  font-size:.9rem; cursor:pointer; transition:all .2s;
}
.btn-time-slot:hover:not(.booked):not(.past) { background:var(--pg-primary); color:#fff; border-color:var(--pg-primary); }
.btn-time-slot.active { background:var(--pg-primary); color:#fff; border-color:var(--pg-primary); }
.btn-time-slot.booked { background:#e5e7eb!important; color:#9ca3af!important; cursor:not-allowed!important; border-color:#d1d5db!important; opacity:.75; }
.btn-time-slot.past   { background:#f3f4f6!important; color:#d1d5db!important; cursor:not-allowed!important; border-color:#e5e7eb!important; opacity:.6; }
[data-theme="dark"] .btn-time-slot { background:#283040; border-color:#4b5563; color:#d1d5db; }
[data-theme="dark"] .btn-time-slot:hover:not(.booked):not(.past) { background:#34d399; color:#111827; border-color:#34d399; }
[data-theme="dark"] .btn-time-slot.active { background:#059669; border-color:#059669; color:#fff; }
[data-theme="dark"] .btn-time-slot.booked { background:#374151!important; color:#6b7280!important; border-color:#4b5563!important; }
[data-theme="dark"] .btn-time-slot.past   { background:#1f2937!important; color:#4b5563!important; border-color:#374151!important; }

/* ━━ 6. 버튼 공통 ━━ */
.pg-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  padding:.6rem 1.3rem; border:none; border-radius:var(--pg-radius);
  font-size:.95rem; font-weight:600; font-family:inherit;
  cursor:pointer; text-decoration:none; transition:all var(--pg-transition);
  white-space:nowrap; line-height:1.4;
}
.pg-btn-primary { background:var(--pg-primary); color:#fff; }
.pg-btn-primary:hover { background:var(--pg-primary-h); }
.pg-btn-outline { background:transparent; color:var(--pg-primary); border:1.5px solid var(--pg-primary); }
.pg-btn-outline:hover { background:var(--pg-primary-lt); }
[data-theme="dark"] .pg-btn-outline { color:#34d399; border-color:#34d399; }
[data-theme="dark"] .pg-btn-outline:hover { background:rgba(52,211,153,.1); }
.pg-btn-success { background:var(--pg-success); color:#fff; }
.pg-btn-danger  { background:var(--pg-danger);  color:#fff; }
.pg-btn-gray    { background:var(--pg-border);  color:var(--pg-text-m); }
.pg-btn-gray:hover { background:#cbd5e1; }
[data-theme="dark"] .pg-btn-gray { background:#374151; color:#d1d5db; }
[data-theme="dark"] .pg-btn-gray:hover { background:#4b5563; color:#f9fafb; }
.pg-btn-lg { padding:.8rem 1.75rem; font-size:1rem; border-radius:var(--pg-radius-lg); }
.pg-btn-sm { padding:.38rem .8rem; font-size:.85rem; }
.pg-btn-block { width:100%; }
.pg-btn:disabled { opacity:.5; cursor:not-allowed; pointer-events:none; }

/* noshow_policy btn-pg */
.btn-pg { display:inline-flex; align-items:center; gap:.4rem; padding:.6rem 1.4rem; border-radius:var(--radius); font-size:.9rem; font-weight:700; border:none; cursor:pointer; transition:all var(--transition); }
.btn-pg-primary { background:var(--color-primary); color:#fff; }
.btn-pg-primary:hover { background:var(--color-primary-hover); }
.btn-pg-outline { background:transparent; color:var(--color-primary); border:2px solid var(--color-primary); }
.btn-pg-outline:hover { background:var(--color-primary-light); }
[data-theme="dark"] .btn-pg-primary { background:#059669; }
[data-theme="dark"] .btn-pg-outline { color:#34d399; border-color:#34d399; }
[data-theme="dark"] .btn-pg-outline:hover { background:rgba(52,211,153,.1); }

/* ━━ 7. 배지 ━━ */
.pg-badge { display:inline-block; padding:.22rem .6rem; font-size:.8rem; font-weight:600; border-radius:20px; white-space:nowrap; }
.pg-badge-green  { background:#dcfce7; color:#166534; }
.pg-badge-blue   { background:#dbeafe; color:#1e40af; }
.pg-badge-red    { background:#fee2e2; color:#991b1b; }
.pg-badge-yellow { background:#fef9c3; color:#854d0e; }
.pg-badge-gray   { background:#f1f5f9; color:#475569; }
.pg-badge-purple { background:#ede9fe; color:#5b21b6; }
[data-theme="dark"] .pg-badge-green  { background:rgba(52,211,153,.2);  color:#34d399; }
[data-theme="dark"] .pg-badge-blue   { background:rgba(96,165,250,.2);  color:#60a5fa; }
[data-theme="dark"] .pg-badge-red    { background:rgba(248,113,113,.2); color:#f87171; }
[data-theme="dark"] .pg-badge-yellow { background:rgba(251,191,36,.2);  color:#fbbf24; }
[data-theme="dark"] .pg-badge-gray   { background:#374151; color:#d1d5db; }
[data-theme="dark"] .pg-badge-purple { background:rgba(167,139,250,.2); color:#a78bfa; }

/* ━━ 8. 테이블 공통 ━━ */
.pg-table-wrap { overflow-x:auto; border-radius:var(--pg-radius-lg); border:1px solid var(--pg-border); }
[data-theme="dark"] .pg-table-wrap { border-color:#374151; }
.pg-table { width:100%; border-collapse:collapse; font-size:.92rem; }
.pg-table th {
  background:var(--pg-primary-lt); color:var(--pg-primary);
  padding:.9rem 1rem; font-weight:700; text-align:left;
  border-bottom:2px solid #bbf7d0; white-space:nowrap;
}
.pg-table td { padding:.85rem 1rem; border-bottom:1px solid var(--pg-border); color:var(--pg-text); vertical-align:middle; }
.pg-table tbody tr:last-child td { border-bottom:none; }
.pg-table tbody tr:hover { background:var(--pg-primary-lt); }
[data-theme="dark"] .pg-table th { background:rgba(52,211,153,.12); color:#34d399; border-bottom-color:rgba(52,211,153,.3); }
[data-theme="dark"] .pg-table td { color:#f9fafb; border-bottom-color:#374151; }
[data-theme="dark"] .pg-table tbody tr:hover { background:rgba(52,211,153,.07); }
.pg-table .td-red    { color:var(--pg-danger);  font-weight:700; }
.pg-table .td-orange { color:var(--pg-warning); font-weight:700; }
.pg-table .td-green  { color:var(--pg-success); font-weight:700; }
[data-theme="dark"] .pg-table .td-red    { color:#f87171; }
[data-theme="dark"] .pg-table .td-orange { color:#fbbf24; }
[data-theme="dark"] .pg-table .td-green  { color:#34d399; }

/* ━━ 9. 정보 박스 ━━ */
.info-box { border-left:4px solid var(--pg-primary); background:var(--pg-primary-lt); border-radius:0 var(--pg-radius) var(--pg-radius) 0; padding:1.1rem 1.3rem; margin-bottom:1.25rem; font-size:.92rem; }
.info-box.warn   { border-color:var(--pg-warning); background:#fffbeb; }
.info-box.danger { border-color:var(--pg-danger);  background:#fff1f2; }
.info-box.info   { border-color:var(--pg-info);    background:#eff6ff; }
.info-box strong { display:block; margin-bottom:.3rem; font-size:.95rem; }
[data-theme="dark"] .info-box        { background:rgba(52,211,153,.1);  color:#d1d5db; }
[data-theme="dark"] .info-box.warn   { background:rgba(251,191,36,.1);  color:#fbbf24; }
[data-theme="dark"] .info-box.danger { background:rgba(248,113,113,.1); color:#f87171; }
[data-theme="dark"] .info-box.info   { background:rgba(96,165,250,.1);  color:#60a5fa; }

/* ━━ 10. 빈 상태 ━━ */
.pg-empty { text-align:center; padding:4rem 1rem; color:var(--pg-text-lt); }
.pg-empty .empty-icon { font-size:3rem; margin-bottom:.75rem; }
.pg-empty p { font-size:.95rem; }

/* ━━ 11. 페이지네이션 (pg-pagination) ━━ */
.pg-pagination { display:flex; justify-content:center; margin-top:2rem; }
.pg-pagination .pagination { display:flex; gap:.3rem; list-style:none; flex-wrap:wrap; }
.pg-pagination a,.pg-pagination span.cur {
  display:flex; align-items:center; justify-content:center;
  min-width:38px; height:38px; padding:0 .55rem;
  border:1px solid var(--pg-border); border-radius:var(--pg-radius);
  font-size:.9rem; font-weight:500; color:var(--pg-text-m); text-decoration:none; transition:all var(--pg-transition);
}
.pg-pagination a:hover { border-color:var(--pg-primary); color:var(--pg-primary); background:var(--pg-primary-lt); }
.pg-pagination .active span.cur { background:var(--pg-primary); color:#fff; border-color:var(--pg-primary); }
[data-theme="dark"] .pg-pagination a { background:#283040; border-color:#374151; color:#d1d5db; }
[data-theme="dark"] .pg-pagination a:hover { border-color:#34d399; color:#34d399; background:rgba(52,211,153,.1); }

/* ━━ 12. 로딩 스피너 ━━ */
.pg-loading { display:flex; align-items:center; justify-content:center; padding:3rem; color:var(--pg-text-lt); gap:.75rem; font-size:.95rem; }
.pg-spinner { width:26px; height:26px; border:3px solid var(--pg-border); border-top-color:var(--pg-primary); border-radius:50%; animation:spin .7s linear infinite; }
[data-theme="dark"] .pg-spinner { border-color:#374151; border-top-color:#34d399; }
@keyframes spin { to { transform:rotate(360deg); } }

/* ━━ 13. 반응형 그리드 ━━ */
.pg-grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; }
.pg-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.pg-grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;    }
@media (max-width:1024px) {
  .pg-grid-4 { grid-template-columns:repeat(2,1fr); }
  .pg-grid-3 { grid-template-columns:repeat(2,1fr); }
  .grid-4    { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
  .sub-wrap { padding:1.5rem 0 3rem; }
  .pg-grid-2,.pg-grid-3,.pg-grid-4 { grid-template-columns:1fr; }
  .grid-2,.grid-3,.grid-4 { grid-template-columns:1fr; }
  .sub-tab-nav .tab-btn { font-size:.88rem; padding:.55rem .9rem; }
  .pg-table th,.pg-table td { padding:.7rem .8rem; font-size:.88rem; }
  .pg-table thead { display:none; }
  .pg-table tr { display:block; background:var(--pg-card); border:1px solid var(--pg-border); border-radius:12px; margin-bottom:20px; padding:10px 15px; }
  [data-theme="dark"] .pg-table tr { background:#1f2937; border-color:#374151; }
  .pg-table td { display:flex; justify-content:space-between; align-items:center; text-align:right; border-bottom:1px solid var(--pg-border); padding:12px 0; }
  .pg-table td:last-child { border-bottom:none; }
  .pg-table td::before { content:attr(data-label); font-weight:bold; color:var(--pg-text-m); flex-basis:35%; text-align:left; }
}
@media (max-width:480px) { .pg-btn { font-size:.88rem; padding:.5rem 1rem; } }

/* ━━ 통계 카드 ━━ */
.pg-stat-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1rem; margin-bottom:2rem; }
.pg-stat-card { background:var(--pg-card); border:1px solid var(--pg-border); border-radius:var(--pg-radius-lg); padding:1.3rem 1.5rem; display:flex; align-items:center; gap:1rem; box-shadow:var(--pg-shadow-sm); }
[data-theme="dark"] .pg-stat-card { background:#1f2937; border-color:#374151; }
.pg-stat-icon { width:50px; height:50px; border-radius:12px; background:var(--pg-primary); display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.4rem; flex-shrink:0; }
[data-theme="dark"] .pg-stat-icon { background:#059669; }
.pg-stat-value { font-size:1.6rem; font-weight:700; color:var(--pg-text); line-height:1.1; }
.pg-stat-label { font-size:.82rem; color:var(--pg-text-m); margin-top:.15rem; }

/* ━━ 오늘 운영시간 배너 ━━ */
.pg-today-banner { background:linear-gradient(135deg,var(--pg-primary),var(--pg-primary-h)); color:#fff; border-radius:var(--pg-radius-lg); padding:1.3rem 1.8rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:1.5rem; }
.pg-today-badge { background:rgba(255,255,255,.25); border-radius:4px; padding:.2rem .55rem; font-size:.75rem; font-weight:700; letter-spacing:.05em; }

/* ━━ 운영 안내 카드 ━━ */
.pg-notice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.pg-notice-card { background:var(--pg-card); border:1px solid var(--pg-border); border-radius:var(--pg-radius-lg); padding:1.5rem; text-align:center; box-shadow:var(--pg-shadow-sm); transition:all var(--pg-transition); }
.pg-notice-card:hover { transform:translateY(-4px); box-shadow:var(--pg-shadow-md); }
.pg-notice-icon { font-size:2rem; margin-bottom:.75rem; }
.pg-notice-card h4 { font-size:1rem; margin:0 0 .5rem; color:var(--pg-text); }
.pg-notice-card p  { font-size:.88rem; color:var(--pg-text-m); line-height:1.65; margin:0; }
[data-theme="dark"] .pg-notice-card { background:#1f2937; border-color:#374151; }
[data-theme="dark"] .pg-notice-card h4 { color:#f9fafb; }
[data-theme="dark"] .pg-notice-card p  { color:#d1d5db; }
@media (max-width:768px) { .pg-notice-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px) { .pg-notice-grid { grid-template-columns:1fr; } }

/* ━━ 이용료 카드 ━━ */
.pg-fee-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:1.25rem; }
.pg-fee-card { background:var(--pg-card); border:2px solid var(--pg-border); border-radius:var(--pg-radius-lg); padding:1.75rem 1.25rem; text-align:center; box-shadow:var(--pg-shadow-sm); transition:transform .2s; }
.pg-fee-card:hover { transform:translateY(-3px); }
.pg-fee-card-accent { border-color:var(--pg-primary); }
.pg-fee-label { font-size:.88rem; color:var(--pg-text-m); margin-bottom:.6rem; }
.pg-fee-amount { font-size:1.75rem; font-weight:800; color:var(--pg-primary); }
.pg-fee-note { font-size:.8rem; color:var(--pg-text-lt); margin-top:.4rem; }
[data-theme="dark"] .pg-fee-card { background:#1f2937; border-color:#374151; }
[data-theme="dark"] .pg-fee-card-accent { border-color:#34d399; }
[data-theme="dark"] .pg-fee-label  { color:#d1d5db; }
[data-theme="dark"] .pg-fee-amount { color:#34d399; }
[data-theme="dark"] .pg-fee-note   { color:#9ca3af; }

/* ━━ pg-info-box / pg-info-grid / pg-info-item ━━ */
.pg-info-box { background:var(--pg-card); border-radius:var(--pg-radius-xl,12px); border:1px solid var(--pg-border); padding:1.5rem; margin-bottom:1.5rem; }
[data-theme="dark"] .pg-info-box { background:#1f2937; border-color:#374151; }
.pg-info-title { font-size:1.2rem; font-weight:500; color:var(--pg-text); padding-bottom:1rem; margin-bottom:1.25rem; border-bottom:2px solid var(--pg-border); display:flex; align-items:center; gap:.5rem; }
[data-theme="dark"] .pg-info-title { color:#f9fafb; border-bottom-color:#374151; }
.pg-info-box h4 { font-size:.98rem; color:var(--pg-primary); margin:0 0 .75rem; }
.pg-info-box ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.5rem; }
.pg-info-box li { font-size:.88rem; color:var(--pg-text); padding-left:1.1rem; position:relative; line-height:1.55; }
.pg-info-box li::before { content:'✓'; position:absolute; left:0; color:var(--pg-primary); font-weight:700; }
[data-theme="dark"] .pg-info-box li { color:#d1d5db; }

.pg-info-grid { display:grid; gap:1rem; }
.pg-info-item { background:var(--pg-bg); border-radius:var(--pg-radius-lg); padding:.9rem 1rem; border:1px solid var(--pg-border); transition:all .2s; }
.pg-info-item:hover { transform:translateY(-2px); box-shadow:var(--pg-shadow-sm); }
.pg-info-item label { display:block; font-size:.72rem; font-weight:700; color:var(--pg-primary); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.3rem; }
.pg-info-item p { font-size:.95rem; font-weight:600; color:var(--pg-text); margin:0; }
[data-theme="dark"] .pg-info-item { background:#283040; border-color:#374151; }
[data-theme="dark"] .pg-info-item label { color:#34d399; }
[data-theme="dark"] .pg-info-item p { color:#f9fafb; }
.pg-info-label  { font-size:.78rem; color:var(--pg-text-m); margin-bottom:.2rem; }
.pg-info-value  { font-size:.95rem; font-weight:600; color:var(--pg-text); }
.pg-description { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--pg-border); font-size:.88rem; color:var(--pg-text-m); line-height:1.7; }
[data-theme="dark"] .pg-info-label  { color:#9ca3af; }
[data-theme="dark"] .pg-info-value  { color:#f9fafb; }
[data-theme="dark"] .pg-description { border-top-color:#374151; color:#d1d5db; }

/* ━━ 안내 배너 ━━ */
.pg-info-banner { background:var(--pg-primary-lt); border:1px solid var(--pg-primary); border-radius:var(--pg-radius-lg); padding:1.3rem 1.5rem; display:flex; align-items:flex-start; gap:1rem; }
[data-theme="dark"] .pg-info-banner { background:rgba(52,211,153,.1); border-color:rgba(52,211,153,.35); }
.pg-info-banner-icon { font-size:1.5rem; color:var(--pg-primary); flex-shrink:0; }
.pg-info-banner strong { font-size:.98rem; color:var(--pg-primary); display:block; margin-bottom:.3rem; }
.pg-info-banner p { font-size:.88rem; color:var(--pg-text-m); margin:0; line-height:1.65; }
[data-theme="dark"] .pg-info-banner strong { color:#34d399; }
[data-theme="dark"] .pg-info-banner p      { color:#d1d5db; }

/* ━━ 게시판 ━━ */
.pg-table-board .pg-td-subject a { color:var(--pg-text); text-decoration:none; font-weight:500; }
.pg-table-board .pg-td-subject a:hover { color:var(--pg-primary); }
.pg-row-notice { background:rgba(27,94,32,.04); }
[data-theme="dark"] .pg-row-notice { background:rgba(52,211,153,.07); }
.pg-comment-cnt { color:var(--pg-danger); font-size:.82rem; margin-left:.25rem; }

/* ━━ 필터 바 ━━ */
.pg-filter-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; margin-bottom:1.5rem; }
.pg-filter-form { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; flex:1; }

/* ━━ 노쇼 현황 ━━ */
.pg-ns-summary { display:flex; align-items:center; justify-content:space-between; padding:1.25rem; background:var(--pg-bg); border-radius:var(--pg-radius-lg); margin-bottom:1.25rem; border:1px solid var(--pg-border); }
[data-theme="dark"] .pg-ns-summary { background:#283040; border-color:#374151; }
.pg-ns-big-num { font-size:2.5rem; font-weight:800; display:block; }
.pg-ns-big-num.ok      { color:var(--pg-success); }
.pg-ns-big-num.warning { color:var(--pg-warning); }
.pg-ns-big-num.danger  { color:var(--pg-danger);  }
.pg-ns-summary-label { font-size:.85rem; color:var(--pg-text-m); display:block; margin-top:.1rem; }
.pg-ns-block-notice { background:#fef2f2; border:1px solid #fca5a5; border-radius:var(--pg-radius); padding:1rem 1.25rem; margin-top:1rem; }
[data-theme="dark"] .pg-ns-block-notice { background:rgba(248,113,113,.1); border-color:rgba(248,113,113,.3); }
.pg-ns-block-notice i { color:var(--pg-danger); margin-right:.4rem; }
.pg-ns-block-notice p { margin:.4rem 0 0; font-size:.88rem; color:var(--pg-text-m); }
[data-theme="dark"] .pg-ns-block-notice p { color:#d1d5db; }
.pg-ns-pending-notice { background:var(--pg-primary-lt); border:1px solid var(--pg-primary); border-radius:var(--pg-radius); padding:1rem; font-size:.88rem; color:var(--pg-primary); margin-top:1rem; }
[data-theme="dark"] .pg-ns-pending-notice { background:rgba(52,211,153,.1); border-color:rgba(52,211,153,.3); color:#34d399; }

/* ━━ QnA ━━ */
.pg-qna-detail-head { padding-bottom:1rem; border-bottom:1px solid var(--pg-border); margin-bottom:1.25rem; }
[data-theme="dark"] .pg-qna-detail-head { border-color:#374151; }
.pg-qna-detail-head h4 { font-size:1.05rem; font-weight:700; margin:0 0 .5rem; color:var(--pg-text); }
.pg-qna-detail-meta { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem; font-size:.85rem; color:var(--pg-text-m); }
.pg-qna-content { font-size:.92rem; line-height:1.75; color:var(--pg-text); padding:1.25rem; background:var(--pg-bg); border-radius:var(--pg-radius); margin-bottom:1.25rem; }
[data-theme="dark"] .pg-qna-content { background:#283040; color:#f9fafb; }
.pg-qna-answer-item { background:var(--pg-primary-lt); border:1px solid var(--pg-primary); border-radius:var(--pg-radius); padding:1.1rem 1.25rem; margin-bottom:.85rem; }
[data-theme="dark"] .pg-qna-answer-item { background:rgba(52,211,153,.08); border-color:rgba(52,211,153,.3); }
.pg-qna-answer-date { font-size:.82rem; color:var(--pg-text-m); margin-left:auto; }
.pg-qna-answer-body { font-size:.9rem; line-height:1.7; color:var(--pg-text); }
[data-theme="dark"] .pg-qna-answer-body { color:#f9fafb; }
.pg-qna-pending-notice { text-align:center; padding:1.5rem; color:var(--pg-text-m); font-size:.92rem; background:var(--pg-bg); border-radius:var(--pg-radius); border:1px dashed var(--pg-border); }
[data-theme="dark"] .pg-qna-pending-notice { background:#283040; border-color:#4b5563; color:#d1d5db; }
.pg-qna-pending-notice i { color:var(--pg-warning); margin-right:.4rem; }

/* ━━ pg-tabs ━━ */
.pg-tabs { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1.5rem; border-bottom:2px solid var(--pg-border); padding-bottom:.5rem; }
[data-theme="dark"] .pg-tabs { border-bottom-color:#374151; }
.pg-tab { padding:.5rem 1.25rem; background:transparent; border:none; border-radius:var(--pg-radius); font-size:.95rem; font-weight:600; color:var(--pg-text-m); cursor:pointer; text-decoration:none; transition:all var(--pg-transition); }
.pg-tab:hover { color:var(--pg-primary); background:var(--pg-primary-lt); }
.pg-tab.active { color:var(--pg-primary); background:var(--pg-primary-lt); border-bottom:2px solid var(--pg-primary); margin-bottom:-2px; }
[data-theme="dark"] .pg-tab { color:#d1d5db; }
[data-theme="dark"] .pg-tab:hover  { color:#34d399; background:rgba(52,211,153,.08); }
[data-theme="dark"] .pg-tab.active { color:#34d399; background:rgba(52,211,153,.1); border-bottom-color:#34d399; }

/* ━━ 예약 카드 ━━ */
.pg-reservation-list { display:flex; flex-direction:column; gap:1rem; }
.pg-reservation-card { background:var(--pg-card); border:1px solid var(--pg-border); border-radius:var(--pg-radius-lg); overflow:hidden; }
[data-theme="dark"] .pg-reservation-card { background:#1f2937; border-color:#374151; }
.pg-reservation-header { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.25rem; background:var(--pg-primary-lt); border-bottom:1px solid var(--pg-border); }
[data-theme="dark"] .pg-reservation-header { background:rgba(52,211,153,.1); border-color:#374151; }
.pg-reservation-body { padding:1.25rem; display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:.75rem; }
.pg-reservation-footer { padding:.75rem 1.25rem; border-top:1px solid var(--pg-border); display:flex; justify-content:flex-end; gap:.5rem; }
[data-theme="dark"] .pg-reservation-footer { border-top-color:#374151; }

/* ━━ 하이라이트 행 & 빈 상태 소형 ━━ */
.pg-row-highlight { background:rgba(27,94,32,.05); font-weight:600; }
[data-theme="dark"] .pg-row-highlight { background:rgba(52,211,153,.07); }
.pg-empty-sm { text-align:center; padding:1.5rem; color:var(--pg-text-m); font-size:.9rem; }

/* ━━ club_guide.php ━━ */
.club-tabs-container { position:relative; z-index:10; margin-bottom:3rem; }
.club-tabs { display:flex; gap:.75rem; overflow-x:auto; padding-bottom:.5rem; }
.club-tabs::-webkit-scrollbar { display:none; }
.club-tab { white-space:nowrap; padding:.7rem 1.75rem; border-radius:var(--radius); background:var(--bg-white); border:1px solid var(--border); color:var(--text-muted); font-weight:600; font-size:.95rem; cursor:pointer; transition:all .3s; text-decoration:none; display:inline-block; }
.club-tab:hover  { background:var(--color-primary-light); color:var(--color-primary); }
.club-tab.active { background:var(--color-primary); color:#fff; border-color:var(--color-primary); }
[data-theme="dark"] .club-tab { background:#283040; border-color:#4b5563; color:#d1d5db; }
[data-theme="dark"] .club-tab:hover  { background:rgba(52,211,153,.1); color:#34d399; border-color:#34d399; }
[data-theme="dark"] .club-tab.active { background:#059669; border-color:#059669; color:#fff; }
.club-stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.5rem; margin-bottom:3rem; }
.club-stat-card { background:var(--color-primary-light); padding:1.5rem; border-radius:var(--radius-lg); display:flex; justify-content:space-between; align-items:center; }
[data-theme="dark"] .club-stat-card { background:#283040; }
.club-stat-card .label { font-size:.82rem; font-weight:700; color:var(--color-primary); margin-bottom:.25rem; display:block; }
[data-theme="dark"] .club-stat-card .label { color:#34d399; }
.club-stat-card h4 { font-size:1.5rem; font-weight:800; margin:0; color:var(--text); }
[data-theme="dark"] .club-stat-card h4 { color:#f9fafb; }
.club-stat-icon { font-size:2.2rem; opacity:.3; color:var(--color-primary); }
.club-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:1.5rem; margin-bottom:3rem; }
.club-card { background:var(--bg-card); border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border); transition:transform .3s,box-shadow .3s; padding:1.5rem; display:flex; flex-direction:column; gap:1rem; }
.club-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
[data-theme="dark"] .club-card { background:#1f2937; border-color:#374151; }
.club-name { font-size:1.2rem; font-weight:700; margin-bottom:.5rem; color:var(--text); }
[data-theme="dark"] .club-name { color:#f9fafb; }
.club-meta { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1rem; font-size:.88rem; color:var(--text-muted); margin-bottom:.75rem; }
[data-theme="dark"] .club-meta { color:#d1d5db; }
.club-intro { font-size:.88rem; color:var(--text-muted); line-height:1.55; margin-bottom:1rem; text-align:center; }
[data-theme="dark"] .club-intro { color:#d1d5db; }
.club-btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; background:transparent; border:1px solid var(--color-primary); color:var(--color-primary); padding:.5rem 1rem; border-radius:var(--radius); font-size:.88rem; font-weight:600; cursor:pointer; transition:all .2s; width:100%; }
.club-btn:hover { background:var(--color-primary); color:#fff; }
[data-theme="dark"] .club-btn { color:#34d399; border-color:#34d399; }
[data-theme="dark"] .club-btn:hover { background:#34d399; color:#111827; }
.club-empty { text-align:center; padding:4rem 1rem; color:var(--text-muted); }
.club-detail-head { display:flex; gap:1.5rem; align-items:flex-start; margin-bottom:1.5rem; flex-wrap:wrap; }
.club-detail-info h3 { font-size:1.3rem; font-weight:700; margin:0 0 .75rem; color:var(--text); border-bottom:2px solid var(--color-primary); display:inline-block; padding-bottom:4px; }
[data-theme="dark"] .club-detail-info h3 { color:#f9fafb; border-bottom-color:#34d399; }
.club-detail-meta-item { display:flex; align-items:center; gap:.5rem; font-size:.92rem; color:var(--text-muted); }
[data-theme="dark"] .club-detail-meta-item { color:#d1d5db; }
.club-intro-full { background:var(--bg-muted); padding:1rem; border-radius:8px; margin-bottom:1.5rem; font-size:.92rem; line-height:1.65; }
[data-theme="dark"] .club-intro-full { background:#283040; color:#d1d5db; }
.club-members-section h4 { font-size:1rem; font-weight:700; margin-bottom:1rem; padding-bottom:8px; border-bottom:1px solid var(--border); color:var(--text); }
[data-theme="dark"] .club-members-section h4 { border-color:#374151; color:#f9fafb; }
.club-member-list { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.club-member-item { display:flex; align-items:center; gap:.5rem; background:var(--bg-muted); padding:.4rem .8rem; border-radius:40px; }
[data-theme="dark"] .club-member-item { background:#283040; }
.club-member-name { font-size:.88rem; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--text); }
[data-theme="dark"] .club-member-name { color:#d1d5db; }
.club-member-hc { font-size:.72rem; background:var(--color-primary-light); color:var(--color-primary); padding:.15rem .5rem; border-radius:30px; white-space:nowrap; }
[data-theme="dark"] .club-member-hc { background:rgba(52,211,153,.15); color:#34d399; }
@media (max-width:768px) {
  .club-tab { padding:.5rem 1.25rem; font-size:.88rem; }
  .club-stats-row { grid-template-columns:1fr; }
  .club-grid { grid-template-columns:1fr; }
  .club-detail-head { flex-direction:column; align-items:center; text-align:center; }
}

/* ━━ course_guide.php ━━ */
.course-tabs-container { position:relative; z-index:10; margin-bottom:3rem; }
.course-tabs { display:flex; gap:.75rem; overflow-x:auto; padding-bottom:.5rem; }
.course-tabs::-webkit-scrollbar { display:none; }
.course-tab { white-space:nowrap; padding:.7rem 1.75rem; border-radius:var(--radius); background:var(--bg-white); border:1px solid var(--border); color:var(--text-muted); font-weight:600; font-size:.95rem; cursor:pointer; transition:all .3s; text-decoration:none; display:inline-block; }
.course-tab:hover  { background:var(--color-primary-light); color:var(--color-primary); }
.course-tab.active { background:var(--color-primary); color:#fff; border-color:var(--color-primary); }
[data-theme="dark"] .course-tab { background:#283040; border-color:#4b5563; color:#d1d5db; }
[data-theme="dark"] .course-tab:hover  { background:rgba(52,211,153,.1); color:#34d399; border-color:#34d399; }
[data-theme="dark"] .course-tab.active { background:#059669; border-color:#059669; color:#fff; }
.course-info-section { display:grid; grid-template-columns:1fr; gap:2rem; margin-bottom:3rem; }
@media (min-width:1024px) { .course-info-section { grid-template-columns:2fr 1fr; } }
.course-card { background:var(--bg-card); padding:2rem; border-radius:var(--radius-xl); border:1px solid var(--border); }
[data-theme="dark"] .course-card { background:#1f2937; border-color:#374151; }
.course-status-card { background:var(--color-primary); color:#fff; display:flex; flex-direction:column; justify-content:space-between; }
.course-info-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1.5rem; }
.course-info-item label { display:block; font-size:.75rem; font-weight:700; color:var(--color-primary); text-transform:uppercase; margin-bottom:.4rem; }
.course-info-item p { font-size:.95rem; font-weight:500; color:var(--text); }
[data-theme="dark"] .course-info-item label { color:#34d399; }
[data-theme="dark"] .course-info-item p { color:#f9fafb; }
.course-stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.5rem; margin-bottom:3rem; }
.course-stat-card { background:var(--color-primary-light); padding:1.5rem; border-radius:var(--radius-lg); display:flex; justify-content:space-between; align-items:center; }
[data-theme="dark"] .course-stat-card { background:#283040; }
.course-stat-card .label { font-size:.82rem; font-weight:700; color:var(--color-primary); margin-bottom:.25rem; display:block; }
[data-theme="dark"] .course-stat-card .label { color:#34d399; }
.course-stat-card h4 { font-size:1.5rem; font-weight:800; margin:0; color:var(--text); }
[data-theme="dark"] .course-stat-card h4 { color:#f9fafb; }
.course-section-title { display:flex; align-items:center; gap:.75rem; margin-bottom:1.5rem; font-size:1.5rem; font-weight:700; color:var(--text); }
[data-theme="dark"] .course-section-title { color:#f9fafb; }
.course-fees-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.25rem; margin-bottom:2rem; }
.course-fee-card { background:var(--bg-card); padding:1.5rem; border-radius:var(--radius-lg); border:1px solid var(--border); }
[data-theme="dark"] .course-fee-card { background:#1f2937; border-color:#374151; }
.course-fee-card .category { font-size:.88rem; font-weight:700; color:var(--text-muted); margin-bottom:.75rem; }
[data-theme="dark"] .course-fee-card .category { color:#d1d5db; }
.course-fee-card .price { font-size:1.75rem; font-weight:800; color:var(--color-primary); margin-bottom:.5rem; }
[data-theme="dark"] .course-fee-card .price { color:#34d399; }
.course-fee-card .price.secondary { color:#3b82f6; }
[data-theme="dark"] .course-fee-card .price.secondary { color:#60a5fa; }
.course-fee-card .note { font-size:.78rem; color:var(--text-muted); }
[data-theme="dark"] .course-fee-card .note { color:#9ca3af; }
.course-discount-box { background:var(--bg-muted); border-left:4px solid var(--color-primary); padding:1.5rem; border-radius:var(--radius-lg); margin-bottom:3rem; }
[data-theme="dark"] .course-discount-box { background:#283040; border-left-color:#34d399; }
.course-discount-box h3 { display:flex; align-items:center; gap:.5rem; font-size:1.1rem; margin-bottom:1rem; color:var(--text); }
[data-theme="dark"] .course-discount-box h3 { color:#f9fafb; }
.course-discount-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:.75rem; list-style:none; padding:0; margin:0; }
.course-discount-list li { position:relative; padding-left:1.2rem; font-size:.92rem; color:var(--text-muted); }
[data-theme="dark"] .course-discount-list li { color:#d1d5db; }
.course-discount-list li::before { content:"✓"; position:absolute; left:0; color:var(--color-primary); font-weight:700; }
[data-theme="dark"] .course-discount-list li::before { color:#34d399; }
.course-seasons-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.5rem; margin-bottom:3rem; }
.course-season-card { background:var(--bg-card); padding:1.5rem; border-radius:var(--radius-lg); border:1px solid var(--border); position:relative; overflow:hidden; }
[data-theme="dark"] .course-season-card { background:#1f2937; border-color:#374151; }
.course-season-card h4 { font-size:.78rem; color:var(--color-primary); font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-bottom:.5rem; }
[data-theme="dark"] .course-season-card h4 { color:#34d399; }
.course-season-card h3 { font-size:1.2rem; font-weight:700; margin-bottom:1rem; color:var(--text); }
[data-theme="dark"] .course-season-card h3 { color:#f9fafb; }
.course-time-row { display:flex; justify-content:space-between; align-items:center; padding:.6rem 0; border-bottom:1px solid var(--border); }
[data-theme="dark"] .course-time-row { border-bottom-color:#374151; }
.course-time-row span:first-child { color:var(--text-muted); font-size:.88rem; }
[data-theme="dark"] .course-time-row span:first-child { color:#d1d5db; }
.course-time-row span:last-child { font-weight:700; font-size:.92rem; color:var(--text); }
[data-theme="dark"] .course-time-row span:last-child { color:#f9fafb; }
.course-layout-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:1.5rem; margin-bottom:3rem; }
.course-layout-card { background:var(--bg-card); border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border); transition:transform .3s,box-shadow .3s; }
[data-theme="dark"] .course-layout-card { background:#1f2937; border-color:#374151; }
.course-layout-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.course-layout-img { height:180px; position:relative; background:var(--bg-muted); display:flex; align-items:center; justify-content:center; }
[data-theme="dark"] .course-layout-img { background:#283040; }
.course-layout-info { padding:20px; }
.course-layout-info h3 { font-size:1.15rem; font-weight:700; margin-bottom:.5rem; color:var(--text); }
[data-theme="dark"] .course-layout-info h3 { color:#f9fafb; }
.course-layout-info p { color:var(--text-muted); margin-bottom:1rem; font-size:.88rem; line-height:1.55; }
[data-theme="dark"] .course-layout-info p { color:#d1d5db; }
.course-layout-link { display:inline-flex; align-items:center; gap:.5rem; color:var(--color-primary); text-decoration:none; font-weight:700; font-size:.82rem; }
[data-theme="dark"] .course-layout-link { color:#34d399; }
.course-info-grid-ext { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1.25rem; }
.course-info-item-ext { background:var(--bg-muted); border-radius:var(--radius-lg); padding:.9rem 1rem; border:1px solid var(--border); display:flex; flex-direction:column; gap:.3rem; }
[data-theme="dark"] .course-info-item-ext { background:#283040; border-color:#374151; }
.course-info-item-ext label { font-size:.72rem; font-weight:700; color:var(--color-primary); text-transform:uppercase; letter-spacing:.06em; }
[data-theme="dark"] .course-info-item-ext label { color:#34d399; }
.course-info-item-ext p { font-size:.92rem; font-weight:600; color:var(--text); margin:0; }
[data-theme="dark"] .course-info-item-ext p { color:#f9fafb; }
.course-info-item-ext small { font-size:.75rem; color:var(--text-muted); }
[data-theme="dark"] .course-info-item-ext small { color:#9ca3af; }
/* Swiper */
/* [복구] 오늘의 코스 컨디션 — Swiper 히어로 이미지 영역 (블록 전체가 누락되어 사진이 카드 안에 박스로 얹히던 문제 수정) */
.course-status-card { padding:0 !important; overflow:hidden; min-height:320px; }
.cond-swiper { width:100%; height:100%; min-height:320px; border-radius:var(--radius-xl); overflow:hidden; }
.cond-swiper .swiper-slide { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:320px; }
.cond-slide-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cond-slide-img-fallback { position:absolute; inset:0; background:linear-gradient(135deg, var(--color-primary) 0%, #0a4a1a 100%); }
.cond-slide-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.75) 0%, rgba(0,0,0,.1) 60%, transparent 100%); }
.cond-slide-body { position:relative; z-index:2; padding:1.5rem; color:#fff; }
.cond-slide-title { font-size:1.05rem; font-weight:700; margin-bottom:.6rem; display:flex; align-items:center; gap:.4rem; }
.cond-badges { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-bottom:1.1rem; }
.cond-badge { display:inline-flex; align-items:center; justify-content:center; gap:.25rem; background:rgba(255,255,255,.22); backdrop-filter:blur(4px); padding:.3rem .8rem; border-radius:30px; font-size:.8rem; font-weight:600; border:1px solid rgba(255,255,255,.3); white-space:nowrap; }
.cond-badge.green  { background:rgba(5,150,105,.7);  border-color:rgba(5,150,105,.8); }
.cond-badge.blue   { background:rgba(37,99,235,.65); border-color:rgba(37,99,235,.8); }
.cond-badge.yellow { background:rgba(217,119,6,.7);  border-color:rgba(217,119,6,.8); }
.cond-swiper .swiper-pagination { bottom:4.5rem; }
.cond-swiper .swiper-pagination-bullet { background:rgba(255,255,255,.6); opacity:1; width:6px; height:6px; }
.cond-swiper .swiper-pagination-bullet-active { background:#fff; width:18px; border-radius:3px; }
.cond-swiper .swiper-button-prev, .cond-swiper .swiper-button-next { width:30px; height:30px; background:rgba(255,255,255,.25); backdrop-filter:blur(4px); border-radius:50%; top:1rem; margin-top:0; }
.cond-swiper .swiper-button-prev { left:.75rem; }
.cond-swiper .swiper-button-next { right:.75rem; }
.cond-swiper .swiper-button-prev::after, .cond-swiper .swiper-button-next::after { font-size:11px; color:#fff; font-weight:700; }
.cond-reserve-btn { display:block; width:100%; background:#fff; color:var(--color-primary); border:none; padding:.75rem; border-radius:var(--radius); font-weight:700; font-size:.92rem; cursor:pointer; text-align:center; text-decoration:none; transition:transform .2s, opacity .2s; }
.cond-reserve-btn:hover { transform:scale(.98); opacity:.92; }
[data-theme="dark"] .cond-reserve-btn { background:#059669; color:#fff; }
[data-theme="dark"] .cond-reserve-btn:hover { background:#047857; }
@media (max-width:768px) {
  .course-tab { padding:.5rem 1.25rem; font-size:.88rem; }
  .course-card,.course-status-card { padding:1.25rem; }
  .course-info-grid { grid-template-columns:1fr; gap:1rem; }
  .course-stats-row,.course-seasons-grid,.course-layout-grid { grid-template-columns:1fr; }
  .course-fees-grid { grid-template-columns:repeat(2,1fr); }   /* 태블릿: 요금 카드 한 줄에 2개 */
  .course-section-title { font-size:1.25rem; }
  .course-info-grid-ext { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px) { .course-info-grid-ext { grid-template-columns:1fr; } }
@media (max-width:480px) {
  .course-stat-card h4 { font-size:1.2rem; }
  .course-fee-card .price { font-size:1.5rem; }
  .course-fees-grid { grid-template-columns:1fr; }   /* 모바일: 요금 카드 1열 */
}

/* ━━ tips / fee / hours 탭 공통 ━━ */
.tips-tabs-container,.fee-tabs-container,.hours-tabs-container { position:relative; z-index:10; margin-bottom:2rem; }
.tips-tabs,.fee-tabs,.hours-tabs { display:flex; gap:.75rem; overflow-x:auto; padding-bottom:.5rem; }
.tips-tabs::-webkit-scrollbar,.fee-tabs::-webkit-scrollbar,.hours-tabs::-webkit-scrollbar { display:none; }
.tips-tab,.fee-tab,.hours-tab { white-space:nowrap; padding:.7rem 1.75rem; border-radius:var(--radius); background:var(--bg-white); border:1px solid var(--border); color:var(--text-muted); font-weight:600; font-size:.95rem; cursor:pointer; transition:all .3s; text-decoration:none; display:inline-block; }
.tips-tab:hover,.fee-tab:hover,.hours-tab:hover   { background:var(--color-primary-light); color:var(--color-primary); }
.tips-tab.active,.fee-tab.active,.hours-tab.active { background:var(--color-primary); color:#fff; border-color:var(--color-primary); }
[data-theme="dark"] .tips-tab,[data-theme="dark"] .fee-tab,[data-theme="dark"] .hours-tab { background:#283040; border-color:#4b5563; color:#d1d5db; }
[data-theme="dark"] .tips-tab:hover,[data-theme="dark"] .fee-tab:hover,[data-theme="dark"] .hours-tab:hover   { background:rgba(52,211,153,.1); color:#34d399; border-color:#34d399; }
[data-theme="dark"] .tips-tab.active,[data-theme="dark"] .fee-tab.active,[data-theme="dark"] .hours-tab.active { background:#059669; border-color:#059669; color:#fff; }

/* tips 고유 */
.tips-sub-tabs { display:flex; gap:.5rem; margin-bottom:2rem; flex-wrap:wrap; border-bottom:1px solid var(--border); padding-bottom:.75rem; }
[data-theme="dark"] .tips-sub-tabs { border-bottom-color:#374151; }
.tips-sub-tab { padding:.4rem 1.2rem; border-radius:var(--radius); background:var(--bg-muted); text-decoration:none; font-size:.88rem; font-weight:500; color:var(--text-muted); transition:all .2s; }
.tips-sub-tab:hover  { background:var(--color-primary-light); color:var(--color-primary); }
.tips-sub-tab.active { background:var(--color-primary); color:#fff; }
[data-theme="dark"] .tips-sub-tab { background:#283040; color:#d1d5db; }
[data-theme="dark"] .tips-sub-tab:hover  { background:rgba(52,211,153,.1); color:#34d399; }
[data-theme="dark"] .tips-sub-tab.active { background:#059669; color:#fff; }

.tips-stats-row,.fee-stats-row,.hours-stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.5rem; margin-bottom:3rem; }
.tips-stat-card,.fee-stat-card,.hours-stat-card { background:var(--color-primary-light); padding:1.5rem; border-radius:var(--radius-lg); display:flex; justify-content:space-between; align-items:center; }
[data-theme="dark"] .tips-stat-card,[data-theme="dark"] .fee-stat-card,[data-theme="dark"] .hours-stat-card { background:#283040; }
.tips-stat-card .label,.fee-stat-card .label,.hours-stat-card .label { font-size:.82rem; font-weight:700; color:var(--color-primary); margin-bottom:.25rem; display:block; }
[data-theme="dark"] .tips-stat-card .label,[data-theme="dark"] .fee-stat-card .label,[data-theme="dark"] .hours-stat-card .label { color:#34d399; }
.tips-stat-card h4,.fee-stat-card h4,.hours-stat-card h4 { font-size:1.5rem; font-weight:800; margin:0; color:var(--text); }
[data-theme="dark"] .tips-stat-card h4,[data-theme="dark"] .fee-stat-card h4,[data-theme="dark"] .hours-stat-card h4 { color:#f9fafb; }
.tips-stat-icon,.fee-stat-icon,.hours-stat-icon { font-size:2.2rem; opacity:.3; color:var(--color-primary); }

.tips-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.5rem; margin-bottom:3rem; }
.tips-card { background:var(--bg-card); border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border); transition:transform .3s,box-shadow .3s; padding:1.5rem; text-align:center; }
.tips-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
[data-theme="dark"] .tips-card { background:#1f2937; border-color:#374151; }
.tips-course { font-size:.72rem; color:var(--color-primary); font-weight:600; margin-bottom:.25rem; text-transform:uppercase; letter-spacing:.05em; }
[data-theme="dark"] .tips-course { color:#34d399; }
.tips-hole-number { font-size:2rem; font-weight:800; color:var(--color-primary); margin-bottom:.25rem; }
[data-theme="dark"] .tips-hole-number { color:#34d399; }
.tips-par { font-size:.88rem; color:var(--text-muted); margin-bottom:.5rem; }
[data-theme="dark"] .tips-par { color:#d1d5db; }
.tips-distance { font-size:.92rem; font-weight:600; color:var(--text); margin-bottom:1rem; padding-bottom:.5rem; border-bottom:1px solid var(--border); }
[data-theme="dark"] .tips-distance { color:#f9fafb; border-bottom-color:#374151; }
.tips-content { font-size:.88rem; color:var(--text-muted); line-height:1.65; margin-bottom:1rem; text-align:left; }
[data-theme="dark"] .tips-content { color:#d1d5db; }
.tips-btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; background:transparent; border:1px solid var(--color-primary); color:var(--color-primary); padding:.5rem .8rem; border-radius:var(--radius); font-size:.82rem; font-weight:600; cursor:pointer; transition:all .2s; flex:1; }
.tips-btn:hover { background:var(--color-primary); color:#fff; }
[data-theme="dark"] .tips-btn { border-color:#34d399; color:#34d399; }
[data-theme="dark"] .tips-btn:hover { background:#34d399; color:#111827; }
.tips-add-btn { display:inline-flex; align-items:center; gap:.5rem; background:var(--color-primary); color:#fff; border:none; padding:.7rem 1.5rem; border-radius:var(--radius); font-size:.92rem; font-weight:600; cursor:pointer; transition:all .2s; margin-bottom:1.5rem; }
.tips-add-btn:hover { background:var(--color-primary-hover); }
[data-theme="dark"] .tips-add-btn { background:#059669; }
.tips-form-label { display:block; margin-bottom:.4rem; font-size:.88rem; font-weight:600; color:var(--text); }
[data-theme="dark"] .tips-form-label { color:#f9fafb; }
.tips-form-control { width:100%; padding:.7rem; border:1px solid var(--border); border-radius:8px; background:var(--bg-white); color:var(--text); font-family:inherit; font-size:.92rem; transition:all .2s; }
.tips-form-control:focus { outline:none; border-color:var(--color-primary); }
[data-theme="dark"] .tips-form-control { background:#283040; border-color:#4b5563; color:#f9fafb; }
[data-theme="dark"] .tips-form-control:focus { border-color:#34d399; }
textarea.tips-form-control { min-height:100px; resize:vertical; }
.tips-btn-submit { width:100%; background:var(--color-primary); color:#fff; border:none; padding:.8rem; border-radius:8px; font-size:.95rem; font-weight:600; cursor:pointer; margin-top:.5rem; }
.tips-btn-submit:hover { background:var(--color-primary-hover); }
[data-theme="dark"] .tips-btn-submit { background:#059669; }
/* ── 공략법 등록/수정 폼 레이아웃 ── */
.tips-form-group { margin-bottom:1.1rem; }
.tips-form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.tips-form-label .required { color:var(--pg-danger); margin-left:2px; font-weight:700; }
/* ── 홀 공략법 상세 모달 (기본/라이트) ── */
.tips-detail { text-align:left; }
.tips-detail-head { text-align:center; padding:.25rem 0 1.25rem; border-bottom:1px solid var(--border); margin-bottom:1.35rem; }
.tips-detail-hole { font-size:1.9rem; font-weight:800; color:var(--color-primary); line-height:1.15; margin-bottom:.55rem; }
.tips-detail-par, .tips-detail-distance { display:inline-block; margin:.15rem .2rem 0; padding:.28rem .85rem; border-radius:999px; font-size:.85rem; font-weight:700; vertical-align:middle; }
.tips-detail-par { background:var(--color-primary); color:#fff; }
.tips-detail-distance { background:var(--bg-muted); color:var(--text); }
.tips-detail-content { background:var(--bg-muted); border-radius:12px; padding:1rem 1.15rem; font-size:.92rem; line-height:1.7; color:var(--text); margin-bottom:1rem; }
.tips-detail-content strong { display:inline-block; margin-bottom:.45rem; color:var(--color-primary); font-size:.95rem; }
.tips-detail-strategy { background:rgba(27,94,32,.06); border-left:3px solid var(--color-primary); border-radius:8px; padding:1rem 1.15rem; font-size:.92rem; line-height:1.7; color:var(--text); margin-bottom:1rem; }
.tips-detail-strategy h4 { margin:0 0 .5rem; font-size:.95rem; color:var(--color-primary); }
.tips-detail-image { margin-top:1rem; }
.tips-detail-image img { width:100%; border-radius:12px; display:block; }

/* ── 홀 공략법 상세 모달 (다크) ── */
[data-theme="dark"] .tips-detail-head { border-bottom-color:#374151; }
[data-theme="dark"] .tips-detail-hole { color:#34d399; }
[data-theme="dark"] .tips-detail-par { background:#059669; color:#fff; }
[data-theme="dark"] .tips-detail-distance { background:#283040; color:#f9fafb; }
[data-theme="dark"] .tips-detail-content { background:#283040; color:#d1d5db; }
[data-theme="dark"] .tips-detail-strategy { background:rgba(52,211,153,.1); border-left-color:#34d399; color:#d1d5db; }
[data-theme="dark"] .tips-detail-strategy h4 { color:#34d399; }

/* ── 코스 상세 모달 헤더 (아이콘 + 코스명 한 줄) ── */
.pg-club-detail-head { display:flex; align-items:center; gap:.85rem; margin-bottom:1.25rem; }
.pg-club-detail-logo { flex:0 0 auto; }
.pg-club-logo-placeholder { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:var(--color-primary); color:#fff; font-size:1.2rem; }
.pg-club-detail-head h3 { margin:0 0 .2rem; font-size:1.15rem; font-weight:700; color:var(--text); line-height:1.25; }
.pg-club-detail-meta { display:flex; align-items:center; gap:.35rem; font-size:.85rem; color:var(--text-muted); }
.pg-club-detail-meta i { color:var(--color-primary); }
[data-theme="dark"] .pg-club-logo-placeholder { background:#059669; }
[data-theme="dark"] .pg-club-detail-head h3 { color:#f9fafb; }
[data-theme="dark"] .pg-club-detail-meta { color:#d1d5db; }

/* fee 카드 */
.fee-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.5rem; margin-bottom:3rem; }
.fee-card { background:var(--bg-card); border-radius:var(--radius-lg); border:1px solid var(--border); padding:1.75rem; text-align:center; transition:transform .3s,box-shadow .3s; }
.fee-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
[data-theme="dark"] .fee-card { background:#1f2937; border-color:#374151; }
.fee-card.highlight { border:2px solid var(--color-primary); position:relative; }
.fee-card.highlight::before { content:'RECOMMEND'; position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--color-primary); color:#fff; font-size:.72rem; font-weight:700; padding:.2rem .8rem; border-radius:var(--radius); white-space:nowrap; }
[data-theme="dark"] .fee-card.highlight { border-color:#34d399; }
[data-theme="dark"] .fee-card.highlight::before { background:#059669; }
.fee-card .category { font-size:.88rem; font-weight:700; color:var(--text-muted); margin-bottom:.75rem; text-transform:uppercase; }
[data-theme="dark"] .fee-card .category { color:#d1d5db; }
.fee-card .price { font-size:2rem; font-weight:800; color:var(--color-primary); margin-bottom:.5rem; }
[data-theme="dark"] .fee-card .price { color:#34d399; }
.fee-card .price.secondary { color:#3b82f6; }
[data-theme="dark"] .fee-card .price.secondary { color:#60a5fa; }
.fee-card .note { font-size:.78rem; color:var(--text-muted); }
[data-theme="dark"] .fee-card .note { color:#9ca3af; }
.fee-discount-box { background:var(--bg-muted); border-left:4px solid var(--color-primary); padding:1.5rem; border-radius:var(--radius-lg); margin-bottom:3rem; }
[data-theme="dark"] .fee-discount-box { background:#283040; border-left-color:#34d399; }
.fee-discount-box h3 { display:flex; align-items:center; gap:.5rem; font-size:1.1rem; margin-bottom:1rem; color:var(--text); }
[data-theme="dark"] .fee-discount-box h3 { color:#f9fafb; }
.fee-discount-list li { position:relative; padding-left:1.2rem; font-size:.92rem; color:var(--text-muted); line-height:1.55; }
[data-theme="dark"] .fee-discount-list li { color:#d1d5db; }
.fee-discount-list li::before { content:"✓"; position:absolute; left:0; color:var(--color-primary); font-weight:700; }
[data-theme="dark"] .fee-discount-list li::before { color:#34d399; }
.fee-info-banner { background:var(--color-primary-light); border-radius:var(--radius-lg); padding:1.5rem; display:flex; align-items:flex-start; gap:1rem; margin-top:1rem; }
[data-theme="dark"] .fee-info-banner { background:rgba(52,211,153,.1); }
.fee-info-banner strong { font-size:.95rem; color:var(--color-primary); display:block; margin-bottom:.3rem; }
[data-theme="dark"] .fee-info-banner strong { color:#34d399; }
.fee-info-banner p { font-size:.88rem; color:var(--text-muted); margin:0; }
[data-theme="dark"] .fee-info-banner p { color:#d1d5db; }
@media (max-width:768px) {
  .tips-stats-row,.fee-stats-row { grid-template-columns:1fr; }
  .tips-grid { grid-template-columns:1fr; }
  .fee-grid { grid-template-columns:repeat(2,1fr); }   /* 태블릿: 요금 카드 한 줄에 2개 */
}
@media (max-width:480px) {
  .tips-stat-card h4,.fee-stat-card h4 { font-size:1.2rem; }
  .fee-card .price { font-size:1.5rem; }
  .fee-grid { grid-template-columns:1fr; }   /* 모바일: 요금 카드 1열 */
}

/* hours 테이블 */
.hours-today-banner { background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover)); color:#fff; border-radius:var(--radius-lg); padding:1.5rem 2rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:2rem; }
.hours-today-badge,.hours-badge { background:rgba(255,255,255,.25); padding:.25rem .75rem; border-radius:var(--radius); font-size:.78rem; font-weight:700; }
.hours-table-wrap { overflow-x:auto; border-radius:var(--radius-lg); border:1px solid var(--border); margin-bottom:2rem; }
[data-theme="dark"] .hours-table-wrap { border-color:#374151; }
.hours-table { width:100%; border-collapse:collapse; font-size:.92rem; }
.hours-table th { background:var(--color-primary-light); padding:1rem; text-align:center; font-weight:700; color:var(--color-primary); border-bottom:2px solid var(--border); }
[data-theme="dark"] .hours-table th { background:rgba(52,211,153,.12); color:#34d399; border-bottom-color:#374151; }
.hours-table td { padding:.92rem 1rem; text-align:center; border-bottom:1px solid var(--border); color:var(--text); }
[data-theme="dark"] .hours-table td { color:#f9fafb; border-bottom-color:#374151; }
.hours-table tr:hover td { background:var(--bg-muted); }
[data-theme="dark"] .hours-table tr:hover td { background:#283040; }
.hours-row-highlight { background:var(--color-primary-light); }
[data-theme="dark"] .hours-row-highlight { background:rgba(52,211,153,.1); }
.hours-notice-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.5rem; margin-top:2rem; }
.hours-notice-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.5rem; text-align:center; transition:transform .3s,box-shadow .3s; }
.hours-notice-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
[data-theme="dark"] .hours-notice-card { background:#1f2937; border-color:#374151; }
.hours-notice-card h4 { font-size:1rem; font-weight:700; margin-bottom:.5rem; color:var(--text); }
[data-theme="dark"] .hours-notice-card h4 { color:#f9fafb; }
.hours-notice-card p { font-size:.88rem; color:var(--text-muted); line-height:1.65; }
[data-theme="dark"] .hours-notice-card p { color:#d1d5db; }
@media (max-width:768px) {
  .hours-tab { padding:.5rem 1.25rem; font-size:.88rem; }
  .hours-stats-row { grid-template-columns:1fr; }
  .hours-today-banner { flex-direction:column; text-align:center; }
  .hours-notice-grid { grid-template-columns:1fr; }
}
@media (max-width:480px) {
  .hours-stat-card h4 { font-size:1.2rem; }
  .hours-table th,.hours-table td { font-size:.78rem; padding:.5rem .3rem; }
}

/* ━━ noshow_policy.php ━━ */
.pg-alert { display:flex; align-items:flex-start; gap:1rem; background:#fff8e1; border-left:4px solid #c9a84c; border-radius:var(--radius); padding:1.1rem 1.4rem; margin-bottom:2rem; }
[data-theme="dark"] .pg-alert { background:rgba(201,168,76,.12); }
.pg-alert-text { font-size:.92rem; color:#6b4c00; }
.pg-alert-text strong { color:#4a3400; display:block; margin-bottom:.2rem; font-size:.95rem; }
[data-theme="dark"] .pg-alert-text { color:#fbbf24; }
[data-theme="dark"] .pg-alert-text strong { color:#fcd34d; }
.pg-card-head { display:flex; align-items:center; gap:.8rem; padding:1.2rem 1.6rem; background:var(--color-primary-light); border-bottom:1px solid var(--border); cursor:pointer; user-select:none; }
[data-theme="dark"] .pg-card-head { background:rgba(52,211,153,.1); border-color:#374151; }
.pg-card-head-icon { width:2.4rem; height:2.4rem; border-radius:50%; background:var(--color-primary); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.pg-card-head h2 { font-size:1.05rem; font-weight:700; color:var(--color-primary); flex:1; margin:0; }
[data-theme="dark"] .pg-card-head h2 { color:#34d399; }
.pg-card-head .pg-arrow { font-size:.85rem; color:var(--color-primary); transition:transform var(--transition); }
.pg-card-head.open .pg-arrow { transform:rotate(180deg); }
.pg-steps { list-style:none; margin:0; padding:0; }
.pg-steps li { display:flex; align-items:flex-start; gap:1rem; padding:.8rem 0; border-bottom:1px dashed var(--border); }
.pg-steps li:last-child { border-bottom:none; }
[data-theme="dark"] .pg-steps li { border-bottom-color:#374151; }
.pg-step-num { width:1.8rem; height:1.8rem; border-radius:50%; background:var(--color-primary); color:#fff; font-size:.82rem; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
[data-theme="dark"] .pg-step-num { background:#059669; }
.pg-step-text { font-size:.92rem; color:var(--text-muted); }
[data-theme="dark"] .pg-step-text { color:#d1d5db; }
.pg-step-text strong { color:var(--text); display:block; margin-bottom:.1rem; }
[data-theme="dark"] .pg-step-text strong { color:#f9fafb; }
.pg-info-box.red   { background:rgba(225,29,72,.08);  border:none; border-left:4px solid var(--color-danger);  color:var(--color-danger); }
.pg-info-box.green { background:var(--color-primary-light); border:none; border-left:4px solid var(--color-primary); color:var(--color-primary); }
.pg-info-box.blue  { background:rgba(2,132,199,.08);  border:none; border-left:4px solid var(--color-info);    color:var(--color-info); }
[data-theme="dark"] .pg-info-box.red   { background:rgba(248,113,113,.1); color:#f87171; border-left-color:#f87171; }
[data-theme="dark"] .pg-info-box.green { background:rgba(52,211,153,.1);  color:#34d399; border-left-color:#34d399; }
[data-theme="dark"] .pg-info-box.blue  { background:rgba(96,165,250,.1);  color:#60a5fa; border-left-color:#60a5fa; }
[data-theme="dark"] .pg-table tbody tr:hover { background:rgba(52,211,153,.08); }

/* ━━ ranking.php ━━ */
.ranking-tabs { display:flex; justify-content:center; gap:.75rem; margin-top:-1.8rem; margin-bottom:2rem; position:relative; z-index:10; flex-wrap:wrap; }
.ranking-tab { padding:.72rem 1.8rem; background:var(--pg-card); border:1px solid var(--pg-border); border-radius:var(--pg-radius); font-size:.92rem; font-weight:700; color:var(--pg-text-m); cursor:pointer; transition:all var(--pg-transition); box-shadow:var(--pg-shadow-sm); text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; }
.ranking-tab:hover { transform:translateY(-2px); color:var(--pg-primary); }
.ranking-tab.active { background:var(--pg-primary); color:#fff; border-color:var(--pg-primary); box-shadow:0 6px 16px rgba(27,94,32,.3); }
[data-theme="dark"] .ranking-tab { background:#1f2937; border-color:#374151; color:#d1d5db; }
[data-theme="dark"] .ranking-tab:hover { color:#34d399; }
[data-theme="dark"] .ranking-tab.active { background:#059669; border-color:#059669; }
.ranking-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:2rem; }
.stat-card { background:var(--pg-card); border-radius:var(--pg-radius-lg); padding:1rem 1.25rem; text-align:center; border:1px solid var(--pg-border); transition:all var(--pg-transition); }
.stat-card:hover { transform:translateY(-3px); box-shadow:var(--pg-shadow-md); }
[data-theme="dark"] .stat-card { background:#1f2937; border-color:#374151; }
.stat-icon  { font-size:1.5rem; color:var(--pg-primary); margin-bottom:.25rem; }
.stat-value { font-size:1.4rem; font-weight:800; color:var(--pg-text); line-height:1.2; }
.stat-label { font-size:.72rem; color:var(--pg-text-m); margin-top:.25rem; }
.ranking-search { background:var(--pg-card); border-radius:var(--pg-radius-lg); padding:1.25rem 1.5rem; margin-bottom:2rem; border:1px solid var(--pg-border); }
[data-theme="dark"] .ranking-search { background:#1f2937; border-color:#374151; }
.search-input { width:100%; padding:.65rem 1rem; border:1px solid var(--pg-border); border-radius:var(--pg-radius); font-size:.88rem; background:var(--pg-card); color:var(--pg-text); }
[data-theme="dark"] .search-input { background:#283040; border-color:#4b5563; color:#f9fafb; }
.search-btn { padding:.65rem 1.5rem; background:var(--pg-primary); color:#fff; border:none; border-radius:var(--pg-radius); font-weight:600; font-size:.88rem; cursor:pointer; }
[data-theme="dark"] .search-btn { background:#059669; }
.reset-btn { padding:.65rem 1.5rem; background:var(--pg-border); color:var(--pg-text-m); border:none; border-radius:var(--pg-radius); font-weight:600; font-size:.88rem; cursor:pointer; }
[data-theme="dark"] .reset-btn { background:#374151; color:#d1d5db; }
[data-theme="dark"] .reset-btn:hover { background:#4b5563; color:#f9fafb; }
.ranking-table-wrap { overflow-x:auto; border-radius:var(--pg-radius-lg); border:1px solid var(--pg-border); background:var(--pg-card); }
[data-theme="dark"] .ranking-table-wrap { border-color:#374151; background:#1f2937; }
.ranking-table { width:100%; border-collapse:collapse; font-size:.88rem; min-width:700px; }
.ranking-table th { padding:.92rem .7rem; text-align:center; background:var(--pg-primary-lt); color:var(--pg-primary); font-weight:700; font-size:.82rem; border-bottom:2px solid #bbf7d0; }
[data-theme="dark"] .ranking-table th { background:rgba(52,211,153,.12); color:#34d399; border-bottom-color:rgba(52,211,153,.3); }
.ranking-table td { padding:.82rem .7rem; text-align:center; border-bottom:1px solid var(--pg-border); color:var(--pg-text); }
[data-theme="dark"] .ranking-table td { color:#f9fafb; border-bottom-color:#374151; }
.ranking-table tr:hover td { background:var(--pg-primary-lt); }
[data-theme="dark"] .ranking-table tr:hover td { background:rgba(52,211,153,.07); }
.rank-medal { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; font-weight:800; font-size:.88rem; }
.rank-1 { background:linear-gradient(135deg,#fbbf24,#f59e0b); color:#fff; }
.rank-2 { background:linear-gradient(135deg,#cbd5e1,#94a3b8); color:#fff; }
.rank-3 { background:linear-gradient(135deg,#fdba74,#ea580c); color:#fff; }
.rank-normal { background:var(--pg-border); color:var(--pg-text-m); font-weight:700; }
[data-theme="dark"] .rank-normal { background:#374151; color:#d1d5db; }
.player-profile { display:flex; align-items:center; gap:.6rem; }
.player-avatar { width:34px; height:34px; border-radius:50%; background:var(--pg-border); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.82rem; color:var(--pg-text-m); flex-shrink:0; }
[data-theme="dark"] .player-avatar { background:#374151; color:#d1d5db; }
.player-name  { font-weight:700; color:var(--pg-text); font-size:.88rem; }
.player-club  { font-size:.7rem; color:var(--pg-text-m); }
.score-stroke { color:var(--pg-primary); font-weight:800; font-size:.95rem; }
.score-points { color:var(--pg-info); font-weight:800; font-size:.95rem; }
.ranking-empty { text-align:center; padding:3rem 2rem; background:var(--pg-card); border-radius:var(--pg-radius-lg); border:1px solid var(--pg-border); }
[data-theme="dark"] .ranking-empty { background:#1f2937; border-color:#374151; }
.filter-badge { display:inline-flex; align-items:center; gap:.3rem; background:var(--pg-primary-lt); padding:.2rem .6rem; border-radius:20px; font-size:.88rem; color:var(--pg-primary); margin-right:.5rem; }
[data-theme="dark"] .filter-badge { background:rgba(52,211,153,.12); color:#34d399; }
.ranking-info { margin-top:2rem; padding:.82rem 1rem; background:var(--pg-bg); border-radius:var(--pg-radius); text-align:center; font-size:.78rem; color:var(--pg-text-m); border:1px solid var(--pg-border); }
[data-theme="dark"] .ranking-info { background:#283040; border-color:#374151; color:#9ca3af; }
@media (max-width:768px) {
  .ranking-stats { grid-template-columns:repeat(2,1fr); }
  .ranking-tab { padding:.5rem 1.2rem; font-size:.82rem; }
  .ranking-table th,.ranking-table td { padding:.6rem .4rem; font-size:.78rem; }
  .search-group { min-width:100%; }
  .search-form { flex-direction:column; align-items:stretch; }
}
@media (max-width:640px) {
  .ranking-tab { padding:.4rem 1rem; font-size:.78rem; }
}
@media (max-width:480px) {
  .ranking-stats { grid-template-columns:1fr; }   /* 모바일만 1열, 태블릿은 2열 유지 */
  .ranking-table th,.ranking-table td { padding:.5rem .3rem; font-size:.72rem; }
  .rank-medal { width:24px; height:24px; font-size:.72rem; }
}

/* ━━ reservation.php ━━ */
.rv-hero { position:relative; height:260px; overflow:hidden; display:flex; align-items:center; background:var(--color-primary); }
.rv-hero-content { position:relative; z-index:2; color:#fff; max-width:1280px; margin:0 auto; padding:0 1.5rem; width:100%; }
.rv-hero-content h1 { font-size:2.2rem; font-weight:800; margin-bottom:.4rem; }
.rv-layout { display:grid; grid-template-columns:1fr 1fr 340px; gap:1.5rem; align-items:start; margin-bottom:3rem; }
@media (max-width:1200px) { .rv-layout { grid-template-columns:1fr 1fr; } .rv-summary { grid-column:1/-1; } }
@media (max-width:768px) { .rv-layout { grid-template-columns:1fr; } .rv-hero { height:180px; } .rv-hero-content h1 { font-size:1.5rem; } }
.rv-card { background:var(--bg-card); border:1px solid var(--border); border-radius:14px; padding:1.5rem; }
[data-theme="dark"] .rv-card { background:#1f2937; border-color:#374151; }
.rv-card-title { font-size:1rem; font-weight:700; color:var(--color-primary); letter-spacing:.04em; padding-bottom:.6rem; border-bottom:2px solid var(--color-primary); margin-bottom:1.2rem; display:flex; align-items:center; gap:.5rem; }
[data-theme="dark"] .rv-card-title { color:#34d399; border-bottom-color:#34d399; }
.myp-card-title-row { justify-content:space-between; }
.btn-profile-edit { font-size:.82rem; font-weight:700; color:#fff; background:var(--color-primary); padding:.4rem .8rem; border-radius:8px; text-decoration:none; letter-spacing:0; display:inline-flex; align-items:center; gap:.35rem; white-space:nowrap; }
.btn-profile-edit:hover { background:var(--color-primary-hover); }
.rv-label { display:block; font-size:.92rem; font-weight:600; color:var(--text-muted); margin-bottom:.35rem; }
[data-theme="dark"] .rv-label { color:#d1d5db; }
/* [복구] 예약 폼 구조 클래스 — 어느 CSS에도 정의가 없어 간격이 깨지던 문제 수정 */
.rv-group { margin-bottom:1rem; }            /* 라벨+입력 묶음의 수직 리듬 */
.rv-group:last-child { margin-bottom:0; }
.rv-row { display:flex; gap:.75rem; margin-bottom:1rem; }   /* 예약자명·연락처 등 2열 묶음 */
.rv-row > .rv-group { flex:1; min-width:0; margin-bottom:0; }
@media (max-width:480px) {                    /* 좁은 폭에선 세로로 */
    .rv-row { flex-direction:column; gap:0; }
    .rv-row > .rv-group { margin-bottom:1rem; }
}
.rv-pay-wrap { display:flex; flex-direction:column; gap:.5rem; margin-top:.1rem; }  /* 결제 옵션 붙음 방지 */

/* [복구] 예약시간 그리드 컨테이너 — 누락되어 슬롯이 세로로 쌓이던 문제 수정 */
.rv-time-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.5rem; margin-top:.4rem; }
.rv-time-grid .rv-slot-msg { grid-column:1 / -1; text-align:center; color:var(--text-muted); font-size:.9rem; padding:1.2rem .2rem; }
@media (max-width:640px) { .rv-time-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:400px) { .rv-time-grid { grid-template-columns:repeat(2,1fr); } }
.rv-slot { padding:.55rem .2rem; text-align:center; border:1px solid var(--border); border-radius:7px; background:#fff; font-size:.9rem; font-weight:500; cursor:pointer; transition:all .15s; user-select:none; }
.rv-slot:hover:not(.rv-slot--booked):not(.rv-slot--past) { background:var(--color-primary-light); border-color:var(--color-primary); color:var(--color-primary); }
.rv-slot--selected { background:var(--color-primary)!important; border-color:var(--color-primary)!important; color:#fff!important; font-weight:700; }
.rv-slot--booked { background:#f1f5f9; color:#94a3b8; cursor:not-allowed; text-decoration:line-through; opacity:.7; }
.rv-slot--past   { background:#f8fafc; color:#cbd5e1; cursor:not-allowed; opacity:.5; }
[data-theme="dark"] .rv-slot { background:#283040; border-color:#4b5563; color:#d1d5db; }
[data-theme="dark"] .rv-slot:hover:not(.rv-slot--booked):not(.rv-slot--past) { background:rgba(52,211,153,.1); border-color:#34d399; color:#34d399; }
[data-theme="dark"] .rv-slot--selected { background:#059669!important; border-color:#059669!important; }
[data-theme="dark"] .rv-slot--booked { background:#374151!important; color:#6b7280!important; }
[data-theme="dark"] .rv-slot--past   { background:#1f2937!important; color:#4b5563!important; }
.rv-rental-row { display:flex; align-items:center; justify-content:space-between; padding:.65rem .9rem; border:1px solid var(--border); border-radius:9px; background:#f8fafc; margin-bottom:.5rem; }
.rv-rental-row:hover { border-color:var(--color-primary); }
[data-theme="dark"] .rv-rental-row { background:#283040; border-color:#4b5563; }
.rv-pay-label { display:flex; align-items:center; gap:.45rem; padding:.55rem 1rem; border:2px solid var(--border); border-radius:9px; font-size:.92rem; cursor:pointer; transition:all .15s; background:#fff; user-select:none; }
.rv-pay-label:hover { border-color:var(--color-primary); }
.rv-pay-label.rv-pay-active { border-color:var(--color-primary); background:var(--color-primary-light); font-weight:600; color:var(--color-primary); }
[data-theme="dark"] .rv-pay-label { background:#283040; border-color:#4b5563; color:#d1d5db; }
[data-theme="dark"] .rv-pay-label.rv-pay-active { border-color:#34d399; background:rgba(52,211,153,.1); color:#34d399; }
.rv-summary { position:sticky; top:90px; background:linear-gradient(135deg,var(--color-primary-light),#fff); border:1px solid var(--color-primary); border-radius:14px; padding:1.5rem; box-shadow:0 4px 20px rgba(0,0,0,.07); }
[data-theme="dark"] .rv-summary { background:linear-gradient(135deg,rgba(52,211,153,.1),#1f2937); border-color:#34d399; }
.rv-summary__title { font-size:1rem; font-weight:700; color:var(--color-primary); padding-bottom:.7rem; border-bottom:1px solid var(--color-primary); margin-bottom:1rem; display:flex; align-items:center; gap:.5rem; }
[data-theme="dark"] .rv-summary__title { color:#34d399; border-bottom-color:#34d399; }
.rv-summary__item { display:flex; justify-content:space-between; align-items:center; padding:.42rem 0; font-size:.9rem; border-bottom:1px dashed var(--border); }
[data-theme="dark"] .rv-summary__item { border-bottom-color:#374151; color:#d1d5db; }
.rv-badge-disc { color:#e11d48!important; }
[data-theme="dark"] .rv-badge-disc { color:#f87171!important; }
.rv-summary__total { display:flex; justify-content:space-between; align-items:center; margin-top:.8rem; padding-top:.8rem; border-top:2px solid var(--color-primary); font-weight:700; }
[data-theme="dark"] .rv-summary__total { border-top-color:#34d399; }
.rv-price { font-size:1.3rem; color:var(--color-primary); }
[data-theme="dark"] .rv-price { color:#34d399; }
.rv-submit { width:100%; margin-top:1rem; padding:.9rem; background:var(--color-primary); color:#fff; border:none; border-radius:9px; font-size:1rem; font-weight:700; cursor:pointer; transition:all .2s; }
.rv-submit:hover:not(:disabled) { background:var(--color-primary-hover); transform:translateY(-2px); }
[data-theme="dark"] .rv-submit { background:#059669; }
[data-theme="dark"] .rv-submit:hover:not(:disabled) { background:#047857; }
.rv-alert--danger { background:#fff1f2; border:1px solid #fca5a5; color:#9f1239; border-radius:10px; padding:.9rem 1.1rem; font-size:.92rem; margin-bottom:1.2rem; display:flex; gap:.7rem; }
[data-theme="dark"] .rv-alert--danger { background:rgba(248,113,113,.1); border-color:rgba(248,113,113,.3); color:#f87171; }

/* ━━ gom (이달의 골퍼) 다크모드 ━━ */
[data-theme="dark"] .gom-stat { background:#1f2937; }
[data-theme="dark"] .gom-stat:hover { background:#283040; }
[data-theme="dark"] .gom-empty { background:#1f2937; border-color:#374151; }
[data-theme="dark"] .gom-card  { background:#1f2937; border-color:#374151; }
[data-theme="dark"] .gom-card-hd  { background:rgba(52,211,153,.08); border-bottom-color:#374151; }
[data-theme="dark"] .gom-card-ym  { color:#34d399; }
[data-theme="dark"] .gom-card-pname { color:#f9fafb; }
[data-theme="dark"] .gom-card-course { color:#9ca3af; }
[data-theme="dark"] .gom-card-score  { color:#34d399; }
[data-theme="dark"] .gom-cstat { background:#283040; }
[data-theme="dark"] .gom-cstat .sl { color:#9ca3af; }
[data-theme="dark"] .gom-cstat .sv { color:#f9fafb; }
[data-theme="dark"] .gom-card-adm { border-top-color:#374151; }
[data-theme="dark"] .golfer-search { background:#1f2937; border-color:#374151; }
[data-theme="dark"] .filter-select  { background:#283040; border-color:#4b5563; color:#f9fafb; }
[data-theme="dark"] .gom-sec-title  { border-bottom-color:rgba(52,211,153,.2); }
[data-theme="dark"] .photo-zone     { background:#283040; border-color:#4b5563; }
[data-theme="dark"] .photo-zone:hover,.photo-zone.on { border-color:#34d399; background:rgba(52,211,153,.1); }
[data-theme="dark"] .photo-zone p   { color:#9ca3af; }
[data-theme="dark"] .form-sec       { border-bottom-color:#374151; color:#9ca3af; }

/* ━━ holeinone.php 다크모드 ━━ */
.holeinone-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin-bottom:2rem; }
[data-theme="dark"] .holeinone-search { background:#1f2937; border-color:#374151; }
[data-theme="dark"] .chart-container  { background:#1f2937; border-color:#374151; }
.verified-badge.verified   { background:#dcfce7; color:#059669; }
.verified-badge.unverified { background:#fef3c7; color:#d97706; }
[data-theme="dark"] .verified-badge.verified   { background:rgba(52,211,153,.2);  color:#34d399; }
[data-theme="dark"] .verified-badge.unverified { background:rgba(251,191,36,.2);  color:#fbbf24; }
[data-theme="dark"] .upload-zone { background:#283040; border-color:#4b5563; }
[data-theme="dark"] .upload-zone.dragover { border-color:#34d399; background:rgba(52,211,153,.1); }
@media (max-width:768px) {
  .holeinone-stats { grid-template-columns:repeat(3,1fr); gap:.5rem; }
}
@media (max-width:480px) {
  .holeinone-stats { grid-template-columns:repeat(2,1fr); }
}

/* ════════════════════════════════════════════════════════════
   [패치 v12.4] 클럽 상세 모달 — 다크모드 누락 셀렉터 보강
   (club_ajax.php detail 응답 HTML 중 다크 정의가 없던 요소들)
   ════════════════════════════════════════════════════════════ */
.club-detail-logo-placeholder {
    width:90px; height:90px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    background:var(--color-primary-light); color:var(--color-primary); font-size:2rem;
}
[data-theme="dark"] .club-detail-logo-placeholder { background:#283040; color:#34d399; }

.club-detail-meta { display:flex; flex-direction:column; gap:.4rem; margin-top:.5rem; }

.club-member-avatar {
    width:34px; height:34px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--color-primary-light); color:var(--color-primary); font-size:.9rem; flex-shrink:0;
}
[data-theme="dark"] .club-member-avatar { background:#283040; color:#34d399; }

.club-member-info { display:flex; align-items:center; gap:.5rem; min-width:0; }
[data-theme="dark"] .club-member-info { color:var(--text); }

/* 모달 본문 컨테이너 자체의 글자색을 테마 변수로 고정 (흰 글씨 방지) */
.club-detail { color:var(--text); }
[data-theme="dark"] .club-detail,
[data-theme="dark"] .club-detail-info,
[data-theme="dark"] .club-detail-meta { color:var(--text); }

/* ════════════════════════════════════════════════════════════
   [클럽홈 v1.0] 우리 클럽 홈 (club_home.php)
   — 아기자기 + 어르신 가독(큰 글씨·큰 버튼) + 라이트/다크 동시 정의
   ════════════════════════════════════════════════════════════ */
.ch-hero { background:linear-gradient(135deg,#1B5E20 0%,#2e7d32 55%,#43a047 100%); padding:52px 16px 44px; text-align:center; color:#fff; }
[data-theme="dark"] .ch-hero { background:linear-gradient(135deg,#0b3d12 0%,#14532d 55%,#166534 100%); }
.ch-hero-logo { width:96px; height:96px; margin:0 auto 14px; border-radius:28px; background:rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; overflow:hidden; box-shadow:0 8px 24px rgba(0,0,0,.18); }
.ch-hero-logo img { width:100%; height:100%; object-fit:cover; }
.ch-hero-logo-ph { font-size:2.6rem; }
.ch-hero-name { font-size:1.9rem; font-weight:700; letter-spacing:-.5px; margin:0 0 10px; }
.ch-hero-sub { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; font-size:1.02rem; opacity:.95; }

/* [폭 통일] 일반 페이지 .container(1280px) 그대로 사용 — 별도 제한 없음 */
.ch-container { padding-bottom:60px; }

/* 큼직한 탭 */
.ch-tabs { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin:-26px 0 26px; position:relative; z-index:2; }
.ch-tab { display:flex; flex-direction:column; align-items:center; gap:4px; padding:14px 4px 12px; font-size:1.5rem; background:var(--bg-card); border:2px solid var(--border); border-radius:16px; cursor:pointer; transition:all .18s; }
.ch-tab span { font-size:.95rem; font-weight:500; color:var(--text-muted); }
.ch-tab:hover { transform:translateY(-2px); border-color:var(--color-primary); }
.ch-tab.active { border-color:var(--color-primary); background:var(--color-primary-light); }
.ch-tab.active span { color:var(--color-primary); font-weight:700; }
[data-theme="dark"] .ch-tab.active { background:rgba(52,211,153,.12); }

.ch-panel { display:none; }
.ch-panel.active { display:block; animation:chFade .25s ease; }
@keyframes chFade { from { opacity:0; transform:translateY(6px);} to { opacity:1; transform:none;} }

.ch-panel-top { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
.ch-panel-title { font-size:1.45rem; font-weight:700; color:var(--text); margin:0; }
.ch-panel-note { font-size:.95rem; color:var(--text-muted); }

/* 카드 */
.ch-card { background:var(--bg-card); border:1px solid var(--border); border-radius:18px; padding:20px 22px; margin-bottom:18px; }
.ch-card-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.ch-card-head h3 { font-size:1.18rem; font-weight:600; color:var(--text); margin:0; }
.ch-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.ch-intro-text { font-size:1.05rem; line-height:1.8; color:var(--text); }

/* 홈 위젯 목록 */
.ch-home-notice li, .ch-home-tour li { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:11px 6px; font-size:1.03rem; color:var(--text); border-bottom:1px dashed var(--border); cursor:pointer; border-radius:8px; }
.ch-home-notice li:hover, .ch-home-tour li:hover { background:var(--bg-muted); }
.ch-home-notice li:last-child, .ch-home-tour li:last-child { border-bottom:none; }
.ch-date { font-size:.85rem; color:var(--text-light); white-space:nowrap; }
.ch-empty-sm { color:var(--text-muted); padding:14px 6px; cursor:default !important; }

/* 큰 버튼 / 미니 버튼 */
.ch-big-btn { padding:13px 22px; font-size:1.05rem; font-weight:700; color:#fff; background:var(--color-primary); border:none; border-radius:14px; cursor:pointer; transition:all .15s; }
.ch-big-btn:hover { background:var(--color-primary-hover); transform:translateY(-1px); }
[data-theme="dark"] .ch-big-btn { color:#04190c; }
.ch-btn-block { display:block; width:100%; margin-top:16px; }
.ch-btn-sm { padding:10px 16px; font-size:.98rem; }
.ch-mini-btn { padding:8px 14px; font-size:.92rem; font-weight:500; color:var(--color-primary); background:var(--color-primary-light); border:1.5px solid transparent; border-radius:10px; cursor:pointer; transition:all .15s; }
.ch-mini-btn:hover { border-color:var(--color-primary); }
[data-theme="dark"] .ch-mini-btn { background:rgba(52,211,153,.12); }
.ch-mini-danger { color:#dc2626; background:#fee2e2; }
.ch-mini-danger:hover { border-color:#dc2626; }
[data-theme="dark"] .ch-mini-danger { color:#f87171; background:rgba(248,113,113,.14); }

/* 대회 만들기·수정 모달 하단: 좌(관리) / 우(저장) 배치 */
.ch-tc-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:16px; flex-wrap:wrap; }
.ch-tc-foot-left { display:flex; align-items:center; gap:8px; }
.ch-tc-foot > .ch-btn-sm { margin-left:auto; }   /* 저장 버튼은 항상 오른쪽 */
@media (max-width:480px) {
    .ch-tc-foot-left { flex:1 1 100%; order:2; }
    .ch-tc-foot > .ch-btn-sm { flex:1 1 100%; order:1; margin-left:0; }
}

/* 공지 목록 */
.ch-notice-item { background:var(--bg-card); border:1px solid var(--border); border-radius:14px; padding:16px 18px; margin-bottom:10px; cursor:pointer; transition:all .15s; }
.ch-notice-item:hover { border-color:var(--color-primary); transform:translateX(3px); }
.ch-notice-item.pinned { border-color:#f59e0b; background:#fffbeb; }
[data-theme="dark"] .ch-notice-item.pinned { background:rgba(245,158,11,.08); }
.ch-notice-title { font-size:1.08rem; font-weight:500; color:var(--text); margin-bottom:5px; }
.ch-notice-meta { font-size:.88rem; color:var(--text-light); }
.ch-nv-meta { font-size:.92rem; color:var(--text-muted); padding-bottom:12px; border-bottom:1px solid var(--border); margin-bottom:14px; }
.ch-nv-content { font-size:1.08rem; line-height:1.9; color:var(--text); min-height:80px; }
.ch-nv-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:18px; padding-top:14px; border-top:1px solid var(--border); }

/* 갤러리 */
.ch-gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:1100px) { .ch-gallery-grid { grid-template-columns:repeat(3,1fr); } }
.ch-photo { position:relative; background:var(--bg-card); border:1px solid var(--border); border-radius:16px; overflow:hidden; margin:0; }
.ch-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; cursor:zoom-in; display:block; }
.ch-photo figcaption { padding:10px 12px; position:relative; }
.ch-photo figcaption span { display:block; font-size:.98rem; color:var(--text); font-weight:400; min-height:1.1em; }
.ch-photo figcaption small { color:var(--text-light); font-size:.8rem; }
.ch-photo-del { position:absolute; top:8px; right:10px; background:none; border:none; cursor:pointer; font-size:1rem; opacity:.7; }
.ch-photo-del:hover { opacity:1; }
.ch-photo-pick { display:block; border:2.5px dashed var(--border); border-radius:16px; cursor:pointer; overflow:hidden; margin-bottom:16px; transition:border-color .15s; }
.ch-photo-pick:hover { border-color:var(--color-primary); }
.ch-photo-pick input[type="file"] { display:none; }
.ch-photo-pick-inner { display:flex; flex-direction:column; align-items:center; gap:6px; padding:36px 14px; color:var(--text-muted); font-size:1.02rem; }
.ch-photo-icon { font-size:2.4rem; }
.ch-photo-pick img { width:100%; max-height:300px; object-fit:contain; background:var(--bg-muted); }
.ch-lightbox { position:fixed; inset:0; background:rgba(0,0,0,.88); z-index:10050; display:none; flex-direction:column; align-items:center; justify-content:center; padding:24px; cursor:zoom-out; }
.ch-lightbox.open { display:flex; }
.ch-lightbox img { max-width:94vw; max-height:82vh; border-radius:12px; }
.ch-lightbox p { color:#fff; margin-top:14px; font-size:1.05rem; }

/* 대회 카드 */
.ch-tour-card { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; background:var(--bg-card); border:1px solid var(--border); border-radius:16px; padding:18px 20px; margin-bottom:12px; }
.ch-tour-card h3 { font-size:1.12rem; font-weight:600; color:var(--text); margin:6px 0; }
.ch-tour-meta { font-size:.93rem; color:var(--text-muted); }
.ch-tour-status { font-size:.82rem; font-weight:600; padding:3px 10px; border-radius:20px; background:var(--bg-muted); color:var(--text-muted); }
.ch-tour-status.st-ongoing  { background:#dcfce7; color:#15803d; }
.ch-tour-status.st-finished { background:#e0e7ff; color:#4338ca; }
.ch-tour-status.st-scheduled{ background:#fef3c7; color:#b45309; }
[data-theme="dark"] .ch-tour-status.st-ongoing  { background:rgba(34,197,94,.15);  color:#4ade80; }
[data-theme="dark"] .ch-tour-status.st-finished { background:rgba(99,102,241,.15); color:#a5b4fc; }
[data-theme="dark"] .ch-tour-status.st-scheduled{ background:rgba(245,158,11,.15); color:#fbbf24; }
.ch-tour-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }

/* 선택 버튼 그룹 (홀수/방식) */
.ch-choice { display:flex; gap:8px; }
.ch-choice button { flex:1; padding:13px 6px; font-size:1rem; font-weight:500; background:var(--bg-card); color:var(--text-muted); border:2px solid var(--border); border-radius:12px; cursor:pointer; line-height:1.3; }
.ch-choice button small { font-weight:500; font-size:.76rem; }
.ch-choice button.active { border-color:var(--color-primary); background:var(--color-primary-light); color:var(--color-primary); }
[data-theme="dark"] .ch-choice button.active { background:rgba(52,211,153,.12); }

/* 순위/스코어보드 표 — 어르신 가독 큰 글씨 */
.ch-rank-table { width:100%; border-collapse:collapse; background:var(--bg-card); border-radius:14px; overflow:hidden; border:1px solid var(--border); }
.ch-rank-table th { background:var(--bg-muted); color:var(--text-muted); font-size:.92rem; padding:12px 10px; }
.ch-rank-table td { padding:14px 10px; text-align:center; font-size:1.05rem; color:var(--text); border-top:1px solid var(--border); }
.ch-rank-no { font-size:1.15rem; }
.ch-rank-me { background:var(--color-primary-light); }
[data-theme="dark"] .ch-rank-me { background:rgba(52,211,153,.1); }
.ch-me-badge { font-size:.72rem; background:var(--color-primary); color:#fff; padding:2px 8px; border-radius:10px; margin-left:5px; vertical-align:middle; }
[data-theme="dark"] .ch-me-badge { color:#04190c; }
.ch-sb-div { font-size:1.05rem; font-weight:600; color:var(--text); margin:18px 0 8px; }
.ch-mt { margin-top:18px; }

/* 내 성적 차트 */
.ch-trend-canvas { width:100%; display:block; }

/* 폼 보조 */
.ch-label { display:block; font-size:1rem; font-weight:600; color:var(--text); margin-bottom:7px; }
/* .ch-input — 시스템 표준 .form-control 스타일을 그대로 사용 (재정의 제거) */
.ch-hint { display:block; margin-top:5px; font-size:.85rem; color:var(--text-light); }
.ch-check { display:flex; align-items:center; gap:9px; font-size:1rem; color:var(--text); cursor:pointer; margin:6px 0 4px; }
.ch-info-box { background:var(--color-primary-light); border-radius:12px; padding:13px 15px; font-size:.95rem; line-height:1.6; color:var(--text); margin-top:8px; }
[data-theme="dark"] .ch-info-box { background:rgba(52,211,153,.1); }

/* 빈 상태 */
.ch-empty { text-align:center; padding:54px 16px; color:var(--text-muted); font-size:1.08rem; line-height:1.7; background:var(--bg-card); border:1.5px dashed var(--border); border-radius:18px; }
.ch-empty-icon { display:block; font-size:3rem; margin-bottom:12px; }

/* 페이징 — 큼직 */
.ch-paging { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:20px; }
.ch-paging button { padding:11px 20px; font-size:1rem; font-weight:500; background:var(--bg-card); color:var(--text); border:1.5px solid var(--border); border-radius:12px; cursor:pointer; }
.ch-paging button:hover { border-color:var(--color-primary); color:var(--color-primary); }
.ch-paging span { font-size:1rem; color:var(--text-muted); }

/* 넓은 슬라이드 모달(스코어보드) */
.slide-modal-wide { max-width:640px !important; width:94% !important; }

/* 반응형 */
@media (max-width: 768px) {
    .ch-hero { padding:34px 14px 26px; }
    .ch-hero-name { font-size:1.5rem; }
    .ch-tabs { grid-template-columns:repeat(3,1fr); margin-top:14px; }   /* 비주얼과 겹침 제거 */
    .ch-tour-actions { justify-content:stretch; }
    .ch-tour-actions > * { flex:1 1 calc(50% - 8px); }   /* 버튼 2열 정렬 */
    .ch-grid-2 { grid-template-columns:1fr; }
    .ch-gallery-grid { grid-template-columns:repeat(2,1fr); }
    .ch-tour-card { flex-direction:column; align-items:stretch; }
    .ch-tour-actions { justify-content:flex-end; }
}
@media (max-width: 420px) {
    .ch-gallery-grid { grid-template-columns:1fr; }
}

/* ════════════════════════════════════════════════════════════
   [클럽홈 v1.1] 참가자 관리 / 점수 입력 모달
   ════════════════════════════════════════════════════════════ */
.ch-pm-sec-title { font-size:1rem; font-weight:600; color:var(--text); margin-bottom:10px; }
.ch-pm-list { display:flex; flex-direction:column; gap:7px; }
.ch-pm-cands { max-height:300px; overflow-y:auto; margin-top:10px; }
.ch-pm-row { display:flex; align-items:center; gap:10px; background:var(--bg-muted); border-radius:12px; padding:10px 14px; }
.ch-pm-name { font-size:1.02rem; font-weight:700; color:var(--text); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ch-pm-info { font-size:.85rem; color:var(--text-muted); white-space:nowrap; }

.ch-score-grid { margin-top:6px; }
.ch-score-head, .ch-score-row { display:grid; grid-template-columns:70px 1fr 1fr; gap:10px; align-items:center; }
.ch-score-head { font-size:.85rem; font-weight:800; color:var(--text-muted); padding:6px 2px; }
.ch-score-head span:nth-child(2), .ch-score-head span:nth-child(3) { text-align:center; }
.ch-score-row { margin-bottom:7px; }
.ch-score-hole { font-size:1rem; font-weight:800; color:var(--text); }
.ch-score-row input { font-size:1.15rem; font-weight:700; text-align:center; padding:11px 6px;
    border:2px solid var(--border); border-radius:12px; background:var(--bg-card); color:var(--text); width:100%; }
.ch-score-row input:focus { border-color:var(--color-primary); outline:none; }
.ch-score-row input::placeholder { color:var(--text-light); font-weight:400; }

/* ════════════════════════════════════════════════════════════
   [클럽홈 v1.2] club_score.php (기존 점수판/전광판 래퍼)
   ════════════════════════════════════════════════════════════ */
.csp-wrap { padding-top:28px; padding-bottom:40px; }
.csp-top { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
    background:var(--bg-card); border:1px solid var(--border); border-radius:18px; padding:20px 24px; }
.csp-club { font-size:.9rem; font-weight:600; color:var(--color-primary); }
.csp-title { font-size:1.4rem; font-weight:700; color:var(--text); margin:4px 0; }
.csp-meta { font-size:.95rem; color:var(--text-muted); }
.csp-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.csp-actions .ch-big-btn small { font-weight:600; opacity:.85; }
.ch-sb-footer { padding:12px 18px; border-top:1px solid var(--border); text-align:center; }
@media (max-width:600px){ .csp-top { flex-direction:column; align-items:stretch; } .csp-actions { justify-content:stretch; } .csp-actions .ch-big-btn { flex:1; } }

/* [클럽홈 v1.3.1] 조/팀 편성 행 — grid 로 이름 폭 보장
   (전역 select{width:100%} 규칙이 셀렉트를 풀폭으로 늘려
    이름이 0폭으로 사라지던 문제 수정) */
.ch-pm-row { display:grid; grid-template-columns:minmax(90px,1fr) auto auto; align-items:center; }
.ch-pm-row.has-team { grid-template-columns:minmax(90px,1fr) auto auto auto; }
.ch-pm-name { display:flex; flex-direction:column; gap:2px; font-weight:500; }
.ch-pm-name .ch-pm-info { font-size:.78rem; font-weight:500; }
.ch-pm-sel {
    width:auto !important; height:auto !important;
    font-size:.95rem; font-weight:500; padding:9px 28px 9px 10px !important;
    border:1.5px solid var(--border); border-radius:10px;
    background-color:var(--bg-card); color:var(--text); cursor:pointer;
}
.ch-pm-team { border-color:var(--color-primary); color:var(--color-primary); }
@media (max-width:560px){
    .ch-pm-row, .ch-pm-row.has-team { grid-template-columns:auto auto 1fr; }
    .ch-pm-name { grid-column:1 / -1; }   /* 이름은 윗줄 전체 */
    .ch-pm-row button { justify-self:end; }
}


/* ════════════════════════════════════════════════════════════
   [클럽홈 v1.4] 점수판(그룹 점수판 위젯) 모바일 보정
   — 하단 액션바(저장/홀확정/🎤)가 화면을 벗어나지 않게 축소·줄바꿈
   ════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  #gs-action-bar { flex-wrap:wrap !important; gap:6px !important; padding:8px 10px !important; }
  #gs-action-bar .gs-abtn {
      flex:0 1 auto !important; min-width:0 !important;
      padding:8px 10px !important; font-size:.82rem !important; white-space:nowrap;
  }
  #gs-voice-btn { padding:8px 10px !important; font-size:.82rem !important; flex:0 0 auto !important; }
}


/* [클럽홈 v1.5] 라이브 스코어보드 표시 */
/* 큰 전광판(sb-live-badge)과 동일한 빨간 알약 LIVE 뱃지 */
.ch-live-dot { display:inline-block; background:#ef4444; color:#fff; font-size:.65rem; font-weight:700;
    padding:2px 8px; border-radius:10px; letter-spacing:.5px; vertical-align:middle; margin-left:8px;
    animation:chLiveBlink 1.4s ease-in-out infinite; }
@keyframes chLiveBlink { 0%,100%{opacity:1;} 50%{opacity:.5;} }

/* [클럽홈 v1.6] 스코어보드 진행홀 컬럼 */
.ch-prog { font-size:.85rem; color:var(--text-muted); font-weight:500; white-space:nowrap; }
.ch-rank-table th:nth-child(3), .ch-rank-table td.ch-prog { text-align:center; }

/* ════════════════════════════════════════════════════════════
   [v2.0 통합 보강] v1.0(5295)에서 이식한 페이지 블록
   golfer_of_month / holeinone / ranking / course-layout /
   hours / club-logo / tips / reservation 보조 / pg-alert-icon 등
   ※ 베이스는 v2.0 유지, v2.0에 없던 선택자만 추가
   ════════════════════════════════════════════════════════════ */
.club-logo {
    display: flex;
    justify-content: center;
    margin-bottom: 0.5rem;
}
.club-logo img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid var(--color-primary);
    background: #fff;
}
.club-logo-placeholder {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--color-primary-light);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--color-primary);
}
.club-logo-placeholder i {
    font-size: 2rem;
    color: var(--color-primary);
}
.club-info {
    text-align: center;
}
.course-stat-icon {
    font-size: 2.2rem;
    opacity: 0.3;
    color: var(--color-primary);
}
.course-season-bg-icon {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    font-size: 4rem;
    opacity: 0.05;
    color: var(--color-primary);
}
/* 9. 코스 레이아웃 */
.course-layout-header {
    text-align: center;
    margin-bottom: 2rem;
}
.course-layout-header h2 {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--text);
}
.course-layout-header p {
    color: var(--text-muted);
    font-size: 0.9rem;
}
.course-layout-badges {
    position: absolute;
    bottom: 0.75rem;
    left: 0.75rem;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.course-layout-badge {
    background: var(--color-primary);
    color: #fff;
    padding: 0.2rem 0.8rem;
    border-radius: var(--radius);
    font-size: 0.7rem;
    font-weight: 600;
}
.course-layout-badge.dark {
    background: rgba(0,0,0,0.6);
}
.course-layout-badge.alert {
    background: var(--color-danger);
}
[data-theme="dark"] .course-stat-icon {
    opacity: 0.2;
}
[data-theme="dark"] .course-layout-header h2 {
    color: var(--text);
}
[data-theme="dark"] .course-layout-header p {
    color: var(--text-muted);
}
.tips-btn-group {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.5rem;
}
.tips-btn-edit {
    background: var(--color-primary-light);
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.tips-btn-edit:hover {
    background: var(--color-primary);
    color: #fff;
}
/* 5. 빈 상태 */
.tips-empty {
    text-align: center;
    padding: 4rem 1rem;
    color: var(--text-muted);
}
.tips-empty i {
    font-size: 3rem;
    margin-bottom: 1rem;
    display: block;
    opacity: 0.5;
}
.fee-info-banner-icon {
    font-size: 1.5rem;
    color: var(--color-primary);
    flex-shrink: 0;
}
/* 통계 바 */
.gom-stats-bar {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 14px; margin-bottom: 2rem;
    background: transparent;
}
.gom-stat {
    position: relative; overflow: hidden;
    min-height: 112px; padding: 1rem .75rem;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center;
    background: var(--pg-card); border: 1px solid var(--pg-border);
    border-radius: var(--pg-radius-xl); box-shadow: var(--pg-shadow-sm);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.gom-stat::before {
    content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px;
    background: linear-gradient(90deg, var(--pg-primary), var(--pg-accent2));
}
.gom-stat:hover { transform: translateY(-2px); border-color: var(--pg-primary); box-shadow: var(--pg-shadow-md); }
.gom-stat-icon {
    width: 38px; height: 38px; margin-bottom: .35rem;
    display: grid; place-items: center; border-radius: 50%;
    background: var(--pg-primary-lt); font-size: 1.35rem;
}
.gom-stat-val { font-size: 1.45rem; font-weight: 800; color: var(--pg-primary); line-height: 1.1; }
.gom-stat-lbl { font-size: .67rem; color: var(--pg-text-m); margin-top: .2rem; }
.filter-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.filter-btn {
    padding: 0.5rem 1.2rem;
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all var(--pg-transition);
    flex-shrink: 0;
}
.filter-btn.search {
    background: var(--pg-primary);
    color: #fff;
    border: none;
}
.filter-btn.search:hover {
    background: var(--pg-primary-h);
}
.filter-btn.reset {
    background: var(--pg-border);
    color: var(--pg-text-m);
    border: none;
}
.filter-btn.reset:hover {
    background: #cbd5e1;
    color: #475569;
}
.reg-btn {
    padding: 0.5rem 1.2rem;
    background: var(--pg-success);
    color: #fff;
    border: none;
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-left: auto;
    flex-shrink: 0;
}
.reg-btn:hover {
    background: #047857;
}
/* 자동 선정 후보 배너 */
.gom-auto {
    background: linear-gradient(135deg, #fffbeb 0%, #fef9c3 100%);
    border: 1.5px solid #fbbf24; border-radius: var(--pg-radius-lg);
    padding: 1rem 1.25rem; margin-bottom: 1.5rem;
    display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
}
.gom-auto-ico { font-size: 1.9rem; flex-shrink: 0; }
.gom-auto-body { flex: 1; min-width: 160px; }
.gom-auto-label { font-size: .7rem; font-weight: 800; color: #92400e; letter-spacing: .06em; margin-bottom: .2rem; }
.gom-auto-name { font-size: 1.05rem; font-weight: 800; color: #78350f; }
.gom-auto-meta { font-size: .78rem; color: #b45309; margin-top: .15rem; }
.gom-auto-cta {
    height: 34px; padding: 0 1rem;
    background: #f59e0b; color: #fff;
    border: none; border-radius: var(--pg-radius);
    font-size: .8rem; font-weight: 700; cursor: pointer;
    white-space: nowrap; transition: background .15s;
}
.gom-auto-cta:hover { background: #d97706; }
/* 메인 카드 */
.gom-main {
    border-radius: 18px; overflow: hidden; margin-bottom: 2rem;
    border: 1px solid #fde68a;
    background: linear-gradient(135deg, #fef3c7 0%, #fffde7 45%, #f0fdf4 100%);
    box-shadow: 0 6px 28px rgba(245,158,11,.12);
    position: relative;
}
.gom-main-inner {
    display: grid; grid-template-columns: auto 1fr auto;
    align-items: center; gap: 2rem; padding: 2rem 2.5rem;
}
.gom-photo-col { position: relative; flex-shrink: 0; }
.gom-main-img, .gom-main-ava {
    width: 112px; height: 112px; border-radius: 50%; display: block;
    border: 4px solid #fbbf24;
    box-shadow: 0 4px 18px rgba(245,158,11,.3);
}
.gom-main-img { object-fit: cover; }
.gom-main-ava {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    display: flex; align-items: center; justify-content: center;
    font-size: 2.6rem; font-weight: 900; color: #fff;
}
.gom-crown {
    position: absolute; top: -15px; left: 50%; transform: translateX(-50%);
    font-size: 1.65rem;
    animation: gom-float 3.2s ease-in-out infinite;
    filter: drop-shadow(0 2px 5px rgba(0,0,0,.18));
    pointer-events: none;
}
.gom-info-col { min-width: 0; }
.gom-main-tag {
    display: inline-flex; align-items: center; gap: .3rem;
    background: #f59e0b; color: #fff;
    font-size: .67rem; font-weight: 800; letter-spacing: .08em;
    padding: .22rem .8rem; border-radius: 20px; margin-bottom: .55rem;
}
.gom-main-name { font-size: 2rem; font-weight: 900; color: #78350f; line-height: 1.1; margin-bottom: .4rem; }
.gom-main-meta { display: flex; flex-wrap: wrap; gap: .3rem .85rem; font-size: .82rem; color: #b45309; }
.gom-main-meta span { display: flex; align-items: center; gap: .3rem; }
.gom-main-reason {
    margin-top: .7rem; font-size: .82rem; color: #92400e; font-style: italic; line-height: 1.65;
    background: rgba(245,158,11,.1); border-left: 3px solid #fbbf24;
    padding: .45rem .75rem; border-radius: 0 6px 6px 0;
}
/* 메인 카드 - 점수 영역 수정 */
.gom-score-col {
    display: flex;
    flex-direction: row;
    gap: 0.75rem;
    flex-shrink: 0;
}
.gom-sbox {
    background: rgba(255,255,255,.72);
    border: 1px solid #fde68a;
    border-radius: 10px;
    padding: 0.6rem 1.1rem;
    text-align: center;
    min-width: 85px;
}
.gom-sbox .sl { font-size: .63rem; color: #92400e; font-weight: 700; }
.gom-sbox .sv { font-size: 1.5rem; font-weight: 900; color: #d97706; line-height: 1.1; }
.gom-sbox .su { font-size: .7rem; color: #b45309; }
.gom-main-adm {
    position: absolute; top: .7rem; right: .7rem;
    display: flex; gap: .3rem;
}
/* 관리 버튼 */
.gom-adm-btn {
    height: 28px; padding: 0 .6rem;
    border-radius: 6px; font-size: .68rem; font-weight: 600;
    cursor: pointer; border: 1px solid; background: rgba(255,255,255,.85);
    display: inline-flex; align-items: center; gap: .25rem; transition: all .15s;
}
.gom-adm-btn.edit { border-color: #3b82f6; color: #3b82f6; }
.gom-adm-btn.edit:hover { background: #3b82f6; color: #fff; }
.gom-adm-btn.del { border-color: #ef4444; color: #ef4444; }
.gom-adm-btn.del:hover { background: #ef4444; color: #fff; }
.gom-empty {
    min-height: 230px; margin-bottom: 2rem; padding: 2.5rem 1.25rem;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center;
    background: var(--pg-card); border: 1px dashed var(--pg-border);
    border-radius: var(--pg-radius-xl); box-shadow: var(--pg-shadow-sm);
}
.gom-empty-ico {
    width: 74px; height: 74px; margin-bottom: .9rem;
    display: grid; place-items: center; border-radius: 50%;
    background: #fff8df; font-size: 2.6rem; opacity: 1;
}
.gom-empty-title { font-size: 1rem; font-weight: 700; color: var(--pg-text); }
.gom-empty-desc { font-size: .82rem; color: var(--pg-text-m); margin-top: .3rem; }
/* 월별 그리드 카드 */
.gom-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 1rem; margin-bottom: 2rem;
}
.gom-card-tag {
    font-size: .6rem; font-weight: 800; letter-spacing: .05em;
    padding: .12rem .5rem; border-radius: 20px;
    background: #fbbf24; color: #fff;
}
.gom-card-bd { padding: .85rem; }
.gom-card-player { display: flex; align-items: center; gap: .65rem; margin-bottom: .65rem; }
.gom-card-photo {
    width: 42px; height: 42px; border-radius: 50%;
    object-fit: cover; border: 2px solid var(--pg-border); flex-shrink: 0;
}
.gom-card-ava {
    width: 42px; height: 42px; border-radius: 50%;
    background: var(--pg-primary-lt); flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.05rem; font-weight: 700; color: var(--pg-primary);
}
.gom-card.is-cur .gom-card-ava { background: #fef9c3; color: #92400e; }
.gom-card-stats { display: flex; gap: .35rem; }
.form-group-full { grid-column: 1 / -1; }
.photo-zone .pz-icon { font-size: 1.9rem; margin-bottom: .25rem; }
.photo-preview { margin-top: .65rem; position: relative; display: inline-block; }
.photo-preview img {
    width: 88px; height: 88px; border-radius: 50%;
    object-fit: cover; border: 3px solid var(--pg-primary); display: block;
}
.photo-del {
    position: absolute; top: -3px; right: -3px;
    width: 20px; height: 20px; border-radius: 50%;
    background: #ef4444; color: #fff; border: none; cursor: pointer;
    font-size: .72rem; display: flex; align-items: center; justify-content: center;
    box-shadow: 0 1px 4px rgba(0,0,0,.2);
}
.photo-hint { font-size: .7rem; color: var(--pg-text-m); margin-top: .35rem; }
@media (max-width: 768px) {
  .gom-stats-bar { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .gom-stat { min-height: 102px; padding: .85rem .6rem; }
  .gom-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
  .gom-main-name { font-size: 1.55rem; }
  .gom-main-img,.gom-main-ava { width: 82px; height: 82px; }
}
@media (max-width: 480px) {
  .gom-main-inner { grid-template-columns: 1fr; text-align: center; padding: 1.25rem; }
  .gom-photo-col { margin: 0 auto; }
  .gom-main-meta { justify-content: center; }
  .gom-score-col { flex-direction: row; justify-content: center; }
  .gom-grid { grid-template-columns: 1fr 1fr; }
}
.search-select {
    padding: 0.5rem 1rem;
    border: 1px solid var(--pg-border);
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    background: var(--pg-card);
    color: var(--pg-text);
    cursor: pointer;
}
/* 등록 버튼 */
.reg-btn {
    padding: 0.5rem 1.2rem;
    background: var(--pg-primary);
    color: #fff;
    border: none;
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}
.reg-btn:hover {
    background: var(--pg-primary-h);
}
/* 관리 버튼 스타일 수정 */
.admin-btns {
    display: flex;
    gap: 0.4rem;
    justify-content: center;
    flex-wrap: wrap;
}
.admin-btn {
    padding: 0.3rem 0.7rem;
    border-radius: 6px;
    font-size: 0.7rem;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    background: transparent;
    border: 1px solid;
    transition: all 0.2s;
}
.admin-btn.edit {
    border-color: #3b82f6;
    color: #3b82f6;
}
.admin-btn.edit:hover {
    background: #3b82f6;
    color: #fff;
}
.admin-btn.del {
    border-color: #ef4444;
    color: #ef4444;
}
.admin-btn.del:hover {
    background: #ef4444;
    color: #fff;
}
.admin-btn.verify {
    border-color: #10b981;
    color: #10b981;
}
.admin-btn.verify:hover {
    background: #10b981;
    color: #fff;
}
/* 이미지 썸네일 */
.hio-thumb {
    width: 45px;
    height: 45px;
    border-radius: 6px;
    object-fit: cover;
    cursor: pointer;
    border: 1px solid var(--pg-border);
    transition: transform 0.2s;
}
.hio-thumb:hover {
    transform: scale(1.05);
}
.more-img {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    background: var(--pg-border);
    border-radius: 6px;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--pg-text-m);
    cursor: pointer;
}
.form-group-full {
    grid-column: 1 / -1;
}
.preview-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.8rem;
}
.preview-item {
    position: relative;
    width: 60px;
    height: 60px;
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid var(--pg-border);
}
.preview-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.preview-del {
    position: absolute;
    top: -5px;
    right: -5px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #e11d48;
    color: #fff;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
/* 라이트박스 */
.lightbox {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.95);
    z-index: 10001;
    align-items: center;
    justify-content: center;
}
.lightbox.open {
    display: flex;
}
.lightbox-inner {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
}
.lightbox-inner img {
    max-width: 100%;
    max-height: 85vh;
    object-fit: contain;
}
.lightbox-close {
    position: fixed;
    top: 20px;
    right: 30px;
    background: none;
    border: none;
    color: #fff;
    font-size: 2rem;
    cursor: pointer;
    z-index: 10002;
}
.lightbox-nav {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0,0,0,0.5);
    color: #fff;
    border: none;
    font-size: 2rem;
    cursor: pointer;
    padding: 0.5rem 1rem;
    z-index: 10002;
}
.lightbox-prev { left: 20px; }
.lightbox-next { right: 20px; }
.lightbox-caption {
    position: fixed;
    bottom: 20px;
    left: 0;
    right: 0;
    text-align: center;
    color: #fff;
    font-size: 0.8rem;
    background: rgba(0,0,0,0.5);
    padding: 0.5rem;
    z-index: 10002;
}
.pg-alert-icon { font-size: 1.4rem; flex-shrink: 0; margin-top: .1rem; }
.hours-today-banner-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1rem;
}
.hours-today-banner-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.1rem;
    font-weight: 700;
}
.hours-today-banner-right i {
    font-size: 1.2rem;
}
.hours-notice-icon {
    font-size: 2rem;
    margin-bottom: 1rem;
}
/* 7. 빈 상태 */
.hours-empty {
    text-align: center;
    padding: 4rem 1rem;
    color: var(--text-muted);
}
.hours-empty i {
    font-size: 3rem;
    margin-bottom: 1rem;
    display: block;
    opacity: 0.5;
}
.search-select {
    width: 100%;
    padding: 0.65rem 1rem;
    border: 1px solid var(--pg-border);
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    background: var(--pg-card);
    color: var(--pg-text);
    cursor: pointer;
    transition: all var(--pg-transition);
}
.search-select:focus {
    outline: none;
    border-color: var(--pg-primary);
    box-shadow: 0 0 0 2px rgba(27,94,32,0.1);
}
.player-info {
    text-align: left;
}
/* 점수 표시 */
.score-value {
    font-weight: 800;
    font-size: 0.95rem;
}
/* 게임 수 표시 */
.game-count {
    font-weight: 600;
    color: var(--pg-text-m);
}
.empty-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--pg-text);
    margin-bottom: 0.5rem;
}
.empty-desc {
    font-size: 0.8rem;
    color: var(--pg-text-m);
}
/* 페이지네이션 */
.ranking-pagination {
    margin-top: 2rem;
    display: flex;
    justify-content: center;
}
.rv-rental-info {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .88rem;
    font-weight: 500;
    color: var(--text-primary, #1e293b);
}
.rv-rental-info small {
    font-size: .75rem;
    color: var(--text-muted, #94a3b8);
    font-weight: 400;
}
.rv-bank-box {
    display: none;
    margin-top: .6rem;
    padding: .9rem 1rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 9px;
    font-size: .85rem;
    line-height: 1.8;
}
.rv-bank-box strong { color: var(--color-primary); }
.rv-summary__empty {
    text-align: center;
    padding: 2rem 0;
    color: var(--text-muted, #94a3b8);
    font-size: .9rem;
    line-height: 1.8;
}
.rv-summary__empty i {
    font-size: 2rem;
    opacity: .4;
    display: block;
    margin-bottom: .5rem;
}
.rv-submit-note {
    text-align: center;
    font-size: .72rem;
    color: var(--text-muted, #94a3b8);
    margin-top: .8rem;
    line-height: 1.8;
}
.rv-submit-note a { color: var(--color-primary); }
/* 알림 박스 */
.rv-alert {
    border-radius: 10px;
    padding: .9rem 1.1rem;
    font-size: .88rem;
    margin-bottom: 1.2rem;
    display: flex;
    gap: .7rem;
    align-items: flex-start;
}
.rv-alert i { margin-top: .1rem; flex-shrink: 0; }
@keyframes gom-float {
    0%,100% { transform: translateX(-50%) translateY(0); }
    50%      { transform: translateX(-50%) translateY(-8px); }
}
/* ── [다크모드 보강] 이식 블록 중 밝은 고정색 → 다크 대응 (요청: 누락된 다크 커스터마이징) ── */
[data-theme="dark"] .club-logo { background:#1f2937; }

[data-theme="dark"] .gom-auto { background:linear-gradient(135deg, rgba(120,53,15,.35) 0%, rgba(146,64,14,.22) 100%); border-color:#b45309; }
[data-theme="dark"] .gom-auto-label { color:#fcd34d; }
[data-theme="dark"] .gom-auto-name  { color:#fde68a; }
[data-theme="dark"] .gom-auto-meta  { color:#fbbf24; }

[data-theme="dark"] .gom-main { background:linear-gradient(135deg, #2a2310 0%, #1f2516 45%, #16251a 100%); border-color:#7c5e1e; box-shadow:0 6px 28px rgba(0,0,0,.45); }
[data-theme="dark"] .gom-main-name   { color:#fde68a; }
[data-theme="dark"] .gom-main-meta   { color:#fbbf24; }
[data-theme="dark"] .gom-main-reason { color:#fcd34d; background:rgba(245,158,11,.12); border-left-color:#d97706; }

[data-theme="dark"] .gom-sbox { background:rgba(255,255,255,.06); border-color:#7c5e1e; }
[data-theme="dark"] .gom-sbox .sl { color:#fcd34d; }
[data-theme="dark"] .gom-sbox .sv { color:#fbbf24; }
[data-theme="dark"] .gom-sbox .su { color:#fcd34d; }

[data-theme="dark"] .gom-adm-btn { background:rgba(255,255,255,.1); }
[data-theme="dark"] .gom-card.is-cur .gom-card-ava { background:#3a2e0a; color:#fcd34d; }
[data-theme="dark"] .gom-empty-ico { background:rgba(251,191,36,.13); }

/* ── [신규] club_home / club_score — 양쪽 CSS에 없던 구조 클래스 ── */
.ch-hero-inner { max-width:680px; margin:0 auto; }
.ch-notice-list { display:flex; flex-direction:column; gap:10px; }
.ch-tour-list   { display:flex; flex-direction:column; gap:12px; }
.ch-tour-main   { flex:1; min-width:0; }
.csp-info       { flex:1; min-width:0; }

/* ── [신규] holeinone — 빈 상태/페이지네이션 래퍼 (v1.0·v2.0 둘 다 없던 것) ── */
.holeinone-empty { text-align:center; padding:3rem 1rem; color:var(--text-muted); }
.holeinone-empty .empty-icon { font-size:2.6rem; margin-bottom:.6rem; display:block; }
.holeinone-pagination { margin-top:1.5rem; display:flex; justify-content:center; }

/* ════════════════════════════════════════════════════════════
   [검색영역 통일] golfer/holeinone/ranking 검색영역을
   v1.0(공지사항 계열) 스타일로 통일 — v2.0 검색 규칙 위에 덮어씀
   ════════════════════════════════════════════════════════════ */
/* 검색바 */
.search-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--pg-radius);
  padding: 16px 20px;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}
.search-bar form { 
  display: flex; 
  flex-wrap: wrap; 
  gap: 10px; 
  align-items: flex-end; 
}
.search-bar .form-group { margin-bottom: 0; }
.search-bar input[name="search"] { width: 200px; }
.search-bar select.form-control { width: 140px; }
@media (max-width: 768px) {
  .search-bar form { 
    flex-direction: column; 
    align-items: stretch; 
  }
  .search-bar input[name="search"], 
  .search-bar select.form-control { 
    width: 100%; 
  }
}
/* 검색 영역 - 필터바 스타일 */
.golfer-search {
    background: var(--pg-card);
    border-radius: var(--pg-radius-lg);
    padding: 0.75rem 1.25rem;
    margin-bottom: 2rem;
    border: 1px solid var(--pg-border);
}
.filter-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.filter-select {
    padding: 0.5rem 1rem;
    border: 1px solid var(--pg-border);
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    background: var(--pg-card);
    color: var(--pg-text);
    cursor: pointer;
    width: auto;
    min-width: 100px;
    flex-shrink: 0;
}
.filter-select:focus {
    outline: none;
    border-color: var(--pg-primary);
}
.filter-btn {
    padding: 0.5rem 1.2rem;
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all var(--pg-transition);
    flex-shrink: 0;
}
.filter-btn.search {
    background: var(--pg-primary);
    color: #fff;
    border: none;
}
.filter-btn.search:hover {
    background: var(--pg-primary-h);
}
.filter-btn.reset {
    background: var(--pg-border);
    color: var(--pg-text-m);
    border: none;
}
.filter-btn.reset:hover {
    background: #cbd5e1;
    color: #475569;
}
/* 검색 영역 */
.holeinone-search {
    background: var(--pg-card);
    border-radius: var(--pg-radius-lg);
    padding: 1rem 1.25rem;
    margin-bottom: 2rem;
    border: 1px solid var(--pg-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}
.search-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.search-group label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--pg-text-m);
}
.search-select {
    padding: 0.5rem 1rem;
    border: 1px solid var(--pg-border);
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    background: var(--pg-card);
    color: var(--pg-text);
    cursor: pointer;
}
/* 검색 영역 */
.ranking-search {
    background: var(--pg-card);
    border-radius: var(--pg-radius-lg);
    padding: 1.25rem 1.5rem;
    margin-bottom: 2rem;
    border: 1px solid var(--pg-border);
}
.search-form {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
    flex-wrap: wrap;
}
.search-group {
    flex: 0 0 auto;  
    min-width: 180px;
}
.search-group label {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--pg-text-m);
    margin-bottom: 0.25rem;
}
.search-select {
    width: 100%;
    padding: 0.65rem 1rem;
    border: 1px solid var(--pg-border);
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    background: var(--pg-card);
    color: var(--pg-text);
    cursor: pointer;
    transition: all var(--pg-transition);
}
.search-select:focus {
    outline: none;
    border-color: var(--pg-primary);
    box-shadow: 0 0 0 2px rgba(27,94,32,0.1);
}
.search-input {
    width: 100%;
    padding: 0.65rem 1rem;
    border: 1px solid var(--pg-border);
    border-radius: var(--pg-radius);
    font-size: 0.85rem;
    background: var(--pg-card);
    color: var(--pg-text);
    transition: all var(--pg-transition);
}
.search-input:focus {
    outline: none;
    border-color: var(--pg-primary);
    box-shadow: 0 0 0 2px rgba(27,94,32,0.1);
}
.search-input::placeholder {
    color: var(--pg-text-lt);
}
.search-btn {
    padding: 0.65rem 1.5rem;
    background: var(--pg-primary);
    color: #fff;
    border: none;
    border-radius: var(--pg-radius);
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
    transition: all var(--pg-transition);
}
.search-btn:hover {
    background: var(--pg-primary-h);
}
.reset-btn {
    padding: 0.65rem 1.5rem;
    background: var(--pg-border);
    color: var(--pg-text-m);
    border: none;
    border-radius: var(--pg-radius);
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
    transition: all var(--pg-transition);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.reset-btn:hover {
    background: #cbd5e1;
    color: #475569;
}
/* 필터 정보 배지 */
.filter-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: var(--pg-primary-lt);
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    font-size: 0.875rem;
    color: var(--pg-primary);
    margin-right: 0.5rem;
    margin-bottom: 0.5rem;
}
@media (max-width: 768px) {
  .search-group { min-width: 100%; }
  .search-form { flex-direction: column; align-items: stretch; }
  .search-btn, .reset-btn { width: 100%; text-align: center; justify-content: center; }
}
@media (max-width: 640px) {
  .ranking-search { padding: 1rem; }
}
[data-theme="dark"] .search-bar { background:#1f2937; border-color:#374151; }

/* ════════════════════════════════════════════════════════════
   [패치] select 커스텀 화살표 복구
   .search-select / .filter-select 의 background 단축속성이
   전역 화살표 background-image 를 지우던 문제 → 화살표만 다시 지정
   (background-color 는 기존 var(--pg-card) 유지)
   ════════════════════════════════════════════════════════════ */
.search-select, .filter-select,
select.search-select, select.filter-select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; padding-right:32px;
  -webkit-appearance:none; -moz-appearance:none; appearance:none; cursor:pointer;
}
[data-theme="dark"] .search-select,
[data-theme="dark"] .filter-select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23d1d5db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
}

/* ============================================================
   우리들 게임
============================================================ */
.og-page{width:100%;max-width:1280px;margin:0 auto;padding:42px 24px 80px;box-sizing:border-box}.og-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.og-section-title{margin:0;font-size:1.55rem;font-weight:900;color:var(--text,#20352a)}.og-section-gap{margin-top:55px}.og-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.og-card{background:#fff;border:1px solid #e4ece7;border-radius:20px;padding:22px;box-shadow:0 10px 30px rgba(28,70,46,.08)}.og-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.og-status{padding:5px 10px;border-radius:999px;font-size:.78rem;font-weight:800}.og-st-ready{background:#eef4ff;color:#315fbb}.og-st-live{background:#e8f8ed;color:#13783a}.og-st-done{background:#f0f1f3;color:#616873}.og-date{font-size:.83rem;color:#7a8580}.og-title{font-size:1.16rem;font-weight:900;margin:0 0 14px;color:#21352a}.og-meta{display:flex;flex-wrap:wrap;gap:9px 14px;color:#68736d;font-size:.88rem}.og-card-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.og-cbtn{border:0;border-radius:12px;padding:11px 5px;background:#f1f3f2;color:#a0a6a2;font-size:.78rem;font-weight:800}.og-cbtn i{display:block;font-size:1rem;margin-bottom:5px}.og-cbtn.is-on{background:#176c3b;color:#fff;cursor:pointer}.og-card-owner{text-align:right;margin-top:12px}.og-owner-link{border:0;background:none;color:#65716b;font-size:.82rem;cursor:pointer}.og-empty{grid-column:1/-1;padding:55px 20px;text-align:center;background:#f7faf8;border:1px dashed #cddbd2;border-radius:18px;color:#69756f}.og-empty-sm{padding:30px 15px}.og-form-row{margin-bottom:18px}.og-form-row>label,.og-form-label{display:block;font-weight:800;margin-bottom:7px}.og-form-row em{color:#d93025}.og-hole-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.og-hole-btn.active{background:#176c3b;color:#fff;border-color:#176c3b}.og-check{font-weight:600!important}.og-info{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.og-info span{background:#f3f7f4;border-radius:999px;padding:7px 11px;font-size:.83rem}.og-add-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.og-btn-outline{border:1px solid #c8d8ce;background:#fff;color:#245b3b}.og-player-item{display:flex;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid #edf1ee}.og-player-no{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#edf5ef;font-weight:800}.og-player-name{font-weight:800;flex:1}.og-badge{font-size:.7rem;border-radius:999px;padding:3px 7px}.og-badge-mb{background:#e7f1ff;color:#2563a9}.og-badge-guest{background:#fff1dc;color:#a15a00}.og-group-wrap{display:flex;align-items:center;gap:3px;font-size:.8rem}.og-group-input{width:48px;padding:6px;border:1px solid #ccd8d0;border-radius:8px;text-align:center}.og-del{border:0;background:#fff0f0;color:#cb3b3b;border-radius:9px;width:30px;height:30px}.og-pick-list{display:flex;flex-direction:column;gap:8px}.og-pick-item{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #e1e9e4;border-radius:12px}.og-pick-item.is-added{opacity:.55}.og-pick-name{font-weight:800;flex:1}.og-search-bar{display:flex;gap:8px}.og-footer-wrap{display:flex;gap:7px;flex-wrap:wrap}.og-btn-danger{background:#c83d3d;color:#fff}.og-btn-warn{background:#e68a16;color:#fff}.quick-card--game{background:linear-gradient(145deg,#f0fbf4,#fff)}
.og-add-btns{gap:10px}
.og-add-btns .og-btn-outline{min-height:44px;border:2px solid #2f6b46;background:#f8fcf9;color:#1f5f38;border-radius:11px;padding:10px 12px;font-weight:800;box-shadow:0 2px 7px rgba(31,95,56,.12);cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}
.og-add-btns .og-btn-outline:hover{background:#edf8f1;border-color:#176c3b;box-shadow:0 4px 11px rgba(31,95,56,.18);transform:translateY(-1px)}
.og-add-btns .og-btn-outline:active{transform:translateY(0);box-shadow:0 1px 3px rgba(31,95,56,.16)}
.og-add-btns .og-btn-outline i{margin-right:5px}
[data-theme="dark"] .og-add-btns .og-btn-outline{background:#17251d;border-color:#68a77d;color:#c8f1d5}
[data-theme="dark"] .og-add-btns .og-btn-outline:hover{background:#203629;border-color:#86c99b}
@media(max-width:900px){.og-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.og-page{padding:25px 15px 60px}.og-toolbar{align-items:flex-start}.og-section-title{font-size:1.25rem}.og-grid{grid-template-columns:1fr}.og-card-actions{gap:6px}.og-add-btns{grid-template-columns:1fr}.og-hole-btns{grid-template-columns:repeat(2,1fr)}}

/* 우리들 게임 날짜선택 */
.ogf-delete-btn{margin-right:auto;}

/* 라운드 확정 뒤 조작 잠금 */
#gs-action-bar.round-finalized button:disabled{opacity:.45;cursor:not-allowed;pointer-events:none;}

/* v1.2: player bulk/direct entry readability */
#og-direct-names {
  min-height:180px;
  height:auto;
  padding:14px 15px;
  line-height:1.9;
  resize:vertical;
  white-space:pre-wrap;
}
@media (max-width:767px) {
  #og-direct-names {
    min-height:210px;
    font-size:16px;
    line-height:1.9;
  }
}

/* =========================================================
   v1.3 공통 버튼·뱃지 디자인 시스템
   - 일반회원 화면의 색상, 높이, 라운드, 상태 표현 통일
   ========================================================= */
:root {
  --ui-primary:#2563eb;
  --ui-primary-hover:#1d4ed8;
  --ui-success:#15803d;
  --ui-success-hover:#166534;
  --ui-warning:#b45309;
  --ui-warning-hover:#92400e;
  --ui-danger:#dc2626;
  --ui-danger-hover:#b91c1c;
  --ui-info:#0369a1;
  --ui-info-hover:#075985;
  --ui-neutral:#475569;
  --ui-neutral-hover:#334155;
  --ui-btn-height:42px;
  --ui-btn-height-sm:34px;
  --ui-btn-height-lg:48px;
  --ui-btn-radius:9px;
  --ui-badge-radius:999px;
  --ui-focus-ring:0 0 0 3px rgba(37,99,235,.18);
}
[data-theme="dark"] {
  --ui-primary:#60a5fa;
  --ui-primary-hover:#3b82f6;
  --ui-success:#4ade80;
  --ui-success-hover:#22c55e;
  --ui-warning:#fbbf24;
  --ui-warning-hover:#f59e0b;
  --ui-danger:#f87171;
  --ui-danger-hover:#ef4444;
  --ui-info:#38bdf8;
  --ui-info-hover:#0ea5e9;
  --ui-neutral:#94a3b8;
  --ui-neutral-hover:#cbd5e1;
}

.pg-btn,
.btn-pg,
.btn-pg-primary,
.btn-pg-outline,
.btn-primary,
.btn-secondary,
.btn-success,
.btn-warning,
.btn-danger,
.btn-info,
.btn-outline,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-success,
.btn-outline-danger {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:var(--ui-btn-height);
  padding:0 16px;
  border:1px solid transparent;
  border-radius:var(--ui-btn-radius);
  font:inherit;
  font-size:.9rem;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
  vertical-align:middle;
  cursor:pointer;
  box-sizing:border-box;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .08s ease;
}
.pg-btn:hover,
.btn-pg:hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-success:hover,
.btn-warning:hover,
.btn-danger:hover,
.btn-info:hover { text-decoration:none; }
.pg-btn:focus-visible,
.btn-pg:focus-visible,
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
.btn-success:focus-visible,
.btn-warning:focus-visible,
.btn-danger:focus-visible,
.btn-info:focus-visible { outline:0; box-shadow:var(--ui-focus-ring); }
.pg-btn:active:not(:disabled),
.btn-pg:active:not(:disabled),
.btn-primary:active:not(:disabled),
.btn-secondary:active:not(:disabled),
.btn-success:active:not(:disabled),
.btn-warning:active:not(:disabled),
.btn-danger:active:not(:disabled),
.btn-info:active:not(:disabled) { transform:translateY(1px); }
.pg-btn:disabled,
.pg-btn.is-disabled,
.btn-pg:disabled,
.btn-primary:disabled,
.btn-secondary:disabled,
.btn-success:disabled,
.btn-warning:disabled,
.btn-danger:disabled,
.btn-info:disabled { opacity:.48; cursor:not-allowed; transform:none; box-shadow:none; }

.pg-btn-primary,
.btn-pg-primary,
.btn-primary { background:var(--ui-primary); border-color:var(--ui-primary); color:#fff; }
.pg-btn-primary:hover,
.btn-pg-primary:hover,
.btn-primary:hover { background:var(--ui-primary-hover); border-color:var(--ui-primary-hover); color:#fff; }
.pg-btn-success,
.btn-success { background:var(--ui-success); border-color:var(--ui-success); color:#fff; }
.pg-btn-success:hover,
.btn-success:hover { background:var(--ui-success-hover); border-color:var(--ui-success-hover); color:#fff; }
.pg-btn-danger,
.btn-danger { background:var(--ui-danger); border-color:var(--ui-danger); color:#fff; }
.pg-btn-danger:hover,
.btn-danger:hover { background:var(--ui-danger-hover); border-color:var(--ui-danger-hover); color:#fff; }
.btn-warning { background:var(--ui-warning); border-color:var(--ui-warning); color:#fff; }
.btn-warning:hover { background:var(--ui-warning-hover); border-color:var(--ui-warning-hover); color:#fff; }
.btn-info { background:var(--ui-info); border-color:var(--ui-info); color:#fff; }
.btn-info:hover { background:var(--ui-info-hover); border-color:var(--ui-info-hover); color:#fff; }
.pg-btn-gray,
.btn-secondary { background:var(--ui-neutral); border-color:var(--ui-neutral); color:#fff; }
.pg-btn-gray:hover,
.btn-secondary:hover { background:var(--ui-neutral-hover); border-color:var(--ui-neutral-hover); color:#fff; }
.pg-btn-outline,
.btn-pg-outline,
.btn-outline,
.btn-outline-primary { background:transparent; border-color:var(--ui-primary); color:var(--ui-primary); }
.pg-btn-outline:hover,
.btn-pg-outline:hover,
.btn-outline:hover,
.btn-outline-primary:hover { background:rgba(37,99,235,.09); color:var(--ui-primary-hover); }
.btn-outline-secondary { background:transparent; border-color:var(--ui-neutral); color:var(--ui-neutral); }
.btn-outline-success { background:transparent; border-color:var(--ui-success); color:var(--ui-success); }
.btn-outline-danger { background:transparent; border-color:var(--ui-danger); color:var(--ui-danger); }
.pg-btn-sm,.btn-sm { min-height:var(--ui-btn-height-sm); padding:0 12px; font-size:.82rem; border-radius:8px; }
.pg-btn-lg,.btn-lg { min-height:var(--ui-btn-height-lg); padding:0 20px; font-size:1rem; }
.pg-btn-block,.btn-block,.btn-full { width:100%; }

.pg-badge,
.badge,
.badge-primary,
.badge-secondary,
.badge-success,
.badge-warning,
.badge-danger,
.badge-info,
.badge-dark,
.badge-blue,
.status-chip {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:24px;
  padding:3px 9px;
  border:1px solid transparent;
  border-radius:var(--ui-badge-radius);
  font-size:.74rem;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  vertical-align:middle;
  box-sizing:border-box;
}
.pg-badge-blue,.badge-primary,.badge-blue { background:#dbeafe; border-color:#bfdbfe; color:#1d4ed8; }
.pg-badge-green,.badge-success { background:#dcfce7; border-color:#bbf7d0; color:#166534; }
.pg-badge-yellow,.badge-warning { background:#fef3c7; border-color:#fde68a; color:#92400e; }
.pg-badge-red,.badge-danger { background:#fee2e2; border-color:#fecaca; color:#b91c1c; }
.pg-badge-purple { background:#f3e8ff; border-color:#e9d5ff; color:#7e22ce; }
.pg-badge-gray,.badge-secondary,.badge-dark { background:#e2e8f0; border-color:#cbd5e1; color:#334155; }
.badge-outline { background:transparent; border-color:currentColor; }
[data-theme="dark"] .pg-badge-blue,[data-theme="dark"] .badge-primary,[data-theme="dark"] .badge-blue { background:rgba(96,165,250,.16); border-color:rgba(96,165,250,.32); color:#93c5fd; }
[data-theme="dark"] .pg-badge-green,[data-theme="dark"] .badge-success { background:rgba(74,222,128,.14); border-color:rgba(74,222,128,.3); color:#86efac; }
[data-theme="dark"] .pg-badge-yellow,[data-theme="dark"] .badge-warning { background:rgba(251,191,36,.14); border-color:rgba(251,191,36,.3); color:#fcd34d; }
[data-theme="dark"] .pg-badge-red,[data-theme="dark"] .badge-danger { background:rgba(248,113,113,.14); border-color:rgba(248,113,113,.3); color:#fca5a5; }
[data-theme="dark"] .pg-badge-purple { background:rgba(192,132,252,.14); border-color:rgba(192,132,252,.3); color:#d8b4fe; }
[data-theme="dark"] .pg-badge-gray,[data-theme="dark"] .badge-secondary,[data-theme="dark"] .badge-dark { background:rgba(148,163,184,.14); border-color:rgba(148,163,184,.28); color:#cbd5e1; }

@media (max-width:767px) {
  .pg-btn,.btn-pg,.btn-primary,.btn-secondary,.btn-success,.btn-warning,.btn-danger,.btn-info { min-height:44px; }
  .pg-btn-sm,.btn-sm { min-height:38px; }
}

/* ━━━━━━ 우리들 게임(our_game / og-*) 다크모드 대응 ━━━━━━ */
[data-theme="dark"] .og-section-title { color:#f1f5f9; }
[data-theme="dark"] .og-card { background:#1f2937; border-color:#374151; box-shadow:0 10px 30px rgba(0,0,0,.35); }
[data-theme="dark"] .og-title { color:#f1f5f9; }
[data-theme="dark"] .og-date { color:#9ca3af; }
[data-theme="dark"] .og-meta { color:#cbd5e1; }
[data-theme="dark"] .og-st-ready { background:rgba(59,130,246,.18); color:#93c5fd; }
[data-theme="dark"] .og-st-live  { background:rgba(34,197,94,.18);  color:#6ee7a8; }
[data-theme="dark"] .og-st-done  { background:rgba(148,163,184,.2); color:#cbd5e1; }
[data-theme="dark"] .og-cbtn { background:#374151; color:#6b7280; }
[data-theme="dark"] .og-cbtn.is-on { background:#059669; color:#fff; }
[data-theme="dark"] .og-owner-link { color:#9ca3af; }
[data-theme="dark"] .og-empty { background:rgba(255,255,255,.03); border-color:#374151; color:#9ca3af; }
[data-theme="dark"] .og-info span { background:#283040; color:#d1d5db; }
[data-theme="dark"] .og-btn-outline { background:#283040; border-color:#4b5563; color:#6ee7a8; }
[data-theme="dark"] .og-player-item { border-bottom-color:#374151; }
[data-theme="dark"] .og-player-name { color:#f1f5f9; }
[data-theme="dark"] .og-player-no { background:#283040; color:#e5e7eb; }
[data-theme="dark"] .og-badge-mb { background:rgba(37,99,169,.28); color:#93c5fd; }
[data-theme="dark"] .og-badge-guest { background:rgba(161,90,0,.3); color:#fbbf24; }
[data-theme="dark"] .og-group-input { background:#283040; border-color:#4b5563; color:#f9fafb; }
[data-theme="dark"] .og-pick-item { background:#1f2937; border-color:#374151; }
[data-theme="dark"] .og-pick-name { color:#f1f5f9; }
