/* Calendar Schedule Component Styles */
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; margin-bottom: 20px; }
.calendar-dow { font-weight: 800; font-family: "Inter", sans-serif; color: #333; border-bottom: 2px solid #ddd; }
.calendar-cell { min-height: 120px; background-color: #f4f4f4; border-radius: 8px; padding: 8px; display: flex; flex-direction: column; }
.calendar-cell.empty { background-color: transparent; }
.calendar-day-num { font-size: 14px; font-weight: bold; margin-bottom: 5px; }
.calendar-games { flex-grow: 1; display: flex; flex-direction: column; gap: 5px; }
.game-block { border-radius: 6px; padding: 8px 4px; text-align: center; font-size: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #eaeaea; }
.game-block.home-game { border: none; }
.game-block.away-game { background-color: #ffffff; color: #000; }
.game-logo { width: 38px; height: 38px; margin-bottom: 6px; border-radius: 50%; background-color: #ffffff; object-fit: cover; border: 2px solid rgba(0, 0, 0, 0.1); }
.game-time { font-weight: 800; }
.game-rink { font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; margin-top: 2px; }

/* Mobile responsive fallback to list view */
@media (max-width: 768px) {
    .calendar-grid { grid-template-columns: 1fr; gap: 15px; }
    .calendar-cell { min-height: auto; padding: 12px; }
    .calendar-dow { display: none !important; }
    .calendar-cell.empty { display: none !important; }
    .calendar-cell.no-games { display: none !important; } 
    .calendar-day-num { font-size: 16px; margin-bottom: 10px; border-bottom: 1px solid #ccc; padding-bottom: 5px; }
}

/* CSS Variables for Theming */
:root { --team-color: #333333; }

.size-14 { font-size: 13px; font-weight: 300; font-family: "Inter", sans-serif; color: #000000; }
.nw { white-space: nowrap; }
.card-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-height: 80px; }    
hr { margin-top: 1rem; margin-bottom: 1rem; border: 0; border-top: 1px solid rgba(0, 0, 0, 0.1); }
.bg-gray { background-color: #f8f9fa !important; }
.size-28a { font-size: 24px; font-weight: 900; font-family: "Inter", sans-serif; color: #000000; }
.size-14a { font-size: 12px; font-weight: 700; font-family: "Inter", sans-serif; color: #000000; }
.size-20a { font-size: 20px; font-weight: 700; font-family: "Inter", sans-serif; color: #000000; }
.size-40 { font-size: 40px; line-height: 44px; font-weight: 900; letter-spacing: normal; }
.size-40a { font-size: 40px; line-height: 34px; font-weight: 500; letter-spacing: normal; }
.size-24 { font-size: 24px; line-height: 28.8px; font-weight: 700; letter-spacing: normal; }

/* Dynamic Theme Accents */
.team-accent-header { display: inline-block; border-bottom: 4px solid var(--team-color); padding-bottom: 4px; margin-bottom: 15px; }
.team-stats-box { border-top: 4px solid var(--team-color); box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.insTeamImageTP { border-radius: 100%; border: 4px solid var(--team-color) !important; display: flex; flex: 0 0 140px; height: 140px !important; justify-content: center; overflow: hidden; position: relative; width: 140px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }  
.info-box { border-left: 5px solid var(--team-color); padding: 15px; margin-bottom: 20px; background-color: #f8f9fa; border-radius: 4px; }

/* Structural CSS */
.scrollerDiv { border: 2px solid #EEEEEE; border-radius: 4px; margin-right:4px;}
.badgeSchedule { background-color: #F0F0F0; color: #000000; padding: 2px 4px; text-align: center; border-radius: 2px; font-size:8px; width:60px; display:block;}
.insTeamImage { border-radius: 100%; border: 2px solid #D0D0D0; display: flex; flex: 0 0 20px; height: 20px !important; justify-content: center; overflow: hidden; position: relative; width: 20px; }  
.insPlayerImage { border-radius: 100%; border: 2px solid #D0D0D0; display: flex; flex: 0 0 50px; height: 50px !important; justify-content: center; overflow: hidden; position: relative; width: 50px; }

.scrollmenu { position: sticky; top: 0; z-index: 100; background-color: #FFFFFF; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; scrollbar-width: none; border-bottom: 2px solid #EAEAEA; padding-bottom: 0; margin-bottom: 25px; }
.scrollmenu::-webkit-scrollbar { display: none; }
.scrollmenu a { display: inline-block; color: #666666; text-align: center; padding: 12px 12px; margin-right: 5px; text-decoration: none; cursor: pointer; font-weight: 600; font-size: 15px; border-bottom: 3px solid transparent; transition: all 0.2s ease; }
.scrollmenu a:hover { color: var(--team-color) !important; }
.scrollmenu a.active { color: var(--team-color) !important; border-bottom: 3px solid var(--team-color); font-weight: 800; }
.scrollmenu a:first-child { margin-left: 15px; }
.scrollmenu a:last-child { margin-right: 15px; }

.bText { width: 95px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.lText { text-decoration:none; color:#000000; }
.size-p1 { font-size: 44px; font-weight: 900; font-family: "Inter", sans-serif; color: #000000; }
.size-p2 { font-size: 28px; font-weight: 500; font-family: "Inter", sans-serif; color: #000000; }
.size-st { font-size: 26px; font-weight: 400; font-family: "Inter", sans-serif; color: #000000; }
.size-mn { font-size: 16px; font-weight: 500; font-family: "Inter", sans-serif; color: #A9A9A9; }
.p0 { padding:0; }
.m0 { margin:0; }
.leaders3:hover { text-decoration:none; color:#FFFFFF; }
.size-15 { font-size: 15px; font-weight: 600; font-family: "Inter", sans-serif; color: #000000; }
.inter-1200 { font-family: "Inter", sans-serif; font-optical-sizing: auto; font-weight: 1200; font-style: normal; font-variation-settings: "slnt" 0; color: #000000; }
.size-30 { font-size: 30px; font-weight: 1000; font-family: "Inter", sans-serif; color: #000000; }
.sortCol { background-color: #CFEBF7 !important; font-weight: 600; }
.statsCol { height:30px; white-space: nowrap; text-align:center; font-size: 15px; font-weight: 400; font-family: "Inter", sans-serif; color: #000000; }
.statsColN { height:30px; white-space: nowrap; font-size: 15px; font-weight: 400; font-family: "Inter", sans-serif; color: #000000; }
.widSt { width:60px; }

/* Image Gallery Styles */
.img-container { display: inline-block; vertical-align: top; margin: 10px; text-align: center; width: 150px; }
.thumb { border-radius: 5px; transition: 0.3s; margin: 5px; cursor: pointer; }
.thumb:hover { opacity: 0.7; transform: scale(1.05); }
.thumb-caption { font-family: Arial, sans-serif; font-size: 14px; margin-top: 5px; color: #333; font-weight: bold; }

/* Modal Background */
.modal { display: none; position: fixed; z-index: 1000; padding-top: 50px; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.9); }
.modal-content { margin: auto; display: block; width: 80%; max-width: 1000px; animation: zoom 0.3s; }
@keyframes zoom { from {transform:scale(0)} to {transform:scale(1)} }
.close { position: absolute; top: 15px; right: 35px; color: #f1f1f1; font-size: 40px; font-weight: bold; cursor: pointer; }

/* Schedule Component Styles */
.schedule-container { width: 320px; background: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); overflow: hidden; }
.header { padding: 16px; font-size: 1.25rem; font-weight: bold; border-bottom: 1px solid #eee; }
.sub-header { padding: 10px 16px; font-size: 0.75rem; font-weight: 800; color: #333; background-color: #f9f9f9; text-transform: uppercase; letter-spacing: 0.5px; }
.game-row { display: flex; align-items: center; padding: 12px 16px; border-bottom: 1px solid #f0f0f0; font-size: 0.9rem; }
.type-icon { width: 20px; color: #666; font-weight: 500; }
.logo { width: 24px; height: 24px; background: #eee; border-radius: 50%; margin: 0 8px; display: flex; align-items: center; justify-content: center; font-size: 10px; }
.team-name { flex-grow: 1; font-weight: 500; }
.status { width: 20px; font-weight: bold; text-align: center; margin-right: 15px; }
.win { color: #2e7d32; }
.loss { color: #d32f2f; }
.score-time { text-align: right; font-weight: 500; min-width: 60px; }
.upcoming-info { font-size: 0.7rem; color: #444; line-height: 1.2; }   
.info-box p { margin-top: 0; margin-bottom: 1em; color: #495057; background-color: transparent; }
.info-box ul { margin-top: 0; margin-bottom: 1em; color: #495057; background-color: transparent; }

@media (max-width: 768px) {
  .info-box { padding: 5px; border-left-width: 3px; }
}