/* ========================================================
   공통 인쇄 유틸
   ======================================================== */
@media print {
  .no-print { display: none !important; }
}

.print-btn-area {
  text-align: center;
  margin: 15px 0;
}
.print-btn-area button {
  padding: 8px 24px;
  font-size: 14px;
  background: #1a3a6b;
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  margin: 5px;
}
.print-btn-area button:hover { background: #2a5a9f; }

/* ========================================================
   기록지 (스코어시트) — 세로 A4
   기록지.png 레이아웃 재현
   ======================================================== */

body.scoresheet-body {
  background: #eee;
  padding: 10mm;
  margin: 0;
}
@media print {
  body.scoresheet-body {
    background: #fff;
    padding: 0;
  }
  @page { size: A4 portrait; margin: 8mm; }
  .scoresheet-page { page-break-after: always; }
  .scoresheet-page:last-child { page-break-after: avoid; }
}

.scoresheet-page {
  width: 194mm;
  min-height: 274mm;
  margin: 0 auto 12mm;
  padding: 4mm 5mm;
  border: 2px solid #222;
  font-family: Arial, 'Malgun Gothic', sans-serif;
  font-size: 8.5pt;
  background: #fff;
  box-sizing: border-box;
}

/* 대회명 */
.sh-title {
  text-align: center;
  font-size: 12pt;
  font-weight: bold;
  margin-bottom: 2mm;
  letter-spacing: 1px;
}

/* SINGLES SCORE SHEET + Date/Time/Table */
.sh-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #555;
  padding: 1.5mm 3mm;
  margin-bottom: 0;
}
.sh-singles { font-size: 10pt; font-weight: bold; }
.sh-date-area {
  display: flex;
  gap: 6mm;
  font-size: 8pt;
}
.sh-date-field {
  display: inline-block;
  border-bottom: 1px solid #333;
  min-width: 20mm;
}

/* Stage / Match no. */
.sh-stage-row {
  display: flex;
  align-items: center;
  border: 1px solid #555;
  border-top: none;
  padding: 1.5mm 3mm;
  margin-bottom: 2mm;
  gap: 3mm;
}
.sh-stage-label { font-weight: bold; font-size: 8.5pt; }
.sh-stage-box {
  border: 1px solid #555;
  padding: 0.5mm 4mm;
  min-width: 50mm;
  text-align: center;
  font-weight: bold;
  font-size: 9pt;
}
.sh-match-label { font-weight: bold; margin-left: 6mm; font-size: 8.5pt; }
.sh-match-box {
  border: 1px solid #555;
  padding: 0.5mm 6mm;
  min-width: 14mm;
  text-align: center;
  font-weight: bold;
  font-size: 11pt;
}

/* 메인 3패널 */
.sh-main {
  display: flex;
  gap: 0;
  margin-bottom: 2mm;
  border: 1px solid #333;
}
.sh-player-panel {
  flex: 1;
  border-right: 1px solid #333;
  display: flex;
  flex-direction: column;
}
.sh-player-panel:last-child { border-right: none; }

