@charset "utf-8";

:root {
  /* color */
  --c-dark: #0F172A;
  --c-text: #222831;
  --c-sub: #646b78;
  --c-mute: #9298a4;
  --c-line: #edeef1;
  --c-line-strong: #e3e5ea;
  --c-bg: #ffffff;
  --c-fill: #f6f7f9;
  --c-fill-strong: #f1f2f4;
  --c-score: #1a1e27;
  --c-score-mute: #c5c9d0;

  /* font-size */
  --fs-11: 1.1rem;
  --fs-12: 1.2rem;
  --fs-13: 1.3rem;
  --fs-14: 1.4rem;
  --fs-15: 1.5rem;
  --fs-16: 1.6rem;
  --fs-18: 1.8rem;
  --fs-20: 2rem;
  --fs-24: 2.4rem;
}

/* layout */
#wrap {
  position: relative;
  min-height: 100vh;
  margin: 0 auto;
  background: var(--c-bg);
}

main { padding-bottom: 9rem; }

.container { padding: 0 2rem; }

/* ===== 공통 헤더 ===== */
.app-header {
  position: relative;
  z-index: 30;
  background: #ffffff;

}
.app-header.sub{border-bottom: 1px solid var(--c-line);}

.app-header .container {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.header-top {
  display: flex;
  align-items: center;
}

.app-logo {
  flex: 0 0 auto;
  position: relative;
  width: 5.2rem;
  height: 5.2rem;
}
.app-logo .ico img{width: 5rem;}

.app-title {
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 1.4rem;
}

.app-title strong {
  display: block;
  font-size: var(--fs-20);
  font-weight: 800;
  color: var(--c-text);
}

.app-title span {
  display: block;
  margin-top: 0.2rem;
  font-size: var(--fs-14);
  color: var(--c-mute);
}

.cal-btn {
  flex: 0 0 auto;
  width: 2.5rem;
  height: 2.5rem;
  background: url('../img/icon_1.png') no-repeat center / contain;
  position: absolute;
  top:3rem;
  right: 2rem;
  z-index: 31;
}

/* ===== 달력 ===== */
.calendar {
  display: none;
  position: absolute;
  top: 6rem;
  right: 1.5rem;
  z-index: 40;
  width: 33rem;
  max-width: calc(100% - 3rem);
  padding: 2rem;
  border-radius: 1rem;
  background: #ffffff;
  box-shadow: 0 0 1rem #1f253349;
}

.calendar.on {
  display: block;
}

.cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.4rem;
}

.cal-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 0.5rem;
  border: 1px solid var(--c-line-strong);
}

.cal-nav .ico {
  width:2.3rem;
  height:2.3rem;
}

.cal-nav.prev .ico {
  background: url('../img/icon_11.png') no-repeat center / contain;
}

.cal-nav.next .ico {
  background: url('../img/icon_12.png') no-repeat center / contain;
}

.cal-title {
  font-size: var(--fs-18);
  font-weight: 600;
  color: var(--c-text);
}

.cal-week,
.cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

.cal-week {
  margin-bottom: 0.4rem;
}

.cal-week span {
  padding: 0.6rem 0;
  text-align: center;
  font-size: var(--fs-15);
  font-weight: 500;
  color: #64748B;
}

.cal-grid {
  row-gap: 0.2rem;
}

.cal-empty {
  height: 4.6rem;
}

.cal-day {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  height: 4.6rem;
}

.cal-day .num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 1rem;
  font-size: var(--fs-14);
  font-weight: 600;
  color: #64748B;
}

.cal-day .dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--c-sub);
  visibility: hidden;
}

.cal-day.has-game .dot {
  visibility: visible;
}


