:root{
  --df-bg:       #dbd3be;   /* page background */
  --df-surface:     #225522;   /* card gradient start */
  --df-surface-alt:   #122c12;   /* card gradient end */
  --df-border-subtle: #31384b;   /* subtle border */
  --df-text-dark:      rgb(24, 24, 27);   /* primary text */
  --df-text-light:      #dbd3be;   /* primary text */
  --df-text-muted:    #6d6f80;   /* secondary text */
  --df-accent:   #225536;   /* azure */
  --df-accent-soft: #e2f1e7;   /* deep navy */
  --df-accent-contrast:     #0f2a1a;   /* lines/borders */
  --df-GoblinGold:     #cdec1e;   /* lines/borders */
  --df-GoblinGold--alt:     #839713;   /* lines/borders */

  --color-good: #39c46b;
  --color-bad: #e05252;
  --color-neutral-chip: #38405a;

  --df-radius: 16px;
  --df-shadow: 0 6px 20px rgba(0,0,0,.3);
  --df-col-w: clamp(260px, 85vw, 340px); /* per-round width on mobile */
  --df-gap: 16px;
  --app-shell-max-width: 1440px;
  --app-shell-gutter: clamp(14px, 2vw, 26px);
}

a {
  text-decoration: none;
}
.text-cream {
  color: var(--df-bg) !important;
  text-decoration: none;
}
.text-green {
  color: var(--df-surface) !important;
  text-decoration: none;
}
.text-bold {
  font-size: 1.2rem;
  font-weight: bolder;
}
.headder {
  font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif
}

/* Or a specific class */
.no-underline {
  text-decoration: none;
}
.text-main {
  color: var(--df-GoblinGold);
  
}
/* Utility classes */
.img-90{ max-width:90px !important; }
.img-40{ width:40px; height:40px; object-fit:cover; }
.avatar-64{ width:65px; height:65px; border-radius:20%; object-fit:cover;}
.wth_300 { width:300px; height:auto; margin-bottom:10px;}
.link-azure{ color:var(--azure); text-decoration:none; } /* for hyperlinks */
.hide{ display:none !important; visibility:hidden !important; }
.wth_auto { width:auto; height:auto; margin-bottom:0px;}

/* main header */
.header-bg {
  background: linear-gradient(180deg, var(--df-accent), var(--df-accent-contrast));
  box-shadow: 0 8px 24px rgba(15,42,26,.16);
  border-bottom: 1px solid rgba(219,211,190,.12);
}

.header-bg .navbar-brand{
  font-weight: 700;
  letter-spacing: .02em;
}

.header-bg .nav-link{
  color: rgba(219,211,190,.84) !important;
}

.header-bg .nav-link:hover,
.header-bg .nav-link:focus{
  color: var(--df-text-light) !important;
}

/* league header */
.league_header-bg {
  background: linear-gradient(180deg, var(--df-accent-contrast), var(--df-accent));
  border-radius:  var(--df-radius);
}
.btn-df-legacy {
  background-color: var(--df-accent);
  color: var(--df-text-dark);
  border: 1px solid rgba(255,255,255,0.25);
  font-size: 0.875rem;       /* ~“smaller” */
  line-height: 1.2;
  padding: 0.4rem 0.75rem;   /* compact like your inline */
  border-radius: 10px;       /* subtle rounded corners */
  box-shadow: 0 1px 2px rgba(0,0,0,0.25);
  text-decoration: none;
}
.btn-df-legacy:hover,
.btn-df-legacy:focus {
  background-color:  var(--df-surface); /* a touch lighter/darker for feedback */
  color: var(--df-text-light);
  border-color: rgba(255,255,255,0.35);
  text-decoration: none;
}
.btn-df-legacy:active {
  transform: translateY(1px);
  box-shadow: 0 0 0 rgba(0,0,0,0.25);
}

/* team header */
.team_header-bg {
  background: linear-gradient(180deg, var(--df-accent-contrast), var(--df-accent));
  border-radius:  var(--df-radius);
}


.main_bg {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: linear-gradient(180deg, var(--df-bg), var(--df-bg));
  color: var(--df-text-dark);
}

.green_bg {
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, var(--df-bg), var(--df-bg));
  color: var(--df-surface-alt);
}

/* Same fill as .main_bg, without its body-level min-height/flex rules --
   for content boxes (e.g. the subscription summary panel) that only want
   the background/text color, not full-viewport stretching. */
.bg-panel {
  background: linear-gradient(180deg, var(--df-bg), var(--df-bg));
  color: var(--df-text-dark);
}

.alt_bg {
  background: linear-gradient(180deg, var(--df-accent-contrast), var(--df-accent));
  color: var(--df-text-light);
}

.right {

  justify-content: flex-end;
}

/* ===========================
   Auth / first-visit pages
   =========================== */
.account-page-wrap{
  position: relative;
  padding-block: clamp(24px, 5vw, 64px);
  overflow-x: clip;
}

.account-page-wrap::before{
  content:'';
  position:absolute;
  inset: 18px 8% auto;
  height: 240px;
  background:
    radial-gradient(circle at top left, rgba(205,236,30,.16), transparent 44%),
    radial-gradient(circle at top right, rgba(34,85,34,.20), transparent 38%);
  filter: blur(18px);
  pointer-events:none;
  z-index:0;
}

.auth-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 28px;
  align-items: stretch;
}

.auth-grid > *{
  min-width: 0;
}

.auth-grid--create{
  grid-template-columns: minmax(0, 1fr) minmax(300px, .8fr);
}

.auth-panel{
  position:relative;
  overflow:hidden;
  min-height:100%;
  border-radius: 28px;
  border: 1px solid rgba(219,211,190,.18);
  box-shadow: 0 20px 44px rgba(15,42,26,.18);
}

.auth-panel::after{
  content:'';
  position:absolute;
  inset:0;
  background: linear-gradient(140deg, rgba(255,255,255,.06), transparent 34%, transparent 66%, rgba(205,236,30,.08));
  pointer-events:none;
}

.auth-panel__body{
  position:relative;
  z-index:1;
  min-width: 0;
  padding: clamp(24px, 4vw, 44px);
}

.auth-panel--hero{
  background:
    linear-gradient(145deg, rgba(18,44,18,.96), rgba(34,85,54,.94)),
    linear-gradient(180deg, var(--df-accent-contrast), var(--df-accent));
  color: var(--df-text-light);
}

.auth-panel--form{
  background:
    linear-gradient(180deg, rgba(34,85,54,.96), rgba(18,44,18,.98));
  color: var(--df-text-light);
}

.auth-logo{
  width: clamp(88px, 10vw, 120px);
  max-width: 100%;
  height: auto;
  display:block;
}

.auth-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(219,211,190,.10);
  border: 1px solid rgba(219,211,190,.18);
  color: var(--df-text-light);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.auth-title{
  margin: 18px 0 10px;
  color: var(--df-text-light);
  font-size: clamp(2rem, 3vw, 3.2rem);
  line-height: 1;
  font-weight: 700;
}

.auth-lead{
  max-width: 34rem;
  color: rgba(219,211,190,.82);
  font-size: clamp(1rem, 1.25vw, 1.1rem);
  line-height: 1.6;
}

.auth-feature-list,
.auth-step-list{
  display:grid;
  gap:14px;
  margin-top: 24px;
}

.auth-feature,
.auth-step{
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.12);
}

.auth-feature__title,
.auth-step__title{
  color: var(--df-text-light);
  font-weight: 700;
  margin-bottom: 4px;
}

.auth-feature__text,
.auth-step__text{
  color: rgba(219,211,190,.76);
  font-size: .95rem;
  line-height: 1.5;
}

.auth-note{
  margin-top: 22px;
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(205,236,30,.10);
  border: 1px solid rgba(205,236,30,.22);
  color: rgba(219,211,190,.86);
}

.auth-form-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom: 22px;
}

.auth-form-title{
  color: var(--df-text-light);
  font-size: clamp(1.7rem, 2vw, 2.2rem);
  font-weight: 700;
  margin: 10px 0 8px;
}

.auth-form-copy{
  color: rgba(219,211,190,.76);
  max-width: 28rem;
  line-height: 1.55;
}

.auth-form-shell{
  margin-top: 18px;
  min-width: 0;
  padding: 22px;
  border-radius: 22px;
  background: rgba(18,44,18,.34);
  border: 1px solid rgba(219,211,190,.14);
  backdrop-filter: blur(8px);
}

.account-page-wrap .form-label{
  color: var(--df-text-light);
  font-weight: 600;
  margin-bottom: .45rem;
}

.account-page-wrap .form-control{
  background: rgba(219,211,190,.94);
  border: 1px solid rgba(18,44,18,.16);
  border-radius: 14px;
  min-height: 48px;
  box-shadow: none;
}

.account-page-wrap .form-control:focus{
  border-color: rgba(205,236,30,.55);
  box-shadow: 0 0 0 .25rem rgba(205,236,30,.16);
}

.account-page-wrap .form-text{
  margin-top: 8px;
  color: rgba(219,211,190,.70) !important;
}

.auth-submit{
  min-height: 52px;
  border-radius: 14px;
  font-size: .98rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.auth-footer-link{
  color: rgba(219,211,190,.72);
  text-align:center;
}

.auth-footer-link a{
  color: var(--df-GoblinGold);
  font-weight: 600;
}

@media (max-width: 991px){
  .auth-grid,
  .auth-grid--create{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .auth-panel{
    border-radius: 22px;
  }

  .auth-form-shell{
    padding: 18px;
  }
}

@media (max-width: 575px){
  .account-page-wrap{
    padding-block: 16px;
  }

  .auth-panel{
    border-radius: 18px;
  }

  .auth-panel__body{
    padding: 18px;
  }

  .auth-form-shell{
    margin-top: 14px;
    padding: 16px;
    border-radius: 16px;
  }

  .auth-title{
    font-size: clamp(1.8rem, 9vw, 2.35rem);
  }

  .auth-form-title{
    font-size: clamp(1.5rem, 7vw, 1.9rem);
  }

  .auth-logo{
    width: 84px;
  }
}

.main-content{
  width:100%;
  padding: clamp(12px, 1.5vw, 20px) 0 20px;
}

.container,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl,
.container-fluid{
  padding-left: max(var(--bs-gutter-x, .75rem), var(--app-shell-gutter));
  padding-right: max(var(--bs-gutter-x, .75rem), var(--app-shell-gutter));
}

@media (min-width: 1200px){
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl{
    max-width: var(--app-shell-max-width);
  }
}

.content_fit {
  width: fit-content;
  height: 100%;
  margin: auto;
  padding: 10px;
  margin: 5px;
  border-radius: var(--df-radius);
  background: linear-gradient(180deg, var(--df-accent-contrast), var(--df-accent));
  box-shadow: var(--df-shadow);
}

/* ===========================
   Dashboard
   =========================== */
.dashboard-banner{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:14px 18px;
  border-radius: 18px;
  box-shadow: var(--df-shadow);
  min-width:0;
}

/* Full-width accounts row inside the banner box */
.dashboard-banner__accounts{
  flex-basis:100%;
  border-top:1px solid rgba(219,211,190,.10);
  padding-top:12px;
}

.dashboard-banner__identity{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.dashboard-banner__identity > div{
    min-width:0;
  }

.dashboard-banner__meta{
    display:flex;
    gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
  min-width:0;
}

.dashboard-banner__actions{
  display:flex;
  align-items:center;
  flex-shrink:0;
}

.dashboard-banner__meta-card{
  flex:1 1 108px;
  min-width:108px;
  padding:10px 12px;
  border-radius: 12px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.12);
  text-align:right;
}
.dashboard-banner__meta-card2{
  min-width:108px;
  padding:10px 12px;
  border-radius: 12px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.12);
}

.dashboard-banner__meta-card .fw-semibold{
  color: var(--df-text-light);
}

.dashboard-plan-note{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:12px 16px;
  border-radius: 16px;
  box-shadow: var(--df-shadow);
  min-width:0;
}

.dashboard-plan-note__title{
  color: var(--df-text-light);
  font-weight: 700;
  margin-bottom: 2px;
}

.dashboard-plan-note__text{
  color: rgba(219,211,190,.74);
  font-size: .92rem;
  line-height: 1.4;
}

.dashboard-shell{
  display:grid;
  gap:14px;
  min-width:0;
}

.dashboard-hero{
  display:grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .8fr);
  gap:14px;
  padding:20px;
  border-radius: 22px;
  box-shadow: var(--df-shadow);
  min-width:0;
}

.dashboard-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border-radius: 999px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.14);
  color: var(--df-text-light);
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dashboard-title{
  margin: 12px 0 8px;
  font-size: clamp(1.65rem, 2.5vw, 2.35rem);
  line-height: 1.05;
  color: var(--df-text-light);
}

.dashboard-lead{
  max-width: 42rem;
  color: rgba(219,211,190,.82);
  line-height: 1.45;
  margin-bottom: 0;
  font-size: .98rem;
}

.dashboard-cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top: 16px;
  min-width:0;
}

.dashboard-inline-note{
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(205,236,30,.12);
  border: 1px solid rgba(205,236,30,.22);
  color: rgba(219,211,190,.88);
  font-size: .92rem;
  line-height: 1.4;
}

.dashboard-hero__side{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
  min-width:0;
}

.dashboard-stat-card{
  padding:13px 14px;
  border-radius: 14px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.12);
}

.dashboard-stat-label{
  font-size: .72rem;
  color: rgba(219,211,190,.64);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.dashboard-stat-value{
  color: var(--df-text-light);
  font-size: 1.15rem;
  font-weight: 700;
}

.dashboard-command-grid{
  display:grid;
  grid-template-columns: 1fr 1fr 0.9fr;
  gap:14px;
  min-width:0;
}

.dashboard-panel{
  padding:16px;
  border-radius: 18px;
  box-shadow: var(--df-shadow);
  min-width:0;
}

.dashboard-panel__head{
  margin-bottom: 10px;
}

.dashboard-panel__title{
  color: var(--df-text-light);
  margin:0;
}

.dashboard-checklist,
.dashboard-action-list{
  display:grid;
  gap:10px;
}

.dashboard-checklist__item{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px;
  border-radius: 14px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.12);
}

.dashboard-checklist__step{
  width:30px;
  height:30px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background: var(--df-GoblinGold);
  color: var(--df-text-dark);
  font-weight:700;
  flex: 0 0 30px;
}

.dashboard-checklist__title,
.dashboard-action-card__title{
  color: var(--df-text-light);
  font-weight:700;
  margin-bottom: 2px;
}

.dashboard-checklist__text,
.dashboard-action-card__text{
  color: rgba(219,211,190,.74);
  font-size: .89rem;
  line-height: 1.4;
}

.dashboard-action-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius: 14px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.12);
  color: inherit;
}

.dashboard-action-card:hover{
  color: inherit;
  transform: translateY(-1px);
}

.dashboard-action-card__button{
  white-space:nowrap;
  color: var(--df-GoblinGold);
  font-weight:700;
}

.dashboard-subscription{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.dashboard-subscription__badge{
  display:inline-flex;
  align-self:flex-start;
  padding:8px 12px;
  border-radius: 999px;
  font-weight:700;
  font-size: .82rem;
}

.dashboard-subscription__badge.is-free{
  background: rgba(219,211,190,.12);
  color: var(--df-text-light);
}

.dashboard-subscription__badge.is-paid{
  background: rgba(205,236,30,.18);
  color: var(--df-GoblinGold);
}

.dashboard-subscription__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.dashboard-leagues__header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:16px 18px;
  border-radius: 18px;
  box-shadow: var(--df-shadow);
  min-width:0;
}

#dashboard-leagues{
  scroll-margin-top: 88px;
}

.dashboard-leagues__year-switch{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.dashboard-leagues__year-switch .btn{
  min-width:0;
}

.dashboard-league-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap:14px;
  margin-top: 14px;
  min-width:0;
}

.dashboard-league-card{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:16px;
  border-radius: 18px;
  box-shadow: var(--df-shadow);
  min-width:0;
  overflow:hidden;
}

.dashboard-league-card__main{
  display:flex;
  flex-direction: column;
  gap:14px;
  align-items:center;
  text-align:center;
  color: inherit;
  min-width:0;
}

.dashboard-league-card__main:hover{
  color: inherit;
}

.dashboard-league-card__avatar{
  width:72px;
  height:72px;
  border-radius: 18px;
  object-fit: cover;
  flex: 0 0 72px;
  background: rgba(219,211,190,.08);
}

.dashboard-league-card__body{
  min-width:0;
  width:100%;
  display:grid;
  justify-items:center;
}

.dashboard-league-card__topline,
.dashboard-league-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  justify-content:center;
}

.dashboard-league-card__status,
.dashboard-league-card__format,
.dashboard-league-card__mode{
  display:inline-flex;
  padding:6px 10px;
  border-radius: 999px;
  font-size: .75rem;
  background: rgba(219,211,190,.09);
  border: 1px solid rgba(219,211,190,.12);
  color: rgba(219,211,190,.82);
}

.dashboard-league-card__mode{
  font-weight: 700;
}

.dashboard-league-card__mode.is-dynasty{
  background: rgba(205,236,30,.16);
  border-color: rgba(205,236,30,.28);
  color: var(--df-GoblinGold);
}

.dashboard-league-card__mode.is-redraft{
  background: rgba(219,211,190,.12);
  border-color: rgba(219,211,190,.18);
  color: var(--df-text-light);
}

.dashboard-league-card__title{
  margin:10px 0 8px;
  color: var(--df-text-light);
  font-size: 1.15rem;
}

.dashboard-league-card__meta{
  color: rgba(219,211,190,.72);
  font-size: .9rem;
}

.dashboard-league-card__meta span{
    display:inline-flex;
    align-items:center;
    padding:4px 8px;
    border-radius: 999px;
    background: rgba(219,211,190,.05);
    border: 1px solid rgba(219,211,190,.09);
  }

.dashboard-league-card__tags{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
    margin-top:10px;
  }

.dashboard-league-card__tag{
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    border-radius:999px;
    background: rgba(205,236,30,.14);
    border: 1px solid rgba(205,236,30,.24);
    color: var(--df-GoblinGold);
    font-size:.74rem;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
  }

.dashboard-league-card__open{
  margin-top: 10px;
  color: var(--df-GoblinGold);
  font-size: .84rem;
  font-weight:700;
  letter-spacing:.02em;
}

.dashboard-league-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding-top:12px;
  border-top:1px solid rgba(219,211,190,.09);
  min-width:0;
  justify-content:center;
}

.dashboard-league-card__actions .btn{
  min-width:0;
}

/* ── Provider badge — shared pill base ───────────────────────────────────── */
/* Used on dashboard card topline AND tool headers (BA / Draft Room).          */
/* .dashboard-league-card__provider inherits its pill shell from this base.    */

.dashboard-league-card__provider,
.provider-badge{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  border:1px solid transparent;
  white-space:nowrap;
}

.provider-badge2{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  font-size:.5rem;
  font-weight:650;
  letter-spacing:.04em;
  text-transform:uppercase;
  border:1px solid transparent;
  white-space:nowrap;
}

/* Sleeper — dark blue/blue-green */
.dashboard-league-card__provider.is-sleeper,
.provider-badge--sleeper{
  background:rgba(28,85,145,.22);
  border-color:rgba(80,150,220,.45);
  color:#9dccff;
}

/* ESPN — red */
.dashboard-league-card__provider.is-espn,
.provider-badge--espn{
  background:rgba(160,30,30,.22);
  border-color:rgba(235,80,80,.45);
  color:#ff9b9b;
}

/* Yahoo: text-only pending official Yahoo Fantasy logo/branding assets (Y7+).
   Do NOT replace .is-yahoo color with a custom Yahoo logo or unofficial mark. */
.dashboard-league-card__provider.is-yahoo,
.provider-badge--yahoo{
  background:rgba(120,40,210,.18);
  border-color:rgba(170,90,255,.38);
  color:#c4a0ff;
}

/* ── Draft workspace / league tool header strip ──────────────────────────── */
/* Shared by Draft Room (draft-workspace-header) and Best Available.          */
.draft-workspace-header{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.draft-workspace-header h4{
  margin:0;
  font-size:1.05rem;
}

/* ── Dashboard filter bar — centered wrapping tabs ───────────────────────── */
.dashboard-sport-filter{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
}

/* ── Connected account mini-cards ─────────────────────────────────────────── */
.connected-account-cards{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  gap:10px;
}
.connected-account-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px 14px;
  border-radius:14px;
  background:rgba(219,211,190,.06);
  border:1px solid rgba(219,211,190,.10);
}
.connected-account-card__status{
  display:inline-flex;
  align-items:center;
  padding:3px 8px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:700;
}
.connected-account-card__status.is-connected{
  background:rgba(28,85,145,.20);
  border:1px solid rgba(80,150,220,.40);
  color:#9dccff;
}
.connected-account-card__status.is-coming-soon{
  background:rgba(219,211,190,.08);
  border:1px solid rgba(219,211,190,.14);
  color:rgba(219,211,190,.55);
}
.connected-account-card__status.is-not-linked{
  background:rgba(219,211,190,.06);
  border:1px solid rgba(219,211,190,.12);
  color:rgba(219,211,190,.48);
}
.connected-account-card__detail{
  font-size:.82rem;
  color:rgba(219,211,190,.62);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

@media (max-width: 991px){
  .dashboard-hero,
  .dashboard-command-grid{
    grid-template-columns: 1fr;
  }

  .dashboard-banner{
    flex-direction:column;
    align-items:flex-start;
  }

  .dashboard-banner__meta{
    width:100%;
    justify-content:flex-start;
  }

  .dashboard-plan-note{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width: 575px){
  .workspace-compact-header{
    gap:.6rem;
    margin-bottom:.75rem;
  }

  .workspace-compact-copy{
    font-size:.86rem;
    line-height:1.35;
  }

  .workspace-compact-actions{
    width:100%;
    gap:.4rem;
  }

  .workspace-compact-actions .btn{
    flex:1 1 auto;
  }

  .workspace-compact-pills{
    gap:.35rem;
  }

  .workspace-compact-pill{
    min-height:28px;
    padding:.24rem .56rem;
    font-size:.72rem;
  }

  .workspace-compact-details{
    padding:.75rem .85rem;
  }

  .dashboard-banner,
  .dashboard-plan-note,
  .dashboard-hero,
  .dashboard-panel,
  .dashboard-leagues__header,
  .dashboard-league-card{
    padding:14px;
    border-radius: 18px;
  }

  .dashboard-shell{
    gap:12px;
  }

  .dashboard-banner__meta{
    width:100%;
    display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:8px;
  }

  .dashboard-banner__meta-card{
    flex:1 1 auto;
    min-width:0;
    text-align:left;
    padding:8px 10px;
  }

  .dashboard-banner__identity{
    align-items:flex-start;
    gap:10px;
  }

  .dashboard-banner__identity .avatar-64{
    width:52px;
    height:52px;
  }

  .dashboard-banner__identity .btn{
    width:100%;
  }

  .dashboard-plan-note .btn{
    width:100%;
  }

  .dashboard-cta-row{
    flex-direction:column;
  }

  .dashboard-cta-row .btn{
    width:100%;
  }

  .dashboard-hero__side{
    grid-template-columns: 1fr 1fr;
  }

  .dashboard-leagues__header{
    flex-direction:column;
    align-items:flex-start;
  }

  .dashboard-leagues__year-switch{
    width:100%;
    justify-content:flex-start;
  }

  .dashboard-leagues__year-switch .btn{
    flex:0 0 auto;
  }

  .dashboard-action-card,
  .dashboard-league-card__main{
    flex-direction:column;
    align-items:center;
  }

  .dashboard-league-card__avatar{
    width:60px;
    height:60px;
    flex-basis:60px;
  }

  .dashboard-league-card__topline,
  .dashboard-league-card__meta{
    gap:6px 8px;
  }

  .dashboard-league-card__status,
  .dashboard-league-card__format,
  .dashboard-league-card__mode,
  .dashboard-league-card__meta span,
  .dashboard-league-card__tag{
    font-size:.7rem;
    padding:5px 8px;
  }

  .dashboard-action-card__button{
    white-space:normal;
  }

  .dashboard-league-card__actions{
    width:100%;
  }

  .dashboard-league-card__actions .btn{
    flex:1 1 calc(50% - 10px);
  }
}

/* ===========================
   League Hub
   =========================== */
.league-hub-card{
  display:grid;
  gap:12px;
  padding:16px 18px;
  border-radius: 22px;
  box-shadow: var(--df-shadow);
  min-width:0;
}

.league-hub-card__identity{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.league-hub-card__avatar{
  width:72px;
  height:72px;
  border-radius: 18px;
  object-fit: cover;
  flex: 0 0 72px;
  background: rgba(219,211,190,.08);
}

.league-hub-card__copy{
  min-width:0;
}

.league-hub-card__copy,
.league-hub-card__tags{
  min-width:0;
}

.league-hub-card__eyebrow{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
  color: rgba(219,211,190,.68);
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.league-hub-card__eyebrow a{
  color: var(--df-GoblinGold);
  text-decoration:none;
}

.league-hub-card__eyebrow a:hover,
.league-hub-card__eyebrow a:focus{
  color: var(--df-GoblinGold--alt);
}

.league-hub-card__title{
  margin:0 0 6px;
  color: var(--df-text-light);
  font-size: clamp(1.45rem, 2.3vw, 2.2rem);
  line-height: 1.04;
}

.league-hub-card__tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.league-hub-card__meta-line{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  color: rgba(219,211,190,.78);
  font-size: .94rem;
}

.league-hub-card__meta-link{
  color: var(--df-GoblinGold);
  text-decoration:none;
}

.league-hub-card__meta-link:hover,
.league-hub-card__meta-link:focus{
  color: var(--df-GoblinGold--alt);
}

.league-hub-card__tag{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius: 999px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.14);
  color: rgba(219,211,190,.84);
  font-size: .78rem;
}

.league-hub-card__tag.is-accent{
  background: rgba(205,236,30,.16);
  border-color: rgba(205,236,30,.28);
  color: var(--df-GoblinGold);
  font-weight: 700;
}

.league-tool-strip{
  padding:10px 14px;
  border-radius: 18px;
  box-shadow: var(--df-shadow);
  min-width:0;
}

.league-tool-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:center;
}

.league-tool-action-btn{
  min-width:0;
  white-space:nowrap;
}

.league-tool-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  gap:12px;
  min-width:0;
}

.league-tool-grid.is-compact{
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 145px), 1fr));
}

/* ===========================
   Team Hub
   =========================== */
.team-page-shell{
  padding-bottom: 24px;
}

.team-page-main{
  min-width: 0;
}

.team-hub-card{
  display:grid;
  gap:12px;
  padding:16px 18px;
  border-radius: 22px;
  box-shadow: var(--df-shadow);
  min-width:0;
}

.team-hub-card__main{
  display:grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap:14px;
  align-items:center;
}

.team-hub-card__identity{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.team-hub-card__avatar{
  width:72px;
  height:72px;
  border-radius: 18px;
  object-fit: cover;
  flex: 0 0 72px;
  background: rgba(219,211,190,.08);
}

.team-hub-card__copy,
.team-hub-card__tags,
.team-hub-card__stats{
  min-width:0;
}

.team-hub-card__eyebrow{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
  color: rgba(219,211,190,.68);
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.team-hub-card__eyebrow a{
  color: var(--df-GoblinGold);
  text-decoration:none;
}

.team-hub-card__eyebrow a:hover,
.team-hub-card__eyebrow a:focus{
  color: var(--df-GoblinGold--alt);
}

.team-hub-card__title{
  margin:0 0 6px;
  color: var(--df-text-light);
  font-size: clamp(1.4rem, 2vw, 2rem);
  line-height: 1.04;
}

.team-hub-card__meta-line{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  color: rgba(219,211,190,.78);
  font-size: .94rem;
}

.team-hub-card__tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.team-hub-card__tag{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius: 999px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.14);
  color: rgba(219,211,190,.84);
  font-size: .78rem;
}

.team-hub-card__tag.is-accent{
  background: rgba(205,236,30,.16);
  border-color: rgba(205,236,30,.28);
  color: var(--df-GoblinGold);
  font-weight: 700;
}

.team-hub-card__stats{
  display:grid;
  grid-template-columns: repeat(3, minmax(110px, 1fr));
  gap:10px;
}

.team-hub-card__stat{
  display:grid;
  gap:4px;
  padding:10px 12px;
  border-radius: 16px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.14);
  color: var(--df-text-light);
  min-width:0;
}

.team-hub-card__stat strong{
  font-size: 1rem;
}

.team-hub-card__stat-label{
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(219,211,190,.68);
}

.team-tool-strip{
  padding:10px 14px;
  border-radius: 18px;
  box-shadow: var(--df-shadow);
  min-width:0;
}

.team-tool-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:center;
}

.team-tool-action-btn{
  min-width:0;
  white-space:nowrap;
}

.league-tool-card{
  display:grid;
  gap:6px;
  padding:14px;
  border-radius: 16px;
  text-decoration:none;
  color: inherit;
  background: rgba(219,211,190,.06);
  border: 1px solid rgba(219,211,190,.11);
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
  min-width:0;
}

.league-tool-card:hover,
.league-tool-card:focus{
  color: inherit;
  transform: translateY(-1px);
  border-color: rgba(205,236,30,.22);
  background: rgba(219,211,190,.09);
}

.league-tool-card.is-active{
  background: rgba(205,236,30,.12);
  border-color: rgba(205,236,30,.26);
}

.league-tool-card.is-compact{
  padding:9px 12px;
  text-align:center;
}

.league-tool-card__label{
  color: var(--df-text-light);
  font-weight: 700;
  font-size: .92rem;
}

