/* ============================================================
   DTPS — media layer (news, leaderboards, archive, hall of fame)
   Uses the same tokens as dtps.css / themes.css.
   ============================================================ */

/* ---------- NEWS ---------- */
#feed { max-width: 760px; }
.news-card{
  border:2px solid var(--line);
  padding:28px 30px;
  margin-bottom:18px;
  background:var(--paper);
  transition:border-color .25s, transform .25s var(--ease);
}
.news-card:hover{ border-color:var(--ink); }
.news-card.pinned{ border-color:var(--ink); background:var(--gray-1); }
.news-meta{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.news-kind{
  font-family:var(--mono); font-size:10px; letter-spacing:0.14em; text-transform:uppercase;
  padding:4px 10px; border:1px solid var(--ink);
}
.news-kind.k-result{ background:var(--ink); color:var(--paper); }
.news-kind.k-season{ background:var(--ink); color:var(--paper); }
.news-pin{ font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gray-7); }
.news-date{ font-family:var(--mono); font-size:11px; color:var(--gray-5); margin-left:auto; }
.news-title{ font-family:var(--disp); font-weight:800; font-size:clamp(22px,3.4vw,30px); letter-spacing:-0.025em; line-height:1.02; margin-bottom:6px; }
.news-body{ font-size:15px; line-height:1.6; color:var(--gray-7); margin-top:12px; }
.news-author{ font-family:var(--mono); font-size:11px; letter-spacing:0.04em; color:var(--gray-5); margin-top:16px; }
.news-author.auto{ opacity:.6; }

/* scoreline inside a recap */
.news-score{ display:flex; flex-direction:column; gap:1px; margin-top:16px; border:2px solid var(--line); max-width:380px; }
.ns-team{ display:flex; align-items:center; justify-content:space-between; padding:13px 18px; background:var(--paper); }
.ns-team + .ns-team{ border-top:1px solid var(--gray-1); }
.ns-team span:first-child{ font-family:var(--disp); font-weight:700; font-size:17px; letter-spacing:-0.01em; }
.ns-team .ns-num{ font-family:var(--disp); font-weight:900; font-size:22px; color:var(--gray-3); }
.ns-team.won span:first-child{ color:var(--ink); }
.ns-team.won .ns-num{ color:var(--ink); }
.ns-team.won{ position:relative; }
.ns-team.won::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--ink); }