.sh-player-header {
  background: #222;
  color: #fff;
  text-align: center;
  font-weight: bold;
  font-size: 8.5pt;
  padding: 1.5mm;
}
.sh-player-info {
  padding: 2mm;
  border-bottom: 1px solid #bbb;
}
.sh-no-row { font-size: 8pt; margin-bottom: 1mm; }
.sh-no-label { color: #555; }
.sh-name-large { font-size: 13pt; font-weight: bold; margin: 1mm 0; }
.sh-team-text { font-size: 8pt; color: #444; }
.sh-shirt-row {
  font-size: 7.5pt;
  color: #555;
  margin-top: 2mm;
  border-top: 1px solid #ddd;
  padding-top: 1mm;
}

/* 패널티 헤더 행 */
.sh-penalty-header {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  border-top: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
  background: #f0f0f0;
}
.sh-penalty-hdr {
  text-align: center;
  font-size: 6.5pt;
  font-weight: bold;
  padding: 1mm 0;
  border-right: 1px solid #bbb;
}
.sh-penalty-hdr:last-child { border-right: none; }

/* 패널티 박스 (7행 × 6열) */
.sh-penalty-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  flex: 1;
}
.sh-penalty-cell {
  height: 6.5mm;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}
.sh-penalty-cell:nth-child(6n) { border-right: none; }

/* Adviser 행 */
.sh-adviser-row {
  display: flex;
  gap: 4mm;
  margin-bottom: 1.5mm;
}
.sh-adviser-box {
  flex: 1;
  border: 1px solid #333;
  padding: 1mm 2mm;
  min-height: 8mm;
  font-size: 7.5pt;
  font-weight: bold;
}

/* 중앙 게임 점수 패널 */
.sh-score-panel {
  width: 42mm;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-right: 1px solid #333;
}
.sh-score-header {
  background: #222;
  color: #fff;
  text-align: center;
  font-weight: bold;
  padding: 1.5mm;
  font-size: 8.5pt;
}
.sh-score-table {
  width: 100%;
  border-collapse: collapse;
  flex: 1;
}
.sh-score-table td {
  border: 1px solid #bbb;
  text-align: center;
  padding: 0;
  height: 8mm;
  font-size: 9pt;
}
.sh-score-table td.game-label {
  background: #f0f0f0;
  font-weight: bold;
  font-size: 7.5pt;
  width: 12mm;
}
.sh-score-table td.score-cell { font-weight: bold; font-size: 10pt; }
.sh-score-table td.blocked {
  background: #666 !important;
  color: #fff;
  font-size: 9pt;
}

/* 하단 Winner/Signature/Remarks */
.sh-footer {
  margin-top: 2mm;
}
.sh-footer-row {
  display: flex;
  gap: 3mm;
  margin-bottom: 1.5mm;
}
.sh-footer-box {
  flex: 1;
  border: 1px solid #333;
  padding: 1mm 3mm;
  min-height: 9mm;
  font-size: 7.5pt;
}
.sh-footer-label {
  font-weight: bold;
  font-size: 7.5pt;
  color: #333;
  border-bottom: 1px solid #ddd;
  margin-bottom: 1mm;
}
.sh-footer-val { font-size: 9pt; font-weight: bold; }
.sh-remarks-box {
  border: 1px solid #333;
  padding: 1mm 3mm;
  min-height: 16mm;
  font-size: 7.5pt;
}

/* ========================================================
   앞장 (예선리그) — 세로 A4
   앞장1.png / 앞장2.png 레이아웃 재현
   ======================================================== */

body.league-body {
  background: #eee;
  padding: 10mm;
  margin: 0;
}
@media print {
  body.league-body {
    background: #fff;
    padding: 0;
  }
  @page { size: A4 portrait; margin: 8mm; }
  .league-page { page-break-after: always; }
  .league-page:last-child { page-break-after: avoid; }
}

.league-page {
  width: 194mm;
  min-height: 274mm;
  margin: 0 auto 12mm;
  padding: 4mm 5mm;
  font-family: Arial, 'Malgun Gothic', sans-serif;
  font-size: 8.5pt;
  background: #fff;
  box-sizing: border-box;
}

/* 상단 라운드로빈 그리드 */
.lp-top-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 4mm;
  border: 2px solid #222;
}
.lp-top-table th {
  border: 1px solid #555;
  text-align: center;
  padding: 1mm 2mm;
  font-size: 8pt;
  background: #fff;
  font-weight: bold;
}
.lp-top-table td {
  border: 1px solid #555;
  text-align: center;
  padding: 0;
  height: 8mm;
}

/* 카테고리명 셀 (좌상단) */
.lp-cat-cell {
  font-size: 12pt;
  font-weight: bold;
  text-align: left !important;
  padding: 1mm 3mm !important;
  border: 2px solid #222 !important;
}

/* NO 열 */
.lp-no-cell {
  font-weight: bold;
  font-size: 9pt;
  width: 8mm;
}

/* 이름 열 (2행 병합: 이름+소속) */
.lp-name-cell {
  text-align: left !important;
  padding: 0 2mm !important;
  min-width: 28mm;
  max-width: 40mm;
  font-size: 8.5pt;
}
.lp-name-cell.team { font-size: 7.5pt; color: #555; }

/* 대각선 셀 */
.lp-diag {
  background: linear-gradient(to bottom left,
    #fff calc(50% - 0.5px), #444 calc(50% - 0.5px),
    #444 calc(50% + 0.5px), #fff calc(50% + 0.5px));
  overflow: hidden;
}

/* W/L, P, R, ex 열 */
.lp-stat-hdr { width: 10mm; }
.lp-stat-cell { width: 10mm; font-weight: bold; }
.lp-wl-cell { width: 14mm; }
.lp-slash { font-size: 10pt; font-weight: bold; color: #333; }

/* 하단 경기 일정표 */
.lp-match-table {
  width: 100%;
  border-collapse: collapse;
  border: 2px solid #222;
  font-size: 8.5pt;
}
.lp-match-table th {
  border: 1px solid #555;
  text-align: center;
  padding: 1.5mm 2mm;
  font-size: 8pt;
  font-weight: bold;
  background: #fff;
  letter-spacing: 1px;
}
.lp-match-table td {
  border: 1px solid #555;
  text-align: center;
  padding: 0;
  height: 5.5mm;
}
.lp-match-no-cell {
  font-weight: bold;
  font-size: 9.5pt;
  width: 10mm;
  vertical-align: middle;
  background: #fafafa;
}
.lp-pname-cell {
  text-align: left !important;
  padding: 0 2mm !important;
  min-width: 30mm;
  vertical-align: middle;
  font-weight: bold;
  font-size: 9pt;
}
.lp-team-cell {
  text-align: left !important;
  padding: 0 2mm !important;
  min-width: 22mm;
  vertical-align: middle;
  font-size: 8pt;
  color: #444;
}
.lp-score-colon {
  width: 6mm;
  font-size: 9pt;
  font-weight: bold;
  border-left: 1px solid #aaa;
  border-right: 1px solid #aaa;
}
.lp-score-left { width: 14mm; }
.lp-score-right { width: 14mm; }