.draft-center-card{
  border: 1px solid rgba(219,211,190,.12);
  background: linear-gradient(180deg, rgba(34,85,54,.95), rgba(18,44,18,.98));
  border-radius: 16px;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

.draft-decision-workspace-shell{
  position: relative;
  z-index: 1;
}

.draft-decision-workspace{
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.draft-decision-workspace .row{
  margin-top: 0;
  margin-bottom: 0;
}

.draft-decision-workspace__intro{
  border: 1px solid rgba(219,211,190,.12);
  background:
    radial-gradient(circle at top right, rgba(205,236,30,.14), transparent 28%),
    linear-gradient(180deg, rgba(28,73,46,.98), rgba(12,31,16,.98));
  box-shadow: 0 16px 40px rgba(0,0,0,.26);
}

.draft-decision-workspace__eyebrow{
  color: rgba(219,211,190,.7);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.draft-decision-workspace__title{
  color: var(--df-text-light);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  line-height: 1.02;
  margin: .45rem 0 0;
}

.draft-decision-workspace__copy{
  color: rgba(219,211,190,.82);
  max-width: 52rem;
  line-height: 1.55;
  margin: .85rem 0 0;
}

.draft-decision-workspace__pill-row{
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1rem;
}

.draft-decision-workspace__pill{
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  padding: .5rem .85rem;
  border: 1px solid rgba(219,211,190,.14);
  border-radius: 999px;
  background: rgba(7,16,8,.34);
  color: var(--df-text-light);
  font-size: .86rem;
  font-weight: 700;
}

.draft-board-shell > .container,
.draft-insight-shell #draft-room{
  padding-left: 0;
  padding-right: 0;
}

.more_round {
  border-radius: 8px;
}

.draft-board-shell .rounded.alt_bg,
.draft-board-shell .card.alt_bg,
.draft-insight-shell .card.alt_bg{
  border: 1px solid rgba(219,211,190,.12);
  box-shadow: var(--df-shadow);
}

.draft-board-shell .badge.border{
  border-color: rgba(219,211,190,.18) !important;
  border-radius: 999px;
  padding: .45rem .75rem;
}

.draft-board-shell [data-draft-pos-tabs]{
  gap: 10px;
}

.draft-board-shell [data-draft-pos-tabs] .btn,
.draft-board-shell .card-body .btn{
  min-width: 0;
}

.draft-market-context-line{
  margin-top: 2px;
  color: rgba(219,211,190,.72);
}

.draft-market-context-delta{
  font-weight: 600;
}

.market-context-delta--higher{
  color: rgba(120, 214, 154, .95);
}

.market-context-delta--lower{
  color: rgba(234, 164, 164, .95);
}

.market-context-delta--neutral{
  color: rgba(219,211,190,.78);
}

.draft-decision-hero{
  border: 1px solid rgba(219,211,190,.12);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(18,44,18,.9), rgba(11,24,11,.96));
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

.draft-decision-hero__eyebrow,
.draft-decision-card__eyebrow{
  color: rgba(219,211,190,.68);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.draft-decision-hero__grid{
  display:grid;
  grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
  gap: 1rem;
  align-items:center;
}

.draft-decision-hero__pick{
  color: var(--df-text-light);
  font-size: clamp(1.55rem, 2.8vw, 2.5rem);
  font-weight: 800;
  line-height: 1.02;
}

.draft-decision-hero__meta,
.draft-decision-hero__subcopy{
  color: rgba(219,211,190,.8);
  font-size: .95rem;
  margin-top: .45rem;
}

.draft-decision-hero__status{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  margin-top: .8rem;
  padding: .45rem .8rem;
  border-radius: 999px;
  border: 1px solid rgba(205,236,30,.24);
  background: rgba(205,236,30,.12);
  color: var(--df-text-light);
  font-size: .86rem;
  font-weight: 700;
}

.draft-decision-hero__value-wrap{
  border: 1px solid rgba(219,211,190,.12);
  border-radius: 12px;
  background: rgba(8,19,10,.34);
  padding: .85rem .95rem;
}

.draft-decision-hero__value-label{
  color: rgba(219,211,190,.68);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.draft-decision-hero__value{
  color: var(--df-GoblinGold);
  font-size: clamp(1.35rem, 2vw, 2rem);
  font-weight: 800;
  margin-top: .3rem;
}

.draft-decision-card{
  border: 1px solid rgba(219,211,190,.12);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(18,44,18,.88), rgba(11,24,11,.96));
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

.draft-decision-card > .card-body,
.draft-decision-hero > .card-body,
.draft-decision-recommendation > .card-body{
  padding: 1rem;
}

.draft-decision-card__title{
  color: var(--df-text-light);
  font-size: 1.2rem;
  font-weight: 800;
  margin-top: .35rem;
}

.draft-decision-card__copy{
  color: rgba(219,211,190,.78);
  font-size: .92rem;
  line-height: 1.45;
  margin-top: .3rem;
  margin-bottom: .75rem;
}

.draft-decision-recommendation{
  border: 1px solid rgba(141,240,176,.22);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(24,62,34,.92), rgba(11,24,11,.98));
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

.draft-decision-recommendation__grid{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.draft-decision-recommendation__body{
  min-width:0;
}

.draft-decision-recommendation__title{
  color: var(--df-text-light);
  font-size: clamp(1.32rem, 1.4vw, 1.55rem);
  font-weight: 800;
  line-height: 1.25;
}

.draft-decision-recommendation__confidence{
  display:inline-flex;
  align-items:center;
  margin-top:.45rem;
  padding:.22rem .6rem;
  border-radius:999px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(219,211,190,.12);
  color:rgba(219,211,190,.86);
  font-size:.73rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.draft-decision-recommendation__confidence--strong{
  background:rgba(141,240,176,.14);
  border-color:rgba(141,240,176,.24);
  color:rgba(196,255,214,.94);
}

.draft-decision-recommendation__confidence--moderate,
.draft-decision-recommendation__confidence--minimal{
  background:rgba(255,255,255,.04);
  border-color:rgba(219,211,190,.12);
  color:rgba(219,211,190,.86);
}

.draft-decision-recommendation__copy{
  color: rgba(235,229,214,.9);
  font-size: .94rem;
  line-height: 1.45;
  margin-top: .45rem;
}

.draft-decision-recommendation__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:.6rem;
  flex-shrink:0;
}

.draft-decision-note{
  color: rgba(219,211,190,.8);
  font-size: .92rem;
  line-height: 1.5;
}

.draft-decision-list{
  display:flex;
  flex-direction:column;
  gap:.6rem;
}

.draft-decision-list__row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.9rem;
  border: 1px solid rgba(219,211,190,.1);
  border-radius: 12px;
  background: rgba(9,20,11,.32);
  padding: .75rem .85rem;
}

.draft-decision-list__main{
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  min-width: 0;
}

.draft-decision-list__rank{
  flex-shrink:0;
  min-width: 2.6rem;
  padding: .3rem .55rem;
  border-radius: 999px;
  background: rgba(205,236,30,.12);
  color: var(--df-GoblinGold);
  font-size: .82rem;
  font-weight: 700;
  text-align:center;
}

.draft-decision-list__name{
  color: var(--df-text-light);
  font-size: 1rem;
  font-weight: 700;
}

.draft-decision-list__meta{
  color: rgba(219,211,190,.72);
  font-size: .84rem;
  margin-top: .2rem;
}

.draft-decision-list__side{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.35rem;
  flex-shrink:0;
}

.draft-decision-list__tags{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.2rem;
}

.draft-decision-list__tag{
  font-size: .74rem;
  letter-spacing: .04em;
}

.draft-decision-list__tag--impact{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height: 1.7rem;
  padding: .26rem .7rem;
  border-radius: 999px;
  background: rgba(141,240,176,.14);
  border: 1px solid rgba(141,240,176,.24);
  color: rgba(196,255,214,.94);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: none;
}

.draft-decision-list__tag--secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height: 1.55rem;
  padding: .18rem .58rem;
  border-radius: 999px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(219,211,190,.12);
  color: rgba(219,211,190,.86);
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
}

.draft-decision-list__value-pill{
  opacity:.84;
  transform:scale(.96);
  transform-origin:right center;
}

.draft-best-available .draft-decision-card__copy{
  margin-bottom:.2rem;
}

.draft-best-available__summary{
  color: rgba(219,211,190,.68);
  font-size: .82rem;
  line-height: 1.35;
  margin-bottom: .6rem;
}

.draft-best-available__summary span{
  color: var(--df-text-light);
  font-weight: 800;
}

.draft-best-available__controls{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:.6rem;
  margin-bottom:.7rem;
  padding:.65rem;
  border: 1px solid rgba(219,211,190,.1);
  border-radius: 10px;
  background: rgba(6,16,8,.34);
}

.draft-best-available__control-label{
  color: rgba(219,211,190,.7);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.draft-best-available__search{
  display:grid;
  gap:.3rem;
  flex: 1 1 240px;
  min-width: 0;
}

.draft-best-available__search-input{
  width: 100%;
  min-height: 2.45rem;
  border: 1px solid rgba(219,211,190,.2);
  border-radius: 8px;
  background: rgba(3,10,5,.72);
  color: var(--df-text-light);
  padding: .5rem .75rem;
  font-size: .88rem;
  outline: none;
}

.draft-best-available__search-input::placeholder{
  color: rgba(219,211,190,.46);
}

.draft-best-available__search-input:focus{
  border-color: rgba(205,236,30,.34);
  box-shadow: 0 0 0 3px rgba(205,236,30,.08);
}

.draft-best-available__filter{
  display:grid;
  gap:.3rem;
  flex: 0 1 auto;
  min-width: min(100%, 260px);
}

.draft-best-available__chips{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:.35rem;
}

@media (max-width: 600px) {
  .draft-best-available__controls {
    align-items: stretch;
  }

  .draft-best-available__filter,
  .draft-best-available__chips {
    flex: 1 1 100%;
    justify-content: flex-start;
  }
}

.draft-best-available__chip{
  border: 1px solid rgba(219,211,190,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.04);
  color: rgba(244,239,226,.82);
  min-height: 2rem;
  padding: .28rem .7rem;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
}

.draft-best-available__chip:hover,
.draft-best-available__chip:focus-visible{
  border-color: rgba(205,236,30,.3);
  color: var(--df-text-light);
}

.draft-best-available__chip.is-active{
  background: rgba(205,236,30,.14);
  border-color: rgba(205,236,30,.34);
  color: var(--df-GoblinGold);
}

.draft-best-available__empty{
  color: rgba(219,211,190,.74);
  border: 1px solid rgba(219,211,190,.1);
  border-radius: 10px;
  background: rgba(9,20,11,.32);
  padding: .75rem .85rem;
  font-size: .88rem;
}

.draft-best-available__header{
  display:grid;
  grid-template-columns: minmax(0, 1fr) 58px;
  gap:.35rem;
  align-items:center;
  padding: .35rem .65rem .32rem;
  color: rgba(219,211,190,.56);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.draft-best-available__header span:nth-child(n+2){
  text-align:center;
}

.draft-best-available .draft-decision-list{
  gap:.35rem;
}

.draft-best-available .draft-decision-list__row{
  align-items:center;
  gap:.65rem;
  border-radius: 10px;
  padding: .48rem .65rem;
  background: rgba(8,19,10,.48);
}

.draft-best-available .draft-decision-list__row:hover{
  border-color: rgba(205,236,30,.18);
  background: rgba(13,31,14,.72);
}

.draft-best-available .draft-decision-list__main{
  gap:.55rem;
  flex: 1 1 auto;
}

.draft-best-available .draft-decision-list__rank{
  min-width: 2.25rem;
  padding: .22rem .45rem;
  font-size: .76rem;
}

.draft-best-available .draft-decision-list__player{
  min-width:0;
}

.draft-best-available__avatar{
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: 1px solid rgba(219,211,190,.16);
  background: rgba(255,255,255,.05);
  object-fit: cover;
  flex-shrink: 0;
}

.draft-best-available .draft-decision-list__name{
  font-size: .92rem;
  line-height: 1.2;
}

.draft-best-available .draft-decision-list__meta{
  font-size: .78rem;
  margin-top: .12rem;
}

.draft-best-available .draft-decision-list__side{
  gap:.35rem;
}

.draft-best-available__metrics{
  display:grid;
  grid-template-columns: 58px;
  align-items:center;
}

.draft-best-available__metric{
  display:grid;
  gap:.16rem;
  justify-items:center;
}

.draft-best-available__metric-label{
  color: rgba(219,211,190,.56);
  font-size: .64rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
}

.draft-best-available .value-cell__pill{
  min-width: 50px;
  padding: .24rem .48rem;
  font-size: .9rem;
  font-weight: 700;
  cursor: default;
}

.draft-best-available .draft-decision-list__value-pill{
  opacity: 1;
  transform: none;
}

.draft-ba-pos-rank{
  color: rgba(205,236,30,.82);
  font-weight: 600;
}

.draft-trade-module__grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.draft-trade-module__card{
  border: 1px solid rgba(219,211,190,.1);
  border-radius: 12px;
  background: rgba(9,20,11,.32);
  padding: .85rem;
}

.draft-trade-module__title{
  color: var(--df-text-light);
  font-size: 1rem;
  font-weight: 800;
}

.draft-trade-module__copy{
  color: rgba(219,211,190,.78);
  font-size: .9rem;
  line-height: 1.5;
  margin-top: .5rem;
}

.draft-trade-module__actions{
  display:flex;
  justify-content:flex-start;
  margin-top: .9rem;
}

.draft-trade-module__primary-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin-bottom: .75rem;
}

.draft-trade-module__helper{
  color: rgba(219,211,190,.72);
  font-size: .84rem;
  line-height: 1.45;
  margin-bottom: .95rem;
}

.draft-owner-history__meta{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin-bottom: .75rem;
}

.draft-owner-history__meta-pill{
  display:inline-flex;
  align-items:center;
  min-height: 2rem;
  padding: .4rem .75rem;
  border: 1px solid rgba(219,211,190,.14);
  border-radius: 999px;
  background: rgba(8,19,10,.3);
  color: rgba(219,211,190,.82);
  font-size: .82rem;
}

.draft-owner-history__meta-pill strong{
  color: var(--df-text-light);
  margin-left: .35rem;
}

.draft-owner-history__summary{
  color: rgba(219,211,190,.78);
  font-size: .9rem;
  line-height: 1.45;
  margin-bottom: .75rem;
}

.draft-owner-history__results{
  display:flex;
  flex-direction:column;
  gap:.6rem;
}

.draft-owner-history__item{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.9rem;
  border: 1px solid rgba(219,211,190,.1);
  border-radius: 12px;
  background: rgba(9,20,11,.32);
  padding: .75rem .85rem;
}

.draft-owner-history__item--available{
  border-color: rgba(141,240,176,.22);
  background: rgba(24,62,34,.38);
}

.draft-owner-history__item--drafted{
  border-color: rgba(255,176,176,.2);
  background: rgba(62,24,24,.34);
}

.draft-owner-history__item-main{
  min-width:0;
}

.draft-owner-history__item-player-row{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
}

.draft-owner-history__item-player{
  color: var(--df-text-light);
  font-size: .98rem;
  font-weight: 700;
}

.draft-owner-history__status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height: 1.45rem;
  padding: .12rem .5rem;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.draft-owner-history__status--available{
  background: rgba(141,240,176,.14);
  border: 1px solid rgba(141,240,176,.24);
  color: rgba(196,255,214,.94);
}

.draft-owner-history__status--drafted{
  background: rgba(255,176,176,.14);
  border: 1px solid rgba(255,176,176,.22);
  color: rgba(255,214,214,.95);
}

.draft-owner-history__item-meta{
  color: rgba(219,211,190,.72);
  font-size: .84rem;
  margin-top: .2rem;
}

.draft-owner-history__details{
  margin-top: .45rem;
}

.draft-owner-history__details summary{
  color: rgba(219,211,190,.76);
  font-size: .75rem;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.draft-owner-history__details summary::-webkit-details-marker{
  display:none;
}

.draft-owner-history__detail-list{
  margin: .45rem 0 0;
  padding-left: 1rem;
  color: rgba(219,211,190,.72);
  font-size: .8rem;
  line-height: 1.45;
}

.draft-owner-history__item-side{
  flex-shrink:0;
  color: var(--df-GoblinGold);
  font-size: .82rem;
  font-weight: 700;
  text-align:right;
}

.draft-owner-history__empty{
  color: rgba(219,211,190,.8);
  font-size: .92rem;
  line-height: 1.5;
  border: 1px dashed rgba(219,211,190,.16);
  border-radius: 12px;
  background: rgba(9,20,11,.22);
  padding: .85rem;
}

.draft-upcoming-picks__list{
  display:flex;
  flex-direction:column;
  gap:.6rem;
}

.draft-upcoming-pick{
  border: 1px solid rgba(219,211,190,.1);
  border-radius: 12px;
  background: rgba(9,20,11,.28);
  overflow:hidden;
  transition:border-color .18s ease, background-color .18s ease;
}

.draft-upcoming-pick[open]{
  border-color: rgba(141,240,176,.22);
  background: rgba(24,62,34,.3);
}

.draft-upcoming-pick__summary{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding: .8rem .9rem;
  list-style:none;
  cursor:pointer;
}

.draft-upcoming-pick__summary::-webkit-details-marker{
  display:none;
}

.draft-upcoming-pick__summary-main{
  min-width:0;
}

.draft-upcoming-pick__slot-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.5rem;
}

.draft-upcoming-pick__slot{
  color: var(--df-text-light);
  font-size: 1rem;
  font-weight: 800;
}

.draft-upcoming-pick__pill{
  display:inline-flex;
  align-items:center;
  min-height: 1.45rem;
  padding: .1rem .5rem;
  border-radius:999px;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.draft-upcoming-pick__pill.is-mine{
  background: rgba(141,240,176,.14);
  border: 1px solid rgba(141,240,176,.24);
  color: rgba(196,255,214,.94);
}

.draft-upcoming-pick__owner,
.draft-upcoming-pick__likely,
.draft-upcoming-pick__tendency,
.draft-upcoming-pick__panel-copy,
.draft-upcoming-pick__history-summary{
  color: rgba(219,211,190,.78);
  font-size: .84rem;
  line-height: 1.45;
}

.draft-upcoming-pick__owner,
.draft-upcoming-pick__likely,
.draft-upcoming-pick__tendency{
  margin-top: .28rem;
}

.draft-upcoming-pick__action{
  flex-shrink:0;
}

.draft-upcoming-pick__panel{
  padding: 0 .9rem .9rem;
  animation: draftUpcomingReveal .18s ease-out;
}

@keyframes draftUpcomingReveal{
  from{
    opacity:0;
    transform:translateY(-4px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.draft-upcoming-pick__meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin-bottom:.7rem;
}

.draft-upcoming-pick__panel-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:.7rem;
}

.draft-upcoming-pick__panel-card{
  border: 1px solid rgba(219,211,190,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.03);
  padding: .8rem;
}

.draft-upcoming-pick__panel-title{
  color: var(--df-text-light);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: .5rem;
}

.draft-upcoming-pick__panel-player{
  color: var(--df-text-light);
  font-size: .98rem;
  font-weight: 700;
}

.draft-upcoming-pick__panel-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  color: rgba(219,211,190,.72);
  font-size: .78rem;
  margin-top: .28rem;
  margin-bottom: .45rem;
}

.draft-upcoming-pick__history-results{
  margin-top: .6rem;
}

.draft-legacy-shell{
  position: relative;
  z-index: 0;
}

.draft-legacy-shell .workspace-compact-details{
  background: rgba(9,20,11,.1);
  border-color: rgba(219,211,190,.07);
  box-shadow:none;
}

.draft-legacy-shell .workspace-compact-details summary{
  color: rgba(219,211,190,.78);
  font-weight: 700;
}

@media (max-width: 991px){
  .draft-decision-hero__grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px){
  .draft-decision-recommendation__grid{
    flex-direction:column;
    align-items:flex-start;
  }

  .draft-decision-recommendation__actions{
    justify-content:flex-start;
  }

  .draft-trade-module__grid{
    grid-template-columns: 1fr;
  }

  .draft-decision-list__row{
    flex-direction:column;
  }

  .draft-decision-list__side{
    align-items:flex-start;
  }

  .draft-decision-list__tags{
    align-items:flex-start;
  }

  .draft-owner-history__item{
    flex-direction:column;
  }

  .draft-owner-history__item-side{
    text-align:left;
  }

  .draft-upcoming-pick__summary{
    flex-direction:column;
  }

  .draft-upcoming-pick__action{
    align-self:flex-start;
  }

  .draft-upcoming-pick__panel-grid{
    grid-template-columns:1fr;
  }
}

/* Best Available rows: stay horizontal at mobile — player info + value fit side-by-side.
   The base block above stacks all draft-decision-list__row elements; this undoes that
   specifically for the Best Available context where rows are compact enough to stay inline. */
@media (max-width: 767px) {
  .draft-best-available .draft-decision-list__row {
    flex-direction: row;
    align-items: center;
    padding: .4rem .5rem;
    gap: .5rem;
  }

  /* Let player info fill remaining space and truncate long names instead of overflowing */
  .draft-best-available .draft-decision-list__main {
    flex: 1 1 0;
    min-width: 0;
    gap: .4rem;
  }

  /* Name truncation keeps the row single-line at narrow widths */
  .draft-best-available .draft-decision-list__name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Restore value pill to right-side alignment (base 767px block resets it to flex-start) */
  .draft-best-available .draft-decision-list__side {
    align-items: flex-end;
  }

  /* Slightly tighter pill at mobile to reclaim horizontal space */
  .draft-best-available .value-cell__pill {
    min-width: 44px;
    padding: .2rem .38rem;
    font-size: .84rem;
  }
}

/* ===========================
   Rankings Workspace
   =========================== */
.ranking-tool-shell{
  min-width: 0;
}

.ranking-tool-hero{
  border: 1px solid rgba(219,211,190,.12);
  background: linear-gradient(180deg, rgba(34,85,54,.95), rgba(18,44,18,.98));
}

.ranking-tool-kicker{
  color: rgba(219,211,190,.68);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.ranking-tool-title{
  color: var(--df-text-light);
  font-size: clamp(1.5rem, 2.5vw, 2.35rem);
  line-height: 1.05;
}

.ranking-tool-copy{
  color: rgba(219,211,190,.8);
  max-width: 46rem;
  line-height: 1.5;
}

.ranking-tool-summary{
  border: 1px solid rgba(219,211,190,.12);
}

.ranking-tool-flow{
  border: 1px solid rgba(219,211,190,.12);
  background: linear-gradient(180deg, rgba(18,44,18,.78), rgba(11,24,11,.92));
}

.ranking-tool-lock-card{
  border: 1px solid rgba(219,211,190,.12);
  background: linear-gradient(180deg, rgba(18,44,18,.88), rgba(11,24,11,.96));
}

.ranking-tool-guide{
  background: rgba(18,44,18,.32);
}

.workspace-compact-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1rem;
}

.workspace-compact-copy{
  color: rgba(219,211,190,.78);
  font-size: .92rem;
  line-height: 1.45;
  margin-top: .2rem;
  max-width: 48rem;
}

.workspace-compact-actions{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  align-items:center;
}

.workspace-compact-pills{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  align-items:center;
}

.workspace-compact-pill{
  display:inline-flex;
  align-items:center;
  min-height: 30px;
  padding:.3rem .7rem;
  border-radius:999px;
  border:1px solid rgba(219,211,190,.14);
  background: rgba(9,20,11,.24);
  color: rgba(219,211,190,.86);
  font-size: .78rem;
}

.workspace-compact-pill strong{
  color: var(--df-text-light);
  margin-right:.35rem;
}

.workspace-compact-details{
  border: 1px solid rgba(219,211,190,.12);
  border-radius: 16px;
  background: rgba(9,20,11,.24);
  padding: .85rem 1rem;
}

.workspace-compact-details summary{
  color: var(--df-text-light);
  cursor:pointer;
}

.workspace-compact-details[open] summary{
  margin-bottom: .75rem;
}

.goblin-select{
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #111;
  color: var(--df-surface);
  border: 1px solid rgba(205,236,30,.24);
  border-radius: 12px;
  box-shadow: none;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.25L8 10.25L12 6.25' stroke='%23225522' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
    linear-gradient(180deg, rgba(18,44,18,.96), rgba(10,24,10,.98));
  background-repeat: no-repeat, no-repeat;
  background-position: right .75rem center, center;
  background-size: 14px 14px, 100% 100%;
  padding-right: 2.3rem;
}

.goblin-select:hover{
  border-color: rgba(205,236,30,.4);
}

.goblin-select:focus{
  color: var(--df-surface);
  background-color: #111;
  border-color: rgba(205,236,30,.62);
  box-shadow: 0 0 0 .18rem rgba(205,236,30,.12);
  outline: none;
}

.goblin-select option{
  background: #111;
  color: var(--df-surface);
}

/* ===========================
   Admin / Settings modern surfaces
   =========================== */
.league-settings-page,
.admin-users-shell {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.league-settings-page {
  padding-block: 1rem 1.5rem;
}

.league-settings-header,
.league-settings-identity-card,
.league-settings-panel,
.admin-users-summary-card,
.admin-users-panel {
  border: 1px solid rgba(219, 211, 190, 0.12);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(15, 42, 26, 0.98), rgba(12, 31, 19, 0.98));
  color: var(--df-text-light);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18);
}

.league-settings-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.6fr);
  gap: 1rem;
  align-items: stretch;
  padding: 1rem;
}

.league-settings-header__main,
.league-settings-header__stats,
.league-settings-panel,
.league-settings-group,
.league-settings-side-stack,
.league-settings-main-stack {
  min-width: 0;
}

.league-settings-header__main {
  display: grid;
  align-content: center;
  gap: 0.55rem;
}

.league-settings-header__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.league-settings-kicker,
.league-settings-mini-stat span,
.league-settings-identity-card span,
.league-settings-panel__eyebrow,
.league-settings-group h4,
.league-settings-list__row span,
.league-settings-roster-chip span,
.league-settings-slot-pill span,
.league-settings-highlight-card span,
.league-settings-highlight-card small,
.league-settings-flag span,
.league-settings-history-card span,
.league-settings-table th,
.league-settings-empty,
.admin-users-empty,
.admin-users-summary-card__label,
.admin-users-summary-card__detail,
.admin-users-panel__header p,
.admin-users-muted {
  color: rgba(219, 211, 190, 0.7);
}

.league-settings-kicker,
.league-settings-mini-stat span,
.league-settings-identity-card span,
.league-settings-panel__eyebrow,
.league-settings-group h4,
.league-settings-roster-chip span,
.league-settings-highlight-card span,
.league-settings-flag span,
.league-settings-history-card span,
.league-settings-table th,
.admin-users-summary-card__label,
.admin-users-form-section__title,
.admin-users-field > span,
.admin-users-table th {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.league-settings-title {
  margin: 0;
  color: #f4efe2;
  font-size: 1.55rem;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.league-settings-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}

.league-settings-pill,
.league-settings-status-pill,
.league-settings-slot-pill,
.admin-users-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  border: 1px solid rgba(219, 211, 190, 0.16);
  border-radius: 999px;
  background: rgba(219, 211, 190, 0.1);
  color: #f4efe2;
  font-weight: 700;
  line-height: 1.1;
}

.league-settings-pill {
  min-height: 1.7rem;
  padding: 0.28rem 0.62rem;
  font-size: 0.76rem;
}

.league-settings-pill.is-accent,
.admin-users-badge--role-admin,
.admin-users-badge--plan-yearly,
.admin-users-badge--subscription-trialing {
  border-color: rgba(205, 236, 30, 0.36);
  background: rgba(205, 236, 30, 0.14);
  color: var(--df-GoblinGold);
}

.league-settings-mini-stat {
  display: grid;
  gap: 0.18rem;
  padding: 0.72rem 0.78rem;
  border: 1px solid rgba(219, 211, 190, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.league-settings-mini-stat strong,
.league-settings-identity-card strong,
.league-settings-list__row strong,
.league-settings-roster-chip strong,
.league-settings-slot-pill strong,
.league-settings-flag strong,
.league-settings-history-card strong,
.league-settings-highlight-card strong,
.admin-users-summary-card__value,
.admin-users-panel__header h2,
.admin-users-user-cell strong,
.admin-users-stack strong {
  color: #f4efe2;
}

.league-settings-mini-stat strong {
  font-size: 1.05rem;
}

.league-settings-identity-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.75rem;
}

.league-settings-identity-card {
  display: grid;
  gap: 0.22rem;
  min-height: 6.2rem;
  padding: 0.88rem;
}

.league-settings-identity-card strong {
  min-width: 0;
  font-size: 1rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.league-settings-identity-card small {
  min-width: 0;
  color: rgba(219, 211, 190, 0.66);
  font-size: 0.78rem;
  overflow-wrap: anywhere;
}

.league-settings-identity-card--accent {
  border-color: rgba(205, 236, 30, 0.3);
}

.league-settings-identity-card--success {
  border-color: rgba(141, 240, 176, 0.28);
}

.league-settings-identity-card--info {
  border-color: rgba(88, 224, 216, 0.26);
}

.league-settings-identity-card--warning {
  border-color: rgba(255, 214, 102, 0.32);
}

.league-settings-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.34fr);
  gap: 1rem;
  align-items: start;
}

.league-settings-main-stack,
.league-settings-side-stack {
  display: grid;
  gap: 1rem;
}

.league-settings-panel,
.admin-users-panel {
  overflow: hidden;
}

.league-settings-panel {
  padding: 1rem;
}

.league-settings-panel__header {
  display: grid;
  gap: 0.2rem;
  padding-bottom: 0.8rem;
  margin-bottom: 0.9rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.1);
}

.league-settings-panel__title,
.admin-users-panel__header h2 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.25;
}

.league-settings-panel__title {
  color: #f4efe2;
}

