/* ============ GolfOn · 골프온 — MVP 스타일시트 ============ */
:root{
  --green-900:#0a3d2c; --green-700:#0e5c3f; --green-600:#127a52;
  --green-100:#e3f3ec; --green-50:#f2faf6;
  --blue-600:#2f6fd6; --blue-50:#eaf1fd;
  --amber:#f5b301; --red:#e5484d;
  --ink:#182420; --ink-2:#5a6b64; --line:#e3e9e6;
  --card:#ffffff; --bg:#f4f7f5;
  --radius:16px; --shadow:0 4px 18px rgba(10,61,44,.08);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:"Pretendard Variable",Pretendard,-apple-system,sans-serif;
  background:var(--bg); color:var(--ink); font-size:15px; line-height:1.5;
}
button{font:inherit;cursor:pointer;border:none;background:none}
input{font:inherit}
.hidden{display:none !important}

/* ---------- Layout ---------- */
#app{max-width:520px;margin:0 auto;min-height:100dvh;position:relative;padding-bottom:76px}
.view{padding:0 16px 24px;animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1}}

/* ---------- Login ---------- */
#view-login{display:flex;flex-direction:column;min-height:100dvh;justify-content:center}
.login-hero{text-align:center;padding:48px 0 36px}
.logo-mark{
  width:84px;height:84px;margin:0 auto 18px;border-radius:28px;
  background:linear-gradient(145deg,var(--green-600),var(--green-900));
  display:block;object-fit:cover;
  box-shadow:0 6px 18px rgba(10,61,44,.18);
}
.logo{font-size:34px;font-weight:800;color:var(--green-900);letter-spacing:-.5px}
.logo span{color:var(--amber)}
.tagline{margin-top:10px;color:var(--ink-2);font-size:15px}
.login-panel{background:var(--card);border-radius:var(--radius);padding:22px 18px;box-shadow:var(--shadow)}
.kakao-btn{
  width:100%;display:flex;align-items:center;justify-content:center;gap:8px;
  background:#fee500;color:#181600;font-weight:700;font-size:16px;
  padding:14px;border-radius:12px;transition:transform .1s;
}
.kakao-btn:active{transform:scale(.98)}
.kakao-bubble{font-size:18px}
.login-note{text-align:center;color:var(--ink-2);font-size:12.5px;margin:14px 0 10px}
.legal{text-align:center;font-size:11.5px;color:#9aa8a2;margin-top:16px}
.legal a{color:#7c8b85}

/* ---------- Bars ---------- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0 8px;
}
.brand{font-weight:800;font-size:19px;color:var(--green-900)}
.brand span{color:var(--amber)}
.top-actions{display:flex;gap:8px}
.icon-btn{
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:6px 12px;font-size:13px;color:var(--ink-2);
}
.subbar{display:flex;align-items:center;gap:10px;padding:14px 0 10px}
.subbar h2{font-size:18px;font-weight:700}
.back-btn{
  width:34px;height:34px;border-radius:10px;background:var(--card);
  border:1px solid var(--line);font-size:17px;color:var(--ink);
}

/* ---------- Greeting & stats ---------- */
.greeting h2{font-size:19px;font-weight:700;letter-spacing:-.3px;margin-bottom:10px}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.stat-cell{
  background:var(--card);border-radius:12px;padding:10px 6px;text-align:center;box-shadow:var(--shadow);
}
.stat-cell b{display:block;font-size:17px;color:var(--green-700)}
.stat-cell small{font-size:11px;color:var(--ink-2)}

/* ---------- Quick actions ---------- */
.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}
.qa-card{
  text-align:left;background:var(--card);border-radius:var(--radius);
  padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px;
  border:1.5px solid transparent;transition:transform .1s;
}
.qa-card:active{transform:scale(.97)}
.qa-green{border-color:#c9e7da;background:var(--green-50)}
.qa-blue{border-color:#cdddf7;background:var(--blue-50)}
.qa-icon{font-size:24px}
.qa-card b{font-size:15px;margin-top:2px}
.qa-card small{color:var(--ink-2);font-size:12px}

/* ---------- Round list ---------- */
.section-title{font-size:16px;font-weight:700;margin:18px 0 10px}
.round-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.round-item{
  background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);
  display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;
}
.round-item:active{transform:scale(.98)}
.ri-info b{font-size:15px}
.ri-info small{display:block;color:var(--ink-2);font-size:12px;margin-top:2px}
.ri-badge{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.badge-live{background:#fdeaea;color:var(--red)}
.badge-done{background:var(--green-100);color:var(--green-700)}
.empty{text-align:center;color:var(--ink-2);padding:36px 0;font-size:14px}

/* ---------- Forms ---------- */
.form-card{
  background:var(--card);border-radius:var(--radius);padding:20px 16px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:8px;
}
.form-card label{font-weight:600;font-size:14px;margin-top:8px}
.form-card label:first-child{margin-top:0}
.req{color:var(--red)}
.form-card input[type=text],.form-card input[type=date]{
  border:1.5px solid var(--line);border-radius:10px;padding:11px 12px;background:var(--bg);width:100%;
}
.form-card input:focus{outline:none;border-color:var(--green-600)}
.hint{color:var(--ink-2);font-size:12px;margin-top:-4px}
.hint-inline{font-weight:400;color:var(--ink-2);font-size:12px}
.seg{display:flex;background:var(--bg);border-radius:10px;padding:4px;gap:4px}
.seg button{flex:1;padding:9px;border-radius:8px;color:var(--ink-2);font-weight:600}
.seg button.active{background:var(--green-700);color:#fff}
.primary-btn{
  margin-top:14px;width:100%;padding:14px;border-radius:12px;
  background:linear-gradient(145deg,var(--green-600),var(--green-700));
  color:#fff;font-weight:700;font-size:16px;box-shadow:var(--shadow);transition:transform .1s;
}
.primary-btn:active{transform:scale(.98)}
.danger-btn{margin-top:18px;width:100%;padding:11px;border-radius:10px;background:#fdeaea;color:var(--red);font-weight:600}
.ghost-btn{
  background:var(--green-100);color:var(--green-700);font-weight:700;
  padding:11px 18px;border-radius:10px;
}
.ghost-btn.small{padding:9px;font-size:13px;width:100%;margin-top:2px}
.player-inputs{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}
.pi-row{display:flex;gap:8px}
.pi-row input{flex:1;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg)}
.pi-del{width:38px;border-radius:10px;background:#fdeaea;color:var(--red);font-weight:700}

/* ---------- Join ---------- */
.center{text-align:center;align-items:center}
.join-desc{color:var(--ink-2);margin:8px 0 16px}
.code-input{
  text-align:center;font-size:26px;font-weight:800;letter-spacing:6px;
  border:2px dashed var(--green-600) !important;border-radius:14px !important;
  padding:14px !important;background:var(--green-50) !important;text-transform:uppercase;
}
.join-msg{min-height:20px;font-size:13px;margin-top:6px}
.join-msg.ok{color:var(--green-600)}
.join-msg.err{color:var(--red)}

/* ---------- Scorecard ---------- */
.live-banner{
  display:flex;align-items:center;gap:8px;background:var(--green-50);
  border:1px solid #cfe8dc;color:var(--green-700);font-weight:700;font-size:13px;
  border-radius:12px;padding:9px 14px;margin-bottom:12px;
}
.live-dot{width:9px;height:9px;border-radius:50%;background:var(--red);animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.score-head{flex:1;min-width:0}
.score-head h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:17px}
.score-head small{color:var(--ink-2);font-size:12px}

.leaderboard{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.lb-row{
  display:flex;align-items:center;gap:10px;background:var(--card);
  border-radius:12px;padding:10px 12px;box-shadow:var(--shadow);
}
.lb-rank{width:26px;height:26px;border-radius:50%;background:var(--green-100);color:var(--green-700);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.lb-rank.r1{background:var(--amber);color:#fff}
.lb-row.me{outline:2px solid var(--green-600)}
.lb-name{flex:1;font-weight:600}
.lb-name small{color:var(--ink-2);font-weight:400;margin-left:6px;font-size:12px}
.lb-score{font-weight:800;font-size:16px}
.under{color:var(--red)}   /* 파보다 낮으면(홀인원·버디 등) 한국식: 좋은 스코어=빨강 */
.over{color:var(--blue-600)}
.even{color:var(--ink-2)}

.scorecard-wrap{overflow-x:auto;background:var(--card);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:6px;margin-bottom:10px}
.scorecard{border-collapse:collapse;width:100%;min-width:480px}
.scorecard th,.scorecard td{
  border:1px solid var(--line);text-align:center;padding:7px 4px;font-size:13px;min-width:30px;
}
.scorecard th{background:var(--green-50);color:var(--green-700);font-weight:700}
.scorecard td.pname{min-width:64px;font-weight:600;text-align:left;padding-left:10px}
.scorecard td input{
  width:30px;height:30px;text-align:center;border:1.5px solid var(--line);
  border-radius:7px;font-weight:700;background:var(--bg);
}
.scorecard td input:focus{outline:none;border-color:var(--green-600);background:#fff}
.scorecard td input.under{border-color:var(--red);color:var(--red)}
.scorecard td input.over{border-color:var(--blue-600);color:var(--blue-600)}
.scorecard td.tot{background:var(--green-50);font-weight:800;color:var(--green-700)}
.hole-status{text-align:center;color:var(--ink-2);font-size:13px;margin-bottom:12px}

/* ---------- Profile ---------- */
.profile-card{display:flex;align-items:center;gap:14px;padding:6px 2px 4px}
.avatar{width:54px;height:54px;border-radius:50%;background:var(--green-100);
  display:flex;align-items:center;justify-content:center;font-size:26px;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.profile-card b{font-size:17px}
.profile-card small{display:block;color:var(--ink-2);font-size:12px}
.trend-box{display:flex;gap:8px;flex-wrap:wrap}
.trend-chip{background:var(--bg);border-radius:10px;padding:8px 12px;font-size:12.5px;color:var(--ink-2)}
.trend-chip b{color:var(--green-700)}

/* ---------- Tab bar ---------- */
.tabbar{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:520px;background:#fff;border-top:1px solid var(--line);
  display:flex;z-index:50;padding-bottom:env(safe-area-inset-bottom);
}
.tab{flex:1;padding:9px 0 10px;display:flex;flex-direction:column;align-items:center;gap:1px;
  font-size:11px;color:var(--ink-2)}
.tab span{font-size:20px}
.tab.active{color:var(--green-700);font-weight:700}

/* ---------- Toast ---------- */
.toast{
  position:fixed;bottom:96px;left:50%;transform:translateX(-50%) translateY(16px);
  background:rgba(24,36,32,.92);color:#fff;padding:11px 18px;border-radius:999px;
  font-size:13.5px;opacity:0;pointer-events:none;transition:all .25s;z-index:99;white-space:nowrap;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- Auth error box ---------- */
.auth-error{
  background:#fdeaea;border:1px solid #f5c2c4;color:#a42a2e;border-radius:10px;
  padding:10px 12px;font-size:12.5px;line-height:1.55;margin-bottom:10px;
}

/* ---------- Course search ---------- */
.search-box{position:relative}
.search-box input{
  width:100%;border:1.5px solid var(--line);border-radius:10px;padding:11px 38px 11px 12px;background:var(--bg);
}
.search-box input:focus{outline:none;border-color:var(--green-600);background:#fff}
.clear-btn{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:24px;height:24px;border-radius:50%;background:var(--line);color:var(--ink-2);
  font-size:12px;line-height:1;
}
.course-results{
  max-height:260px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;
  background:#fff;box-shadow:var(--shadow);margin-top:2px;
}
.course-item{padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer}
.course-item:last-child{border-bottom:none}
.course-item:active{background:var(--green-50)}
.course-item b{font-size:14px;display:block}
.course-item small{color:var(--ink-2);font-size:12px;display:block;margin-top:2px}
.course-item .par-tag{float:right;color:var(--green-700);font-weight:700;font-size:12px}
.course-selected{
  background:var(--green-50);border:1px solid #cfe8dc;border-radius:10px;
  padding:9px 12px;font-size:12.5px;color:var(--green-700);margin:2px 0 4px;
}
.course-selected b{font-size:13.5px}
.par-summary{font-size:12.5px;color:var(--ink-2);margin-top:-2px}
.par-summary b{color:var(--green-700)}

/* ---------- Spectator password gate ---------- */
.pw-gate{
  background:#fff8ec;border:1px dashed #e8c98a;border-radius:10px;
  padding:10px 12px;margin:8px 0;width:100%;
}
.pw-gate input{
  width:100%;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;
  text-align:center;letter-spacing:2px;font-size:15px;background:var(--bg);
}
.pw-gate input:focus{outline:none;border-color:var(--green-600);background:#fff}

/* ---------- PK panel (라스/스킨) ---------- */
.pk-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px}
.pk-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:500;font-size:13.5px}
.pk-badge{background:var(--green-50);color:var(--green-700);border:1px solid #cfe8dc;
  border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500}
.pk-badge.pk-lead{background:#fdf6e3;color:#8a6d1a;border-color:#f3d98b}
.pk-teams{display:flex;align-items:stretch;gap:8px;margin-bottom:10px}
.pk-team{flex:1;background:var(--bg);border:1px solid var(--line);border-radius:10px;
  padding:8px 10px;position:relative}
.pk-team.pk-win{border-color:var(--green-600);background:var(--green-50)}
.pk-team b{font-size:13px;display:block}
.pk-team small{color:var(--ink-2);font-size:11.5px;display:block;margin:1px 0 4px;word-break:keep-all}
.pk-score{font-size:20px;font-weight:500;color:var(--green-700)}
.pk-vs{align-self:center;color:var(--ink-2);font-size:12px}
.pk-strip{display:flex;gap:2px;flex-wrap:wrap;margin-bottom:6px}
.pk-cell{width:30px;height:30px;border-radius:6px;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px}
.pk-cell small{font-size:8.5px;color:var(--ink-2);line-height:1}
.pk-cell.pk-a{background:var(--green-50);color:var(--green-700);font-weight:500}
.pk-cell.pk-b{background:#fdeaea;color:#a42a2e;font-weight:500}
.pk-cell.pk-tie{background:var(--gray-50,#f4f4f2);color:var(--ink-2)}

/* ---------- Award panel (니어/롱기스트) ---------- */
.award-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.award-row{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:7px 9px}
.award-row.awarded{border-color:var(--green-600);background:var(--green-50)}
.award-label{display:flex;align-items:baseline;gap:6px;margin-bottom:5px}
.award-label b{font-size:13px}
.award-label small{color:var(--green-700);font-weight:500}
.award-chips{display:flex;flex-wrap:wrap;gap:5px}
.award-chip{
  border:1.5px solid var(--line);background:#fff;border-radius:20px;
  padding:4px 11px;font-size:12.5px;cursor:pointer;
}
.award-chip.on{border-color:var(--green-600);background:var(--green-700);color:#fff;font-weight:500}
.award-chip:disabled{opacity:.65;cursor:default}

/* ---------- 관전 응원 바 ---------- */
.cheer-bar{display:flex;align-items:center;gap:10px;justify-content:center;
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:10px}
.cheer-label{font-size:12.5px;color:var(--ink-2)}
.cheer-btn{width:50px;height:50px;border-radius:50%;background:var(--bg);
  border:1px solid var(--line);font-size:24px;cursor:pointer;
  transition:transform .12s ease}
.cheer-btn:active{transform:scale(.82) rotate(-8deg)}
.cheer-total{font-size:12px;color:var(--green-700);font-weight:500}
.fly-emoji{position:fixed;font-size:30px;pointer-events:none;z-index:99;
  animation:flyUp 1.25s ease-out forwards}
@keyframes flyUp{
  0%{opacity:1;transform:translateY(0) scale(1)}
  100%{opacity:0;transform:translateY(-110px) scale(1.7)}
}

/* ---------- 관전 메시지 ---------- */
.chat-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px;margin-bottom:12px}
.chat-head{font-size:13px;font-weight:500;margin-bottom:7px}
.chat-list{display:flex;flex-direction:column;gap:5px;margin-bottom:8px;max-height:170px;overflow-y:auto}
.chat-item{font-size:12.5px;line-height:1.5;background:var(--bg);border-radius:8px;padding:6px 9px}
.chat-item b{margin-right:6px;color:var(--green-700)}
.chat-item.empty{color:var(--ink-2);text-align:center}
.chat-input-row{display:flex;gap:6px}
.chat-input-row input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:9px;
  padding:8px 10px;font-size:13px;background:var(--bg)}
.chat-input-row input:first-child{flex:0 0 84px}
.chat-input-row input:focus{outline:none;border-color:var(--green-600);background:#fff}
.chat-send{background:var(--green-700);color:#fff;border:none;border-radius:9px;
  padding:8px 14px;font-size:13px;cursor:pointer}

/* ---------- 홀인원 팝업 ---------- */
.hio-overlay{position:fixed;inset:0;background:rgba(10,20,10,.62);z-index:100;
  display:flex;align-items:center;justify-content:center}
.hio-overlay.hidden{display:none}
.hio-card{background:#fff;border-radius:20px;padding:30px 34px;text-align:center;
  max-width:320px;animation:hioPop .55s cubic-bezier(.2,1.6,.4,1)}
@keyframes hioPop{
  0%{transform:scale(.2) rotate(-12deg);opacity:0}
  100%{transform:scale(1) rotate(0);opacity:1}
}
.hio-emoji{font-size:64px;animation:hioBounce 1s ease infinite}
@keyframes hioBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.hio-title{font-size:26px;font-weight:500;color:var(--green-700);margin:6px 0 4px}
.hio-desc{font-size:14px;color:var(--ink-2);margin-bottom:18px}
.hio-rain{position:fixed;top:-50px;z-index:101;pointer-events:none;
  animation:rainFall 2.8s linear forwards}
@keyframes rainFall{
  0%{transform:translateY(0) rotate(0);opacity:1}
  100%{transform:translateY(112vh) rotate(420deg);opacity:.85}
}

/* ---------- 팀 (동호회/단체전) ---------- */
.team-empty{background:var(--bg);border:1px dashed var(--line);border-radius:10px;
  padding:12px;text-align:center;color:var(--ink-2);font-size:12.5px;line-height:1.6;margin-bottom:6px}
.team-form{display:flex;flex-direction:column;gap:6px;margin:4px 0 14px}
.team-form-row{display:flex;gap:6px}
.team-form-row input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:9px;
  padding:9px 11px;font-size:13px;background:var(--bg)}
.team-form-row input:focus{outline:none;border-color:var(--green-600);background:#fff}
.code-input-sm{letter-spacing:2px;text-transform:uppercase}
.team-card{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;overflow:hidden}
.team-head{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;cursor:pointer}
.team-head b{font-size:14px;display:block}
.team-head small{color:var(--ink-2);font-size:11.5px;display:block;margin-top:2px}
.team-code{background:var(--green-50);color:var(--green-700);border:1px dashed var(--green-600);
  border-radius:8px;padding:4px 9px;font-size:13px;font-weight:700;letter-spacing:2px}
.team-detail{padding:0 12px 11px;border-top:1px solid var(--line);padding-top:10px}
.team-rank .lb-row{background:var(--bg)}
.team-leave{margin-top:8px}
.team-select{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;
  font-size:14px;background:var(--bg);margin-bottom:10px}
.team-select:focus{outline:none;border-color:var(--green-600);background:#fff}

/* ---------- KGA(WHS) 핸디캡 배지 ---------- */
.hio-badge{display:inline-block;background:var(--green-700);color:#fff;border-radius:20px;
  padding:3px 12px;font-size:13px;font-weight:700;margin-top:5px}
.handi-note{display:block;color:var(--ink-2);font-size:11.5px;margin-top:3px}

/* ---------- 멤버십 ---------- */
.membership-banner{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
  border:1.5px solid var(--line);background:var(--bg);border-radius:12px;
  padding:11px 13px;font-size:13px;cursor:pointer;margin-bottom:14px;text-align:left;color:var(--ink);
}
.membership-banner small{color:var(--green-700);font-weight:500;white-space:nowrap}
.membership-banner.member{border-color:var(--green-600);background:var(--green-50)}
.membership-banner.pending{border-color:#f3d98b;background:#fdf6e3}
.member-card{background:var(--bg);border:1px solid var(--line);border-radius:14px;
  padding:16px;text-align:center;margin-bottom:14px}
.member-card b{font-size:16px;display:block;margin-bottom:4px}
.member-card small{color:var(--ink-2);display:block;margin-bottom:10px}
.member-card.member{border-color:var(--green-600);background:var(--green-50)}
.member-card.pending{border-color:#f3d98b;background:#fdf6e3}
.member-crown{font-size:34px;margin-bottom:4px}
.benefit-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.benefit-item{display:flex;align-items:flex-start;gap:10px;background:var(--bg);
  border:1px solid var(--line);border-radius:11px;padding:10px 12px}
.benefit-item span{font-size:20px;line-height:1.2}
.benefit-item b{font-size:13.5px;display:block}
.benefit-item small{color:var(--ink-2);font-size:11.5px;display:block;margin-top:1px}
.plan-grid{display:flex;gap:10px;margin-bottom:14px}
.plan-card{flex:1;position:relative;background:#fff;border:1.5px solid var(--line);
  border-radius:14px;padding:16px 12px;text-align:center}
.plan-card.best{border-color:var(--green-600);background:var(--green-50)}
.plan-card b{font-size:13.5px;display:block;margin-bottom:8px}
.plan-price{font-size:21px;font-weight:700;color:var(--green-700);margin-bottom:12px}
.plan-price small{font-size:12px;color:var(--ink-2);font-weight:400}
.plan-tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);
  background:#e8b93c;color:#fff;border-radius:12px;padding:2px 10px;font-size:10.5px;font-weight:700;white-space:nowrap}
.plan-btn{width:100%;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);
  border-radius:9px;padding:9px 0;font-size:13px;font-weight:500;cursor:pointer}
.plan-btn.primary{background:var(--green-700);color:#fff;border-color:var(--green-700)}
.plan-btn:disabled{opacity:.55;cursor:default}
.payment-note{background:#fdf6e3;border:1px solid #f3d98b;border-radius:11px;
  padding:11px 13px;font-size:12.5px;line-height:1.65;color:#8a6d1a}
.payment-note small{opacity:.85}

/* ---------- 플레이어 칩 (GolfLive 방식 추가) ---------- */
.player-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px;min-height:34px}
.pchip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line);
  border-radius:20px;padding:6px 13px;font-size:13.5px}
.pchip.me{background:var(--green-50);border-color:var(--green-600);color:var(--green-700);font-weight:500}
.pchip-x{background:none;border:none;color:var(--ink-2);font-size:11px;cursor:pointer;padding:0 0 0 2px}
.friend-row{width:100%;display:flex;align-items:center;gap:10px;background:var(--bg);
  border:1.5px solid var(--line);border-radius:11px;padding:10px 12px;margin-bottom:6px;cursor:pointer;text-align:left}
.friend-row:active{background:var(--green-50);border-color:var(--green-600)}
.friend-row b{font-size:14px}
.friend-row small{color:var(--ink-2);font-size:11.5px;margin-left:auto}
.f-emoji{font-size:18px}
.sheet-empty{background:var(--bg);border:1px dashed var(--line);border-radius:11px;
  padding:16px 12px;text-align:center;color:var(--ink-2);font-size:12.5px;line-height:1.7}

/* ---------- 바텀시트 ---------- */
.sheet-overlay{position:fixed;inset:0;background:rgba(15,25,15,.45);z-index:90;
  display:flex;align-items:flex-end;justify-content:center}
.sheet-overlay.hidden{display:none}
.sheet{width:100%;max-width:420px;background:#fff;border-radius:18px 18px 0 0;
  padding:14px 16px calc(16px + env(safe-area-inset-bottom));max-height:80vh;overflow-y:auto;
  animation:sheetUp .25s ease}
.sheet.center{max-width:320px;border-radius:18px;text-align:center;margin-bottom:auto;
  animation:hioPop .35s cubic-bezier(.2,1.4,.4,1)}
@keyframes sheetUp{from{transform:translateY(60%);opacity:.4}to{transform:translateY(0);opacity:1}}
.sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 12px}
.sheet h3{font-size:16px;margin-bottom:4px}
.sheet-sub{font-size:12.5px;color:var(--ink-2);margin-bottom:12px}
.sheet-direct{display:flex;gap:6px;margin:10px 0 8px}
.sheet-direct input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:9px;
  padding:9px 11px;font-size:13.5px;background:var(--bg)}
.sheet-direct input:focus{outline:none;border-color:var(--green-600);background:#fff}
.sheet-invite{background:#fdf6e3;border:1px solid #f3d98b;border-radius:10px;
  padding:9px 11px;font-size:12px;line-height:1.6;color:#8a6d1a;margin-bottom:10px}

/* ---------- 초대 배너 버튼 ---------- */
.invite-banner{display:flex;flex-direction:column;gap:10px;background:#fff;
  border:1px solid var(--line);border-radius:14px;padding:12px 13px;
  box-shadow:0 2px 12px rgba(12,58,36,.07)}
.invite-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.invite-code{font-size:11.5px;color:var(--ink-2);letter-spacing:.5px}
.invite-head .code-chip{background:#0C3A24;color:#fff;border-radius:9px;padding:4px 11px;
  font-weight:800;letter-spacing:3.5px;font-size:14.5px;font-family:ui-monospace,monospace}
.invite-lock{font-size:11px;color:var(--ink-2);background:var(--bg);
  border:1px solid var(--line);border-radius:8px;padding:3.5px 8px}
.invite-btns{display:flex;gap:8px}
.invite-card{flex:1;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;
  background:linear-gradient(180deg,#fff,#F5FBF7);border:1.5px solid #cfe5d6;border-radius:13px;
  padding:10px 12px;box-shadow:0 1px 5px rgba(12,58,36,.06);
  transition:transform .08s ease,box-shadow .08s ease}
.invite-card:active{transform:scale(.97);box-shadow:none;background:#EFF7F1}
.invite-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;
  justify-content:center;flex-shrink:0}
.ic-qr{background:#0C3A24;color:#fff}
.ic-kk{background:#FEE500;color:#3A1D1D;font-size:19px}
.invite-tt{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.invite-tt b{font-size:13.5px;color:var(--ink-1,#1b2b22);font-weight:700}
.invite-tt small{font-size:10.5px;color:var(--ink-2)}
/* 스코어카드 저장/공유 버튼 (하단 시트) — 기존 스타일 유지 */
.invite-btn{flex:1;background:#fff;border:1.5px solid #e8c98a;border-radius:9px;
  padding:8px 0;font-size:12.5px;font-weight:500;color:#8a6d1a;cursor:pointer}
.invite-btn:active{background:#fdf3d8}

/* ---------- 프로필: 내가 플레이한 코스 지도 ---------- */
.course-map-card{background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:12px 13px;box-shadow:0 2px 12px rgba(12,58,36,.06);overflow:hidden}
.map-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.map-head b{font-size:14px;color:var(--ink-1,#1b2b22)}
.map-head small{font-size:11px;color:var(--ink-2)}
.korea-svg{display:block;width:100%;height:auto;border-radius:10px;background:linear-gradient(180deg,#F7FBF8,#EFF6F1)}
.map-pin text{font-size:8.5px;fill:#0C3A24;font-weight:700;paint-order:stroke;stroke:rgba(255,255,255,.85);stroke-width:2.5px}
.map-unmatched{margin-top:8px;font-size:11px;color:var(--ink-2);line-height:1.5}
.map-empty{padding:26px 12px;text-align:center;font-size:12.5px;color:var(--ink-2)}
.qr-code-line{font-size:14px;margin:10px 0 4px}
.qr-code-line b{letter-spacing:3px;font-size:17px;color:var(--green-700)}
#qr-img{border:1px solid var(--line);border-radius:12px;background:#fff}

/* ---------- 스코어 입력 패드 (GolfLive 대형 키패드) ---------- */
.pad-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.pad-title{text-align:center;flex:1}
.pad-title b{font-size:17px;display:block}
.pad-title small{color:var(--ink-2);font-size:12.5px}
.pad-nav{background:var(--green-50);border:1px solid var(--green-100);border-radius:9px;
  padding:8px 10px;font-size:12.5px;color:var(--green-700);font-weight:600}
.pad-nav:disabled{opacity:.35}
.pad-section-label{font-size:12.5px;font-weight:700;color:var(--ink-2);margin:10px 0 6px}
.pad-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.pad-grid button{
  aspect-ratio:1/0.82;border-radius:12px;background:var(--bg);border:1.5px solid var(--line);
  font-size:20px;font-weight:800;color:var(--ink);transition:transform .08s;
}
.pad-grid button:active{transform:scale(.93)}
.pad-grid button.on{background:var(--green-600);border-color:var(--green-600);color:#fff}
.pad-grid.pad-putts button{font-size:16px;font-weight:700}
.pad-footer{display:flex;gap:8px;margin-top:14px}
.pad-footer .primary-btn{flex:1}

/* ---------- 스코어카드 프로판 ---------- */
.scorecard-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.scorecard{border-collapse:collapse;min-width:100%;background:#fff;font-size:12.5px}
.scorecard th,.scorecard td{border:1px solid var(--line);padding:4px 3px;text-align:center;min-width:30px}
.scorecard thead th{background:var(--green-900);color:#fff;font-size:11px;font-weight:600}
.scorecard .row-par td{background:var(--green-50);font-weight:700;color:var(--green-900)}
.scorecard .row-si td{background:#fbf7ee;color:#8a6d1a;font-size:11px}
.scorecard .row-label{font-weight:700;text-align:left;padding-left:8px;white-space:nowrap;font-size:12px}
.scorecard .sub-tot{background:#eef4f0;font-weight:800}
.scorecard .pname{font-weight:700;text-align:left;padding-left:8px;white-space:nowrap;max-width:86px;overflow:hidden;text-overflow:ellipsis}
.scorecard td.sc-cell{cursor:pointer;position:relative;font-weight:700;font-size:13px}
.scorecard td.sc-cell:active{background:var(--green-100)}
.scorecard td.sc-cell.ro{cursor:default}
.sc-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:auto}
.sc-mark.birdie{border:1.8px solid var(--red);border-radius:50%;color:var(--red)}
.sc-mark.eagle{border:1.8px solid var(--red);border-radius:50%;color:var(--red);box-shadow:inset 0 0 0 2.5px #fff,inset 0 0 0 4px var(--red)}
.sc-mark.bogey{border:1.6px solid var(--ink-2);color:var(--ink-2)}
.sc-mark.dbl{border:1.6px solid var(--ink-2);color:var(--ink-2);box-shadow:inset 0 0 0 2.5px #fff,inset 0 0 0 3.6px var(--ink-2)}
.sc-putt{display:block;font-size:9px;color:var(--ink-2);font-weight:500;line-height:1;margin-top:1px}
.sc-nine-title{font-size:12px;font-weight:800;color:var(--green-700);margin:12px 0 5px}

/* ---------- 리더보드 gross/net 토글 ---------- */
.lb-toggle{display:flex;gap:6px;margin-bottom:8px}
.lb-toggle button{flex:1;padding:7px 0;border-radius:9px;border:1.5px solid var(--line);
  background:#fff;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.lb-toggle button.active{background:var(--green-700);border-color:var(--green-700);color:#fff}

/* ---------- 스코어 액션 ---------- */
.score-actions{display:flex;gap:8px;margin:12px 0 0}
.score-actions .ghost-btn{flex:1}

/* ---------- 통계 그리드 ---------- */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.stat-box{background:var(--card);border-radius:12px;box-shadow:var(--shadow);
  padding:12px 8px;text-align:center}
.stat-box b{font-size:18px;display:block;color:var(--green-700)}
.stat-box small{font-size:11px;color:var(--ink-2)}
.stat-box.wide{grid-column:span 3;display:flex;justify-content:space-around;padding:12px 4px}
.stat-box.wide .mini{text-align:center}
.stat-box.wide .mini b{font-size:15px}
.stats-empty{grid-column:span 3;text-align:center;color:var(--ink-2);font-size:12.5px;padding:14px 0}

/* ---------- 선수 관리 시트 ---------- */
.manage-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}
.manage-row .m-name{flex:1;font-weight:600;font-size:14px}
.manage-row .m-name small{display:block;font-weight:400;color:var(--ink-2);font-size:11px}
.manage-row input[type=number]{width:64px;border:1.5px solid var(--line);border-radius:8px;
  padding:6px 8px;font-size:13px;text-align:center}
.manage-row .m-del{color:var(--red);font-size:12px;padding:6px 8px;border-radius:8px}
.manage-row .m-del:active{background:#fdeeee}

/* ---------- 성적표 카드 ---------- */
.card-preview{width:100%;border-radius:12px;border:1px solid var(--line);margin-bottom:10px;background:#fff}

/* ---------- 패드: 선수 탭 + 파 기준 상대 입력 ---------- */
.pad-players{display:flex;gap:6px;margin-bottom:10px}
.pad-players button{
  flex:1;padding:7px 2px;border-radius:10px;border:1.5px solid var(--line);
  background:#fff;font-size:12.5px;font-weight:700;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pad-players button small{display:block;font-weight:500;font-size:10.5px}
.pad-players button.active{background:var(--green-700);border-color:var(--green-700);color:#fff}
.pad-grid.pad-rel{grid-template-columns:repeat(4,1fr)}
.pad-grid.pad-rel button{aspect-ratio:auto;padding:8px 0}
.pad-grid.pad-rel button b{display:block;font-size:18px;line-height:1.25}
.pad-grid.pad-rel button small{display:block;font-size:10.5px;font-weight:500;color:var(--ink-2)}
.pad-grid.pad-rel button.on small{color:#fff}

/* ---------- 코스 퀵픽 (즐겨찾기/최근) + 주변 ---------- */
.course-quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.course-quick:empty{display:none}
.cq-chip{background:#fff;border:1.5px solid var(--line);border-radius:999px;
  padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer}
.cq-chip:active{background:var(--green-50)}
.cq-chip.fav{border-color:#f3d98b;background:#fdf6e3;color:#8a6d1a}
.cq-chip.recent{border-color:#cfe0f5;background:#eef4fc;color:#2b5a9e}
.nearby-btn{width:100%;margin-top:6px}
.fav-toggle{font-size:16px;padding:2px 4px}
.money-input-row{display:flex;align-items:center;gap:8px}
.money-input-row input{flex:1;border:1.5px solid var(--line);border-radius:10px;padding:11px 12px}
.money-unit{font-size:12.5px;color:var(--ink-2);white-space:nowrap}

/* ---------- 패드 상세기록 ---------- */
.pad-grid.pad-fw{grid-template-columns:repeat(3,1fr)}
.pad-grid.pad-etc{grid-template-columns:repeat(4,1fr)}
.pad-grid.pad-fw button,.pad-grid.pad-etc button{font-size:13px;font-weight:700;aspect-ratio:auto;padding:10px 0}

/* ---------- 라운드 아이템 액션 ---------- */
.ri-actions{display:flex;gap:4px;margin-top:4px;justify-content:flex-end}
.ri-actions button{font-size:11.5px;color:var(--ink-2);padding:3px 8px;border-radius:7px;border:1px solid var(--line);background:#fff}
.ri-actions .del{color:var(--red)}

/* ---------- 코스별 전적 ---------- */
.course-stat-row{display:flex;align-items:center;gap:8px;background:var(--card);border-radius:12px;
  box-shadow:var(--shadow);padding:11px 13px;margin-bottom:7px}
.course-stat-row b{font-size:14px}
.course-stat-row .cs-info{flex:1}
.course-stat-row .cs-info small{display:block;color:var(--ink-2);font-size:11.5px}
.course-stat-row .cs-best{font-weight:800;color:var(--green-700);font-size:15px}

/* ---------- 트렌드 차트 ---------- */
.trend-chart{width:100%;height:auto;display:block;background:var(--card);border-radius:12px;box-shadow:var(--shadow)}

/* ---------- 결제 수단 ---------- */
.pay-methods{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}
.pay-method{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);
  border-radius:10px;padding:10px 12px;font-size:13px;font-weight:600}
.pay-method .pm-badge{margin-left:auto;font-size:10px;color:var(--amber);font-weight:700}

/* ---------- PK 정산 ---------- */
.pk-settle{margin-top:8px;background:#fdf6e3;border:1px solid #f3d98b;border-radius:9px;
  padding:8px 11px;font-size:12.5px;color:#8a6d1a;font-weight:600}

/* ---------- Legal / 사업자 정보 ---------- */
.legal-links{
  margin-top:22px;padding-top:16px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
}
.legal-links a{color:var(--ink-2);font-size:12px;font-weight:600;text-decoration:none}
.legal-links a:hover{color:var(--green-700)}
.legal-links i{font-style:normal;color:#c8d3ce;font-size:11px}
.biz-foot{
  margin-top:10px;text-align:center;color:#9aa8a2;font-size:11px;line-height:1.7;
}
.fill{
  background:#fff7e0;border-bottom:1px dashed var(--amber);padding:0 4px;border-radius:3px;
  color:#8a6100;font-weight:700;
}

/* ---------- 친구 실시간 라운드 (홈) ---------- */
.friend-live{margin:18px 0 4px}
.friend-live .section-title{margin-bottom:8px}
#friend-live-list{display:flex;flex-direction:column;gap:8px}
.fl-card{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  background:var(--card);border:1px solid #f2d3d3;border-radius:14px;
  padding:12px 14px;box-shadow:var(--shadow);cursor:pointer;transition:.15s;
}
.fl-card:active{transform:scale(.98)}
.fl-dot{
  width:10px;height:10px;border-radius:50%;background:#e5484d;flex:none;
  box-shadow:0 0 0 0 rgba(229,72,77,.5);animation:flPulse 1.6s ease-out infinite;
}
@keyframes flPulse{
  0%{box-shadow:0 0 0 0 rgba(229,72,77,.45)}
  70%{box-shadow:0 0 0 9px rgba(229,72,77,0)}
  100%{box-shadow:0 0 0 0 rgba(229,72,77,0)}
}
.fl-info{flex:1;min-width:0}
.fl-info b{display:block;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl-info small{display:block;font-size:12px;color:var(--ink-2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl-go{flex:none;font-size:12.5px;font-weight:800;color:#c23b40;background:#fdeeee;padding:6px 11px;border-radius:999px}
.friend-live-note{margin-top:8px;font-size:11px;color:#a7b4ae;text-align:center}

/* ---------- 참여 뷰 안내 ---------- */
.join-tip{margin-top:14px;font-size:12px;color:var(--ink-2);line-height:1.6}
.join-tip b{color:var(--green-700)}

/* ---------- 멤버십 충전 (무통장 입금) ---------- */
.bank-card{
  background:var(--green-50);border:1px solid #d6e9df;border-radius:12px;
  padding:14px 16px;margin:14px 0;
}
.bank-row{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:14px}
.bank-row small{width:64px;flex:none;color:var(--ink-2);font-size:12px}
.bank-row b{color:var(--green-900);font-weight:700}
.bank-account{letter-spacing:.5px;font-size:15px}
.bank-amount{border-top:1px dashed #c8ddd3;margin-top:6px;padding-top:10px}
.bank-amount b{color:#c23b40;font-size:17px}
.copy-btn{
  margin-left:auto;flex:none;font-size:11.5px;font-weight:700;color:var(--green-700);
  background:#fff;border:1px solid #cfe4d9;border-radius:8px;padding:4px 10px;cursor:pointer;
}
.pay-label{display:block;font-size:13px;font-weight:700;color:var(--ink);margin:4px 0 6px}
#f-depositor{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:11px;
  font-size:15px;background:#fbfdfc;
}
#f-depositor:focus{outline:none;border-color:var(--green-600);background:#fff}
.pay-note{
  margin:12px 0 16px;padding:10px 12px;border-left:3px solid var(--amber);
  background:#fffdf5;border-radius:0 8px 8px 0;font-size:12.5px;color:#6b5a2a;line-height:1.7;
}

/* ---------- 알림 · 고객센터 (inbox) ---------- */
.bell{position:relative}
.bell-dot{
  position:absolute;top:5px;right:6px;width:8px;height:8px;border-radius:50%;
  background:#e5484d;border:1.5px solid #fff;display:block;
}
#seg-inbox{margin-bottom:14px}
#seg-inbox button{flex:1}

.notice-card{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:14px 16px;margin-bottom:10px;box-shadow:0 2px 10px rgba(10,61,44,.04);
}
.notice-card.personal{border-color:#f3e0b8;background:#fffdf7}
.notice-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}
.notice-head b{font-size:14px;color:var(--green-900);letter-spacing:-.2px}
.notice-head small{flex:none;font-size:11px;color:#a7b4ae}
.notice-card p{font-size:13.5px;color:#3a4a44;line-height:1.72}

.inquiry-card{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:14px 16px;margin-bottom:10px;
}
.inq-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.inq-head small{font-size:11px;color:#a7b4ae}
.inq-badge{
  font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;
  background:#fdf6e3;color:#a2790a;
}
.inq-badge.done{background:var(--green-100);color:var(--green-700)}
.inq-body{font-size:13.5px;color:#3a4a44;line-height:1.7;white-space:pre-wrap}
.inq-reply{
  margin-top:10px;padding:11px 13px;border-radius:10px;
  background:var(--green-50);border-left:3px solid var(--green-600);
}
.inq-reply b{display:block;font-size:12px;color:var(--green-700);margin-bottom:4px}
.inq-reply p{font-size:13px;color:#33443d;line-height:1.7;margin:0;white-space:pre-wrap}

#f-inquiry{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:11px;
  font:inherit;font-size:14px;background:#fbfdfc;resize:vertical;min-height:96px;
}
#f-inquiry:focus{outline:none;border-color:var(--green-600);background:#fff}

.kakao-channel{
  display:flex;align-items:center;gap:12px;margin-top:18px;
  background:#FEE500;border-radius:14px;padding:14px 16px;text-decoration:none;
  box-shadow:0 3px 12px rgba(254,229,0,.28);
}
.kc-icon{font-size:20px}
.kc-txt{flex:1;display:flex;flex-direction:column}
.kc-txt b{font-size:14px;color:#3c1e1e;letter-spacing:-.2px}
.kc-txt small{font-size:11.5px;color:#7a5c1e}
.kc-go{font-size:18px;color:#7a5c1e;font-weight:700}

/* ---------- 수신함 탭 '새 답변' 점 ---------- */
.seg button{position:relative}
.seg button.has-new::after{
  content:'';position:absolute;top:7px;right:9px;width:7px;height:7px;
  border-radius:50%;background:#e5484d;
}

/* ---------- 전국 라이브 · 멤버십 게이트 ---------- */
.crown-tag{
  display:inline-block;font-size:11px;font-weight:800;color:#8a6100;
  background:#fbeec2;border-radius:999px;padding:2px 9px;margin-left:6px;vertical-align:2px;
}
.fl-locked{border-style:dashed;border-color:#e8d9a8;background:#fffdf5}
.fl-lock{
  width:26px;height:26px;border-radius:50%;background:#fbeec2;box-shadow:none;animation:none;
  display:flex;align-items:center;justify-content:center;font-size:13px;
}
.fl-go-gold{color:#8a6100;background:#fbeec2}
.gate-crown{font-size:44px;line-height:1;margin-bottom:6px}
.gate-benefits{
  list-style:none;margin:14px 0 18px;padding:14px 18px;text-align:left;
  background:#fbf8ee;border:1px solid #f0e3b6;border-radius:12px;
}
.gate-benefits li{font-size:14px;color:#6b5a2a;padding:5px 0;font-weight:600}

/* ---------- 홈 3분할 섹션 · 빈 상태 ---------- */
.home-section{margin-top:22px}
.fl-empty{
  margin:4px 0 2px;padding:16px;text-align:center;font-size:13px;color:#93a59c;
  background:#f6faf8;border:1px dashed #d9e6df;border-radius:12px;line-height:1.7;
}
.fl-empty small{font-size:11.5px;color:#a7b4ae}
