/* -------------------- Base -------------------- */



:root {
  /* === Frosted Glass Variables === */
  --glass-bg: rgba(225, 225, 225, 0.55);
  --glass-active: rgba(255, 255, 255, 0.65);

  /* === Text Colors === */
  --text-dark: rgba(0, 0, 0, 0.85);
  --text-light: rgba(0, 0, 0, 0.6);

  /* === Typography === */
  --font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
  --font-weight-thin: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --heading-spacing: 0.4px;   /* consistent across headings */
  --heading-size: 1rem;       /* adjustable per design */
  --line-height: 1.3;

  /* === Layout & Animation === */
  --radius: 1.25rem; /* 20px */
  --transition: 0.25s ease;
}


body {
    margin: 0;
    padding: 0;
    background: linear-gradient(180deg, #f5f7fa, #e9eef5);
    font-family: -apple-system, BlinkMacSystemFont, "Inter", sans-serif;
  	color: rgba(0,0,0,0.85);
}

/* Keep headings thin and use consistent letter-spacing (0.3–0.5px) */

.container {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1rem;
    padding-bottom: 60px;
    justify-content: center;
}

.box {
	height: 325px;
	max-width: 500px;
	min-width: 500px;
	background: linear-gradient(145deg, rgba(255,255,255,0.25), rgba(255,255,255,0.05));
	backdrop-filter: blur(10px) saturate(180%);
  	-webkit-backdrop-filter: blur(12px) saturate(160%);
  	border-radius: 20px;
  	transition: transform 0.3s ease, box-shadow 0.3s ease;
  	border: 1px solid rgba(255, 255, 255, 0.3);
  	box-shadow:
    inset 0 1px 1px rgba(255, 255, 255, 0.3), /* top highlight */
    0 8px 20px rgba(0, 0, 0, 0.15);           /* soft drop shadow */
}

.box:hover {
  	transform: translateY(-4px);
  	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
}

.box::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(145deg, rgba(255,255,255,0.6), rgba(255,255,255,0.05));
  mix-blend-mode: overlay;
  pointer-events: none;
}

.boxMatch, .boxLeague, .boxClub, .boxReferee, .boxPlayer, .boxCoach, .boxBirthday, .boxPlayerRanking, .boxPlayerPoints {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    flex: 1 1 calc(33% - 1rem);
    min-width: 280px;
    display: flex;
    flex-direction: column;
    border: 1px solid #d3d3d3;
    overflow-y: auto;
}

.boxMatch h2, .boxLeague h2, .boxClub h2, .boxReferee h2, .boxPlayer h2, .boxCoach h2, .boxBirthday h2, .boxPlayerRanking h2, .boxPlayerPoints h2 {
    color: var(--text-dark);
    font-family: var(--font-family);
    font-weight: var(--font-weight-thin);
    font-size: var(--heading-size);
    letter-spacing: var(--heading-spacing);
    line-height: var(--line-height);
    margin: 0;
    padding: 0.5rem;
    border-radius: 8px 8px 0 0;
    font-size: 1rem;
	background: rgba(180, 190, 210, 0.45);
  	border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  	letter-spacing: 0.5px;
  	backdrop-filter: blur(10px);
}

.boxMatch, .boxLeague, .boxPlayer, .boxPlayerRanking, .boxPlayerPoints {
  max-height: 690px;
  overflow: hidden;
}

.boxMatch .indexTabContent, .boxLeague .indexTabContent, .boxPlayer .indexTabContent {
  flex: 1;               /* content grows to fill available space */
  overflow-y: auto;      /* vertical scrollbar if too many matches */
  padding-right: 6px;    /* avoids scrollbar overlap with text */
}

/* -------------------- Tabs -------------------- */

.tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.375rem;
  background: var(--glass-bg);
  backdrop-filter: blur(10px);
  border-radius: var(--radius);

  box-shadow: inset 0 0.0625rem 0.0625rem rgba(255,255,255,0.4),
              0 0.125rem 0.375rem rgba(0,0,0,0.08);
  width: fit-content;
  margin: 0.3rem auto 1rem;
}