.league-settings-groups-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.league-settings-group {
  display: grid;
  gap: 0.7rem;
  padding: 0.85rem;
  border: 1px solid rgba(219, 211, 190, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.league-settings-group h4 {
  margin: 0;
  color: rgba(244, 239, 226, 0.78);
}

.league-settings-list,
.league-settings-flag-list {
  display: grid;
  gap: 0.65rem;
}

.league-settings-list__row,
.league-settings-flag {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.7rem;
  align-items: center;
  min-width: 0;
}

.league-settings-list__row {
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.08);
}

.league-settings-list__row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.league-settings-list__row span,
.league-settings-list__row strong,
.league-settings-flag span,
.league-settings-flag strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.league-settings-list__row strong,
.league-settings-flag strong {
  text-align: right;
}

.league-settings-roster-grid,
.league-settings-highlight-grid,
.league-settings-history-grid {
  display: grid;
  gap: 0.65rem;
}

.league-settings-roster-grid {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}

.league-settings-highlight-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 0.8rem;
}

.league-settings-history-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.league-settings-roster-chip,
.league-settings-highlight-card,
.league-settings-history-card,
.league-settings-flag {
  padding: 0.78rem;
  border: 1px solid rgba(219, 211, 190, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.league-settings-roster-chip,
.league-settings-highlight-card,
.league-settings-history-card {
  display: grid;
  gap: 0.22rem;
  min-width: 0;
}

.league-settings-roster-chip strong,
.league-settings-highlight-card strong,
.league-settings-history-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.league-settings-highlight-card small {
  font-size: 0.78rem;
  line-height: 1.35;
}

.league-settings-slot-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.75rem;
}

.league-settings-slot-pill {
  gap: 0.4rem;
  min-height: 1.65rem;
  padding: 0.25rem 0.58rem;
  font-size: 0.76rem;
}

.league-settings-slot-pill strong {
  color: var(--df-GoblinGold);
}

.league-settings-table-wrap,
.admin-users-table-wrap {
  overflow-x: auto;
}

.league-settings-table-wrap {
  border: 1px solid rgba(219, 211, 190, 0.08);
  border-radius: 8px;
}

.league-settings-table-wrap--tall {
  max-height: 34rem;
  overflow: auto;
}

.league-settings-table,
.admin-users-table {
  width: 100%;
  border-collapse: collapse;
  color: #f4efe2;
}

.league-settings-table {
  min-width: 680px;
}

.league-settings-table th,
.league-settings-table td,
.admin-users-table th,
.admin-users-table td {
  padding: 0.72rem 0.75rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.08);
  vertical-align: middle;
}

.league-settings-table th,
.league-settings-table td {
  text-align: left;
}

.league-settings-table th,
.admin-users-table th {
  white-space: nowrap;
}

.league-settings-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #102718;
}

.league-settings-table td:not(:first-child) {
  white-space: nowrap;
}

.league-settings-table tbody tr:hover,
.admin-users-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.035);
}

.league-settings-table tbody tr.is-changed {
  background: rgba(205, 236, 30, 0.045);
}

.league-settings-status-pill {
  min-height: 1.55rem;
  padding: 0.22rem 0.5rem;
  font-size: 0.72rem;
}

.league-settings-status-pill.is-changed {
  border-color: rgba(205, 236, 30, 0.34);
  background: rgba(205, 236, 30, 0.12);
  color: var(--df-GoblinGold);
}

.league-settings-status-pill.is-unknown {
  border-color: rgba(88, 224, 216, 0.3);
  background: rgba(88, 224, 216, 0.12);
  color: #7ce5de;
}

.league-settings-empty,
.admin-users-empty {
  padding: 0.8rem;
  border: 1px solid rgba(219, 211, 190, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
}

@media (max-width: 1199.98px) {
  .league-settings-identity-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .league-settings-dashboard-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991.98px) {
  .league-settings-header {
    grid-template-columns: 1fr;
  }

  .league-settings-groups-grid,
  .league-settings-highlight-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ===========================
   Legal Pages
   =========================== */
.legal-page-wrap{
  padding-block: 22px 34px;
}

.legal-hero{
  padding: 20px 22px;
  border-radius: 24px;
  box-shadow: var(--df-shadow);
}

.legal-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.16);
  color: var(--df-GoblinGold);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.legal-title{
  margin: 14px 0 8px;
  color: var(--df-text-light);
  font-size: clamp(1.8rem, 3vw, 2.7rem);
  line-height: 1.02;
}

.legal-copy{
  max-width: 820px;
  margin: 0;
  color: rgba(219,211,190,.84);
  font-size: 1rem;
}

.legal-meta{
  margin-top: 12px;
  color: rgba(219,211,190,.72);
  font-size: .9rem;
}

.legal-summary-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap:14px;
  margin-top: 16px;
}

.legal-summary-card{
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.14);
  color: var(--df-text-light);
}

.legal-summary-card strong{
  display:block;
  margin-bottom: 4px;
  color: var(--df-GoblinGold);
  font-size: .76rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.legal-section-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:16px;
  margin-top: 16px;
}

.legal-card{
  height:100%;
  padding: 18px 20px;
  border-radius: 22px;
  background: var(--df-surface-alt);
  border: 1px solid rgba(34,85,34,.12);
  box-shadow: 0 12px 28px rgba(15,42,26,.08);
  color: var(--df-text-light);
}

.legal-card h2{
  margin: 0 0 10px;
  color: var(--df-GoblinGold);
  font-size: 1.08rem;
}

.legal-card p:last-child,
.legal-card ul:last-child{
  margin-bottom: 0;
}

.legal-card ul{
  padding-left: 1.15rem;
}

.legal-card li + li{
  margin-top: 6px;
}

.legal-card__eyebrow{
  margin-bottom: 8px;
  color: var(--df-text-light);
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 700;
}

.legal-note{
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(205,236,30,.14);
  border: 1px solid rgba(205,236,30,.24);
  color: var(--df-accent-contrast);
}

.legal-link{
  color: var(--df-accent);
  font-weight: 600;
}

.legal-link:hover,
.legal-link:focus{
  color: var(--df-accent-contrast);
}

/* ===========================
   Contact Page
   =========================== */
.contact-page-wrap{
  padding-block: 22px 34px;
}

.contact-hero{
  padding: 20px 22px;
  border-radius: 24px;
  box-shadow: var(--df-shadow);
}

.contact-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.16);
  color: var(--df-GoblinGold);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.contact-title{
  margin: 14px 0 8px;
  color: var(--df-text-light);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.02;
}

.contact-copy{
  max-width: 820px;
  margin: 0;
  color: rgba(219,211,190,.84);
}

.contact-layout{
  display:grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap:16px;
  margin-top: 16px;
}

.contact-side{
  display:grid;
  gap:16px;
}

.contact-panel{
  padding: 18px 20px;
  border-radius: 22px;
  box-shadow: 0 12px 28px rgba(15,42,26,.08);
}

.contact-panel--form{
  background: var(--df-surface-alt);
  border: 1px solid rgba(34,85,34,.12);
  color: var(--df-text-light);
}

.contact-panel--info{
  background: var(--df-surface-alt);
  border: 1px solid rgba(34,85,34,.12);
  color: var(--df-text-light);
}
.settingBox{
  background: linear-gradient(135deg, rgba(30,40,30,1) 0%, rgba(20,30,20,1) 100%); 
  border-color: #4a7c59 !important;
}

.contact-panel--discord{
  background: linear-gradient(180deg, rgba(18,44,18,.96), rgba(34,85,54,.94));
  border: 1px solid rgba(219,211,190,.12);
  color: var(--df-text-light);
}

.contact-panel__eyebrow{
  margin-bottom: 8px;
  color: var(--df-accent);
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 700;
}

.contact-panel--discord .contact-panel__eyebrow{
  color: var(--df-GoblinGold);
}

.contact-panel__title{
  margin: 0 0 8px;
  color: inherit;
  font-size: 1.15rem;
}

.contact-panel__copy{
  margin: 0 0 14px;
  color: inherit;
}

.contact-input.form-control{
  background: #f4efdf;
  border: 1px solid rgba(34,85,34,.24);
  color: var(--df-text-dark);
  border-radius: 14px;
  padding: .8rem .9rem;
}

.contact-input.form-control:focus{
  background: #fffaf0;
  color: var(--df-text-dark);
  border-color: rgba(34,85,34,.45);
  box-shadow: 0 0 0 .18rem rgba(34,85,34,.12);
}

.contact-input::placeholder{
  color: rgba(24,24,27,.52);
  opacity: 1;
}

.contact-list{
  margin: 0;
  padding-left: 1.1rem;
}

.contact-list li + li{
  margin-top: 6px;
}

.contact-response{
  min-height: 1.5rem;
  font-weight: 600;
}

.contact-response.success{
  color: #2f7d35;
}

.contact-response.error{
  color: #a63d3d;
}

/* ===========================
   Footer
   =========================== */
.footer{
  margin-top: auto;
}

.site-footer-card{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin: .75rem 0 1rem;
  padding: 12px 0;
  border-top: 1px solid rgba(34,85,34,.14);
  background: transparent;
  box-shadow: none;
}

.site-footer-card__logo-link{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:0 0 auto;
  color: var(--df-text-dark);
  text-decoration:none;
}

.site-footer-card__logo{
  width:58px;
  height:58px;
  object-fit:contain;
  flex: 0 0 58px;
}

.site-footer-card__copy h3{
  margin:0;
  color: var(--df-accent-contrast);
  font-size: 1rem;
}

.site-footer-card__nav{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;
  gap:6px 18px;
}

.site-footer-card__links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 14px;
}

.site-footer-card__links--legal{
  padding-left:18px;
  border-left: 1px solid rgba(34,85,34,.18);
}

.site-footer-card__links a{
  display:inline-flex;
  align-items:center;
  padding:6px 3px;
  color: var(--df-accent-contrast);
  font-weight: 600;
  font-size: .88rem;
  text-decoration:none;
  border-radius: 4px;
}

.site-footer-card__links--legal a{
  color: var(--df-text-muted);
  font-weight: 500;
  font-size: .8rem;
}

.site-footer-card__links a:hover,
.site-footer-card__links a:focus-visible{
  color: var(--df-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-footer-card__links a:focus-visible{
  outline: 2px solid var(--df-accent);
  outline-offset: 2px;
}

.cpr-surface-card{
  background: linear-gradient(180deg, rgba(22,50,31,.94), rgba(12,28,16,.98));
  border: 1px solid rgba(219,211,190,.12);
}

#cpr-workspace{
  scroll-margin-top: 7rem;
}

.cpr-control{
  background: rgba(9,20,11,.58);
  color: var(--df-text-light);
}

.cpr-control:focus{
  background: rgba(9,20,11,.7);
  color: var(--df-text-light);
  border-color: rgba(190,163,84,.6);
  box-shadow: 0 0 0 .18rem rgba(190,163,84,.14);
}

.cpr-chart-surface{
  background: linear-gradient(180deg, rgba(14,32,18,.96), rgba(9,20,11,.98));
}

.cpr-chart-scroll{
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.cpr-chart-svg{
  display: block;
}

.cpr-surface-card .table-df{
  box-shadow: none;
}

.cpr-surface-card .table-df thead{
  border-bottom: 1px solid rgba(219,211,190,.18);
}

.cpr-surface-card .table-df th,
.cpr-surface-card .table-df td{
  background: transparent;
}

.cpr-preview-table__col-rank,
.cpr-preview-table__col-pos-rank,
.cpr-preview-table__col-value{
  white-space: nowrap;
}

.cpr-preview-table__col-pos-rank{
  min-width: 72px;
  padding-right: .9rem !important;
}

.cpr-preview-table__col-value{
  min-width: 76px;
  text-align: right;
  padding-left: .85rem !important;
  font-variant-numeric: tabular-nums;
}

.cpr-preview-table__col-asset{
  min-width: 0;
}

.cpr-preview-table__col-asset .fw-semibold{
  word-break: break-word;
}

.cpr-preview-toolbar{
  row-gap: .75rem;
}

.cpr-preview-toolbar__controls{
  justify-content: flex-end;
}

.cpr-preview-toolbar__input{
  width: 100px;
}

.cpr-market-alt{
  background: rgba(9,20,11,.24);
}

.cpr-market-card-list,
.cpr-market-split-list,
.cpr-market-tape-list{
  display: grid;
  gap: .75rem;
}

.cpr-market-card-item{
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: .8rem;
  padding: .85rem;
  border: 1px solid rgba(219,211,190,.12);
  border-radius: 16px;
  background: var(--df-bg);
  color: var(--df-surface-alt);
}

.cpr-market-card-item__rank{
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: var(--df-accent);
  color: var(--df-text-light);
  font-weight: 700;
  font-size: 1rem;
}

.cpr-market-card-item__body{
  min-width: 0;
}

.cpr-market-card-item__main{
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  min-width: 0;
}

.cpr-market-card-item__avatar{
  display: block;
  width: 50px;
  height: 44px;
  /* border-radius: 999px; */
  object-fit: scale-down;
  flex: 0 0 auto;
}

.cpr-market-card-item__tag-row{
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .35rem;
}

.cpr-market-card-item__tag{
  background: rgba(176,132,245,.16);
  color: #d9c8ff;
  border: 1px solid rgba(176,132,245,.28);
}

.cpr-market-card-item__value-stack{
  flex: 0 0 auto;
  min-width: 92px;
  text-align: right;
}

.cpr-market-card-item__value-label{
  color: rgba(219,211,190,.62);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: .15rem;
}

.cpr-market-card-item__value{
  text-align: right;
  color: var(--df-text-light);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.cpr-market-card-item__subvalue{
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: .35rem;
  margin-top: .18rem;
  color: rgba(219,211,190,.8);
  font-size: .78rem;
  font-variant-numeric: tabular-nums;
}

.cpr-market-card-item__subvalue-label{
  color: rgba(219,211,190,.54);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cpr-market-card-item__delta{
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .28rem;
  margin-top: .2rem;
  font-size: .76rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.cpr-market-card-item__delta.is-up{
  color: #7ddc87;
}

.cpr-market-card-item__delta.is-down{
  color: #f07f7f;
}

.cpr-market-card-item__delta-arrow{
  font-size: .82rem;
  line-height: 1;
}

.ranking-board-card-list{
  min-height: 160px;
}

.ranking-board-card-list__empty{
  border: 1px dashed rgba(219,211,190,.18);
  border-radius: 16px;
  background: var(--df-bg);
}

.ranking-board-card-item{
  align-items: stretch;
}

.ranking-board-card-item__row{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: .75rem;
  min-width: 0;
}

.ranking-board-card-item__rank-button{
  border: 0;
  min-height: 100%;
  transition: transform .15s ease, box-shadow .15s ease;
}

.ranking-board-card-item__rank-button:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(15,42,26,.18);
}

.ranking-board-card-item__actions{
  display: flex;
  gap: .5rem;
  flex-wrap: nowrap;
  justify-content: flex-end;
  align-items: flex-start;
  flex: 0 0 auto;
}

.ranking-board-card-item__actions .btn{
  min-width: 68px;
  flex: 0 0 auto;
}

.ranking-board-card-item .cpr-market-card-item__main{
  min-width: 0;
  flex: 1 1 auto;
}

.ranking-board-card-item .cpr-market-card-item__main > .min-w-0{
  min-width: 0;
}

.ranking-board-card-item .cpr-market-card-item__main .fw-semibold,
.ranking-board-card-item .cpr-market-card-item__main .small{
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 575px){
  .ranking-board-card-item__row{
    gap: .5rem;
  }

  .ranking-board-card-item__actions{
    gap: .35rem;
  }

  .ranking-board-card-item__actions .btn{
    min-width: 44px;
    padding-inline: .45rem;
  }
}

.cpr-market-split-item{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .85rem 1rem;
  border: 1px solid rgba(219,211,190,.12);
  border-radius: 16px;
  background: rgba(9,20,11,.3);
}

.cpr-market-split-item__left{
  display: flex;
  align-items: center;
  gap: .8rem;
  min-width: 0;
}

.cpr-market-split-item__rank{
  color: rgba(219,211,190,.72);
  font-size: .84rem;
  font-weight: 700;
  letter-spacing: .05em;
  min-width: 44px;
}

.cpr-market-split-item__right{
  flex: 0 0 auto;
  color: var(--df-text-light);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.cpr-market-tape-item{
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto auto;
  gap: .75rem;
  align-items: center;
  padding: .75rem .9rem;
  border-radius: 14px;
  border: 1px solid rgba(219,211,190,.12);
  background: rgba(9,20,11,.28);
}

.cpr-market-tape-item__rank{
  color: rgba(219,211,190,.72);
  font-weight: 700;
}

.cpr-market-tape-item__name{
  min-width: 0;
  color: var(--df-text-light);
  font-weight: 600;
  word-break: break-word;
}

.cpr-market-tape-item__meta{
  white-space: nowrap;
  font-size: .84rem;
  font-weight: 600;
}

.cpr-market-tape-item__value{
  white-space: nowrap;
  color: var(--df-text-light);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 767.98px){
  .cpr-chart-surface{
    padding: .4rem !important;
  }

  .cpr-chart-scroll{
    margin: 0 -.15rem;
    padding: 0 .15rem .35rem;
  }

  .cpr-chart-svg{
    width: 1180px !important;
    max-width: none;
  }

  .cpr-preview-toolbar{
    align-items: stretch !important;
  }

  .cpr-preview-toolbar__controls{
    width: 100%;
    justify-content: flex-start;
    row-gap: .55rem;
  }

  .cpr-preview-toolbar__input{
    width: 84px;
    min-width: 84px;
    flex: 0 0 auto;
  }

  .cpr-preview-table{
    font-size: .83rem;
  }

  .cpr-preview-table th,
  .cpr-preview-table td{
    padding: .45rem .35rem;
    vertical-align: top;
  }

  .cpr-preview-table__col-rank{
    width: 1%;
    font-weight: 700;
  }

  .cpr-preview-table__col-asset{
    min-width: 150px;
  }

  .cpr-preview-table__col-asset .fw-semibold{
    font-size: .88rem;
    line-height: 1.25;
  }

  .cpr-preview-table__col-pos-rank,
  .cpr-preview-table__col-value{
    font-size: .78rem;
  }

  .cpr-preview-table__col-pos-rank{
    min-width: 62px;
    padding-right: .7rem !important;
  }

  .cpr-preview-table__col-value{
    min-width: 68px;
    padding-left: .7rem !important;
  }

  .cpr-market-card-item{
    grid-template-columns: 46px minmax(0, 1fr);
    padding: .75rem;
  }

  .cpr-market-card-item__main{
    gap: .6rem;
  }

  .cpr-market-card-item__avatar{
    width: 38px;
    height: 38px;
  }

  .cpr-market-card-item__value-stack{
    min-width: 74px;
  }

  .cpr-market-card-item__value{
    font-size: .92rem;
  }

  .cpr-market-card-item__subvalue{
    font-size: .72rem;
  }

  .cpr-market-card-item__delta{
    font-size: .7rem;
  }

  .cpr-market-split-item{
    align-items: flex-start;
    padding: .75rem .85rem;
  }

  .cpr-market-split-item__left{
    align-items: flex-start;
  }

  .cpr-market-tape-item{
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: .55rem;
  }

  .cpr-market-tape-item__meta{
    grid-column: 2 / 3;
    white-space: normal;
  }

  .cpr-market-tape-item__value{
    grid-column: 3 / 4;
    grid-row: 1 / span 2;
    align-self: center;
  }
}

.trade-center-surface-card{
  background: linear-gradient(180deg, rgba(22,50,31,.94), rgba(12,28,16,.98));
  border: 1px solid rgba(219,211,190,.12);
}

.trade-center-lock-card{
  border: 1px solid rgba(219,211,190,.12);
  background: linear-gradient(180deg, rgba(18,44,18,.88), rgba(11,24,11,.96));
}

/* Compact Trade Center tool switcher -- replaces the old large
   .trade-center-surface-card toolbar (title + description + mode pill +
   free-floating buttons). League context/mode already live in
   leagueHeader.ejs above this, so this is just a slim divider row with a
   small label and a grouped History/Finder/Grader switcher -- not another
   card. flex-wrap handles narrow widths without a hard breakpoint. */
.trade-center-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.5rem 1rem;
  padding-bottom:.75rem;
  margin-bottom:1rem;
  border-bottom:1px solid rgba(219,211,190,.14);
}

.trade-center-toolbar__label{
  color: rgba(219,211,190,.68);
  font-size:.78rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.trade-center-tabs{
  display:flex;
  align-items:center;
  gap:.2rem;
  padding:.2rem;
  border:1px solid rgba(219,211,190,.14);
  border-radius:10px;
  background: rgba(9,20,11,.24);
}

.trade-center-tabs__link{
  padding:.4rem .75rem;
  border-radius:7px;
  font-size:.82rem;
  font-weight:600;
  color: rgba(219,211,190,.72);
  text-decoration:none;
}

.trade-center-tabs__link:hover{
  color: var(--df-text-light);
}

.trade-center-tabs__link:focus-visible{
  outline: 2px solid var(--df-accent);
  outline-offset: 2px;
}

.trade-center-tabs__link.is-active{
  background: var(--df-GoblinGold);
  color: var(--df-text-dark);
}

@media (max-width: 575px){
  .trade-center-tabs__link{
    padding:.35rem .6rem;
    font-size:.8rem;
  }
}

/* Grader and Finder tabs: the positional-adjustment <details> itself IS the
   compact control row -- not a flex sibling of the toolbar -- so the
   disclosure and the Trade Center switcher read as one full-width
   dark-green surface instead of splitting into a half-width panel next
   to an empty half. The tabs nav lives inside <summary> (the only child
   a closed <details> still renders), so it stays pinned in the top-right
   corner whether the panel is open or closed. History/Impact keep the
   standalone .trade-center-toolbar row above (untouched) -- this class
   appears whenever tradeCenter.ejs renders the Grader or Finder branch of
   the pos-adj block (they are mutually exclusive, so only one instance of
   this row exists per page). */
.trade-center-control-row > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.5rem 1rem;
  list-style:none;
  cursor:pointer;
}

.trade-center-control-row > summary::-webkit-details-marker{
  display:none;
}

/* ::-webkit-details-marker is a no-op in current Chromium/Edge (the
   pseudo-element box no longer exists there -- display:none above only
   still matters for older WebKit). The live pseudo is the standardized
   ::marker, whose content defaults to "normal" (the native disclosure
   triangle) and was never emptied, which is what painted a native/blue
   marker widget next to our custom ::before arrow while collapsed. */
.trade-center-control-row > summary::marker{
  content:"";
}

.trade-center-control-row__summary-label{
  display:flex;
  align-items:center;
  gap:.45rem;
}

/* Custom disclosure indicator, since display:flex on <summary> suppresses
   the native marker this project hides anyway via ::-webkit-details-marker
   above -- matches the ▸/▾ treatment already used by other custom
   <summary> rows in this stylesheet (e.g. .trade-focus-dropdown__summary). */
.trade-center-control-row__summary-label::before{
  content:"\2BC8";
  display:inline-block;
  flex:0 0 auto;
  font-size:.7rem;
  line-height:1;
  color:rgba(219,211,190,.7);
  
}

.trade-center-control-row[open] .trade-center-control-row__summary-label::before{
  content:"\2BC6";
  display:inline-block;
  flex:0 0 auto;
  font-size:.7rem;
  line-height:1;
  color:rgba(219,211,190,.7);
}

.trade-center-control-row .trade-center-tabs{
  flex:0 0 auto;
}

/* Scoped to the shared Grader/Finder control row -- both tabs now render
   this same 1/2/4 breakpoint grid instead of the plain auto-fit default. */
.trade-center-control-row .slider-control-grid{
  grid-template-columns: 1fr;
}

@media (min-width: 576px){
  .trade-center-control-row .slider-control-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 992px){
  .trade-center-control-row .slider-control-grid{
    grid-template-columns: repeat(4, 1fr);
  }
}

.trade-center-surface-card .table-df{
  box-shadow: none;
}

.trade-center-surface-card .table-df thead{
  border-bottom: 1px solid rgba(219,211,190,.18);
}

.trade-center-surface-card .table-df th,
.trade-center-surface-card .table-df td{
  background: transparent;
}

.trade-tool-form .form-label{
  margin-bottom: .35rem;
}

.trade-tool-form__section{
  margin-bottom: 1rem;
}

.trade-tool-brief__eyebrow{
  color: rgba(219,211,190,.68);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: .35rem;
}

.trade-tool-brief__title{
  color: var(--df-text-light);
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  line-height: 1.35;
  max-width: 44rem;
}

.trade-tool-stat{
  height: 100%;
  padding: .9rem 1rem;
  border: 1px solid rgba(219,211,190,.12);
  border-radius: 16px;
  background: rgba(9,20,11,.32);
}

.trade-tool-stat__label{
  color: rgba(219,211,190,.68);
  font-size: .74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: .2rem;
}

.trade-tool-stat__value{
  color: var(--df-text-light);
  font-weight: 600;
}

.trade-tool-note{
  height: 100%;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(219,211,190,.12);
  border-radius: 16px;
  background: rgba(9,20,11,.24);
}

.trade-tool-note__title{
  color: var(--df-text-light);
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: .45rem;
}

.trade-tool-note__body{
  color: rgba(219,211,190,.76);
  line-height: 1.55;
}

.tc-delta-positive{
  color:rgba(196,255,214,.94);
}

.tc-delta-negative{
  color:rgba(255,214,214,.95);
}

.tc-delta-neutral{
  color:rgba(219,211,190,.78);
}

/* Finder card informational tags (selected search intent, structural
   "stacked base" note) — neutral pill, no good/bad tone. Replaces the old
   .tc-verdict-badge/.trade-finder-card__verdict + .is-fair/.is-slight/
   .is-clear grade-tone classes, which had no remaining consumer once the
   Finder verdict badge itself was removed (Phase B of the Grader/Finder
   fairness cleanup). */
.trade-finder-card__tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  width:fit-content;
  padding:.25rem .7rem;
  border-radius:999px;
  border:1px solid rgba(219,211,190,.16);
  background:rgba(255,255,255,.04);
  color:rgba(219,211,190,.82);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.02em;
}

.trade-impact-card{
  display:flex;
  flex-direction:column;
  gap:.9rem;
}

.trade-impact-card__name{
  color:var(--df-text-light);
  font-size:1.15rem;
  font-weight:700;
  line-height:1.25;
}

.trade-impact-card__hero{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:.8rem;
}

.trade-impact-card__hero-block{
  min-width:0;
  padding:.85rem .95rem;
  border:1px solid rgba(219,211,190,.12);
  border-radius:16px;
  background:rgba(9,20,11,.24);
}

.trade-impact-card__label{
  color:rgba(219,211,190,.68);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:.3rem;
}

.trade-impact-card__hero-value{
  color:var(--df-text-light);
  font-size:1.1rem;
  font-weight:700;
  line-height:1.25;
}

.trade-impact-card__summary{
  font-size:.92rem;
  font-weight:600;
}

.trade-impact-breakdown{
  display:flex;
  flex-direction:column;
  gap:.5rem;
}

.trade-impact-breakdown__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.65rem .8rem;
  border:1px solid rgba(219,211,190,.1);
  border-radius:14px;
  background:rgba(255,255,255,.03);
}

.trade-impact-breakdown__metric{
  color:rgba(219,211,190,.76);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

.trade-impact-breakdown__range{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.55rem;
  color:var(--df-text-light);
  font-size:.88rem;
  text-align:right;
  flex-wrap:wrap;
}

.trade-impact-breakdown__arrow{
  color:rgba(219,211,190,.6);
}

.trade-impact-ripple-copy{
  color:rgba(219,211,190,.76);
  line-height:1.45;
}

.trade-grader-reaction{
  display:flex;
  justify-content:center;
  align-items:center;
  padding: .45rem;
  border-radius: 14px;
  border: 1px solid rgba(219,211,190,.12);
  background: rgba(9,20,11,.28);
}

.trade-grader-reaction__img{
  display:block;
  width: min(100%, 200px);
  height: auto;
  object-fit: contain;
}

.trade-grader-results{
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.trade-grader-results__row{
  align-items: flex-start;
}

.trade-grader-summary-card,
.trade-grader-table-card{
  height: auto;
}

.trade-grader-summary-card .card-body,
.trade-grader-table-card .card-body{
  display:flex;
  flex-direction:column;
  gap:1rem;
  height:auto;
}

.trade-grader-summary__section{
  display:flex;
  flex-direction:column;
  gap:.55rem;
  min-width:0;
}

.trade-grader-note{
  height:auto;
  margin:0;
}

.trade-grader-counter-section{
  padding-top:1rem;
  border-top:1px solid rgba(219,211,190,.12);
}

.trade-grader-counter-list{
  display:flex;
  flex-direction:column;
  gap:.75rem;
}

.trade-grader-counter-card{
  padding:1rem 1.05rem;
  border:1px solid rgba(219,211,190,.14);
  border-radius:16px;
  background:rgba(9,20,11,.24);
  overflow-wrap:anywhere;
}

.trade-grader-counter-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}

.trade-grader-counter-tag{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:.2rem .65rem;
  border-radius:999px;
  border:1px solid rgba(219,211,190,.16);
  background:rgba(219,211,190,.07);
  color:rgba(219,211,190,.92);
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.02em;
}

.trade-grader-counter-profile{
  line-height:1.45;
}

.trade-grader-counter-shared{
  color:rgba(219,211,190,.8);
  line-height:1.5;
}

.trade-grader-counter-why{
  color:var(--df-text-light);
  line-height:1.5;
}

.trade-grader-filter-panel{
  padding:1rem 1.05rem;
  border:1px solid rgba(219,211,190,.12);
  border-radius:16px;
  background:var(--df-surface);
  color:var(--df-text-light);
}

.slider-control-panel{
  display:flex;
  flex-direction:column;
  gap:.85rem;
}

.slider-control-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:.8rem 1rem;
}

.slider-control-row{
  display:flex;
  flex-direction:column;
  gap:.45rem;
  min-width:0;
  padding:.75rem .85rem;
  border:1px solid rgba(219,211,190,.12);
  border-radius:16px;
  background:rgba(255,255,255,.03);
}

.slider-control-row--full{
  grid-column:1 / -1;
}

.slider-control-row__label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  color:var(--df-text-light);
  font-size:.88rem;
  font-weight:600;
}

.slider-control-row__value{
  flex-shrink:0;
}

.slider-control-row__range{
  margin:0;
}

.slider-control-copy{
  color:rgba(219,211,190,.72);
  font-size:.82rem;
  line-height:1.4;
}

.league-rankings-table-card{
  overflow:hidden;
}

.league-rankings-table-wrap{
  overflow-x:auto;
  overflow-y:visible;
}

.league-rankings-table{
  /* No forced min-width — let the table compress responsively.
     Columns are content-driven; overflow-x:auto on the wrapper
     handles any remaining overflow at very small viewports. */
}

.league-rankings-table th,
.league-rankings-table td{
  padding:.7rem .65rem;
  vertical-align:middle;
}

.league-rankings-table thead th{
  white-space:nowrap;
  font-size:.82rem;
}

.league-rankings-table tbody td{
  font-size:.9rem;
}

.league-rankings-table td:nth-child(2),
.league-rankings-table th:nth-child(2){
  min-width:220px;
}

.league-rankings-table .badge{
  white-space:nowrap;
}

.trade-grader-filter-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap:.65rem .9rem;
}