.cal-day.is-selected {
  border-color: var(--c-dark);
  background: var(--c-dark);
  border-radius: 1rem;
}
.cal-day.is-selected .num{color: #fff;}
.cal-day.is-selected .dot{background: #fff;}

.cal-day.is-today{
  border:1px solid var(--c-sub);
  border-radius: 1rem;
}


.cal-legend {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 1.4rem;
  padding-top: 1.4rem;
  border-top: 0.1rem solid var(--c-line);
  font-size: var(--fs-13);
  color: var(--c-sub);
}

.cal-legend .dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--c-sub);
}

/* 날짜 탭 */
.date-nav .container {
  padding-bottom: 0;
}

.date-tabs {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  justify-content: space-between;

}

.date-tabs::-webkit-scrollbar { display: none; }

.date-tab {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding:1rem;
  border: 0.1rem solid var(--c-line-strong);
  border-radius: 0.8rem;
  background: #ffffff;
  min-width: 0;
}

.date-tab .w {
  font-size: var(--fs-12);
  color: var(--c-mute);
}

.date-tab .d {
  font-size: var(--fs-16);
  font-weight: 800;
  color: var(--c-text);
}

.date-tab .c {
  font-size: var(--fs-11);
  color: var(--c-mute);
}

.date-tab.on {
  border-color: var(--c-dark);
  background: var(--c-dark);
}

.date-tab.on .w,
.date-tab.on .d {
  color: #ffffff;
}

.date-tab.on .c {
  color: #aab0bb;
}

/* 리그 전환 */
section.league{border-top: 1px solid var(--c-line-strong);margin-top: 2rem;}
.league .container {
  padding-top: 2rem;
}

.league-switch {
  display: flex;
  gap: 1rem;
}

.league-switch a {
  flex: 1;
  height: 5.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 1.2rem;
  font-size: var(--fs-15);
  font-weight: 700;
}

.league-switch .on {
  background: var(--c-dark);
  color: #ffffff;
}

.league-switch .off {
  background: #ffffff;
  color: var(--c-text);
  border: 0.1rem solid var(--c-line-strong);
}

/* 스코어보드 */
.board .container {
  padding-top: 2.6rem;
}

.board-title {
  display: flex;
  align-items: baseline;
  gap: 0.8rem;
}

.board-title strong {
  font-size: var(--fs-18);
  font-weight: 600;
  color: var(--c-text);
}

.board-title span {
  font-size: var(--fs-14);
  font-weight: 600;
  color: var(--c-mute);
}

.board-info {
  display: flex;
  gap: 0.8rem;
  margin-top: 1.4rem;
  align-items: center;
}

.board-info .ico {
  flex: 0 0 auto;
  width: 1.8rem;
  height: 1.8rem;
  margin-top: 0.1rem;
  background: url('../img/Info.png') no-repeat center / contain;
}

.board-info p {
  font-size: var(--fs-14);
  line-height: 1.55;
  color: var(--c-sub);
}

/* 경기 카드 */
.game-list {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-top: 1.8rem;
}

.game-card {
  display: block;
  border: 0.1rem solid var(--c-line-strong);
  border-radius: 1rem;
  background: #ffffff;
  overflow: hidden;
}

.game-card .head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 1.6rem 1.4rem;
  border-bottom: 1px solid var(--c-line);
}

