/* 회원 화면: 대회 목록, 대회 상세, 내 경기, 내 정보. design/boards 의 4a·4b·4c·4d 기준. */

/* ── 홈 히어로 ─────────────────────────────── */
.home-head h1{font-size:30px;line-height:1.2;letter-spacing:-1px}
.home-head p{margin-top:var(--sp-2);color:var(--body);font-size:var(--fs-body)}

.metrics{display:flex;gap:8px;margin:var(--sp-6) 0}
.metrics div{
  flex:1;padding:var(--sp-5) var(--sp-4);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-box);
}
.metrics b{display:block;font-size:30px;line-height:1;color:var(--mint)}
.metrics span{display:block;margin-top:6px;font-weight:700;font-size:var(--fs-sm);color:var(--body)}
.metrics .is-live b{color:var(--live)}
.metrics .is-mine{background:var(--mint);border-color:var(--mint)}
.metrics .is-mine b,.metrics .is-mine span{color:#fff}

/* ── 진행 중 대회 ──────────────────────────── */
.live-card{
  position:relative;overflow:hidden;
  margin-bottom:22px;padding:var(--sp-6);
  background:var(--mint-dark);border-radius:20px;color:#fff;
}
.live-card::before{
  content:'';position:absolute;left:18px;right:18px;top:50%;height:1px;background:#1d6a58;
}
.live-card>*{position:relative}
.live-label{
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 11px;border-radius:var(--r-pill);
  background:#fff;color:var(--live);font-weight:700;font-size:var(--fs-cap);line-height:1;
}
.live-label::before{content:'';width:7px;height:7px;border-radius:50%;background:#e5484d;animation:pmPulse 1.6s ease-in-out infinite}
@keyframes pmPulse{0%,100%{opacity:1}50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.live-label::before{animation:none}}
.live-card h2{margin:var(--sp-4) 0 4px;font-size:22px;line-height:1.3}
.live-card p{color:#a9d6c8;font-size:var(--fs-sm)}
.live-card footer{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-5)}
.live-card .btn{flex:1;background:#fff;color:var(--mint-dark)}
.live-card .live-progress{flex:none;font-weight:700;font-size:var(--fs-cap);color:#a9d6c8}

/* ── 대회 카드 ─────────────────────────────── */
.list-rule{width:44px;height:4px;border-radius:2px;background:var(--mint);margin:0 0 var(--sp-5)}
.t-list{display:flex;flex-direction:column;gap:var(--sp-4)}
.t-card{
  padding:0;overflow:hidden;
  border-color:var(--line);
  text-align:left;width:100%;
  display:block;
}
.t-card.my-tournament{border-color:var(--line-strong)}
.t-strip{
  display:flex;align-items:center;gap:var(--sp-3);
  padding:11px 15px;
  background:#f7faf8;border-bottom:1px solid var(--soft);
}
.my-tournament .t-strip{background:var(--mint-pale);border-bottom-color:transparent}
.t-strip .my-chip{font-weight:700;font-size:var(--fs-cap);color:#0d4b3c}
.t-strip .t-dday{margin-left:auto;font-weight:700;font-size:var(--fs-cap);color:var(--muted)}
.my-tournament .t-strip .t-dday{color:#0d4b3c}
.t-body{display:flex;gap:var(--sp-5);padding:15px}
.date-tile{
  width:58px;flex:none;text-align:center;
  border-right:1px solid #e6ebe8;padding-right:var(--sp-4);
}
.date-tile b{display:block;font-size:26px;line-height:1}
.date-tile small{display:block;margin-top:3px;font-weight:700;font-size:var(--fs-sm);color:var(--body)}
.date-tile i{display:block;margin-top:8px;font-style:normal;font-weight:700;font-size:var(--fs-cap);color:var(--mint)}
.t-copy{flex:1;min-width:0}
.t-copy h3{margin-bottom:var(--sp-1);font-size:var(--fs-h1);line-height:1.3;letter-spacing:-.4px}
.t-copy p{color:var(--body);font-size:var(--fs-body)}
.t-meter{display:flex;align-items:center;gap:8px;margin-top:11px}
.t-meter .progress{flex:1}
.t-meter b{flex:none;font-size:var(--fs-body)}
.t-card.is-done{opacity:.86}
.t-card.is-done .t-strip{background:var(--soft)}

.progress{height:8px;border-radius:var(--r-ctl);background:var(--soft);overflow:hidden}
.progress span{display:block;height:100%;background:var(--mint)}

/* ── 대회 상세 ─────────────────────────────── */
.event-hero{
  margin:calc(var(--sp-7) * -1) calc(var(--gutter) * -1) 0;
  padding:var(--sp-6) var(--gutter) var(--sp-7);
  background:var(--mint-dark);color:#fff;
}
.back-button{
  border:0;background:none;padding:0;margin-bottom:var(--sp-5);
  color:#a9d6c8;font-weight:700;font-size:var(--fs-sm);
}
.hero-top{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.hero-top .pill{background:rgba(255,255,255,.16);color:#fff}
.hero-top .pill.green{background:#fff;color:var(--mint-dark)}
.hero-top>span{font-weight:700;font-size:var(--fs-cap);color:#a9d6c8}
.event-hero h1{font-size:26px;line-height:1.25;letter-spacing:-.6px}
.event-hero>p{margin-top:var(--sp-2);color:#a9d6c8;font-size:var(--fs-sm)}
.event-hero footer{
  display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);
  margin-top:var(--sp-6);padding-top:var(--sp-5);
  border-top:1px solid #1d6a58;
}
.event-hero footer span{font-weight:700;font-size:var(--fs-cap);color:#a9d6c8}
.event-hero footer b{font-size:28px;line-height:1}
.event-hero footer b small{font-size:var(--fs-sm);color:#a9d6c8}

/* 알약 탭 */
.detail-tabs{
  display:flex;gap:6px;overflow-x:auto;
  margin:var(--sp-5) calc(var(--gutter) * -1) var(--sp-6);
  padding:0 var(--gutter);
  scrollbar-width:none;
}
.detail-tabs::-webkit-scrollbar{display:none}
.detail-tabs button{
  flex:1;min-width:72px;height:44px;
  border:1px solid var(--line);border-radius:var(--r-pill);
  background:var(--paper);color:var(--deep);font-weight:700;font-size:var(--fs-body);
}
.detail-tabs button.active{background:var(--ink);border-color:var(--ink);color:#fff}

.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-box);overflow:hidden}
.info-grid div{background:var(--paper);padding:var(--sp-5)}
.info-grid div:last-child{grid-column:1/-1}
.info-grid span{display:block;color:var(--muted);font-size:var(--fs-xs);font-weight:700}
.info-grid b{display:block;margin-top:3px;font-size:var(--fs-body)}

.sub{margin-top:var(--sp-5);padding:var(--sp-5);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card)}
.sub .section-head{margin:0 0 var(--sp-4)}
.counter{font-size:var(--fs-h2)}
.sub .helper{margin-top:var(--sp-3)}

.action-box{
  display:flex;align-items:center;gap:var(--sp-4);
  margin-top:var(--sp-5);padding:var(--sp-5);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);
}
.action-box>div{flex:1;min-width:0}
.action-box b{display:block;font-size:var(--fs-body)}
.action-box p{margin-top:3px;color:var(--muted);font-size:var(--fs-cap)}

/* 하단 고정 액션 바 */
.action-bar{
  position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(var(--nav-h) + var(--safe-bottom));
  width:min(var(--shell),100%);
  z-index:var(--z-action);
  display:flex;align-items:center;gap:var(--sp-4);
  padding:var(--sp-4) var(--gutter);
  background:var(--paper);border-top:1px solid var(--line);
}
.action-bar .action-note{flex:1;min-width:0;font-weight:700;font-size:var(--fs-cap);color:var(--muted)}
.action-bar .btn{flex:none;min-width:132px}
.action-bar .btn.full{flex:1;min-width:0}

/* 진행 방식 안내 */
.guide{display:grid;gap:var(--sp-4)}
.guide h2{font-size:var(--fs-h1);margin-bottom:var(--sp-1)}
.guide>div{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-1) var(--sp-4);padding:var(--sp-5);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-box)}
.guide>div span{grid-row:1/3;font-weight:700;color:var(--mint);font-size:var(--fs-sm)}
.guide>div b{font-size:var(--fs-body)}
.guide>div p{color:var(--muted);font-size:var(--fs-cap)}

/* ── 내 경기 ───────────────────────────────── */
.next-box{
  padding:var(--sp-6);border-radius:20px;
  background:var(--mint-dark);color:#fff;margin-bottom:var(--sp-5);
}
.next-box .my-chip{display:inline-block;padding:5px 10px;border-radius:var(--r-pill);background:rgba(255,255,255,.16);font-weight:700;font-size:var(--fs-xs)}
.next-box h2{margin:var(--sp-4) 0 4px;font-size:21px}
.next-box p{color:#a9d6c8;font-size:var(--fs-sm)}
.next-box .btn{margin-top:var(--sp-5);background:#fff;color:var(--mint-dark)}

.my-card{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-4)}
.my-card h2{font-size:var(--fs-h1)}
.my-card p{color:var(--body);font-size:var(--fs-sm)}
.my-card-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-2)}
.my-card-actions button{border:0;background:none;padding:0;color:var(--mint);font-weight:700;font-size:var(--fs-sm)}
.my-card-actions .cancel-application{color:var(--danger)}

.member-alerts,.history-panel,.personal-matches,.partner-panel{
  margin-top:var(--sp-6);padding:var(--sp-5);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);
}
.member-alerts header,.history-panel header,.personal-matches header,.partner-panel header{
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4);
}
.member-alerts h2,.history-panel h2,.personal-matches h2,.partner-panel h2{font-size:var(--fs-h2)}
.notification-count,.history-count{padding:4px 9px;border-radius:var(--r-pill);background:var(--mint-pale);color:var(--mint-dark);font-weight:700;font-size:var(--fs-xs)}
.notification-row{
  display:flex;gap:var(--sp-4);width:100%;text-align:left;
  padding:var(--sp-4) 0;border:0;border-top:1px solid var(--soft);background:none;
}
.notification-row:first-of-type{border-top:0}
.notification-row b{display:block;font-size:var(--fs-sm)}
.notification-row p{color:var(--muted);font-size:var(--fs-cap)}
.notification-row small{color:var(--faint);font-size:var(--fs-xs)}
.notification-row.unread b::after{content:'';display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:50%;background:var(--mint);vertical-align:middle}

.personal-match,.history-card{
  display:flex;align-items:center;gap:var(--sp-4);width:100%;text-align:left;
  padding:var(--sp-4) 0;border:0;border-top:1px solid var(--soft);background:none;
}
.personal-match:first-of-type,.history-card:first-of-type{border-top:0}
.history-card h3{font-size:var(--fs-body)}
.history-card p,.personal-match p{color:var(--muted);font-size:var(--fs-cap)}
.history-card aside{margin-left:auto;text-align:right}
.history-card aside b{display:block;font-size:var(--fs-h2)}
.history-card aside small{color:var(--muted);font-size:var(--fs-xs)}

/* ── 순위표 ───────────────────────────────── */
.league-view{margin-bottom:var(--sp-6)}
.stage-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.stage-header h2{font-size:var(--fs-h1)}
.stage-count{font-weight:700;font-size:var(--fs-cap);color:var(--muted)}
.stage-description{margin-bottom:var(--sp-4);color:var(--muted);font-size:var(--fs-cap)}
.stage-tabs{display:flex;gap:6px;margin-bottom:var(--sp-4)}
.stage-tabs button{padding:9px 15px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--paper);color:var(--body);font-weight:700;font-size:var(--fs-sm)}
.stage-tabs button.active{background:var(--mint);border-color:var(--mint);color:#fff}
.table-scroll{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card)}
.score-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.score-table th,.score-table td{padding:11px 10px;text-align:center;white-space:nowrap;border-top:1px solid var(--soft)}
.score-table thead th{border-top:0;color:var(--muted);font-size:var(--fs-xs);background:#f7faf8}
.score-table tbody th{text-align:left;display:flex;align-items:center;gap:7px;font-weight:700}
.rank-dot{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--soft);color:var(--ink-soft);font-size:var(--fs-xs)}
.score-table .my-row{background:var(--mint-pale)}
.score-table .my-row .rank-dot{background:var(--mint);color:#fff}
.score-table .mine-col{background:rgba(226,246,237,.5)}
.score-table em{font-style:normal;padding:2px 6px;border-radius:var(--r-pill);background:var(--mint);color:#fff;font-size:10px}
.score-table .self{color:var(--faint)}
.rank-pending{display:block;font-size:10px;font-weight:400;color:var(--muted);white-space:nowrap}

/* ── 토너먼트 ─────────────────────────────── */
.vertical-bracket{display:grid;gap:var(--sp-5)}
.tournament-flow{display:grid;gap:var(--sp-4)}
.round-column{display:grid;gap:var(--sp-3)}
.round-column>header{display:flex;align-items:center;gap:var(--sp-3)}
.round-column>header span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--mint-pale);color:var(--mint-dark);font-weight:700;font-size:var(--fs-xs)}
.round-column>header b{font-size:var(--fs-body)}
.round-column>header small{display:none}
.tourney-match{padding:var(--sp-4);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-box)}
.tourney-match header{display:flex;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2);color:var(--muted);font-size:var(--fs-xs);font-weight:700}
.tourney-match>div{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:var(--fs-sm)}
.tourney-match>div b{flex:1;min-width:0;font-weight:700}
.tourney-match>div strong{font-size:var(--fs-body)}
.tourney-match>div.me{color:var(--mint-dark)}
.tourney-match.has-me{border-color:var(--mint);background:var(--mint-pale)}
.tourney-match.is-live{border-color:var(--live)}
.flow-arrow{display:flex;align-items:center;gap:6px;justify-content:center;color:var(--faint);font-size:var(--fs-xs)}

/* ── 참가자 명단 ───────────────────────────── */
.roster-summary{margin-bottom:var(--sp-4);color:var(--body);font-size:var(--fs-sm);font-weight:700}
.roster-group{margin-bottom:var(--sp-5)}
.roster-group h3{margin-bottom:var(--sp-3);font-size:var(--fs-h2)}
.roster-card{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4);margin-bottom:8px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-box)}
.roster-card.waiting{background:var(--soft)}
.roster-card b{flex:1;min-width:0;font-size:var(--fs-body)}
.roster-card small{color:var(--muted);font-size:var(--fs-cap)}

