  /* ===== PASS 스타일 picker — 3개 가로 카드 (entry picker 화면) =====
     entryMethodCard / entryPickerCard / ocrPickerCard 는 동일한 시작점을 갖기 위해 padding/margin 통일. */
  #entryPickerCard,
  #entryMethodCard,
  #ocrPickerCard,
  #networkPickerCard,
  #liveSubPickerCard {
    background: transparent;
    box-shadow: none;
    border: none;
    padding: 8px 4px 16px;
    margin: 0 0 20px;
    position: relative;  /* profile-chip absolute 기준점 */
  }
  .picker-h1 {
    display: block;                 /* 글로벌 h1 의 inline-flex 덮어쓰기 — <br> 줄바꿈 정상 작동 */
    font-size: 36px;
    font-weight: 800;
    color: var(--gray-900);
    line-height: 1.25;
    margin: 12px 4px 32px;
    letter-spacing: -0.8px;
    text-align: left;
  }
  .picker-h1.wizard-title-black { color: #000; }
  .picker-h1 .coming-soon-tag {
    /* "곧만나요" 보조 라벨 — h1 보다 작고 흐리게 */
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-400, #9ca3af);
    letter-spacing: -0.2px;
    margin-left: 6px;
    vertical-align: middle;
  }
  .picker-options {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .picker-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 22px;
    /* 글라스 — 통계 카드/게임 버튼과 통일 */
    background: var(--app-surface-soft);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    backdrop-filter: blur(14px) saturate(150%);
    color: var(--gray-900);
    border: 1px solid var(--app-surface-border);
    border-radius: 18px;
    box-shadow: 0 4px 16px rgba(20, 83, 45, 0.05);
    cursor: pointer;
    transition: all 0.15s;
    text-align: left;
    width: 100%;
    min-height: 88px;   /* 미세 스크롤 제거 — 아이콘(72px)/폰트 유지하며 카드만 살짝 낮춤 */
  }
  .picker-btn:hover,
  .picker-btn:active {
    border-color: var(--green-600);
    background: var(--green-50);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(20,83,45,0.08);
  }
  .picker-btn .pb-text { flex: 1; min-width: 0; }
  .picker-btn .pb-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 24px;
    font-weight: 800;
    color: var(--gray-900);
    margin-bottom: 6px;
    line-height: 1.2;
    letter-spacing: -0.4px;
  }
  .picker-btn .pb-sub {
    font-size: 15px;
    color: var(--gray-500);
    line-height: 1.4;
    font-weight: 500;
  }
  /* BETA 배지 — dev-only 게임의 picker-btn title 옆에 작게 표시 */
  .picker-btn .pb-beta {
    display: inline-block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    color: #b45309;
    background: #fef3c7;
    padding: 2px 7px;
    border-radius: 6px;
    vertical-align: middle;
    margin-left: 4px;
  }
  .picker-btn .pb-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: var(--green-800);
    background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(238,247,240,.86));
    border: 1px solid rgba(20,83,45,.13);
    flex-shrink: 0;
    line-height: 1;
    box-shadow: 0 6px 16px rgba(20,83,45,.07);
  }
  /* 픽커 일러스트 썸네일 — 아이콘 자리를 512x512 일러스트(SVG)로 교체. 아트에 자체 배경/그림자가 있어 컨테이너 장식 제거. */
  .pb-icon.has-illust, .mb-brand-icon.has-illust {
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    overflow: hidden;
  }
  /* 픽커 일러스트 — 두 픽커 동일 크기·우측 정렬(정사각 원본 비율 유지). 텍스트 여유+게임픽커 높이 위해 72px. */
  .picker-btn .pb-icon.has-illust { width: 84px; height: 84px; border-radius: 16px; }
  .method-btn .mb-brand-icon.has-illust { width: 72px; height: 72px; border-radius: 16px; }
  .pb-illust { width: 100%; height: 100%; object-fit: contain; border-radius: inherit; display: block; }
  .greener-glyph {
    width: 27px;
    height: 27px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
  }
  .greener-glyph .glyph-fill { fill: currentColor; stroke: none; }
  .greener-glyph .glyph-soft { fill: currentColor; opacity: .12; stroke: none; }
  /* greener-icons 공통 렌더러 — SVG의 alpha를 mask로 써 active/disabled 색상을 currentColor로 통일. */
  .pack-icon {
    display:inline-block;
    width:24px;
    height:24px;
    flex:0 0 auto;
    background:currentColor;
    -webkit-mask:var(--pack-icon) center / contain no-repeat;
    mask:var(--pack-icon) center / contain no-repeat;
  }
  .picker-btn .pb-icon .pack-icon { width:29px; height:29px; }
  .method-btn .mb-brand-icon .pack-icon { width:32px; height:32px; }
  .notif-bell .pack-icon { width:24px; height:24px; }
  .global-back-chevron .pack-icon,
  .history-back-btn .pack-icon,
  .pp-page-back .pack-icon { width:28px; height:28px; }
  .act-menu .pack-icon,
  .rri-menu .pack-icon,
  .pp-page-more .pack-icon { width:22px; height:22px; }
  .act-badge .pack-icon { width:16px; height:16px; }
  .mb-brand-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: var(--green-800);
    background: rgba(238,247,240,.9);
    border: 1px solid rgba(20,83,45,.14);
  }
  .mb-brand-icon .greener-glyph { width:25px; height:25px; }
  /* 두번째 화면 이전 버튼 — 라운딩기록 자리에 배치 */
  .picker-back-wrap {
    margin-top: 32px;
    margin-bottom: 20px;
  }
  .picker-back-btn-big {
    display: flex;
    align-items: center;
    justify-content: center;
    /* 통일 nav-btn — 회색 톤(wizard back / step2 back 과 동일). 세로 8px / 폰트 18px (clamp). */
    padding: clamp(8px, 2.2vw, 12px) clamp(14px, 4.5vw, 22px);
    width: 100%;
    background: var(--gray-100);
    border: 1.5px solid var(--gray-300);
    border-radius: 14px;
    cursor: pointer;
    font-size: clamp(16px, 4.8vw, 20px);
    font-weight: 700;
    color: var(--gray-700);
    text-align: center;
    transition: all 0.15s;
    letter-spacing: -0.3px;
  }
  .picker-back-btn-big:hover,
  .picker-back-btn-big:active {
    background: var(--gray-200);
    border-color: var(--gray-400);
  }
  @media (max-width: 600px) {
    .picker-back-wrap { margin-top: 24px; margin-bottom: 14px; }
  }
  /* pb-badge — picker-btn / method-btn 양쪽 모두에서 사용. 일반 셀렉터로 빼서 공유. */
  .pb-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.8px;
    padding: 3px 9px;
    border-radius: 5px;
    text-transform: uppercase;
  }
  .pb-badge.live {
    color: var(--green-800,#166534);
    background: rgba(238,247,240,.9);
    border: 1px solid rgba(20,83,45,.14);
  }
  .pb-badge.live::before {
    content: '';
    width: 6px; height: 6px;
    background: var(--green-700,#15803d);
    border-radius: 50%;
    animation: livePulse 1.4s ease-in-out infinite;
  }
  .pb-badge.photo {
    color: var(--green-900);
    background: var(--green-100);
  }
  @media (max-width: 600px) {
    #entryPickerCard, #entryMethodCard, #ocrPickerCard, #networkPickerCard, #liveSubPickerCard { padding: 4px 0 12px; }
    .picker-h1 { font-size: 28px; margin: 8px 4px 24px; letter-spacing: -0.6px; }
    .picker-btn { padding: 22px 18px; border-radius: 16px; min-height: 90px; }
    .picker-btn .pb-title { font-size: 21px; gap: 8px; }
    .picker-btn .pb-sub { font-size: 13.5px; }
    .picker-btn .pb-icon { width:48px; height:48px; border-radius:16px; }
    .picker-btn .pb-icon .greener-glyph { width:25px; height:25px; }
    .picker-options { gap: 14px; }
  }
  /* 실시간 라운드 다음 화면 — 헤더/하단 탭은 유지하고 기록·게임을 한눈에 고르는 세로 메뉴. */
  #entryPickerCard .live-picker-title {
    margin: 2px 4px 26px;
    color: var(--green-900,#14532d);
    font-size: 22px;
    font-weight: 850;
    line-height: 1.2;
    text-align: center;
    letter-spacing: -.4px;
  }
  #entryPickerCard .picker-options { gap: 9px; }
  #entryPickerCard .picker-sec-label {
    margin: 12px 3px 2px;
    color: var(--gray-600,#4b5563);
    font-size: 13px;
    font-weight: 750;
    letter-spacing: -.1px;
  }
  #entryPickerCard .picker-sec-label:first-child { margin-top: 0; }
  #entryPickerCard .picker-btn {
    display:grid;
    grid-template-columns:50px minmax(0,1fr) 22px;
    align-items:center;
    gap:13px;
    min-height:82px;
    padding:13px 16px;
    border:1px solid var(--app-surface-border);
    border-radius:16px;
    background:var(--app-surface);
    box-shadow:0 4px 15px rgba(20,83,45,.055);
  }
  #entryPickerCard .picker-btn .pb-icon {
    width:46px;
    height:46px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    color:var(--green-900,#14532d);
  }
  #entryPickerCard .picker-btn .pb-icon .pack-icon { width:40px; height:40px; }
  #entryPickerCard .picker-btn .pb-title {
    margin:0 0 4px;
    color:var(--gray-900,#111827);
    font-size:16px;
    font-weight:820;
    line-height:1.25;
    letter-spacing:-.25px;
  }
  #entryPickerCard .picker-btn .pb-sub {
    color:var(--gray-500,#6b7280);
    font-size:11.5px;
    font-weight:550;
    line-height:1.4;
  }
  #entryPickerCard .picker-chevron {
    display:grid;
    place-items:center;
    width:22px;
    height:38px;
    color:var(--gray-700,#374151);
    font-size:27px;
    font-weight:400;
    line-height:1;
  }
  @media (max-width:600px) {
    #entryPickerCard .live-picker-title { margin-bottom:22px; font-size:20px; }
    #entryPickerCard .picker-btn { min-height:78px; padding:12px 14px; grid-template-columns:46px minmax(0,1fr) 20px; gap:11px; }
    #entryPickerCard .picker-btn .pb-icon { width:42px; height:42px; }
    #entryPickerCard .picker-btn .pb-icon .pack-icon { width:37px; height:37px; }
    #entryPickerCard .picker-btn .pb-title { font-size:15.5px; }
    #entryPickerCard .picker-btn .pb-sub { font-size:11px; }
  }
  /* live(entryPickerCard) 와 OCR(ocrPickerCard) 게임픽커 크기 통일 — 두 모드 사이 중간 크기.
     미디어쿼리보다 뒤에 두어 모든 화면폭에서 동일하게 적용. */
  #entryPickerCard .picker-btn, #ocrPickerCard .picker-btn {
    display:grid; grid-template-columns:64px minmax(0,1fr) 22px; align-items:center; gap:14px;
    min-height:92px; padding:15px 18px;
    border:1px solid var(--app-surface-border); border-radius:16px;
    background:var(--app-surface); box-shadow:0 4px 15px rgba(20,83,45,.055);
  }
  #entryPickerCard .picker-btn .pb-icon, #ocrPickerCard .picker-btn .pb-icon {
    width:60px; height:60px; border:0; border-radius:0; background:transparent; box-shadow:none; color:var(--green-900,#14532d);
  }
  #entryPickerCard .picker-btn .pb-icon.has-illust, #ocrPickerCard .picker-btn .pb-icon.has-illust { width:60px; height:60px; }
  #entryPickerCard .picker-btn .pb-icon .pack-icon, #ocrPickerCard .picker-btn .pb-icon .pack-icon { width:52px; height:52px; }
  #entryPickerCard .picker-btn .pb-title, #ocrPickerCard .picker-btn .pb-title { margin:0 0 4px; font-size:18px; font-weight:820; line-height:1.25; letter-spacing:-.25px; color:var(--gray-900,#111827); }
  #entryPickerCard .picker-btn .pb-sub, #ocrPickerCard .picker-btn .pb-sub { font-size:12.5px; font-weight:550; line-height:1.4; color:var(--gray-500,#6b7280); }
  #ocrPickerCard .picker-options { gap:9px; }
  #ocrPickerCard .picker-sec-label { margin:12px 3px 2px; color:var(--gray-600,#4b5563); font-size:13px; font-weight:750; letter-spacing:-.1px; }
  #ocrPickerCard .picker-sec-label:first-child { margin-top:0; }
  #entryPickerCard .picker-chevron, #ocrPickerCard .picker-chevron { display:grid; place-items:center; width:22px; height:38px; color:var(--gray-700,#374151); font-size:27px; font-weight:400; line-height:1; }
  /* 첫화면 method 선택 — 3x1 세로 스택. picker-btn 과 동일한 가로 레이아웃 (아이콘 좌 / 텍스트 우).
     스타일은 위쪽 #entryPickerCard, #entryMethodCard 통합 selector 에서 처리. 여기는 자식만. */
  .method-options {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  /* CSS Grid 로 icon(좌) + title+sub(우) 자동 배치 — HTML 변경 없이 row 레이아웃 */
  /* 홈 참가코드 바 — 우측 정렬 소형(칸의 30%) */
  .join-code-bar { width: 30%; box-sizing: border-box; margin: 0 0 12px auto; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 10px; border: 1px solid rgba(255,255,255,0.65); border-radius: 14px; background: rgba(255,255,255,0.5); -webkit-backdrop-filter: blur(14px) saturate(150%); backdrop-filter: blur(14px) saturate(150%); box-shadow: 0 4px 16px rgba(20,83,45,0.05); color: var(--gray-600, #4b5563); font-family: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .join-code-bar:active { transform: scale(0.97); }
  .join-code-bar .jcb-ico { font-size: 13px; flex-shrink: 0; }
  .join-code-bar .jcb-txt { white-space: nowrap; }
  /* 게임 picker 섹션 라벨 */
  .picker-sec-label { font-size: 11.5px; font-weight: 800; color: var(--gray-400, #9ca3af); letter-spacing: 0.3px; margin: 6px 2px 2px; }
  .picker-sec-label:first-child { margin-top: 0; }
  /* 진행 중 draft 이어하기 배너 */
  #draftBanner { width: 100%; box-sizing: border-box; display: flex; align-items: center; gap: 4px; margin: 0 0 14px; padding: 4px 6px 4px 12px; border: 1px solid rgba(20,83,45,0.18); border-radius: 14px; background: var(--green-50, #eef7f0); color: var(--green-900, #14532d); -webkit-tap-highlight-color: transparent; box-shadow: 0 2px 10px rgba(20,83,45,0.06); }
  #draftBanner .db-main { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 9px 0; background: none; border: none; font-family: inherit; font-size: 13.5px; font-weight: 800; color: inherit; cursor: pointer; text-align: left; }
  #draftBanner .db-main:active { transform: scale(0.99); }
  #draftBanner .db-ico { font-size: 16px; flex-shrink: 0; }
  #draftBanner .db-txt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  #draftBanner .db-arrow { flex-shrink: 0; font-size: 18px; opacity: 0.5; }
  #draftBanner .db-dismiss { flex-shrink: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; background: none; border: none; border-radius: 50%; color: var(--green-900, #14532d); opacity: 0.55; font-size: 14px; font-weight: 700; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  #draftBanner .db-dismiss:active { background: rgba(20,83,45,0.12); opacity: 1; }
  .method-btn {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    grid-template-areas:
      "title icon"
      "sub icon";
    align-items: center;
    gap: 0 18px;
    padding: 18px 20px;
    /* 글라스 — 통계 화면 카드와 통일 */
    background: var(--app-surface-soft);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    backdrop-filter: blur(14px) saturate(150%);
    color: var(--gray-900);
    border: 1px solid var(--app-surface-border);
    border-radius: 18px;
    box-shadow: 0 4px 16px rgba(20, 83, 45, 0.05);
    cursor: pointer;
    transition: all 0.15s;
    text-align: left;
    min-height: 144px;   /* 기존 96 → 50% 증가 */
  }
  /* 홈 인사말 */
  .play-greeting { margin: 8px 2px 22px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .play-greeting .pg-text { min-width: 0; }
  .play-greeting .pg-hi { font-size: 20px; font-weight: 800; color: var(--green-900, #14532d); line-height: 1.35; }
  .play-greeting .pg-sub { font-size: 13px; color: var(--gray-600, #6b7280); margin-top: 7px; }
  /* 플레이 바로가기 — 인사말 우측(=중앙 FAB/플레이탭과 동일 동작 openPlaySheet) */
  .pg-play { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 3px; padding: 10px 18px; border: 0; border-radius: 999px; background: var(--green-50, #eef7f0); color: var(--green-800, #166534); font-family: inherit; font-size: 14px; font-weight: 800; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: transform .12s ease, background .15s ease; }
  .pg-play:active { transform: scale(0.95); background: var(--green-100, #dcefe1); }
  .pg-play .pg-play-arw { font-size: 17px; font-weight: 700; line-height: 1; }
  /* 세번째 카드 — 친구 라운드 참가(코드 직접 입력) */
  .join-method .join-ico { background: #2563eb; color: #fff; }
  .join-code-boxes { grid-area: sub; align-self: start; justify-self: start; width: max-content; margin-top: 8px; display: flex; gap: 7px; }
  .join-code-boxes .jcb-digit {
    width: 32px; height: 42px; box-sizing: border-box; padding: 0; text-align: center;
    font-family: inherit; font-size: 18px; font-weight: 800; color: var(--green-900, #14532d);
    background: rgba(255,255,255,0.7); border: 1.5px solid rgba(20,83,45,0.2);
    border-radius: 10px; -webkit-tap-highlight-color: transparent;
  }
  .join-code-boxes .jcb-digit:focus { outline: none; border-color: var(--green-600, #16a34a); background: #fff; }
  @media (max-width: 360px) { .join-code-boxes { gap: 6px; } .join-code-boxes .jcb-digit { width: 32px; height: 44px; font-size: 18px; } }
  .method-btn > .mb-icon-badge,
  .method-btn > .mb-scorecard-icon,
  .method-btn > .mb-brand-icon { grid-area: icon; justify-self: end; align-self: center; }
  .method-btn > .mb-title { grid-area: title; align-self: end; }
  .method-btn > .mb-sub { grid-area: sub; align-self: start; }
  .method-btn:hover,
  .method-btn:active {
    border-color: var(--green-600);
    background: var(--green-50);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(20,83,45,0.1);
  }
  /* 친구 라운드 참가 카드 — 클릭 버튼이 아니라 코드 입력 컨테이너. hover/active/focus 시 초록 활성 스타일 안 뜨게 항상 플레인 글라스 유지. */
  .method-btn.join-method,
  .method-btn.join-method:hover,
  .method-btn.join-method:active,
  .method-btn.join-method:focus,
  .method-btn.join-method:focus-within {
    border-color: var(--app-surface-border);
    background: var(--app-surface-soft);
    transform: none;
    box-shadow: 0 4px 16px rgba(20, 83, 45, 0.05);
    cursor: default;
  }
  /* 기록 탭 헤더 — 두 행의 역할·위계를 명확히 구분:
     ① 메인 탭(어떤 기록을 볼지) = 전체폭 세그컨트롤, 시각적으로 강함.
     ② 기간 필터(조회 범위) = 배경 없는 좌측정렬 텍스트 칩, 보조라 약함. */
  .seg-tabs { display: flex; gap: 4px; background: var(--surface-secondary,#F0F4F1); border-radius: 999px; padding: 4px; margin: 2px 0 14px; }
  .seg-tab { flex: 1; border: 0; background: transparent; border-radius: 999px; padding: 9px 0; font-size: 14px; font-weight: 600; color: var(--gray-500); cursor: pointer; transition: background .15s, color .15s; -webkit-tap-highlight-color: transparent; }
  .seg-tab.active { background: #fff; color: #166534; font-weight: 800; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
  /* 세그탭 사이 세로 구분선 — 인접한 두 비활성 탭 사이에만(활성 흰 알약 옆은 숨김). (위저드 등 다른 seg-tabs 유지) */
  .seg-tab { position: relative; }
  .seg-tab + .seg-tab::before { content: ''; position: absolute; left: -2px; top: 50%; transform: translateY(-50%); width: 1px; height: 18px; background: var(--gray-300, #d1d5db); }
  .seg-tab.active::before, .seg-tab.active + .seg-tab::before { display: none; }
  /* ① 메인 탭(통계/내 라운드/상대기록/코스기록) — 좁은 폭에서도 한 줄. 세로 구분선은 쓰지 않음(깔끔한 세그컨트롤). */
  .seg-tabs-4 { margin-bottom: 12px; }
  .seg-tabs-4 .seg-tab { font-size: 13px; padding: 9px 0; white-space: nowrap; letter-spacing: -0.2px; }
  .seg-tabs-4 .seg-tab + .seg-tab::before { display: none; }
  /* ② 기간 필터 + 정렬 = 한 행. 좌: 기간 드롭다운(조용, 대부분 '전체'라 접음) / 우: 정렬 세그(활성). 콘텐츠 카드 좌측 기준선과 정렬. */
  .rec-filter-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 16px; min-height: 31px; }
  .rec-scope-dd-wrap { position: relative; flex: 0 0 auto; }
  .rec-scope-dd { display: inline-flex; align-items: center; gap: 4px; height: 31px; padding: 0 10px 0 13px; border-radius: 999px; border: 1px solid rgba(20,83,45,.16); background: #fff; color: var(--gray-700, #374151); font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .rec-scope-dd .dd-chev { width: 13px; height: 13px; flex: 0 0 auto; color: var(--gray-400, #9ca3af); }
  .rec-scope-menu { position: absolute; top: 37px; left: 0; z-index: 60; min-width: 132px; background: #fff; border-radius: 12px; box-shadow: 0 8px 24px rgba(15,40,25,.16); padding: 6px; }
  .rec-scope-mi { display: block; width: 100%; text-align: left; padding: 9px 12px; border: 0; background: transparent; border-radius: 8px; font-family: inherit; font-size: 13px; font-weight: 600; color: var(--gray-700, #374151); cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .rec-scope-mi.active { background: #e4f2e8; color: #166534; font-weight: 800; }
  .rec-sort-slot { flex: 0 0 auto; }
  .rec-sort-slot:empty { display: none; }
  .rec-sort-slot .hist-sort-bar { margin: 0; }

  /* 밝은 크림 배경용 경계 보강 — 채움색은 가볍게 유지하고 외곽선만 또렷하게. */
  .method-btn,
  .picker-btn,
  body.tab-feed .act-card,
  body.tab-feed .live-card,
  body.tab-feed .suggest-card,
  body.tab-record .stats-card,
  body.tab-record .recent-round-item,
  body.tab-profile .profile-action-card,
  body.tab-profile .profile-card-big,
  body.tab-profile .profile-stat4,
  body.tab-profile #profileFeedList .act-card,
  body.tab-profile #profileTaggedList .act-card,
  #publicProfileModal .pp-metric,
  #publicProfileModal .pp-section-card,
  #publicProfileModal .stats-card,
  #publicProfileModal .pp-round-item {
    background:var(--app-surface) !important;
    border-color:var(--app-surface-border) !important;
    box-shadow:var(--app-surface-shadow) !important;
  }
  body:not(.away-from-home) .bottom-nav {
    background:rgba(255,255,255,.24);
    border-color:rgba(20,83,45,.13);
  }
  body:not(.away-from-home) .method-btn:not(.join-method):hover,
  body:not(.away-from-home) .method-btn:not(.join-method):active {
    background:var(--green-50) !important;
    border-color:var(--green-600,#16a34a) !important;
  }
  .method-btn .mb-icon {
    font-size: 56px;
    line-height: 1;
    margin-bottom: 0;
  }
  /* 모든 아이콘 — 동일한 64×64 정사각 박스. 시각 균일성. */
  .method-btn .mb-icon-badge,
  .method-btn .mb-scorecard-icon,
  .method-btn .mb-brand-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 0;
    box-sizing: border-box;
    flex-shrink: 0;
  }
  .method-btn .mb-brand-icon .greener-glyph { width:30px; height:30px; }
  /* LIVE 칩 — 정사각 안에 'LIVE' 텍스트 + 점 (작게 압축) */
  .method-btn .mb-icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 0.8px;
    padding: 0;
    border-radius: 12px;
    gap: 4px;
    line-height: 1;
  }
  .method-btn .mb-icon-badge.live::before {
    width: 14px;
    height: 14px;
  }
  /* 스코어카드 이모지 — CSS 로 만든 작은 스코어카드 그림. 64×64 정사각. */
  .method-btn .mb-scorecard-icon {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding: 8px;
    background: white;
    border: 2px solid var(--green-700);
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    position: relative;
  }
  .method-btn .mb-scorecard-icon::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 12px;
    background: var(--green-700);
    border-radius: 6px 6px 0 0;
  }
  .method-btn .mb-scorecard-icon .msc-row {
    width: 100%;
    height: 5px;
    background: var(--gray-300);
    border-radius: 2px;
    margin-top: 0;
  }
  .method-btn .mb-scorecard-icon .msc-row:first-child { margin-top: 14px; }
  .method-btn .mb-scorecard-icon .msc-row:nth-child(2) { background: var(--gray-400); }
  /* 제목 — 한 줄, 큰 폰트, 좌측 정렬. 텍스트 시작점은 grid icon 컬럼 다음에서 모든 row 통일 */
  .method-btn .mb-title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 20px;
    font-weight: 800;
    color: var(--gray-900);
    letter-spacing: -0.4px;
    flex-wrap: nowrap;
    justify-content: flex-start;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 4px;
    min-width: 0;
  }
  .method-btn .mb-sub {
    font-size: 13px;
    color: var(--gray-500);
    line-height: 1.3;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
  }
  /* 뒤로가기 (입력방식 다시 선택) — 텍스트 버튼 */
  .picker-back-btn {
    margin-top: 10px;
    padding: 10px 14px;
    background: transparent;
    border: none;
    color: var(--gray-500);
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    text-align: center;
    border-radius: 10px;
    transition: all 0.15s;
  }
  .picker-back-btn:hover { background: var(--gray-100); color: var(--gray-700); }
  @media (max-width: 600px) {
    .method-options { gap: 12px; }
    .method-btn {
      padding: 14px 16px;
      border-radius: 16px;
      min-height: 120px;
      grid-template-columns: 1fr auto;   /* 제목=넓은 칸(좌), 이미지=auto(우). areas "title icon"과 일치 */
      gap: 0 14px;
    }
    .method-btn .mb-icon { font-size: 36px; }
    .method-btn .mb-icon-badge,
    .method-btn .mb-scorecard-icon { width: 56px; height: 56px; }
    .method-btn .mb-icon-badge { font-size: 14px; letter-spacing: 0.7px; gap: 4px; }
    .method-btn .mb-icon-badge.live::before { width: 10px; height: 10px; }
    .method-btn .mb-scorecard-icon { padding: 6px; }
    .method-btn .mb-scorecard-icon::before { height: 10px; }
    .method-btn .mb-scorecard-icon .msc-row:first-child { margin-top: 12px; }
    .method-btn .mb-title { font-size: 18px; gap: 5px; }
    .method-btn .mb-sub { font-size: 12px; }
  }
  /* Play 홈 — 라이브 히어로 + 기록/OCR·친구 참가 2열 구성. 로고와 하단 홈바는 기존 체계를 유지한다. */
  #entryMethodCard .play-method-layout { gap:14px; }
  #entryMethodCard .method-live-hero {
    position:relative;
    display:block;
    min-height:178px;
    overflow:hidden;
    padding:22px;
    border:0 !important;
    border-radius:18px;
    color:#fff;
    background:
      linear-gradient(90deg,rgba(6,66,42,.92),rgba(10,77,49,.68)),
      url('/icons/picker/live.png') center 57% / cover no-repeat !important;
    box-shadow:0 10px 24px rgba(11,76,48,.18) !important;
  }
  #entryMethodCard .method-live-hero:hover,
  #entryMethodCard .method-live-hero:active {
    border:0 !important;
    background:
      linear-gradient(90deg,rgba(6,66,42,.96),rgba(10,77,49,.72)),
      url('/icons/picker/live.png') center 57% / cover no-repeat !important;
  }
  #entryMethodCard .method-live-hero .play-live-badge {
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:4px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    font-size:10px;
    font-weight:800;
    letter-spacing:.4px;
  }
  #entryMethodCard .method-live-hero .play-live-badge span { width:6px; height:6px; border-radius:50%; background:#fff; }
  #entryMethodCard .method-live-hero .mb-title { margin-top:18px; color:#fff; font-size:24px; overflow:visible; }
  #entryMethodCard .method-live-hero .mb-sub { margin-top:8px; color:rgba(255,255,255,.82); font-size:13px; }
  #entryMethodCard .method-arrow {
    display:flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    border-radius:50%;
    font-size:27px;
    font-weight:400;
    line-height:1;
  }
  #entryMethodCard .method-live-hero .method-arrow {
    position:absolute;
    right:20px;
    top:50%;
    transform:translateY(-50%);
    background:rgba(255,255,255,0.5);   /* 살짝 투명 — 히어로 그린이 비쳐 보이게 */
    -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
    color:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.10);
    box-sizing:border-box;
    padding-bottom:3px;   /* '›' 글리프가 살짝 아래로 앉는 것 보정 → 시각적 중앙 */
  }
  #entryMethodCard .play-method-secondary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  #entryMethodCard .method-small-card,
  #entryMethodCard .method-small-card.join-method {
    position:relative;
    display:flex !important;
    flex-direction:column;
    align-items:flex-start;
    min-height:190px;
    padding:18px 16px;
    border:1px solid var(--app-surface-border) !important;
    border-radius:18px;
    background:var(--app-surface) !important;
    box-shadow:var(--app-surface-shadow) !important;
    cursor:pointer;
    transform:none;
    text-align:left !important;
  }
  #entryMethodCard .method-small-card .mb-brand-icon {
    align-self:flex-start;
    justify-self:start;
  }
  #entryMethodCard .method-small-card .mb-title,
  #entryMethodCard .method-small-card .mb-sub {
    width:100%;
    text-align:left;
  }
  /* 홈 두 카드(스코어카드 인식·친구 참가) — 탭/hover 시 초록 활성 없음(모바일에서 잔상 남는 문제). 항상 플레인 유지. */
  #entryMethodCard .method-small-card:hover,
  #entryMethodCard .method-small-card:active {
    border-color:var(--app-surface-border) !important;
    background:var(--app-surface) !important;
    cursor:pointer;
  }
  #entryMethodCard .method-small-card .mb-brand-icon { width:56px; height:56px; margin:0 0 16px; border-radius:13px; }
  #entryMethodCard .method-small-card .mb-brand-icon .pack-icon { width:44px; height:44px; }
  /* 홈 두 카드 아이콘 통일 — 박스 없이 borderless, 같은 크기/정렬 (스코어카드 인식 일러스트 + 친구참가 지구본) */
  #entryMethodCard .method-small-card .mb-brand-icon.has-illust { width:56px; height:56px; }
  #entryMethodCard .method-small-card .mb-brand-icon.has-illust .pb-illust { width:100%; height:100%; object-fit:contain; }
  #entryMethodCard .method-small-card .mb-title { display:block; margin:0 0 7px; font-size:16px; line-height:1.35; white-space:normal; overflow:visible; }
  #entryMethodCard .method-small-card .mb-sub { font-size:11.5px; line-height:1.45; white-space:normal; overflow:visible; }
  #entryMethodCard .method-small-card .method-arrow { position:absolute; right:12px; bottom:10px; width:24px; height:24px; color:var(--gray-600,#4b5563); font-size:24px; }
  /* [P1 A2] 홈 위젯이 홈(#feedHomeHead)으로 이동 → #entryMethodCard 스코프 제거(전역 클래스). 위치 무관 공통 스타일. */
  /* #feedTab 은 좌우 padding 0(피드 섹션이 각자 0 16px 로 자기정렬) → 홈 위젯도 동일 16px 인셋으로 정렬(기본값). 세부 조정은 추후 컨테이너 분리. */
  #feedHomeHead { padding: 0 16px; }
  .play-home-extras { display:grid; gap:13px; margin-top:18px; }
  .play-weather-block {
    width:100%; min-height:68px; display:grid; grid-template-columns:40px minmax(0,1fr) 22px; align-items:center; gap:12px;
    padding:11px 15px; border:1px solid var(--app-surface-border); border-radius:16px; background:linear-gradient(110deg,rgba(238,247,240,.88),rgba(255,255,255,.74));
    box-shadow:0 4px 15px rgba(20,83,45,.05); color:var(--gray-900); font-family:inherit; text-align:left; cursor:pointer;
  }
  .play-weather-block:active { transform:scale(.99); border-color:rgba(21,128,61,.32); }
  .phx-icon { width:40px; height:40px; display:grid; place-items:center; color:var(--green-800); }
  .phx-icon .pack-icon { width:34px; height:34px; }
  .phx-copy { min-width:0; display:grid; gap:3px; }
  .phx-copy strong { font-size:14px; font-weight:820; }
  .phx-copy small { overflow:hidden; color:var(--gray-500); font-size:10.5px; font-weight:550; text-overflow:ellipsis; white-space:nowrap; }
  .phx-arrow { color:var(--gray-500); display:flex; align-items:center; justify-content:center; font-size:21px; }
  .phx-arrow .pack-icon { width:20px; height:20px; }
  /* [홈리뉴얼] 날씨 카드 — 좌측 텍스트 + 우측 코스 썸네일 배경(흰 그라디언트로 좌측 가독성 확보) */
  .wx-card {
    position:relative; width:100%; min-height:118px; border-radius:22px; overflow:hidden; display:block;
    border:1px solid var(--app-surface-border); background:var(--app-surface); text-align:left; font-family:inherit; cursor:pointer; padding:0;
    box-shadow:0 4px 22px rgba(20,83,45,.08);
  }
  .wx-card:active { transform:scale(.995); }
  /* 이미지는 카드 전체를 덮되 opacity 를 낮춰 크림 카드(app-surface) 위에서 '전체 톤이 연하게'(하이라이트 유지).
     그 위에 좌측만 추가 크림 베일(연속 그라디언트, 우측 transparent)로 텍스트 가독성 확보. 하드컷 X */
  .wx-bg { position:absolute; inset:0; background-size:cover; background-position:center; opacity:1; }
  /* ⚠️ --app-surface 는 rgba(255,255,255,.82) 라 color-mix 로는 최대 ~0.8 불투명(이미지가 계속 비침).
     불투명 흰색 rgba 로 직접 지정 → 0~40% 거의 순백(이미지 힌트만) → 40~60% 페이드 → 60~100% 원본 100%. */
  .wx-fade { position:absolute; inset:0; background:linear-gradient(90deg,
    rgba(255,255,255,.96) 0%,
    rgba(255,255,255,.96) 40%,
    rgba(255,255,255,.82) 48%,
    rgba(255,255,255,.5) 55%,
    rgba(255,255,255,0) 64%,
    rgba(255,255,255,0) 100%); }
  .wx-content { position:relative; padding:17px 19px; }
  .wx-label { font-size:12.5px; font-weight:800; letter-spacing:.06em; color:var(--gray-500); }
  .wx-temp-row { display:flex; align-items:center; gap:9px; margin:3px 0 8px; }
  .wx-temp { font-size:38px; font-weight:850; line-height:1; color:var(--green-900); }
  .wx-icon { font-size:25px; line-height:1; }
  .wx-sub { font-size:13px; font-weight:600; color:var(--gray-500); line-height:1.5; }
  .greener-refresh-icon { transform-origin:50% 50%; will-change:transform; }
  .greener-refresh-icon.is-spinning { animation:greenerGolfRefresh .8s cubic-bezier(.4,0,.2,1) both; }
  @keyframes greenerGolfRefresh {
    0% { transform:rotate(0deg) scale(1); }
    45% { transform:rotate(190deg) scale(.94); }
    78% { transform:rotate(330deg) scale(1.04); }
    100% { transform:rotate(360deg) scale(1); }
  }
  @media (prefers-reduced-motion:reduce) {
    .greener-refresh-icon.is-spinning { animation:none; }
  }
  .play-recent-head { display:flex; align-items:center; justify-content:space-between; margin-top:2px; padding:0 2px; }
  .play-recent-head strong { color:var(--gray-800); font-size:13px; font-weight:820; }
  .play-recent-head button { border:0; background:none; color:var(--gray-500); font-family:inherit; font-size:10.5px; font-weight:700; cursor:pointer; }
  .play-recent-list { display:grid; gap:8px; margin-bottom:24px; }
  .play-recent-round {
    width:100%; min-height:60px; display:grid; grid-template-columns:minmax(0,1fr) auto 18px; align-items:center; gap:10px;
    padding:9px 12px; border:1px solid var(--app-surface-border); border-radius:14px; background:var(--app-surface); box-shadow:0 3px 12px rgba(20,83,45,.04);
    color:var(--gray-900); font-family:inherit; text-align:left; cursor:pointer;
  }
  .play-recent-round .prr-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:var(--green-50); color:var(--green-800); }
  .play-recent-round .prr-icon .pack-icon { width:25px; height:25px; }
  .play-recent-round .prr-main { min-width:0; display:grid; gap:3px; }
  .play-recent-round .prr-course { overflow:hidden; font-size:12.5px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
  .play-recent-round .prr-date { color:var(--gray-500); font-size:10px; font-weight:600; }
  .play-recent-round .prr-score { color:var(--green-800); font-size:15px; font-weight:900; white-space:nowrap; }
  .play-recent-round .prr-arrow { color:var(--gray-500); font-size:21px; }
  .play-recent-empty { padding:15px; border:1px dashed rgba(20,83,45,.18); border-radius:14px; color:var(--gray-500); font-size:11.5px; text-align:center; }
  @media (max-width:360px) {
    #entryMethodCard .method-live-hero { min-height:166px; padding:20px; }
    #entryMethodCard .method-small-card { min-height:180px; padding:16px 13px; }
    #entryMethodCard .method-small-card .mb-title { font-size:15px; }
  }
  /* 친구 라운드 참가 전용 다음 화면 */
  #joinCodeCard { padding:8px 0 12px; }
  .join-screen { max-width:390px; margin:0 auto; padding:28px 18px 18px; text-align:center; }
  .join-screen-icon { width:58px; height:58px; margin:0 auto 18px; display:grid; place-items:center; border-radius:17px; color:var(--green-800,#166534); background:var(--green-50,#eef7f0); border:1px solid rgba(20,83,45,.14); }
  .join-screen-icon .pack-icon { width:34px; height:34px; }
  .join-screen-icon .pb-illust { width:40px; height:40px; object-fit:contain; }
  .join-screen h1 { margin:0; font-size:23px; color:var(--gray-900,#111827); letter-spacing:-.4px; }
  .join-screen p { margin:9px 0 25px; font-size:13px; line-height:1.5; color:var(--gray-500,#6b7280); }
  .jsc-otp { display:flex; gap:9px; justify-content:center; }
  .jsc-otp-box { width:52px; height:64px; box-sizing:border-box; border:1px solid var(--gray-300,#d1d5db); border-radius:14px; background:#fff; color:var(--green-900,#14532d); font:900 28px/1 inherit; text-align:center; box-shadow:0 3px 12px rgba(20,83,45,.04); -webkit-tap-highlight-color:transparent; }
  .jsc-otp-box:focus { outline:none; border-color:var(--green-700,#15803d); box-shadow:inset 0 0 0 1px var(--green-700,#15803d); }
  @media (max-width:360px) { .jsc-otp { gap:7px; } .jsc-otp-box { width:46px; height:58px; font-size:24px; } }
  .join-screen-error { margin:10px 0 0; color:var(--red,#dc2626); font-size:12.5px; font-weight:700; }
  .join-screen-submit { width:100%; margin-top:18px; padding:15px; border:0; border-radius:14px; background:var(--green-800,#166534); color:#fff; font-family:inherit; font-size:15px; font-weight:800; cursor:pointer; }
  .join-screen-submit:disabled { opacity:.55; cursor:default; }
  /* 게임 설정 wizard — 'Live(한 홀씩 직접 입력)' 모드에서 3단계 안내 패널 */
  .wizard-step-label {
    display: none;
    background: var(--green-700);
    color: white;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
    margin-left: auto;
  }
  #gameCard.wizard-active .wizard-step-label { display: inline-flex; }
  .wizard-progress-header { display:none; }
  #gameCard.wizard-active .wizard-progress-header { display:grid; gap:7px; margin:0 4px 15px; }
  .wizard-progress-copy { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .wizard-progress-title { font-size:14px; font-weight:800; color:var(--gray-900); }
  .wizard-progress-side { display:flex; align-items:center; gap:7px; margin-left:auto; }
  .wizard-progress-count { font-size:12px; font-weight:700; color:var(--gray-500); white-space:nowrap; }
  .wizard-progress-desc { font-size:11.5px; line-height:1.4; color:var(--gray-500); }
  .wizard-progress-track { height:4px; overflow:hidden; border-radius:999px; background:var(--gray-200); }
  .wizard-progress-fill { width:0; height:100%; border-radius:inherit; background:var(--green-700); transition:width .2s ease; }
  .wizard-review { display:grid; gap:0; margin-top:8px; border-top:1px solid rgba(20,83,45,.13); }
  .wizard-review-row { display:grid; grid-template-columns:60px minmax(0,1fr) auto; align-items:start; gap:10px; padding:15px 2px; border-bottom:1px solid rgba(20,83,45,.1); }
  .wizard-review-label { padding-top:2px; color:var(--gray-500); font-size:12px; font-weight:700; }
  .wizard-review-main { min-width:0; color:var(--gray-900); font-size:14px; font-weight:800; line-height:1.45; }
  .wizard-review-sub { display:block; margin-top:2px; color:var(--gray-500); font-size:11.5px; font-weight:600; line-height:1.45; }
  .wizard-review-edit { min-width:44px; min-height:34px; padding:6px 9px; border:0; border-radius:10px; background:var(--green-50); color:var(--green-700); font-family:inherit; font-size:11.5px; font-weight:800; cursor:pointer; }
  /* 2x2 고정 그리드 — 오장(핸디캡번호로 길어져도) 4x1 방지. */
  .wizard-review-players { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
  /* 상세 기록 스위치 (확인 스텝) — iOS 스타일 토글. */
  .wz-detail-copy { color:var(--gray-900); font-size:14px; font-weight:800; line-height:1.45; }
  .wz-detail-switch { position:relative; width:48px; height:29px; flex:0 0 auto; padding:0; border:0; border-radius:999px; background:var(--gray-300,#d1d5db); cursor:pointer; transition:background .18s ease; -webkit-tap-highlight-color:transparent; }
  .wz-detail-switch[aria-checked="true"] { background:var(--green-600,#16a34a); }
  .wz-detail-knob { position:absolute; top:2px; left:2px; width:25px; height:25px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .18s ease; }
  .wz-detail-switch[aria-checked="true"] .wz-detail-knob { transform:translateX(19px); }
  .wizard-review-player { display:flex; align-items:center; gap:6px; min-width:0; padding:4px 10px 4px 4px; border-radius:999px; background:rgba(255,255,255,.7); border:1px solid rgba(20,83,45,.11); color:var(--gray-800); font-size:11.5px; font-weight:750; }
  .wizard-review-player .mini-avatar { width:22px; height:22px; font-size:10.5px; flex:0 0 auto; }
  .wzp-name { min-width:0; line-height:1.15; word-break:keep-all; }   /* 이름 말줄임 X — 길면 줄바꿈(음절 단위) */
  /* 리뷰 행 전체 클릭 → 해당 위저드 스텝. (수정 버튼 대신 › 표시) */
  .wizard-review-row.wz-clickable { cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .wizard-review-row.wz-clickable:active { background:rgba(20,83,45,.04); }
  .wizard-review-go { align-self:center; color:var(--gray-300,#cbd5e1); font-size:22px; font-weight:700; line-height:1; padding-left:2px; }
  /* 기록 방식 선택 카드 (점수기록 모드 전용) — 한 화면 fit 위해 컴팩트하게. */
  .wz-recmode { margin-top:14px; }
  .wz-recmode-head { color:var(--gray-700); font-size:12.5px; font-weight:800; margin:0 2px 8px; }
  .wz-rec-card { display:flex; align-items:center; gap:12px; width:100%; padding:12px 13px; margin-bottom:9px; background:#fff; border:2px solid rgba(20,83,45,.10); border-radius:15px; font-family:inherit; text-align:left; cursor:pointer; -webkit-tap-highlight-color:transparent; transition:border-color .15s ease, background .15s ease; }
  .wz-rec-card:last-of-type { margin-bottom:0; }
  .wz-rec-card.selected { border-color:var(--green-600,#16a34a); background:var(--green-50,#eef7f0); }
  .wz-rec-ic { flex:0 0 auto; width:40px; height:40px; border-radius:11px; background:var(--green-50,#eef7f0); display:flex; align-items:center; justify-content:center; }
  .wz-rec-card.selected .wz-rec-ic { background:#fff; }
  .wz-rec-ic svg { width:23px; height:23px; }
  .wz-rec-txt { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
  .wz-rec-title { font-size:15px; font-weight:900; color:var(--gray-900); }
  .wz-rec-sub { font-size:11.5px; font-weight:600; color:var(--gray-500); line-height:1.35; }
  .wz-rec-chips { display:flex; flex-wrap:wrap; gap:5px; margin-top:3px; }
  .wz-chip { padding:2px 8px; border-radius:999px; background:rgba(20,83,45,.08); color:#166534; font-size:10.5px; font-weight:800; }
  .wz-rec-radio { flex:0 0 auto; width:21px; height:21px; border-radius:50%; border:2px solid var(--gray-300,#d1d5db); position:relative; }
  .wz-rec-card.selected .wz-rec-radio { border-color:var(--green-600,#16a34a); }
  .wz-rec-card.selected .wz-rec-radio::after { content:''; position:absolute; inset:4px; border-radius:50%; background:var(--green-600,#16a34a); }
  .wz-recmode-note { margin:9px 2px 0; color:var(--gray-500); font-size:11px; font-weight:600; }
  #gameCard.wizard-active .wizard-panel > .picker-h1 { display:none; }
  .wizard-panel-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--green-900);
    margin: 4px 0 12px;
  }
  /* Step 3 검정 sub-heading — 이모지·괄호 제거된 한 문장형 소제목. */
  .wizard-panel-title.wizard-sub-h {
    font-size: 18px;
    font-weight: 800;
    color: #000;
    margin: 22px 0 12px;
    letter-spacing: -0.3px;
  }
  .wizard-panel-title.wizard-sub-h:first-child,
  .wizard-panel-title.wizard-sub-h[style*="margin-top:0"] { margin-top: 0; }
  /* 한 줄로 강제 (전원 동타 라벨 같이 잘리기 쉬운 텍스트) */
  .rule-toggle.rule-toggle-nowrap > span { white-space: nowrap; }
  /* 평상시(완료 모드): 패널 구분 없이 그대로 표시. 마진/제목만 차이 */
  #gameCard:not(.wizard-active) .wizard-panel-title { display: none; }
  #gameCard:not(.wizard-active) .wizard-panel { margin-bottom: 12px; }
  /* 모달 모드에서는 패널 제목 다시 노출 (사용자가 각 섹션 식별할 수 있도록) */
  #gameCard.modal-open .wizard-panel-title { display: block; }
  /* wizard 활성 시: 모든 패널 숨김 → .active만 표시 */
  #gameCard.wizard-active .wizard-panel { display: none; }
  #gameCard.wizard-active .wizard-panel.active {
    display: block;
    /* Step 전환 시 카드 높이가 변하지 않도록 최소 높이 확보 — 첫 콘텐츠 위치 일관성 유지 */
    min-height: 380px;
  }
  @media (max-width: 600px) {
    #gameCard.wizard-active .wizard-panel.active { min-height: 320px; }
  }
  /* picker-h1(첫 자식)은 본래 margin (12/8px top) 을 유지 — entryMethodCard/entryPickerCard 와 시작점 동일.
     Step 2/3 도 picker-h1.wizard-title-black 으로 일관된 시작점. */
  /* wizard 모드 — 홈 화면 카드와 동일한 normal flow 배치.
     position:fixed 제거 → 헤더(로고)와 함께 자연스럽게 스크롤됨. 키패드 활성 시 iOS 가 자동 스크롤. */
  #gameCard.wizard-active {
    position: static;
    height: auto;
    width: auto;
    margin: 0 0 20px;
    padding: 8px 4px 16px;
    display: block;
    overflow: visible;
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
    z-index: auto;
  }
  #gameCard.wizard-active > h2.gc-h2 { margin: 0 4px 12px; }
  #gameCard.wizard-active .wizard-panel.active {
    display: block;
    min-height: 0;
    overflow: visible;
  }
  /* wizard nav — 이전은 보조, 다음/라운드 시작은 주 행동, 전체 생략은 첫 단계의 텍스트 액션. */
  #gameCard.wizard-active .wizard-nav {
    position: static;
    margin: 28px 0 0;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    z-index: auto;
    gap:10px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    width: 100%;
  }
  #gameCard.wizard-active .wizard-nav #wizardBackBtn { grid-column:1; grid-row:1; width:auto; }
  #gameCard.wizard-active .wizard-nav #wizardNextBtn { grid-column:2; grid-row:1; width:100%; }
  #gameCard.wizard-active .wizard-nav #wizardSkipAllBtn { grid-column:1 / -1; grid-row:2; justify-self:center; width:auto; }
  /* 가로 spacer div 는 세로 스택에서 불필요 — 숨김 */
  #gameCard.wizard-active .wizard-nav > div { display: none; }
  /* 위저드 입력칸 — 다음 버튼(21px / 17px 18px padding) 과 어울리도록 크게.
     골프장/코스/날짜 + 플레이어명 모두 적용. iOS zoom 방지 font-size ≥ 16px 자동 충족.
     handicap-wizard-row / host-slot-pick-row 와 정확히 같은 박스 시각 (height 55 + border-box). */
  #gameCard.wizard-active input[type="text"],
  #gameCard.wizard-active input[type="date"],
  #gameCard.wizard-active input[type="number"] {
    padding: 0 14px;
    font-size: 17px;
    border-radius: 12px;
    border: 1.5px solid var(--gray-300);
    height: 55px;
    box-sizing: border-box;
  }
  /* 위저드 — 골프장/코스/날짜 + 플레이어명 모두 4x1 세로 스택 (desktop 포함). */
  #gameCard.wizard-active #courseFields,
  #gameCard.wizard-active #playerInputs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 16px;
  }
  #gameCard.wizard-active #courseFields .course-field,
  #gameCard.wizard-active #playerInputs .field {
    width: 100%;
    min-width: 0;
    flex: none;
  }
  #gameCard.wizard-active #playerInputs { padding-right:0; }
  /* 위저드 포커스/선택 링은 화면·카드 경계에서 잘리지 않도록 항상 요소 안쪽에 그린다. */
  #gameCard.wizard-active input:focus,
  #gameCard.wizard-active textarea:focus,
  #gameCard.wizard-active select:focus,
  #gameCard.wizard-active button:focus-visible {
    outline:none !important;
    outline-offset:0 !important;
    border-color:var(--green-700,#15803d) !important;
    box-shadow:inset 0 0 0 2px var(--green-700,#15803d), inset 0 0 0 5px rgba(21,128,61,.10) !important;
  }
  /* ── 플레이어 행 = 카드(아바타 + 이름/부제 2행 + 핸디버튼 + ⠿) + 카드 밖 삭제 × ── */
  #playerInputs .player-field { position:relative; width:100%; margin-bottom:8px; }
  .player-row { display:flex; align-items:center; gap:9px; }
  .pr2 { flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:11px; min-height:64px; padding:10px 12px; border:1px solid var(--app-surface-border,#DFE6E1); border-radius:16px; background:var(--app-surface,#fff); box-shadow:0 2px 8px rgba(20,83,45,.04); }
  .player-field.linked .pr2 { border-color:rgba(21,128,61,.28); }
  .player-field.wizard-guided-next .pr2 { border-color:var(--green-600,#16a34a); box-shadow:0 0 0 2px rgba(22,163,74,.12); }
  .pr2-av { flex:0 0 auto; display:inline-flex; }
  .pr2-av .gav, .pr2-av-i { width:40px !important; height:40px !important; font-size:15px; }
  .pr2-main { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; justify-content:center; gap:2px; }
  #playerInputs .player-field .player-name { width:100%; padding:0 !important; margin:0 !important; border:0 !important; background:transparent !important; box-shadow:none !important; height:auto !important; min-height:0 !important; font-family:inherit; font-size:16px; font-weight:800; color:var(--gray-900,#111827); line-height:1.25; }
  #playerInputs .player-field .player-name::placeholder { color:var(--gray-400,#9ca3af); font-weight:700; }
  #playerInputs .player-field .player-name:focus { outline:none; }
  .pr2-sub { font-size:12.5px; font-weight:600; color:var(--gray-400,#9ca3af); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.2; }
  .player-field.linked .pr2-sub { color:var(--green-700,#15803d); font-weight:700; }
  /* 핸디 버튼(오장 전용, 행 내부) */
  .pn-hcap { flex:0 0 auto; display:none; align-items:center; justify-content:center; height:34px; padding:0 12px; border:1px solid var(--gray-200,#e5e7eb); border-radius:10px; background:#fff; color:var(--gray-500,#6b7280); font-family:inherit; font-size:12.5px; font-weight:800; white-space:nowrap; cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .pn-hcap.has-handicap { border-color:var(--green-600,#16a34a); background:var(--green-50,#eef7f0); color:var(--green-800,#166534); }
  .pn-hcap:active { transform:scale(.96); }
  /* 삭제 × — 카드 밖 우측 (항상 노출, 1명일 때 누르면 안내모달) */
  .pn-rowdel { flex:0 0 auto; width:30px; height:30px; padding:0 0 1px; border:0; border-radius:50%; background:var(--gray-100,#f3f4f6); color:var(--gray-400,#9ca3af); font-family:inherit; font-size:19px; line-height:1; display:flex; align-items:center; justify-content:center; cursor:pointer; -webkit-tap-highlight-color:transparent; box-sizing:border-box; }
  .pn-rowdel:active { background:var(--gray-200,#e5e7eb); color:var(--gray-600,#4b5563); transform:scale(.92); }
  /* 제스처 안내 — 플레이어칸 아래 한 줄(줄바뀜 없음). 1명일 땐 숨김. */
  .player-gesture-hint { margin:9px 2px 0; color:var(--gray-500,#6b7280); font-size:11px; font-weight:600; line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .player-gesture-hint .pgh-ic { letter-spacing:-3px; color:var(--gray-600,#4b5563); }
  body.players-1 .player-gesture-hint { display:none; }
  /* ＋ 플레이어 추가 — 인원 4 미만일 때만 */
  .wizard-add-player { display:block; width:100%; margin-top:10px; padding:12px; border:1.5px dashed var(--green-700,#15803d); border-radius:12px; background:#fff; color:var(--green-700,#15803d); font-family:inherit; font-size:14px; font-weight:800; cursor:pointer; }
  .wizard-add-player:active { background:var(--green-50,#f0fdf4); }
  body.players-4 #wizardAddPlayerBtn { display:none; }
  .pn-drag { flex:0 0 auto; width:26px; height:44px; padding:0; border:0; border-radius:8px; background:transparent; font-family:inherit; display:flex; align-items:center; justify-content:center; color:var(--gray-400,#9ca3af); font-size:19px; cursor:grab; touch-action:none; letter-spacing:-3px; -webkit-tap-highlight-color:transparent; }
  .pn-drag:active { cursor:grabbing; background:var(--green-50,#eef7f0); }
  .player-field.dragging { opacity:.62; }
  .player-account-matches { display:none; position:relative; z-index:30; margin:5px 0 0; overflow:hidden; border:1px solid rgba(20,83,45,.15); border-radius:13px; background:rgba(255,255,255,.96); box-shadow:0 10px 26px rgba(20,83,45,.13); }
  .player-account-matches.show { display:block; }
  .player-account-match { width:100%; display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:9px; padding:10px 11px; border:0; border-bottom:1px solid rgba(20,83,45,.08); background:transparent; color:var(--gray-900); font-family:inherit; text-align:left; cursor:pointer; }
  .player-account-match:last-child { border-bottom:0; }
  .pam-avatar { width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--green-50); color:var(--green-800); font-size:13px; font-weight:900; }
  .pam-name { display:block; font-size:12.5px; font-weight:800; }
  .pam-handle { display:block; margin-top:2px; color:var(--gray-500); font-size:10.5px; }
  .pam-select { color:var(--green-700); font-size:11px; font-weight:800; }
  .pam-guest { grid-template-columns:1fr auto; color:var(--gray-500); font-size:11.5px; }
  .wizard-recent-people { margin-top:16px; }
  .wizard-recent-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 3px 8px; }
  .wizard-recent-title { color:var(--gray-800); font-size:12.5px; font-weight:850; }
  .wizard-recent-hint { color:var(--gray-400); font-size:10.5px; }
  .wizard-recent-lane { margin-top:7px; }
  .wizard-recent-lane:first-child { margin-top:0; }
  .wizard-recent-track { display:flex; gap:8px; overflow-x:auto; padding:1px 3px 6px; scroll-snap-type:x proximity; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .wizard-recent-track::-webkit-scrollbar { display:none; }
  .wizard-recent-person { flex:0 0 auto; display:inline-grid; grid-template-columns:32px auto; align-items:center; gap:8px; min-height:44px; max-width:190px; padding:5px 11px 5px 6px; border:1px solid rgba(20,83,45,.13); border-radius:999px; background:rgba(255,255,255,.62); color:var(--gray-700); font-family:inherit; text-align:left; cursor:pointer; scroll-snap-align:start; }
  .wizard-recent-person.linked { border-color:var(--green-700); background:var(--green-50); color:var(--green-800); }
  .wrp-avatar { width:32px; height:32px; display:flex; align-items:center; justify-content:center; overflow:hidden; border-radius:50%; background:var(--green-50); color:var(--green-800); font-size:12px; font-weight:900; }
  .wrp-avatar img, .pam-avatar img { width:100%; height:100%; display:block; object-fit:cover; }
  /* 프사 없는 사람 — 그리너(계정)=초록, 게스트=회색으로 구분. (선택 시엔 아래 .linked 가 진초록 ✓로 덮음) */
  .wizard-recent-person.wrp-greener .wrp-avatar { background:var(--green-700,#15803d); color:#fff; }
  .wizard-recent-person.wrp-guest .wrp-avatar { background:var(--gray-100,#f3f4f6); color:var(--gray-500,#6b7280); }
  .wizard-recent-person.linked .wrp-avatar { background:var(--green-700); color:#fff; }
  /* 최근 동반자 레인 서브헤더 — 윗행 Greener / 아랫행 Guest */
  .wizard-recent-lane-label { margin:0 3px 5px; font-size:11px; font-weight:800; color:var(--gray-500,#6b7280); letter-spacing:.2px; }
  .wrp-info { min-width:0; }
  .wrp-name { display:block; overflow:hidden; font-size:11.5px; font-weight:800; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
  .wizard-recent-person .wrp-sub { display:block; margin-top:2px; overflow:hidden; color:var(--gray-400); font-size:9.5px; font-weight:650; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
  /* 인원 추가 버튼 */
  .pn-add { width: 100%; margin-top: 4px; padding: 11px; border: 1.5px dashed var(--gray-300, #d1d5db); border-radius: 12px; background: transparent; color: var(--green-800, #166534); font-size: 14px; font-weight: 700; font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .pn-add:active { transform: scale(0.98); background: var(--green-50, #eef7f0); }
  /* (구 .pn-hcap 칩 + 오장 combined-box 규칙 제거 — 카드 리디자인에서 .pn-hcap 는 행 내부 버튼으로 재정의됨) */
  /* 인원 선택 스텝 — 2×2 큰 버튼 */
  .count-picker { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 12px; }
  .count-btn { position:relative; display: flex; align-items: center; justify-content: center; padding: 24px 0; border: 1.5px solid var(--gray-200, #e5e7eb); border-radius: 14px; background: #fff; color: var(--gray-700, #374151); font-family: inherit; font-size: 17px; font-weight: 800; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: all 0.12s; }
  .count-btn::before { content:'✓'; display:none; position:absolute; right:16px; top:50%; transform:translateY(-50%); }
  .count-btn:active { transform: scale(0.97); }
  .count-btn.active { border-color: var(--green-600, #16a34a); background: var(--green-50, #eef7f0); color: var(--green-800, #166534); }
  .count-btn.active::before { display:inline; }
  .count-picker-hint { margin-top:2px; text-align:center; font-size:12px; color:var(--gray-500); }
  /* 위저드 옵션 버튼 — 연녹색 기본 표면 + 딥그린 선택 상태. */
  #gameCard.wizard-active .bet-btn,
  #gameCard.wizard-active .gt-btn {
    background:#edf6ef;
    border-color:#c7ddce;
    box-shadow:0 2px 7px rgba(23,77,53,.08);
  }
  #gameCard.wizard-active .bet-btn.active,
  #gameCard.wizard-active .gt-btn.active {
    background:#174d35;
    border-color:#174d35;
    color:#f8f1df;
    box-shadow:0 5px 13px rgba(23,77,53,.22);
  }
  #gameCard.wizard-active .gt-btn.active .gt-label,
  #gameCard.wizard-active .gt-btn.active .gt-sub { color:#f8f1df; }
  /* 인원 선택만 크림 글라스 — 선택 상태는 딥그린 테두리·텍스트·체크로 구분. */
  #gameCard.wizard-active .count-btn {
    background:linear-gradient(145deg, rgba(255,255,255,.66), rgba(245,238,220,.46));
    border-color:var(--app-surface-border);
    color:var(--gray-800,#1f2937);
    -webkit-backdrop-filter:blur(14px) saturate(145%);
    backdrop-filter:blur(14px) saturate(145%);
    box-shadow:0 5px 16px rgba(20,83,45,.07), inset 0 1px 0 rgba(255,255,255,.88);
  }
  #gameCard.wizard-active .count-btn.active {
    background:linear-gradient(145deg, rgba(255,255,255,.82), rgba(245,238,220,.62));
    border-color:#174d35;
    color:#174d35;
    box-shadow:0 7px 18px rgba(23,77,53,.13), inset 0 1px 0 rgba(255,255,255,.95);
  }
  /* 위저드 보조 버튼도 라이트 배경용 공통 경계를 사용한다. */
  #gameCard.wizard-active .wizard-recent-person:not(.linked),
  #gameCard.wizard-active .wizard-review-edit,
  #gameCard.wizard-active .section-chip:not(.active):not(.recommended),
  #gameCard.wizard-active .gc-mode-btn:not(.active) {
    border:1px solid var(--app-surface-border);
    background:var(--app-surface-soft);
    box-shadow:0 2px 8px rgba(20,83,45,.045);
  }
  /* 인원수에 따른 위저드 입력칸 표시 */
  body.players-3 #playerInputs .player-field:nth-child(4),
  body.players-2 #playerInputs .player-field:nth-child(3),
  body.players-2 #playerInputs .player-field:nth-child(4),
  body.players-1 #playerInputs .player-field:nth-child(2),
  body.players-1 #playerInputs .player-field:nth-child(3),
  body.players-1 #playerInputs .player-field:nth-child(4) { display: none; }
  /* '다음/시작' (primary) — 홈 화면의 '이전' 박스(picker-back-btn-big) 와 동일한 박스 크기·폰트·색상. */
  #gameCard.wizard-active #wizardNextBtn {
    padding: clamp(8px, 2.2vw, 12px) clamp(14px, 4.5vw, 22px);
    border-radius: 14px;
    background: #1c5734;
    border: 1.5px solid #1c5734;
    color: #fff;
    font-size: clamp(16px, 4.8vw, 20px);
    font-weight: 800;
    letter-spacing: -0.3px;
    text-align: center;
    min-width: 0;
  }
  #gameCard.wizard-active #wizardNextBtn:hover,
  #gameCard.wizard-active #wizardNextBtn:active {
    background: #163f24;
    border-color: #163f24;
  }
  /* 이전 — 낮은 강조도의 보조 버튼. */
  #gameCard.wizard-active #wizardBackBtn {
    padding: clamp(8px, 2.2vw, 12px) clamp(14px, 4.5vw, 22px);
    border-radius: 14px;
    background: var(--gray-100);
    border: 1.5px solid var(--gray-300);
    color: var(--gray-700);
    font-size: clamp(16px, 4.8vw, 20px);
    font-weight: 700;
    letter-spacing: -0.3px;
    text-align: center;
    min-width: 0;
  }
  #gameCard.wizard-active #wizardBackBtn:hover,
  #gameCard.wizard-active #wizardBackBtn:active {
    background: var(--gray-200);
    border-color: var(--gray-400);
  }
  /* 전체 생략 — 첫 단계에서만 보이는 작은 텍스트 액션. */
  #gameCard.wizard-active #wizardSkipAllBtn {
    padding:6px 10px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:var(--gray-500);
    font-size:13px;
    font-weight:600;
    text-align:center;
    min-width:0;
  }
  #gameCard.wizard-active #wizardSkipAllBtn:hover,
  #gameCard.wizard-active #wizardSkipAllBtn:active { background:var(--gray-100); color:var(--gray-700); }
  @media (max-width: 600px) {
    #gameCard.wizard-active { padding: 4px 0 12px; }
  }
  /* ===== 2026-07 위저드 UI 리프레시 =====
     라운드 정보 시안의 미니멀 화이트 카드·딥그린 포커스·8px 리듬을 모든 단계에 공통 적용. */
  #gameCard.wizard-active {
    --wz-green:#0f5b36;
    --wz-green-soft:#edf7f1;
    --wz-text:#0f172a;
    --wz-sub:#64748b;
    --wz-line:#e5e7eb;
    --wz-surface:#ffffff;
    padding:6px 2px calc(126px + env(safe-area-inset-bottom,0px));
  }
  #gameCard.wizard-active .wizard-progress-header {
    gap:7px;
    margin:0 0 22px;
    padding:0 1px;
  }
  #gameCard.wizard-active .wizard-progress-title {
    color:var(--wz-text);
    font-size:16px;
    font-weight:850;
    letter-spacing:-.25px;
  }
  #gameCard.wizard-active .wizard-progress-count {
    color:var(--wz-sub);
    font-size:12px;
    font-weight:750;
  }
  #gameCard.wizard-active .wizard-progress-desc {
    color:var(--wz-sub);
    font-size:11.5px;
    font-weight:600;
  }
  #gameCard.wizard-active .wizard-progress-track {
    height:3px;
    background:#e8ecea;
  }
  #gameCard.wizard-active .wizard-progress-fill { background:var(--wz-green); }
  #gameCard.wizard-active .wizard-panel.active { animation:wzPanelIn .22s ease both; }
  @keyframes wzPanelIn { from{opacity:.25;transform:translateY(4px)} to{opacity:1;transform:none} }
  #gameCard.wizard-active .wizard-field-label,
  #gameCard.wizard-active .wizard-panel-title {
    margin:0 2px 8px;
    color:#285a41;
    font-size:11.5px;
    font-weight:800;
    letter-spacing:-.1px;
  }
  #gameCard.wizard-active .wizard-panel-title.wizard-sub-h {
    margin:24px 1px 10px;
    color:var(--wz-text);
    font-size:14px;
    font-weight:850;
  }
  #gameCard.wizard-active #courseFields,
  #gameCard.wizard-active #playerInputs { gap:12px; margin-bottom:14px; }
  #gameCard.wizard-active input[type="text"],
  #gameCard.wizard-active input[type="date"],
  #gameCard.wizard-active input[type="number"] {
    height:48px;
    padding:0 14px;
    border:1px solid #d8dee3;
    border-radius:12px;
    background:var(--wz-surface);
    color:var(--wz-text);
    font-size:15px;
    font-weight:650;
    box-shadow:0 1px 2px rgba(15,23,42,.025);
  }
  #gameCard.wizard-active input::placeholder { color:#a3acb7; font-weight:550; }
  #gameCard.wizard-active input:focus,
  #gameCard.wizard-active textarea:focus,
  #gameCard.wizard-active select:focus,
  #gameCard.wizard-active button:focus-visible {
    border-color:var(--wz-green) !important;
    box-shadow:inset 0 0 0 1px var(--wz-green),0 0 0 3px rgba(15,91,54,.08) !important;
  }
  #gameCard.wizard-active .section-tabs {
    display:flex;
    gap:10px;             /* 전/후반을 독립 박스로 분리(붙은 pill 대신) → 각자 라운드+강조 링이 깔끔 */
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  #gameCard.wizard-active .section-tabs .section-tab-input {
    flex:1 1 0;
    height:52px;
    border:1px solid #d8dee3 !important;   /* 골프장칸과 동일한 독립 라운드 박스 */
    border-radius:12px !important;
    box-shadow:0 1px 2px rgba(15,23,42,.025) !important;
    text-align:left;
    font-size:14px;
    font-weight:750;
  }
  #gameCard.wizard-active .section-tabs .section-tab-input + .section-tab-input { border-left:1px solid #d8dee3 !important; }
  /* 선택된 탭 표시는 옅은 배경만 — 초록 강조 링은 guided-next(다음 채울 칸)만 담당해 골프장 입력 중 전반이 초록으로 겹치지 않게. */
  #gameCard.wizard-active .section-tabs .section-tab-input.active {
    background:rgba(238,247,240,.55);
    color:var(--wz-green);
  }
  #gameCard.wizard-active .section-chip {
    min-height:36px;
    border:1px solid #dfe5e1;
    border-radius:999px;
    background:#fff;
    color:#334155;
    box-shadow:none;
  }
  #gameCard.wizard-active .section-chip.active,
  #gameCard.wizard-active .section-chip.recommended {
    border-color:var(--wz-green);
    background:var(--wz-green-soft);
    color:var(--wz-green);
  }
  #gameCard.wizard-active .venue-suggestions,
  #gameCard.wizard-active .player-account-matches {
    border:1px solid var(--wz-line);
    border-radius:12px;
    background:#fff;
    box-shadow:0 10px 28px rgba(15,23,42,.10);
  }
  #gameCard.wizard-active .nearby-venues {
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  #gameCard.wizard-active .date-field .wizard-field-label {
    justify-content:flex-start;
    gap:6px;
  }
  #gameCard.wizard-active .count-picker { gap:10px; }
  #gameCard.wizard-active .count-btn {
    min-height:62px;
    padding:0;
    border:1px solid #dce2e6;
    border-radius:14px;
    background:#fff;
    color:#273142;
    font-size:15px;
    box-shadow:0 2px 8px rgba(15,23,42,.035);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  #gameCard.wizard-active .count-btn.active {
    border-color:var(--wz-green);
    background:var(--wz-green-soft);
    color:var(--wz-green);
    box-shadow:inset 0 0 0 1px var(--wz-green);
  }
  #gameCard.wizard-active .count-btn::before { right:14px; color:var(--wz-green); font-size:13px; }
  #gameCard.wizard-active .count-picker-hint,
  #gameCard.wizard-active .course-helper-text,
  #gameCard.wizard-active .team-picker-hint {
    color:#7b8794;
    background:transparent;
    border:0;
    font-size:10.5px;
    line-height:1.5;
  }
  /* ⠿ 드래그(위저드) — 점자 글리프 1.5px 하향보정 + 위저드 회색. */
  #gameCard.wizard-active .pn-drag { color:#94a3b8; transform:translateY(1.5px); }
  /* ＋ 플레이어 추가 — 카드(입력행) 폭에 맞춰 바깥 × 열(30+간격9=39px)만큼 좁힘. */
  #gameCard.wizard-active .wizard-add-player { width:calc(100% - 39px); }
  #gameCard.wizard-active .wizard-recent-person {
    min-height:42px;
    border:1px solid #dfe5e1;
    background:#fff;
    box-shadow:none;
  }
  #gameCard.wizard-active .wizard-recent-person.linked { border-color:var(--wz-green); background:var(--wz-green-soft); }
  #gameCard.wizard-active .team-picker-row,
  #gameCard.wizard-active .handicap-wizard-row,
  #gameCard.wizard-active .host-slot-pick-row {
    min-height:52px;
    height:52px;
    border:1px solid #d8dee3;
    border-radius:12px;
    background:#fff;
    box-shadow:0 2px 8px rgba(15,23,42,.025);
  }
  #gameCard.wizard-active .team-picker-row.team-white,
  #gameCard.wizard-active .team-picker-row.team-green { border-left:1px solid #d8dee3; }
  #gameCard.wizard-active .host-slot-pick-row.selected,
  #gameCard.wizard-active .handicap-wizard-row:has(.hw-chip.has-handicap) {
    border-color:var(--wz-green);
    background:var(--wz-green-soft);
    box-shadow:inset 0 0 0 1px var(--wz-green);
  }
  #gameCard.wizard-active .handicap-wizard-row .hw-chip {
    border:1px solid #d8dee3;
    background:#f8fafc;
    font-size:13px;
    box-shadow:none;
  }
  #gameCard.wizard-active .bet-btn,
  #gameCard.wizard-active .gt-btn,
  #gameCard.wizard-active .rule-toggle,
  #gameCard.wizard-active .gc-mode-btn {
    border:1px solid #dce2e6;
    border-radius:12px;
    background:#fff;
    color:#334155;
    box-shadow:0 2px 8px rgba(15,23,42,.03);
  }
  #gameCard.wizard-active .bet-btn.active,
  #gameCard.wizard-active .gt-btn.active,
  #gameCard.wizard-active .gc-mode-btn.active,
  #gameCard.wizard-active .rule-toggle:has(input:checked) {
    border-color:var(--wz-green);
    background:var(--wz-green-soft);
    color:var(--wz-green);
    box-shadow:inset 0 0 0 1px var(--wz-green);
  }
  #gameCard.wizard-active .gt-btn.active .gt-label,
  #gameCard.wizard-active .gt-btn.active .gt-sub { color:var(--wz-green); }
  #gameCard.wizard-active .wizard-review {
    overflow:hidden;
    margin-top:0;
    border:1px solid var(--wz-line);
    border-radius:14px;
    background:#fff;
  }
  #gameCard.wizard-active .wizard-review-row { padding:11px 12px; border-color:var(--wz-line); }
  #gameCard.wizard-active .wizard-review-edit {
    border:1px solid #dce2e6;
    border-radius:9px;
    background:#fff;
    color:var(--wz-green);
    box-shadow:none;
  }
  #gameCard.wizard-active .wizard-nav {
    position:fixed;
    left:50%;
    /* 한 버튼 높이만큼 바닥에서 띄우고, 보조 액션 유무와 무관하게 같은 높이를 예약한다. */
    bottom:44px;
    transform:translateX(-50%);
    z-index:80;
    display:grid;
    grid-template-columns:1fr;
    width:min(500px,calc(100% - 32px));
    height:112px;
    box-sizing:border-box;
    margin:0;
    padding:8px 0 0;
    grid-template-rows:54px 30px;
    align-content:start;
    background:linear-gradient(to bottom,rgba(250,250,248,0),rgba(250,250,248,.96) 25%);
  }
  #gameCard.wizard-active .wizard-nav #wizardBackBtn { display:none !important; }
  #gameCard.wizard-active .wizard-nav #wizardNextBtn {
    grid-column:1;
    width:100%;
    min-height:54px;
    height:54px;
    padding:0 20px;
    border:0;
    border-radius:10px;
    background:linear-gradient(135deg,#0f5b36,#0b4b2c);
    color:#fff;
    font-size:16px;
    font-weight:800;
    box-shadow:0 6px 16px rgba(15,91,54,.18);
  }
  #gameCard.wizard-active .wizard-nav #wizardNextBtn:disabled {
    background:#e5e7eb;
    color:#9ca3af;
    box-shadow:none;
  }
  #gameCard.wizard-active .wizard-nav #wizardSkipAllBtn { grid-column:1; grid-row:2; align-self:center; color:#8a949f; font-size:11.5px; }
  /* OCR 위저드도 같은 표면·버튼 언어 사용. */
  .ocr-card-wizard { background:transparent !important; border:0 !important; box-shadow:none !important; }
  .ocr-card-wizard .upload-btn,
  .ocr-card-wizard .ocr-result-open-btn,
  .ocr-result-modal button {
    border:1px solid #d8dee3;
    border-radius:12px;
    background:#fff;
    color:#0f5b36;
    box-shadow:0 2px 8px rgba(15,23,42,.035);
  }
  .ocr-card-wizard .upload-btn.primary,
  .ocr-result-modal button.primary { border-color:#0f5b36; background:#0f5b36; color:#fff; }
  /* wizard 비활성(완료) 시: 모든 패널 표시, nav 숨김 */
  #gameCard:not(.wizard-active) .wizard-nav { display: none; }