.game-card .status {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.badge {
  display: inline-flex;
  align-items: center;
  height: 2.4rem;
  padding: 0 1rem;
  border-radius: 0.6rem;
  font-size: var(--fs-12);
  font-weight: 700;
}

.badge.end {
  background: var(--c-dark);
  color: #ffffff;
}

.badge.ready {
  background: var(--c-fill-strong);
  color: var(--c-sub);
}

.game-time {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: var(--fs-13);
  font-weight: 600;
  color: var(--c-sub);
}

.game-time .ico {
  width: 1.4rem;
  height: 1.4rem;
  background: url('../img/icon_2.png') no-repeat center / contain;
}

.game-card .league {
  font-size: var(--fs-12);
  font-weight: 500;
  color: var(--c-mute);
}

.game-teams {
  padding: 0.6rem 1.6rem 1.4rem;
}

.team {
  display: flex;
  align-items: center;
  padding: 1.2rem 0;
}

.team + .team {
  border-top: 0.1rem solid var(--c-line);
}

.team-logo {
  flex: 0 0 auto;
  width: 3.2rem;
  height: 3.2rem;
  margin-right: 1.2rem;
}

.team-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.team-name {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: var(--fs-15);
  font-weight: 400;
  color: var(--c-text);
}

.team-name.win-name {
  font-weight: 800;
}

.team-mark {
  width: 1.6rem;
  height: 1.6rem;
  background: url('../img/icon_4.png') no-repeat center / contain;
}

.team-score {
  margin-left: auto;
  font-size: var(--fs-20);
  font-weight: 300;
  color: var(--c-score);
}

.team-score.win {
  font-weight: 800;
}

.team-score.none {
  font-weight: 700;
  color: var(--c-score-mute);
}

.game-place {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1.2rem 1.6rem;
  border-top: 0.1rem solid var(--c-line);
  background: var(--c-fill);
  font-size: var(--fs-13);
  color: var(--c-sub);
}

.game-place .ico {
  flex: 0 0 auto;
  width: 1.6rem;
  height: 1.6rem;
  background: url('../img/icon_3.png') no-repeat center / contain;
}

/* 페이지네이션 */
.pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin-top: 2.4rem;
}

.page-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: 3.6rem;
  padding: 0 1rem;
  font-size: var(--fs-14);
  font-weight: 600;
  color: var(--c-sub);
}

.page-arrow .ico {
  width: 2.5rem;
  height: 2.5rem;
}

.page-arrow.prev .ico {
  background: url('../img/icon_9.png') no-repeat center / contain;
}

.page-arrow.prev.disabled .ico {
  background-image: url('../img/icon_7.png');
}

.page-arrow.next .ico {
  background: url('../img/icon_8.png') no-repeat center / contain;
}

.page-arrow.next.disabled .ico {
  background-image: url('../img/icon_10.png');
}

.page-arrow.disabled {
  color: var(--c-score-mute);
  pointer-events: none;
}

.page-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 0.5rem;
  font-size: var(--fs-14);
  font-weight: 600;
  color: var(--c-mute);
}

.page-num.on {
  border: 0.1rem solid var(--c-line-strong);
  color: var(--c-text);
  font-weight: 700;
}

.pager-info {
  margin-top: 1.2rem;
  text-align: center;
  font-size: var(--fs-13);
  color: var(--c-mute);
}

/* 가이드 */
.guide-detail{margin-top: 2rem;}
.guide .container {
  padding-top: 3.4rem;
}

.guide-label {
  margin-bottom: 1.2rem;
  font-size: var(--fs-13);
  font-weight: 700;
  color: var(--c-mute);
}

.guide-list {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.guide-card {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: 1.8rem 1.6rem;
  border: 0.1rem solid var(--c-line-strong);
  border-radius: 1.4rem;
}

.guide-ico {
  position: relative;
  flex: 0 0 auto;
  width: 4rem;
  height: 4rem;
  border-radius: 1rem;
  background: var(--c-dark);
}

.guide-ico .ico {
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 2.5rem;
}

.guide-ico .ico-stat {
  background-image: url('../img/icon_5.png');
}

.guide-ico .ico-rule {
  background-image: url('../img/icon_6.png');
}

.guide-text {
  flex: 1 1 auto;
  min-width: 0;
}

.guide-text strong {
  display: block;
  font-size: var(--fs-16);
  font-weight: 700;
  color: var(--c-text);
}

.guide-text span {
  display: block;
  margin-top: 0.4rem;
  font-size: var(--fs-13);
  color: var(--c-sub);
}

.guide-arrow {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  background: url('../img/icon_10.png') no-repeat center / contain;
}

.no-game{display: flex;align-items: center;gap: 1rem;}
.no-game img{width: 1.5rem;}


/* ===== 가이드 상세 페이지 ===== */

/* 뒤로 버튼 */
.back-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 2.4rem;
  font-size: var(--fs-15);
  font-weight: 600;
  color: var(--c-text);
}