.tabs button {
  flex: 1 1 auto; /* Each button takes equal space */
  border: none;
  padding: 0.5rem 1rem;
  border-radius: calc(var(--border-radius) - 0.125rem);
  background: transparent;
  color: var(--text-light);
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--transition), color var(--transition), transform var(--transition);
  white-space: nowrap;
  border: 1px solid transparent;
}


.tabs button:hover,
.tabs button:focus {
  outline: none;
  background: rgba(255, 255, 255, 0.4);
  color: var(--text-dark);
}

.tabs button.active {
  background: var(--glass-active);
  color: var(--text-dark);
  box-shadow: inset 0 0.0625rem 0.125rem rgba(0,0,0,0.08);
  border: 1px solid #d2d2d2;
  border-radius: var(--radius);
}

/* Shared tab styles for League and Coaches tabs */
.league-tabs, 
.coaches-tabs{
  gap: 0;
  overflow: hidden;
}

.points-tabs {
  gap: 0;
}


.league-tabs button, 
.points-tabs button, 
.coaches-tabs button {
  width: 4em;
  height: 3em; /* helps vertical centering */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem;
  background: transparent;
  border: none;
  cursor: pointer;
}

.league-tabs button.active,
.points-tabs button.active,
.coaches-tabs button.active {
  padding: 0.2rem 0.25rem;
  border-left: 1px solid #d2d2d2;
  border-right: 1px solid #d2d2d2;
  border-bottom: 0;
  border-top: 0;
  border-radius: 0;
}

.league-tabs button:first-child.active,
.points-tabs button:first-child.active,
.coaches-tabs button:first-child.active {
  border-left: none;
}

.league-tabs button:last-child.active,
.points-tabs button:last-child.active,
.coaches-tabs button:last-child.active {
  border-right: none;
}

.league-tabs button img,
.points-tabs button img,
.coaches-tabs button img {
  width: 1.1rem;
  height: 1.1rem;
  display: block;
  transition: transform var(--transition), filter var(--transition);
  filter: brightness(0.8);
}

.league-tabs button img svg,
.points-tabs button img svg,
.coaches-tabs button img svg {
  width: 2.1rem;
  height: 2.1rem;
  fill: var(--text-light);
  transition: fill var(--transition), transform var(--transition);
}

.league-tabs button:hover img,
.points-tabs button:hover img,
.coaches-tabs button:hover img {
  fill: var(--text-dark);
  transform: scale(1.05);
}

.league-tabs button.active img,
.points-tabs button.active img,
.coaches-tabs button.active img {
  fill: var(--text-dark);
}

.boxPlayerPoints {
    position: relative;
}

.boxPlayerPoints .points-tabs {
    display: flex;
    flex-wrap: wrap;
    overflow: visible;
    z-index: 2;
    margin-bottom: 0.5em;
}

.boxPlayerPoints .metric-tabs.pointsType {
    position: relative;
    z-index: 1;
    margin-top: 0.5em; /* ensures spacing even after content load */
    margin-bottom: 0.5em;
}

.boxPlayerPoints #pointsContents {
    margin-top: 0.5em;   /* distance from metric tabs */
    padding-top: 0.5em;  /* optional extra spacing */
}


/* -------------------- Tab content -------------------- */
.indexTabContent {
    padding: 0.2rem;
    flex: 1;
    display: none;
    flex-direction: column;
}

.indexTabContent.active  {
    display: flex;
    opacity: 1;
    transition: opacity 0.5s ease;
}




/* -------------------- Responsive -------------------- */

@media (max-width: 480px) {
  .container {
    flex-direction: column;
    margin-top: 60px;
    padding-bottom: 60px;
  }
}

@media (max-width: 1024px) {
    .box { flex: 1 1 calc(50% - 1rem); }
}