.trade-grader-filter-check{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:2.6rem;
  margin:0;
  padding:.65rem .8rem;
  border:1px solid rgba(219,211,190,.12);
  border-radius:14px;
  background:rgba(9,20,11,.18);
}

.trade-grader-filter-check .form-check-input{
  margin:0;
}

.trade-grader-filter-check .form-check-label{
  color:var(--df-text-light);
  font-size:.9rem;
}

.trade-grader-action-row{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  align-items:center;
}

.trade-grader-action-form{
  margin:0;
}

.trade-grader-divider{
  margin:0;
  border-color: rgba(219,211,190,.14);
  opacity:1;
}

.trade-grader-metrics{
  padding:1rem 1.05rem;
  border:1px solid rgba(219,211,190,.12);
  border-radius:16px;
  background:rgba(9,20,11,.22);
}

.trade-grader-table-stack{
  align-items:flex-start;
}

.trade-grader-breakdown{
  padding-top:1rem;
}

.trade-grader-breakdown-list{
  display:flex;
  flex-direction:column;
  gap:.75rem;
}

.trade-grader-asset-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.8rem .9rem;
  border:1px solid rgba(219,211,190,.12);
  border-radius:16px;
  background:rgba(255,255,255,.03);
}

.trade-grader-asset-avatar{
  width:48px;
  height:48px;
  border-radius:14px;
  flex-shrink:0;
  object-fit:cover;
  background:rgba(219,211,190,.08);
}

.trade-grader-asset-avatar--pick{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(141,240,176,.16);
  color:rgba(141,240,176,.92);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.trade-grader-asset-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
  margin-top:.2rem;
  color:rgba(219,211,190,.72);
  font-size:.78rem;
}

.trade-grader-asset-meta span + span::before{
  content:'•';
  margin-right:.35rem;
  opacity:.7;
}

.position-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:1.4rem;
  padding:.1rem .45rem;
  border-radius:999px;
  border:1px solid rgba(219,211,190,.16);
  background:rgba(255,255,255,.04);
  color:#f4efe2;
  font-size:.72rem;
  font-weight:700;
  line-height:1;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:nowrap;
}

.position-chip--qb{
  background:rgba(115,185,255,.14);
  border-color:rgba(115,185,255,.28);
  color:#cfe6ff;
}

.position-chip--rb{
  background:rgba(141,240,176,.12);
  border-color:rgba(141,240,176,.28);
  color:#c9f5d8;
}

.position-chip--wr{
  background:rgba(255,174,117,.12);
  border-color:rgba(255,174,117,.28);
  color:#ffd8b6;
}

.position-chip--te{
  background:rgba(233,174,255,.12);
  border-color:rgba(233,174,255,.28);
  color:#f2d6ff;
}

.position-chip--dl{
  background:rgba(255,120,120,.12);
  border-color:rgba(255,120,120,.28);
  color:#ffc9c9;
}

.position-chip--lb{
  background:rgba(255,214,102,.12);
  border-color:rgba(255,214,102,.28);
  color:#ffe8ad;
}

.position-chip--db{
  background:rgba(88,224,216,.12);
  border-color:rgba(88,224,216,.28);
  color:#bdf7f2;
}

.position-chip--picks{
  background:rgba(205,236,30,.14);
  border-color:rgba(205,236,30,.34);
  color:var(--df-GoblinGold);
}

.trade-grader-asset-value{
  flex-shrink:0;
  min-width:72px;
  text-align:right;
}

.trade-grader-asset-value-pill{
  min-width:64px;
  justify-content:center;
  pointer-events:none;
}

.trade-tool-form__heading{
  color: var(--df-text-light);
  font-size: .8rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: .25rem;
}

.trade-tool-form__copy{
  color: rgba(219,211,190,.72);
  font-size: .92rem;
  line-height: 1.45;
  max-width: 48rem;
}

.trade-tool-form .form-select,
.trade-tool-form .form-control{
  border-color: rgba(219,211,190,.14);
  box-shadow: none;
}

.trade-tool-form .trade-tool-input{
  background: var(--df-bg);
  color: var(--df-text-dark);
  border-color: rgba(34,85,34,.22);
}

.trade-tool-form .trade-tool-input::placeholder{
  color: rgba(24,24,27,.58);
}

.trade-tool-form .trade-tool-input option{
  color: var(--df-text-dark);
}

.trade-tool-form .form-select:focus,
.trade-tool-form .form-control:focus{
  border-color: rgba(190,163,84,.6);
  box-shadow: 0 0 0 .18rem rgba(190,163,84,.14);
}

.exchange-snapshot-page{
  color: var(--df-text-light);
}

.exchange-snapshot-stage{
  display:flex;
  justify-content:center;
  margin: 1.5rem 0 2rem;
}

.exchange-snapshot-card{
  width: min(100%, 900px);
  background:
    linear-gradient(135deg, rgba(19,50,31,.96), rgba(9,24,13,.98)),
    radial-gradient(circle at top right, rgba(188,169,91,.14), transparent 38%);
  border: 1px solid rgba(219,211,190,.14);
  border-radius: 28px;
  box-shadow: 0 22px 60px rgba(0,0,0,.28);
  padding: 1.4rem;
}

.exchange-snapshot-card__header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap: 1rem;
  margin-bottom: .85rem;
  padding: .35rem 1.15rem 0;
}

.exchange-snapshot-card__header--logo-only{
  justify-content:center;
  padding-top: .6rem;
}

.exchange-snapshot-brand{
  display:flex;
  align-items:center;
  gap: .75rem;
}

.exchange-snapshot-brand__logo{
  width: 142px;
  height: auto;
  max-height: 124px;
  object-fit: contain;
  filter: drop-shadow(0 12px 26px rgba(0,0,0,.3));
}

.exchange-snapshot-card__subhead{
  display:flex;
  flex-wrap:wrap;
  gap: .5rem;
  margin-bottom: .9rem;
}

.exchange-snapshot-card__subhead--view{
  margin-bottom: 0;
}

.exchange-snapshot-card__headline{
  margin-bottom: .9rem;
}

.exchange-snapshot-card__title{
  color: #f2eedf;
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  line-height: 1.05;
  font-weight: 700;
}

.exchange-snapshot-card__caption{
  margin-top: .32rem;
  color: rgba(219,211,190,.74);
  font-size: .9rem;
}

.exchange-snapshot-card__divider{
  height: 1px;
  margin: .95rem 0 1rem;
  background: linear-gradient(90deg, rgba(219,211,190,.18), rgba(219,211,190,.03));
}

.exchange-snapshot-card__content{
  position: relative;
}

.exchange-snapshot-mascot{
  flex: 0 0 auto;
}

.exchange-snapshot-mascot__img{
  display:block;
  width: min(210px, 26vw);
  height: auto;
  max-width: 210px;
  object-fit: contain;
  filter: drop-shadow(0 16px 34px rgba(0,0,0,.28));
}

.exchange-snapshot-chip{
  border: 1px solid rgba(219,211,190,.14);
  background: rgba(244,233,205,.08);
  color: rgba(242,238,223,.9);
  border-radius: 999px;
  padding: .35rem .7rem;
  font-size: .8rem;
}

.exchange-snapshot-list{
  display:grid;
  gap: .72rem;
}

.exchange-snapshot-table{
  width: 100%;
  margin: 0;
  color: var(--df-accent);
  border-collapse: separate;
  border-spacing: 0 .56rem;
}

.exchange-snapshot-table tbody td{
  border: 0;
  padding: .78rem .7rem;
  background: var(--df-bg);
  vertical-align: middle;
}

.exchange-snapshot-table tbody tr td:first-child{
  border-radius: 18px 0 0 18px;
}

.exchange-snapshot-table tbody tr td:last-child{
  border-radius: 0 18px 18px 0;
}

.exchange-snapshot-table__col-rank,
.exchange-snapshot-table__col-pos-rank,
.exchange-snapshot-table__col-value{
  white-space: nowrap;
}

.exchange-snapshot-table__col-rank{
  width: auto;
}

.exchange-snapshot-table__col-asset{
  width: auto;
}

.exchange-snapshot-table__col-pos-rank{
  width: auto;
}

.exchange-snapshot-table__col-value{
  width: auto;
}

.exchange-snapshot-table__rank-pill,
.exchange-snapshot-table__meta-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  min-width: 76px;
  padding: .35rem .85rem;
  border-radius: 14px;
  font-weight: 700;
}

.exchange-snapshot-table__rank-pill{
  background: var(--df-surface);
  border: 1px solid rgba(219,211,190,.12);
  color: var(--df-accent-contrast);
}

.exchange-snapshot-table__meta-pill{
  background: rgba(244,233,205,.08);
  border: 1px solid rgba(219,211,190,.12);
  color: var(--df-accent);
}

.exchange-snapshot-table__value{
  font-size: 1rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.exchange-snapshot-item{
  display:grid;
  grid-template-columns: 84px minmax(0, 1fr);
  align-items:center;
  gap: .95rem;
  padding: .9rem 1rem;
  border-radius: 22px;
  border: 1px solid rgba(219,211,190,.12);
  background:
    linear-gradient(135deg, rgba(244,233,205,.11), rgba(244,233,205,.04)),
    rgba(12,31,18,.72);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}

.exchange-snapshot-item__rank{
  display:flex;
  align-items:center;
  justify-content:center;
  width: 84px;
  min-height: 70px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(245,211,109,.24), rgba(190,163,84,.12));
  border: 1px solid rgba(245,211,109,.28);
  color: #f5d36d;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -.03em;
}

.exchange-snapshot-item__body{
  min-width: 0;
}

.exchange-snapshot-item__name{
  color: var(--df-surface-alt);
  font-weight: 700;
  font-size: 1.08rem;
  line-height: 1.12;
}

.exchange-snapshot-item__meta{
  display:flex;
  flex-wrap:wrap;
  gap: .45rem;
  margin-top: .42rem;
}

.exchange-snapshot-item__team,
.exchange-snapshot-item__pos{
  display:inline-flex;
  align-items:center;
  min-height: 30px;
  border-radius: 999px;
  padding: .2rem .7rem;
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.exchange-snapshot-item__team{
  background: rgba(244,233,205,.08);
  color: rgba(242,238,223,.85);
  border: 1px solid rgba(219,211,190,.12);
}

.exchange-snapshot-item__pos{
  background: var(--df-surface);
  color: var(--df-bg);
  border: 1px solid rgba(245,211,109,.24);
}

.exchange-snapshot-item--board{
  grid-template-columns: 68px minmax(0, 1fr);
  align-items: stretch;
  gap: .8rem;
  padding: .82rem;
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(21,51,31,.96), rgba(9,24,13,.94)),
    rgba(12,31,18,.9);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}

.exchange-snapshot-item__rank--board{
  width: 68px;
  min-height: 74px;
  border-radius: 16px;
  background: var(--df-surface);
  border: 1px solid rgba(219,211,190,.12);
  color: var(--df-accent-contrast);
  font-size: 1.15rem;
  letter-spacing: 0;
}

.exchange-snapshot-item--board .exchange-snapshot-item__body{
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.exchange-snapshot-item__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: .9rem;
  min-width: 0;
}

.exchange-snapshot-item__main{
  display: flex;
  align-items: center;
  gap: .75rem;
  flex: 1 1 auto;
  min-width: 0;
}

.exchange-snapshot-item__side{
  flex: 0 0 auto;
  display:flex;
  align-items:center;
}

.exchange-snapshot-item__avatar{
  display: block;
  width: 44px;
  height: 44px;
  /* border-radius: 999px; */
  object-fit: contain;
  flex: 0 0 auto;
  /* border: 1px solid rgba(219,211,190,.18); */
  /* background: var(--df-accent); */
}

.exchange-snapshot-item--board .exchange-snapshot-item__name{
  font-size: 1rem;
  line-height: 1.15;
}

.exchange-snapshot-item--board .exchange-snapshot-item__meta{
  gap: .38rem;
  margin-top: .32rem;
}

.exchange-snapshot-item__asset{
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  border-radius: 999px;
  padding: .2rem .7rem;
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  background: rgba(176,132,245,.16);
  color: #d9c8ff;
  border: 1px solid rgba(176,132,245,.28);
}

.exchange-snapshot-item__pos-rank{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height: 34px;
  min-width: 76px;
  border-radius: 999px;
  padding: .25rem .7rem;
  font-size: .82rem;
  font-weight: 700;
  background: var(--df-surface);
  border: 1px solid rgba(245,211,109,.24);
  color: var(--df-bg);
}

.exchange-snapshot-card__footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 1rem;
  margin-top: 1rem;
  color: rgba(219,211,190,.66);
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.exchange-snapshot-card__footer--top{
  margin-top: 0;
  margin-bottom: .7rem;
}

.trade-tool-form .trade-tool-input:focus{
  background: var(--df-bg);
  color: var(--df-text-dark);
  -webkit-text-fill-color: var(--df-text-dark);
}
.trade-tool-switch{
  display: inline-flex;
  align-items: center;
  gap: .85rem;
  min-height: 2.8rem;
  padding: .55rem .8rem;
  border-radius: 999px;
  background: var(--df-bg);
  border: 1px solid rgba(34,85,34,.22);
  color: var(--df-text-light);
  cursor: pointer;
}

.trade-tool-switch input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.trade-tool-switch__track{
  position: relative;
  width: 2.7rem;
  height: 1.5rem;
  border-radius: 999px;
  background: rgba(80,72,40,.35);
  transition: background-color .18s ease;
  flex: 0 0 auto;
}

.trade-tool-switch__track::after{
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  background: #fffdf6;
  box-shadow: 0 2px 8px rgba(12,18,12,.16);
  transition: transform .18s ease;
}

.trade-tool-switch input:checked + .trade-tool-switch__track{
  background: rgba(34,85,34,.72);
}

.trade-tool-switch input:checked + .trade-tool-switch__track::after{
  transform: translateX(1.2rem);
}

.trade-tool-switch__label{
  font-weight: 600;
  font-size: .95rem;
}

.trade-focus-dropdown{
  margin-top:.25rem;
}

.trade-focus-dropdown[open] .trade-focus-dropdown__summary{
  border-color: rgba(190,163,84,.42);
  box-shadow: 0 0 0 .18rem rgba(190,163,84,.10);
}

.trade-focus-dropdown__summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  min-height:2.9rem;
  padding:.7rem .9rem;
  border-radius:16px;
  background:var(--df-bg);
  color:var(--df-text-light);
  border:1px solid rgba(34,85,34,.22);
  cursor:pointer;
}

.trade-focus-dropdown__summary::-webkit-details-marker{
  display:none;
}

.trade-focus-dropdown__summary::after{
  content:"+";
  flex:0 0 auto;
  font-size:1rem;
  font-weight:700;
  color:rgba(219,211,190,.78);
}

.trade-focus-dropdown[open] .trade-focus-dropdown__summary::after{
  content:"-";
}

.trade-focus-dropdown__panel{
  margin-top:.55rem;
  max-height:20rem;
  overflow:auto;
  padding:.8rem;
  border-radius:18px;
  background:rgba(9,20,11,.42);
  border:1px solid rgba(219,211,190,.12);
}

.trade-focus-dropdown__group + .trade-focus-dropdown__group{
  margin-top:.8rem;
  padding-top:.8rem;
  border-top:1px solid rgba(219,211,190,.08);
}

.trade-focus-dropdown__group-title{
  margin-bottom:.5rem;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(219,211,190,.7);
}

.trade-focus-dropdown__option{
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  padding:.38rem 0;
  color:var(--df-text-light);
  font-size:.9rem;
  line-height:1.3;
  cursor:pointer;
}

.trade-focus-dropdown__option input{
  margin-top:.18rem;
  accent-color: rgb(190,163,84);
}

.trade-asset-picker{
  display:flex;
  flex-direction:column;
  gap:.75rem;
  min-width:0;
}

.trade-asset-picker__search-shell{
  position:relative;
}

.trade-asset-picker__search{
  position:relative;
  z-index:2;
}

.trade-asset-picker__results,
.trade-asset-picker__selected{
  display:flex;
  flex-direction:column;
  gap:.5rem;
}

.trade-asset-picker__result,
.trade-asset-picker__chip{
  width:100%;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:var(--df-bg);
  color:var(--df-surface);
  padding:.8rem .9rem;
  text-align:left;
}

.trade-asset-picker__result{
  cursor:pointer;
  background:var(--df-bg);
  color:var(--df-surface-alt);
  /* transition:border-color .15s ease, background .15s ease, transform .15s ease; */
}

.trade-asset-picker__results{
  position:absolute;
  top:calc(100% + .35rem);
  left:0;
  right:0;
  z-index:30;
  display:none;
  max-height:18rem;
  overflow:auto;
  padding:.45rem;
  border:1px solid var(--df-GoblinGold);
  border-radius:16px;
  background:var(--df-surface);
  color:var(--df-surface-alt);
}

.trade-asset-picker__results.is-open{
  display:flex;
}

.trade-asset-picker__result:hover,
.trade-asset-picker__result:focus{
  border-color:var(--df-GoblinGold);
  background:var(--df-surface-alt);
  color:var(--df-text-light);
  transform:translateY(-1px);
}

.trade-asset-picker__chip{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
}

.trade-asset-picker__chip-copy{
  min-width:0;
}

.trade-asset-picker__remove{
  flex-shrink:0;
}

.trade-asset-picker__empty{
  border:1px dashed rgba(255,255,255,.12);
  border-radius:14px;
  padding:.8rem .9rem;
  color:rgba(244,240,230,.68);
}

.trade-grader-chunk{
  margin-top:.35rem;
  padding:.45rem .65rem;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.1);
}

.trade-grader-chunk.is-good{
  color:#dff5d7;
  background:rgba(52,120,64,.22);
  border-color:rgba(114,190,126,.35);
}

.trade-grader-chunk.is-mid{
  color:#f3e5b6;
  background:rgba(143,108,24,.18);
  border-color:rgba(203,166,74,.35);
}

.trade-grader-chunk.is-bad{
  color:#ffd5d5;
  background:rgba(120,44,44,.22);
  border-color:rgba(190,92,92,.35);
}

.trade-grader-row.is-good td{
  color:#dff5d7 !important;
}

.trade-grader-row.is-mid td{
  color:#f3e5b6 !important;
}

.trade-grader-row.is-bad td{
  color:#ffd5d5 !important;
}

.trade-grader-row__chunk{
  margin-top:.2rem;
  font-size:.74rem;
  font-weight:600;
  opacity:.9;
}

.trade-finder-results-list{
  display:flex;
  flex-direction:column;
  gap:.85rem;
}

.trade-finder-offer-stage{
  display:flex;
  flex-direction:column;
  gap:.85rem;
}

.trade-finder-offer-stage__controls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
}

.trade-finder-offer-stage__position{
  font-weight:600;
}

.trade-finder-variant-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  margin-bottom:.6rem;
  padding:.4rem .6rem;
  border:1px solid rgba(219,211,190,.1);
  border-radius:12px;
  background:rgba(255,255,255,.02);
}

.trade-finder-variant-nav__position{
  font-weight:600;
}

.trade-finder-card__footer-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
}

.trade-finder-card__asset-row--swappable{
  flex-wrap:wrap;
}

.trade-finder-card__asset-pass{
  margin-left:auto;
  padding:.15rem .5rem;
  font-size:.72rem;
  white-space:nowrap;
}

.trade-finder-offer-group__swap-notice{
  margin-top:.5rem;
  padding:.5rem .75rem;
  border:1px dashed rgba(219,211,190,.22);
  border-radius:12px;
  background:rgba(9,20,11,.18);
}

.trade-finder-results-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
  flex-wrap:wrap;
}

.trade-finder-results-head__copy{
  margin-top:.25rem;
  color:rgba(219,211,190,.72);
  font-size:.84rem;
}

.trade-finder-results-controls{
  display:flex;
  align-items:flex-end;
  gap:.75rem;
  flex-wrap:wrap;
}

.trade-finder-results-controls__item{
  min-width:180px;
}

.trade-finder-results-controls__label{
  display:block;
  margin-bottom:.3rem;
  color:rgba(219,211,190,.72);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.trade-finder-results-controls__select{
  min-width:180px;
}

.trade-finder-results-controls__toggle{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:38px;
  padding:.55rem .8rem;
  border:1px solid rgba(219,211,190,.12);
  border-radius:14px;
  background:rgba(255,255,255,.03);
  color:var(--df-text-light);
  font-size:.84rem;
  font-weight:600;
}

.trade-finder-results-controls__toggle input{
  margin:0;
}

.trade-finder-card{
  border:1px solid rgba(219,211,190,.14);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(34,85,54,.92), rgba(18,44,18,.97));
  box-shadow:var(--df-shadow);
  padding:1rem 1.05rem;
  transition:box-shadow .18s ease, outline-color .18s ease;
}

.trade-finder-card__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.9rem;
  margin-bottom:.9rem;
}

.trade-finder-card__title-wrap{
  min-width:0;
}

.trade-finder-card__eyebrow,
.trade-finder-card__stat-label,
.trade-finder-card__panel-count{
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(219,211,190,.68);
}

.trade-finder-card__team{
  font-size:1.05rem;
  font-weight:700;
  color:var(--df-text-light);
  line-height:1.2;
}

.trade-finder-card__header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:.55rem;
}

.trade-finder-card__type{
  white-space:nowrap;
}

.trade-finder-card__summary{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:.65rem;
  margin-bottom:.9rem;
}

.trade-finder-card__impact{
  margin:-.15rem 0 .9rem;
  font-size:.88rem;
  font-weight:600;
}

.trade-finder-card__stat{
  min-width:0;
  padding:.75rem .85rem;
  border:1px solid rgba(219,211,190,.12);
  border-radius:16px;
  background:rgba(9,20,11,.22);
}

/* "Why this matches" -- plain explanatory line, not a badge/pill. */
.trade-finder-card__reason{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:.4rem;
  margin-bottom:.9rem;
  font-size:.85rem;
}

.trade-finder-card__reason-label{
  flex:0 0 auto;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(219,211,190,.68);
}

.trade-finder-card__reason-text{
  color:var(--df-text-light);
}

.trade-finder-card__stat--verdict{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:.45rem;
}

.trade-finder-card__stat-value{
  color:var(--df-text-light);
  font-size:1rem;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}


.trade-finder-card__columns{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:.8rem;
}

.trade-finder-card__panel{
  padding:.9rem;
  border:1px solid rgba(219,211,190,.1);
  border-radius:18px;
  background:rgba(255,255,255,.03);
}

.trade-finder-card__panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.75rem;
}