/* ── 프로필 ───────────────────────────────── */
.profile-card{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card)}
.profile-card>b{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:50%;background:var(--mint-pale);color:var(--mint-dark);font-size:var(--fs-h2)}
.profile-card h2{margin-top:3px;font-size:var(--fs-h1)}
.profile-card p{color:var(--muted);font-size:var(--fs-cap)}
.profile-info{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:var(--sp-4) 0;background:var(--line);border:1px solid var(--line);border-radius:var(--r-box);overflow:hidden}
.profile-info div{background:var(--paper);padding:var(--sp-4)}
.profile-info span{display:block;color:var(--muted);font-size:var(--fs-xs);font-weight:700}
.profile-info b{display:block;margin-top:3px;font-size:var(--fs-body)}
.role-request-link{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:var(--sp-4);padding:var(--sp-5);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);font-weight:700;font-size:var(--fs-body)}

.login-intro{display:grid;justify-items:center;gap:var(--sp-2);padding:var(--sp-7) var(--sp-5);margin-bottom:var(--sp-5);background:var(--mint-pale);border-radius:var(--r-card);text-align:center}
.login-intro-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--mint);color:#fff;font-weight:700;font-size:var(--fs-h1)}
.login-intro h2{font-size:var(--fs-h1)}
.login-intro p{color:var(--body);font-size:var(--fs-sm)}
.social-login-list{display:grid;gap:8px}
.social-login{display:flex;align-items:center;gap:var(--sp-4);width:100%;padding:0 var(--sp-5);height:52px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--paper);font-weight:700;font-size:var(--fs-body)}
.social-login span:nth-child(2){flex:1;text-align:center}
.social-login i{font-style:normal;color:var(--faint)}
.login-logo svg{width:22px;height:22px;display:block}
.kakao-login{background:#fee500;border-color:#fee500}
.login-note{margin-top:var(--sp-4);text-align:center;color:var(--muted);font-size:var(--fs-cap)}

/* ── 순위 탭 (4d) ─────────────────────────── */
.group-tabs{display:flex;gap:8px;margin-bottom:var(--sp-5)}
.group-tabs button{flex:1;height:42px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper);color:var(--deep);font-weight:700;font-size:var(--fs-body)}
.group-tabs button.active{background:var(--mint);border-color:var(--mint);color:#fff}

.rank-table{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.rank-head,.rank-row{display:grid;grid-template-columns:44px 1fr 36px 36px 58px;align-items:center}
.rank-head{padding:var(--sp-4) var(--sp-5);background:var(--ink);color:#c7d3cd;font-weight:700;font-size:var(--fs-cap)}
.rank-head span:nth-child(3),.rank-head span:nth-child(4){text-align:center}
.rank-head span:last-child{text-align:right;white-space:nowrap}
.rank-row{padding:var(--sp-5);border-bottom:1px solid var(--soft);font-size:var(--fs-lead)}
.rank-row:last-child{border-bottom:0}
.rank-row.mine{background:var(--mint-pale);border-bottom-color:#d3e8de}
.rank-no{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-pill);background:var(--soft);color:var(--ink-soft);font-size:var(--fs-sm);line-height:1}
.rank-row.mine .rank-no{background:var(--mint);color:#fff}
.rank-name{min-width:0}
.rank-name b{display:block;font-size:var(--fs-h2);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-name small{display:inline-block;margin-top:2px;padding:2px 7px;border-radius:var(--r-pill);background:var(--mint);color:#fff;font-size:var(--fs-xs);font-weight:700}
.rank-name small.rank-pending{background:var(--soft);color:var(--muted)}
.rank-row span{text-align:center;color:var(--body)}
.rank-diff{text-align:right !important;font-weight:700;color:var(--ink) !important}

.pm-section{margin:22px 0 var(--sp-1);font-size:var(--fs-title);letter-spacing:-.5px}
.pm-match-list{display:flex;flex-direction:column;gap:var(--sp-3)}
.pm-match{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.pm-match header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:11px 15px;background:#f7faf8}
.pm-state{font-weight:700;font-size:var(--fs-cap);color:var(--body)}
.pm-when{font-weight:700;font-size:var(--fs-cap);color:var(--muted)}
.pm-match>div{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-5) 15px;border-top:1px solid var(--soft)}
.pm-match>div:first-of-type{border-top:0}
.pm-match>div b:first-child{font-size:var(--fs-h2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-score{font-size:20px;flex:none}
.pm-vs{color:var(--faint);font-size:var(--fs-sm);flex:none}
.pm-match.is-live{border-color:#f4c7c3}
.pm-match.is-live header{background:var(--danger-bg)}
.pm-match.is-live .pm-state{color:var(--danger);display:inline-flex;align-items:center;gap:7px}
.pm-match.is-live .pm-state::before{content:'';width:7px;height:7px;border-radius:50%;background:#e5484d;animation:pmPulse 1.6s ease-in-out infinite}
.pm-match.is-live .pm-when{color:#8a3c38}
.pm-match.has-me{border-color:var(--line-strong)}
.pm-match>div.me b{color:var(--mint-dark)}

/* ── 내 경기 (4c) ─────────────────────────── */
.next-box header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}
.next-countdown{padding:5px 10px;border-radius:var(--r-pill);background:#fff;color:var(--mint-dark);font-weight:700;font-size:var(--fs-xs)}
.next-when{display:flex;align-items:baseline;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-4)}
.next-when b{font-size:32px;line-height:1;letter-spacing:-1px}
.next-when span{font-weight:700;font-size:var(--fs-sm);color:#a9d6c8}
.next-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--sp-3);padding:var(--sp-5) 0;border-top:1px solid #1d6a58;border-bottom:1px solid #1d6a58}
.next-teams span{display:block;font-size:var(--fs-xs);font-weight:700;color:#a9d6c8}
.next-teams b{display:block;margin-top:3px;font-size:var(--fs-lead);line-height:1.3}
.next-teams>div:last-child{text-align:right}
.next-teams i{font-style:normal;font-weight:700;font-size:var(--fs-cap);color:#a9d6c8}
.next-meta{margin-top:var(--sp-4);color:#a9d6c8;font-size:var(--fs-cap);font-weight:700}

.record-panel{margin-top:var(--sp-5);padding:var(--sp-5);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card)}
.record-panel h2{font-size:var(--fs-h2);margin-bottom:var(--sp-4)}
.record-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);text-align:center}
.record-grid b{display:block;font-size:24px;line-height:1;color:var(--mint)}
.record-grid span{display:block;margin-top:5px;font-weight:700;font-size:var(--fs-xs);color:var(--muted)}

.my-list{display:flex;flex-direction:column;gap:var(--sp-3)}
.my-card header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-1)}
.my-card-date{font-weight:700;font-size:var(--fs-cap);color:var(--muted)}

.guide-fold{margin-top:var(--sp-5);padding:var(--sp-5);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card)}
.guide-fold>summary{cursor:pointer;font-weight:700;font-size:var(--fs-body);color:var(--mint)}
.guide-fold[open]>summary{margin-bottom:var(--sp-4)}
.guide-fold .guide>div{border:0;padding:var(--sp-3) 0;border-top:1px solid var(--soft);border-radius:0}
.guide-fold .guide>div:first-of-type{border-top:0}

.btn.withdraw{margin-top:var(--sp-3);background:none;color:var(--muted);font-weight:400;font-size:var(--fs-cap);text-decoration:underline;padding:var(--sp-3)}
.btn.withdraw:hover{color:var(--danger)}

/* ── 결선 토너먼트 (2c) ────────────────────── */
.elimination-view{display:block}
.round-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.round-head h2{font-size:20px;letter-spacing:-.4px}
.round-head span{font-size:var(--fs-sm);color:var(--body)}
.pm-slot-list{display:flex;flex-direction:column;gap:8px}
.pm-slot{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.pm-slot header{display:flex;justify-content:space-between;gap:var(--sp-3);padding:9px 13px;background:#f7faf8;border-bottom:1px solid var(--line);font-weight:700;font-size:var(--fs-sm);color:var(--body)}
.pm-slot-state{font-weight:400}
.pm-slot>div{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) 13px;border-top:1px solid var(--soft);color:var(--body)}
.pm-slot>div:first-of-type{border-top:0}
.pm-slot>div b{font-size:var(--fs-body);font-weight:400;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-slot>div span{flex:none;font-size:var(--fs-lead)}
.pm-slot>div.won{background:#effbf5;color:#075f4a}
.pm-slot>div.won b,.pm-slot>div.won span{font-weight:700;color:#075f4a}
.pm-slot>div.me b::after{content:'나';display:inline-block;margin-left:6px;padding:2px 6px;border-radius:var(--r-pill);background:var(--mint);color:#fff;font-size:10px;font-weight:700}
.pm-slot.is-live{border-color:#f4c7c3}
.pm-slot.is-live header{background:var(--danger-bg);border-bottom-color:#f4c7c3}
.pm-slot.is-live .pm-slot-state{color:var(--danger);font-weight:700}
.pm-slot.is-bye header{background:var(--soft)}
.pm-slot.is-bye .pm-slot-state{color:var(--mint);font-weight:700}
.pm-slot.has-me{border-color:var(--line-strong)}
.bracket-note{margin-top:var(--sp-5);padding:var(--sp-4) var(--sp-5);background:var(--soft);border-radius:var(--r-box);color:var(--muted);font-size:var(--fs-cap)}