.back-btn .ico {
  width: 1.8rem;
  height: 1.8rem;
  background: url('../img/icon_15.png') no-repeat center / contain;
}

/* 페이지 타이틀 */
.guide-page-title {
  display: flex;
  align-items: flex-start;
  gap: 1.4rem;
  margin-bottom: 2.8rem;
}

.guide-page-title .guide-ico {
  flex: 0 0 auto;
  position: relative;
  width: 4.8rem;
  height: 4.8rem;
  border-radius: 1.2rem;
  background: var(--c-dark);
}

.guide-page-title .guide-ico .ico {
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 2.4rem;
}

.guide-page-title .guide-ico .ico-stat {
  background-image: url('../img/icon_5.png');
}

.guide-page-title .guide-ico .ico-rule {
  background-image: url('../img/icon_6.png');
}

.guide-page-text {
  flex: 1 1 auto;
  min-width: 0;
}

.guide-page-text strong {
  display: block;
  font-size: var(--fs-18);
  font-weight: 800;
  color: var(--c-text);
}

.guide-page-text span {
  display: block;
  margin-top: 0.4rem;
  font-size: var(--fs-13);
  color: var(--c-mute);
}

/* 스탯 카드 목록 */
.stat-list {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.stat-card {
  padding: 2rem;
  border: 0.1rem solid var(--c-line-strong);
  border-radius: 1rem;
  background: #ffffff;
}

.stat-head {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 1.4rem;
}

.stat-abbr {
  font-size: var(--fs-20);
  font-weight: 700;
  color: var(--c-text);
}

.stat-name {
  font-size: var(--fs-14);
  font-weight: 500;
  color: var(--c-mute);
}

.stat-desc-strong {
  font-size: var(--fs-15);
  font-weight: 700;
  line-height: 1.55;
  color: var(--c-text);
  margin-bottom: 1rem;
}

.stat-desc {
  font-size: var(--fs-14);
  line-height: 1.6;
  color: var(--c-sub);
}

.stat-divider {
  border: none;
  border-top: 0.1rem solid var(--c-line);
  margin: 1.6rem 0;
}

.stat-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.stat-tag {
  display: inline-flex;
  align-items: center;
  height: 3.2rem;
  padding: 0 1.4rem;
  border: 0.1rem solid var(--c-line-strong);
  border-radius: 10rem;
  font-size: var(--fs-13);
  font-weight: 600;
  color: var(--c-sub);
}



/* ===== player.php ===== */
.player-list-sec .container {
  padding-top: 2rem;
  padding-bottom: 4rem;
}

.player-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.player-meta-league {
  font-size: var(--fs-16);
  font-weight: 800;
  color: var(--c-text);
}

.player-meta-info {
  font-size: var(--fs-13);
  color: var(--c-mute);
}

.player-notice {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 2rem;
  font-size: var(--fs-13);
  color: var(--c-mute);
}

.player-notice .ico {
  flex: 0 0 auto;
  width: 1.6rem;
  height: 1.6rem;
  background: url('../img/Info.png') no-repeat center / contain;
}

/* 팀 목록 */
.team-list {
  display: flex;
  flex-direction: column;
  margin-top: 1.6rem;
  border: 1px solid var(--c-line-strong);
  border-radius: 1rem;
}

.team-item {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: 1.6rem 1.5rem;
  border-bottom: 1px solid var(--c-line-strong);

}

.team-item:last-child{border:none;}



.team-item-logo {
  flex: 0 0 auto;
  width: 4rem;
  height: 4rem;
}

.team-item-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.team-item-name {
  flex: 1 1 auto;
  font-size: var(--fs-15);
  font-weight: 600;
  color: var(--c-text);
}

.team-item-arrow {
  flex: 0 0 auto;
  width: 2.2rem;
  height: 2.2rem;
  background: url('../img/icon_10.png') no-repeat center / contain;
}




/* ===== player_team.php ===== */
.player-team-sec .container {
  padding-top: 2rem;
}

/* 팀 헤더 */
.team-header {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  margin-bottom: 2.8rem;
}

.team-header-logo {
  flex: 0 0 auto;
  width: 6rem;
  height: 6rem;
}

.team-header-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.team-header-info {
  flex: 1 1 auto;
  min-width: 0;
}

.team-header-name {
  display: block;
  font-size: var(--fs-20);
  font-weight: 700;
  color: var(--c-text);
}

.team-header-sub {
  display: block;
  margin-top: 0.4rem;
  font-size: var(--fs-13);
  color: var(--c-mute);
}

/* 포지션 그룹 */
.position-group {
  margin-bottom: 2.8rem;
}

.position-label {
  margin-bottom: 1.2rem;
  font-size: var(--fs-14);
  font-weight: 700;
  color: var(--c-sub);
}

/* 선수 목록 */
.player-list {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--c-line);
  border-radius: 1rem;
}