.trade-finder-card__panel-title{
  color:var(--df-text-light);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.trade-finder-card__asset-list{
  gap:.55rem;
}

.trade-finder-card__asset-row{
  padding:.65rem .75rem;
  border-radius:15px;
  gap:.75rem;
  flex-wrap:wrap;
  transition:background-color .18s ease, box-shadow .18s ease, outline-color .18s ease;
}

.trade-finder-card.trade-finder-restored-focus{
  outline:2px solid rgba(205,236,30,.72);
  outline-offset:3px;
  box-shadow:0 0 0 5px rgba(205,236,30,.16), var(--df-shadow);
}

.trade-finder-card__asset-row.trade-finder-restored-focus{
  outline:2px solid rgba(205,236,30,.72);
  outline-offset:2px;
  background:rgba(205,236,30,.12);
  box-shadow:inset 0 0 0 1px rgba(205,236,30,.22);
}

.trade-finder-card__asset-row > .d-flex{
  flex:1 1 12rem;
}

.trade-finder-status-pill{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:.22rem .58rem;
  border:1px solid rgba(219,211,190,.18);
  border-radius:999px;
  background:rgba(255,255,255,.04);
  color:rgba(219,211,190,.82);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1;
  text-transform:uppercase;
  white-space:nowrap;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, transform .16s ease;
}

.trade-finder-status-pill:hover,
.trade-finder-status-pill:focus-visible{
  border-color:rgba(244,239,226,.42);
  background:rgba(255,255,255,.075);
  transform:translateY(-1px);
}

.trade-finder-status-pill--include{
  border-color:rgba(141,240,176,.24);
  background:rgba(141,240,176,.08);
  color:rgba(141,240,176,.94);
}

.trade-finder-status-pill--lock{
  border-color:rgba(111,178,255,.28);
  background:rgba(111,178,255,.10);
  color:rgba(184,216,255,.96);
}

.trade-finder-status-pill--exclude{
  border-color:rgba(255,125,125,.30);
  background:rgba(255,125,125,.10);
  color:rgba(255,188,188,.96);
}

.trade-finder-card__asset-avatar{
  width:42px;
  height:42px;
  border-radius:12px;
}

.trade-finder-empty{
  padding:1rem 1.05rem;
  border:1px dashed rgba(219,211,190,.22);
  border-radius:18px;
  background:rgba(9,20,11,.18);
}

.trade-finder-empty__title{
  color:var(--df-text-light);
  font-size:1rem;
  font-weight:700;
}

.trade-finder-empty__copy{
  margin-top:.35rem;
  color:rgba(219,211,190,.78);
  line-height:1.5;
}

.trade-tool-advanced{
  background: rgba(9,20,11,.42);
}

@media (max-width: 991px){
  .league-tool-grid.is-compact{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px){
  .legal-section-grid{
    grid-template-columns: 1fr;
  }

  .legal-hero{
    padding: 18px 16px;
    border-radius: 20px;
  }

  .legal-card{
    padding: 16px;
    border-radius: 18px;
  }

  .contact-layout{
    grid-template-columns: 1fr;
  }

  .contact-hero{
    padding: 18px 16px;
    border-radius: 20px;
  }

  .contact-panel{
    padding: 16px;
    border-radius: 18px;
  }

  .site-footer-card{
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding: 12px 0 0;
    gap:12px;
  }

  .site-footer-card__nav{
    flex-direction:column;
    align-items:center;
    gap:8px;
    width:100%;
  }

  .site-footer-card__links{
    justify-content:center;
  }

  .site-footer-card__links--legal{
    padding-left:0;
    padding-top:8px;
    border-left:0;
    border-top: 1px solid rgba(34,85,34,.14);
  }
}

@media (max-width: 767.98px){
  .league-hub-card__identity,
  .team-hub-card__identity{
    align-items:flex-start;
  }

  .league-tool-actions,
  .team-tool-actions{
    justify-content:flex-start;
  }

  .league-tool-action-btn,
  .team-tool-action-btn{
    flex: 1 1 calc(50% - 8px);
    text-align:center;
    white-space:normal;
  }
}

@media (max-width: 991.98px){
  .team-hub-card__main{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575px){
  .league-hub-card,
  .league-tool-strip,
  .team-hub-card,
  .team-tool-strip{
    padding:14px;
    border-radius: 18px;
  }

  .league-hub-card__identity,
  .team-hub-card__identity{
    align-items:flex-start;
    gap:10px;
  }

  .league-hub-card__avatar,
  .team-hub-card__avatar{
    width:54px;
    height:54px;
    flex-basis:54px;
    border-radius: 16px;
  }

  .league-hub-card__title,
  .team-hub-card__title{
    font-size: 1.35rem;
  }

  .league-hub-card__meta-line,
  .team-hub-card__meta-line{
    gap:6px 12px;
    font-size: .88rem;
  }

  .team-hub-card__main{
    grid-template-columns: 1fr;
  }

  .team-hub-card__stats{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap:8px;
  }

  .team-hub-card__stat{
    padding:8px 9px;
    border-radius: 14px;
  }

  .team-hub-card__stat strong{
    font-size: .92rem;
  }

  .team-hub-card__stat-label{
    font-size: .64rem;
    letter-spacing: .06em;
  }

  .league-tool-grid,
  .league-tool-grid.is-compact{
    grid-template-columns: 1fr;
  }

  .league-tool-actions,
  .team-tool-actions{
    gap:8px;
  }

  .league-tool-action-btn,
  .team-tool-action-btn{
    flex:1 1 calc(50% - 8px);
    text-align:center;
    white-space:normal;
  }

  .trade-finder-card{
    padding:12px;
    border-radius:18px;
  }

  .trade-impact-card__hero{
    grid-template-columns:1fr;
  }

  .trade-impact-breakdown__row{
    flex-direction:column;
    align-items:flex-start;
  }

  .trade-impact-breakdown__range{
    justify-content:flex-start;
    text-align:left;
  }

  .trade-finder-results-head{
    align-items:stretch;
  }

  .trade-finder-results-controls{
    width:100%;
  }

  .trade-finder-results-controls__item,
  .trade-finder-results-controls__select{
    width:100%;
  }

  .trade-finder-results-controls__toggle{
    width:100%;
    justify-content:flex-start;
  }

  .trade-finder-card__header{
    flex-direction:column;
    align-items:stretch;
  }

  .trade-finder-card__header-actions{
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
  }

  .trade-finder-card__type{
    align-self:flex-start;
  }

  .trade-finder-card__summary{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .trade-finder-card__columns{
    grid-template-columns:1fr;
  }

  .trade-finder-status-pill{
    margin-left:calc(42px + .75rem);
  }

  .trade-finder-card__header-actions .btn{
    width:100%;
  }

  .trade-focus-dropdown__panel{
    max-height:16rem;
  }

  .cpr-preview-table{
    font-size: .82rem;
  }

  .cpr-preview-table th,
  .cpr-preview-table td{
    padding: .42rem .32rem;
  }

  .standings-table{
    font-size:.88rem;
    table-layout:fixed;
  }

  .standings-table th,
  .standings-table td{
    padding:.5rem .35rem;
    vertical-align:middle;
  }

  .standings-table .pic-column{
    width:42px;
    padding-left:.2rem;
    padding-right:.2rem;
    font-size:0;
  }

  .standings-table .pic-column img,
  .standings-table .img-40{
    width:32px;
    height:32px;
  }

  .standings-table th:nth-child(5),
  .standings-table td:nth-child(5){
    display:none;
  }

  .standings-table td:nth-child(2){
    overflow-wrap:anywhere;
  }

  .cpr-preview-table__col-pos-rank{
    display: none;
  }

  .cpr-preview-table__col-rank{
    width: 3.4rem;
  }

  .cpr-preview-table__col-pos,
  .cpr-preview-table__col-value{
    width: 3.6rem;
  }

  .cpr-preview-table__col-asset .fw-semibold{
    font-size: .84rem;
    line-height: 1.2;
  }

  .league-settings-groups-grid,
  .league-settings-history-grid{
    grid-template-columns: 1fr;
  }

  .league-settings-header__stats,
  .league-settings-highlight-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .league-settings-identity-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .league-settings-list__row,
  .league-settings-flag{
    grid-template-columns: 1fr;
    align-items: start;
  }

  .league-settings-list__row strong,
  .league-settings-flag strong{
    text-align:left;
  }

  .league-settings-table-wrap,
  .admin-users-table-wrap{
    overflow: visible;
    border: 0;
  }

  .league-settings-table,
  .admin-users-table{
    min-width: 0;
  }

  .league-settings-table,
  .league-settings-table tbody,
  .league-settings-table tr,
  .league-settings-table td,
  .admin-users-table,
  .admin-users-table tbody,
  .admin-users-table tr,
  .admin-users-table td{
    display: block;
    width: 100%;
  }

  .league-settings-table thead,
  .admin-users-table thead{
    display: none;
  }

  .league-settings-table tr,
  .admin-users-table tr{
    padding: .72rem;
    border: 1px solid rgba(219,211,190,.1);
    border-radius: 8px;
    background: rgba(255,255,255,.035);
  }

  .league-settings-table tr + tr,
  .admin-users-table tr + tr{
    margin-top: .6rem;
  }

  .league-settings-table td,
  .admin-users-table td{
    display: grid;
    grid-template-columns: minmax(86px, .38fr) minmax(0, 1fr);
    gap: .65rem;
    padding: .45rem 0;
    border-bottom: 1px solid rgba(219,211,190,.07);
    white-space: normal !important;
  }

  .league-settings-table td:last-child,
  .admin-users-table td:last-child{
    border-bottom: 0;
  }

  .league-settings-table td::before,
  .admin-users-table td::before{
    content: attr(data-label);
    color: rgba(244,239,226,.58);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
  }
}


.table-df {
  width: 100%;
  border: none;
  border-collapse: collapse; /* Prevents double borders */
  border-radius: var(--df-radius);
  box-shadow: var(--df-shadow);
  text-align: center;
  tr:hover td {
    background-color: var(--df-surface-alt);
    color: var(--df-text-light);
    
    cursor: pointer;
  } 
  th, td {
  border: none;
  }
  thead{
    border-bottom: 1px solid var(--df-text-light);
  }
}


/* ===========================
   Roster tables (responsive)
   =========================== */
.roster-table-wrap{ width:100%; }
@media (max-width: 768px){
  .roster-table-wrap{ overflow-x:auto; }
}
.roster-block #tableView table,
.roster-block #tableView th,
.roster-block #tableView td{
  font-size: clamp(0.8rem, 2.2vw, 1rem);
}
.player-photo{ width:40px; height:40px; object-fit:cover; }
.sectionLabel{ text-transform:uppercase; }
.roster-player-link{ color:inherit; text-decoration:none; }
.roster-player-link:hover, .roster-player-link:focus{ text-decoration:underline; }

/* rank stuff */
/* Just a hair wider + room for the stepper arrows */
.winput{
  width: 7.5ch;        /* fits values like -999.9 comfortably */
  
  text-align: left;   /* optional: nicer for numbers */
}

/* If you want slightly wider on very small screens */
@media (max-width: 480px){
  .winput{ width: 8ch; }
}

/* Pic column hide on small */
@media (max-width: 768px){
  .pic-column{ display:none; }
}

/* ===========================
   Trade block
   =========================== */
.trade-summary{
  background:var(--df-accent);
  border:1px solid var(--df-border-subtle);
  box-shadow:0 4px 10px var(--df-border-subtle);
}
.trade-card{
  background:var(--df-accent);
  color:#fff;
  border-radius:10px;
  padding:15px;
  margin-bottom:20px;
  border:1px solid #1e1e1e;
  box-shadow:0 4px 8px rgba(255,255,255,0.1);
}
.trade-header{
  font-size:20px; font-weight:700;
  text-align:center;
  padding-bottom:10px;
  border-bottom:2px solid #fff;
}
.trade-content{
  display:flex; gap:16px; align-items:flex-start;
  justify-content:space-between; padding-top:10px;
}
.team-section{ width:45%; text-align:center; }
.vs{ font-size:22px; font-weight:700; align-self:center; }
.trade-list{ list-style:none; padding:0; margin:0; }
.trade-list li{
  background:var(--df-accent-contrast);
  padding:8px 10px; margin:5px 0;
  border-radius:5px; color:#e8ecff;
}

@media (max-width: 768px){
  .trade-content{ flex-direction:column; align-items:stretch; }
  .team-section{ width:100%; }
  .vs{ align-self:center; margin:6px 0; }
}

/* ===========================
   Draft Room (grid + cards)
   =========================== */
.draft-row{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap:16px;
  align-items:stretch;
  margin-bottom:18px;
}

.draft-row > .col-auto{
  width:100%;
}

.pick-card-stack{
  display:flex;
  flex-direction:column;
  gap:12px;
  width:100%;
}

/* Card + flip */
.pick-card{
  position:relative;
  width:100%;
  aspect-ratio:5 / 7;      /* roomy card */
  border-radius:20px;
  perspective:1000px;
  cursor:pointer;
  transform: translateZ(0);
  will-change: transform;
}
.pick-inner{
  position:relative;
  width:100%; height:100%;
  transition:transform .8s;
  transform-style:preserve-3d;
  will-change: transform;
  transform: translateZ(0);
}
.pick-card.flipped .pick-inner{ transform: rotateY(180deg); }

.pick-face{
  position:absolute; inset:0;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  border:1px solid rgba(219,211,190,.14);
  border-radius:20px;
  background: linear-gradient(180deg, rgba(34,85,54,.98), rgba(18,44,18,.98));
  color:var(--df-text-light);
  display:flex; flex-direction:column;
  align-items:center; justify-content:space-evenly;
  padding:14px;
  text-align:center;
  box-shadow: var(--df-shadow);
  transform: translateZ(0);
  -webkit-font-smoothing: antialiased;
}
.pick-front{ transform: rotateY(0deg) translateZ(1px); }
.pick-back{ transform:rotateY(180deg) translateZ(1px); overflow-y:auto; }

.pick-number{
  font-size:clamp(1rem, 1.2vw, 1.1rem);
  font-weight:700;
  color: var(--df-GoblinGold);
}
.player-name{ font-size:clamp(1rem, 1.4vw, 1.15rem); font-weight:700; }
.owner-info, .original-owner, .pick-value, .flip-instruction{
  font-size:clamp(.9rem, 1.1vw, 1rem);
}
.flip-instruction{
  color: var(--df-GoblinGold);
  font-weight:700;
}
.pick-img{
  width:90px; height:90px;
  border-radius:50%;
  object-fit:cover;
  border: 2px solid rgba(219,211,190,.14);
}

.pick-back{
  text-align:left;
}

.pick-back em,
.pick-back strong,
.pick-back li{
  color: var(--df-text-light);
}

.pick-back ul{
  margin:10px 0 0;
  padding-left:18px;
}

.pick-detail-card{
  border:1px solid rgba(219,211,190,.14);
  border-radius:20px;
  background: linear-gradient(180deg, rgba(20,50,33,.98), rgba(10,28,13,.98));
  color:var(--df-text-light);
  box-shadow: var(--df-shadow);
  padding:14px;
}

.pick-detail-section{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.pick-detail-heading{
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--df-GoblinGold);
}

.pick-detail-player-name{
  font-size:1rem;
  font-weight:700;
}

.pick-detail-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  font-size:.9rem;
}

.pick-detail-note,
.pick-detail-empty,
.pick-trade-copy{
  font-size:.88rem;
  color:var(--df-text-light);
}

.pick-detail-empty{
  color:rgba(255,255,255,.78);
}

.pick-detail-divider{
  height:1px;
  margin:12px 0;
  background:rgba(219,211,190,.12);
}

.pick-trade-idea{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.pick-trade-title{
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
}

.pick-trade-copy{
  display:flex;
  flex-direction:column;
  gap:2px;
}

@media (max-width: 420px){
  .draft-row{ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
}

@media (max-width: 768px){
  .pick-card{
    perspective: none;
  }

  .pick-inner{
    transition: none;
    transform-style: flat;
    transform: none !important;
  }

  .pick-face{
    overflow: hidden;
    backface-visibility: visible;
    -webkit-backface-visibility: visible;
    transition: opacity .18s ease;
  }

  .pick-front{
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }

  .pick-back{
    transform: none;
    opacity: 0;
    pointer-events: none;
  }

  .pick-card.flipped .pick-front{
    opacity: 0;
    pointer-events: none;
  }

  .pick-card.flipped .pick-back{
    opacity: 1;
    pointer-events: auto;
  }
}







/* ===========================
   Bracket
   =========================== */

/* ===== Bracket Layout (horizontal scroll on mobile) ===== */
.df-bracket{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: var(--df-col-w);
  gap: var(--df-gap);
  overflow-x: auto;
  padding-bottom: 6px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.df-bracket::-webkit-scrollbar{ height: 10px; }
.df-bracket::-webkit-scrollbar-thumb{
  background: linear-gradient(90deg, var(--df-accent), var(--df-accent-soft));
  border-radius: 999px;
}

.df-round{
  display: flex; flex-direction: column; gap: 12px; scroll-snap-align: start;
}
.df-round__header{
  position: sticky; top: 0; z-index: 2;
  background: linear-gradient(180deg, rgba(11,16,32,.95), rgba(11,16,32,.65));
  backdrop-filter: blur(4px);
  padding: 8px 10px;
  border-radius: calc(var(--df-radius) - 8px);
  border: 1px solid rgba(41,160,255,.25);
  box-shadow: var(--df-shadow);
}
.df-h2{ margin:0; font-size: 14px; letter-spacing:.4px; text-transform: uppercase; color:#dbe7ff; }

/* ===== Match Card ===== */
.df-match{
  background: linear-gradient(180deg, var(--df-accent), var(--df-accent-contrast));
  border: 1px solid var(--df-line);
  border-left: 4px solid var(--df-accent);
  border-radius: var(--df-radius);
  box-shadow: var(--df-shadow);
  overflow: clip;
  cursor: pointer;
}
.df-match + .df-match{ margin-top: 2px; }
.df-match__link{ display:block; color: inherit; text-decoration: none; }
.df-match__link:focus,
.df-match__link:hover{ text-decoration: none; }
.df-match__body{ display: grid; gap: 2px; padding: 8px; }

/* ===== Team Row ===== */
.df-team{
  display: grid;
  grid-template-columns: 36px 1fr auto; /* logo | name | seed/score */
  align-items: center;
  gap: 10px;
  padding: 10px 8px;
  border-radius: 12px;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.04);
}
.df-team--b{ background: rgba(255,255,255,.015); }

/* Bracket logos: show the full image within the circle */
.df-logo{
  width: 36px;             /* or 48px on some pages; keep consistent with your design */
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(41,160,255,.25), rgba(16,21,94,.6));
  border: 1px solid rgba(41,160,255,.35);
  box-shadow: inset 0 0 0 2px rgba(11,16,32,.6);
}

.wth_300{
  width:300px;
  height:auto;
  margin-bottom:10px;
}

.df-logo__img{
  width: 100%;
  height: 100%;
  object-fit: contain;     /* <— key: keep full image visible */
  object-position: center;
  display: block;
  image-rendering: auto;   /* keep it crisp */
  background: transparent; /* optional: no extra fill */
}


/* ===========================
   Matchup Unit (MU) styles
   =========================== */

.mu-wrap{
  padding:20px 12px 28px;
  max-width:1400px;
  
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:16px;
  color: var(--df-text-light);
 
  border-radius: 0; /* keep as a page section */
}

.textTan{
  color: var(--df-bg);
}
.mu-title{
  display:flex; align-items:center; gap:12px; padding:6px 2px;
}
.mu-h1{ margin:0; font-weight:700; letter-spacing:.3px; font-size: clamp(18px, 2.5vw, 24px); }
.mu-subtitle{ color: var(--df-text-muted); font-size: 12px; margin-top: -2px; }

/* Actions strip (reuses your .btn/.btn-df if present) */
.mu-actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.btn-df{
  background:var(--df-accent); color:var(--df-bg); border:1px solid var(--df-line);
  padding:.5rem .9rem; border-radius:8px; font-size:12px; text-decoration:none; display:inline-block;
}
.btn-df:hover, .btn-df:focus{ background: var(--df-accent-contrast); color:var(--df-bg); opacity:.9; transform: translateY(-1px); }

.btn-alt{
  background:var(--df-bg); color:var(--df-text-dark); border:1px solid var(--df-line);
  padding:.5rem .9rem; border-radius:8px; font-size:12px; text-decoration:none; display:inline-block;
}
.btn-alt:hover, .btn-alt:focus{ background: var(--df-text-light); color:var(--df-text-dark); opacity:.9; transform: translateY(-1px); }

.btn-3{
  background:var(--df-GoblinGold); color:var(--df-text-dark); border:1px solid var(--df-line);
  padding:.5rem .9rem; border-radius:8px; font-size:12px; text-decoration:none; display:inline-block;
}
.btn-3:hover, .btn-3:focus{ background: var(--df-GoblinGold--alt); color:var(--df-text-dark); opacity:.9; transform: translateY(-1px); }

/* Match header card */
.mu-match{
  background: linear-gradient(180deg, var(--df-accent-contrast), var(--df-accent));
  border:1px solid var(--df-line);
  border-left:4px solid var(--df-accent);
  border-radius:var(--df-radius);
  box-shadow:var(--df-shadow);
  overflow: clip;
}
.mu-match__body{ display:grid; gap:8px; padding:10px; }

.mu-header{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  gap:10px;
}
@media (max-width: 640px){
  .mu-header{ grid-template-columns: 1fr; gap:8px; }
  .mu-vs{ order:-1; }
}

/* Team block */
.mu-team{
  display:grid;
  grid-template-columns: 48px 1fr auto;
  align-items:center;
  gap:10px;
  padding:10px;
  border-radius:12px;
  background: rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.04);
  min-width:0;
}
.mu-team--b{ background: rgba(255,255,255,.015); }

/* Logo with fallback initials */
.mu-logo{
  width:48px; height:48px; border-radius:50%;
  display:grid; place-items:center; overflow:hidden;
  background: linear-gradient(135deg, rgba(41,160,255,.25), rgba(16,21,94,.6));
  border:1px solid rgba(41,160,255,.35);
  box-shadow: inset 0 0 0 2px rgba(11,16,32,.6);
  font-size:12px; font-weight:700; color:#eaf3ff;
  flex:0 0 48px;
}
.mu-logo__img{ width:100%; height:100%; object-fit:cover; display:block; }
.mu-logo__fallback{ font-size:12px; font-weight:700; color:#eaf3ff; }

/* Text + meta */
.mu-name{ font-size:14px; font-weight:600; line-height:1.2; min-width:0; }
.mu-name span{ display:block; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.mu-muted{ color: var(--df-text-mute); }
.mu-muted-sm{ font-size:12px; }

.mu-meta{ justify-self:end; text-align:right; }
.mu-seed{ font-size:12px; color: var(--df-text-mute); }
.mu-score{ font-size:16px; font-weight:800; color:#fff; }
.mu-num{ font-variant-numeric: tabular-nums; }

.mu-vs{ display:grid; place-items:center; padding:0 8px; font-weight:800; color:#fff; }
.mu-week{ font-size:11px; color:#cfe1ff; opacity:.9; }

/* Lineups table */
.mu-card{
  background: linear-gradient(180deg, var(--df-accent-contrast), var(--df-accent));
  border:1px solid var(--df-line);
  border-radius:var(--df-radius);
  box-shadow:var(--df-shadow);
  overflow:hidden;
}
.mu-table-wrap{ overflow:auto; }

.mu-lineups{ width:100%; border-collapse: collapse; }
.mu-lineups thead th{
  font-size:12px; color:#cfe1ff; text-transform:uppercase; letter-spacing:.3px;
  padding:10px 8px;
  border: 1px solid var(--df-line);
  background: transparent;
}
.mu-lineups td{
  padding:10px 8px;
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
  border-left:1px solid var(--df-line);
  border-right:1px solid var(--df-line);
  color: azure;
  font-size:14px;
  background: transparent;
}
.mu-pos{ font-weight:700; color:#dbe7ff; white-space:nowrap; }
.mu-td-right{ text-align:right; }
.mu-td-left{ text-align:left; }
.mu-center{ text-align:center; }

.mu-lineups tbody tr:nth-child(odd)  { background: var(--mu-row-odd); }
.mu-lineups tbody tr:nth-child(even) { background: var(--mu-row-even); }

@media (max-width: 900px){
  .mu-name{ font-size:13px; }
  .mu-score{ font-size:15px; }
}
.name-2ln{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
/* Sticky table header */
.df-sticky-head th {
  position: sticky;
  top: 0;                 /* if you have a fixed navbar, set this to its height (e.g., 56px) */
  z-index: 3;             /* above body cells */
  background: rgba(28,31,36,.98); /* match your dark theme */
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 1px 0 rgba(255,255,255,.05), 0 6px 10px rgba(0,0,0,.25);
}

/* Optional: sticky first column so names never scroll off horizontally */
.df-sticky-firstcol td:first-child,
.df-sticky-firstcol th:first-child {
  position: sticky;
  left: 0;
  z-index: 2;            /* keep under header (z=3) */
  background: #121417;   /* match your table bg */
  border-right: 1px solid rgba(255,255,255,.05);
}


/* Make the table area the scroll container */
.df-sticky-wrap {
  max-height: 70vh;      /* adjust to taste */
  overflow-y: auto;
  overflow-x: auto;      /* preserves Bootstrap's horizontal scroll */
}

/* Sticky header row */
.df-sticky-head th {
  position: sticky;
  position: -webkit-sticky; /* Safari */
  top: 0;                   /* set to your fixed navbar height if you have one */
  z-index: 3;
  background: rgba(28,31,36,.98);
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 1px 0 rgba(255,255,255,.05), 0 6px 10px rgba(0,0,0,.25);
}

/* Sticky is happier with separate borders */
.table.df-sticky {
  border-collapse: separate;
  border-spacing: 0;
}

/* ---- DynastyFiend: Modern Scrollbar for tables ---- */
.df-scroll {
  /* Tweak theme here */
  --df-scroll-accent: var(--bs-primary, #0d6efd); /* active/drag color */
  --df-scroll-track: #14171c;                     /* track */
  --df-scroll-thumb: #2a2f36;                     /* thumb idle */
  --df-scroll-thumb-hover: #3a404a;               /* thumb hover */

  /* Keeps layout from shifting when the bar appears */
  scrollbar-gutter: stable both-edges;

  /* Firefox */
  scrollbar-width: thin;
  scrollbar-color: var(--df-scroll-thumb) var(--df-scroll-track);
}

/* WebKit (Chrome/Edge/Safari) */
.df-scroll::-webkit-scrollbar {
  width: 11px;            /* vertical */
  height: 11px;           /* horizontal, if present */
}

.df-scroll::-webkit-scrollbar-track {
  background: var(--df-scroll-track);
  border-radius: 999px;
}

.df-scroll::-webkit-scrollbar-thumb {
  background: var(--df-scroll-thumb);
  border: 2px solid var(--df-scroll-track); /* creates the gap ring */
  border-radius: 999px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 -1px 0 rgba(0,0,0,.35);
}

.df-scroll::-webkit-scrollbar-thumb:hover {
  background: var(--df-scroll-thumb-hover);
}

.df-scroll::-webkit-scrollbar-thumb:active {
  background: var(--df-scroll-accent);
  border-color: color-mix(in oklab, var(--df-scroll-accent), transparent 70%);
}

.df-scroll::-webkit-scrollbar-corner {
  background: var(--df-scroll-track);
}

/* Optional: slightly round the clip area at the right edge */
.df-scroll {
  border-right: 1px solid rgba(255,255,255,.05);
  border-bottom: 1px solid rgba(255,255,255,.05);
}
/* Just a hair wider + room for the stepper arrows */
.winput{
  width: 7.5ch;        /* fits values like -999.9 comfortably */
  
  text-align: left;   /* optional: nicer for numbers */
}

/* If you want slightly wider on very small screens */
@media (max-width: 480px){
  .winput{ width: 8ch; }
}

.very-small {
  font-size: 0.75em; /* Or any other specific value like 10px, 0.6rem, etc. */
}

.super-small {
  font-size: 0.5em; /* Or any other specific value like 10px, 0.6rem, etc. */
}

@media (max-width: 767.98px){
  .exchange-snapshot-card{
    padding: 1rem;
    border-radius: 22px;
  }

  .exchange-snapshot-card__header{
    justify-content:flex-start;
    align-items:center;
    gap: .8rem;
    padding-left: .55rem;
    padding-right: .55rem;
  }

  .exchange-snapshot-brand__logo{
    width: 98px;
    max-height: 86px;
  }

  .exchange-snapshot-mascot__img{
    width: min(170px, 44vw);
  }

  .exchange-snapshot-table{
    font-size: .82rem;
    border-spacing: 0 .45rem;
  }

  .exchange-snapshot-table__col-rank{
    width: 66px;
  }

  .exchange-snapshot-table__col-pos-rank{
    width: 72px;
  }

  .exchange-snapshot-table__col-value{
    width: 72px;
  }

  .exchange-snapshot-item__main{
    gap: .6rem;
  }

  .exchange-snapshot-item__row{
    gap: .65rem;
  }

  .exchange-snapshot-item__avatar{
    width: 38px;
    height: 38px;
  }

  .exchange-snapshot-item__name{
    font-size: .98rem;
  }

  .exchange-snapshot-table__rank-pill,
  .exchange-snapshot-table__meta-pill{
    min-width: 58px;
    min-height: 36px;
    padding: .25rem .55rem;
    font-size: .8rem;
  }

  .exchange-snapshot-table__value{
    font-size: .92rem;
  }

  .exchange-snapshot-item__pos-rank{
    min-width: 60px;
    padding: .2rem .55rem;
    font-size: .76rem;
  }

  .exchange-snapshot-card__footer{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   Year in Review — scoped styles (.yr-*)
   ═══════════════════════════════════════════════════════════════════ */

.yr-summary-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid rgba(219,211,190,.14);
  margin-bottom: .85rem;
}

.yr-summary-strip__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .15rem;
  padding: 0 16px;
  flex: 1 1 0;
  min-width: 84px;
}

.yr-summary-strip__item + .yr-summary-strip__item {
  border-left: 1px solid rgba(219,211,190,.16);
}

.yr-summary-strip__value {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--df-text-light);
  line-height: 1.1;
}

.yr-summary-strip__label {
  font-size: .64rem;
  font-weight: 700;
  color: rgba(219,211,190,.68);
  text-transform: uppercase;
  letter-spacing: .05em;
  white-space: nowrap;
}

/* Retained for View/Teams/Widgets/Insight.ejs's "Historical Records" bar,
   which still uses the pre-cleanup .yr-stat* markup. */
.yr-summary-bar {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.yr-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: .5rem 1rem;
  border-radius: 8px;
  background: rgba(219,211,190,.07);
  border: 1px solid rgba(219,211,190,.1);
  min-width: 72px;
  flex: 1 0 72px;
}

.yr-stat__num {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--df-GoblinGold);
  line-height: 1;
}

.yr-stat__label {
  font-size: .62rem;
  color: rgba(219,211,190,.6);
  margin-top: .2rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  white-space: nowrap;
}

.yr-section-header {
  font-size: .62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: rgba(219,211,190,.45);
  padding: .5rem 0 .3rem;
  margin-top: .75rem;
  border-bottom: 1px solid rgba(219,211,190,.1);
}

.yr-section-header:first-child {
  margin-top: 0;
}

.yr-player-row {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .45rem 0;
  border-bottom: 1px solid rgba(219,211,190,.06);
}

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

.yr-player-avatar {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
}

.yr-player-info {
  flex: 1 1 0;
  min-width: 0;
}

.yr-player-name {
  font-size: .82rem;
  font-weight: 600;
  color: var(--df-bg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}

.yr-chips {
  display: flex;
  gap: .25rem;
  flex-wrap: wrap;
  margin-top: .2rem;
}

.yr-pos-chip {
  font-size: .6rem;
  font-weight: 700;
  padding: .12rem .38rem;
  border-radius: 4px;
  letter-spacing: .04em;
  background: rgba(219,211,190,.15);
  color: var(--df-bg);
  line-height: 1.4;
}

.yr-team-chip {
  font-size: .6rem;
  padding: .12rem .32rem;
  border-radius: 4px;
  background: rgba(219,211,190,.07);
  color: rgba(219,211,190,.65);
  line-height: 1.4;
}

.yr-tag {
  font-size: .62rem;
  font-weight: 700;
  padding: .18rem .5rem;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
}

.yr-tag--retained {
  background: rgba(219,211,190,.12);
  color: rgba(219,211,190,.75);
}

.yr-tag--traded {
  background: rgba(57,196,107,.18);
  color: #39c46b;
}

.yr-tag--dropped {
  background: rgba(219,211,190,.08);
  color: rgba(219,211,190,.5);
}

.yr-tag--waiver,
.yr-tag--fa,
.yr-tag--added {
  background: rgba(57,196,107,.14);
  color: #39c46b;
}

.yr-tag--commissioner {
  background: rgba(205,236,30,.15);
  color: var(--df-GoblinGold);
}

.yr-pick-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: .42rem 0;
  border-bottom: 1px solid rgba(219,211,190,.06);
}

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

.yr-pick-label {
  font-size: .8rem;
  color: var(--df-bg);
  min-width: 0;
}

.yr-pick-label strong {
  color: var(--df-GoblinGold);
}

.yr-pick-from {
  font-size: .65rem;
  padding: .15rem .45rem;
  border-radius: 999px;
  background: rgba(219,211,190,.1);
  color: rgba(219,211,190,.65);
  white-space: nowrap;
  flex-shrink: 0;
}

.yr-pick-from--lost {
  background: rgba(219,211,190,.07);
  color: rgba(219,211,190,.45);
  text-decoration: line-through;
}

.yr-empty {
  font-size: .8rem;
  color: rgba(219,211,190,.4);
  padding: .75rem 0;
}

@media (max-width: 575px) {
  .yr-summary-strip {
    padding: 8px 10px;
    gap: 6px 4px;
  }

  .yr-summary-strip__item {
    flex: 1 1 40%;
    min-width: 0;
    padding: 4px 6px;
  }

  .yr-summary-strip__item + .yr-summary-strip__item {
    border-left: none;
  }

  .yr-summary-strip__value {
    font-size: 1.05rem;
  }

  .yr-summary-strip__label {
    font-size: .58rem;
  }
}

@media print{
  body.main_bg{
    background: #ffffff !important;
  }

  .exchange-snapshot-toolbar,
  .exchange-snapshot-controls,
  header,
  footer,
  .navbar{
    display:none !important;
  }

  .exchange-snapshot-stage{
    margin: 0;
  }

  .exchange-snapshot-card{
    width: 100%;
    box-shadow: none;
    border: 1px solid rgba(0,0,0,.08);
  }
}

.discord-walkthroughs-page{
  max-width: 1180px;
}

.discord-walkthroughs-hero,
.discord-feedback-panel{
  border: 1px solid rgba(219,211,190,.08);
  border-radius: 28px;
  padding: 1.75rem;
}

.discord-walkthroughs-hero{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.5rem;
}

.discord-walkthroughs-kicker,
.discord-walkthrough-card__eyebrow,
.discord-feedback-panel__eyebrow{
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(219,211,190,.68);
  margin-bottom: .55rem;
}

.discord-walkthroughs-title,
.discord-feedback-panel__title{
  color: var(--df-text-light);
  margin-bottom: .75rem;
}

.discord-walkthroughs-lead,
.discord-walkthrough-card__intro,
.discord-feedback-panel__list,
.discord-feedback-panel__template{
  color: rgba(255,255,255,.8);
}

.discord-walkthroughs-welcome-list{
  margin: 1rem 0 0;
  padding-left: 1.1rem;
  color: rgba(255,255,255,.84);
}

.discord-walkthroughs-welcome-list li + li{
  margin-top: .45rem;
}

.discord-walkthroughs-hero__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: flex-end;
}

.discord-walkthroughs-bridge{
  border: 1px solid rgba(219,211,190,.08);
  border-radius: 28px;
  padding: 1.4rem 1.75rem;
}

.discord-walkthroughs-bridge__copy{
  margin: 0;
  color: rgba(255,255,255,.82);
  max-width: 58rem;
}

.discord-walkthrough-card{
  border: 1px solid rgba(219,211,190,.08);
  border-radius: 24px;
}

.discord-walkthrough-card__title{
  color: var(--df-text-light);
  margin-bottom: .65rem;
}

.discord-walkthrough-card__steps{
  color: rgba(255,255,255,.86);
  padding-left: 1.1rem;
  margin-bottom: 1rem;
}

.discord-walkthrough-card__steps li + li{
  margin-top: .55rem;
}

.discord-walkthrough-card__note{
  color: rgba(219,211,190,.72);
  font-size: .95rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(219,211,190,.08);
}

.discord-feedback-panel__list{
  margin-bottom: 0;
  padding-left: 1.1rem;
}

.discord-feedback-panel__list li + li{
  margin-top: .45rem;
}

.discord-feedback-panel__template{
  margin: 0;
  white-space: pre-wrap;
  border-radius: 18px;
  border: 1px solid rgba(219,211,190,.08);
  background: rgba(0,0,0,.18);
  padding: 1rem;
}

@media (max-width: 767.98px){
  .discord-walkthroughs-hero,
  .discord-feedback-panel,
  .discord-walkthroughs-bridge{
    padding: 1.2rem;
    border-radius: 22px;
  }

  .discord-walkthroughs-hero{
    flex-direction: column;
  }

  .discord-walkthroughs-hero__actions{
    justify-content: flex-start;
  }
}

.home-page{
  max-width: 1180px;
}

.home-hero,
.home-info-card,
.home-actions-bar,
.home-feature-card{
  border: 1px solid var(219,211,190,.08);

  border-radius: 28px;
}

.home-hero,
.home-actions-bar{
  padding: 1.75rem;
}

.home-hero{
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(280px, .9fr);
  gap: 1.5rem;
  align-items: stretch;
}

.home-kicker,
.home-panel__eyebrow,
.home-feature-card__eyebrow{
  display: inline-block;
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(219,211,190,.68);
  margin-bottom: .6rem;
}

.home-title,
.home-panel__title,
.home-section__title,
.home-actions-bar__title,
.home-feature-card__title{
  color: var(--df-text-light);
}

.home-title{
  max-width: 12ch;
  margin-bottom: .9rem;
  font-size: clamp(2.5rem, 4.6vw, 4.4rem);
  line-height: .98;
}

.home-lead,
.home-section__copy,
.home-feature-card__copy,
.home-quick-list,
.home-access-list{
  color: rgba(255,255,255,.82);
}

.home-lead{
  max-width: 42rem;
  font-size: 1.08rem;
  line-height: 1.7;
}

.home-hero__actions,
.home-inline-actions,
.home-actions-bar__buttons,
.home-pill-row{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.home-hero__actions{
  margin-top: 1.4rem;
}

.home-pill-row{
  margin-top: 1.35rem;
}

.home-pill{
  display: inline-flex;
  align-items: center;
  padding: .5rem .85rem;
  border-radius: 999px;
  background: rgba(219,211,190,.08);
  border: 1px solid rgba(219,211,190,.12);
  color: var(--df-text-light);
  font-size: .92rem;
}

.home-hero__panel,
.home-info-card{
  background: var(--df-surface-alt);
}

.home-hero__panel{
  border-radius: 24px;
  border: 1px solid rgba(219,211,190,.08);
  padding: 1.25rem;
}

.home-panel__title{
  margin-bottom: 1rem;
}

.home-quick-list{
  margin: 0;
  padding-left: 1.1rem;
}

.home-quick-list li + li,
.home-access-list li + li{
  margin-top: .8rem;
}

.home-section{
  margin-top: 2rem;
}

.home-section__heading{
  max-width: 48rem;
  margin: 0 auto 1.5rem;
}

.home-section__title{
  margin-bottom: .75rem;
}

.home-section__copy{
  margin-bottom: 0;
}

.home-feature-card{
  display: flex;
  flex-direction: column;
  overflow: hidden;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.home-feature-card:hover,
.home-feature-card:focus{
  transform: translateY(-4px);
  box-shadow: 0 18px 34px rgba(15,42,26,.22);
  border-color: rgba(205,236,30,.3);
}

.home-feature-card__media{
  padding: 1.1rem 1.1rem 0;
}

.home-feature-card__image{
  width: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  border-radius: 18px;
  border: 1px solid rgba(219,211,190,.08);
  background: rgba(0,0,0,.2);
}

.home-feature-card__image2{
  width: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  border-radius: 18px;
  border: 1px solid rgba(219,211,190,.08);
  background: rgba(0,0,0,.2);
}

.home-feature-card__body{
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 1.2rem;
}

.home-feature-card__title{
  margin-bottom: .7rem;
}

.home-feature-card__copy{
  margin-bottom: 1rem;
  line-height: 1.65;
}

.home-feature-card__cta{
  margin-top: auto;
  color: var(--df-GoblinGold);
  font-weight: 600;
}

.home-info-card{
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
}

.home-journey-grid{
  display: grid;
  gap: 1rem;
}

.home-journey-step{
  display: grid;
  
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(219,211,190,.08);
}

.home-journey-step:first-child{
  border-top: 0;
  padding-top: 0;
}

.home-journey-step__number{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: var(--df-surface-alt);
  border: 1px solid rgba(205,236,30,.18);
  color: var(--df-bg);
  font-weight: 700;
  letter-spacing: .08em;
}

.home-journey-step h3{
  color: var(--df-text-light);
  margin-bottom: .35rem;
  font-size: 1.08rem;
}

.home-journey-step p{
  margin: 0;
  color: rgba(255,255,255,.8);
}

.home-access-list{
  padding-left: 1.1rem;
  margin-bottom: 1.25rem;
}

.home-inline-actions{
  margin-top: auto;
}

.home-actions-bar{
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}

@media (max-width: 991.98px){
  .home-hero{
    grid-template-columns: 1fr;
  }

  .home-title{
    max-width: none;
  }
}

@media (max-width: 767.98px){
  .home-hero,
  .home-info-card,
  .home-actions-bar,
  .home-feature-card{
    border-radius: 22px;
  }

  .home-hero,
  .home-actions-bar,
  .home-info-card{
    padding: 1.2rem;
  }

  .home-actions-bar{
    flex-direction: column;
    align-items: flex-start;
  }

  .home-journey-step{
    grid-template-columns: 1fr;
  }

  .home-journey-step__number{
    width: 48px;
    height: 48px;
  }
}

/* Homepage-specific: compact intro, rankings workspace, depth, import/export,
   and closing "powers" sections. Replaces .home-hero/.home-journey-grid/three
   -card markup on `/` only -- Features.ejs keeps using those unchanged. */

.home-intro{
  max-width: 800px;
  margin: 2.25rem auto 2rem;
  padding: 0 .25rem;
}

.home-intro .home-kicker{
  color: var(--df-text-muted);
}

.home-intro__title{
  color: var(--df-text-dark);
  margin: .6rem 0 .9rem;
  font-size: clamp(1.9rem, 3.2vw, 2.6rem);
  line-height: 1.05;
}

.home-intro__lead{
  max-width: 42rem;
  font-size: 1.05rem;
  line-height: 1.65;
  color: rgba(24,24,27,.78);
}

.home-intro__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.1rem;
}

.home-workspace__grid{
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, .95fr);
  gap: 1.75rem;
  align-items: center;
  padding: 1.75rem;
  border-radius: 28px;
  border: 1px solid rgba(219,211,190,.08);
}

.home-workspace__title{
  color: var(--df-text-light);
  margin-bottom: .75rem;
}

.home-workspace__copy{
  color: rgba(255,255,255,.82);
  line-height: 1.65;
  margin-bottom: 1.1rem;
}

.home-workspace__list{
  margin: 0 0 1.1rem;
  padding: 0;
  list-style: none;
}

.home-workspace__list li{
  position: relative;
  padding-left: 1.6rem;
  color: rgba(255,255,255,.88);
  line-height: 1.6;
}

.home-workspace__list li + li{
  margin-top: .5rem;
}

.home-workspace__list li::before{
  content: '\2713';
  position: absolute;
  left: 0;
  color: var(--df-GoblinGold);
  font-weight: 700;
}

.home-workspace__note{
  margin: 0;
  padding-top: 1rem;
  border-top: 1px solid rgba(219,211,190,.1);
  color: rgba(255,255,255,.62);
  font-size: .86rem;
  line-height: 1.55;
}

.home-workspace__media{
  display: flex;
}

.home-workspace__shot{
  width: 100%;
  border-radius: 18px;
  border: 1px solid rgba(219,211,190,.08);
  background: rgba(0,0,0,.2);
}

/* Shared "family resemblance" wrapper for the depth, import/export, and
   powers sections: same centered/controlled-width, left-aligned-text
   treatment as .home-intro, sitting directly on the cream page background
   (not the dark .home-workspace panel) -- so anything reused inside it that
   was tuned for a dark alt_bg surface (.home-kicker, .home-section__title,
   .home-section__copy, .home-pill) needs a scoped dark-text override here,
   same fix as .home-intro's own colors. */
.home-copy-block{
  max-width: 800px;
  margin: 0 auto;
  text-align: left;
}

.home-copy-block .home-kicker{
  color: var(--df-text-muted);
}

.home-copy-block .home-section__title{
  color: var(--df-text-dark);
}

.home-copy-block .home-section__copy{
  color: rgba(24,24,27,.78);
}

.home-copy-block .home-pill-row{
  justify-content: flex-start;
}

.home-copy-block .home-pill{
  color: var(--df-text-dark);
  border-color: rgba(24,24,27,.15);
}

/* Restrained category accents for the depth section's pills -- border/
   background tint only, text stays var(--df-text-dark) via the rule above
   so every pill keeps accessible contrast on the cream background
   regardless of category. Dynasty/Redraft intentionally use no modifier
   (neutral, the plain .home-pill tint above). */
.home-pill--idp{
  background: var(--df-accent-soft);
  border-color: rgba(34,85,54,.35);
}

.home-pill--rookie{
  background: rgba(131,151,19,.14);
  border-color: rgba(131,151,19,.4);
}

/* About page: centered, responsive hero image above the intro heading. */
.about-hero-img{
  display: block;
  width: 100%;
  max-width: 220px;
  height: auto;
  margin: 0 auto 1.25rem;
}

.home-pill--sleeper{
  background: rgba(109,111,128,.14);
  border-color: rgba(109,111,128,.35);
}

/* Vertical 3-step process for the import/export section -- replaces the
   old horizontal pill/chip flow. Plain stacked list with a divider line
   and a small numbered badge per step; deliberately not styled as cards. */
.home-steps{
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
}

.home-steps__item{
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: .9rem;
  padding: .85rem 0;
  border-top: 1px solid rgba(24,24,27,.1);
}

.home-steps__item:first-child{
  border-top: 0;
  padding-top: 0;
}

.home-steps__number{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(24,24,27,.2);
  color: var(--df-text-dark);
  font-weight: 700;
  font-size: .9rem;
}

.home-steps__title{
  color: var(--df-text-dark);
  margin-bottom: .2rem;
  font-size: 1rem;
}

.home-steps__copy{
  margin: 0;
  color: rgba(24,24,27,.72);
  line-height: 1.55;
}

.home-import__actions{
  display: flex;
  margin-top: 1.5rem;
}

.home-powers .home-actions-bar{
  margin-top: 1.5rem;
}

/* Features page: spacing between the stacked rankings-in-depth "beats"
   (dynasty/redraft, values/tiers, notes/tags, import/export), and a
   generic CTA-row flex utility reused across Features' non-intro sections
   (the intro section itself keeps using .home-intro__actions). */
.home-features-beat{
  margin-top: 1.75rem;
}

.home-cta-row{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.1rem;
}

@media (max-width: 991.98px){
  .home-workspace__grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767.98px){
  .home-workspace__grid{
    padding: 1.2rem;
    border-radius: 22px;
  }
}

.rankings-shell {
  display: block;
}

.rankings-shell .panel {
  background: var(--df-surface-alt);
  border: 1px solid rgba(219, 211, 190, 0.14);
  border-radius: 18px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.28);
  padding: 1.25rem;
}

.rankings-shell .panel-title {
  border-bottom: 1px solid rgba(219, 211, 190, 0.12);
  padding-bottom: 1rem;
}

.rankings-free-session-callout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid rgba(141, 240, 176, 0.24);
  border-radius: 8px;
  background: rgba(12, 20, 22, 0.88);
  padding: 0.9rem 1rem;
}

.rankings-free-session-callout__body {
  min-width: 0;
}

.rankings-free-session-callout__title {
  color: #f4efe2;
  font-size: 0.98rem;
  font-weight: 800;
}

.rankings-free-session-callout__copy,
.rankings-free-session-callout__hidden {
  color: rgba(244, 239, 226, 0.78);
  font-size: 0.9rem;
  line-height: 1.45;
  margin-top: 0.18rem;
}

.rankings-free-session-callout__hidden {
  color: #ffe1a6;
}

.rankings-free-session-callout__limits {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.65rem;
}

.rankings-free-session-callout__limits span {
  border: 1px solid rgba(219, 211, 190, 0.14);
  border-radius: 999px;
  color: rgba(244, 239, 226, 0.84);
  font-size: 0.78rem;
  line-height: 1.2;
  padding: 0.28rem 0.55rem;
}

.rankings-free-session-callout__limits strong {
  color: #8df0b0;
}

.rankings-free-session-callout__cta {
  flex: 0 0 auto;
  border: 1px solid rgba(141, 240, 176, 0.46);
  border-radius: 999px;
  color: #07120d;
  background: #8df0b0;
  font-size: 0.88rem;
  font-weight: 800;
  line-height: 1;
  padding: 0.58rem 0.85rem;
  text-decoration: none;
}

.rankings-free-session-callout__cta:hover,
.rankings-free-session-callout__cta:focus-visible {
  color: #07120d;
  background: #b7f8ca;
  text-decoration: none;
}

/* ===========================
   Early Access campaign panel
   Shared promo styling for the temporary Early Access campaign
   (homepage, signup, subscription settings). Dark charcoal/green
   background with a restrained neon-green accent border and a soft
   glow, instead of Bootstrap's default alert-info blue.
   =========================== */
.campaign-panel {
  background: linear-gradient(180deg, rgba(15, 27, 20, 0.96), rgba(9, 18, 13, 0.96));
  border: 1px solid rgba(205, 236, 30, 0.5);
  border-radius: var(--df-radius);
  box-shadow: 0 0 0 1px rgba(205, 236, 30, 0.08), 0 8px 20px rgba(0, 0, 0, 0.3);
  color: var(--df-text-light);
  padding: 1rem 1.25rem;
}

.campaign-panel__title {
  color: var(--df-GoblinGold);
  font-size: 0.98rem;
  font-weight: 800;
  margin-bottom: 0.2rem;
}

.campaign-panel__body {
  color: rgba(219, 211, 190, 0.92);
  font-size: 0.95rem;
  line-height: 1.5;
}

.campaign-panel__note {
  color: rgba(219, 211, 190, 0.72);
  font-size: 0.85rem;
  line-height: 1.45;
  margin-top: 0.3rem;
}

.campaign-panel .btn {
  margin-top: 0.75rem;
}

@media (max-width: 575px) {
  .campaign-panel {
    padding: 0.85rem 1rem;
  }
}

.rankings-table {
  width: 100%;
  border-collapse: collapse;
  color: #f4efe2;
  table-layout: fixed;
}

.rankings-table thead th {
  color: rgba(244, 239, 226, 0.74);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.85rem 0.75rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.16);
}

.rankings-table tbody td {
  padding: 0.9rem 0.75rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.08);
  vertical-align: middle;
}

.player-row:hover {
  background: rgba(255, 255, 255, 0.03);
}

.rankings-shell .player-row[hidden],
.rankings-shell .player-row.is-filtered-out {
  display: none !important;
}

.player-row__main {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.player-cell__body {
  min-width: 0;
}

a.ranking-player-name-link {
  color: inherit;
  text-decoration: none;
}

a.ranking-player-name-link:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.player-cell__actions {
  margin-top: 0.45rem;
}

.player-notes-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.85rem;
  padding: 0.3rem 0.72rem;
  border-radius: 999px;
  border: 1px solid rgba(219, 211, 190, 0.18);
  background: rgba(255, 255, 255, 0.03);
  color: rgba(244, 239, 226, 0.82);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.player-notes-toggle:hover,
.player-notes-toggle:focus-visible {
  outline: none;
  color: #f4efe2;
  border-color: rgba(141, 240, 176, 0.36);
  background: rgba(141, 240, 176, 0.12);
}

.player-notes-toggle.is-active {
  color: #8df0b0;
  border-color: rgba(141, 240, 176, 0.48);
  background: rgba(141, 240, 176, 0.16);
}

.rank-cell__pill {
  display: inline-flex;
  min-width: 42px;
  justify-content: center;
  padding: 0.35rem 0.5rem;
  border-radius: 999px;
  background: rgba(141, 240, 176, 0.12);
  border: 1px solid rgba(141, 240, 176, 0.18);
  color: inherit;
  font: inherit;
  cursor: pointer;
  transition: background-color 0.18s ease, border-color 0.18s ease;
}

.value-cell__pill {
  display: inline-flex;
  min-width: 58px;
  justify-content: center;
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  background: var(--df-accent);
  border: 1px solid rgba(141, 240, 176, 0.16);
  color: inherit;
  font: inherit;
  cursor: pointer;
  transition: background-color 0.18s ease, border-color 0.18s ease;
}



.value-cell__pill:hover,
.value-cell__pill:focus-visible {
  background: rgba(141, 240, 176, 0.16);
  border-color: rgba(141, 240, 176, 0.3);
  outline: none;
}

.rankings-filter-btn {
  border-radius: 999px;
  border-color: rgba(141, 240, 176, 0.24);
  color: rgba(244, 239, 226, 0.84);
  background: rgba(255, 255, 255, 0.03);
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.rankings-filter-btn:hover,
.rankings-filter-btn:focus-visible {
  border-color: rgba(141, 240, 176, 0.44);
  color: #f4efe2;
  outline: none;
}

.rankings-filter-btn.is-active {
  background: rgba(141, 240, 176, 0.16);
  border-color: rgba(141, 240, 176, 0.48);
  color: #8df0b0;
}

.rankings-filter-btn.is-inactive {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(219, 211, 190, 0.16);
  color: rgba(244, 239, 226, 0.54);
}

.rankings-reset-btn {
  border-radius: 999px;
  border-color: rgba(241, 193, 94, 0.34);
  color: rgba(244, 239, 226, 0.86);
  background: rgba(241, 193, 94, 0.08);
  min-width: 126px;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, opacity 0.18s ease;
}

.rankings-reset-btn:hover,
.rankings-reset-btn:focus-visible {
  border-color: rgba(241, 193, 94, 0.58);
  color: #f4efe2;
  background: rgba(241, 193, 94, 0.14);
  outline: none;
}

.rankings-reset-btn:disabled,
.rankings-reset-btn[aria-disabled="true"] {
  border-color: rgba(219, 211, 190, 0.14);
  color: rgba(244, 239, 226, 0.42);
  background: rgba(255, 255, 255, 0.02);
  cursor: not-allowed;
  opacity: 0.72;
}

.rankings-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.rankings-toolbar__positions {
  align-items: center;
}

.rankings-search {
  min-width: min(240px, 100%);
  flex: 1 1 240px;
}

.rankings-search__input {
  border-radius: 999px;
  border: 1px solid rgba(219, 211, 190, 0.18);
  background: var(--df-bg);
  color: var(--df-accent-contrast);
  padding-inline: 0.95rem;
}

.rankings-search__input::placeholder {
  color: var(--df-accent-contrast);
}

.rankings-search__input:focus {
  background: var(--df-text-light);
  color: var(--df-accent-contrast);
  border-color: rgba(141, 240, 176, 0.34);
  box-shadow: 0 0 0 0.16rem rgba(141, 240, 176, 0.12);
}

.rankings-add-results {
  display: grid;
  gap: 0.7rem;
}

.rankings-add-results__label {
  color: rgba(244, 239, 226, 0.72);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.rankings-add-results__list {
  display: grid;
  gap: 0.6rem;
}

.rankings-add-result {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid rgba(219, 211, 190, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.025);
}

.rankings-add-result__main {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
}

.rankings-add-result__image {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  object-fit: cover;
  flex-shrink: 0;
}

.rankings-add-result__body {
  min-width: 0;
}

.rankings-add-result__name {
  color: #f4efe2;
  font-weight: 700;
  line-height: 1.2;
}

.rankings-add-result__meta {
  margin-top: 0.15rem;
  color: rgba(244, 239, 226, 0.68);
  font-size: 0.86rem;
  line-height: 1.2;
}

.rankings-add-result__button {
  min-width: 72px;
}

.rankings-add-result__button[disabled] {
  opacity: 0.72;
  cursor: wait;
}

.rankings-advanced-filter {
  position: relative;
}

.rankings-advanced-filter__popover {
  position: absolute;
  top: calc(100% + 0.55rem);
  right: 0;
  z-index: 20;
  width: min(320px, 88vw);
  border: 1px solid rgba(219, 211, 190, 0.16);
  border-radius: 16px;
  background: rgba(10, 14, 21, 0.98);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.35);
  padding: 0.9rem;
}

.rankings-advanced-filter__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.8rem;
  color: rgba(244, 239, 226, 0.78);
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.rankings-advanced-filter__clear {
  border: 0;
  background: transparent;
  color: #8df0b0;
  font: inherit;
  padding: 0;
  cursor: pointer;
}

.rankings-advanced-filter__section {
  display: grid;
  gap: 0.55rem;
}

.rankings-advanced-filter__section + .rankings-advanced-filter__section {
  margin-top: 0.95rem;
  padding-top: 0.9rem;
  border-top: 1px solid rgba(219, 211, 190, 0.08);
}

.rankings-advanced-filter__section-title {
  color: rgba(244, 239, 226, 0.7);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.rankings-advanced-filter__options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.rankings-advanced-filter__option {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.42rem 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(219, 211, 190, 0.18);
  background: rgba(255, 255, 255, 0.03);
  color: rgba(244, 239, 226, 0.82);
  font: inherit;
  cursor: pointer;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.rankings-advanced-filter__option:hover,
.rankings-advanced-filter__option:focus-visible,
.rankings-advanced-filter__clear:hover,
.rankings-advanced-filter__clear:focus-visible {
  outline: none;
  color: #f4efe2;
}

.rankings-advanced-filter__option.is-selected {
  background: rgba(141, 240, 176, 0.16);
  border-color: rgba(141, 240, 176, 0.48);
  color: #8df0b0;
}

.rankings-advanced-filter__checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 2.15rem;
  color: rgba(244, 239, 226, 0.86);
  font-size: 0.92rem;
  cursor: pointer;
}

.rankings-advanced-filter__checkbox input {
  width: 1rem;
  height: 1rem;
  accent-color: #8df0b0;
}

.rankings-advanced-filter__field {
  display: grid;
  gap: 0.45rem;
}

.rankings-advanced-filter__select {
  border-radius: 12px;
  border: 1px solid rgba(219, 211, 190, 0.18);
  background: rgba(8, 12, 18, 0.96);
  color: #f4efe2;
}

.rankings-advanced-filter__select:focus {
  border-color: rgba(141, 240, 176, 0.34);
  box-shadow: 0 0 0 0.16rem rgba(141, 240, 176, 0.12);
}

.rankings-filter-copy {
  max-width: 22rem;
}

.rank-cell__pill:hover,
.rank-cell__pill:focus-visible {
  background: rgba(141, 240, 176, 0.18);
  border-color: rgba(141, 240, 176, 0.34);
  outline: none;
}

.rank-cell__input {
  width: 64px;
  max-width: 100%;
  border-radius: 999px;
  border: 1px solid rgba(141, 240, 176, 0.34);
  background: var(--df-text-light);
  color: var(--df-accent);
  text-align: center;
  padding: 0.35rem 0.55rem;
}

.value-cell__input {
  width: 92px;
  max-width: 100%;
  border-radius: 999px;
  border: 1px solid rgba(141, 240, 176, 0.34);
  background:var(--df-text-light);
  color: var(--df-accent);
  font-weight: bolder;
  text-align: right;
  padding: 0.35rem 0.65rem;
}

.rankings-save-status.is-saving {
  color: #f4efe2;
}

.rankings-save-status.is-saved {
  color: #8df0b0;
}

.rankings-save-status.is-error {
  color: #ff8a8a;
}

.player-row.is-expanded {
  background: rgba(255, 255, 255, 0.04);
}

.player-row--just-moved {
  animation: rankingsRowMoveGlow 1.35s ease;
}

.player-row--dragging {
  opacity: 0.52;
}

.rankings-shell.is-ranking-dragging,
body.is-ranking-dragging .rankings-shell,
.rankings-shell.is-ranking-dragging *,
body.is-ranking-dragging .rankings-shell * {
  user-select: none;
  -webkit-user-select: none;
}

/* Green drop-line indicator — explicit above/below classes so the line
   always points at the exact row the dragged item will save next to (see
   computeDropPlacement()/applyDragOverVisual() in rankingsV2.js). */
.player-row--drag-over-before {
  box-shadow: inset 0 2px 0 rgba(141, 240, 176, 0.58);
}
.player-row--drag-over-after {
  box-shadow: inset 0 -2px 0 rgba(141, 240, 176, 0.58);
}

/* Mobile long-press pick/place — selected row + sticky helper bar */

.player-row--pick-moving {
  position: relative;
  z-index: 1;
  background: rgba(141, 240, 176, 0.12);
  box-shadow: inset 0 0 0 2px rgba(141, 240, 176, 0.55);
}

.rankings-mobile-pickbar {
  position: fixed;
  left: 0.75rem;
  right: 0.75rem;
  bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
  z-index: 200;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.65rem 0.65rem 1rem;
  border-radius: 14px;
  background: var(--df-surface-alt);
  border: 1px solid rgba(141, 240, 176, 0.4);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.rankings-mobile-pickbar__text {
  flex: 1 1 auto;
  min-width: 0;
  color: #f4efe2;
  font-size: 0.9rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rankings-mobile-pickbar__cancel {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(244, 239, 226, 0.25);
  background: rgba(255, 255, 255, 0.06);
  color: #f4efe2;
  font-size: 1rem;
  line-height: 1;
}

.rankings-mobile-pickbar__cancel:active {
  background: rgba(255, 255, 255, 0.14);
}

@media (min-width: 768px) {
  /* Helper bar is only ever shown via JS in response to a touch long-press,
     but keep it out of the layout on desktop/wide viewports defensively. */
  .rankings-mobile-pickbar {
    display: none !important;
  }
}

.rankings-onboarding-guide {
  border: 1px solid rgba(141, 240, 176, 0.18);
  border-radius: 8px;
  background: rgba(141, 240, 176, 0.055);
  padding: 1rem;
}

.rankings-onboarding-guide__title {
  color: #8df0b0;
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 0.65rem;
}

.rankings-onboarding-guide__list {
  display: grid;
  gap: 0.4rem;
  color: rgba(244, 239, 226, 0.84);
  font-size: 0.88rem;
  margin: 0;
  padding-left: 1.2rem;
}

.rankings-onboarding-guide__notes {
  display: grid;
  gap: 0.35rem;
  margin-top: 0.85rem;
  color: rgba(219, 211, 190, 0.72);
  font-size: 0.82rem;
}

.rankings-text-spot-row[hidden] {
  display: none !important;
}

.rankings-text-spot-row td {
  padding: 0.65rem 0.75rem !important;
}

.rankings-text-spot {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  border: 1px dashed rgba(219, 211, 190, 0.22);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.025);
  padding: 0.65rem 0.8rem;
}

.rankings-text-spot__label {
  flex: 0 0 auto;
  color: #8df0b0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.rankings-text-spot__text {
  min-width: 0;
  color: rgba(244, 239, 226, 0.78);
  font-size: 0.86rem;
  overflow-wrap: anywhere;
}

.rankings-tier-separator[hidden] {
  display: none !important;
}

/* Top padding IS the visual gap between groups — large by design */
.rankings-tier-separator .tier-separator__cell {
  padding: 2.25rem 0 0 0 !important;
}

/* First separator in the board has no group above it — skip the large gap */
tbody .rankings-tier-separator:first-child .tier-separator__cell {
  padding-top: 0.25rem !important;
}

.tier-separator {
  display: flex;
  align-items: center;
  padding: 0.35rem 0.75rem 0.6rem;
  /* Single top line is the divider — no box, no background */
  border-top: 1px solid rgba(141, 240, 176, 0.22);
}

.tier-separator__label {
  flex: 1 1 auto;
  color: rgba(141, 240, 176, 0.6);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.tier-separator__controls {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.15s;
}

.tier-separator:hover .tier-separator__controls,
.tier-separator:focus-within .tier-separator__controls {
  opacity: 1;
}

.tier-separator__edit-btn,
.tier-separator__delete-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.1rem 0.3rem;
  font-size: 0.68rem;
  border-radius: 3px;
  line-height: 1.4;
  transition: background 0.1s;
}

.tier-separator__edit-btn {
  color: rgba(141, 240, 176, 0.7);
}

.tier-separator__edit-btn:hover {
  background: rgba(141, 240, 176, 0.12);
  color: rgba(141, 240, 176, 1);
}

.tier-separator__delete-btn {
  color: rgba(255, 120, 120, 0.6);
}

.tier-separator__delete-btn:hover {
  background: rgba(255, 100, 100, 0.12);
  color: rgba(255, 120, 120, 1);
}

.tier-separator__label-input {
  flex: 1 1 auto;
  background: rgba(141, 240, 176, 0.07);
  border: 1px solid rgba(141, 240, 176, 0.3);
  border-radius: 3px;
  color: rgba(141, 240, 176, 0.9);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: 0.1rem 0.4rem;
  outline: none;
  min-width: 0;
}

.tier-separator__label-input:focus {
  border-color: rgba(141, 240, 176, 0.6);
  background: rgba(141, 240, 176, 0.1);
}

.add-tier-btn {
  background: none;
  border: 1px solid rgba(141, 240, 176, 0.25);
  border-radius: 3px;
  color: rgba(141, 240, 176, 0.55);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 0.1rem 0.35rem;
  cursor: pointer;
  line-height: 1.4;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}

.add-tier-btn:hover {
  border-color: rgba(141, 240, 176, 0.5);
  color: rgba(141, 240, 176, 0.9);
  background: rgba(141, 240, 176, 0.07);
}

.add-tier-btn[disabled],
.tier-separator__move-up-btn[disabled],
.tier-separator__move-down-btn[disabled],
.tier-separator__delete-btn[disabled] {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}

/* Move up/down -- mobile-friendly equivalent to dragging a separator (see
   public/js/rankingsV2.js's tier-separator handlers). Styled the same as
   .tier-separator__edit-btn since they're the same category of small icon
   action button; kept separate classes since they map to distinct actions. */
.tier-separator__move-up-btn,
.tier-separator__move-down-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.1rem 0.3rem;
  font-size: 0.68rem;
  border-radius: 3px;
  line-height: 1.4;
  transition: background 0.1s;
  color: rgba(141, 240, 176, 0.7);
}

.tier-separator__move-up-btn:hover,
.tier-separator__move-down-btn:hover {
  background: rgba(141, 240, 176, 0.12);
  color: rgba(141, 240, 176, 1);
}

.rank-cell {
  width: 76px;
  text-align: center;
  font-weight: 700;
  color: #8df0b0;
}

.player-cell {
  width: 42%;
}

/* .info-cell {
  width: 28%;
} */

.value-cell {
  width: 120px;
  text-align: right;
  font-weight: 700;
  color: #8df0b0;
}

.player-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  color: rgba(244, 239, 226, 0.72);
  font-size: 0.76rem;
  line-height: 1.2;
  min-width: 0;
}

.player-info span {
  display: inline-flex;
  align-items: center;
}

.player-info .position-chip {
  min-height: 1.45rem;
  padding: 0.16rem 0.48rem;
  font-size: 0.7rem;
  letter-spacing: 0.03em;
}

.player-info__pill {
  justify-content: center;
  min-height: 1.45rem;
  max-width: 100%;
  padding: 0.16rem 0.5rem;
  border: 1px solid rgba(219, 211, 190, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.035);
  color: rgba(244, 239, 226, 0.78);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.player-info__pill--overall {
  border-color: rgba(141, 240, 176, 0.2);
  background: rgba(141, 240, 176, 0.08);
  color: rgba(200, 250, 218, 0.9);
}

.player-info__pill--position-rank {
  border-color: rgba(219, 211, 190, 0.2);
  color: rgba(244, 239, 226, 0.88);
}

.player-info__pill--team {
  border-color: rgba(115, 185, 255, 0.18);
  background: rgba(115, 185, 255, 0.055);
  color: rgba(210, 231, 255, 0.86);
}

.player-info__pill--age,
.player-info__pill--status {
  color: rgba(244, 239, 226, 0.72);
}

.player-row:hover .player-info__pill {
  border-color: rgba(219, 211, 190, 0.24);
  background: rgba(255, 255, 255, 0.05);
}

.player-info--mobile {
  display: none;
  margin-top: 0.25rem;
}

.rankings-row-drag-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  margin-left: auto;
  padding: 0.2rem 0.4rem;
  border-radius: 8px;
  color: rgba(244, 239, 226, 0.5);
  font-size: 0.95rem;
  line-height: 1;
  cursor: grab;
  flex-shrink: 0;
}

.player-detail-row[hidden] {
  display: none !important;
}

.player-detail-row__cell {
  padding-top: 0 !important;
  border-bottom: 1px solid rgba(219, 211, 190, 0.08);
}

.player-detail-card {
  margin: 0.15rem 0 1rem;
  border: 1px solid rgba(219, 211, 190, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.02);
  padding: 1rem;
  animation: rankingsDetailIn 0.18s ease;
}

.player-detail-card__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(220px, 1fr);
  gap: 1rem;
}

.player-detail-card__notes {
  display: grid;
  gap: 0.85rem;
}

.player-detail-card__field {
  display: grid;
  gap: 0.4rem;
}

.player-detail-card__field span,
.player-detail-card__field-label {
  color: var(--df-text-light);
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.player-detail-card__field textarea {
  width: 100%;
  min-height: 88px;
  border-radius: 14px;
  border: 1px solid rgba(219, 211, 190, 0.16);
  background: var(--df-text-light);
  color: var(--df-accent-contrast);
  padding: 0.8rem 0.9rem;
  resize: vertical;
}

.player-detail-card__field textarea:focus {
  outline: none;
  border-color: rgba(141, 240, 176, 0.42);
}

.player-detail-card__field textarea:disabled,
.player-tag-pill:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.player-detail-card__locked-hint {
  grid-column: 1 / -1;
  font-size: 0.82rem;
  color: var(--df-text-light);
  opacity: 0.75;
  margin-bottom: 0.2rem;
}

/* Bullet-list notes — Overview tab (player page only) */
.pn-bullet-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.pn-bullet {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
}

.pn-bullet::before {
  content: '•';
  color: rgba(219, 211, 190, 0.4);
  flex-shrink: 0;
  font-size: 0.85rem;
}

.pn-bullet__text {
  flex: 1;
  font-size: 0.85rem;
  color: rgba(219, 211, 190, 0.88);
  line-height: 1.5;
  min-width: 0;
  word-break: break-word;
  border-radius: 4px;
  padding: 1px 3px;
  cursor: text;
}

.pn-bullet__text:focus {
  outline: 1px solid rgba(141, 240, 176, 0.42);
  outline-offset: 1px;
}

.pn-bullet__del {
  background: none;
  border: none;
  color: rgba(219, 211, 190, 0.2);
  padding: 0 2px;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  flex-shrink: 0;
  transition: color 0.15s;
}

.pn-bullet:hover .pn-bullet__del,
.pn-bullet__del:focus-visible {
  color: rgba(219, 211, 190, 0.55);
}

.fgpp-subnav-item.pn-add {
  font-size: 0.75rem;
  padding: 0.18rem 0.55rem;
  opacity: 0.6;
}

.fgpp-subnav-item.pn-add:hover {
  opacity: 1;
}

.pn-empty {
  margin: 0.15rem 0 0;
}

.player-detail-card__tags {
  display: grid;
  gap: 0.75rem;
  align-content: start;
}

.player-detail-card__tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.player-remove-btn {
  justify-self: start;
  min-height: 2rem;
  padding: 0.38rem 0.8rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 112, 112, 0.32);
  background: rgba(120, 19, 19, 0.22);
  color: #ffb7b7;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.player-remove-btn:hover,
.player-remove-btn:focus-visible {
  outline: none;
  color: #ffe1e1;
  background: rgba(156, 28, 28, 0.28);
  border-color: rgba(255, 128, 128, 0.46);
}

.player-remove-btn[disabled] {
  opacity: 0.72;
  cursor: wait;
}

.player-tag-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.42rem 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(219, 211, 190, 0.18);
  background: rgba(255, 255, 255, 0.03);
  color: rgba(244, 239, 226, 0.82);
  font: inherit;
  cursor: pointer;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.player-tag-pill:hover,
.player-tag-pill:focus-visible {
  outline: none;
  border-color: rgba(141, 240, 176, 0.34);
  color: #f4efe2;
}

.player-tag-pill.is-selected {
  background: rgba(141, 240, 176, 0.16);
  border-color: rgba(141, 240, 176, 0.48);
  color: #8df0b0;
}

.rankings-empty-state {
  border: 1px dashed rgba(219, 211, 190, 0.22);
  border-radius: 16px;
  padding: 1.25rem;
  background: rgba(255, 255, 255, 0.02);
}

@keyframes rankingsRowMoveGlow {
  0% {
    background: rgba(141, 240, 176, 0.2);
    box-shadow: inset 0 0 0 1px rgba(141, 240, 176, 0.24);
  }

  100% {
    background: transparent;
    box-shadow: inset 0 0 0 1px transparent;
  }
}

@keyframes rankingsDetailIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Recent Changes ─────────────────────────────────────────────────────────── */

.rankings-changes-btn {
  border-radius: 999px;
  border-color: rgba(141, 240, 176, 0.28);
  color: rgba(244, 239, 226, 0.78);
  background: rgba(141, 240, 176, 0.07);
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.rankings-changes-btn:hover,
.rankings-changes-btn:focus-visible {
  border-color: rgba(141, 240, 176, 0.5);
  color: #f4efe2;
  background: rgba(141, 240, 176, 0.13);
  outline: none;
}

.rankings-changes-btn[aria-expanded="true"] {
  border-color: rgba(141, 240, 176, 0.5);
  background: rgba(141, 240, 176, 0.11);
  color: #8df0b0;
}

.recent-changes-panel {
  margin-top: 1rem;
  border: 1px solid rgba(141, 240, 176, 0.18);
  border-radius: 10px;
  background: rgba(141, 240, 176, 0.04);
  overflow: hidden;
  animation: rankingsDetailIn 0.18s ease;
}

.recent-changes-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.85rem;
  border-bottom: 1px solid rgba(141, 240, 176, 0.12);
}

.recent-changes-panel__title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(141, 240, 176, 0.7);
}

.recent-changes-panel__close {
  background: none;
  border: none;
  color: rgba(219, 211, 190, 0.45);
  cursor: pointer;
  font-size: 0.8rem;
  padding: 0.1rem 0.2rem;
  line-height: 1;
  transition: color 0.15s ease;
}

.recent-changes-panel__close:hover {
  color: rgba(219, 211, 190, 0.85);
}

.recent-changes-panel__body {
  padding: 0.25rem 0;
}

.recent-changes-panel__loading,
.recent-changes-panel__empty,
.recent-changes-panel__error {
  padding: 0.65rem 0.85rem;
  font-size: 0.8rem;
  color: rgba(219, 211, 190, 0.5);
}

.recent-changes-panel__error {
  color: rgba(255, 138, 138, 0.85);
}

.recent-changes-panel__list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 320px;
  overflow-y: auto;
}

.recent-change-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.42rem 0.85rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.06);
}

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

.recent-change-row__text {
  font-size: 0.82rem;
  color: rgba(219, 211, 190, 0.88);
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.recent-change-row__time {
  font-size: 0.72rem;
  color: rgba(219, 211, 190, 0.4);
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Tablet — tighten the table so it fits without scroll at ≥768px */
@media (max-width: 991.98px) {
  .league-rankings-table th,
  .league-rankings-table td{
    padding:.6rem .5rem;
  }

  .league-rankings-table thead th{
    white-space:normal;
    font-size:.79rem;
  }

  .league-rankings-table tbody td{
    font-size:.86rem;
  }

  .league-rankings-table td:nth-child(2),
  .league-rankings-table th:nth-child(2){
    min-width:160px;
  }
}

/* Mobile — further compress; Bench/Picks/sub-texts hidden via EJS classes */
@media (max-width: 767.98px) {
  .league-rankings-table th,
  .league-rankings-table td{
    padding:.5rem .38rem;
  }

  .league-rankings-table thead th{
    font-size:.73rem;
  }

  .league-rankings-table tbody td{
    font-size:.8rem;
  }

  .league-rankings-table td:nth-child(2),
  .league-rankings-table th:nth-child(2){
    min-width:130px;
  }

  .rankings-shell .panel {
    padding: 1rem;
  }

  .rankings-free-session-callout {
    align-items: stretch;
    flex-direction: column;
  }

  .rankings-free-session-callout__cta {
    align-self: flex-start;
  }

  .rankings-table,
  .rankings-table tbody,
  .rankings-table tr,
  .rankings-table td {
    display: block;
    width: 100%;
  }

  .rankings-table thead {
    display: none;
  }

  .rankings-table tbody td {
    padding: 0;
    border-bottom: 0;
  }

  .player-row {
    display: grid !important;
    grid-template-columns: 68px minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.9rem 0;
    border-bottom: 1px solid rgba(219, 211, 190, 0.08);
  }

  .player-cell,
  .info-cell,
  .value-cell {
    width: auto;
  }

  .player-cell {
    min-width: 0;
  }

  .player-row__main {
    align-items: flex-start;
  }

  .player-cell__actions {
    margin-top: 0.5rem;
  }

  .info-cell {
    display: none !important;
  }

  .player-info--mobile {
    display: flex;
  }

  .player-info--mobile .player-info__pill--overall,
  .player-info--mobile .player-info__position-chip,
  .player-info--mobile .player-info__pill--age,
  .player-info--mobile .player-info__pill--team {
    display: none;
  }

  /* Mobile uses long-press pick/place instead of a drag handle (it ate row
     width and wrapped player names) — desktop drag still works from
     anywhere on the row, so the handle stays as-is there. */
  .rankings-row-drag-handle {
    display: none;
  }

  .rank-cell {
    text-align: left;
  }

  .rank-cell__pill {
    min-width: 48px;
  }

  .value-cell {
    text-align: right;
    align-self: flex-start;
    min-width: 72px;
  }

  .trade-grader-asset-row{
    align-items:flex-start;
  }

  .trade-grader-asset-value{
    min-width:auto;
  }

  .player-detail-card {
    margin-top: 0.5rem;
    padding: 0.9rem;
  }

  .player-detail-card__grid {
    grid-template-columns: 1fr;
  }

  .rankings-advanced-filter {
    width: 100%;
  }

  .rankings-reset-btn {
    width: 100%;
  }

  .rankings-add-result {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .rankings-add-result__button {
    width: 100%;
  }

  .rankings-advanced-filter__popover {
    left: 0;
    right: auto;
    width: min(320px, 92vw);
  }

  .rankings-filter-copy {
    max-width: none;
  }
}

.draft-progress-card {
  margin-bottom: 1rem;
}

.draft-progress-table-wrap {
  margin-top: 0.75rem;
  overflow-x: auto;
}

.draft-progress-table {
  width: 100%;
  border-collapse: collapse;
}

.draft-progress-table th,
.draft-progress-table td {
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.draft-progress-table th {
  font-size: 0.75rem;
  text-transform: uppercase;
  opacity: 0.7;
}

/* ===========================
   Admin Users
   =========================== */
.admin-users-summary-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
}

.admin-users-summary-card {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  padding: 0.9rem;
}

.admin-users-summary-card__value {
  font-size: 1.55rem;
  line-height: 1.05;
}

.admin-users-summary-card__detail {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 0.82rem;
}

.admin-users-summary-card--success {
  border-color: rgba(141, 240, 176, 0.22);
}

.admin-users-summary-card--warning {
  border-color: rgba(255, 214, 102, 0.3);
}

.admin-users-summary-card--info {
  border-color: rgba(88, 224, 216, 0.24);
}

.admin-users-summary-card--accent {
  border-color: rgba(205, 236, 30, 0.26);
}

.admin-users-panel--filters,
.admin-users-panel--form,
.admin-users-panel--danger {
  padding: 1rem;
}

.admin-users-panel--table {
  padding: 0;
}

.admin-users-panel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1rem 0.85rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.1);
}

.admin-users-panel--form .admin-users-panel__header,
.admin-users-panel--danger .admin-users-panel__header {
  padding: 0 0 0.85rem;
  margin-bottom: 0.95rem;
}

.admin-users-panel__header p {
  margin: 0.25rem 0 0;
  font-size: 0.86rem;
}

.admin-users-filter-form,
.admin-users-form-grid {
  display: grid;
  gap: 0.8rem;
}

.admin-users-filter-form {
  grid-template-columns: minmax(190px, 1.4fr) repeat(5, minmax(105px, 0.75fr)) auto;
  align-items: end;
}

.admin-users-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-users-form-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-users-field {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
}

.admin-users-field > span,
.admin-users-form-section__title {
  color: rgba(244, 239, 226, 0.76);
}

.admin-users-shell .form-control,
.admin-users-shell .form-select {
  min-height: 40px;
  border: 1px solid rgba(219, 211, 190, 0.16);
  border-radius: 8px;
  background-color: rgba(7, 16, 10, 0.72);
  color: #f4efe2;
  font-size: 0.92rem;
}

.admin-users-shell .form-control::placeholder {
  color: rgba(219, 211, 190, 0.44);
}

.admin-users-shell .form-control:focus,
.admin-users-shell .form-select:focus {
  border-color: rgba(141, 240, 176, 0.42);
  box-shadow: 0 0 0 0.16rem rgba(141, 240, 176, 0.12);
}

.admin-users-shell .form-select option {
  background: #122c12;
  color: #f4efe2;
}

.admin-users-filter-form__actions {
  display: flex;
  gap: 0.55rem;
  align-items: center;
  justify-content: flex-end;
}

.admin-users-filter-form__actions .btn,
.admin-users-panel--form .btn,
.admin-users-panel--danger .btn {
  min-height: 40px;
  border-radius: 8px;
  white-space: nowrap;
}

.admin-users-table {
  min-width: 980px;
}

.admin-users-table th,
.admin-users-table td {
  padding: 0.85rem 0.75rem;
  vertical-align: top;
}

.admin-users-user-cell,
.admin-users-stack {
  display: grid;
  gap: 0.25rem;
  min-width: 0;
}

.admin-users-inline-form {
  margin: 0;
}

.admin-users-inline-form--attach {
  display: flex;
  gap: 0.35rem;
  margin-top: 0.4rem;
}

.admin-users-attach-input {
  width: 9rem;
}

.admin-users-user-cell strong,
.admin-users-stack strong {
  font-size: 0.92rem;
  line-height: 1.25;
}

.admin-users-user-cell span,
.admin-users-user-cell code {
  min-width: 0;
  overflow-wrap: anywhere;
  color: rgba(219, 211, 190, 0.68);
  font-size: 0.78rem;
}

.admin-users-user-cell code {
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  padding: 0.08rem 0.35rem;
  border: 1px solid rgba(219, 211, 190, 0.12);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
}

.admin-users-badge {
  justify-content: center;
  min-height: 1.65rem;
  padding: 0.24rem 0.58rem;
  font-size: 0.76rem;
  overflow-wrap: anywhere;
  text-align: center;
}

.admin-users-badge--role-user,
.admin-users-badge--subscription-active,
.admin-users-badge--access-subscription {
  border-color: rgba(141, 240, 176, 0.34);
  background: rgba(141, 240, 176, 0.14);
  color: #8df0b0;
}

.admin-users-badge--plan-monthly,
.admin-users-badge--access-plan {
  border-color: rgba(115, 185, 255, 0.32);
  background: rgba(115, 185, 255, 0.12);
  color: #9fcfff;
}

.admin-users-badge--plan-og,
.admin-users-badge--access-manual {
  border-color: rgba(88, 224, 216, 0.34);
  background: rgba(88, 224, 216, 0.13);
  color: #7ce5de;
}

.admin-users-badge--subscription-past_due,
.admin-users-badge--subscription-canceling {
  border-color: rgba(255, 214, 102, 0.42);
  background: rgba(255, 214, 102, 0.14);
  color: #ffd666;
}

.admin-users-badge--subscription-canceled {
  border-color: rgba(255, 120, 120, 0.34);
  background: rgba(255, 120, 120, 0.12);
  color: #ff9a9a;
}

.admin-users-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.6rem;
  font-size: 0.78rem;
}

.admin-users-links a {
  color: var(--df-GoblinGold);
}

.admin-users-links a:hover,
.admin-users-links a:focus {
  color: var(--df-GoblinGold--alt);
}

.admin-users-actions-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: 1rem;
  align-items: start;
}

.admin-users-actions-grid .admin-users-panel--danger {
  grid-column: 2;
}

.admin-users-form-section {
  display: grid;
  gap: 0.65rem;
  padding-bottom: 0.95rem;
  margin-bottom: 0.95rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.1);
}