@media (max-width: 768px) {
    .box { flex: 1 1 100%; min-width: auto;}
    
    .pBoxTopRow { 
    	flex-direction: column; 
    	align-items: flex-start; 
    }
    
    .pBoxTopNames { 
    	margin-left: 0; 
    	margin-top: 0.5rem; 
    }
    	
    .pBoxTopHeads .pBoxRow.top { margin-left: -20px; margin-bottom: 10px; }
    .pBoxTopHeads { justify-content: flex-start; flex-wrap: wrap; }
}


/* ----------------- Player tables ------------------- */

.metric-container {
  display: flex;
  flex-direction: column;
}

.metric-link {
  text-decoration: none;
  display: flex;
  flex: 1;
  align-items: center;
}

.metric-row {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #ddd;
  width: 100%;
  gap: 1em;
  border-bottom: 1px solid #ddd;
}

.metric-row:last-child {
    border-bottom: none;
}

.metric-headShot {
	margin-right: 0.5em;
}

.metric-name {
  display: flex;
  flex-direction: column;
}

/* Left: headshot + name */
.metric-left {
    display: flex;
    align-items: center;
	min-width: 150px;
	flex-shrink: 0;
}

.metric-left .metric-link {
    display: flex;
    align-items: center;
}

.metric-name span {
    display: flex;
    flex-direction: column;
}

/* Right: bar + games */
.metric-right {
    display: flex;
    align-items: center;
    gap: 0.5em;
    flex: 1; /* take remaining ~60% width */
}

/* Games count */
.statCount {
    white-space: nowrap;
    font-size: 0.85em;
    color: #555;
}


/* ===============================
   Birthday Carousel Container
   =============================== */


/* ===============================
   Slides Wrapper
   =============================== */
.birthday-slides {
    position: relative;
    overflow: hidden;

}

/* ===============================
   Individual Cards
   =============================== */
.birthday-card {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-top: 50px;
}

.birthday-card.active {
    opacity: 1;
    position: relative;
}

/* ===============================
   Player Photo
   =============================== */
.player-photo {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 10px;
}

/* ===============================
   Player Rankings Tabs
   =============================== */

/* --- Overall box styling --- */
.boxPlayerRanking {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  width: 100%;
}

/* --- Tabs below heading --- */
.boxPlayerRanking .tabs {
  display: flex;
  flex-wrap: wrap; 
  gap: 8px;
  padding: 10px 20px;
  background: #fff;
  border-bottom: 1px solid #eee;
  width: 100%;
  box-sizing: border-box;
}

/* --- Tab buttons --- */
.boxPlayerRanking .tabs button {
  flex: 0 1 auto;
  background: #eaeaea;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 6px 12px;
  cursor: pointer;
  font-size: 14px;
  transition: background 0.2s, color 0.2s;
  white-space: nowrap; /* keep short tabs tidy */
}

.boxPlayerRanking .tabs button:hover {
  background: #ddd;
}

.boxPlayerRanking .tabs button.active {
  background: #333;
  color: #fff;
  border-color: #333;
}

/* --- Content area --- */
#rankingContents, #pointsContents {
  padding: 15px 20px;
  background: #fff;
  overflow-y: auto;
}





/* ===============================
   Player Info
   =============================== */
.player-info {
    text-align: center;
}

.player-name {
    font-size: 1.1rem;
    font-weight: bold;
    margin: 5px 0;
}

.player-age {
    font-size: 0.9rem;
    color: #555;
    margin: 2px 0;
}

.player-club {
    font-size: 0.85rem;
    color: #777;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.club-crest {
    width: 20px;
    height: 20px;
}

/* ===============================
   Navigation Dots
   =============================== */
/* Move dots to top-right corner */
.birthday-dots {
  position: absolute;
  top: 8px;              /* adjust as needed */
  right: 10px;           /* adjust for spacing */
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  z-index: 10;
}

/* Style for each dot */
.birthday-dots .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #ccc;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.birthday-dots .dot.active {
  background-color: #007bff; /* or your highlight color */
}