.player-item {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: 1.6rem 1.5rem;
  border-bottom: 0.1rem solid var(--c-line);
}
.player-item:last-child{border: none;}

.player-number {
  flex: 0 0 3.2rem;
  font-size: var(--fs-16);
  font-weight: 700;
  color: var(--c-mute);
  text-align: center;
}

.player-name {
  flex: 1 1 auto;
  font-size: var(--fs-15);
  font-weight: 600;
  color: var(--c-text);
}

.player-arrow {
  flex: 0 0 auto;
  width: 2.2rem;
  height: 2.2rem;
  background: url('../img/icon_10.png') no-repeat center / contain;
}

.no-data {
  padding: 4rem 0;
  text-align: center;
  font-size: var(--fs-14);
  color: var(--c-mute);
}


/* ===== player_detail.php ===== */
.player-detail-sec .container {
  padding-top: 2rem;
  padding-bottom: 4rem;
}

/* 선수 헤더 */
.player-detail-header {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin-bottom: 3rem;
}

.player-detail-num {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 7.2rem;
  height: 7.2rem;
  border-radius: 50%;
  background: var(--c-fill-strong);
  font-size: var(--fs-24);
  font-weight: 700;
  color: var(--c-sub);
}

.player-detail-info {
  flex: 1 1 auto;
  min-width: 0;
}

.player-detail-name {
  display: block;
  font-size: var(--fs-20);
  font-weight: 700;
  color: var(--c-text);
  margin-bottom: 0.8rem;
}

.player-detail-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.player-detail-pos {
  display: inline-flex;
  align-items: center;
  height: 2.6rem;
  padding: 0 1rem;
  border-radius: 0.6rem;
  background: var(--c-dark);
  font-size: var(--fs-13);
  font-weight: 700;
  color: #ffffff;
}

.player-detail-team {
  font-size: var(--fs-14);
  font-weight: 500;
  color: var(--c-sub);
}

/* 프로필 라벨 */
.profile-label {
  margin-bottom: 1.2rem;
  font-size: var(--fs-14);
  font-weight: 700;
  color: var(--c-sub);
}

/* 프로필 테이블 */
.profile-table {
  border: 0.1rem solid var(--c-line-strong);
  border-radius: 1rem;
  overflow: hidden;
}

.profile-row {
  display: flex;
  align-items: center;
  padding: 1.6rem 2rem;
  border-bottom: 0.1rem solid var(--c-line);
}

.profile-row:last-child {
  border-bottom: none;
}

.profile-key {
  flex: 0 0 7rem;
  font-size: var(--fs-14);
  color: var(--c-mute);
}

.profile-val {
  flex: 1 1 auto;
  font-size: var(--fs-15);
  color: var(--c-text);
}

.profile-val strong {
  font-weight: 700;
}