.admin-users-panel--danger {
  border-color: rgba(224, 82, 82, 0.42);
  background: linear-gradient(180deg, rgba(55, 18, 22, 0.96), rgba(24, 15, 17, 0.98));
}

.admin-users-panel--danger .btn-outline-danger {
  border-color: rgba(255, 120, 120, 0.7);
  color: #ff9a9a;
}

.admin-users-panel--danger .btn-outline-danger:hover,
.admin-users-panel--danger .btn-outline-danger:focus {
  background: rgba(255, 120, 120, 0.14);
  color: #ffdede;
}

/* ===========================
   Rankings Defaults Admin
   =========================== */
.rankings-defaults-shell {
  padding-bottom: 1.5rem;
}

.rankings-defaults-summary-grid .admin-users-summary-card__value {
  font-size: 1.2rem;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.admin-users-summary-card--danger {
  border-color: rgba(255, 120, 120, 0.34);
}

.rankings-defaults-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.82fr) minmax(0, 1.18fr);
  gap: 1rem;
  align-items: start;
  min-width: 0;
}

.rankings-defaults-main-stack,
.rankings-defaults-sync-form {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.rankings-defaults-panel {
  min-width: 0;
}

.rankings-defaults-source-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.8rem;
  align-items: end;
}

.rankings-defaults-status,
.rankings-defaults-preview-row,
.rankings-defaults-metric,
.rankings-defaults-danger-band {
  display: grid;
  gap: 0.22rem;
  min-width: 0;
  border: 1px solid rgba(219, 211, 190, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.035);
}

