@charset "UTF-8";
/* ============================================================
   군위 파크골프 테마 v10.0 — 통합 스타일시트
   (style.css + index_style.css 병합 / 중복 제거 / 다크모드 단일화)
   ============================================================ */

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   1. CSS 변수 (라이트 모드 기준)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
:root {
  /* 브랜드 색상 */
  --color-primary:       #1B5E20;
  --color-primary-hover: #0D3B12;
  --color-primary-light: #f0fdf4;
  --color-primary-mid:   #4caf74;
  --color-secondary:     #475569;
  --color-success:       #059669;
  --color-danger:        #e11d48;
  --color-warning:       #d97706;
  --color-info:          #0284c7;

  /* 파크골프 추가 색상 */
  --color-earth:         #8b6914;
  --color-earth-light:   #fdf3dc;
  --color-sky:           #0077b6;
  --color-sky-light:     #e0f4fd;

  /* 배경 */
  --bg:                  #f8fafc;
  --bg-white:            #ffffff;
  --bg-card:             #ffffff;
  --bg-muted:            #f1f5f9;

  /* 텍스트 */
  --text:                #666;
  --text-muted:          #64748b;
  --text-light:          #94a3b8;

  /* 테두리 */
  --border:              #e2e8f0;
  --border-dark:         #cbd5e1;

  /* 그림자 */
  --shadow-sm:           0 1px 3px rgba(0,0,0,.07);
  --shadow-md:           0 4px 12px rgba(0,0,0,.08);
  --shadow-lg:           0 8px 24px rgba(0,0,0,.12);

  /* 반경 */
  --radius:              4px;
  --radius-lg:           8px;
  --radius-xl:           12px;

  /* 기타 */
  --transition:          0.2s ease-in-out;
  --font:                'SCoreDream', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --input-height:        42px;
  --notice-h:            48px;
  --header-h:            78px;

  /* FAQ/브랜드 별칭 */
  --green-dark:          var(--color-primary);
  --green-main:          var(--color-primary);
  --green-light:         #4caf74;
  --green-pale:          var(--color-primary-light);
  --gold:                #c9a84c;
  --gold-light:          #f0d98a;
  --text-soft:           var(--text-light);

  /* ── 스코어 입력 모달 전용 토큰 ── */
  --sc-bg:               #f8fafc;
  --sc-surface:          #ffffff;
  --sc-border:           #e2e8f0;
  --sc-text:             #1e293b;
  --sc-muted:            #64748b;
  --sc-header-bg:        linear-gradient(135deg,#0a1f0f 0%,#1B5E20 60%,#166534 100%);
  --sc-accent:           #1B5E20;
  --sc-accent-lt:        #dcfce7;
  --sc-btn-bg:           #1e293b;
  --sc-btn-txt:          #ffffff;
  --sc-minus-bg:         #f1f5f9;
  --sc-minus-txt:        #374151;
  --sc-card-bg:          #ffffff;
  --sc-val-ghost:        #d1d5db;
  --sc-pen-border:       #94a3b8;
  --sc-sep:              #e2e8f0;
  --sc-step-bg:          #f8fafc;
  --sc-footer-bg:        #ffffff;
  --sc-sel-ring:         #1B5E20;
  --sc-sel-bg:           #f0fdf4;
  --sc-tag-bg:           #f1f5f9;
  --sc-tag-txt:          #475569;
  --sc-tag-sel-bg:       #1B5E20;
  --sc-tag-sel:          #ffffff;
  --sc-shadow:           0 2px 8px rgba(0,0,0,.06);
  --sc-radius:           14px;
  --sc-card-r:           16px;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   2. 다크모드 — [data-theme="dark"] 단일 방식
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
[data-theme="dark"] {
  /* 배경 */
  --bg:                  #0f172a;
  --bg-white:            #1e293b;
  --bg-card:             #1e293b;
  --bg-muted:            #1a2535;

  /* 텍스트 */
  --text:                #f1f5f9;
  --text-muted:          #94a3b8;
  --text-light:          #64748b;

  /* 테두리 */
  --border:              #334155;
  --border-dark:         #475569;

  /* 파크골프 추가 색상 */
  --color-primary-mid:   #52b788;
  --color-earth:         #b8952e;
  --color-earth-light:   #2a2415;
  --color-sky:           #0096d6;
  --color-sky-light:     #0a2a35;

  /* FAQ/브랜드 별칭 */
  --green-pale:          rgba(27,94,32,.15);
  --gold:                #fbbf24;
  --gold-light:          #d97706;

  /* 스코어 입력 모달 토큰 */
  --sc-bg:               #0d1117;
  --sc-surface:          #161b22;
  --sc-border:           #30363d;
  --sc-text:             #e6edf3;
  --sc-muted:            #8b949e;
  --sc-btn-bg:           #e6edf3;
  --sc-btn-txt:          #0d1117;
  --sc-minus-bg:         #21262d;
  --sc-minus-txt:        #c9d1d9;
  --sc-card-bg:          #161b22;
  --sc-val-ghost:        #484f58;
  --sc-pen-border:       #484f58;
  --sc-sep:              #21262d;
  --sc-step-bg:          #0d1117;
  --sc-footer-bg:        #161b22;
  --sc-sel-bg:           #1c3829;
  --sc-tag-bg:           #21262d;
  --sc-tag-txt:          #8b949e;
  --sc-tag-sel-bg:       #238636;
  --sc-shadow:           0 2px 8px rgba(0,0,0,.4);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   3. 폰트
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   4. 리셋 & 베이스
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-size:1rem !important;
  font-family:var(--font) !important;
  background:var(--bg-white);
  color:var(--text);
  line-height:1.6;
  overflow-x:hidden;
  transition:background var(--transition), color var(--transition);
}
body.notice-hidden { padding-top:var(--header-h); }
a { color:inherit; text-decoration:none; transition:color var(--transition); }
img { max-width:100%; height:auto; display:block; }
ul, ol { list-style:none; }
button { font-family:var(--font); cursor:pointer; }
h1,h2,h3,h4,h5,h6 { font-family:var(--font) !important; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   5. 공통 컨테이너 & 그리드
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.container, .section-container { max-width:1280px; margin:0 auto; padding:0 1.5rem; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
#main-content { min-height:100vh; }
#main-content .container { padding:3rem 0; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   6. 공지바
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#notice-bar {
  background:var(--color-primary);
  color:#fff;
  position:fixed;
  top:0; left:0; right:0;
  z-index:1001;
  transition:height .35s ease;
}
#notice-bar.hidden { display:none; }
[data-theme="dark"] #notice-bar { background:#0a3010; }

.notice-container { display:flex; align-items:center; height:48px; gap:12px; }
.notice-label {
  display:flex; align-items:center; gap:6px;
  padding-right:12px; margin-right:12px;
  border-right:1px solid rgba(255,255,255,.3);
  font-size:11px; font-weight:700; text-transform:uppercase;
  color:#a7f3d0; white-space:nowrap; flex-shrink:0;
}
.notice-swiper { flex:1; height:48px; overflow:hidden; }
.notice-swiper .swiper-wrapper { transition-timing-function:cubic-bezier(0.4,0,0.2,1); }
.notice-item { display:flex !important; align-items:center; height:48px; }
.notice-link {
  color:rgba(255,255,255,.92);
  font-size:15px; font-weight:500;
  text-decoration:none; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
  display:block; width:100%;
}
.notice-link:hover { color:#a7f3d0; text-decoration:underline; }
.notice-controls { display:flex; align-items:center; gap:4px; flex-shrink:0; }
.notice-prev, .notice-next {
  width:28px; height:28px;
  background:rgba(255,255,255,.15);
  border:none; border-radius:4px;
  color:rgba(255,255,255,.85);
  font-size:12px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all .2s;
}
.notice-prev:hover, .notice-next:hover { background:rgba(255,255,255,.3); color:#fff; }
.notice-close {
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 10px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);
  border-radius:4px; color:rgba(255,255,255,.8);
  font-size:11px; cursor:pointer; margin-left:6px;
  transition:all .2s;
}
.notice-close:hover { background:rgba(255,255,255,.25); color:#fff; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   7. 헤더 + PC 메가메뉴
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#header {
  background:var(--bg-white);
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  position:fixed; top:48px;
  height:var(--header-h);
  left:0; right:0; z-index:999;
  transition:background var(--transition), top .35s ease;
}
[data-theme="dark"] #header { background:var(--bg-card); }

.header-top { display:flex; justify-content:space-between; align-items:center; padding:14px 0; gap:10px; }
.logo { flex-shrink:0; }
.nav-logo { display:flex; align-items:center; gap:8px; font-size:1.1rem; font-weight:800; color:var(--color-primary); }
.logo-icon { font-size:1.4rem; }
[data-theme="dark"] .nav-logo { color:#4ade80; }

/* PC 메가메뉴 */
.gnb_wrap { flex:1; height:50px; position:relative; }
.gnb_nav .menu { width:750px; margin:0 auto; }
.gnb_nav .menu::after { display:block; content:""; clear:both; }
.gnb_nav .menu > li { width:20%; text-align:center; float:left; position:relative; }
.gnb_nav .menu > li > a {
  width:100%; padding:10px 0 25px;
  font-size:19px; color:var(--text); font-weight:600;
  display:block; position:relative; transition:color 0.3s;
}
[data-theme="dark"] .gnb_nav .menu > li > a { color:var(--text); }
.gnb_nav .menu > li > a::after {
  content:''; position:absolute; left:50%; bottom:0;
  transform:translateX(-50%); width:0; height:3px;
  background:#ff24a0; transition:all 0.5s;
}
.gnb_nav .menu > li:hover > a::after { width:100%; }
.gnb_nav .menu > li > .item {
  padding:15px 12px 0; left:0; top:65px;
  width:100%; height:280px;
  background:rgba(0,0,0,.85);
  text-align:left; overflow-y:auto;
  z-index:1000; position:absolute;
  border-radius:0 0 8px 8px;
}
[data-theme="dark"] .gnb_nav .menu > li > .item { background:rgba(30,41,59,.95); }
.gnb_nav .menu > li > .item ul li { width:100%; text-align:center; margin-bottom:5px; }
.gnb_nav .menu > li > .item ul li a {
  width:100%; line-height:32px; font-size:14px; color:#fff;
  display:inline-block; border-radius:6px; transition:all 0.2s;
}
[data-theme="dark"] .gnb_nav .menu > li > .item ul li a { color:#e2e8f0; }
.gnb_nav .menu > li > .item ul li a:hover { background-color:var(--color-primary); color:#fff; }

/* 인증 버튼 */
.auth-buttons { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.auth-buttons a {
  display:inline-flex; align-items:center; justify-content:center;
  padding:7px 14px; font-size:13px; font-weight:600;
  border-radius:var(--radius); transition:all .2s;
}
.auth-buttons i { margin-right:5px; font-size:12px; }
.btn-login, .btn-logout { background:var(--color-primary); color:#fff !important; border:1px solid var(--color-primary); }
.btn-login:hover, .btn-logout:hover { background:var(--color-primary-hover); }
.btn-mypage, .btn-join { background:var(--bg-muted); color:var(--text) !important; border:1px solid var(--border); }
.btn-mypage:hover, .btn-join:hover { background:var(--border); }
[data-theme="dark"] .btn-mypage, [data-theme="dark"] .btn-join { background:#334155; color:#e2e8f0 !important; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   8. 모바일 메뉴
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.mobile-menu-btn {
  display:none; flex-direction:column; justify-content:center; align-items:center;
  gap:5px; width:40px; height:40px;
  background:none; border:1px solid var(--border);
  border-radius:var(--radius); cursor:pointer;
}
.mobile-menu-btn span { display:block; width:20px; height:2px; background:var(--text); border-radius:2px; transition:transform .28s ease, opacity .28s ease; }
.mobile-menu-btn.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.mobile-menu-btn.open span:nth-child(2) { opacity:0; }
.mobile-menu-btn.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

#mobile-menu-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:1098; }
#mobile-menu-overlay.open { display:block; }

#mobile-nav {
  position:fixed; top:0; right:-310px; width:290px; height:100%;
  background:var(--bg-white); z-index:1099; overflow-y:auto;
  transition:right .32s cubic-bezier(.2,.9,.4,1);
  box-shadow:-4px 0 24px rgba(0,0,0,.18);
  display:flex; flex-direction:column;
}
[data-theme="dark"] #mobile-nav { background:#1e293b; }
#mobile-nav.open { right:0; }

.mobile-nav-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:16px 18px;
  background:linear-gradient(135deg,var(--color-primary) 0%,#064e3b 100%);
}
.mobile-nav-header .mobile-logo { display:flex; align-items:center; gap:8px; }
.mobile-nav-header .mobile-logo span,
.mobile-nav-header .mobile-logo-text { font-size:.95rem; font-weight:800; color:#fff; }
.mobile-nav-close {
  width:48px; height:48px; background:transparent; border:none;
  color:#fff; font-size:36px; font-weight:300; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:opacity .2s; line-height:1;
}
.mobile-auth {
  display:flex; gap:8px; padding:14px 16px;
  background:var(--bg-muted); border-bottom:1px solid var(--border);
}
.mobile-auth a { flex:1; text-align:center; padding:9px 6px; font-size:13px; font-weight:600; border-radius:var(--radius); }
.mobile-auth a i { margin-right:4px; }

.mobile-gnb { flex:1; overflow-y:auto; }
.mobile-gnb > ul > li { border-bottom:1px solid var(--border); }
.mobile-gnb > ul > li > a {
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 18px; font-size:15px; font-weight:700;
  color:var(--text); background:var(--bg-white); transition:all .2s;
}
[data-theme="dark"] .mobile-gnb > ul > li > a { background:#1e293b; }
.mobile-gnb > ul > li > a:hover,
.mobile-gnb > ul > li.sub-open > a { color:var(--color-primary); background:var(--color-primary-light); }
.mobile-gnb > ul > li > a .sub-arrow { font-size:11px; color:var(--text-light); transition:transform .28s; }
.mobile-gnb > ul > li.sub-open > a .sub-arrow { transform:rotate(180deg); }

.mobile-gnb .mobile-submenu { display:none; background:var(--bg-white); border-top:1px solid var(--border); }
.mobile-gnb .mobile-submenu li { border-bottom:1px solid var(--border); }
.mobile-gnb .mobile-submenu li:last-child { border-bottom:none; }
.mobile-gnb .mobile-submenu li a {
  display:block; padding:11px 18px 11px 30px;
  font-size:14px; color:var(--text-muted); position:relative;
}
.mobile-gnb .mobile-submenu li a::before {
  content:'·'; position:absolute; left:18px;
  color:var(--color-primary); font-size:15px; font-weight:700;
}
.mobile-gnb .mobile-submenu li a:hover { color:var(--color-primary); background:var(--color-primary-light); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   9. 히어로 섹션
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.hero {
  position:relative; min-height:88vh;
  display:flex; align-items:center; overflow:hidden;
  transition:padding-top 0.3s ease;
}
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; }
.hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(15,23,42,.82) 0%,rgba(27,94,32,.55) 60%,rgba(15,23,42,.35) 100%);
}
.hero .section-container { position:relative; z-index:1; }
.hero-grid { display:grid; grid-template-columns:1fr 400px; gap:3rem; align-items:center; }
.hero-content { color:#fff; }
.hero-content h1 { font-size:clamp(2rem,4vw,3rem); font-weight:900; line-height:1.2; margin-bottom:1.25rem; }
.hero-content h1 .accent { color:#4ade80; }
.hero-content p { font-size:1.05rem; color:rgba(255,255,255,.8); line-height:1.75; margin-bottom:2rem; max-width:520px; }
.hero-actions { display:flex; gap:.75rem; flex-wrap:wrap; }

.res-card {
  background:rgba(255,255,255,.9) !important;
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  padding:1.75rem;
  box-shadow:var(--shadow-lg);
}
.res-card h3 { font-size:1.05rem; font-weight:800; color:var(--text); margin-bottom:1.25rem; display:flex; align-items:center; gap:.5rem; }
[data-theme="dark"] .res-card { background:rgba(30,41,59,.95) !important; border-color:var(--border); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   10. 랭킹 섹션
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.ranking-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.ranking-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; }
[data-theme="dark"] .ranking-card { background:var(--bg-card); border-color:var(--border); }
.ranking-card-head {
  padding:.9rem 1.25rem;
  background:linear-gradient(135deg,var(--color-primary) 0%,#064e3b 100%);
  display:flex; align-items:center; justify-content:space-between;
}
.ranking-card-head h3 { font-size:.95rem; font-weight:800; color:#fff; display:flex; align-items:center; gap:.4rem; }
.ranking-card-head a { font-size:.78rem; color:rgba(255,255,255,.75); border:1px solid rgba(255,255,255,.25); padding:.2rem .6rem; border-radius:var(--radius); transition:all var(--transition); }
.ranking-card-head a:hover { color:#fff; border-color:#fff; }
.ranking-list { padding:.75rem 0; }
.ranking-item { display:flex; align-items:center; gap:.85rem; padding:.65rem 1.25rem; border-bottom:1px solid var(--border); transition:background var(--transition); }
.ranking-item:last-child { border-bottom:none; }
.ranking-item:hover { background:var(--bg); }
.rank-num { width:28px; height:28px; border-radius:50%; background:var(--bg-muted); border:1px solid var(--border); font-size:.8rem; font-weight:800; color:var(--text-muted); display:flex; align-items:center; justify-content:center; }
.rank-num.r1 { background:#fef3c7; color:#b45309; border-color:#fde68a; }
.rank-num.r2 { background:#f1f5f9; color:#475569; border-color:#cbd5e1; }
.rank-num.r3 { background:#fef9c3; color:#713f12; border-color:#fde68a; }
.rank-name { flex:1; font-size:.9rem; font-weight:700; color:var(--text); }
.rank-score { font-size:.85rem; font-weight:700; color:var(--color-primary); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   11. 커뮤니티 섹션
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.community-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.community-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; }
[data-theme="dark"] .community-card { background:var(--bg-card); border-color:var(--border); }
.community-card-header { padding:.9rem 1.25rem; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
.community-card-header h3 { font-size:.93rem; font-weight:700; display:flex; align-items:center; gap:.4rem; }
.community-more { font-size:.8rem; font-weight:600; color:var(--text-muted); transition:color var(--transition); }
.community-more:hover { color:var(--color-primary); }
.community-list { padding:.5rem 0; }
.community-list li { display:flex; align-items:center; justify-content:space-between; padding:.6rem 1.25rem; border-bottom:1px solid var(--border); gap:.5rem; }
.community-list li:last-child { border-bottom:none; }
.community-list li a { font-size:.87rem; color:var(--text); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; transition:color var(--transition); }
.community-list li a:hover { color:var(--color-primary); }
.community-date { font-size:.75rem; color:var(--text-light); white-space:nowrap; flex-shrink:0; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   12. 갤러리
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.gallery-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.25rem; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.gallery-item { position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:1; cursor:pointer; background:var(--bg-muted); border:1px solid var(--border); }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.gallery-item:hover img { transform:scale(1.06); }
.zoom-icon { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(15,23,42,.45); opacity:0; transition:opacity .3s; color:#fff; font-size:1.75rem; }
.gallery-item:hover .zoom-icon { opacity:1; }
.gallery-title-bar { position:absolute; bottom:0; left:0; right:0; padding:.6rem .85rem; background:linear-gradient(transparent,rgba(15,23,42,.7)); color:#fff; font-size:.8rem; font-weight:600; transform:translateY(100%); transition:transform .3s ease; }
.gallery-item:hover .gallery-title-bar { transform:translateY(0); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   13. 섹션 공통
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.section { padding:4rem 0; }
.section-alt { background:var(--bg-muted); }
.section-header { margin-bottom:2.5rem; text-align:center; }
.section-header h2 { font-size:1.75rem; font-weight:800; color:var(--text); letter-spacing:-.03em; margin-bottom:.5rem; }
.section-header p { color:var(--text-muted); font-size:.95rem; }
.section-header-left { display:flex; align-items:center; gap:.75rem; margin-bottom:1.5rem; }
.section-header-left h2 { font-size:1.35rem; font-weight:800; color:var(--text); }
.header-bar { width:4px; height:1.4rem; background:var(--color-primary); border-radius:2px; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   14. 버튼 시스템
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:.42rem 1rem; border-radius:var(--radius); font-family:var(--font); font-size:.9rem; font-weight:600; border:1px solid transparent; cursor:pointer; transition:all var(--transition); }
.btn-sm { font-size:.8rem; padding:.3rem .65rem; }
.btn-lg { font-size:1rem; padding:.62rem 1.4rem; }
.btn-block { width:100%; display:flex; }
.btn-primary { background:var(--color-primary); color:#fff; border-color:var(--color-primary); }
.btn-primary:hover { background:var(--color-primary-hover); }
.btn-outline-primary { background:transparent; color:var(--color-primary); border-color:var(--color-primary); }
.btn-outline-primary:hover { background:var(--color-primary); color:#fff; }
.btn-outline-secondary { background:transparent; color:var(--text-muted); border:1px solid var(--border); }
.btn-outline-secondary:hover { background:var(--bg-muted); }
.btn-success { background:var(--color-success); color:#fff; border-color:var(--color-success); }
.btn-success:hover { background:#047857; }
.btn-text { background:transparent; border:none; color:var(--text-muted); font-weight:600; font-size:.85rem; padding:.4rem .7rem; border-radius:var(--radius); }
.btn-text:hover { color:var(--color-primary); background:var(--color-primary-light); }
.btn-full { width:100%; display:flex; align-items:center; justify-content:center; padding:.72rem 1rem; background:var(--color-primary); color:#fff; border:none; border-radius:var(--radius); font-weight:700; cursor:pointer; }
.btn-full:hover { background:var(--color-primary-hover); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   15. 배지
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.badge { display:inline-flex; align-items:center; gap:4px; padding:.2rem .6rem; border-radius:var(--radius); font-size:.78rem; font-weight:600; white-space:nowrap; }
.badge-primary { background:var(--color-primary-light); color:var(--color-primary); border:1px solid #bbf7d0; }
.badge-success  { background:#ecfdf5; color:var(--color-success); border:1px solid #a7f3d0; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   16. 폼
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.form-group { margin-bottom:1rem; }
.form-label { display:block; margin-bottom:.4rem; font-size:.85rem; font-weight:600; color:var(--text-muted); }
.form-control, input[type="text"], input[type="number"], input[type="date"], select, textarea {
  width:100%; height:var(--input-height); padding:10px 14px;
  border:1px solid var(--border); border-radius:var(--radius);
  font-family:var(--font); font-size:.88rem;
  color:var(--text); background:var(--bg-white);
  transition:all var(--transition);
}
.form-control:focus, input:focus, select:focus, textarea:focus {
  outline:none; border-color:var(--color-primary);
  box-shadow:0 0 0 2px rgba(27,94,32,.15);
}
textarea.form-control { height:auto; min-height:90px; resize:vertical; }
[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"] select,
[data-theme="dark"] textarea { background:#1e293b; border-color:#334155; color:#f1f5f9; }

label span.required { background-image:none !important; color:var(--color-danger); margin-left:2px; display:inline-block; }
.form-section-label { font-size:.78rem; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.06em; margin:1.25rem 0 .75rem; padding-bottom:.4rem; border-bottom:1px solid var(--border); }
.form-text { font-size:.78rem; margin-top:.3rem; }
.text-muted { color:var(--text-muted); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   17. 스크롤링 배너
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.banner { background:var(--color-primary); padding:.7rem 0; overflow:hidden; }
.scroll-track { overflow:hidden; }
.scroll-container { display:flex; width:1280px; margin:0 auto; animation:scroll-x 25s linear infinite; }
.scroll-container:hover { animation-play-state:paused; }
.scroll-text { padding:0 2rem; color:rgba(255,255,255,.9); font-size:.83rem; font-weight:700; white-space:nowrap; }
.scroll-text::before { content:'⛳'; margin-right:.5rem; opacity:.7; }
@keyframes scroll-x { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   18. 푸터
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#footer { background:#0f172a; color:#94a3b8; padding:3rem 0 0; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; padding-bottom:2.5rem; border-bottom:1px solid #1e293b; }
.footer-logo { font-size:1.15rem; font-weight:800; color:#fff; margin-bottom:.75rem; }
.footer-p { font-size:.85rem; line-height:1.7; color:#64748b; margin-bottom:1.25rem; }
.footer-social { display:flex; gap:.5rem; }
.social-circle { width:36px; height:36px; border-radius:50%; background:#1e293b; border:1px solid #334155; color:#94a3b8; display:flex; align-items:center; justify-content:center; transition:all var(--transition); }
.social-circle:hover { background:var(--color-primary); border-color:var(--color-primary); color:#fff; }
.footer-h5 { font-size:.75rem; font-weight:800; color:#f1f5f9; margin-bottom:1rem; text-transform:uppercase; }
.footer-links { display:flex; flex-direction:column; gap:.55rem; }
.footer-links li a { color:#64748b; transition:color var(--transition); }
.footer-links li a:hover { color:#fff; }
.footer-bottom { padding:1.25rem 0; display:flex; justify-content:space-between; font-size:.8rem; color:#475569; flex-wrap:wrap; gap:.75rem; }

/* 다크 토글 버튼 */
.dark-toggle { display:flex; align-items:center; gap:.4rem; background:none; border:1px solid #334155; color:#64748b; padding:.3rem .7rem; border-radius:var(--radius); font-family:var(--font); font-size:.78rem; cursor:pointer; }
.dark-toggle:hover { border-color:#475569; color:#94a3b8; }
.auth-buttons .dark-toggle { padding:7px 10px; font-size:13px; border-color:var(--border); background:var(--bg-muted); color:var(--text-muted); }
.auth-buttons .dark-toggle:hover { background:var(--border); color:var(--text); }
[data-theme="dark"] .auth-buttons .dark-toggle { background:#334155; color:#e2e8f0; border-color:#475569; }
[data-theme="dark"] .auth-buttons .dark-toggle:hover { background:#475569; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   19. TOP 버튼 & 플로팅 예약 버튼
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.top-btn {
  position:fixed; bottom:1.5rem; right:1.5rem;
  width:44px; height:44px;
  background:var(--color-primary); color:#fff;
  border:none; border-radius:var(--radius); font-size:1.1rem;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; z-index:400; opacity:0;
  transform:translateY(16px); transition:all .3s ease;
  box-shadow:var(--shadow-md);
}
.top-btn.show { opacity:1; transform:translateY(0); }
.top-btn:hover { background:var(--color-primary-hover); transform:translateY(-2px); }
.floating-reserve { position:fixed; bottom:5rem; right:1.5rem; z-index:399; }
.floating-btn { display:flex; align-items:center; gap:.4rem; background:var(--color-primary); color:#fff; padding:.65rem 1.1rem; border-radius:50px; font-weight:700; font-size:.87rem; box-shadow:0 4px 16px rgba(27,94,32,.35); transition:all var(--transition); }
.floating-btn:hover { background:var(--color-primary-hover); transform:translateY(-2px); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   20. 그누보드 오버라이드
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#wrapper { background:var(--bg); }
#container_wr { max-width:1280px; margin:0 auto; padding:2rem 1.5rem; }
.list_wrap, .bo_list { background:var(--bg-white); border-radius:var(--radius-lg); border:1px solid var(--border); overflow:hidden; }
.list_wrap th, .bo_list th { background:var(--bg-muted); font-weight:700; color:var(--text-muted); }
.list_wrap td a, .bo_list td a { color:var(--text); }
.list_wrap td a:hover, .bo_list td a:hover { color:var(--color-primary); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   21. 슬라이드 모달
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.slide-modal { display:none; position:fixed; inset:0; z-index:1200; }
.slide-modal-overlay { position:absolute; inset:0; background:rgba(0,0,0,.5); backdrop-filter:blur(3px); }
.slide-modal-container {
  position:absolute; top:0; right:0; bottom:0;
  width:480px; max-width:92vw;
  background:var(--bg-white);
  box-shadow:-4px 0 32px rgba(0,0,0,.14);
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.2,.9,.4,1);
  display:flex; flex-direction:column; z-index:1201;
}
.slide-modal.open { display:flex; }
.slide-modal.open .slide-modal-container { transform:translateX(0); }
.slide-modal-lg .slide-modal-container { width:640px; }
.slide-modal-fullscreen .slide-modal-container { width:100% !important; max-width:100% !important; border-radius:0; }

.slide-modal-header {
  padding:1rem 1.5rem !important;
  background:#f8faf8;
  border-bottom:1px solid var(--border);
  display:flex !important; justify-content:space-between !important; align-items:center !important;
}
[data-theme="dark"] .slide-modal-header { background:#1a2538; border-color:var(--border); }
.slide-modal-header h3 { font-size:1rem; font-weight:700; color:var(--text-light); }
.slide-modal-title { font-size:1.1rem !important; font-weight:700 !important; margin:0 !important; }
.slide-modal-body { flex:1; overflow-y:auto; padding:1.5rem; }
.slide-modal-footer {
  padding: 1rem 1.5rem; 
  border-top: 1px solid var(--border);
  display: flex; 
  gap: .5rem; 
  background: var(--bg);
  width: 100%; /* 부모 너비 확보 */
  box-sizing: border-box;
}

.slide-modal-footer .btn {
  flex: 1; /* 남은 공간을 1:1로 나누어 가짐 */
  margin: 0 !important;
  white-space: nowrap;
  justify-content: center; /* 버튼 내 텍스트 중앙 정렬 */
}
[data-theme="dark"] .slide-modal-footer { background:#1e293b; border-color:var(--border); }

/* 닫기 버튼 */
.slide-modal-close {
  width:34px !important; height:34px !important;
  background:transparent !important; border:none !important;
  cursor:pointer !important; display:flex !important;
  align-items:center !important; justify-content:center !important;
  padding:0 !important; position:relative !important;
  transition:all 0.2s ease !important;
  color:var(--text-light); 
}
.slide-modal-close::before {
  content:"\2573" !important; font-size:1.4rem !important; font-weight:100 !important;
  color:var(--text-muted) !important; transition:all 0.2s ease !important;
  display:block !important; line-height:1 !important;
}
.slide-modal-close:hover::before { transform:scale(1.1) !important; }
[data-theme="dark"] .slide-modal-close:hover::before { color:#f87171 !important; }

/* 대회 참가 모달 */
.tour-info-box { background:var(--color-primary-light); border:1px solid #bbf7d0; border-radius:var(--radius-lg); padding:.85rem 1rem; margin-bottom:1rem; }
[data-theme="dark"] .tour-info-box { background:rgba(27,94,32,.15); border-color:#166534; }
.tib-row { display:flex; justify-content:space-between; font-size:.84rem; margin-bottom:.3rem; }
.tib-row:last-child { margin-bottom:0; }
.tib-row span { color:var(--text-muted); }
.tib-row strong { font-weight:700; color:var(--text); }
.tib-fee { color:var(--color-primary) !important; font-size:.95rem !important; }
.apply-agree-box { background:var(--bg-muted); border-radius:var(--radius); padding:.85rem 1rem; font-size:.85rem; margin-top:.5rem; }
.tour-login-notice { text-align:center; padding:2rem 1rem; display:flex; flex-direction:column; align-items:center; gap:1rem; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   22. 퀵 메뉴 카드
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.quick-menu-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:1.25rem; }
.quick-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.5rem 0.75rem; text-align:center; transition:all 0.25s ease; display:block; cursor:pointer; }
.quick-card:hover { transform:translateY(-5px); border-color:var(--color-primary); box-shadow:0 8px 20px rgba(0,0,0,.08); }
[data-theme="dark"] .quick-card { background:var(--bg-card); border-color:var(--border); }
.quick-icon { font-size:2rem; margin-bottom:.75rem; }
.quick-card h3 { font-size:1rem; font-weight:700; color:var(--text); margin-bottom:.3rem; }
.quick-card p  { font-size:.75rem; color:var(--text-muted); margin:0; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   23. 토스트 알림
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.pg-toast-wrap { position:fixed; bottom:30px; right:30px; z-index:999999; display:flex; flex-direction:column; gap:10px; pointer-events:none; }
.pg-toast {
  position:fixed; bottom:80px; left:50%;
  transform:translateX(-50%) translateY(20px);
  background:#1e293b; color:#f1f5f9;
  padding:.7rem 1.4rem; border-radius:24px;
  font-size:.85rem; font-weight:600;
  z-index:99999; box-shadow:0 8px 32px rgba(0,0,0,.3);
  opacity:0; transition:opacity .3s, transform .3s;
  pointer-events:none; white-space:nowrap; max-width:90vw;
}
.pg-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
.pg-toast.success, .pg-toast.toast-success { background:var(--color-success); border-left:4px solid #22c55e; }
.pg-toast.error,   .pg-toast.toast-error   { background:var(--color-danger);  border-left:4px solid #ef4444; }
.pg-toast.info                             { border-left:4px solid #3b82f6; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   24. 로딩 스피너
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.pg-spinner { display:inline-block; width:24px; height:24px; border:3px solid rgba(27,94,32,.2); border-top-color:#1B5E20; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   25. 대회 모드 배너
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.tournament-mode-section { background:linear-gradient(135deg,#0f2d17,#1B5E20); }
.tournament-mode-banner { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; padding:1.2rem; border-radius:14px; background:rgba(0,0,0,.2); }
.tournament-mode-icon { font-size:2rem; }
.tournament-mode-info { flex:1; min-width:160px; }
.tournament-mode-badge { display:inline-block; padding:3px 10px; border-radius:20px; font-size:.72rem; font-weight:700; margin-bottom:.25rem; }
.tournament-mode-badge.apply    { background:#22c55e; color:#fff; }
.tournament-mode-badge.ongoing  { background:#eab308; color:#1e293b; }
.tournament-mode-badge.ready    { background:#3b82f6; color:#fff; }
.tournament-mode-badge.finished { background:#64748b; color:#fff; }
.tournament-mode-name    { font-size:1rem; font-weight:700; color:#fff; }
.tournament-mode-date    { font-size:.75rem; color:#94a3b8; }
.tournament-mode-actions { display:flex; flex-wrap:wrap; gap:.5rem; }

.tournament-btn { display:flex; align-items:center; gap:.3rem; padding:.5rem 1rem; border:none; border-radius:var(--radius); font-size:.8rem; font-weight:600; cursor:pointer; transition:all .2s; background:rgba(255,255,255,.15); color:#fff; }
.tournament-btn:hover          { transform:translateY(-2px); background:rgba(255,255,255,.25); }
.tournament-btn.apply-btn      { background:linear-gradient(135deg,#2563eb,#7c3aed); }
.tournament-btn.score-btn      { background:linear-gradient(135deg,#059669,#10b981); }
.tournament-btn.ranking-btn    { background:linear-gradient(135deg,#d97706,#f59e0b); }
.tournament-btn.scoreboard-btn { background:linear-gradient(135deg,#0891b2,#06b6d4); }
.tournament-btn.my-btn         { background:linear-gradient(135deg,#475569,#64748b); }

.scoreboard-btn-glow { position:relative; overflow:hidden; }
.scoreboard-btn-glow::after { content:''; position:absolute; inset:0; background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.3) 50%,transparent 60%); transform:translateX(-100%); animation:btn-shine 2.5s ease-in-out infinite; }
@keyframes btn-shine { 0% { transform:translateX(-100%); } 50%, 100% { transform:translateX(200%); } }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   26. 나의 대회 카드
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.my-tournaments-list  { display:flex; flex-direction:column; gap:1rem; }
.my-tournament-card   { border:1px solid var(--border); border-radius:12px; padding:1rem; cursor:pointer; transition:box-shadow var(--transition); }
.my-tournament-card:hover { box-shadow:var(--shadow-md); }
[data-theme="dark"] .my-tournament-card { border-color:var(--border); }
.my-tournament-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:.5rem; }
.my-tournament-name   { font-weight:700; color:var(--text); }
.my-tournament-status { font-size:.7rem; padding:.2rem .6rem; border-radius:20px; }
.my-tournament-status.pending   { background:#fef3c7; color:#d97706; }
.my-tournament-status.confirmed { background:#dcfce7; color:#166534; }
.my-tournament-status.cancelled { background:#fee2e2; color:#dc2626; }

@media (max-width: 600px) {
	.logo img { height:38px; }
}
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   27. 개인정보처리방침
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.privacy-policy { max-width: 800px !important; margin: 0 auto; padding: 2rem; line-height: 1.7; color: #1a1a1a; }
.privacy-titles { font-size: 1.8rem; color: #1b5e20; font-weight: 700; margin-bottom: 2rem; border-bottom: 2px solid #2e7d32; padding-bottom: 0.5rem; text-align: center; }

/* 목차 리스트 박스 */
.privacy-list { background: #f5f5f5; padding: 1.5rem; border-radius: 8px; margin-bottom: 2.5rem; border: 1px solid #e8f5e9; }
.privacy-list-header { font-size: 0.95rem; color: #555; line-height: 1.6; margin-bottom: 1rem; }
.privacy-list-groups { display: inline-block; width: 48%; vertical-align: top; margin: 0; padding: 0; list-style: none; }
.privacy-list-groups li { margin-bottom: 0.4rem; font-size: 0.9rem; }
.privacy-list-groups li a { color: #2e7d32; text-decoration: none; }
.privacy-list-groups li a:hover { text-decoration: underline; }

/* 본문 섹션 */
.privacy-group { margin: 2rem 0; }
.privacy-group-title { font-size: 1.4rem; border-left: 5px solid #2e7d32; padding-left: 1rem; margin-bottom: 1rem; color: #1b5e20; font-weight: 600; }
.privacy-group-summary { margin-bottom: 0.8rem; color: #333; font-size: 0.95rem; }
.privacy-group-list { padding-left: 1.5rem; margin: 0 0 1rem 0; color: #333; }
.privacy-group-list li { margin-bottom: 0.5rem; }

/* 내부 테이블 스타일 */
table.hover.unstriped { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: 0.95rem; }
table.hover.unstriped th, table.hover.unstriped td { border: 1px solid #ddd; padding: 12px; text-align: left; vertical-align: middle; }
table.hover.unstriped th { background-color: #e8f5e9; color: #1b5e20; font-weight: 600; width: 25%; text-align: center; }
table.hover.unstriped td ul { margin: 0; padding-left: 1.2rem; }

/* 구분선 */
hr { border: 0; height: 1px; background: #e0e0e0; margin: 2rem 0; }

/* 모바일 반응형 설정 (600px 이하) */
@media (max-width: 600px) {
  .privacy-policy { padding: 1rem; }
  .privacy-list-groups { width: 100%; display: block; }
  table.hover.unstriped th, table.hover.unstriped td { display: block; width: 100%; }
  table.hover.unstriped th { text-align: left; background-color: #f1f8e9; }
}

/* 시스템 선호도 맞춤 다크모드 설정 */
@media (prefers-color-scheme: dark) {
  body { background-color: #121212; }
  .privacy-policy { color: #e0e0e0; }
  .privacy-titles { color: #81c784; border-bottom-color: #4caf50; }
  .privacy-list { background: #1e1e1e; border-color: #2e7d32; }
  .privacy-list-header { color: #b0b0b0; }
  .privacy-list-groups li a { color: #a5d6a7; }
  .privacy-group-title { color: #81c784; border-left-color: #4caf50; }
  .privacy-group-summary, .privacy-group-list { color: #ccc; }
  table.hover.unstriped th { background-color: #1b5e20; color: #fff; border-color: #333; }
  table.hover.unstriped td { color: #ddd; border-color: #333; background-color: #1e1e1e; }
  hr { background: #333; }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   28. 이용약관
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.provision { max-width: 1000px; margin: 0 auto; padding: 2rem; font-family: 'Noto Sans KR', sans-serif; line-height: 1.8; color: #1a1a1a; }
.provision h1 { font-size: 1.8rem; color: #1b5e20; border-bottom: 2px solid #2e7d32; padding-bottom: 0.5rem; margin-top: 0; text-align: center; }
.provision h2 { font-size: 1.5rem; border-left: 5px solid #2e7d32; padding-left: 1rem; margin-top: 2rem; margin-bottom: 1rem; color: #1b5e20; }

/* 목차(TOC) 영역 */
.provision .toc { background: #f5f5f5; padding: 1.2rem 1.8rem; margin: 1.5rem 0; border-radius: 8px; }
.provision .toc h3 { margin-top: 0; margin-bottom: 0.8rem; color: #1b5e20; }
.provision .toc ul { columns: 2; column-gap: 2rem; list-style: none; padding-left: 0; margin: 0; }
.provision .toc li { margin: 0.3rem 0; break-inside: avoid; }
.provision .toc a { text-decoration: none; color: #2e7d32; }
.provision .toc a:hover { text-decoration: underline; }

/* 안내 박스 및 본문 */
.provision .box-notice { background: #f9f9f9; border-left: 4px solid #2e7d32; padding: 1rem; margin: 1rem 0; }
.provision p { margin: 0.4rem 0; }

/* 계층별 들여쓰기 */
.provision .depth1 { padding-left: 1.2rem; }
.provision .depth2 { padding-left: 2.4rem; }
.provision .depth3 { padding-left: 3.6rem; }
.provision .depth4 { padding-left: 4.8rem; }

/* 모바일 반응형 처리 (600px 이하) */
@media (max-width: 600px) {
  .provision { padding: 1rem; }
  .provision .toc ul { columns: 1; }
  .provision .depth1 { padding-left: 0.8rem; }
  .provision .depth2 { padding-left: 1.6rem; }
  .provision .depth3 { padding-left: 2.4rem; }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   29. 조단위 필드 스코어 입력
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* ════════════════════════════════════
   기본(다크) 변수
════════════════════════════════════ */
#gs-modal {
  --gs-primary   : #4ade80;
  --gs-primary-d : #22c55e;
  --gs-primary-lt: rgba(74,222,128,.1);
  --gs-primary-m : #86efac;
  --gs-ac        : #4ade80;
  --gs-ac2       : #86efac;
  --gs-red       : #f87171;
  --gs-red-lt    : rgba(248,113,113,.1);
  --gs-amber     : #fbbf24;

  --gs-txt       : #f1f5f9;
  --gs-txt2      : #e2e8f0;
  --gs-txt3      : #cbd5e1;
  --gs-bg        : #0f172a;
  --gs-bg2       : #1e293b;
  --gs-bg3       : #263347;
  --gs-bdr       : rgba(148,163,184,.2);
  --gs-bdr2      : rgba(148,163,184,.35);
  --gs-shadow    : 0 8px 48px rgba(0,0,0,.55);

  --gs-eagle  : #a78bfa;
  --gs-birdie : #34d399;
  --gs-par    : #60a5fa;
  --gs-bogey  : #fb923c;
  --gs-double : #f87171;

  --gs-r    : 10px;
  --gs-r-sm : 6px;
  --gs-font : 'SCoreDream','Apple SD Gothic Neo',sans-serif;

  --gs-hdr-bg    : #052e16;
  --gs-hdr-txt   : #f1f5f9;
  --gs-pill-bg   : rgba(255,255,255,.08);
  --gs-pill-bdr  : rgba(255,255,255,.18);
  --gs-pill-txt  : rgba(255,255,255,.75);
  --gs-pill-sel-bg  : rgba(74,222,128,.2);
  --gs-pill-sel-txt : #4ade80;
}

/* ════════════════════════════════════
   라이트 모드
════════════════════════════════════ */
[data-theme="light"] #gs-modal {
  --gs-primary   : #1B5E20;
  --gs-primary-d : #0D3B12;
  --gs-primary-lt: #f0fdf4;
  --gs-primary-m : #166534;
  --gs-ac        : #22c55e;
  --gs-ac2       : #4ade80;
  --gs-red       : #dc2626;
  --gs-red-lt    : #fef2f2;
  --gs-amber     : #d97706;

  --gs-txt       : #0f172a;
  --gs-txt2      : #1e293b;
  --gs-txt3      : #374151;
  --gs-bg        : #f8fafc;
  --gs-bg2       : #ffffff;
  --gs-bg3       : #f1f5f9;
  --gs-bdr       : #e2e8f0;
  --gs-bdr2      : #cbd5e1;
  --gs-shadow    : 0 8px 48px rgba(0,0,0,.18);

  --gs-eagle  : #7c3aed;
  --gs-birdie : #059669;
  --gs-par    : #0284c7;
  --gs-bogey  : #d97706;
  --gs-double : #dc2626;

  --gs-hdr-bg    : #1B5E20;
  --gs-hdr-txt   : #ffffff;
  --gs-pill-bg   : rgba(255,255,255,.15);
  --gs-pill-bdr  : rgba(255,255,255,.3);
  --gs-pill-txt  : rgba(255,255,255,.9);
  --gs-pill-sel-bg  : rgba(255,255,255,.95);
  --gs-pill-sel-txt : #1B5E20;
}

/* ════════════════════════════════════
   모달 기본 구조
════════════════════════════════════ */
#gs-modal {
  position: fixed; inset: 0;
  z-index: 9900;
  display: none;
  align-items: stretch;
}
#gs-modal.open { display: flex; }

#gs-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.52);
  opacity: 0;
  transition: opacity .32s ease;
  cursor: pointer;
}
#gs-modal.open #gs-overlay { opacity: 1; }

#gs-wrap {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: min(840px, 96vw);
  background: var(--gs-bg);
  display: flex; flex-direction: column;
  font-family: var(--gs-font);
  color: var(--gs-txt);
  box-shadow: -4px 0 48px rgba(0,0,0,.32);
  transform: translateX(100%);
  transition: transform .32s cubic-bezier(.32,1,.28,1);
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}
#gs-modal.open #gs-wrap { transform: translateX(0); }

@media (max-width: 1023px) {
  #gs-wrap { width: 100%; }
}
@media (max-width: 599px) {
  #gs-wrap {
    top: 0; bottom: 0; left: 0; right: 0;
    width: 100%; height: 100%;
    border-radius: 0;
    box-shadow: none;
    transform: translateY(100%);
  }
  #gs-modal.open #gs-wrap { transform: translateY(0); }
}

#gs-handle { display: none; }

/* ════════════════════════════════════
   헤더
════════════════════════════════════ */
#gs-header {
  background: var(--gs-hdr-bg);
  padding: .45rem .75rem .4rem;
  display: flex; flex-direction: column; gap: .3rem;
  flex-shrink: 0;
}
#gs-hdr-row1 {
  display: flex; align-items: center; gap: .4rem;
}
#gs-hdr-row1 #gsp-tour { flex: 1; min-width: 0; }
#gs-hdr-row2 {
  display: flex; align-items: center; gap: .35rem;
  overflow-x: auto; scrollbar-width: none;
}
#gs-hdr-row2::-webkit-scrollbar { display: none; }
@media (min-width: 600px) {
  #gs-header { padding: .55rem .9rem .45rem; gap: .35rem; }
}
#gs-sel-bar { display: flex; flex: 1; min-width: 0; }

.gs-pill {
  display: flex; align-items: center; gap: .2rem;
  background: var(--gs-pill-bg);
  border: 1.5px solid var(--gs-pill-bdr);
  border-radius: var(--gs-r-sm); padding: .28rem .65rem;
  font-size: .82rem; font-weight: 700;
  color: var(--gs-pill-txt);
  cursor: pointer; white-space: nowrap; flex-shrink: 0;
  transition: all .15s;
}
.gs-pill .material-symbols-outlined { font-size: .9rem; }
.gs-pill.gs-sel {
  background: var(--gs-pill-sel-bg);
  border-color: transparent;
  color: var(--gs-pill-sel-txt);
}

#gs-close-btn {
  margin-left: auto; flex-shrink: 0;
  display: flex; align-items: center; gap: .3rem;
  padding: .38rem .85rem;
  border-radius: 6px;
  border: 1.5px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.12);
  color: #fff; cursor: pointer; font-size: .82rem; font-weight: 700;
  font-family: var(--gs-font);
  transition: background .15s;
  white-space: nowrap;
}
#gs-close-btn:hover { background: rgba(255,255,255,.24); }
#gs-close-btn .material-symbols-outlined { font-size: 1rem; }

/* ════════════════════════════════════
   홀 네비게이터
════════════════════════════════════ */
#gs-hole-nav {
  background: var(--gs-bg2);
  border-bottom: 2px solid var(--gs-bdr);
  padding: .45rem .75rem;
  display: flex; align-items: center; gap: .3rem;
  flex-shrink: 0;
}
#gs-hnav-scroll {
  display: flex; gap: .3rem;
  overflow-x: auto; scrollbar-width: none;
  flex: 1; padding: .05rem 0;
}
#gs-hnav-scroll::-webkit-scrollbar { display: none; }
.gs-hn {
  min-width: 48px; height: 48px;
  border-radius: var(--gs-r-sm);
  background: var(--gs-bg3);
  border: 1.5px solid var(--gs-bdr);
  color: var(--gs-txt2);
  font-size: .82rem; font-weight: 700;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  line-height: 1.25; flex-shrink: 0;
  cursor: pointer; transition: all .13s;
}
.gs-hn .gs-hn-par {
  font-size: .65rem; font-weight: 600;
  color: var(--gs-txt3);
}
.gs-hn.cur {
  background: var(--gs-primary);
  border-color: var(--gs-primary);
  color: #fff; font-weight: 900;
}
.gs-hn.cur .gs-hn-par { color: rgba(255,255,255,.85); font-weight: 700; }
.gs-hn.done-p {
  background: var(--gs-primary-lt);
  border-color: var(--gs-primary);
  color: var(--gs-primary-m);
}
.gs-hn.done-p .gs-hn-par { color: var(--gs-primary-m); }
.gs-hn.done-f {
  background: var(--gs-primary-lt);
  border-color: var(--gs-ac);
  color: var(--gs-primary); font-weight: 800;
}
.gs-hn.done-f .gs-hn-par { color: var(--gs-primary); }
.gs-hn-dots, .gs-hn-dot { display: none; }

/* ════════════════════════════════════
   홀 정보 바
════════════════════════════════════ */
#gs-hole-info {
  background: var(--gs-primary-lt);
  border-bottom: 1px solid var(--gs-bdr);
  padding: .5rem 1rem;
  display: flex; align-items: center; gap: .75rem;
  flex-shrink: 0;
}
.gs-hi-hole {
  font-size: 1.6rem; font-weight: 900;
  color: var(--gs-primary); line-height: 1;
}
.gs-hi-par { font-size: .95rem; color: var(--gs-txt2); font-weight: 600; }
.gs-hi-par b { color: var(--gs-primary); font-size: 1.15rem; font-weight: 900; }
.gs-hi-prog { margin-left: auto; font-size: .82rem; color: var(--gs-txt2); font-weight: 600; }
.gs-hi-locked {
  font-size: .75rem; font-weight: 800;
  background: var(--gs-primary);
  color: #fff;
  padding: .22rem .6rem; border-radius: 12px;
  display: none;
}
.gs-hi-locked.show { display: inline-block; }

/* ════════════════════════════════════
   선수 영역
════════════════════════════════════ */
#gs-players-area {
  flex: 1; overflow-y: auto;
  padding: .75rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .65rem; align-content: start;
}
@media (min-width: 1024px) {
  #gs-players-area { grid-template-columns: 1fr 1fr 1fr 1fr; }
}
@media (max-width: 599px) {
  #gs-players-area { display: none; }
}

/* ════════════════════════════════════
   선수 카드
════════════════════════════════════ */
.gs-pcard {
  background: var(--gs-bg2);
  border: 1.5px solid var(--gs-bdr);
  border-radius: var(--gs-r);
  padding: .55rem .6rem;
  display: flex; flex-direction: column; gap: .38rem;
  position: relative;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}
.gs-pcard:hover { box-shadow: 0 2px 12px rgba(0,0,0,.1); }

.gs-pcard::before {
  content: ''; position: absolute;
  top: 0; left: 0; right: 0; height: 4px;
  background: var(--gs-bdr);
}
.gs-pcard.eagle::before  { background: var(--gs-eagle); }
.gs-pcard.birdie::before { background: var(--gs-birdie); }
.gs-pcard.par::before    { background: var(--gs-par); }
.gs-pcard.bogey::before  { background: var(--gs-bogey); }
.gs-pcard.double::before { background: var(--gs-double); }
.gs-pcard.hole-locked { opacity: .72; }

.gs-pc-head {
  display: flex; align-items: center; gap: .4rem;
  padding-top: .1rem;
}
.gs-pc-no {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--gs-primary-lt);
  border: 2px solid var(--gs-primary);
  color: var(--gs-primary);
  font-size: .82rem; font-weight: 900;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.gs-pc-name {
  font-size: 1.05rem; font-weight: 800;
  color: var(--gs-txt);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  flex: 1;
}
.gs-pc-club {
  font-size: .75rem; color: var(--gs-txt3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.gs-res {
  font-size: .7rem; font-weight: 800;
  padding: .15rem .42rem; border-radius: 6px;
  border: 1.5px solid; flex-shrink: 0; display: none;
}
.gs-res.show { display: inline-block; }
.gs-res.eagle  { color: var(--gs-eagle);  border-color: var(--gs-eagle);  background: rgba(124,58,237,.08); }
.gs-res.birdie { color: var(--gs-birdie); border-color: var(--gs-birdie); background: rgba(5,150,105,.08); }
.gs-res.par    { color: var(--gs-par);    border-color: var(--gs-par);    background: rgba(2,132,199,.08); }
.gs-res.bogey  { color: var(--gs-bogey);  border-color: var(--gs-bogey);  background: rgba(217,119,6,.08); }
.gs-res.double { color: var(--gs-double); border-color: var(--gs-double); background: var(--gs-red-lt); }

/* ════ 타수 박스 ════
   [수정2] 버튼 너비 44px로 타수·벌타 통일
   [수정3] line-height:1 로 - 수직 가운데 정렬
════ */
.gs-stroke-box {
  display: flex; align-items: stretch;
  border: 2px solid var(--gs-primary);
  border-radius: var(--gs-r); overflow: hidden;
  height: 54px;
}
.gs-s-label {
  background: var(--gs-primary-lt);
  color: var(--gs-primary-m);
  font-size: .82rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  padding: 0 .5rem;
  border-right: 1.5px solid var(--gs-primary);
  white-space: nowrap; flex-shrink: 0;
}
.gs-s-btn {
  background: var(--gs-bg3); border: none;
  cursor: pointer; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 100%;          /* [수정2] 44px 통일 */
  font-size: 1.6rem; font-weight: 400;
  line-height: 1;                     /* [수정3] - 수직 가운데 */
  color: var(--gs-txt2);
  transition: background .12s;
  user-select: none; -webkit-user-select: none;
}
.gs-s-btn:active { background: var(--gs-bdr); }
.gs-s-btn:disabled { opacity: .3; cursor: not-allowed; }

/* [수정1] 타수 값 영역 — 클릭/터치 시 par 자동입력 커서 표시 */
.gs-s-val {
  flex: 1; text-align: center;
  font-size: 1.7rem; font-weight: 900;
  color: var(--gs-txt);
  display: flex; align-items: center; justify-content: center;
  background: var(--gs-bg2); min-width: 36px;
  border-left: 1px solid var(--gs-bdr);
  border-right: 1px solid var(--gs-bdr);
  cursor: pointer;                    /* [수정1] 클릭 가능 표시 */
  -webkit-tap-highlight-color: rgba(74,222,128,.18);
}
.gs-s-val.empty {
  font-size: 1rem; font-weight: 400; color: var(--gs-bdr2);
}
.gs-s-val.bounce { animation: gs-bnc .13s ease-out; }
@keyframes gs-bnc { 50% { transform: scale(1.3); } }

/* ════ 벌타 박스 ════
   [수정2] 버튼 너비 44px로 타수와 동일하게
   [수정3] line-height:1
════ */
.gs-pen-box {
  display: flex; align-items: stretch;
  border: 1.5px solid var(--gs-bdr2);
  border-radius: var(--gs-r); overflow: hidden;
  height: 40px;
}
.gs-p-label {
  background: var(--gs-bg3);
  color: var(--gs-txt3);
  font-size: .82rem; font-weight: 400;
  display: flex; align-items: center; justify-content: center;
  padding: 0 .6rem;
  border-right: 1.5px solid var(--gs-bdr2);
  white-space: nowrap; flex-shrink: 0;
}
.gs-p-inner { display: contents; }
.gs-p-btn {
  background: var(--gs-bg3); border: none;
  cursor: pointer; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 100%;          /* [수정2] 44px 로 타수와 동일 */
  font-size: 1.2rem; font-weight: 400;
  line-height: 1;                     /* [수정3] - 수직 가운데 */
  color: var(--gs-txt2);
  transition: background .12s;
  user-select: none; -webkit-user-select: none;
}
.gs-p-btn:active { background: var(--gs-bdr); }
.gs-p-btn:disabled { opacity: .3; cursor: not-allowed; }
.gs-p-val {
  flex: 1; text-align: center;
  font-size: 1.3rem; font-weight: 700;
  color: var(--gs-txt);
  display: flex; align-items: center; justify-content: center;
  background: var(--gs-bg2); min-width: 36px;
  border-left: 1px solid var(--gs-bdr);
  border-right: 1px solid var(--gs-bdr);
}
.gs-p-val.zero { color: var(--gs-bdr2); font-weight: 400; }
.gs-p-hint { display: none; }

/* 합계 */
.gs-pc-total {
  display: flex; align-items: center; gap: .5rem;
  font-size: .82rem; color: var(--gs-txt2);
  border-top: 1px solid var(--gs-bdr); padding-top: .35rem;
}
.gs-pc-total .tv { font-size: 1rem; font-weight: 900; color: var(--gs-txt); }
.gs-td { font-size: .9rem; font-weight: 800; }
.gs-td.over  { color: var(--gs-bogey); }
.gs-td.under { color: var(--gs-birdie); }
.gs-td.even  { color: var(--gs-par); }

/* 잠금 오버레이 */
.gs-lock-ov {
  position: absolute; inset: 0; border-radius: var(--gs-r);
  background: rgba(248,250,252,.72);
  display: none; align-items: center; justify-content: center;
  z-index: 2;
}
[data-theme="dark"] .gs-lock-ov,
:not([data-theme]) .gs-lock-ov { background: rgba(15,23,42,.65); }
[data-theme="light"] .gs-lock-ov { background: rgba(248,250,252,.72); }
.gs-pcard.hole-locked .gs-lock-ov { display: flex; }

.gs-lock-ico {
  font-size: 2.4rem;
  color: var(--gs-primary);
  opacity: .95;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.3));
}

/* ════════════════════════════════════
   모바일 스와이프
════════════════════════════════════ */
#gs-slide-wrap { display: none; flex-direction: column; flex: 1; overflow: hidden; }
#gs-slide-track {
  display: flex; flex: 1;
  overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; padding: .6rem .5rem;
  overscroll-behavior-x: contain;
}
#gs-slide-track::-webkit-scrollbar { display: none; }
.gs-slide-item {
  flex: 0 0 100%;
  scroll-snap-align: start;
  box-sizing: border-box;
  padding: 0 .25rem;
}
#gs-page-dots {
  display: flex; justify-content: center; gap: .4rem;
  padding: .3rem 0 .35rem; flex-shrink: 0;
}
.gs-dot { width: 24px; height: 4px; border-radius: 2px; background: var(--gs-bdr); transition: all .2s; }
.gs-dot.active { background: var(--gs-primary); width: 32px; }
.gs-dot.done   { background: var(--gs-ac); }

/* ════════════════════════════════════
   액션바
════════════════════════════════════ */
#gs-action-bar {
  background: var(--gs-bg2);
  border-top: 2px solid var(--gs-bdr);
  padding: .6rem .85rem .7rem;
  display: flex; align-items: center; gap: .45rem;
  flex-shrink: 0; flex-wrap: wrap;
}
.gs-abtn {
  display: flex; align-items: center; gap: .3rem;
  padding: .7rem 1.1rem;
  border-radius: var(--gs-r-sm);
  border: none; cursor: pointer;
  font-size: .9rem; font-weight: 800;
  font-family: var(--gs-font);
  white-space: nowrap; flex-shrink: 0;
  transition: filter .12s, transform .1s;
}
.gs-abtn .material-symbols-outlined { font-size: 1.05rem; }
.gs-abtn:active { transform: scale(.95); }
.gs-btn-save  { background: #15803d; color: #fff; }
.gs-btn-save:hover { filter: brightness(1.1); }
.gs-btn-hconf {
  background: var(--gs-primary-lt);
  color: var(--gs-primary);
  border: 2px solid var(--gs-primary) !important;
}
.gs-btn-hconf.confirmed {
  background: #dcfce7; color: #15803d;
  border-color: #15803d !important;
}
[data-theme="light"] .gs-btn-hconf.confirmed { background: #dcfce7; color: #15803d; border-color: #15803d !important; }
.gs-btn-next {
  background: var(--gs-bg3);
  color: var(--gs-txt);
  border: 1.5px solid var(--gs-bdr) !important;
}
.gs-btn-rfin { background: #1d4ed8; color: #fff; }
.gs-btn-rfin:hover { filter: brightness(1.12); }

#gs-voice-btn {
  width: 48px; height: 48px; border-radius: 50%;
  border: 2px solid var(--gs-bdr2);
  background: var(--gs-bg3);
  color: var(--gs-txt3); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s; flex-shrink: 0;
}
#gs-voice-btn .material-symbols-outlined { font-size: 1.35rem; }
#gs-voice-btn.supported { color: var(--gs-primary); border-color: var(--gs-primary); }
#gs-voice-btn.listening {
  background: var(--gs-red-lt); border-color: var(--gs-red);
  color: var(--gs-red); animation: gs-pulse 1s infinite;
}
@keyframes gs-pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(220,38,38,.3); }
  50%      { box-shadow: 0 0 0 8px rgba(220,38,38,0); }
}

/* ════════════════════════════════════
   드롭다운
════════════════════════════════════ */
.gs-dd {
  position: fixed; inset: 0;
  z-index: 10200;
  display: none;
  pointer-events: none;
}
.gs-dd.open { display: block; pointer-events: auto; }
.gs-dd-ov {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.38);
}
.gs-dd-panel {
  position: fixed;
  top: 60px; left: auto; right: 0; width: 100%;
  background: var(--gs-bg2);
  border-top: 3px solid var(--gs-primary);
  border-bottom: 1px solid var(--gs-bdr);
  max-height: 55vh; overflow-y: auto;
  padding: 1rem 1.2rem;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  z-index: 10201;
}
.gs-dd-title {
  font-size: .9rem; font-weight: 800;
  color: var(--gs-primary); margin-bottom: .7rem;
  display: flex; align-items: center; gap: .3rem;
}
.gs-dd-title .material-symbols-outlined { font-size: 1rem; }
.gs-dd-row { display: flex; flex-wrap: wrap; gap: .4rem; }
.gs-dd-btn {
  display: flex; align-items: center; gap: .3rem;
  background: var(--gs-bg3); border: 1px solid var(--gs-bdr);
  border-radius: var(--gs-r-sm);
  color: var(--gs-txt); font-size: .9rem; font-weight: 600;
  padding: .6rem 1rem; cursor: pointer; transition: all .14s;
}
.gs-dd-btn:hover, .gs-dd-btn.sel {
  background: var(--gs-primary-lt);
  border-color: var(--gs-primary);
  color: var(--gs-primary); font-weight: 800;
}
.gs-dd-btn .material-symbols-outlined { font-size: .9rem; }

/* ════════════════════════════════════
   음성 패널
════════════════════════════════════ */
#gs-voice-panel {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -45%);
  background: var(--gs-bg2); border: 2px solid var(--gs-primary);
  border-radius: var(--gs-r); padding: 1rem 1.2rem;
  width: min(88%, 380px); z-index: 300;
  opacity: 0; pointer-events: none;
  transition: opacity .22s, transform .22s;
  box-shadow: var(--gs-shadow);
  text-align: center;
}
#gs-voice-panel.show {
  transform: translate(-50%, -50%);
  opacity: 1; pointer-events: auto;
}
.gs-wave { display: flex; align-items: center; gap: 3px; height: 18px; margin-bottom: .4rem; }
.gs-wbar { width: 3px; background: var(--gs-red); border-radius: 2px; animation: gs-wv .8s ease-in-out infinite; }
.gs-wbar:nth-child(2){animation-delay:.1s;}.gs-wbar:nth-child(3){animation-delay:.2s;}.gs-wbar:nth-child(4){animation-delay:.3s;}.gs-wbar:nth-child(5){animation-delay:.4s;}
@keyframes gs-wv { 0%,100%{height:3px;} 50%{height:16px;} }
#gs-vtxt { font-size: 1.05rem; font-weight: 600; color: var(--gs-txt); min-height: 1.5em; margin-bottom: .4rem; }
#gs-vres { font-size: .95rem; font-weight: 700; color: var(--gs-primary); margin-top: .3rem; }

/* ════════════════════════════════════
   토스트
════════════════════════════════════ */
#gs-toast {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%) scale(.9);
  background: var(--gs-bg2); border: 2px solid var(--gs-bdr);
  border-radius: 12px; padding: .85rem 1.6rem;
  font-size: 1rem; font-weight: 700; color: var(--gs-txt);
  z-index: 400; opacity: 0; pointer-events: none;
  transition: opacity .22s, transform .22s;
  white-space: nowrap; text-align: center;
  box-shadow: 0 8px 32px rgba(0,0,0,.2);
}
#gs-toast.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
#gs-toast.success { border-color: var(--gs-birdie); color: var(--gs-birdie); background: #f0fdf4; }
#gs-toast.error   { border-color: var(--gs-red);    color: var(--gs-red);    background: #fef2f2; }
#gs-toast.info    { border-color: var(--gs-primary); color: var(--gs-primary); }
@media (prefers-color-scheme: dark) {
  #gs-toast.success { background: rgba(5,150,105,.12); }
  #gs-toast.error   { background: rgba(220,38,38,.12); }
}

/* ════════════════════════════════════
   대기 화면
════════════════════════════════════ */
#gs-placeholder {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 1rem; text-align: center; padding: 2rem;
}
#gs-placeholder .material-symbols-outlined {
  font-size: 4rem; color: var(--gs-bdr2);
}
#gs-placeholder p { font-size: 1.05rem; line-height: 1.75; color: var(--gs-txt2); }
#gs-placeholder strong { color: var(--gs-primary); }

/* ════════════════════════════════════
   라운드 확정 모달
════════════════════════════════════ */
#gs-fin-modal {
  position: fixed; inset: 0; z-index: 10400;
  background: rgba(0,0,0,.55); display: none;
  align-items: center; justify-content: center;
}
#gs-fin-modal.open { display: flex; }
.gs-fin-box {
  background: var(--gs-bg2); border: 1px solid var(--gs-bdr);
  border-radius: var(--gs-r); padding: 1.75rem;
  width: min(88vw,400px); text-align: center;
  box-shadow: var(--gs-shadow);
}
.gs-fin-box h3 { font-size: 1.15rem; font-weight: 800; color: var(--gs-txt); margin-bottom: .55rem; }
.gs-fin-box p  { font-size: .92rem; color: var(--gs-txt2); margin-bottom: 1.25rem; line-height: 1.7; }
.gs-fin-btns { display: flex; gap: .55rem; justify-content: center; }
.gs-fin-btns button {
  padding: .7rem 1.4rem; border-radius: var(--gs-r-sm);
  border: none; cursor: pointer;
  font-size: .92rem; font-weight: 800; font-family: var(--gs-font);
}
.gs-fin-cancel { background: var(--gs-bg3); color: var(--gs-txt); border: 1px solid var(--gs-bdr) !important; }
.gs-fin-ok     { background: #1d4ed8; color: #fff; }

/* ── 조 선택 바 ── */
#gs-grp-bar {
  background: var(--gs-bg2);
  border-bottom: 2px solid var(--gs-primary);
  padding: .5rem .75rem;
  display: flex; flex-wrap: nowrap; gap: .4rem;
  flex-shrink: 0;
  overflow-x: auto; scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
#gs-grp-bar::-webkit-scrollbar { display: none; }
.gs-grp-chip {
  display: inline-flex; align-items: center; gap: .22rem;
  padding: .42rem .9rem; border-radius: 20px;
  border: 1.5px solid var(--gs-bdr2);
  background: var(--gs-bg3);
  color: var(--gs-txt2); font-size: .88rem; font-weight: 600;
  cursor: pointer; transition: all .14s;
  font-family: var(--gs-font);
  flex-shrink: 0; white-space: nowrap;
}
.gs-grp-chip:hover, .gs-grp-chip.sel {
  background: var(--gs-primary); border-color: var(--gs-primary);
  color: #fff; font-weight: 700;
}
.gs-grp-chip .material-symbols-outlined { font-size: .9rem; }

.gs-spin {
  width: 30px; height: 30px;
  border: 3px solid var(--gs-bdr);
  border-top-color: var(--gs-primary);
  border-radius: 50%; animation: gs-sr .65s linear infinite;
}
@keyframes gs-sr { to { transform: rotate(360deg); } }

/* ════════════════════════════════════
   모바일 오버라이드
════════════════════════════════════ */
@media (max-width: 599px) {
  .gs-hn { min-width: 40px; height: 42px; font-size: .78rem; }
  .gs-hn .gs-hn-par { font-size: .62rem; }
  #gs-action-bar { padding: .5rem .65rem .7rem; gap: .3rem; flex-wrap: nowrap; }
  .gs-abtn { font-size: .8rem; padding: .6rem .7rem; }
  #gs-voice-btn { width: 44px; height: 44px; }
  .gs-stroke-box { height: 64px; }
  .gs-s-val { font-size: 2.2rem; }
  .gs-s-btn { width: 60px; font-size: 2rem; }  /* 모바일은 더 크게 */
  .gs-p-btn { width: 60px; }                   /* 벌타도 동일 */
  .gs-slide-item { flex: 0 0 100%; padding: 0; }
}