.fr-league-copy{
  margin-bottom:12px;
}

.fr-league-table{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
  overflow-x:auto;
  padding-bottom:2px;
}

/* Standings drill-down: each row is a <details> revealing roster + results. */
.fr-league-team{ display:block; }
.fr-league-team > summary{ cursor:pointer; list-style:none; outline:none; }
.fr-league-team > summary::-webkit-details-marker{ display:none; }
.fr-league-team > summary:hover{ border-color:#33415a; }
.fr-exp{ display:inline-block; font-style:normal; color:#7d8a9c; margin-right:6px; transition:transform .15s ease; }
.fr-league-team[open] .fr-exp{ transform:rotate(90deg); color:#FF2F92; }
.fr-league-team[open] > summary{ border-color:#FF2F92; border-bottom-left-radius:0; border-bottom-right-radius:0; }
.fr-league-hint{ display:block; margin-top:6px; color:#FF2F92; font-weight:700; }
.fr-league-detail{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:16px; padding:14px 16px; border:1px solid #FF2F92; border-top:0; border-radius:0 0 12px 12px; background:rgba(13,18,26,.55); }
.fr-ld-h{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8fa3ba; font-weight:700; margin-bottom:8px; }
.fr-ld-player{ display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:8px; align-items:center; padding:5px 0; border-bottom:1px solid #1b2430; }
.fr-ld-role{ font-size:10px; font-weight:700; color:#8fa0b6; letter-spacing:.05em; }
.fr-ld-name{ color:#e6edf5; font-weight:600; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fr-ld-bench{ font-style:normal; font-size:10px; color:#7d8a9c; }
.fr-ld-ovr{ font-family:'Teko',sans-serif; font-size:21px; line-height:1; }
.fr-ld-rec{ color:#aab6c6; font-size:12px; margin-bottom:8px; }
.fr-ld-result{ display:flex; justify-content:space-between; gap:10px; padding:4px 0; border-bottom:1px solid #1b2430; color:#cdd7e3; font-size:13px; }
.fr-ld-result.win b{ color:#7cff5a; }
.fr-ld-empty{ color:#7d8a9c; font-size:12px; }

/* ===== Stats section (player statistics leaderboards) ===== */
.fr-stats-tabs{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.fr-stats-tab{ padding:8px 14px; border:1px solid #243041; border-radius:9px; background:#10161f; color:#aab6c6; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
.fr-stats-tab:hover{ border-color:#33415a; color:#fff; }
.fr-stats-tab.active{ background:rgba(255,47,146,.12); border-color:#FF2F92; color:#fff; }
.fr-stats-controls{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:12px; }
.fr-stats-scope{ display:flex; gap:4px; }
.fr-stats-scope-btn{ padding:6px 11px; border:1px solid #243041; border-radius:8px; background:transparent; color:#9fb0c4; font:inherit; font-size:12px; cursor:pointer; }
.fr-stats-scope-btn.active{ background:#172230; border-color:#36507a; color:#7cd0ff; }
.fr-stats-qual{ display:flex; align-items:center; gap:6px; color:#aab6c6; font-size:12px; cursor:pointer; }
.fr-stats-count{ margin-left:auto; color:#7d8a9c; font-size:12px; }
.fr-stats-scroll{ overflow-x:auto; border:1px solid #1d2735; border-radius:12px; }
.fr-stats-table{ width:100%; border-collapse:collapse; font-size:13px; }
.fr-stats-table th,.fr-stats-table td{ padding:8px 10px; text-align:right; white-space:nowrap; border-bottom:1px solid #1b2430; }
.fr-stats-table th.l,.fr-stats-table td.l{ text-align:left; }
.fr-stats-table th{ position:sticky; top:0; background:#0d131b; color:#8fa0b6; font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.fr-stats-table td.rk,.fr-stats-table th.rk{ color:#5f6b7c; font-family:'Teko',sans-serif; text-align:center; }
.fr-stats-table td.mut{ color:#8fa3ba; }
.fr-stats-table tbody tr:hover{ background:rgba(255,255,255,.03); }
.fr-stats-table tbody tr.me{ background:rgba(255,210,63,.07); }
.fr-stats-table tbody tr.me td b{ color:#ffd23f; }
.fr-stats-table tbody tr.fr-stat-row{ cursor:pointer; }
.fr-stats-table tbody tr.tot td{ border-top:2px solid #2a3344; font-weight:700; color:#fff; }
/* player detail / series log */
.fr-stat-back{ display:inline-flex; align-items:center; gap:6px; margin-bottom:14px; padding:7px 13px; border:1px solid #2a3442; border-radius:8px; background:transparent; color:#9fb0c4; font:inherit; font-size:13px; cursor:pointer; }
.fr-stat-back:hover{ border-color:#FF2F92; color:#fff; }
.fr-stat-detail-head{ display:flex; align-items:center; gap:14px; margin-bottom:8px; }
.fr-stat-av{ width:54px; height:54px; flex:0 0 54px; display:flex; align-items:center; justify-content:center; border-radius:13px; border:2px solid #FF2F92; color:#FF2F92; font-weight:800; font-size:18px; background:rgba(255,47,146,.06); }
.fr-stat-name{ font-size:20px; font-weight:800; color:#fff; }
.fr-stat-team{ font-size:13px; }
.fr-stat-kd{ margin-left:auto; text-align:right; }
.fr-stat-kd b{ display:block; font-family:'Orbitron','Teko',sans-serif; font-size:28px; line-height:1; }
.fr-stat-kd span{ font-size:11px; color:#8fa0b6; text-transform:uppercase; letter-spacing:.06em; }
.fr-stat-sub{ margin:16px 0 8px; }
.fr-stat-log{ display:flex; flex-direction:column; gap:6px; }
.fr-gl-row{ display:grid; grid-template-columns:28px minmax(70px,1fr) minmax(80px,1.2fr) auto; gap:10px; align-items:center; padding:9px 12px; border:1px solid #1d2735; border-radius:10px; background:#10161f; font-size:13px; }
.fr-gl-res{ width:24px; height:24px; display:flex; align-items:center; justify-content:center; border-radius:6px; font-weight:800; font-size:12px; }
.fr-gl-row.w .fr-gl-res{ background:rgba(124,255,90,.14); color:#7cff5a; }
.fr-gl-row.l .fr-gl-res{ background:rgba(255,107,107,.14); color:#ff8a8a; }
.fr-gl-ev{ color:#e6edf5; font-weight:600; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fr-gl-opp{ color:#8fa3ba; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fr-gl-line{ color:#c2cedd; text-align:right; white-space:nowrap; }
/* GOAT / franchise legacy */
.fr-goat-hero{ display:grid; grid-template-columns:repeat(auto-fit, minmax(108px,1fr)); gap:12px; margin:14px 0 18px; }
.fr-goat-stat{ padding:12px 14px; border:1px solid #243041; border-radius:12px; background:linear-gradient(180deg,#10161f,#0b1017); text-align:center; }
.fr-goat-big{ font-family:'Orbitron','Teko',sans-serif; font-size:25px; line-height:1; color:#fff; }
.fr-goat-lbl{ margin-top:6px; font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:#8fa0b6; }
.fr-goat-cols{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:18px; }
.fr-goat-row{ display:grid; grid-template-columns:26px minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:8px 10px; border-bottom:1px solid #1b2430; font-size:13px; }
.fr-goat-row .rk{ color:#5f6b7c; font-family:'Teko',sans-serif; text-align:center; }
.fr-goat-row .nm{ color:#e6edf5; font-weight:600; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fr-goat-row .mut{ color:#8fa3ba; font-size:12px; }
.fr-goat-row b{ color:#ffd23f; white-space:nowrap; }
.fr-mvp{ border:1px solid #3a3320; background:linear-gradient(180deg,#191608,#0e0f14); }
.fr-mvp-hero{ display:flex; align-items:center; gap:18px; padding:14px 14px 6px; }
.fr-mvp-crown{ font-size:48px; line-height:1; }
.fr-mvp-main{ flex:1; min-width:0; }
.fr-mvp-name{ font-family:'Teko',sans-serif; font-size:34px; line-height:1; color:#ffd23f; }
.fr-mvp-team{ font-size:13px; margin:2px 0 6px; }
.fr-mvp-line{ font-size:13px; color:#cbd6e4; } .fr-mvp-line b{ color:#fff; }
.fr-mvp-score{ text-align:center; padding:6px 14px; border-left:1px solid #2a2a1a; }
.fr-mvp-score b{ display:block; font-family:'Teko',sans-serif; font-size:46px; line-height:.9; color:#7cff5a; }
.fr-mvp-score span{ font-size:11px; color:#8fa3ba; letter-spacing:.08em; text-transform:uppercase; }
.fr-goat-row.mvp{ background:rgba(255,210,63,.07); border-radius:8px; } .fr-goat-row.mvp .nm{ color:#ffd23f; }
.fr-goat-season{ border:1px solid #1d2735; border-radius:10px; background:#10161f; margin-bottom:6px; }
.fr-goat-season>summary{ display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:9px 12px; cursor:pointer; list-style:none; }
.fr-goat-season>summary::-webkit-details-marker{ display:none; }
.fr-goat-season .nm{ color:#e6edf5; font-weight:600; }
.fr-goat-season .mut{ color:#8fa3ba; font-size:12px; }
.fr-goat-season>summary b{ color:#ffd23f; white-space:nowrap; }
.fr-goat-season.champ{ border-color:#6b5a1f; }
.fr-goat-season-body{ padding:0 12px 12px; color:#aab6c6; font-size:12px; line-height:1.6; }
/* Circuit / season timeline */
.fr-circuit-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:16px; }
.fr-circuit-split{ border:1px solid #1d2735; border-radius:12px; background:linear-gradient(180deg,#10161f,#0b1017); padding:12px; }
.fr-circuit-split-h{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8fa3ba; font-weight:700; margin-bottom:8px; }
.fr-circuit-node{ display:grid; grid-template-columns:24px minmax(0,1fr) auto; gap:9px; align-items:center; padding:8px 10px; border:1px solid #1b2430; border-radius:9px; margin-bottom:6px; background:#0d131b; }
.fr-circuit-node:last-child{ margin-bottom:0; }
.fr-cn-ico{ text-align:center; }
.fr-cn-label{ color:#cdd7e3; font-size:13px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fr-cn-res{ font-size:11px; font-weight:700; white-space:nowrap; color:#9fb0c4; }
.fr-cn-res.mut{ color:#5f6b7c; font-weight:600; }
.fr-cn-res.win{ color:#7cff5a; }
.fr-cn-res.live{ color:#FF2F92; }
.fr-circuit-node.now{ border-color:#FF2F92; box-shadow:0 0 0 1px rgba(255,47,146,.12); background:rgba(255,47,146,.05); }
.fr-circuit-node.now .fr-cn-label{ color:#fff; font-weight:600; }
.fr-circuit-node.done{ opacity:.78; }
.fr-circuit-node.fr-cn-champs{ border-color:#6b5a1f; }
.fr-circuit-node.fr-cn-champs .fr-cn-label{ color:#ffd23f; }
/* Players Hub */
.fr-ph-tag{ display:inline-block; padding:2px 8px; border-radius:99px; font-size:11px; font-weight:700; }
.fr-ph-tag.free{ background:rgba(124,208,255,.12); color:#7cd0ff; }
.fr-ph-tag.mine{ background:rgba(255,210,63,.14); color:#ffd23f; }
.fr-ph-tag.chal{ background:rgba(124,255,90,.12); color:#7cff5a; }
.fr-ph-pager{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:14px; color:#9fb0c4; font-size:13px; }
.fr-ph-pager .fr-ph-page[disabled]{ opacity:.4; cursor:default; }
/* Strategy */
.fr-strat-group{ margin-bottom:16px; }
.fr-strat-h{ font-size:13px; font-weight:700; color:#cdd7e3; margin-bottom:8px; }
.fr-strat-opts{ display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:8px; }
.fr-strat-opt{ display:flex; flex-direction:column; gap:3px; padding:11px 13px; border:1px solid #243041; border-radius:11px; background:#10161f; color:#aab6c6; font:inherit; text-align:left; cursor:pointer; }
.fr-strat-opt:hover{ border-color:#33415a; }
.fr-strat-opt.active{ border-color:#FF2F92; background:rgba(255,47,146,.08); }
.fr-strat-opt b{ color:#fff; font-size:14px; }
.fr-strat-opt small{ color:#8fa3ba; font-size:11px; line-height:1.4; }
.fr-strat-opt.active b{ color:#FF2F92; }
.fr-strat-effect{ margin-top:18px; padding:14px 16px; border:1px solid #243041; border-radius:12px; background:linear-gradient(180deg,#10161f,#0b1017); }
.fr-strat-effect .fr-strat-h{ margin-bottom:0; }
.fr-strat-lines{ margin:8px 0 0; padding-left:18px; color:#aab6c6; font-size:13px; line-height:1.7; }
/* Support Staff */
.fr-staff-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:14px; }
.fr-staff-card{ display:flex; flex-direction:column; gap:8px; padding:14px; border:1px solid #243041; border-radius:13px; background:linear-gradient(180deg,#10161f,#0b1017); }
.fr-staff-top{ display:flex; align-items:center; gap:11px; }
.fr-staff-ico{ font-size:26px; }
.fr-staff-id{ min-width:0; }
.fr-staff-name{ font-weight:800; color:#fff; font-size:15px; }
.fr-staff-lvl{ font-size:12px; color:#8fa0b6; display:flex; align-items:center; gap:6px; }
.fr-staff-dots{ display:inline-flex; gap:3px; }
.fr-staff-dot{ width:8px; height:8px; border-radius:50%; background:#243041; }
.fr-staff-dot.on{ background:#FF2F92; }
.fr-staff-desc{ font-size:12px; color:#9fb0c4; line-height:1.5; flex:1; }
.fr-staff-eff{ font-size:13px; font-weight:600; color:#7cd0ff; }
.fr-staff-up[disabled]{ opacity:.45; cursor:default; }
/* Inbox feed */
.fr-inbox-list{ display:flex; flex-direction:column; gap:6px; }
.fr-inbox-item{ display:grid; grid-template-columns:30px minmax(0,1fr); gap:10px; align-items:start; padding:9px 11px; border:1px solid #1d2735; border-radius:10px; background:#10161f; }
.fr-inbox-ico{ font-size:18px; text-align:center; }
.fr-inbox-body{ min-width:0; }
.fr-inbox-title{ color:#e6edf5; font-weight:600; font-size:13px; }
.fr-inbox-text{ color:#8fa3ba; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.fr-inbox-item.fr-inbox-milestone{ border-color:#6b5a1f; }
.fr-inbox-item.fr-inbox-injury{ border-color:#5a2530; }
.fr-inbox-item.fr-inbox-transfer{ border-color:#23405a; }
.fr-inbox-item.fr-inbox-trade{ border-color:#2f6b4a; }
.fr-inbox-item.fr-inbox-trade-out{ border-color:#3a3357; }
.fr-inbox-actions{ display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.fr-inbox-actions .btn{ padding:6px 12px; font-size:12px; }
.fr-trade-form{ display:grid; gap:10px; }
.fr-trade-field{ display:grid; gap:4px; font-size:12px; color:#8fa3ba; }
.fr-trade-sel,.fr-trade-cash{ width:100%; min-width:0; padding:8px 10px; border:1px solid #243041; border-radius:8px; background:#0e141d; color:#e6edf5; font-size:13px; }
.fr-trade-send{ justify-self:start; }

.fr-league-row{
  display:grid;
  grid-template-columns:32px minmax(148px, 1fr) 42px 54px 54px 58px;
  gap:10px;
  align-items:center;
  min-width:468px;
  padding:12px 14px;
  border:1px solid #243041;
  border-radius:12px;
  background:linear-gradient(180deg,#10161f,#0b1017);
  color:#d2dbe7;
  text-align:left;
}

.fr-league-row.me{
  border-color:#6b5a1f;
  box-shadow:0 0 0 1px rgba(255,210,63,.08);
}

.fr-league-head{
  border-style:dashed;
  background:#0b1017;
  color:#8fa0b6;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fr-col-rank,
.fr-col-ovr,
.fr-col-pts,
.fr-col-titles,
.fr-col-last{
  font-family:'Teko',sans-serif;
  font-size:23px;
  line-height:1;
  min-width:0;
  justify-self:end;
  text-align:right;
}

.fr-col-team{
  min-width:0;
  font-weight:700;
  color:#fff;
  line-height:1.18;
  overflow-wrap:break-word;
}
.fr-col-team .rr-cap{
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
  margin-left:6px;
}
.fr-team-cap{
  display:block;
  margin-top:2px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.01em;
  line-height:1.25;
  color:#7fb89a;
}
.fr-team-cap.over{ color:#ff8a8a; }

.fr-col-last{
  color:#ffd46b;
}

.fr-share-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}

.fr-panel-copy{
  padding:14px 16px;
  border:1px solid #243041;
  border-radius:12px;
  background:linear-gradient(180deg,#10161f,#0b1017);
  color:#d2dbe7;
  line-height:1.65;
  text-align:left;
}

.fr-tool-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:8px;
}

.fr-tool-row code{
  padding:4px 8px;
  border:1px solid #314058;
  border-radius:999px;
  background:#0a0f16;
  color:#ffcf4d;
  font-size:13px;
}

.fr-tool-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}

.fr-offer-card{
  margin-top:10px;
  padding:16px;
  border:1px solid #2d3950;
  border-radius:14px;
  background:
    radial-gradient(circle at top right, rgba(54,209,255,.10), transparent 34%),
    linear-gradient(180deg,#111722,#0b1018);
  text-align:left;
}

.fr-offer-card:first-of-type{
  border-color:#6b5a1f;
  box-shadow:0 0 0 1px rgba(255,210,63,.10), 0 12px 28px rgba(0,0,0,.18);
}

.fr-offer-head{
  font-family:'Teko',sans-serif;
  font-size:28px;
  line-height:1;
  letter-spacing:1px;
  color:#fff;
}

.fr-offer-meta{
  margin-top:6px;
  color:#9eacbf;
  font-size:13px;
}

.fr-offer-tags{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}

.fr-offer-actions{
  margin-top:14px;
  display:flex;
  flex-wrap:wrap;
}

.fr-offer-btn{
  min-width:220px;
}

.fr-offer-empty{
  text-align:left;
}

.fr-actions{
  position:relative;
  z-index:1;
  margin-top:18px;
  align-items:stretch;
}

.fr-actions .btn{
  flex:1 1 180px;
}

.fr-actions .fr-cta{
  flex-basis:240px;
}

.fr-resume .res-stats,
.fr-dashboard .res-stats{
  position:relative;
  z-index:1;
}

.fr-resume .stat,
.fr-dashboard .stat{
  background:linear-gradient(180deg,#10161f,#0b1017);
  border-color:#263246;
}

.fr-history-list{
  gap:10px;
}