/* Ensure parent container is positioned */
.birthday-carousel {
  position: relative;
}


/* ===============================
   Clubs
   =============================== */
   
.club-card {
  display: none;
  opacity: 0;
  transition: opacity 0.6s ease;
  position: absolute;
  width: 100%;
}

.club-card.active {
  display: block;
}

.club-card.fade-in {
  opacity: 1;
  position: relative;
}




<style>


.leagueTable {
	width: 95%;
	margin: 0 auto;
	padding: 10px;
}

/* Make just the league table card background white */
#leagueTables {
    background-color: white;
    padding: 10px;        /* optional, match other card spacing */
    border-radius: 8px;   /* optional, match other cards */
    box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* optional for subtle depth */
}

        

    
.card-themed-hero {
    height: auto;
}

.card-themed-hero__content {
	padding-top: 0rem;
}

.card-themed-hero__content-wrap {
    display: flex;
    flex-direction: column; /* stack name + image vertically */
    align-items: center;    /* ← centres image horizontally */
    justify-content: flex-start;
}



.player-detail .detail-value {
    font-weight: bold;
    font-size: 1.3rem;
}

.player-details-grid {
	gap: 2.15rem;
	margin-top: 150px;
	margin-bottom: 20px;
}

.win-ratio-badge {
	width: 150px;
}

.win-ratio-badge .m1 {
	display: block;
	font-size: 0.7em;
}

.win-ratio-badge .m1V {
	display: block;
	font-size: 3em;
}

dd {
    margin-inline-start: 0;
}

.percent-symbol {
    font-size: 0.7em; /* smaller */
    vertical-align: super; /* optional: raises it slightly */
    margin-left: 1px;
}

.birthday-slider-track {
    display: flex;
    gap: 10px;
    position: relative;
}