.rankings-defaults-status {
  margin-top: 0.9rem;
  padding: 0.82rem;
}

.rankings-defaults-status span,
.rankings-defaults-preview-row span,
.rankings-defaults-metric span,
.rankings-defaults-danger-band span,
.rankings-defaults-empty span {
  color: rgba(219, 211, 190, 0.68);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.rankings-defaults-status strong,
.rankings-defaults-preview-row strong,
.rankings-defaults-metric strong,
.rankings-defaults-danger-band strong,
.rankings-defaults-empty strong,
.rankings-defaults-table td strong {
  min-width: 0;
  color: #f4efe2;
  overflow-wrap: anywhere;
}

.rankings-defaults-status small,
.rankings-defaults-preview-row small,
.rankings-defaults-metric small,
.rankings-defaults-empty span {
  min-width: 0;
  color: rgba(219, 211, 190, 0.66);
  font-size: 0.8rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-transform: none;
}

.rankings-defaults-status--accent,
.rankings-defaults-preview-row--accent {
  border-color: rgba(205, 236, 30, 0.28);
}

.rankings-defaults-status--info,
.rankings-defaults-preview-row--info {
  border-color: rgba(88, 224, 216, 0.26);
}

.rankings-defaults-status--warning,
.rankings-defaults-preview-row--warning,
.rankings-defaults-empty--warning {
  border-color: rgba(255, 214, 102, 0.3);
}

.rankings-defaults-status--danger,
.rankings-defaults-preview-row--danger,
.rankings-defaults-empty--danger {
  border-color: rgba(255, 120, 120, 0.34);
}

.rankings-defaults-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.rankings-defaults-preview-row {
  padding: 0.78rem;
}

.rankings-defaults-form-grid {
  margin-top: 1rem;
}

.rankings-defaults-metric-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  padding: 1rem 1rem 0;
}

.rankings-defaults-metric {
  padding: 0.78rem;
}

.rankings-defaults-metric strong {
  font-size: 1rem;
  line-height: 1.2;
}

.rankings-defaults-table-wrap {
  padding: 1rem;
}

.rankings-defaults-table {
  min-width: 0;
}

.rankings-defaults-table th,
.rankings-defaults-table td {
  padding: 0.72rem 0.75rem;
}

.rankings-defaults-table td {
  color: rgba(244, 239, 226, 0.9);
}

.rankings-defaults-empty {
  display: grid;
  gap: 0.22rem;
  min-width: 0;
  padding: 0.85rem;
  border: 1px solid rgba(219, 211, 190, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
}

.rankings-defaults-panel--table .rankings-defaults-empty {
  margin: 1rem;
}

.rankings-defaults-panel--warning {
  border-color: rgba(255, 214, 102, 0.34);
  background: linear-gradient(180deg, rgba(50, 42, 18, 0.92), rgba(21, 23, 15, 0.98));
}

.rankings-defaults-panel--danger {
  border-color: rgba(224, 82, 82, 0.42);
  background: linear-gradient(180deg, rgba(55, 18, 22, 0.96), rgba(24, 15, 17, 0.98));
}

.rankings-defaults-danger-band {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: 0.82rem;
}

.rankings-defaults-danger-band strong {
  font-size: 1.05rem;
}

.rankings-defaults-danger-band--success {
  border-color: rgba(141, 240, 176, 0.26);
}

.rankings-defaults-danger-band--warning {
  border-color: rgba(255, 214, 102, 0.36);
}

.rankings-defaults-danger-band--danger {
  border-color: rgba(255, 120, 120, 0.42);
  background: rgba(255, 120, 120, 0.08);
}

.rankings-defaults-alert-stack {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.8rem;
}

.rankings-defaults-alert {
  padding: 0.72rem 0.78rem;
  border: 1px solid rgba(255, 214, 102, 0.26);
  border-radius: 8px;
  background: rgba(255, 214, 102, 0.09);
  color: #ffe3a3;
  font-size: 0.86rem;
  line-height: 1.4;
}

.rankings-defaults-alert--danger {
  border-color: rgba(255, 120, 120, 0.38);
  background: rgba(255, 120, 120, 0.1);
  color: #ffdede;
}

.rankings-defaults-confirm-field {
  margin-top: 0.9rem;
}

.rankings-defaults-submit {
  width: 100%;
  min-height: 44px;
  border-radius: 8px;
}

.rankings-defaults-panel--danger .btn-outline-danger {
  border-color: rgba(255, 120, 120, 0.75);
  color: #ffb0b0;
}

.rankings-defaults-panel--danger .btn-outline-danger:hover,
.rankings-defaults-panel--danger .btn-outline-danger:focus {
  background: rgba(255, 120, 120, 0.14);
  color: #ffdede;
}

@media (max-width: 1199.98px) {
  .admin-users-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .rankings-defaults-dashboard-grid {
    grid-template-columns: 1fr;
  }

  .admin-users-filter-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .admin-users-field--search,
  .admin-users-filter-form__actions {
    grid-column: span 3;
  }

  .admin-users-filter-form__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 991.98px) {
  .admin-users-actions-grid {
    grid-template-columns: 1fr;
  }

  .admin-users-actions-grid .admin-users-panel--danger {
    grid-column: auto;
  }
}

@media (max-width: 767.98px) {
  .admin-users-summary-grid,
  .admin-users-filter-form,
  .admin-users-form-grid,
  .admin-users-form-grid--two {
    grid-template-columns: 1fr;
  }

  .admin-users-field--search,
  .admin-users-filter-form__actions {
    grid-column: auto;
  }

  .admin-users-filter-form__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-users-filter-form__actions .btn {
    width: 100%;
  }

  .admin-users-panel__header {
    padding: 0.9rem;
  }

  .admin-users-table-wrap {
    padding: 0.75rem;
  }

  .rankings-defaults-source-form,
  .rankings-defaults-preview-grid,
  .rankings-defaults-metric-grid,
  .rankings-defaults-danger-band {
    grid-template-columns: 1fr;
  }

  .rankings-defaults-table-wrap {
    padding: 0.75rem;
  }

  .rankings-defaults-panel--table .rankings-defaults-empty {
    margin: 0.75rem;
  }
}
.trade-finder-status-menu {
  position: relative;
  display: inline-block;
}

.trade-finder-status-menu__list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  min-width: 160px;
  background: var(--df-bg);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 0.35rem;
  z-index: 40;
  box-shadow: 0 10px 30px rgba(0,0,0,0.35);
}

.trade-finder-status-menu__list button {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--df-accent-contrast);
  text-align: left;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  cursor: pointer;
  font-size: 0.9rem;
}

.trade-finder-status-menu__list button:hover {
  background: var(--df-GoblinGold);
}

.trade-finder-status-menu__list button[data-active="true"] {
  background: var(--df-accent);
  font-weight: 600;
}

/* Trade Finder team chips */
.finder-team-chip {
  transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.finder-team-chip.finder-chip-must {
  background-color: #b8860b;
  border-color: #b8860b;
  color: #fff;
}
.finder-team-chip.finder-chip-excluded {
  background-color: rgba(220,53,69,0.15);
  border-color: #dc3545;
  color: #dc3545;
  text-decoration: line-through;
}
.finder-chip-mgr {
  font-size: 0.78em;
}
.finder-chip-summary {
  font-size: 0.82em;
  line-height: 1.4;
}

/* Manual Never-Include panel */
.finder-never-panel {
  background: rgba(220,53,69,0.07);
  border: 1px solid rgba(220,53,69,0.3);
  border-radius: 6px;
  padding: 10px 14px;
  font-size: 0.85em;
}
.finder-never-panel__head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 8px;
}
.finder-never-panel__title {
  font-weight: 600;
  color: #f0a0a8;
}
.finder-never-panel__hint {
  font-size: 0.9em;
}
.finder-never-panel__body {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.finder-never-panel__group {
  min-width: 180px;
}
.finder-never-panel__group-label {
  font-size: 0.82em;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #aaa;
  margin-bottom: 4px;
}
.finder-never-panel__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 2px 0;
}
.finder-never-panel__name {
  color: #f5c6cb;
}
.btn-xs {
  padding: 1px 6px;
  font-size: 0.6em;
  line-height: 1.5;
  border-radius: 4px;
}
.finder-team-chip.finder-chip-excluded {
  background-color: rgba(220,53,69,0.22);
}

