:root{
  --bg:#eef4fb;
  --bg2:#f8fbff;
  --panel:#ffffff;
  --panel-alt:#f4f8fd;
  --panel-line:#d9e5f3;
  --text:#10233e;
  --muted:#677b95;
  --nav:#0d2241;
  --blue:#246bff;
  --blue2:#1d4ed8;
  --blue-soft:#d8e8ff;
  --cyan:#1ca6d9;
  --red:#db334f;
  --green:#20b46d;
  --shadow:0 18px 48px rgba(21,53,99,.10);
  --shadow-soft:0 10px 24px rgba(22,52,96,.06);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at top right, rgba(44,106,255,.16), transparent 26%),
    linear-gradient(180deg, #f8fbff 0%, #edf4fb 58%, #f8fbff 100%);
  font:15px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.site-bg{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 80% 0%, rgba(30,99,255,.12), transparent 22%);z-index:-1}
.topbar{
  height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 max(24px,calc((100vw - 1240px)/2));
  background:rgba(255,255,255,.82);
  border-bottom:1px solid rgba(197,213,232,.8);
  backdrop-filter:blur(18px);
  position:sticky;top:0;z-index:10;
}
.brand{display:flex;align-items:center;gap:14px;color:var(--text);text-decoration:none}
.brand-logo{width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 8px 16px rgba(0,0,0,.12))}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text b{font-size:18px;letter-spacing:.02em}
.brand-text small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.16em;margin-top:3px}
.topbar nav{display:flex;align-items:center;gap:22px}
.topbar a,.link{color:var(--text);text-decoration:none;background:none;border:0;font:inherit;font-weight:600;cursor:pointer}
.topbar nav a:hover,.link:hover{color:var(--blue2)}
.inline{display:inline}
main{max-width:1240px;margin:auto;padding:36px 24px 80px}
.hero{
  background:linear-gradient(135deg, #17335f 0%, #1f4b8e 58%, #2d71cf 100%);
  color:#fff;
  border-radius:32px;
  padding:38px 40px;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.hero:before,
.hero:after{content:"";position:absolute;border-radius:50%;opacity:.22}
.hero:before{width:420px;height:420px;border:70px solid rgba(255,255,255,.18);right:-120px;top:-120px}
.hero:after{width:250px;height:250px;border:48px solid rgba(255,255,255,.08);left:-110px;bottom:-120px}
.hero-matchup{display:grid;grid-template-columns:1.3fr .9fr;gap:30px;align-items:center}
.hero-copy,.hero-versus-card{position:relative;z-index:1}
.eyebrow{margin:0;color:#7de6ff;font-size:12px;font-weight:900;letter-spacing:.19em;text-transform:uppercase}
.hero h1{margin:10px 0 16px;font-size:clamp(42px,6vw,70px);line-height:.95;max-width:720px}
.hero h1 span{font-size:.34em;font-weight:700;color:#b8ebff}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px;color:#e1ecfb;font-weight:600}
.hero-versus-card{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);border-radius:26px;padding:24px;display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;backdrop-filter:blur(10px)}
.hero-team-side{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;font-weight:800;font-size:22px}
.hero-team-logo{width:92px;height:92px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.22))}
.hero-vs{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);font-weight:900;letter-spacing:.1em}
.section-head,.admin-title{display:flex;justify-content:space-between;align-items:end;gap:20px}
.section-head{margin:46px 0 20px}
.section-head h2,.admin-title h1{margin:4px 0 2px;font-size:34px;line-height:1.05}
.section-sub{margin:0;color:var(--muted);max-width:620px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.results-grid{margin-bottom:10px}
.match-card,.panel,.stat{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(246,250,255,.98));
  border:1px solid var(--panel-line);
  border-radius:24px;
  box-shadow:var(--shadow-soft);
}
.match-card{padding:20px}
.match-meta{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:13px;align-items:center}
.badge{display:inline-flex;align-items:center;justify-content:center;border:1px solid #bed2f3;background:#eef5ff;color:#2153a3;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.final .badge{background:#eefcf5;border-color:#bbebd1;color:#107248}
.live .badge{background:#fff1f3;border-color:#f3bec7;color:#b81837}
.teams{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;margin:20px 0 16px}
.team{display:flex;align-items:center;gap:12px;min-width:0}
.team-right{justify-content:flex-end;text-align:right}
.team-right .team-copy{align-items:flex-end}
.team-logo-wrap{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(180deg,#fff,#edf4ff);border:1px solid var(--panel-line);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.team-logo{width:46px;height:46px;object-fit:contain}
.team-fallback{font-weight:900;color:var(--blue2)}
.team-copy{display:flex;flex-direction:column;min-width:0}
.team-copy strong{font-size:20px;line-height:1.1}
.score-block{text-align:center}
.score{font-size:34px;font-weight:950;letter-spacing:.02em;line-height:1}
.versus{margin-top:7px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.venue-row{border-top:1px solid #e6eef8;padding-top:14px}
.venue{color:var(--muted);font-size:14px;font-weight:600}
.admin-main{max-width:1400px}
.admin-title{margin-bottom:24px}
.primary,.button{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  border:0;border-radius:14px;padding:13px 18px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;
  font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 12px 26px rgba(36,107,255,.24)
}
.secondary{background:#f4f8ff;color:var(--text);border:1px solid var(--panel-line);box-shadow:none}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}
.stat,.panel{padding:22px}
.stat span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.stat b{display:block;margin-top:8px;font-size:31px;line-height:1.05}
.stat b.small{font-size:13px;line-height:1.5;word-break:break-word}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.panel h2{margin:4px 0 14px}
.status-row{display:flex;gap:10px;align-items:center}.dot{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(32,180,109,.12)}.dot.bad{background:var(--red);box-shadow:0 0 0 5px rgba(219,51,79,.10)}
dl{display:grid;grid-template-columns:110px 1fr;gap:8px;margin:16px 0 0;color:var(--muted)}dd{margin:0;color:var(--text);font-weight:700}
.feature-list{margin:0;padding-left:18px;color:var(--muted)}
.feature-list li+li{margin-top:8px}
.mini-match{padding:16px;border:1px solid var(--panel-line);border-radius:18px;background:linear-gradient(180deg,#fff,#f7fbff)}
.mini-match-top{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}
.mini-match-body{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;margin:16px 0 12px}
.mini-score{font-weight:950;font-size:24px}
.mini-side .team-logo-wrap{width:48px;height:48px}.mini-side .team-logo{width:36px;height:36px}.mini-side .team-copy strong{font-size:16px}.mini-venue{padding-top:12px;border-top:1px solid #e6eef8;color:var(--muted);font-size:13px}
.event-list>div{display:grid;grid-template-columns:140px 1fr 220px;gap:16px;padding:12px 0;border-top:1px solid #e7eef8}.event-list time{color:var(--muted);font-size:12px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:980px}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid #e6eef8;vertical-align:top}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}tbody tr:hover{background:#f7fbff}.score-cell{font-weight:950;font-size:18px}details summary{cursor:pointer;color:var(--blue2)}pre{max-width:520px;max-height:420px;overflow:auto;background:#0c1730;color:#eff6ff;padding:12px;border-radius:10px;font-size:11px}
.auth-wrap{min-height:calc(100vh - 150px);display:grid;place-items:center}.auth{width:min(450px,100%)}.auth h1{margin:6px 0 10px}label{display:block;margin:15px 0;color:var(--muted);font-weight:600}input{width:100%;margin-top:6px;background:#fff;border:1px solid var(--panel-line);color:var(--text);padding:13px;border-radius:12px;box-shadow:inset 0 1px 3px rgba(20,49,87,.03)}input:focus{outline:none;border-color:#8cb0ef;box-shadow:0 0 0 4px rgba(36,107,255,.10)}.alert{padding:11px 12px;border-radius:12px}.error{background:#ffe8ed;color:#8a1830;border:1px solid #f3c7d1}
footer{border-top:1px solid rgba(197,213,232,.7);padding:24px;color:var(--muted);text-align:center;font-size:12px;background:rgba(255,255,255,.4)}code{color:var(--blue2)}
@media (max-width: 980px){
  .hero-matchup,.grid,.admin-grid,.stats{grid-template-columns:1fr}
  .hero h1{font-size:42px}
}
@media (max-width: 720px){
  .topbar{padding:0 16px;height:auto;min-height:72px;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}
  main{padding:24px 16px 60px}
  .hero{padding:24px}
  .hero-versus-card{grid-template-columns:1fr;gap:14px}
  .hero-vs{margin-inline:auto}
  .section-head h2,.admin-title h1{font-size:28px}
  .teams,.mini-match-body{grid-template-columns:1fr;gap:12px}
  .score-block,.mini-score{text-align:left}
  .team-right{justify-content:flex-start;text-align:left}
  .team-right .team-copy{align-items:flex-start}
  .event-list>div{grid-template-columns:1fr}
}
.match-link{display:block;color:inherit;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.match-link:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(22,52,96,.12);border-color:#b8cfee}
.back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;color:var(--blue2);font-weight:800;text-decoration:none}
.match-detail-hero{background:linear-gradient(135deg,#16345f 0%,#255ba6 100%);color:#fff;border-radius:30px;padding:30px 34px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.detail-status{display:flex;justify-content:space-between;align-items:center;color:#dce9fb;gap:14px}
.detail-matchup{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin:30px 0 22px}
.detail-team{text-align:center}.detail-team img{width:140px;height:140px;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(0,0,0,.22))}.detail-team h1{margin:10px 0 0;font-size:34px}
.detail-score{text-align:center;display:flex;flex-direction:column;gap:8px}.detail-score b{font-size:58px;line-height:1}.detail-score span{font-size:12px;font-weight:900;letter-spacing:.16em;color:#bdefff}
.detail-location{text-align:center;color:#e3eefb;font-weight:700}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}
.detail-dl{grid-template-columns:130px 1fr}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}
.period-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.period-grid div{background:#f2f7fd;border:1px solid var(--panel-line);border-radius:14px;padding:14px;text-align:center}.period-grid span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase}.period-grid b{display:block;font-size:20px;margin-top:4px}
.scorer-list{list-style:none;padding:0;margin:0}.scorer-list li{padding:10px 0;border-bottom:1px solid #e8eff8;font-weight:700}.muted-copy{color:var(--muted)}
.media-card{background:#fff;border:1px solid var(--panel-line);border-radius:22px;padding:20px;box-shadow:var(--shadow-soft)}.media-card-top{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.media-match{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;margin:22px 0;font-size:22px}.media-match strong:last-child{text-align:right}.media-match span{font-weight:950;color:var(--blue2)}.media-actions{display:flex;justify-content:flex-end}
.poster-page{max-width:1180px}.poster-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.poster-canvas{aspect-ratio:4/5;border-radius:32px;padding:54px;background:linear-gradient(155deg,#0e274d 0%,#1d56a2 58%,#24497a 100%);color:#fff;box-shadow:0 24px 70px rgba(22,52,96,.24);position:relative;overflow:hidden}.poster-canvas:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.18),transparent 28%),linear-gradient(120deg,transparent 0 68%,rgba(219,51,79,.35) 68% 72%,transparent 72%)}.poster-canvas>*{position:relative;z-index:1}.poster-kicker{font-size:28px;font-weight:950;letter-spacing:.18em;color:#ff4d68}.poster-season{margin-top:10px;color:#cfe3ff;font-weight:700;letter-spacing:.08em}.poster-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;margin-top:90px}.poster-team{text-align:center}.poster-team img{width:200px;height:200px;object-fit:contain;filter:drop-shadow(0 14px 28px rgba(0,0,0,.28))}.poster-team strong{display:block;font-size:44px;margin-top:14px}.poster-center{text-align:center}.poster-center b{display:block;font-size:72px}.poster-center span{display:block;margin-top:16px;color:#d7e8ff;font-size:18px;font-weight:700}.poster-venue{text-align:center;margin-top:70px;font-size:24px;font-weight:800}.poster-brand{position:absolute;left:54px;bottom:42px;display:flex;align-items:center;gap:14px;font-weight:900;letter-spacing:.13em}.poster-brand img{width:54px;height:54px;object-fit:contain}.poster-note{color:var(--muted);max-width:900px;margin:18px auto 0;text-align:center}
@media(max-width:720px){.detail-matchup,.detail-grid,.poster-teams{grid-template-columns:1fr}.detail-team img{width:110px;height:110px}.period-grid{grid-template-columns:repeat(2,1fr)}.poster-canvas{padding:28px}.poster-team img{width:130px;height:130px}.poster-team strong{font-size:30px}.poster-center b{font-size:48px}.poster-brand{position:static;margin-top:40px}}
.page-hero{background:linear-gradient(135deg,#17345f,#2d6fd0);color:#fff;border-radius:28px;padding:34px 38px;box-shadow:var(--shadow);display:flex;justify-content:space-between;gap:24px;align-items:center}.compact-hero h1{margin:6px 0 8px;font-size:46px}.compact-hero p{margin:0;color:#dceaff}.hero-count{min-width:160px;text-align:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:18px}.hero-count b{display:block;font-size:42px}.hero-count span{font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:#dceaff}.league-tabs{display:flex;gap:10px;flex-wrap:wrap}.league-tabs a{color:#e7f0ff;text-decoration:none;border:1px solid rgba(255,255,255,.24);padding:10px 15px;border-radius:999px;font-weight:800}.league-tabs a.active{background:#fff;color:#1d4ed8}.leaderboard-panel{margin-top:22px}.players-head{margin:0 0 14px}.leaders-table{min-width:860px}.leaders-table td{font-weight:600}.rank-cell{font-size:18px;font-weight:950;color:var(--blue2)}.points-cell{font-size:18px;font-weight:950;color:var(--blue2)}.player-name{display:flex;align-items:center;gap:8px}.player-name small{color:var(--muted);font-weight:700}.empty-state{padding:38px;border:1px dashed #c7d7ec;border-radius:18px;background:#f8fbff;color:var(--muted);text-align:center}.empty-state h3{margin:0 0 8px;color:var(--text)}
@media(max-width:1080px){.topbar nav{gap:14px;font-size:13px;flex-wrap:wrap;justify-content:flex-end}.brand-text small{display:none}}
@media(max-width:720px){.page-hero{flex-direction:column;align-items:flex-start;padding:24px}.compact-hero h1{font-size:36px}.hero-count{width:100%}.topbar nav{width:100%;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.topbar nav a,.topbar nav .link{white-space:nowrap}}

/* Player Center team filters */
.player-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:8px 0 18px;padding:18px;border-radius:18px;background:linear-gradient(135deg,#f6faff,#edf5ff);border:1px solid var(--panel-line)}
.player-summary{display:flex;gap:26px}.player-summary>div{display:flex;flex-direction:column}.player-summary span{font-size:10px;letter-spacing:.14em;font-weight:800;color:var(--muted)}.player-summary b{font-size:24px;color:var(--text)}
.player-search-wrap{width:min(390px,100%)}.player-search{margin:0;background:#fff}
.team-filter-bar{display:flex;gap:10px;overflow-x:auto;padding:2px 1px 14px;margin-bottom:4px;scrollbar-width:thin}
.team-filter{flex:0 0 auto;display:flex;align-items:center;gap:9px;border:1px solid var(--panel-line);background:#fff;color:var(--text);padding:9px 12px;border-radius:14px;font:inherit;font-weight:750;cursor:pointer;box-shadow:0 6px 16px rgba(18,54,96,.04);transition:.18s ease}
.team-filter:hover{transform:translateY(-1px);border-color:#9ebceb}.team-filter.active{background:linear-gradient(135deg,#1e5ed2,#2e79e9);color:#fff;border-color:transparent;box-shadow:0 10px 24px rgba(36,107,255,.22)}
.team-filter img{width:28px;height:28px;object-fit:contain}.team-filter b{min-width:23px;height:23px;display:grid;place-items:center;padding:0 6px;border-radius:999px;background:#edf4ff;color:#315e9e;font-size:11px}.team-filter.active b{background:rgba(255,255,255,.18);color:#fff}.filter-fallback,.all-teams-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#edf4ff;color:#275eae;font-size:10px;font-weight:900}.team-filter.active .filter-fallback,.team-filter.active .all-teams-icon{background:rgba(255,255,255,.16);color:#fff}
.active-filter-line{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 2px 10px;color:var(--muted);font-size:13px}.active-filter-line span{font-weight:750;color:var(--text)}.active-filter-line strong{font-weight:700;color:var(--blue2)}
.player-team-cell{display:flex;align-items:center;gap:9px}.player-team-cell img{width:30px;height:30px;object-fit:contain}
.leaders-table tbody tr[hidden]{display:none}
@media(max-width:760px){.player-controls{align-items:stretch;flex-direction:column}.player-search-wrap{width:100%}.active-filter-line{align-items:flex-start;flex-direction:column}.team-filter-bar{margin-inline:-2px}.player-summary{justify-content:space-between}}


/* Multi-league: Estonia + Finland */
.source-switcher{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:34px 0 4px;padding:18px 22px;border:1px solid var(--panel-line);background:rgba(255,255,255,.76);border-radius:20px;box-shadow:var(--shadow-soft)}
.source-switcher.compact{margin-top:22px}
.source-switcher h2{margin:3px 0 0;font-size:22px}
.source-tabs{display:flex;gap:8px;flex-wrap:wrap}
.source-tabs a{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:10px 15px;border-radius:999px;border:1px solid #cbdcf1;background:#f8fbff;color:var(--text);font-weight:800;text-decoration:none}
.source-tabs a.active{background:linear-gradient(135deg,var(--blue),var(--blue2));border-color:transparent;color:#fff;box-shadow:0 8px 20px rgba(36,107,255,.18)}
.meta-badges{display:flex;align-items:center;gap:7px}
.source-chip{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:950;letter-spacing:.11em}
.source-chip.estonia{background:#e8f2ff;color:#2457a6}
.source-chip.finland{background:#e8f8ff;color:#08739b;border:1px solid #bde7f7}
.result-archive-card{padding:0;overflow:hidden}
.result-main-link{display:block;padding:20px;color:inherit;text-decoration:none}
.result-main-link:hover{background:linear-gradient(180deg,rgba(244,249,255,.8),rgba(255,255,255,.15))}
.game-doc-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.result-archive-card>.game-doc-actions{margin:0;padding:14px 20px 18px;border-top:1px solid #e6eef8;background:rgba(244,248,253,.72)}
.doc-button{display:inline-flex;align-items:center;gap:9px;min-height:42px;padding:10px 14px;border-radius:12px;border:1px solid var(--panel-line);background:#fff;color:var(--text);font-weight:800;text-decoration:none;box-shadow:0 5px 16px rgba(22,52,96,.05);transition:.18s ease}
.doc-button:hover{transform:translateY(-1px);border-color:#9dbbf0;box-shadow:0 8px 22px rgba(22,52,96,.10)}
.doc-button.report{background:linear-gradient(135deg,#173c77,#246bff);color:#fff;border-color:transparent}
.doc-button.roster{background:#f8fbff}
.doc-icon{display:grid;place-items:center;min-width:28px;height:28px;padding:0 5px;border-radius:8px;background:#e8f1ff;color:#1f54a8;font-size:10px;font-weight:950}
.doc-button.report .doc-icon{background:rgba(255,255,255,.16);color:#fff}
.documents-panel{grid-column:1/-1}
.report-kpis{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.report-kpis>div{min-width:140px;padding:14px 16px;border-radius:14px;background:#f4f8fd;border:1px solid var(--panel-line)}
.report-kpis span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.report-kpis b{display:block;margin-top:5px;font-size:19px}
@media(max-width:720px){.source-switcher{align-items:flex-start;flex-direction:column}.source-tabs{width:100%}.source-tabs a{flex:1}.game-doc-actions{flex-direction:column}.doc-button{width:100%;justify-content:center}}


/* Finland scoring summary */
.goal-list{display:flex;flex-direction:column;margin-top:18px;border-top:1px solid #e5edf7}
.goal-row{display:grid;grid-template-columns:78px 74px 1fr;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid #e5edf7}
.goal-time{display:flex;align-items:center;gap:7px}
.goal-time b{display:grid;place-items:center;min-width:30px;height:30px;border-radius:9px;background:#e8f2ff;color:#2457a6;font-size:11px}
.goal-time span{font-weight:800;color:var(--text)}
.goal-score{font-size:22px;font-weight:950;color:var(--blue2)}
.goal-main{display:flex;flex-direction:column;gap:2px}
.goal-main strong{font-size:17px}
.goal-main small{color:var(--muted);font-weight:600}
.goal-team{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--cyan);font-weight:900}
.jersey{color:var(--muted);font-weight:800;font-size:.86em}
@media(max-width:720px){.goal-row{grid-template-columns:1fr 1fr}.goal-main{grid-column:1/-1}}


.finland-sync-note{margin-top:12px;padding:12px 14px;border-radius:12px;background:#eef9ff;border:1px solid #c7eafb;color:#17617e;font-size:13px;font-weight:650}


/* Leaders Center */
.leaders-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:26px 0}
.leader-card{padding:0;overflow:hidden}
.leader-card-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:24px 24px 18px;border-bottom:1px solid #e4ebf4}
.leader-card-head h2{margin:3px 0 0}
.leader-card-count{font-size:11px;font-weight:900;letter-spacing:.1em;color:var(--muted);background:#f3f6fa;border:1px solid #e1e8f0;border-radius:999px;padding:7px 10px}
.leader-list{display:flex;flex-direction:column}
.leader-row{display:grid;grid-template-columns:34px 44px 1fr auto;align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid #edf1f6}
.leader-row:last-child{border-bottom:0}
.leader-rank{font-size:16px;font-weight:950;color:#8190a5;text-align:center}
.leader-row:nth-child(1) .leader-rank,.leader-row:nth-child(2) .leader-rank,.leader-row:nth-child(3) .leader-rank{color:var(--blue2)}
.leader-avatar{width:40px;height:40px;border-radius:12px;background:#f3f6fa;border:1px solid #e1e8f0;display:grid;place-items:center;overflow:hidden}
.leader-avatar img{width:30px;height:30px;object-fit:contain}
.leader-avatar span{font-size:10px;font-weight:950;color:var(--blue2)}
.leader-player{min-width:0;display:flex;flex-direction:column;gap:2px}
.leader-player strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leader-player small{color:var(--muted);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leader-value{min-width:58px;text-align:right;display:flex;flex-direction:column}
.leader-value b{font-size:24px;line-height:1;color:var(--blue2)}
.leader-value span{font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--muted);margin-top:4px}
.leaders-note{margin-bottom:28px}
.compact-empty{margin:18px}
.leader-tabs{flex-wrap:wrap}

.home-leaders{margin-top:34px}
.home-leader-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.home-leader-card{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:14px;padding:18px;border-radius:18px;background:#fff;border:1px solid #dde6f0;box-shadow:0 10px 30px rgba(30,57,89,.06)}
.home-leader-icon{width:50px;height:50px;border-radius:15px;background:#f4f7fb;display:grid;place-items:center;overflow:hidden}
.home-leader-icon img{width:38px;height:38px;object-fit:contain}
.home-leader-icon span{font-size:11px;font-weight:950;color:var(--blue2)}
.home-leader-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.home-leader-copy>span{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}
.home-leader-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-leader-copy small{color:var(--muted);font-weight:650}
.home-leader-value{display:flex;flex-direction:column;text-align:right}
.home-leader-value b{font-size:28px;line-height:1;color:var(--blue2)}
.home-leader-value span{font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--muted);margin-top:4px}

@media(max-width:980px){
  .leaders-grid{grid-template-columns:1fr}
  .home-leader-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .leader-row{grid-template-columns:28px 38px 1fr auto;padding:12px 12px;gap:9px}
  .leader-avatar{width:36px;height:36px}
  .leader-avatar img{width:28px;height:28px}
  .leader-value b{font-size:21px}
}


/* Leaders filter contrast fix */
.source-switcher .league-tabs a,
.leader-tabs a{
  color:#3f5674 !important;
  background:#f7faff;
  border:1px solid #d9e4f1;
  opacity:1 !important;
  font-weight:800;
}

.source-switcher .league-tabs a:hover,
.leader-tabs a:hover{
  color:#184a96 !important;
  background:#eef5ff;
  border-color:#bdd2ef;
}

.source-switcher .league-tabs a.active,
.leader-tabs a.active{
  color:#1e4fb8 !important;
  background:#ffffff;
  border-color:#cbd9ee;
  box-shadow:0 6px 18px rgba(31,79,160,.08);
}

@media (prefers-color-scheme: dark){
  .source-switcher .league-tabs a,
  .leader-tabs a{
    color:#dce8f8 !important;
    background:#1e2c3f;
    border-color:#3a4f6a;
  }
}


/* Keep Panter players visible below true Top 10 */
.panter-extra-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 20px;
  background:#eef6ff;
  border-top:1px solid #d7e6f7;
  border-bottom:1px solid #d7e6f7;
}
.panter-extra-label span{
  font-size:10px;
  font-weight:950;
  letter-spacing:.1em;
  color:#1f5bb7;
}
.panter-extra-label small{
  font-size:11px;
  color:var(--muted);
  font-weight:700;
}
.panter-extra-row{
  background:#fbfdff;
}
.panter-extra-row .leader-rank{
  color:#1f5bb7;
  font-weight:950;
}


/* Clickable leader rows + player scoring history */
.leader-row-link,
.home-leader-link{
  color:inherit;
  text-decoration:none;
}
.leader-row-link{cursor:pointer}
@media (hover:hover) and (pointer:fine){
  .leader-row-link:hover{background:#f5f9ff}
  .home-leader-link:hover{border-color:#b7cdea;transform:translateY(-1px)}
}
.leader-row-link:focus-visible,
.home-leader-link:focus-visible{outline:3px solid rgba(37,99,235,.22);outline-offset:-3px}

.player-detail-hero{
  display:grid;
  grid-template-columns:92px minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
  margin:20px 0 24px;
  padding:28px;
  border-radius:24px;
  background:linear-gradient(115deg,#173d72,#2f70d2);
  color:#fff;
}
.player-detail-logo{
  width:86px;height:86px;border-radius:22px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
}
.player-detail-logo img{width:68px;height:68px;object-fit:contain}
.player-detail-logo span{font-weight:950;font-size:18px}
.player-detail-title h1{margin:4px 0 5px;font-size:34px}
.player-detail-title p:last-child{margin:0;color:#dce9fb;font-weight:700}
.player-detail-stats{display:grid;grid-template-columns:repeat(4,72px);gap:8px}
.player-detail-stats>div{
  min-height:70px;border-radius:16px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.player-detail-stats b{font-size:25px;line-height:1}
.player-detail-stats span{font-size:10px;font-weight:900;letter-spacing:.08em;margin-top:7px;color:#dbe9fb}

.goal-proof-total{display:flex;flex-direction:column;text-align:right}
.goal-proof-total b{font-size:34px;line-height:1;color:var(--blue2)}
.goal-proof-total span{font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--muted);margin-top:6px}
.player-game-list{border-top:1px solid #e7edf5;margin-top:18px}
.player-game-row{
  display:grid;grid-template-columns:130px minmax(0,1fr) 80px 120px;
  gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid #e7edf5;
}
.player-game-date{display:flex;flex-direction:column;gap:2px}
.player-game-date span,.player-game-match small{color:var(--muted);font-weight:650}
.player-game-match{display:flex;flex-direction:column;gap:3px;min-width:0}
.player-game-match>strong b{color:var(--blue2);margin:0 6px}
.player-goal-events{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.player-goal-events span{font-size:10px;font-weight:900;color:#2056a6;background:#edf5ff;border:1px solid #d5e6fb;border-radius:999px;padding:4px 7px}
.player-game-goals{text-align:center;display:flex;flex-direction:column}
.player-game-goals b{font-size:28px;line-height:1;color:var(--blue2)}
.player-game-goals span{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--muted);margin-top:5px}
.player-game-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.player-game-actions a{font-size:12px;font-weight:850;color:var(--blue2);text-decoration:none}
.player-game-actions a:hover{text-decoration:underline}

@media(max-width:850px){
  .player-detail-hero{grid-template-columns:72px 1fr}
  .player-detail-logo{width:68px;height:68px}
  .player-detail-logo img{width:54px;height:54px}
  .player-detail-stats{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}
  .player-game-row{grid-template-columns:100px 1fr 60px}
  .player-game-actions{grid-column:2/-1;flex-direction:row;justify-content:flex-start}
}
@media(max-width:560px){
  .player-detail-title h1{font-size:26px}
  .player-detail-hero{padding:20px}
  .player-detail-stats{grid-template-columns:repeat(2,1fr)}
  .player-game-row{grid-template-columns:1fr 54px}
  .player-game-date{grid-column:1/-1;flex-direction:row;gap:10px}
  .player-game-actions{grid-column:1/-1}
}

/* Team Center */
.teams-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0}.team-card{display:flex;flex-direction:column;gap:18px;padding:20px;border:1px solid #dce6f2;border-radius:20px;background:#fff;text-decoration:none;color:inherit;box-shadow:0 8px 26px rgba(27,54,86,.05)}.team-card-top{display:flex;align-items:center;gap:13px}.team-card-logo{width:58px;height:58px;border-radius:16px;background:#f4f7fb;border:1px solid #e0e8f2;display:grid;place-items:center;overflow:hidden}.team-card-logo img{width:46px;height:46px;object-fit:contain}.team-card-logo span{font-size:12px;font-weight:950;color:var(--blue2)}.team-card-title{display:flex;flex-direction:column;gap:3px;min-width:0}.team-card-title strong{font-size:19px}.team-card-title small{color:var(--muted);font-weight:650}.team-card-record{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.team-card-record>div{background:#f6f9fd;border:1px solid #e5edf6;border-radius:12px;padding:9px 5px;display:flex;flex-direction:column;align-items:center}.team-card-record b{font-size:17px;color:var(--blue2)}.team-card-record span{font-size:9px;font-weight:900;letter-spacing:.06em;color:var(--muted);margin-top:3px}.team-card-footer{display:flex;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid #edf1f6;color:var(--muted);font-size:11px;font-weight:700}.team-detail-hero{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:24px;align-items:center;margin:20px 0 24px;padding:30px;border-radius:26px;background:linear-gradient(115deg,#173d72,#2f70d2);color:#fff}.team-detail-logo{width:112px;height:112px;border-radius:24px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;overflow:hidden}.team-detail-logo img{width:90px;height:90px;object-fit:contain}.team-detail-logo span{font-size:20px;font-weight:950}.team-detail-title h1{font-size:40px;margin:4px 0 6px}.team-detail-title p:last-child{margin:0;color:#dbe8fa;font-weight:700}.team-detail-record{display:grid;grid-template-columns:repeat(6,66px);gap:7px}.team-detail-record>div{height:68px;border-radius:15px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;align-items:center;justify-content:center}.team-detail-record b{font-size:23px;line-height:1}.team-detail-record span{font-size:9px;font-weight:900;letter-spacing:.08em;color:#d9e7fb;margin-top:6px}.team-leaders-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}.team-leader-box{padding:18px 20px;border-radius:18px;background:#fff;border:1px solid #dce6f2;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:4px}.team-leader-box span{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}.team-leader-box strong{font-size:18px}.team-leader-box small{color:var(--muted);font-weight:700}.team-leader-box.empty{opacity:.65}.team-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:22px 0}.team-match-list{border-top:1px solid #e7edf5}.team-match-row{display:grid;grid-template-columns:95px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #e7edf5;text-decoration:none;color:inherit}.team-match-date{display:flex;flex-direction:column;gap:2px}.team-match-date span,.team-match-opponent span,.team-match-opponent small{color:var(--muted);font-size:11px;font-weight:650}.team-match-opponent{display:flex;flex-direction:column;gap:2px;min-width:0}.team-match-score{display:flex;align-items:center;gap:8px}.team-match-score b{font-size:22px;color:var(--blue2)}.team-match-score>span:not(.result-chip){font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--muted)}.result-chip{display:grid;place-items:center;min-width:26px;height:26px;border-radius:999px;font-size:10px;font-weight:950}.result-chip.w{background:#e7f8ee;color:#187443}.result-chip.l{background:#fff0f0;color:#b43f3f}.result-chip.d{background:#eef3fb;color:#52677f}.team-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.team-player-card{display:grid;grid-template-columns:50px 1fr auto;gap:12px;align-items:center;padding:13px 15px;border:1px solid #e2e9f2;border-radius:14px;text-decoration:none;color:inherit;background:#fbfdff}.team-player-number{font-size:16px;font-weight:950;color:var(--blue2)}.team-player-main{display:flex;flex-direction:column;gap:2px;min-width:0}.team-player-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-player-main small{color:var(--muted);font-weight:650}.team-player-stats{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.team-player-stats span{font-size:10px;font-weight:800;color:var(--muted)}.team-player-stats b{font-size:13px;color:var(--text)}@media(hover:hover) and (pointer:fine){.team-card:hover{border-color:#b9cce6;transform:translateY(-1px)}.team-player-card:hover,.team-match-row:hover,.team-leader-box:hover{background:#f5f9ff;border-color:#c7d8ec}}@media(max-width:1050px){.teams-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-detail-hero{grid-template-columns:100px 1fr}.team-detail-record{grid-column:1/-1;grid-template-columns:repeat(6,1fr)}}@media(max-width:820px){.team-columns,.team-leaders-grid,.team-roster-grid{grid-template-columns:1fr}}@media(max-width:650px){.teams-grid{grid-template-columns:1fr}.team-detail-hero{grid-template-columns:74px 1fr;padding:20px}.team-detail-logo{width:70px;height:70px}.team-detail-logo img{width:56px;height:56px}.team-detail-title h1{font-size:29px}.team-detail-record{grid-template-columns:repeat(3,1fr)}.team-card-record{grid-template-columns:repeat(5,minmax(0,1fr))}.team-card-footer{flex-direction:column}.team-match-row{grid-template-columns:80px 1fr}.team-match-score{grid-column:2}.team-player-card{grid-template-columns:42px 1fr}.team-player-stats{grid-column:1/-1;justify-content:flex-start;padding-left:54px}}


/* Full Match Center protocol */
.match-protocol-section{grid-column:1/-1;margin-top:2px}
.protocol-heading{margin-bottom:14px}
.protocol-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.protocol-panel{min-width:0}
.penalty-list{margin-top:16px;border-top:1px solid #e5edf7}
.penalty-row{display:grid;grid-template-columns:78px 1fr 70px;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #e5edf7}
.penalty-time{display:flex;align-items:center;gap:7px}
.penalty-time b{display:grid;place-items:center;min-width:30px;height:30px;border-radius:9px;background:#fff2e8;color:#a65715;font-size:11px}
.penalty-time span{font-weight:800;color:var(--text)}
.penalty-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.penalty-main strong{font-size:15px}
.penalty-main small{color:var(--muted);font-weight:650}
.penalty-minutes{text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.penalty-minutes b{font-size:22px;color:#a65715;line-height:1}
.penalty-minutes span{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--muted);margin-top:4px}

.goalie-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.goalie-team{padding:14px;border-radius:15px;background:#f8fbff;border:1px solid #e2eaf4}
.goalie-row{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #e8eef5}
.goalie-row:last-child{border-bottom:0}
.goalie-row>span{font-weight:900;color:var(--blue2)}
.goalie-row strong{font-size:14px}
.goalie-row b{font-size:9px;letter-spacing:.08em;border-radius:999px;padding:5px 7px;background:#e6f7ed;color:#197347}

.roster-team-panel{padding:0!important;overflow:hidden}
.roster-team-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:22px 22px 16px;border-bottom:1px solid #e4ebf4}
.roster-player-list{display:flex;flex-direction:column}
.roster-player-row{display:grid;grid-template-columns:42px 54px 1fr auto;gap:10px;align-items:center;padding:10px 20px;border-bottom:1px solid #edf1f6}
.roster-pos{display:grid;place-items:center;min-width:32px;height:28px;border-radius:8px;background:#edf5ff;color:#2459ae;font-size:10px;font-weight:950}
.roster-number{font-weight:900;color:#60728b}
.roster-player-row strong{font-size:14px}
.roster-player-row small{font-size:11px;color:var(--muted);font-weight:650;text-align:right}
.roster-staff{padding:14px 20px 18px;background:#fafcff}
.roster-subhead{font-size:10px;font-weight:950;letter-spacing:.1em;color:var(--cyan);text-transform:uppercase;margin-bottom:7px}
.staff-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0}
.staff-row strong{font-size:13px}
.staff-row span{font-size:11px;color:var(--muted);font-weight:650;text-align:right}
.estonia-protocol-note{grid-column:1/-1}

@media(max-width:850px){
  .protocol-two-col{grid-template-columns:1fr}
  .goalie-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .penalty-row{grid-template-columns:72px 1fr}
  .penalty-minutes{grid-column:2;align-items:flex-start;text-align:left}
  .roster-player-row{grid-template-columns:36px 48px 1fr}
  .roster-player-row small{grid-column:3;text-align:left}
}


/* Full player profile / game log */
.player-profile-hero .player-detail-stats.extended{
  grid-template-columns:repeat(5,68px);
}
.player-competition-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:0 0 20px;
}
.player-competition-card{
  padding:16px 18px;
  border-radius:16px;
  background:#fff;
  border:1px solid #dde6f0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.player-competition-card span{
  font-size:10px;
  font-weight:950;
  letter-spacing:.1em;
  color:var(--cyan);
}
.player-competition-card strong{
  font-size:20px;
}
.player-competition-card small{
  color:var(--muted);
  font-weight:700;
}
.player-competition-card.total{
  background:#f5f9ff;
  border-color:#cfe0f5;
}

.player-profile-kpis{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  margin:0 0 20px;
}
.player-profile-kpis>div{
  padding:15px 16px;
  border-radius:15px;
  background:#fff;
  border:1px solid #dde6f0;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.player-profile-kpis span{
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.player-profile-kpis b{
  font-size:23px;
  color:var(--blue2);
}

.player-full-game-list{
  border-top:1px solid #e5edf7;
  margin-top:18px;
}
.player-log-row{
  display:grid;
  grid-template-columns:105px minmax(0,1fr) 175px 100px;
  gap:16px;
  align-items:center;
  padding:16px 0;
  border-bottom:1px solid #e5edf7;
}
.player-log-row.has-points{
  background:linear-gradient(90deg,rgba(235,246,255,.7),rgba(255,255,255,0));
}
.player-log-date{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.player-log-date strong{
  font-size:13px;
}
.player-log-date span,
.player-log-date small{
  color:var(--muted);
  font-size:10px;
  font-weight:750;
}
.player-log-date small{
  letter-spacing:.08em;
}
.player-log-game{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.player-log-opponent{
  display:flex;
  align-items:center;
  gap:8px;
}
.player-log-opponent strong{
  font-size:15px;
}
.player-log-score{
  color:#5e718b;
  font-size:12px;
  font-weight:700;
}
.player-log-score b{
  color:var(--blue2);
  margin:0 4px;
}
.player-log-game>small{
  color:var(--muted);
  font-size:10px;
  font-weight:650;
}
.game-result{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:999px;
  font-size:10px;
  font-weight:950;
}
.game-result.w{background:#e6f7ed;color:#187443}
.game-result.l{background:#fff0f0;color:#b43f3f}
.game-result.d{background:#eef3fb;color:#52677f}

.player-log-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
}
.player-log-stats>div{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:8px 5px;
  border-radius:10px;
  background:#f6f9fd;
  border:1px solid #e4ebf4;
}
.player-log-stats b{
  font-size:17px;
  line-height:1;
}
.player-log-stats span{
  font-size:8px;
  font-weight:950;
  letter-spacing:.08em;
  color:var(--muted);
  margin-top:4px;
}
.player-log-stats .pts b{
  color:var(--blue2);
}
.player-log-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
}
.player-log-actions a{
  color:var(--blue2);
  text-decoration:none;
  font-size:11px;
  font-weight:850;
}
.player-log-actions a:hover{text-decoration:underline}
.player-event-badges{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  margin-top:4px;
}
.event-badge{
  padding:4px 7px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.03em;
}
.event-badge.goal{
  background:#e8f2ff;
  border:1px solid #cee0f7;
  color:#2157ad;
}
.event-badge.assist{
  background:#eef8f3;
  border:1px solid #d3eadf;
  color:#24704a;
}

@media(max-width:980px){
  .player-profile-hero .player-detail-stats.extended{
    grid-template-columns:repeat(5,1fr);
  }
  .player-log-row{
    grid-template-columns:90px minmax(0,1fr) 150px;
  }
  .player-log-actions{
    grid-column:2/-1;
    flex-direction:row;
    align-items:center;
  }
}
@media(max-width:720px){
  .player-competition-grid{
    grid-template-columns:1fr;
  }
  .player-profile-kpis{
    grid-template-columns:repeat(2,1fr);
  }
  .player-log-row{
    grid-template-columns:1fr;
    gap:10px;
  }
  .player-log-date{
    flex-direction:row;
    gap:8px;
    align-items:center;
  }
  .player-log-stats{
    max-width:260px;
  }
  .player-log-actions{
    grid-column:auto;
    justify-content:flex-start;
  }
}


/* Clickable Players table */
.clickable-player-row{cursor:pointer;transition:background .15s ease}
.clickable-player-row:hover{background:#f4f8fe}
.clickable-player-row:focus-visible{outline:2px solid #2e6bd2;outline-offset:-2px}
.player-profile-link{display:flex;align-items:baseline;gap:7px;text-decoration:none;color:inherit}
.player-profile-link:hover strong{color:#245cc0}
.player-profile-link small{color:var(--muted);font-weight:800}

/* Player profile redesign */
.player-profile-page{max-width:1180px}
.player-showcase{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  padding:30px 32px 0;
  margin:18px 0;
  border-radius:28px;
  background:
    radial-gradient(circle at 88% 10%,rgba(115,175,255,.25),transparent 32%),
    linear-gradient(115deg,#173c70 0%,#245ca7 50%,#2e70d1 100%);
  color:#fff;
  box-shadow:0 22px 48px rgba(28,67,118,.14);
}
.player-number-watermark{
  position:absolute;
  right:235px;
  top:-30px;
  font-size:170px;
  line-height:1;
  font-weight:1000;
  letter-spacing:-.08em;
  color:rgba(255,255,255,.055);
  pointer-events:none;
}
.player-showcase-brand{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:20px;
  min-width:0;
}
.player-showcase-logo{
  width:102px;
  height:102px;
  flex:0 0 102px;
  border-radius:25px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.22);
  display:grid;
  place-items:center;
}
.player-showcase-logo img{width:80px;height:80px;object-fit:contain}
.player-showcase-logo span{font-size:18px;font-weight:1000}
.player-showcase-copy h1{
  margin:4px 0 8px;
  font-size:40px;
  line-height:1.02;
  letter-spacing:-.025em;
  color:#fff;
}
.player-meta-line{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  color:#dceaff;
  font-weight:800;
}
.player-meta-line i{width:4px;height:4px;border-radius:50%;background:#7fc8ff}
.player-showcase-points{
  position:relative;
  z-index:2;
  min-width:140px;
  align-self:center;
  text-align:center;
  padding:16px 20px;
  border-radius:20px;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.2);
}
.player-showcase-points span,
.player-showcase-points b{
  display:block;
  font-size:9px;
  letter-spacing:.12em;
  font-weight:950;
  color:#dceaff;
}
.player-showcase-points strong{
  display:block;
  margin:5px 0 3px;
  font-size:48px;
  line-height:1;
  color:#fff;
}
.player-showcase-stats{
  position:relative;
  z-index:2;
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  margin:24px -32px 0;
  border-top:1px solid rgba(255,255,255,.14);
  background:rgba(7,31,66,.14);
}
.player-showcase-stats>div{
  min-height:76px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-right:1px solid rgba(255,255,255,.12);
}
.player-showcase-stats>div:last-child{border-right:0}
.player-showcase-stats b{font-size:25px;line-height:1;color:#fff}
.player-showcase-stats span{
  margin-top:7px;
  font-size:9px;
  letter-spacing:.1em;
  font-weight:950;
  color:#cfe1fa;
}
.player-showcase-stats .primary{background:rgba(255,255,255,.08)}
.player-showcase-stats .primary b{font-size:30px}

.player-season-breakdown{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}
.season-split-card{
  display:grid;
  grid-template-columns:1fr auto;
  gap:4px 16px;
  padding:16px 18px;
  border-radius:17px;
  background:#fff;
  border:1px solid #dce6f1;
}
.season-split-label{
  font-size:10px;
  font-weight:950;
  letter-spacing:.1em;
  color:#5f7898;
}
.season-split-score{
  grid-row:1/3;
  grid-column:2;
  display:flex;
  align-items:baseline;
  gap:5px;
}
.season-split-score b{font-size:27px;color:#235cc0}
.season-split-score span{font-size:9px;font-weight:950;color:#70829a}
.season-split-line{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  color:#6c7e96;
  font-size:11px;
  font-weight:800;
}
.season-split-card.total{background:#f4f8ff;border-color:#cbdcf1}

.player-dashboard-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:18px;
  margin-bottom:18px;
}
.player-performance-card h2,
.recent-form-card h2{margin-top:3px}
.performance-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin-top:18px;
}
.performance-grid>div{
  padding:14px;
  border-radius:13px;
  background:#f7faff;
  border:1px solid #e4ebf4;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.performance-grid span{
  font-size:9px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:#72849c;
}
.performance-grid b{font-size:22px;color:#1f58b7}

.compact-head{align-items:center}
.recent-form-list{margin-top:12px;border-top:1px solid #e7edf5}
.recent-form-row{
  display:grid;
  grid-template-columns:34px 1fr auto;
  gap:11px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid #edf1f6;
}
.recent-form-row:last-child{border-bottom:0}
.recent-result{
  width:30px;height:30px;border-radius:9px;
  display:grid;place-items:center;
  font-size:10px;font-weight:1000;
  background:#eef3fa;color:#64768f;
}
.recent-result.w{background:#e6f7ed;color:#177342}
.recent-result.l{background:#fff0f0;color:#b33f3f}
.recent-result.d{background:#eef3fb;color:#52677f}
.recent-game-main{display:flex;flex-direction:column;gap:2px}
.recent-game-main strong{font-size:13px}
.recent-game-main small{font-size:10px;color:#71839d;font-weight:700}
.recent-game-points{text-align:right}
.recent-game-points b{font-size:20px;display:block;color:#235cc0;line-height:1}
.recent-game-points span{font-size:8px;font-weight:950;color:#71839d}

.player-full-log-panel{margin-bottom:28px}
.player-log-row{
  padding-left:8px;
  padding-right:8px;
  border-radius:10px;
}
.player-log-row.has-points{
  background:linear-gradient(90deg,#f0f7ff 0%,rgba(255,255,255,0) 88%);
}

@media(max-width:850px){
  .player-showcase{grid-template-columns:1fr;padding:24px 24px 0}
  .player-showcase-points{position:absolute;right:22px;top:22px;min-width:100px}
  .player-showcase-brand{padding-right:120px}
  .player-number-watermark{right:105px}
  .player-showcase-stats{margin:22px -24px 0}
  .player-dashboard-grid{grid-template-columns:1fr}
  .player-season-breakdown{grid-template-columns:1fr}
}
@media(max-width:620px){
  .player-showcase-brand{padding-right:0;align-items:flex-start}
  .player-showcase-logo{width:72px;height:72px;flex-basis:72px;border-radius:18px}
  .player-showcase-logo img{width:56px;height:56px}
  .player-showcase-copy h1{font-size:28px;padding-right:0}
  .player-showcase-points{position:relative;right:auto;top:auto;justify-self:start;margin-left:92px}
  .player-number-watermark{display:none}
  .player-showcase-stats{grid-template-columns:repeat(5,1fr)}
  .player-showcase-stats b{font-size:19px}
  .player-showcase-stats span{font-size:7px}
  .performance-grid{grid-template-columns:1fr 1fr}
}


/* Media Center V1 */
.media-center-page{max-width:1220px}
.media-center-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 180px;
  gap:30px;
  align-items:center;
  margin:24px 0 22px;
  padding:34px 38px;
  border-radius:28px;
  color:#fff;
  background:
    radial-gradient(circle at 85% 15%,rgba(112,176,255,.25),transparent 32%),
    linear-gradient(115deg,#173c70 0%,#245ca7 48%,#2f72d5 100%);
  box-shadow:0 20px 48px rgba(30,67,112,.14);
}
.media-hero-copy h1{font-size:46px;line-height:1;margin:7px 0 12px;color:#fff}
.media-hero-copy>p:last-of-type{max-width:720px;color:#dce9fb;font-size:15px}
.media-hero-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.media-hero-tags span{
  padding:7px 10px;border-radius:999px;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.18);
  color:#edf5ff;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase
}
.media-hero-status{
  min-height:150px;border-radius:22px;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center
}
.media-hero-status span{font-size:9px;font-weight:950;letter-spacing:.11em;color:#d8e7fb}
.media-hero-status strong{font-size:52px;line-height:1;margin:7px 0;color:#fff}
.media-hero-status small{color:#d8e7fb;font-weight:700}

.media-source-panel{margin-bottom:24px}
.media-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.media-source-card{
  padding:16px 18px;border-radius:15px;background:#f7faff;border:1px solid #e0e8f2;
  display:flex;flex-direction:column;gap:5px
}
.media-source-card>span{font-size:9px;font-weight:950;letter-spacing:.1em;color:#59c7e5}
.media-source-card strong{font-size:15px;line-height:1.25}
.media-source-card small{font-size:11px;color:var(--muted);font-weight:650}

.media-workspace{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(330px,.8fr);
  gap:22px;
  align-items:start;
  margin-bottom:24px
}
.media-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.media-template-card{
  overflow:hidden;border-radius:20px;background:#fff;border:1px solid #dce6f1;
  box-shadow:0 8px 26px rgba(28,58,92,.05)
}
.media-template-preview{padding:12px;background:#eef4fb}
.media-template-body{padding:16px}
.media-template-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}
.media-template-type{font-size:9px;font-weight:950;letter-spacing:.1em;text-transform:uppercase;color:#6d819c}
.media-template-body h3{font-size:18px;margin:9px 0 5px}
.media-template-body p{font-size:12px;line-height:1.45;color:var(--muted);min-height:52px}
.media-template-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.media-stage-note{font-size:9px;font-weight:800;color:#91a0b4}
.media-status{padding:5px 8px;border-radius:999px;font-size:8px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;background:#eef3f8;color:#60738d}
.media-status.core{background:#e6f7ed;color:#177342}
.media-status.selected{background:#e9f2ff;color:#2459b1}
.media-status.planned{background:#f2f3f5;color:#7d8999}

.media-mini-poster{
  position:relative;
  overflow:hidden;
  min-height:210px;
  border-radius:15px;
  color:#fff;
  padding:18px;
  background:
    radial-gradient(circle at 70% 20%,rgba(83,151,255,.25),transparent 35%),
    linear-gradient(145deg,#102e5b,#235ba8 58%,#2d70d1)
}
.media-mini-poster::after{
  content:"PANTER";position:absolute;right:-10px;bottom:-10px;
  font-size:52px;font-weight:1000;letter-spacing:-.05em;color:rgba(255,255,255,.035)
}
.media-mini-kicker{position:relative;z-index:2;font-size:9px;font-weight:950;letter-spacing:.13em;color:#6fe0ff}
.media-mini-match{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:30px 0 24px;text-align:center
}
.media-mini-match>div{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0}
.media-mini-match img{width:56px;height:56px;object-fit:contain}
.media-mini-match strong{font-size:12px;line-height:1.1}
.media-mini-match>b{font-size:20px;color:#fff}
.media-mini-footer{position:relative;z-index:2;display:flex;flex-direction:column;gap:3px;font-size:10px;color:#d8e8fb}
.media-mini-footer strong{font-size:12px;color:#fff}
.media-mini-poster.final-score .media-mini-match>b{font-size:31px}
.media-mini-poster.player-spotlight{display:flex;flex-direction:column;justify-content:flex-end}
.spotlight-number{position:absolute;right:15px;top:28px;font-size:82px;font-weight:1000;color:rgba(255,255,255,.09)}
.spotlight-copy{position:relative;z-index:2}
.spotlight-copy strong{display:block;font-size:22px;margin-bottom:5px}
.spotlight-copy span{font-size:11px;color:#dce9fb;font-weight:750}

.media-draft-panel{position:sticky;top:18px}
.media-draft-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.media-draft-head h2{margin-top:3px}
.media-draft-preview{margin:18px 0}
.media-draft-data{display:flex;flex-direction:column;border-top:1px solid #e5ecf5}
.media-draft-data>div{display:grid;grid-template-columns:75px 1fr;gap:5px 10px;padding:12px 0;border-bottom:1px solid #e5ecf5}
.media-draft-data span{grid-row:1/3;font-size:9px;font-weight:950;letter-spacing:.08em;color:#6d829d}
.media-draft-data strong{font-size:13px}
.media-draft-data small{font-size:10px;color:var(--muted)}
.media-draft-actions{margin-top:16px}
.media-draft-actions button{width:100%}
.media-draft-actions p{margin:9px 0 0;font-size:10px;color:var(--muted);line-height:1.4;text-align:center}

.media-flow-panel{margin-bottom:30px}
.media-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:12px;align-items:center;margin-top:18px}
.media-flow>div{
  min-height:105px;border-radius:15px;background:#f7faff;border:1px solid #e2e9f3;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:14px
}
.media-flow>div b{
  width:26px;height:26px;border-radius:8px;background:#e8f2ff;color:#2459b1;
  display:grid;place-items:center;font-size:11px;margin-bottom:8px
}
.media-flow>div strong{font-size:13px}
.media-flow>div span{font-size:10px;color:var(--muted);margin-top:3px}
.media-flow>i{font-style:normal;color:#92a4ba;font-weight:900}

@media(max-width:1000px){
  .media-workspace{grid-template-columns:1fr}
  .media-draft-panel{position:relative;top:auto}
}
@media(max-width:760px){
  .media-center-hero{grid-template-columns:1fr;padding:26px}
  .media-hero-status{min-height:100px}
  .media-source-grid,.media-template-grid{grid-template-columns:1fr}
  .media-flow{grid-template-columns:1fr}
  .media-flow>i{transform:rotate(90deg);justify-self:center}
}

/* Admin Media Step B — approved neutral poster system */
.poster-page.battle-page{max-width:1220px}
.battle-poster{aspect-ratio:4/5;border-radius:34px;padding:34px;position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 76% 16%,rgba(123,173,255,.18),transparent 25%),linear-gradient(145deg,#0b1d36 0%,#122f59 42%,#0d4fa0 100%);box-shadow:0 30px 80px rgba(12,40,83,.26)}
.battle-poster>*{position:relative;z-index:1}
.battle-stripes{position:absolute;inset:0;background:linear-gradient(116deg,transparent 0 12%,rgba(255,0,60,.14) 12% 17%,transparent 17% 34%,rgba(255,255,255,.06) 34% 35%,transparent 35% 48%,rgba(255,0,60,.18) 48% 56%,transparent 56% 73%,rgba(255,255,255,.05) 73% 74%,transparent 74%);opacity:.95}
.poster-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.poster-brandline{display:flex;align-items:center;gap:14px}
.poster-brandline img{width:66px;height:66px;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(0,0,0,.22))}
.poster-brandline span{display:block;font-size:22px;font-weight:1000;letter-spacing:-.02em}
.poster-brandline small{display:block;margin-top:2px;font-size:11px;letter-spacing:.18em;color:#8ecdf1;font-weight:900}
.poster-tag{padding:9px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(9,20,38,.35);font-size:10px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:#dce8fb}
.poster-copy-zone{margin-top:28px}
.poster-kicker-hero{font-size:96px;line-height:.82;font-weight:1000;letter-spacing:-.06em;text-transform:uppercase}
.poster-kicker-hero span{display:block;color:#f3f8ff}.poster-kicker-hero em{display:block;color:#ff4058;font-style:normal}
.poster-subline{margin-top:12px;font-size:16px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#d9e6fb}
.battle-stage{display:grid;grid-template-columns:1fr minmax(180px,240px) 1fr;align-items:end;gap:18px;margin-top:44px}
.battle-side{display:flex;flex-direction:column;align-items:center;gap:14px}.battle-center-zone{display:flex;align-items:center;justify-content:center;min-height:360px}
.hero-team-copy{text-align:center}.hero-team-copy strong{display:block;font-size:42px;line-height:1.04}.hero-team-copy small{display:block;margin-top:7px;font-size:12px;font-weight:950;letter-spacing:.12em;color:#dbe8fb;text-transform:uppercase}
.hero-figure{position:relative;width:250px;height:360px}
.hero-helmet{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:110px;height:105px;border-radius:48% 48% 42% 42%/54% 54% 40% 40%;background:linear-gradient(180deg,#f7fbff,#9fb9d6);box-shadow:0 12px 24px rgba(0,0,0,.22)}
.hero-body{position:absolute;left:50%;top:90px;transform:translateX(-50%);width:210px;height:240px;border-radius:44px 44px 34px 34px;background:linear-gradient(180deg,#f34a5e 0 23%,#111d2c 23% 68%,#eef3ff 68% 100%);box-shadow:0 24px 42px rgba(0,0,0,.25)}
.hero-stick{position:absolute;right:14px;bottom:10px;width:170px;height:10px;border-radius:999px;background:rgba(255,255,255,.96);transform:rotate(-54deg);transform-origin:right center;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.hero-stick:after{content:"";position:absolute;left:-2px;bottom:-10px;width:30px;height:10px;border-radius:12px;background:rgba(255,255,255,.96);transform:rotate(18deg)}
.hero-number{position:absolute;left:20px;bottom:28px;font-size:92px;line-height:1;font-weight:1000;color:rgba(255,255,255,.94);text-shadow:0 10px 24px rgba(0,0,0,.22)}
.opponent-figure .hero-body{background:linear-gradient(180deg,#7d8aa0 0 23%,#304056 23% 68%,#cfd9e7 68% 100%)}
.opponent-figure .hero-stick{right:24px;bottom:38px;transform:rotate(-18deg)}
.hero-neutral{position:absolute;inset:auto 0 34px 0;text-align:center;font-size:48px;font-weight:1000;letter-spacing:.1em;color:rgba(255,255,255,.9)}
.poster-vs-block,.poster-hero-score,.poster-shot-lane{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.poster-vs-block b{font-size:108px;line-height:.9;font-weight:1000;letter-spacing:-.06em}.poster-vs-block span{margin-top:10px;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#dbe8fb;font-weight:900}
.poster-hero-score b{font-size:108px;line-height:.9;font-weight:1000;letter-spacing:-.06em}.poster-hero-score span{margin-top:8px;padding:8px 14px;border-radius:999px;background:rgba(9,20,38,.34);border:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:950;letter-spacing:.16em;text-transform:uppercase;color:#dce8fb}
.poster-shot-lane{gap:18px}
.shot-copy b{display:block;font-size:54px;line-height:.9;font-weight:1000;letter-spacing:-.04em}.shot-copy span{display:block;margin-top:8px;font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#dce8fb}
.shot-track{position:relative;width:200px;height:90px}.shot-track:before{content:"";position:absolute;left:8px;top:62px;width:164px;height:4px;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(255,255,255,.95));transform:rotate(-20deg);transform-origin:left center}.shot-track i{position:absolute;right:2px;top:8px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 0 0 10px rgba(255,255,255,.08),0 0 28px rgba(255,255,255,.44)}
.goalie .hero-stick{right:8px;bottom:58px;transform:rotate(22deg)}
.hero-glove{position:absolute;right:22px;top:130px;width:76px;height:46px;border-radius:22px;background:linear-gradient(180deg,#edf2ff,#b7c7dd);transform:rotate(-22deg);box-shadow:0 8px 18px rgba(0,0,0,.18)}
.hero-net{position:absolute;right:-8px;bottom:0;width:112px;height:136px;border:4px solid rgba(255,255,255,.82);border-radius:14px 14px 6px 6px;opacity:.82;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}
.hero-net:before,.hero-net:after{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,transparent 0 18%,rgba(255,255,255,.45) 18% 20%,transparent 20% 40%,rgba(255,255,255,.45) 40% 42%,transparent 42% 62%,rgba(255,255,255,.45) 62% 64%,transparent 64% 84%,rgba(255,255,255,.45) 84% 86%,transparent 86%),linear-gradient(transparent 0 18%,rgba(255,255,255,.45) 18% 20%,transparent 20% 40%,rgba(255,255,255,.45) 40% 42%,transparent 42% 62%,rgba(255,255,255,.45) 62% 64%,transparent 64% 84%,rgba(255,255,255,.45) 84% 86%,transparent 86%)}
.poster-info-rail{margin-top:28px;padding:18px 22px;border-radius:22px;background:rgba(9,20,38,.34);border:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.poster-info-rail span{display:block;font-size:10px;font-weight:950;letter-spacing:.16em;text-transform:uppercase;color:#86dff8}.poster-info-rail strong{display:block;margin-top:7px;font-size:26px;line-height:1.18}
.poster-banner{margin-top:22px;padding:18px 22px;border-radius:22px;background:linear-gradient(90deg,#ff364e,#ff573f);display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:0 18px 34px rgba(242,68,72,.26)}
.poster-banner strong{font-size:38px;line-height:.95;font-weight:1000;letter-spacing:-.04em;text-transform:uppercase}.poster-banner small{font-size:12px;font-weight:950;letter-spacing:.14em;text-transform:uppercase;color:#fff;opacity:.96;text-align:right}
.final-scene .hero-figure{transform:scale(.96)}.final-scene .battle-center-zone{min-height:330px}
.poster-final .poster-banner{background:linear-gradient(90deg,#15253a,#ff3d4f)}
@media(max-width:920px){.battle-stage{grid-template-columns:1fr}.battle-center-zone{min-height:180px}.poster-kicker-hero{font-size:74px}.hero-team-copy strong{font-size:34px}.hero-figure{width:220px;height:320px}.poster-info-rail{grid-template-columns:1fr}.poster-banner{flex-direction:column;align-items:flex-start}.poster-banner small{text-align:left}}
@media(max-width:640px){.battle-poster{padding:22px}.poster-header-row{flex-direction:column;align-items:flex-start}.poster-brandline span{font-size:20px}.poster-kicker-hero{font-size:58px}.hero-figure{width:180px;height:280px}.hero-helmet{width:84px;height:80px;top:6px}.hero-body{width:160px;height:188px;top:72px}.hero-number{font-size:64px}.hero-neutral{font-size:34px}.hero-team-copy strong{font-size:28px}.poster-vs-block b,.poster-hero-score b{font-size:78px}.poster-banner strong{font-size:28px}.poster-info-rail strong{font-size:22px}}

/* ============================================================
   HC PANTER MENU BEAUTY V2
   Safe CSS-only update
   ============================================================ */

:root {
  --panter-menu-text: #122746;
  --panter-menu-muted: #70809c;
  --panter-menu-blue: #1f67e8;
  --panter-menu-cyan: #54d6f4;
  --panter-menu-border: rgba(32, 70, 132, .10);
  --panter-menu-hover: rgba(31, 103, 232, .075);
}

/* Header */
.topbar {
  position: sticky !important;
  top: 0;
  z-index: 1000;
  min-height: 80px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.97), rgba(248,251,255,.94)) !important;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--panter-menu-border) !important;
  box-shadow: 0 8px 28px rgba(19, 46, 92, .055);
}

/* Brand */
.topbar .brand {
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  min-width: 0;
}

.topbar .brand-logo {
  width: 54px !important;
  height: 54px !important;
  object-fit: contain;
  flex: 0 0 54px;
  filter: drop-shadow(0 4px 8px rgba(6, 22, 46, .10));
}

.topbar .brand-text {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.topbar .brand-text b,
.topbar .brand-text strong {
  color: var(--panter-menu-text) !important;
  font-size: 19px !important;
  font-weight: 850 !important;
  letter-spacing: -.01em;
  line-height: 1.08;
}

.topbar .brand-text small {
  margin-top: 4px;
  color: var(--panter-menu-muted) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase;
  line-height: 1;
}

/* Desktop navigation */
.topbar nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end;
  gap: 4px !important;
}

.topbar nav a {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 13px !important;
  border-radius: 12px;
  color: var(--panter-menu-text) !important;
  text-decoration: none !important;
  font-size: 15px !important;
  font-weight: 720 !important;
  line-height: 1;
  white-space: nowrap;
  transition:
    background-color .16s ease,
    color .16s ease,
    box-shadow .16s ease,
    transform .16s ease;
}

.topbar nav a:hover,
.topbar nav a:focus-visible {
  color: #155acb !important;
  background: var(--panter-menu-hover);
  box-shadow: inset 0 0 0 1px rgba(31, 103, 232, .07);
  outline: none;
}

.topbar nav a:active {
  transform: translateY(1px);
}

/* Admin is visually separated */
.topbar nav a[href="/admin"],
.topbar nav a[href^="/admin?"] {
  margin-left: 5px;
  background: rgba(17, 41, 78, .055);
  box-shadow: inset 0 0 0 1px rgba(17, 41, 78, .06);
}

.topbar nav a[href="/admin"]:hover,
.topbar nav a[href^="/admin?"]:hover {
  background: rgba(31, 103, 232, .10);
}

/* Medium screens */
@media (max-width: 1080px) {
  .topbar nav {
    gap: 2px !important;
  }

  .topbar nav a {
    padding-left: 10px !important;
    padding-right: 10px !important;
    font-size: 14px !important;
  }

  .topbar .brand-text b,
  .topbar .brand-text strong {
    font-size: 17px !important;
  }
}

/* Mobile / tablet:
   Brand on first line, premium horizontal tab navigation below.
   No JavaScript needed. */
@media (max-width: 760px) {
  .topbar {
    position: sticky !important;
    min-height: 0 !important;
    padding: 9px 12px 8px !important;
    gap: 8px !important;
    align-items: stretch !important;
  }

  .topbar .brand {
    width: 100%;
    gap: 10px !important;
  }

  .topbar .brand-logo {
    width: 44px !important;
    height: 44px !important;
    flex-basis: 44px;
  }

  .topbar .brand-text b,
  .topbar .brand-text strong {
    font-size: 16px !important;
  }

  .topbar .brand-text small {
    font-size: 8px !important;
    letter-spacing: .13em !important;
  }

  .topbar nav {
    width: 100% !important;
    max-width: 100% !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 4px 0 3px !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .topbar nav::-webkit-scrollbar {
    display: none;
  }

  .topbar nav a {
    flex: 0 0 auto !important;
    min-height: 38px;
    padding: 9px 12px !important;
    border-radius: 999px;
    background: rgba(27, 77, 166, .045);
    box-shadow: inset 0 0 0 1px rgba(27, 77, 166, .055);
    font-size: 13px !important;
    font-weight: 760 !important;
    scroll-snap-align: start;
  }

  .topbar nav a:hover,
  .topbar nav a:focus-visible {
    background: rgba(31, 103, 232, .105);
  }

  .topbar nav a[href="/admin"],
  .topbar nav a[href^="/admin?"] {
    margin-left: 0;
  }
}

/* Very narrow phones */
@media (max-width: 390px) {
  .topbar {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .topbar .brand-text small {
    display: none !important;
  }

  .topbar nav a {
    min-height: 36px;
    padding: 8px 11px !important;
    font-size: 12px !important;
  }
}

/* ============================================================
   END HC PANTER MENU BEAUTY V2
   ============================================================ */



/* HC PANTER PLAYER PROFILE PHOTO META */
.player-showcase-logo.player-photo{
  width:96px!important;height:96px!important;min-width:96px!important;
  border-radius:20px!important;overflow:hidden!important;padding:0!important;
  background:#dbe7f5!important;border:1px solid rgba(255,255,255,.24)!important;
  box-shadow:0 8px 22px rgba(7,29,64,.16)!important;
}
.player-showcase-logo.player-photo img{
  width:100%!important;height:100%!important;max-width:none!important;
  object-fit:cover!important;object-position:center top!important;
}
@media(max-width:600px){
  .player-showcase-logo.player-photo{width:78px!important;height:78px!important;min-width:78px!important;border-radius:17px!important}
}

/* HC PANTER PLAYER UI V5 */

/* Bigger portrait on public player profile */
.player-showcase-brand{
  align-items:center!important;
  gap:26px!important;
}

.player-showcase-logo.player-photo{
  width:160px!important;
  height:190px!important;
  min-width:160px!important;
  flex:0 0 160px!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:24px!important;
  background:#dce8f6!important;
  border:1px solid rgba(255,255,255,.30)!important;
  box-shadow:0 14px 30px rgba(5,25,61,.22)!important;
}

.player-showcase-logo.player-photo img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center 18%!important;
}

/* Search in Admin -> Players */
.admin-player-search-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 18px;
  padding:13px 15px;
  border:1px solid #dce6f2;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(20,49,90,.045);
}

.admin-player-search-bar input{
  width:min(520px,100%);
  margin:0!important;
  padding:11px 14px!important;
  border:1px solid #ccd9e9!important;
  border-radius:12px!important;
  background:#f9fbfe!important;
  color:#173052!important;
  font-size:13px!important;
  font-weight:700!important;
}

.admin-player-search-bar input:focus{
  outline:none!important;
  border-color:#6d9ce4!important;
  box-shadow:0 0 0 4px rgba(36,107,255,.09)!important;
}

#admin-player-search-count{
  flex:0 0 auto;
  color:#667b98;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.admin-player-search-empty{
  grid-column:1/-1;
  padding:26px;
  border:1px dashed #c9d8e9;
  border-radius:16px;
  background:#f8fbff;
  color:#70839e;
  text-align:center;
  font-size:12px;
  font-weight:800;
}

.admin-player-search-empty[hidden]{
  display:none!important;
}

@media(max-width:720px){
  .player-showcase-brand{
    gap:17px!important;
  }

  .player-showcase-logo.player-photo{
    width:124px!important;
    height:150px!important;
    min-width:124px!important;
    flex-basis:124px!important;
    border-radius:20px!important;
  }

  .admin-player-search-bar{
    align-items:stretch;
    flex-direction:column;
  }

  .admin-player-search-bar input{
    width:100%;
  }
}

@media(max-width:480px){
  .player-showcase-logo.player-photo{
    width:108px!important;
    height:132px!important;
    min-width:108px!important;
    flex-basis:108px!important;
  }
}

/* HC PANTER PLAYER HOVER + LARGE PROFILE PHOTO V7 */

/* Make the portrait on the full player profile substantially larger. */
.player-showcase-brand{
  align-items:center!important;
  gap:30px!important;
}

.player-showcase-logo.player-photo{
  width:220px!important;
  height:260px!important;
  min-width:220px!important;
  flex:0 0 220px!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:26px!important;
  background:#dbe7f5!important;
  border:1px solid rgba(255,255,255,.30)!important;
  box-shadow:0 16px 36px rgba(6,27,62,.24)!important;
}

.player-showcase-logo.player-photo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center 16%!important;
}

/* Goal timeline: allow the hover card to escape the table/panel. */
.estonia-goals-panel,
.finland-goals-panel,
.estonia-goals-panel .event-table-wrap,
.finland-goals-panel .event-table-wrap{
  overflow:visible!important;
}

.estonia-goals-panel,
.finland-goals-panel{
  position:relative;
  z-index:5;
}

/* Player name + hover trigger */
.player-hover-wrap{
  position:relative;
  display:inline-flex;
  align-items:center;
  z-index:15;
}

.player-hover-name{
  color:inherit;
  text-decoration:none;
  border-bottom:1px dashed rgba(32,94,194,.42);
  cursor:pointer;
}

.player-hover-name:hover{
  color:#205ec2;
}

/* Large hover card */
.player-hover-card{
  position:absolute;
  left:50%;
  bottom:calc(100% + 14px);
  z-index:999;
  width:390px;
  min-height:230px;
  display:grid;
  grid-template-columns:170px minmax(0,1fr);
  gap:18px;
  align-items:center;
  padding:14px;
  border:1px solid #cbd8e8;
  border-radius:20px;
  background:rgba(255,255,255,.985);
  box-shadow:0 24px 65px rgba(7,31,67,.28);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%,10px) scale(.98);
  transform-origin:50% 100%;
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}

.player-hover-card:after{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  transform:translateX(-50%);
  border:9px solid transparent;
  border-top-color:#fff;
}

.player-hover-card img{
  display:block;
  width:170px;
  height:205px;
  border-radius:15px;
  object-fit:cover;
  object-position:center 16%;
  background:#e8eef6;
  box-shadow:0 7px 20px rgba(10,35,68,.15);
}

.player-hover-info{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:10px;
}

.player-hover-info b{
  color:#122844;
  font-size:20px;
  line-height:1.12;
}

.player-hover-info small{
  margin:0!important;
  color:#627894!important;
  font-size:12px!important;
  font-weight:850;
  line-height:1.45!important;
}

.player-hover-info em{
  color:#236bd0;
  font-size:10px;
  font-style:normal;
  font-weight:950;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.player-hover-wrap:hover,
.player-hover-wrap:focus-within{
  z-index:1000;
}

.player-hover-wrap:hover .player-hover-card,
.player-hover-wrap:focus-within .player-hover-card{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0) scale(1);
}

/* Responsive profile photo */
@media(max-width:900px){
  .player-showcase-logo.player-photo{
    width:170px!important;
    height:205px!important;
    min-width:170px!important;
    flex-basis:170px!important;
    border-radius:22px!important;
  }

  .player-hover-card{
    width:330px;
    grid-template-columns:140px minmax(0,1fr);
  }

  .player-hover-card img{
    width:140px;
    height:175px;
  }
}

@media(max-width:600px){
  .player-showcase-brand{
    gap:18px!important;
  }

  .player-showcase-logo.player-photo{
    width:138px!important;
    height:168px!important;
    min-width:138px!important;
    flex-basis:138px!important;
    border-radius:19px!important;
  }

  .player-hover-card{
    left:0;
    width:300px;
    grid-template-columns:120px minmax(0,1fr);
    transform:translate(0,10px) scale(.98);
  }

  .player-hover-wrap:hover .player-hover-card,
  .player-hover-wrap:focus-within .player-hover-card{
    transform:translate(0,0) scale(1);
  }

  .player-hover-card:after{
    left:28px;
    transform:none;
  }

  .player-hover-card img{
    width:120px;
    height:150px;
  }
}

/* HC PANTER HOVER VISIBILITY FIX V9 */

/*
  IMPORTANT:
  The player photo/card is completely hidden in the normal Goal timeline.
  It is created visually ONLY while the cursor is over the player's name
  (or while the link has keyboard focus).
*/
.player-hover-wrap > .player-hover-card{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Keep the normal scorer row compact. */
.event-player .player-hover-wrap{
  display:inline-flex!important;
  position:relative!important;
  width:auto!important;
  max-width:100%!important;
  vertical-align:baseline!important;
}

.event-player .player-hover-name{
  display:inline!important;
}

/* Show the popup only on hover/focus. */
.player-hover-wrap:hover > .player-hover-card,
.player-hover-wrap:focus-within > .player-hover-card{
  display:grid!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none!important;

  position:absolute!important;
  left:50%!important;
  bottom:calc(100% + 14px)!important;
  z-index:9999!important;

  width:360px!important;
  min-height:210px!important;
  grid-template-columns:155px minmax(0,1fr)!important;
  gap:16px!important;
  align-items:center!important;

  padding:14px!important;
  border:1px solid #cbd8e8!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.99)!important;
  box-shadow:0 24px 65px rgba(7,31,67,.30)!important;

  transform:translate(-50%,0)!important;
}

/* Photo exists only inside the hover popup visually. */
.player-hover-wrap:hover > .player-hover-card img,
.player-hover-wrap:focus-within > .player-hover-card img{
  display:block!important;
  width:155px!important;
  height:190px!important;
  max-width:155px!important;
  max-height:190px!important;
  object-fit:cover!important;
  object-position:center 16%!important;
  border-radius:15px!important;
}

/* Do not allow any generic image/table rule to stretch the hidden hover photo. */
.player-hover-card img{
  width:155px!important;
  height:190px!important;
  max-width:155px!important;
  max-height:190px!important;
  object-fit:cover!important;
}

/* Goal timeline must allow the popup to float above the table. */
.estonia-goals-panel,
.finland-goals-panel,
.estonia-goals-panel .event-table-wrap,
.finland-goals-panel .event-table-wrap{
  overflow:visible!important;
}

@media(max-width:700px){
  /*
    Phones do not have a real mouse hover.
    Focus/tap can still reveal a smaller popup.
  */
  .player-hover-wrap:hover > .player-hover-card,
  .player-hover-wrap:focus-within > .player-hover-card{
    left:0!important;
    width:285px!important;
    min-height:170px!important;
    grid-template-columns:115px minmax(0,1fr)!important;
    transform:none!important;
  }

  .player-hover-card img,
  .player-hover-wrap:hover > .player-hover-card img,
  .player-hover-wrap:focus-within > .player-hover-card img{
    width:115px!important;
    height:145px!important;
    max-width:115px!important;
    max-height:145px!important;
  }
}

/* HC PANTER LEADERS + FINLAND RANKING HOVER V10 */

/* Keep the same player-photo popup behaviour outside Goal timeline. */
.leader-card,
.leader-list,
.leader-row,
.leader-player,
.leaderboard-panel,
.leaders-table,
.leaders-table tbody,
.leaders-table tr,
.leaders-table td,
.player-name{
  overflow:visible!important;
}

.list-player-hover{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  width:auto!important;
  z-index:20;
}

.list-player-hover > strong{
  border-bottom:1px dashed rgba(32,94,194,.42);
}

.leader-row:hover .list-player-hover,
.clickable-player-row:hover .list-player-hover,
.list-player-hover:hover,
.list-player-hover:focus-within{
  z-index:10000;
}

@media(min-width:901px){
  .leaderboard-panel .table-wrap{
    overflow:visible!important;
  }
}

/* The popup stays hidden until the player name is hovered/focused. */
.list-player-hover > .player-hover-card{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
}

.list-player-hover:hover > .player-hover-card,
.list-player-hover:focus-within > .player-hover-card{
  display:grid!important;
  opacity:1!important;
  visibility:visible!important;
  position:absolute!important;
  left:50%!important;
  bottom:calc(100% + 12px)!important;
  z-index:10001!important;
  transform:translate(-50%,0)!important;
}

/* Finland player ranking: only Panter rows get the photo popup.
   Other teams remain normal and unchanged. */
.player-name .list-player-hover{
  cursor:pointer;
}

/* HC PANTER QUALITY FLOATING PLAYER HOVER V12 */

/* Source popup stays inside markup only as hidden data/template. */
.list-player-hover > .player-hover-card,
.list-player-hover:hover > .player-hover-card,
.list-player-hover:focus-within > .player-hover-card{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Real popup: direct child of BODY, independent from table overflow/scroll. */
body > .player-hover-card.floating-list-player-card{
  position:fixed!important;
  z-index:2147483000!important;
  display:grid!important;
  grid-template-columns:138px minmax(0,1fr)!important;
  gap:17px!important;
  align-items:center!important;

  width:342px!important;
  min-height:186px!important;
  max-width:calc(100vw - 28px)!important;

  margin:0!important;
  padding:13px!important;

  border:1px solid rgba(185,201,220,.96)!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.99)!important;
  box-shadow:
    0 24px 58px rgba(11,35,69,.24),
    0 5px 16px rgba(11,35,69,.10)!important;

  opacity:0!important;
  visibility:visible!important;
  pointer-events:none!important;

  transform:translateY(5px) scale(.985)!important;
  transform-origin:center center!important;
  transition:opacity .14s ease,transform .14s ease!important;

  backdrop-filter:blur(12px);
}

body > .player-hover-card.floating-list-player-card.floating-measure{
  opacity:0!important;
  transition:none!important;
}

body > .player-hover-card.floating-list-player-card.floating-visible{
  opacity:1!important;
  transform:translateY(0) scale(1)!important;
}

body > .player-hover-card.floating-list-player-card img{
  display:block!important;
  width:138px!important;
  height:164px!important;
  max-width:138px!important;
  max-height:164px!important;
  object-fit:cover!important;
  object-position:center 14%!important;
  border-radius:14px!important;
  background:#eaf0f7!important;
  box-shadow:0 8px 22px rgba(12,38,72,.15)!important;
}

body > .player-hover-card.floating-list-player-card .player-hover-info{
  display:flex!important;
  min-width:0!important;
  flex-direction:column!important;
  gap:9px!important;
}

body > .player-hover-card.floating-list-player-card .player-hover-info b{
  color:#122844!important;
  font-size:18px!important;
  line-height:1.15!important;
  font-weight:900!important;
}

body > .player-hover-card.floating-list-player-card .player-hover-info small{
  margin:0!important;
  color:#60758f!important;
  font-size:11px!important;
  line-height:1.4!important;
  font-weight:800!important;
}

body > .player-hover-card.floating-list-player-card .player-hover-info em{
  color:#2267c9!important;
  font-size:9px!important;
  line-height:1.2!important;
  font-style:normal!important;
  font-weight:950!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}

/* Direction arrow */
body > .player-hover-card.floating-list-player-card::after{
  content:""!important;
  position:absolute!important;
  width:12px!important;
  height:12px!important;
  background:#fff!important;
  border:1px solid rgba(185,201,220,.96)!important;
  transform:rotate(45deg)!important;
}

body > .player-hover-card.floating-list-player-card[data-side="right"]::after{
  left:-7px!important;
  top:calc(50% - 6px)!important;
  border-top:0!important;
  border-right:0!important;
}

body > .player-hover-card.floating-list-player-card[data-side="left"]::after{
  right:-7px!important;
  top:calc(50% - 6px)!important;
  border-left:0!important;
  border-bottom:0!important;
}

body > .player-hover-card.floating-list-player-card[data-side="bottom"]::after{
  top:-7px!important;
  left:calc(50% - 6px)!important;
  border-right:0!important;
  border-bottom:0!important;
}

body > .player-hover-card.floating-list-player-card[data-side="top"]::after{
  bottom:-7px!important;
  left:calc(50% - 6px)!important;
  border-left:0!important;
  border-top:0!important;
}

/* Trigger styling */
.list-player-hover{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  width:auto!important;
  max-width:100%!important;
}

.list-player-hover > strong{
  border-bottom:1px dashed rgba(31,91,183,.34)!important;
  transition:color .12s ease,border-color .12s ease!important;
}

.list-player-hover:hover > strong,
.list-player-hover:focus-within > strong{
  color:#205ec2!important;
  border-bottom-color:#205ec2!important;
}

@media(max-width:700px){
  body > .player-hover-card.floating-list-player-card{
    grid-template-columns:112px minmax(0,1fr)!important;
    width:292px!important;
    min-height:154px!important;
    padding:11px!important;
    gap:13px!important;
  }

  body > .player-hover-card.floating-list-player-card img{
    width:112px!important;
    height:136px!important;
    max-width:112px!important;
    max-height:136px!important;
  }

  body > .player-hover-card.floating-list-player-card .player-hover-info b{
    font-size:15px!important;
  }
}


/* HC PANTER TEAM CENTER PLAYER HOVER V13 */
.team-page-player-hover-trigger{
  cursor:pointer!important;
}

.team-page-player-hover-trigger:not(a){
  display:inline-flex!important;
  align-items:center!important;
  width:auto!important;
  border-bottom:1px dashed rgba(31,91,183,.34)!important;
}

.team-page-player-hover-trigger:hover,
.team-page-player-hover-trigger:focus{
  color:#205ec2!important;
  border-bottom-color:#205ec2!important;
}

body > .player-hover-card.floating-list-player-card.team-center-floating-card{
  width:360px!important;
  min-height:205px!important;
  grid-template-columns:155px minmax(0,1fr)!important;
}

body > .player-hover-card.floating-list-player-card.team-center-floating-card img{
  width:155px!important;
  height:185px!important;
  max-width:155px!important;
  max-height:185px!important;
}

@media(max-width:700px){
  body > .player-hover-card.floating-list-player-card.team-center-floating-card{
    width:292px!important;
    min-height:154px!important;
    grid-template-columns:112px minmax(0,1fr)!important;
  }

  body > .player-hover-card.floating-list-player-card.team-center-floating-card img{
    width:112px!important;
    height:136px!important;
    max-width:112px!important;
    max-height:136px!important;
  }
}

/* HC PANTER PLAYER NUMBER CENTER V16 */
/*
  Only the large translucent jersey-number watermark is repositioned.
  Player photo, text, stats and all other components remain unchanged.
*/
.player-showcase{
  position:relative!important;
}

.player-number-watermark{
  left:50%!important;
  right:auto!important;
  top:42%!important;
  transform:translate(-50%,-50%)!important;

  width:auto!important;
  margin:0!important;

  text-align:center!important;
  white-space:nowrap!important;

  z-index:0!important;
}

/*
  Keep actual player content above the background jersey number.
*/
.player-showcase-brand,
.player-showcase-points,
.player-showcase-stats{
  position:relative;
  z-index:1;
}

/*
  Existing mobile behaviour is preserved:
  the original stylesheet hides the giant watermark on narrow phones.
*/

/* HC PANTER PLAYER NUMBER VARIANT B V17 */
/*
  Variant B:
  Large jersey number becomes a premium right-side hero element.
  It stays behind the Season Total card and above the blue background.
*/
.player-showcase{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
}

/* Player content remains above the decorative jersey number */
.player-showcase-brand,
.player-showcase-points,
.player-showcase-stats{
  position:relative!important;
  z-index:3!important;
}

/*
  Main decorative jersey number.
  Stronger than the old watermark, but still clearly background artwork.
*/
.player-number-watermark{
  left:auto!important;
  right:112px!important;
  top:48%!important;
  transform:translateY(-50%)!important;

  width:auto!important;
  margin:0!important;

  font-size:clamp(185px, 18vw, 275px)!important;
  line-height:.82!important;
  font-weight:950!important;
  letter-spacing:-10px!important;

  color:rgba(255,255,255,.12)!important;
  -webkit-text-stroke:2px rgba(255,255,255,.16)!important;

  text-shadow:
    0 0 18px rgba(149,199,255,.14),
    0 0 42px rgba(95,160,255,.10),
    0 12px 34px rgba(17,66,137,.18)!important;

  opacity:1!important;
  white-space:nowrap!important;
  text-align:right!important;
  pointer-events:none!important;
  user-select:none!important;

  z-index:1!important;
}

/*
  Soft luminous halo behind the number.
  This gives the premium sports-card look from Variant B.
*/
.player-showcase::after{
  content:""!important;
  position:absolute!important;
  right:70px!important;
  top:50%!important;
  width:430px!important;
  height:250px!important;
  transform:translateY(-50%)!important;

  background:
    radial-gradient(
      ellipse at center,
      rgba(120,185,255,.14) 0%,
      rgba(76,145,235,.08) 42%,
      rgba(30,95,185,0) 74%
    )!important;

  filter:blur(2px)!important;
  pointer-events:none!important;
  z-index:0!important;
}

/*
  Season Total stays crisp and visibly above the large number.
*/
.player-showcase-points{
  z-index:4!important;
  backdrop-filter:blur(5px)!important;
}

/* Medium screens: keep the same composition, slightly tighter. */
@media(max-width:1100px) and (min-width:701px){
  .player-number-watermark{
    right:82px!important;
    font-size:clamp(155px, 19vw, 225px)!important;
    letter-spacing:-8px!important;
  }

  .player-showcase::after{
    right:35px!important;
    width:360px!important;
    height:220px!important;
  }
}

/*
  Keep existing mobile layout clean.
  We do not force the giant number onto narrow mobile screens.
*/
@media(max-width:700px){
  .player-number-watermark{
    display:none!important;
  }

  .player-showcase::after{
    display:none!important;
  }
}

/* HC PANTER AUTOMATIC PLAYER HERO V18 */
/*
  One reusable premium hero template for every HC Panter player.
  The jersey number remains dynamic: #4 / #22 / #44 / #89 / etc.
  No per-player background image is required.
*/

.player-showcase{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;

  background-color:#123e7a!important;

  background-image:
    /* right-side light bloom */
    radial-gradient(
      ellipse 58% 92% at 78% 42%,
      rgba(112,183,255,.34) 0%,
      rgba(72,143,232,.21) 35%,
      rgba(43,106,196,.10) 55%,
      rgba(17,65,133,0) 76%
    ),

    /* subtle red Panter accent */
    radial-gradient(
      ellipse 34% 56% at 48% 110%,
      rgba(218,35,66,.13) 0%,
      rgba(218,35,66,0) 68%
    ),

    /* diagonal sports-light streak */
    linear-gradient(
      118deg,
      transparent 0%,
      transparent 42%,
      rgba(163,211,255,.08) 43%,
      rgba(163,211,255,.02) 48%,
      transparent 52%,
      transparent 100%
    ),

    /* deep premium blue base */
    linear-gradient(
      106deg,
      #123c72 0%,
      #174b8d 36%,
      #2364b5 67%,
      #327bd8 100%
    )!important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.09),
    inset 0 -1px 0 rgba(2,31,75,.24),
    0 18px 48px rgba(31,72,126,.15)!important;
}

/*
  Sports texture:
  diagonal micro-lines + halftone dots.
*/
.player-showcase::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;

  background-image:
    radial-gradient(circle, rgba(210,234,255,.18) 1px, transparent 1.4px),
    repeating-linear-gradient(
      126deg,
      rgba(255,255,255,.025) 0px,
      rgba(255,255,255,.025) 1px,
      transparent 1px,
      transparent 18px
    )!important;

  background-size:
    12px 12px,
    auto!important;

  background-position:
    82% 0,
    center!important;

  /* Dots are strongest on the far right, almost invisible behind portrait/text */
  -webkit-mask-image:linear-gradient(
    90deg,
    transparent 0%,
    transparent 47%,
    rgba(0,0,0,.28) 58%,
    #000 100%
  )!important;
  mask-image:linear-gradient(
    90deg,
    transparent 0%,
    transparent 47%,
    rgba(0,0,0,.28) 58%,
    #000 100%
  )!important;

  opacity:.48!important;
}

/*
  Concentrated glow around the dynamic jersey number.
*/
.player-showcase::after{
  content:""!important;
  position:absolute!important;
  right:54px!important;
  top:46%!important;
  width:470px!important;
  height:290px!important;
  transform:translateY(-50%)!important;
  z-index:0!important;
  pointer-events:none!important;

  background:
    radial-gradient(
      ellipse at center,
      rgba(175,219,255,.20) 0%,
      rgba(111,181,255,.14) 31%,
      rgba(69,139,229,.07) 52%,
      rgba(31,89,177,0) 75%
    )!important;

  filter:blur(3px)!important;
}

/*
  Dynamic player number.
  This is the key reusable part: the existing HTML supplies the real number.
*/
.player-number-watermark{
  position:absolute!important;

  left:auto!important;
  right:92px!important;
  top:46%!important;
  transform:translateY(-50%)!important;

  width:auto!important;
  max-width:56%!important;
  margin:0!important;

  color:rgba(215,237,255,.20)!important;

  font-size:clamp(205px, 18.2vw, 292px)!important;
  line-height:.78!important;
  font-weight:950!important;
  letter-spacing:-12px!important;

  -webkit-text-stroke:2px rgba(226,244,255,.46)!important;

  text-shadow:
    0 0 2px rgba(255,255,255,.95),
    0 0 10px rgba(200,232,255,.48),
    0 0 24px rgba(129,191,255,.27),
    0 0 52px rgba(76,145,231,.18),
    0 18px 30px rgba(9,51,111,.18)!important;

  opacity:1!important;
  white-space:nowrap!important;
  text-align:right!important;

  pointer-events:none!important;
  user-select:none!important;

  z-index:1!important;
}

/*
  A gentle highlight across the large number, adding the polished
  sports-card look without requiring an image asset.
*/
.player-number-watermark::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;

  background:linear-gradient(
    180deg,
    rgba(255,255,255,.23) 0%,
    rgba(255,255,255,.05) 38%,
    rgba(255,255,255,0) 64%
  )!important;

  mix-blend-mode:screen!important;
}

/*
  All real player content stays crisp above decorative background layers.
*/
.player-showcase-brand{
  position:relative!important;
  z-index:5!important;
}

.player-showcase-points{
  position:relative!important;
  z-index:7!important;

  background:
    linear-gradient(
      145deg,
      rgba(255,255,255,.15),
      rgba(255,255,255,.065)
    )!important;

  border:1px solid rgba(218,239,255,.28)!important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.14),
    0 12px 28px rgba(6,47,111,.12)!important;

  backdrop-filter:blur(7px)!important;
  -webkit-backdrop-filter:blur(7px)!important;
}

.player-showcase-stats{
  position:relative!important;
  z-index:6!important;

  background:
    linear-gradient(
      90deg,
      rgba(12,54,108,.66),
      rgba(25,86,164,.58)
    )!important;

  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}

/* Keep the selected PTS cell premium, not flat. */
.player-showcase-stats > *{
  position:relative!important;
  z-index:1!important;
}

/*
  Medium desktop/tablet:
  preserve composition without colliding with the Season Total card.
*/
@media(max-width:1100px) and (min-width:701px){
  .player-number-watermark{
    right:70px!important;
    max-width:55%!important;
    font-size:clamp(165px, 18.8vw, 235px)!important;
    letter-spacing:-9px!important;
  }

  .player-showcase::after{
    right:24px!important;
    width:380px!important;
    height:250px!important;
  }
}

/*
  Mobile remains intentionally clean.
  No giant number behind compact mobile content.
*/
@media(max-width:700px){
  .player-number-watermark{
    display:none!important;
  }

  .player-showcase::after{
    display:none!important;
  }

  .player-showcase::before{
    opacity:.25!important;
  }
}

/* HC PANTER REFINED PLAYER HERO V19 */
/*
  Refined version of the premium player hero.
  V19 intentionally overrides V18 where needed.
*/

.player-showcase{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;

  background:
    radial-gradient(
      ellipse 46% 78% at 83% 43%,
      rgba(95,165,246,.22) 0%,
      rgba(67,130,221,.13) 42%,
      rgba(28,78,155,0) 76%
    ),
    linear-gradient(
      116deg,
      transparent 0%,
      transparent 48%,
      rgba(118,183,255,.055) 49%,
      rgba(118,183,255,.018) 53%,
      transparent 57%,
      transparent 100%
    ),
    linear-gradient(
      107deg,
      #123d73 0%,
      #174b8b 38%,
      #205da8 66%,
      #2b70c6 100%
    )!important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    inset 0 -1px 0 rgba(4,33,80,.24),
    0 16px 42px rgba(29,65,118,.13)!important;
}

/* Subtle sports texture on the RIGHT only */
.player-showcase::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;

  background-image:
    radial-gradient(circle, rgba(210,232,255,.14) 1px, transparent 1.2px),
    repeating-linear-gradient(
      128deg,
      rgba(255,255,255,.018) 0,
      rgba(255,255,255,.018) 1px,
      transparent 1px,
      transparent 20px
    )!important;

  background-size:12px 12px, auto!important;

  -webkit-mask-image:linear-gradient(
    90deg,
    transparent 0%,
    transparent 54%,
    rgba(0,0,0,.35) 68%,
    #000 100%
  )!important;

  mask-image:linear-gradient(
    90deg,
    transparent 0%,
    transparent 54%,
    rgba(0,0,0,.35) 68%,
    #000 100%
  )!important;

  opacity:.34!important;
}

/* Soft focused glow behind the jersey number */
.player-showcase::after{
  content:""!important;
  position:absolute!important;
  right:95px!important;
  top:46%!important;
  width:390px!important;
  height:240px!important;
  transform:translateY(-50%)!important;
  z-index:0!important;
  pointer-events:none!important;

  background:
    radial-gradient(
      ellipse at center,
      rgba(125,190,255,.15) 0%,
      rgba(86,155,235,.09) 42%,
      rgba(42,100,188,0) 76%
    )!important;

  filter:blur(3px)!important;
}

/*
  IMPORTANT:
  Large number remains dynamic, but is now controlled and elegant:
  - smaller than V18
  - shifted right
  - transparent blue/white gradient
  - outline + restrained glow
*/
.player-number-watermark{
  position:absolute!important;

  left:auto!important;
  right:118px!important;
  top:46%!important;
  transform:translateY(-50%)!important;

  width:auto!important;
  max-width:48%!important;
  margin:0!important;

  font-size:clamp(170px, 15.2vw, 235px)!important;
  line-height:.82!important;
  font-weight:950!important;
  letter-spacing:-9px!important;

  color:transparent!important;

  background:
    linear-gradient(
      180deg,
      rgba(225,241,255,.30) 0%,
      rgba(177,215,255,.20) 48%,
      rgba(113,173,239,.12) 100%
    )!important;

  -webkit-background-clip:text!important;
  background-clip:text!important;

  -webkit-text-stroke:1.6px rgba(219,239,255,.45)!important;

  text-shadow:
    0 0 8px rgba(195,226,255,.15),
    0 0 24px rgba(108,176,247,.13),
    0 12px 28px rgba(10,52,113,.12)!important;

  opacity:.95!important;
  white-space:nowrap!important;
  text-align:right!important;
  pointer-events:none!important;
  user-select:none!important;
  z-index:1!important;
}

/* Kill the too-bright highlight pseudo-element from V18 */
.player-number-watermark::after{
  display:none!important;
  content:none!important;
}

/* Keep player identity crisp */
.player-showcase-brand{
  position:relative!important;
  z-index:5!important;
}

/*
  Season Total:
  darker glass panel so it stays readable even when overlapping the number.
*/
.player-showcase-points{
  position:relative!important;
  z-index:8!important;

  background:
    linear-gradient(
      145deg,
      rgba(31,91,168,.72),
      rgba(28,79,150,.58)
    )!important;

  border:1px solid rgba(193,224,255,.26)!important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    0 14px 30px rgba(7,41,96,.16)!important;

  backdrop-filter:blur(9px)!important;
  -webkit-backdrop-filter:blur(9px)!important;
}

/* Make Season Total text fully solid */
.player-showcase-points,
.player-showcase-points *{
  color:#fff!important;
  opacity:1!important;
  text-shadow:0 1px 1px rgba(4,35,80,.18)!important;
}

/* Bottom strip remains dark and readable */
.player-showcase-stats{
  position:relative!important;
  z-index:6!important;

  background:
    linear-gradient(
      90deg,
      rgba(15,58,112,.80),
      rgba(28,91,172,.73)
    )!important;

  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}

/* Medium desktop/tablet */
@media(max-width:1100px) and (min-width:701px){
  .player-number-watermark{
    right:88px!important;
    max-width:47%!important;
    font-size:clamp(145px, 16vw, 195px)!important;
    letter-spacing:-7px!important;
  }

  .player-showcase::after{
    right:48px!important;
    width:320px!important;
    height:210px!important;
  }
}

/* Mobile: keep compact layout clean */
@media(max-width:700px){
  .player-number-watermark{
    display:none!important;
  }

  .player-showcase::after{
    display:none!important;
  }

  .player-showcase::before{
    opacity:.20!important;
  }
}

/* HC PANTER PLAYER NUMBER POSITION V20 */
/*
  Fine-tuning after V19:
  move the large dynamic jersey number left so all digits remain visible
  and do not hide behind the Season Total card.
  All V19 colors, glow, typography and background remain unchanged.
*/
.player-number-watermark{
  right:218px!important;
}

/*
  Move the soft number glow together with the number.
*/
.player-showcase::after{
  right:185px!important;
}

/*
  Medium desktop/tablet:
  slightly smaller offset, keeping the same visual balance.
*/
@media(max-width:1100px) and (min-width:701px){
  .player-number-watermark{
    right:150px!important;
  }

  .player-showcase::after{
    right:118px!important;
  }
}

/*
  Existing V19 mobile behaviour remains unchanged.
*/


/* HC PANTER PNG PLAYER BACKGROUNDS V23 */
/*
  Real PNG player backgrounds selected by jersey number.
  Example: #44 -> /player-backgrounds/44.png
*/
.player-showcase.player-custom-bg{
  background-color:#123f78!important;
  background-image:var(--player-hero-bg)!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:cover!important;
}

/* PNG artwork already contains the number and background effects. */
.player-showcase.player-custom-bg::before,
.player-showcase.player-custom-bg::after{
  content:none!important;
  display:none!important;
}

/* Prevent the old CSS number from being drawn over the PNG number. */
.player-showcase.player-custom-bg .player-number-watermark{
  display:none!important;
}

/* Keep player UI above the background. */
.player-showcase.player-custom-bg .player-showcase-brand,
.player-showcase.player-custom-bg .player-showcase-points,
.player-showcase.player-custom-bg .player-showcase-stats{
  position:relative!important;
  z-index:3!important;
}

/* Season total remains readable over the bright artwork. */
.player-showcase.player-custom-bg .player-showcase-points{
  background:linear-gradient(145deg,rgba(24,71,142,.86),rgba(28,88,172,.76))!important;
  border:1px solid rgba(205,231,255,.30)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    0 12px 28px rgba(6,39,95,.18)!important;
  backdrop-filter:blur(7px)!important;
  -webkit-backdrop-filter:blur(7px)!important;
}

.player-showcase.player-custom-bg .player-showcase-points,
.player-showcase.player-custom-bg .player-showcase-points *{
  color:#fff!important;
  opacity:1!important;
}

@media(max-width:1100px) and (min-width:701px){
  .player-showcase.player-custom-bg{
    background-position:58% center!important;
  }
}

@media(max-width:700px){
  .player-showcase.player-custom-bg{
    background-position:64% center!important;
  }
}


/* HC PANTER REMOVE SEASON TOTAL V24 */
.player-showcase-points{
  display:none!important;
}