.birthday-slider-track > .card-themed-hero {
    flex: 0 0 auto;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.birthday-slider-track > .card-themed-hero.active {
    opacity: 1;
    position: relative;
}

.card-themed-hero {
    position: relative; 
}

.card-themed-hero-image-wrapper {
    width: 120px;
    height: auto;
    justify-content: center;
    align-items: center;
    margin-top: 8px;
    position: absolute;
    margin-left: 200px;
}

.card-picture img {
    width: 110px;
    height: 110px;
    display: block;
}

.clubName {
    white-space: normal;
    display: block;
    max-width: 120px;
}

/* Container for dropdown */
.compDropdown {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    background-color: #f8f8f8; /* match card background */
    font-size: 13px;
    cursor: pointer;
    user-select: none;
    padding: 4px 0; /* minimal padding */
    position: relative;
}

/* Selected competition */
.compSelected {
    margin-right: 8px;
    padding: 2px 4px;
    color: #333;
    font-size: 14px;
    font-weight: 800;
}

/* Arrow */
.compArrow {
    transition: transform 0.2s ease;
    width: 10px;
    height: 10px;
    margin-left: 4px;
}

/* Rotate when open */
.compDropdown.open .compArrow {
    transform: rotate(180deg);
}

/* Options list */
.compList {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #f8f8f8;
    list-style: none;
    padding: 0;
    margin: 0;
    display: none;
    z-index: 50;
    border-radius: 10px;
}

/* Show list when open */
.compDropdown.open .compList {
    display: block;
}

/* Option styling */
.compOption {
    padding: 10px 10px;
    color: #333;
    font-size: 14px;
    font-weight: 800;
}

/* Hover effect */
.compOption:hover {
    background-color: #fff;
}


.results-bar-container {	
	border-radius: 10px;
	box-sizing: border-box;
	display: flex;
	gap: 5px;
	margin-bottom: 25px;
	margin-top: 25px;
	margin: 0 auto;
    overflow-x: auto;      /* allow horizontal scroll */
    overflow-y: hidden;    /* no vertical scroll */
    white-space: nowrap;   /* keep items on a single line */
    -webkit-overflow-scrolling: touch; /* smooth scroll on iOS */
    scrollbar-width: none; /* Firefox: hide scrollbar */
    -ms-overflow-style: none; /* IE 10+ */
	padding: 5px 0;
	padding: 8px 0;
	position: relative;
	width: 95vw;
}

/* Animate the inner content */
.results-bar-container::before {
    content: '';
    display: block;
    width: 0;
    height: 0;
}

.results-bar-container .results-bar-item {
    flex: 0 0 150px;
}

.results-bar-item {
    display: flex;
    justify-content: space-between;
    background-color: white;
    border: 1px solid #f8f8f8;
    padding: 5px;
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
    transition: background-color 0.2s;
}

.results-bar-item:hover {
    background-color: #e0e0e0;
}

/* Left column: home/away teams */
.results-left {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Each row for team */
.team-row {
    display: grid;
    grid-template-columns: 30px 40px 30px; /* crest | abbr | score */
    align-items: center;
    gap: 5px;
}

.team-row .crest img {
    width: 30px;
    height: 30px;
    object-fit: contain;
}

.team-row .abbr {
    font-weight: bold;
    text-transform: uppercase;
}

.team-row .score {
    font-weight: bold;
    text-align: right;
}

/* Right column: competition logo */
.results-right {
    display: flex;
    align-items: center;
    padding-left: 5px;
}

.results-right img {
    width: 30px;
    height: 30px;
    object-fit: contain;
}

.container {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1rem;
    padding-bottom: 60px;
    justify-content: center;
}


.cardFrame {
	display: block;
    position: relative;
    overflow: hidden;
    border-radius: 0.4rem;
    padding-bottom: 0;
    width: 90%;
    max-width: 400px;
    margin-top: 10px;
}


.streak-ticker {
    width: 100%;
    overflow: hidden;
    white-space: nowrap;   /* prevents wrapping! */
    position: relative;
}

.ticker-inner {
    display: flex;         /* ensures horizontal layout */
    white-space: nowrap;   /* critical */
    animation: tickerScroll var(--tickerTime) linear infinite;
}

.ticker-copy {
    display: inline-block;
    padding-right: 2rem;   /* space between loops */
}

/* Container for the vertical label */
.vertical-label {
    display: flex;
    align-items: center;
    gap: 6px;              /* space between text and icon */
    font-size: 0.85rem;
    font-weight: 600;
    color: #fff;            /* adjust to your card text color */
    position: relative;
}

.vertical-label {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    writing-mode: sideways-lr;
    text-orientation: upright;
    transform: rotate(0deg);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.25rem 0.5rem;
    font-weight: bold;
    font-size: 0.75rem;
    color: #fff;
    background: rgba(0,0,0,0.2);
    box-sizing: border-box;
    z-index: 10;
}

.vertical-label-link {
    display: flex;
    align-items: center;
    gap: 0.3rem;       /* spacing between text and icon */
    text-decoration: none;
    color: inherit;
    padding: 0.1rem 0.2rem; /* enlarge clickable area */
}

.vertical-label img {
    width: 18px;        /* bigger icon */
    height: 18px;
    transition: transform 0.5s ease, box-shadow 0.5s ease;
}

.vertical-label-link:hover .label-icon {
    transform: rotate(360deg);
    box-shadow: 0 0 6px rgba(255, 255, 255, 0.8);
}










/* ===============================
   Responsive Tweaks
   =============================== */
@media (max-width: 600px) {
    .birthday-card {
        flex-direction: column;
    }

    .player-photo {
        width: 60px;
        height: 60px;
    }

    .player-name {
        font-size: 1rem;
    }

    .player-age,
    .player-club {
        font-size: 0.8rem;
    }

  .tab {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.375rem;
  }

  .tab button {
    flex: 1 1 auto;
    font-size: 1rem;
    padding: 0.625rem 0.75rem;
    border-radius: 0.75rem;
  }
}

