/* =========================================================
 * 파일명: sports-day/css/board.css
 * 설명: 점수판 현수막 시안의 밝고 역동적인 축제 분위기 100% 구현
 * ========================================================= */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: 'Pretendard', sans-serif;
}

body {
  background: linear-gradient(180deg, #38bdf8 0%, #7dd3fc 35%, #86efac 70%, #22c55e 100%);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 20px;
  color: #0f172a;
}

/* 상단 현수막 헤더 */
.banner-header {
  background-color: #ffffff;
  border-radius: 20px;
  padding: 16px 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15);
  margin-bottom: 20px;
  border: 4px solid #38bdf8;
}

.slogan-left .tagline {
  font-size: 14px;
  color: #0369a1;
  font-weight: 600;
}
.slogan-left .church-name {
  font-size: 24px;
  font-weight: 900;
  color: #0284c7;
}

.main-title-box {
  text-align: center;
}
.sub-festival {
  font-size: 15px;
  font-weight: 700;
  color: #2563eb;
  letter-spacing: 1px;
}
.main-title {
  font-size: 38px;
  font-weight: 900;
  color: #1e3a8a;
  text-shadow: 2px 2px 0px #e0f2fe;
}

.slogan-right {
  text-align: right;
}
.tagline-sub {
  font-size: 15px;
  color: #047857;
  font-weight: 700;
}
.tagline-bold {
  font-size: 22px;
  font-weight: 900;
  color: #e11d48;
}

/* 전광판 테이블 */
.board-container {
  flex: 1;
  background-color: #ffffff;
  border-radius: 20px;
  padding: 12px;
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
  border: 5px solid #0284c7;
  overflow: hidden;
}

.scoreboard-table {
  width: 100%;
  border-collapse: collapse;
  text-align: center;
}

/* 테이블 헤더 */
.scoreboard-table th {
  padding: 14px 10px;
  font-size: 22px;
  font-weight: 900;
  border: 2px solid #bae6fd;
}

.col-event-header {
  background-color: #0f172a;
  color: #ffffff;
  width: 28%;
  font-size: 24px !important;
}

/* 1교구 (흰색) 헤더 */
.team-white-head {
  background-color: #ffffff;
  color: #0f172a;
  border: 3px solid #64748b !important;
}
/* 2교구 (검정) 헤더 */
.team-black-head {
  background-color: #18181b;
  color: #ffffff;
}
/* 3교구 (빨강) 헤더 */
.team-red-head {
  background-color: #dc2626;
  color: #ffffff;
}
/* 4교구 (파랑) 헤더 */
.team-blue-head {
  background-color: #2563eb;
  color: #ffffff;
}

.team-head-title {
  font-size: 26px;
  margin-bottom: 2px;
}
.team-circle-icon {
  font-size: 18px;
}

/* 종목 행 */
.scoreboard-table td {
  padding: 12px 10px;
  font-size: 22px;
  font-weight: 800;
  border: 2px solid #e0f2fe;
}

.event-name-cell {
  background-color: #f0fdf4;
  color: #065f46;
  text-align: left;
  padding-left: 24px !important;
  font-weight: 900;
  display: flex;
  align-items: center;
  gap: 10px;
}

.event-icon-badge {
  font-size: 20px;
}

.score-cell {
  background-color: #ffffff;
  font-size: 26px;
  font-weight: 800;
  color: #334155;
  transition: all 0.3s ease;
}

.score-cell.has-score {
  color: #1d4ed8;
  font-size: 28px;
  font-weight: 900;
}

/* 하단 총점 행 */
.total-row {
  border-top: 5px solid #0284c7;
}

.total-label {
  background-color: #fef08a !important;
  color: #854d0e !important;
  font-size: 28px !important;
  font-weight: 900;
}

.cup-icon {
  font-size: 28px;
}

.total-cell {
  background-color: #fef9c3;
  color: #0f172a;
  font-size: 34px !important;
  font-weight: 900 !important;
  border: 2px solid #fde047 !important;
}

/* 1위 팀 하이라이트 (트로피 반짝임 효과) */
.total-cell.first-rank {
  background-color: #fde047;
  color: #b45309;
  box-shadow: inset 0 0 15px rgba(234, 179, 8, 0.6);
  animation: pulse-rank 1.5s infinite;
}

@keyframes pulse-rank {
  0% { transform: scale(1); }
  50% { transform: scale(1.03); }
  100% { transform: scale(1); }
}

/* 하단 배너 푸터 */
.banner-footer {
  margin-top: 18px;
  background-color: #ffffff;
  border-radius: 14px;
  padding: 12px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  font-weight: 800;
  border: 3px solid #22c55e;
}

.footer-slogan {
  font-size: 20px;
  color: #15803d;
}

.cheer-arrow {
  color: #f97316;
}

.realtime-status {
  font-size: 14px;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 8px;
}

.live-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #22c55e;
  animation: blink 1s infinite alternate;
}

@keyframes blink {
  from { opacity: 0.3; }
  to { opacity: 1; }
}