/* Finder submitting state — brief visual feedback before page navigates */
[data-finder-form][data-finder-submitting] button[type="submit"] {
  opacity: 0.6;
  cursor: wait;
}

/* Trade Finder restored focus highlight */
.trade-finder-restored-focus {
  outline: 2px solid #ffc107;
  outline-offset: 2px;
}
.btn-xs {
  font-size: 0.5rem;
  border-radius: 0.2rem;
}
/* ── FG Player Page (fgpp-*) ─────────────────────────────────────────────── */

.fgpp-shell { max-width: 1040px; margin: 0 auto; }

/* Header — side-by-side on desktop, column on narrow mobile */
.fgpp-header {
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
  align-items: flex-start;
}
.fgpp-header-info {
  flex: 1 1 auto;
  min-width: 0;  /* allow text to shrink/wrap inside rather than overflow the flex row */
}
@media (max-width: 480px) {
  .fgpp-header { flex-direction: column; }
}

/* Headshot */
.fgpp-headshot-wrap {
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  overflow: hidden;
  border-radius: 10px;
  align-items: center;
  margin: auto;
}
.fgpp-headshot-img {
  display: block;
  width: 72px;
  height: 72px;
  object-fit: cover;
}
.fgpp-headshot-ph {
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  border-radius: 7px;
  background: #1e1e1e;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #444;
  font-size: 2rem;
  flex-shrink: 0;
}
@media (max-width: 480px) {
  .fgpp-headshot-wrap,
  .fgpp-headshot-ph { flex: 0 0 64px; width: 64px; height: 64px; }
  .fgpp-headshot-img { width: 64px; height: 64px; }
}

/* Pills — position/team/sport chips in the player header */
.fgpp-pill {
  display: inline-flex;
  align-items: center;
  padding: .15rem .55rem;
  border-radius: 999px;
  border: 1px solid rgba(219,211,190,.14);
  background: rgba(255,255,255,.05);
  color: rgba(219,211,190,.75);
  font-size: .5rem;
  font-weight: 600;
  letter-spacing: .03em;
  white-space: nowrap;
}
.fgpp-pill--nfl  { background: rgba(76,175,80,.1);  border-color: rgba(76,175,80,.25);  color: #a5d6a7; }
.fgpp-pill--nba  { background: rgba(100,181,246,.1); border-color: rgba(100,181,246,.25); color: #90caf9; }
.fgpp-pill--wnba { background: rgba(206,147,216,.1); border-color: rgba(206,147,216,.25); color: #e1bee7; }
.fgpp-pill--cream  { background: var(--df-bg);  border-color: var(--df-accent-contrast);  color: var(--df-accent-contrast); }

/* Player Header inline Dynasty/Redraft value editor (Phase 11E) */
.fgpp-value-edit-wrap { display: inline-flex; align-items: center; gap: .3rem; }
.fgpp-value-display {
  font: inherit;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}
.fgpp-value-display:hover,
.fgpp-value-display:focus-visible {
  outline: none;
  border-color: rgba(141,240,176,.45);
  background: rgba(141,240,176,.08);
}
.fgpp-value-input {
  width: 4.5rem;
  border-radius: 999px;
  border: 1px solid rgba(141,240,176,.45);
  background: var(--df-text-light);
  color: var(--df-accent-contrast);
  padding: .15rem .5rem;
  font-size: .68rem;
  font-weight: 600;
  text-align: center;
}
.fgpp-value-input:focus { outline: none; box-shadow: 0 0 0 2px rgba(141,240,176,.18); }
.fgpp-value-status { font-size: .65rem; }


/* Page-level sub-nav (Overview / Stats / …) */
.fgpp-subnav {
  display: flex;
  gap: .4rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  justify-content: center;
}
.fgpp-subnav-item {
  display: inline-block;
  padding: .35rem .9rem;
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--df-bg);
  background: var(--df-accent);
  border: 1px solid var(--df-accent-contrast);
  border-radius: 20px;
  transition: color .15s, border-color .15s, background .15s;
  white-space: nowrap;
  
}
.fgpp-subnav-item:hover {
  color: #ccc;
  border-color: #444;
}
.fgpp-subnav-item.active {
  color: var(--df-accent-contrast);
  border-color: var(--df-accent-contrast);
  background: var(--df-GoblinGold--alt);
}

/* Season selector bar on stats page */
.fgpp-stats-season-bar {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1rem;
}
.fgpp-stats-season-label {
  font-size: .78rem;
  color: #888;
  white-space: nowrap;
  margin: 0;
}
.fgpp-stats-season-select {
  background: #111;
  color: #ccc;
  border-color: #333;
  max-width: 110px;
}
.fgpp-stats-season-select:focus {
  border-color: #4caf50;
  box-shadow: 0 0 0 2px rgba(76,175,80,.15);
}

/* ── Stats table helpers ──────────────────────────────────────────────────── */
.fgpp-col-left   { text-align: left; }
.fgpp-col-dim    { color: #3a3a3a; }
.fgpp-season-type { font-size: .7rem; color: #555; margin-left: .2rem; }
.fgpp-game-date  { font-size: .78rem; color: #888; }

/* Expandable "more stats" popup */
.fgpp-more-cell    { color: #444; font-size: .72rem; }
details.fgpp-more-details { display: inline; }
.fgpp-more-summary { cursor: pointer; list-style: none; color: #555; }
.fgpp-more-popup {
  position: absolute;
  z-index: 10;
  background: #1a1a1a;
  border: 1px solid #252525;
  border-radius: 4px;
  padding: .5rem;
  min-width: 180px;
  font-size: .75rem;
  text-align: left;
}
.fgpp-more-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .15rem 0;
}
.fgpp-more-row:not(:last-child) { border-bottom: 1px solid #1c1c1c; }
.fgpp-more-key   { color: #666; }
.fgpp-more-val   { color: #ccc; }
.fgpp-more-empty { color: #2a2a2a; }

/* Stats footnote */
.fgpp-stats-footnote { font-size: .72rem; color: #444; margin-top: .5rem; }

/* Season context line — proof that the filter is active */
.fgpp-stats-context { font-size: .78rem; color: #666; margin-bottom: .5rem; }

/* Provider IDs section */
.fgpp-provider-summary  { cursor: pointer; font-size: .78rem; color: #444; user-select: none; }
.fgpp-provider-label    { font-size: .68rem; color: #555; text-transform: uppercase; letter-spacing: .05em; }
.fgpp-prov-badge--alt   { color: #7986cb; }

/* Nav tabs */
.fgpp-tabs {
  display: flex;
  gap: .4rem;
  border-bottom: 2px solid #252525;
  margin-bottom: 1.25rem;
  padding-bottom: 0;
}
.fgpp-tab {
  display: inline-block;
  padding: .45rem 1rem;
  font-size: .85rem;
  font-weight: 600;
  text-decoration: none;
  color: #666;
  border-radius: 4px 4px 0 0;
  border: 1px solid transparent;
  border-bottom: none;
  transition: color .15s;
}
.fgpp-tab:hover { color: #aaa; }
.fgpp-tab.active {
  color: #4caf50;
  border-color: #252525;
  border-bottom-color: transparent;
  background: #111;
  margin-bottom: -2px;
  padding-bottom: calc(.45rem + 2px);
}

/* Stats tables */
.fgpp-stats-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.fgpp-stats-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .83rem;
  white-space: nowrap;
}
.fgpp-stats-table th,
.fgpp-stats-table td {
  padding: .35rem .6rem;
  text-align: right;
  border-bottom: 1px solid #1e1e1e;
}
.fgpp-stats-table th:first-child,
.fgpp-stats-table td:first-child { text-align: left; }
.fgpp-stats-table thead tr:first-child th {
  background: #0e0e0e;
  color: #555;
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  border-bottom: 1px solid #252525;
  padding-top: .5rem;
}
.fgpp-stats-table thead tr:last-child th {
  background: #111;
  color: #888;
  font-size: .72rem;
  font-weight: 600;
  border-bottom: 2px solid #252525;
}
.fgpp-stats-table tbody tr:hover { background: rgba(255,255,255,.03); }
.fgpp-stats-table td             { color: #ccc; }
.fgpp-stats-table td.season-col  { color: #ddd; font-weight: 600; }
.fgpp-stats-table td.miss        { color: #333; }
.fgpp-stats-table td.career-lbl  { color: #aaa; font-weight: 600; font-style: italic; }

/* Empty states */
.fgpp-empty {
  background: #111;
  border: 1px solid #1e1e1e;
  border-radius: 6px;
  padding: 2rem 1.5rem;
  text-align: center;
  color: #555;
  font-size: .88rem;
}
.fgpp-empty strong { color: #777; }

/* Games matchup cell */
.fgpp-matchup { font-size: .78rem; color: #888; }

/* Provider ID badges */
.fgpp-prov-badge {
  font-size: .72rem;
  background: #1a1a2a;
  border: 1px solid #2a2a3a;
  border-radius: 4px;
  padding: .15em .45em;
  color: #90caf9;
  font-family: monospace;
}

/* Header meta rows (bio / draft / contract) */
.fgpp-meta-stack {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  margin-top: .55rem;
}
.fgpp-meta-row { font-size: .8rem; color: #999; line-height: 1.5; }
.fgpp-meta-row .fgpp-meta-key {
  color: #555;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-right: .35rem;
}
.fgpp-meta-row em { color: #444; font-style: normal; }

/* Basketball snapshot panel */
.bball-snapshot {
  background: #0c0c0c;
  border: 1px solid #1e1e1e;
  border-radius: 6px;
  padding: .9rem 1rem 1rem;
}
.bball-snapshot-label {
  font-size: .63rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #4a4a4a;
  margin-bottom: .75rem;
}
.bball-groups-row { display: flex; flex-wrap: wrap; gap: .6rem; }
.bball-group {
  background: #141414;
  border: 1px solid #252525;
  border-radius: 5px;
  padding: .65rem .85rem;
  flex: 1 1 150px;
}
.bball-group-title {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #4a4a4a;
  margin-bottom: .55rem;
  padding-bottom: .35rem;
  border-bottom: 1px solid #1e1e1e;
}
.bball-group-items { display: flex; flex-wrap: wrap; gap: .3rem .9rem; }
.bball-item { min-width: 36px; }
.bball-item-value { font-size: 1.1rem; font-weight: 700; color: #ddd; line-height: 1.2; }
.bball-item-label {
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #4a4a4a;
  margin-top: .1rem;
}
.bball-table thead th {
  background: #0a0a0a !important;
  color: #666 !important;
  font-size: .7rem !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  border-bottom: 2px solid #252525 !important;
  padding: .45rem .6rem;
}
.bball-date { font-size: .78rem; color: #777; white-space: nowrap; }

/* ── FG Player Page — header card + ranking panel ─────────────────────────── */
/* Theme matches workspace-compact-details / workspace-compact-pill pattern:  */
/* bg rgba(9,20,11,.24), border rgba(219,211,190,.14), text rgba(219,211,190) */
.fgpp-header-card {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  border-radius: 10px;
 
}
.fgpp-header-card > .fgpp-header {
  flex: 1 1 auto;
  min-width: 0; 
}
.fgpp-ranking-panel {
  flex: 0 0 185px;
  background: rgba(9,20,11,.24);
  border: 1px solid rgba(219,211,190,.14);
  border-radius: 8px;
  padding: .65rem .85rem;
  align-self: flex-start;
}
.fgpp-ranking-title {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(219,211,190,.38);
  margin-bottom: .5rem;
  padding-bottom: .35rem;
  border-bottom: 1px solid rgba(219,211,190,.08);
}
.fgpp-ranking-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .3rem .5rem;
  padding: .3rem 0;
  border-bottom: 1px solid rgba(219,211,190,.06);
}
.fgpp-ranking-row:last-child { border-bottom: none; }
.fgpp-ranking-label {
  flex: 0 0 54px;
  font-size: .68rem;
  font-weight: 700;
  color: rgba(219,211,190,.48);
  text-decoration: none;
  letter-spacing: .03em;
}
.fgpp-ranking-label:hover { color: rgba(219,211,190,.72); }
.fgpp-ranking-nums {
  display: flex;
  align-items: baseline;
  gap: .45rem;
  flex: 1;
}
.fgpp-ranking-overall {
  font-size: .88rem;
  font-weight: 700;
  color: rgba(219,211,190,.92);
  white-space: nowrap;
}
.fgpp-ranking-pos {
  font-size: .72rem;
  font-weight: 600;
  color: rgba(219,211,190,.48);
  white-space: nowrap;
}
.fgpp-ranking-value {
  font-size: .68rem;
  color: rgba(219,211,190,.32);
  white-space: nowrap;
}
.fgpp-ranking-dash {
  font-size: .72rem;
  color: rgba(219,211,190,.25);
  font-style: italic;
}
.fgpp-ranking-empty {
  font-size: .75rem;
  color: rgba(219,211,190,.35);
  font-style: italic;
  margin: 0;
}
.fgpp-ranking-signin { color: rgba(165,214,167,.75); text-decoration: none; }
.fgpp-ranking-signin:hover { color: rgba(165,214,167,1); text-decoration: underline; }
@media (max-width: 680px) {
  .fgpp-header-card { flex-wrap: wrap; }
  .fgpp-ranking-panel {
    flex: 1 1 auto;
    width: 100%;
    background: transparent;
    border: none;
    border-top: 1px solid rgba(219,211,190,.08);
    border-radius: 0;
    padding: .6rem 0 0;
    margin-top: .25rem;
  }
}

/* ── Player Page ranking context (Redraft/Dynasty Ranking tabs) ────────────── */
.fgpp-context-section + .fgpp-context-section { margin-top: 1.25rem; }
.fgpp-context-title {
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: rgba(219,211,190,.6);
  margin-bottom: .5rem;
}
.fgpp-context-list { display: flex; flex-direction: column; gap: .35rem; }
.fgpp-context-row {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .4rem .6rem;
  border-radius: 10px;
  border: 1px solid rgba(219,211,190,.08);
  background: rgba(255,255,255,.02);
  text-decoration: none;
  color: inherit;
  transition: background-color .15s ease, border-color .15s ease;
}
.fgpp-context-row:hover { background: rgba(255,255,255,.05); }
.fgpp-context-row.is-current {
  background: rgba(141,240,176,.1);
  border-color: rgba(141,240,176,.4);
}
.fgpp-context-rank {
  flex: 0 0 1.8rem;
  text-align: center;
  font-size: .78rem;
  font-weight: 700;
  color: rgba(219,211,190,.55);
}
.fgpp-context-img, .fgpp-context-ph {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  object-fit: cover;
}
.fgpp-context-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1e1e1e;
  font-size: 1.1rem;
}
.fgpp-context-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: .85rem;
  font-weight: 600;
  color: var(--df-text-light, #f4efe2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fgpp-context-row.is-current .fgpp-context-name { color: #8df0b0; }
.fgpp-context-value {
  flex: 0 0 auto;
  font-size: .85rem;
  font-weight: 700;
  color: rgba(219,211,190,.85);
}

/* ── NFL stat board ──────────────────────────────────────────────────────── */
.nfl-stat-board__panel {
  display: none;
}
.nfl-stat-board__panel.is-active {
  display: block;
}

/* ── Trade History rich cards ────────────────────────────────────────────── */
.trade-history-rich {
  display: grid;
  gap: 1rem;
  width: min(100%, 1100px);
  margin: 1rem auto 0;
}

.trade-history-rich .th-card {
  background: var(--df-surface);
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.24);
}

.trade-history-rich .th-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .85rem 1rem;
  background: rgba(2, 6, 23, 0.32)
}

.trade-history-rich .th-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
}

.trade-history-rich .th-side {
  min-width: 0;
  padding: 1rem;
}

.trade-history-rich .th-side:first-child {
  border-right: 1px solid rgba(148, 163, 184, 0.16);
}

.trade-history-rich .th-side-label {
  margin-bottom: .35rem;
  color: rgba(226, 232, 240, 0.68);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.trade-history-rich .th-team-name {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex-wrap: wrap;
  margin-bottom: .75rem;
  color: #f8fafc;
  font-size: .98rem;
  font-weight: 900;
}

.trade-history-rich .th-assets {
  display: grid;
  gap: .5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.trade-history-rich .th-asset {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: .7rem;
  min-width: 0;
  padding: .5rem;
  border: 1px solid rgba(148, 163, 184, 0.12);
  border-radius: 14px;
  background: rgba(2, 6, 23, 0.32);
}

.trade-history-rich .th-asset-img,
.trade-history-rich .th-asset-pk {
  width: 48px !important;
  height: 48px !important;
  max-width: 48px !important;
  max-height: 48px !important;
  min-width: 48px;
  min-height: 48px;
  flex: 0 0 48px;
  display: block;
  border-radius: 999px;
}

.trade-history-rich .th-asset-img {
  object-fit: cover;
  object-position: center;
  background: rgba(30, 41, 59, 0.85);
}

.trade-history-rich .th-asset-pk {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(226, 232, 240, 0.78);
  background: rgba(30, 41, 59, 0.85);
  font-size: .72rem;
  font-weight: 900;
}

.trade-history-rich .th-asset-name {
  min-width: 0;
  color: #e5e7eb;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trade-history-rich .th-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
  padding: .85rem 1rem;
  background: rgba(30, 41, 59, 0.55);
  border-top: 1px solid rgba(148, 163, 184, 0.14);
}

.trade-history-rich .th-totals {
  color: rgba(226, 232, 240, 0.76);
  font-size: .82rem;
}

.trade-history-rich .th-totals strong {
  color: #f8fafc;
}

@media (max-width: 760px) {
  .trade-history-rich .th-card-header,
  .trade-history-rich .th-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .trade-history-rich .th-body {
    grid-template-columns: 1fr;
  }

  .trade-history-rich .th-side:first-child {
    border-right: 0;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
  }
}

/* ── Most Active Traders panel (Trade Center History) ────────────────────
   Structural spacing/layout is handled by Bootstrap utility classes in
   Trades.ejs (p-3/p-md-4, d-flex, gap-2, text-truncate, flex-shrink-0).
   Two gaps Bootstrap's utility set doesn't cover, scoped narrowly here: */
.trade-leaders {
  /* Matches the ~16-18px radius other Trade Center panels use
     (.trade-grader-filter-panel, .th-card) -- Bootstrap's .rounded-*
     scale tops out at .rounded-3 (.3rem), too small to read as the same
     panel language. */
  border-radius: 16px;
}

.trade-leaders__name {
  /* Flex items default to min-width:auto, which silently defeats
     .text-truncate's ellipsis inside a shrinking flex row. Bootstrap has
     no min-width:0 utility. */
  min-width: 0;
}

/* ===========================
   Rankings Snapshot (Phase 12A)
   =========================== */

.rankings-snapshot-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.85rem;
  margin-bottom: 1rem;
}

.rankings-snapshot-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.85rem;
  color: rgba(244, 239, 226, 0.72);
}

.rankings-snapshot-field select,
.rankings-snapshot-field input {
  background: var(--df-surface);
  border: 1px solid rgba(219, 211, 190, 0.18);
  border-radius: 8px;
  color: var(--df-bg);
  padding: 0.4rem 0.6rem;
  min-width: 140px;
}

.rankings-snapshot-field input {
  min-width: 100px;
}

.rankings-snapshot-range {
  color: var(--df-GoblinGold);
  font-size: 0.92rem;
  font-weight: 700;
}

.rankings-snapshot-update-btn {
  border: 1px solid rgba(141, 240, 176, 0.24);
}

.rankings-snapshot-preview-wrap {
  overflow-x: auto;
}

.rankings-snapshot-preview {
  max-width: 720px;
}

.rankings-snapshot-preview__header {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.18);
}

.rankings-snapshot-preview__brand {
  font-weight: 800;
  color: #cdec1e;
}

.rankings-snapshot-preview__title {
  font-weight: 600;
  color: #f4efe2;
}

.rankings-snapshot-preview__date {
  margin-left: auto;
  font-size: 0.85rem;
  color: rgba(244, 239, 226, 0.6);
}

.rankings-snapshot-preview__rows {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.rankings-snapshot-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.45rem 0.25rem;
  border-bottom: 1px solid rgba(219, 211, 190, 0.1);
}

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

.rankings-snapshot-rank {
  flex-shrink: 0;
}

.rankings-snapshot-img {
  width: 44px;
  height: 44px;
  object-fit: cover;
  flex-shrink: 0;
}

.rankings-snapshot-meta {
  flex: 1;
  min-width: 0;
}

.rankings-snapshot-name {
  display: block;
  font-size: 0.95rem;
}

.rankings-snapshot-subinfo {
  display: flex;
  gap: 0.4rem;
  margin-top: 0.15rem;
}

.rankings-snapshot-value {
  flex-shrink: 0;
}

.rankings-snapshot-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1rem;
}

.rankings-snapshot-export-mode {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: rgba(244, 239, 226, 0.72);
}

.rankings-snapshot-export-mode select {
  background: var(--df-surface);
  border: 1px solid rgba(219, 211, 190, 0.18);
  border-radius: 8px;
  color: var(--df-bg);
  padding: 0.3rem 0.5rem;
}

.rankings-snapshot-export-hint {
  font-size: 0.8rem;
  color: rgba(244, 239, 226, 0.55);
  margin: 0.35rem 0 1rem;
}

@media (max-width: 640px) {
  .rankings-snapshot-controls {
    flex-direction: column;
    align-items: stretch;
  }

  .rankings-snapshot-field select,
  .rankings-snapshot-field input {
    width: 100%;
  }

  .rankings-snapshot-preview {
    max-width: 100%;
  }

  .rankings-snapshot-preview__date {
    margin-left: 0;
  }
}

/* Creator Pages Phase 2, Subphase 2 — public Creator profile
   (View/Public/creatorProfile.ejs). One tightly scoped selector: a
   restrained empty-state box for the Publications section, matching the
   existing dashed-border empty-state convention (see .rankings-empty-state
   above) without coupling to that unrelated feature's class name. */
.creator-public-empty {
  border: 1px dashed rgba(219, 211, 190, 0.22);
  border-radius: 16px;
  padding: 1.25rem;
  background: rgba(255, 255, 255, 0.02);
}

/* Phase 5, Subphase 4 — targeted safety net only, not a redesign: a display
   name or bio long enough to contain no breakable space could otherwise
   overflow the card at narrow widths, the same overflow-wrap treatment
   every .creator-publication-* text class below already gets. */
.creator-profile-name,
.creator-profile-bio {
  overflow-wrap: anywhere;
}

/* Shared Archive profile picture — rounded RECTANGLE (never a circle), used
   identically by both the public archive page
   (View/Public/creatorProfile.ejs) and the Manage Shared Archive preview
   (View/Accounts/Creator.ejs), for both the real <img> and its no-picture
   <div> fallback, so the shape never changes across pages or before/after
   upload. A circle cropped too much of a non-headshot image — 4:3
   (120x90) keeps far more of the original frame while still reading as a
   deliberate, polished avatar treatment rather than an untouched raw
   upload.
   `object-fit: contain` (NEVER cover) -- the box shape stays a fixed
   120x90 rectangle, but the full uploaded image is always visible inside
   it, letterboxed rather than cropped, matching
   services/profileImageProcessingService.js's own no-crop guarantee
   (fit: 'inside') all the way through to display. The subtle
   rgba(219,211,190,X) background (already this file's established
   neutral-surface family, e.g. .creator-manage-section's border below)
   fills any letterboxed space so it reads as an intentional frame rather
   than a rendering glitch, and gives the SAME neutral backdrop the
   no-picture fallback below already uses via Bootstrap's bg-secondary.
   Explicit width/height HTML attributes (set alongside this class on the
   <img> itself) reserve the same layout space before this stylesheet
   loads — this class's own width/height below are what actually resize
   the box responsively past that point, including the mobile override
   underneath. */
.creator-archive-avatar {
  width: 120px;
  height: 90px;
  border-radius: 12px;
  object-fit: contain;
  background: rgba(219, 211, 190, 0.08);
  flex-shrink: 0;
}

@media (max-width: 420px) {
  .creator-archive-avatar {
    width: 96px;
    height: 72px;
  }
}

/* Creator Pages Phase 4, Subphase 2 — public publication page
   (View/Public/creatorPublication.ejs). Narrow, name-scoped classes only —
   nothing here touches a bare element selector (table/td/a/etc.), so no
   unrelated page's styling can be affected. Reuses --df-* custom
   properties and the same rounded-pill visual language already
   established by public/css/publicRankings.css's .pr-row__rank, just
   under this page's own class names. */
.creator-publication-title {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.creator-publication-byline {
  color: rgba(219, 211, 190, .82);
  font-weight: 600;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.creator-publication-byline:hover,
.creator-publication-byline:focus-visible {
  color: #8df0b0;
  text-decoration: underline;
}

.creator-publication-meta {
  overflow-wrap: anywhere;
}

.creator-publication-description {
  overflow-wrap: anywhere;
}

.creator-publication-table th,
.creator-publication-table td {
  overflow-wrap: anywhere;
}

.creator-publication-name a {
  overflow-wrap: anywhere;
}

.creator-publication-rank {
  display: inline-flex;
  min-width: 2.25rem;
  justify-content: center;
  padding: .2rem .55rem;
  border-radius: 999px;
  background: rgba(141, 240, 176, .12);
  border: 1px solid rgba(141, 240, 176, .18);
  font-weight: 700;
  color: #8df0b0;
}

.creator-publication-position {
  font-size: .8rem;
  color: rgba(219, 211, 190, .7);
  text-transform: uppercase;
  letter-spacing: .03em;
}

.creator-publication-value {
  font-weight: 700;
  white-space: nowrap;
}

.creator-publication-back-link {
  color: rgba(219, 211, 190, .78);
  text-decoration: underline;
}

.creator-publication-back-link:hover,
.creator-publication-back-link:focus-visible {
  color: #8df0b0;
}

/* Creator Pages Phase 4, Subphase 3 — public publication cards on the
   public Creator profile page (View/Public/creatorProfile.ejs). Narrow,
   name-scoped classes only, distinct from the .creator-publication-*
   classes above (the standalone publication page) so each page's rules
   stay independently scoped even though both share the same visual
   language. No bare element selector and no fixed height. */
.creator-publications-grid .creator-publication-card {
  background: var(--df-text-light);
  height: 100%;
}

.creator-publication-card-title,
.creator-publication-card-description,
.creator-publication-card-meta {
  overflow-wrap: anywhere;
}

.creator-publication-card-link {
  color: var(--df-surface);
  text-decoration: none;
}

.creator-publication-card-link:hover,
.creator-publication-card-link:focus-visible {
  color: #8df0b0;
  text-decoration: underline;
}

/* Creator Pages Phase 5, Subphase 4 — authenticated Creator-management
   visual pass (View/Accounts/Creator.ejs, CreatorPublications.ejs,
   CreatorPublicationEditor.ejs, CreatorPublicationPreview.ejs). Narrow,
   name-scoped classes only. Reuses the same --df-* tokens, the #8df0b0
   accent, and the rgba(219,211,190,X) secondary-text family already
   established by the public Creator pages above, rather than a parallel
   visual system. Goal: replace the repeated full `card bg-dark
   border-secondary settingBox` treatment (a heavy "card inside a card"
   look on every section of these pages) with a lighter, divider-separated
   section rhythm — the grouping stays, the visual weight doesn't stack. */

.creator-manage-section {
  border-top: 1px solid rgba(219, 211, 190, 0.14);
  padding-top: 1.5rem;
  margin-top: 1.5rem;
}

/* Status summary directly under the page intro (Creator.ejs) — one place to
   see profile status / public URL / slug at a glance, in text, rather than
   scattered across separate alert boxes the creator has to piece together. */
.creator-manage-status {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 2rem;
  margin: 0 0 1.5rem;
}

.creator-manage-status__item {
  min-width: 8rem;
}

.creator-manage-status dt {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(219, 211, 190, 0.6);
  margin-bottom: 0.15rem;
}

.creator-manage-status dd {
  color: var(--df-text-light);
  font-weight: 600;
  margin-bottom: 0;
  overflow-wrap: anywhere;
}

/* Publication list cards (CreatorPublications.ejs) — deliberately reuses
   .alt_bg/.border-0/.shadow-sm (the exact same three classes the PUBLIC
   publication cards use in View/Public/creatorProfile.ejs) instead of the
   old bg-dark/border-secondary/settingBox combination, so the authenticated
   list visually resembles what a visitor actually sees rather than reading
   as a separate, denser admin-table surface. */
.creator-manage-pub-title {
  font-size: 1.05rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.creator-manage-reason {
  overflow-wrap: anywhere;
}

/* Immutable Mode/Layout fieldsets in the editor (CreatorPublicationEditor.ejs)
   — a subtle fill + reduced-opacity legend communicates "intentionally
   locked" rather than "this control looks broken/disabled by accident."
   The existing helper text ("Mode cannot be changed after creation.")
   still carries the actual explanation; this is the visual reinforcement. */
.creator-editor-locked {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(219, 211, 190, 0.12);
  border-radius: 12px;
  padding: 0.85rem 1rem 0.5rem;
}

.creator-editor-locked legend {
  color: rgba(219, 211, 190, 0.75);
}

.creator-editor-lock-note {
  color: rgba(219, 211, 190, 0.6);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}

/* Private preview panel (CreatorPublicationPreview.ejs) — a clearly
   labeled, distinctly bordered panel so a private preview can never be
   mistaken for a page a visitor could actually reach. */
.creator-preview-panel {
  border: 1px dashed rgba(219, 211, 190, 0.3);
}

.creator-preview-kicker {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8df0b0;
}

@media (max-width: 575.98px) {
  .creator-manage-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .creator-manage-actions .btn {
    width: 100%;
  }
}