/* ---------- LEADERBOARDS ---------- */
.lb-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:20px; margin-bottom:40px; }
.lb-card{ border:2px solid var(--line); }
.lb-head{ background:var(--ink); color:var(--paper); padding:16px 20px; font-family:var(--mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; display:flex; justify-content:space-between; align-items:center; }
.lb-head .lb-metric{ opacity:.6; font-size:10px; }
.lb-row{ display:flex; align-items:center; gap:14px; padding:14px 20px; border-bottom:1px solid var(--gray-1); }
.lb-row:last-child{ border-bottom:none; }
.lb-rank{ font-family:var(--disp); font-weight:900; font-size:20px; width:28px; color:var(--gray-3); }
.lb-row:first-child .lb-rank{ color:var(--ink); }
.lb-logo{ width:34px; height:34px; border:1.5px solid var(--ink); display:flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; background:var(--gray-1); }
.lb-logo img{ width:100%; height:100%; object-fit:cover; }
.lb-logo .ph{ font-family:var(--disp); font-weight:900; font-size:14px; color:var(--paper); -webkit-text-stroke:1px var(--gray-3); -webkit-text-fill-color:transparent; }
.lb-name{ flex:1; font-family:var(--disp); font-weight:700; font-size:16px; letter-spacing:-0.01em; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lb-val{ font-family:var(--mono); font-size:15px; font-weight:700; }

/* feature card: team of the week */
.totw{ border:2px solid var(--ink); background:var(--ink); color:var(--paper); padding:36px 32px; margin-bottom:40px; display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.totw-label{ font-family:var(--mono); font-size:11px; letter-spacing:0.3em; text-transform:uppercase; color:var(--gray-5); margin-bottom:10px; }
.totw-name{ font-family:var(--disp); font-weight:900; font-size:clamp(32px,6vw,56px); letter-spacing:-0.04em; line-height:0.9; }
.totw-sub{ font-family:var(--mono); font-size:12px; color:var(--gray-3); margin-top:12px; letter-spacing:0.05em; }
.totw-logo{ width:92px; height:92px; border:2px solid var(--paper); display:flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; }
.totw-logo img{ width:100%; height:100%; object-fit:cover; }
.totw-logo .ph{ font-family:var(--disp); font-weight:900; font-size:40px; color:var(--ink); -webkit-text-stroke:2px var(--paper); -webkit-text-fill-color:transparent; }

/* ---------- AWARDS ---------- */
.award-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.award-card{ border:2px solid var(--line); padding:24px; transition:border-color .25s; }
.award-card:hover{ border-color:var(--ink); }
.award-title{ font-family:var(--mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gray-5); margin-bottom:14px; }
.award-recipient{ display:flex; align-items:center; gap:14px; }
.award-av{ width:48px; height:48px; border:1.5px solid var(--ink); display:flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; background:var(--gray-1); }
.award-av img{ width:100%; height:100%; object-fit:cover; }
.award-av .ph{ font-family:var(--disp); font-weight:900; font-size:18px; color:var(--paper); -webkit-text-stroke:1px var(--gray-3); -webkit-text-fill-color:transparent; }
.award-rname{ font-family:var(--disp); font-weight:700; font-size:18px; letter-spacing:-0.01em; }
.award-note{ font-size:13px; color:var(--gray-7); margin-top:12px; line-height:1.5; font-style:italic; }

/* ---------- MATCH ARCHIVE ---------- */
.arch-list{ border:2px solid var(--line); }
.arch-row{ display:grid; grid-template-columns:1fr auto 1fr auto; align-items:center; gap:16px; padding:18px 24px; border-bottom:1px solid var(--gray-1); transition:background .2s; }
.arch-row:last-child{ border-bottom:none; }
.arch-row:hover{ background:var(--gray-1); }
.arch-team{ display:flex; align-items:center; gap:12px; min-width:0; }
.arch-team.right{ justify-content:flex-end; }
.arch-team .at-logo{ width:36px; height:36px; border:1.5px solid var(--ink); display:flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; background:var(--gray-1); }
.arch-team .at-logo img{ width:100%; height:100%; object-fit:cover; }
.arch-team .at-logo .ph{ font-family:var(--disp); font-weight:900; font-size:14px; color:var(--paper); -webkit-text-stroke:1px var(--gray-3); -webkit-text-fill-color:transparent; }
.arch-team .at-name{ font-family:var(--disp); font-weight:700; font-size:16px; letter-spacing:-0.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.arch-team.loser .at-name{ color:var(--gray-3); }
.arch-score{ font-family:var(--disp); font-weight:900; font-size:26px; letter-spacing:-0.02em; white-space:nowrap; }
.arch-score .s-lose{ color:var(--gray-3); }
.arch-date{ font-family:var(--mono); font-size:10px; color:var(--gray-5); text-align:right; white-space:nowrap; }
@media(max-width:640px){
  .arch-row{ grid-template-columns:1fr auto 1fr; }
  .arch-date{ display:none; }
}

/* ---------- HALL OF FAME ---------- */
.hof-season{ border:2px solid var(--line); margin-bottom:28px; }
.hof-champ{ background:var(--ink); color:var(--paper); padding:36px 32px; display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.hof-champ .crown{ font-family:var(--mono); font-size:11px; letter-spacing:0.3em; text-transform:uppercase; color:var(--gray-5); margin-bottom:8px; }
.hof-champ .cname{ font-family:var(--disp); font-weight:900; font-size:clamp(30px,5vw,48px); letter-spacing:-0.03em; line-height:0.9; }
.hof-champ .season-tag{ font-family:var(--mono); font-size:12px; color:var(--gray-3); margin-top:10px; }
.hof-champ .clogo{ width:84px; height:84px; border:2px solid var(--paper); display:flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; }
.hof-champ .clogo img{ width:100%; height:100%; object-fit:cover; }
.hof-champ .clogo .ph{ font-family:var(--disp); font-weight:900; font-size:36px; color:var(--ink); -webkit-text-stroke:2px var(--paper); -webkit-text-fill-color:transparent; }
.hof-standings{ padding:8px 0; }
.hof-srow{ display:flex; align-items:center; gap:16px; padding:11px 28px; font-size:14px; }
.hof-srow .hr-rank{ font-family:var(--disp); font-weight:900; width:24px; color:var(--gray-3); }
.hof-srow .hr-name{ flex:1; font-family:var(--disp); font-weight:600; }
.hof-srow .hr-rec{ font-family:var(--mono); font-size:12px; color:var(--gray-5); }
.hof-srow .hr-pts{ font-family:var(--mono); font-weight:700; }

/* section heading inside media pages */
.sec-label{ font-family:var(--mono); font-size:12px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gray-5); margin:0 0 20px; display:flex; align-items:center; gap:12px; }
.sec-label::after{ content:''; flex:1; height:1px; background:var(--line); }

/* ============================================================
   MATCH CENTER (homepage live data strip)
   ============================================================ */
.matchcenter{ padding:80px 40px; max-width:1200px; margin:0 auto; }
.mc-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:36px; flex-wrap:wrap; gap:16px; }
.mc-title{ font-family:var(--disp); font-weight:900; font-size:clamp(28px,5vw,48px); letter-spacing:-0.04em; line-height:0.9; }
.mc-title .outline{ -webkit-text-stroke:2px var(--ink); -webkit-text-fill-color:transparent; }
.mc-link{ font-family:var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:2px; }
.mc-cols{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; }
@media(max-width:900px){ .mc-cols{ grid-template-columns:1fr; } }

.mc-col-label{ font-family:var(--mono); font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gray-5); margin-bottom:16px; display:flex; align-items:center; gap:8px; }
.mc-col-label .live-dot{ width:8px; height:8px; border-radius:50%; background:#FF2020; animation:mcpulse 1.4s ease-in-out infinite; }
@keyframes mcpulse{ 0%,100%{ opacity:1; box-shadow:0 0 0 0 rgba(255,32,32,.5);} 50%{ opacity:.6; box-shadow:0 0 0 6px rgba(255,32,32,0);} }

/* upcoming/live match card */
.mc-match{ border:2px solid var(--line); padding:18px 20px; margin-bottom:12px; transition:border-color .2s; }
.mc-match:hover{ border-color:var(--ink); }
.mc-match.is-live{ border-color:#FF2020; }
.mc-vs{ display:flex; flex-direction:column; gap:8px; }
.mc-side{ display:flex; align-items:center; gap:10px; }
.mc-side .nm{ font-family:var(--disp); font-weight:700; font-size:16px; letter-spacing:-0.01em; }
.mc-time{ font-family:var(--mono); font-size:11px; color:var(--gray-5); margin-top:12px; letter-spacing:0.05em; display:flex; align-items:center; gap:8px; }
.mc-time.live{ color:#FF2020; font-weight:700; }
.mc-time .ld{ width:7px; height:7px; border-radius:50%; background:#FF2020; animation:mcpulse 1.4s ease-in-out infinite; }

/* mini result row */
.mc-result{ display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--gray-1); padding:13px 0; }
.mc-result:last-child{ border-bottom:none; }
.mc-result .r-teams{ font-family:var(--disp); font-weight:600; font-size:14px; }
.mc-result .r-win{ font-weight:800; }
.mc-result .r-score{ font-family:var(--mono); font-size:13px; font-weight:700; }

/* standings mini */
.mc-standrow{ display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--gray-1); }
.mc-standrow:last-child{ border-bottom:none; }
.mc-standrow .sr-rank{ font-family:var(--disp); font-weight:900; font-size:15px; width:20px; color:var(--gray-3); }
.mc-standrow:first-child .sr-rank{ color:var(--ink); }
.mc-standrow .sr-name{ flex:1; font-family:var(--disp); font-weight:600; font-size:14px; }
.mc-standrow .sr-rec{ font-family:var(--mono); font-size:11px; color:var(--gray-5); }
.mc-standrow .sr-pts{ font-family:var(--mono); font-size:12px; font-weight:700; }

.mc-empty{ font-family:var(--mono); font-size:12px; color:var(--gray-5); padding:24px 0; letter-spacing:0.03em; }

/* ============================================================
   RICH TEAM PAGE — banner, form, identity
   ============================================================ */
.team-banner{ position:relative; border:2px solid var(--line); margin-bottom:28px; overflow:hidden; }
.team-banner-accent{ height:8px; width:100%; }
.team-banner-body{ display:flex; align-items:center; gap:28px; padding:32px 30px; flex-wrap:wrap; }
.team-crest{ width:104px; height:104px; border:2px solid var(--ink); display:flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; background:var(--gray-1); position:relative; }
.team-crest img{ width:100%; height:100%; object-fit:cover; }
.team-crest .ph{ font-family:var(--disp); font-weight:900; font-size:46px; -webkit-text-fill-color:transparent; }
.team-id{ flex:1; min-width:200px; }
.team-id .tname{ font-family:var(--disp); font-weight:900; font-size:clamp(34px,6vw,58px); letter-spacing:-.04em; line-height:.9; }
.team-id .ttag{ font-size:15px; color:var(--gray-7); margin-top:10px; font-style:italic; }
.team-id .tcaps{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--gray-5); margin-top:12px; text-transform:uppercase; }
.team-status-pill{ font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; padding:5px 11px; border:1px solid var(--ink); }

/* recent form dots */
.form-strip{ display:flex; align-items:center; gap:18px; margin-bottom:28px; flex-wrap:wrap; }
.form-label{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gray-5); }
.form-dots{ display:flex; gap:7px; }
.form-dot{ width:34px; height:34px; display:flex; align-items:center; justify-content:center; font-family:var(--disp); font-weight:900; font-size:14px; border:2px solid var(--ink); }
.form-dot.W{ background:var(--ink); color:var(--paper); }
.form-dot.L{ background:var(--paper); color:var(--gray-3); border-color:var(--gray-3); }
.form-empty{ font-family:var(--mono); font-size:12px; color:var(--gray-5); }
.streak-tag{ font-family:var(--mono); font-size:12px; letter-spacing:.06em; padding:6px 12px; border:1.5px solid var(--ink); text-transform:uppercase; }
.streak-tag.hot{ background:var(--ink); color:var(--paper); }

/* team stat row — reuse prof-meta but with accent option */
.team-stat-accent{ position:relative; }
.team-stat-accent::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:3px; }

/* roster card upgrade */
.team-section-label{ font-family:var(--mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gray-5); margin:32px 0 16px; display:flex; align-items:center; gap:12px; }
.team-section-label::after{ content:''; flex:1; height:1px; background:var(--line); }
