/* =============================================================================
   redraft.css — the Redraft Wall.

   House rules, no exceptions:
     * Newsreader is used UPRIGHT. `font-style: italic` appears nowhere; the
       scope-wide reset at the bottom of the token block enforces it.
     * Ink + blue is the whole accent grammar. Gold survives on exactly one
       thing: the ◷ receipt glyph (--rw-receipt). Nothing else may use it.
     * Semantics: blue = the redraft's verdict / beat the slot,
       coral = fell short of it, mint = the board already had it right,
       muted ink = landed about where it was taken.
     * Smallest label on the page is 9px. Anything under that failed contrast
       against its composited background, so it does not exist here.

   Everything is scoped to .rw-scope so no token leaks into the shell.
   ============================================================================= */

.rw-scope {
  /* surfaces */
  --rw-field: #f2ede1;
  --rw-card: #fffaf1;
  --rw-card2: #f6f0e2;
  --rw-card3: #efe8d8;
  --rw-border: #d9cdb8;
  --rw-border-2: #c3b295;
  --rw-hair: #e7ddc9;
  --rw-track: #ece4d3;

  /* ink */
  --rw-ink: #0d1f3c;
  --rw-ink-2: #3d4d68;
  --rw-muted: #586a83;          /* 5.3:1 on --rw-card — safe for 9px labels */
  --rw-muted-2: #6b7c94;        /* decorative only: rules, dividers, nil states */

  /* the one accent */
  --rw-blue: #1f5fbf;
  --rw-blue-2: #17458c;
  --rw-blue-soft: #e3ecfa;
  --rw-blue-line: rgba(31, 95, 191, .38);
  --rw-on-blue: #ffffff;

  /* verdict colours */
  --rw-up: #1f5fbf;             /* beat his slot */
  --rw-up-soft: #e3ecfa;
  --rw-down: #b34e3e;           /* fell short of it */
  --rw-down-soft: #f7e3de;
  --rw-held: #23705a;           /* the board already had it right */
  --rw-held-soft: #e0f0ea;

  /* round ramp for the class-shape bar: dark blue = earliest round */
  --rw-rd1: #17458c;
  --rw-rd2: #1f5fbf;
  --rw-rd3: #4d8fe8;
  --rw-rd4: #8bb8f2;
  --rw-rd5: #c0d8f8;
  /* the label colour that survives on each step of the ramp. The ramp inverts
     between themes, so the pairing has to be declared per theme rather than
     guessed from a "pale" flag. */
  --rw-rd1-on: #ffffff;
  --rw-rd2-on: #ffffff;
  --rw-rd3-on: #ffffff;
  --rw-rd4-on: #0a1a33;
  --rw-rd5-on: #0a1a33;

  /* ◷ receipt glyph ONLY */
  --rw-receipt: #c99b3d;

  /* navy band (identical in both themes — force .logo-d inside one) */
  --rw-navy-a: #0a1a33;
  --rw-navy-b: #124a8c;
  --rw-navy-ink: #ffffff;
  --rw-navy-lede: #c6d8f2;
  --rw-navy-label: #d6e4f7;     /* 5.0:1 on the lightest point of the band */
  --rw-navy-rule: rgba(255, 255, 255, .22);

  --rw-shadow: 0 14px 40px rgba(13, 31, 60, .09);
  --rw-lift: 0 2px 10px rgba(13, 31, 60, .05);
  --rw-hover: 0 12px 26px rgba(13, 31, 60, .11);

  --rw-serif: "Newsreader", Georgia, "Times New Roman", serif;
  --rw-sans: "Source Sans 3", "Instrument Sans", "Segoe UI", sans-serif;
  --rw-mono: "JetBrains Mono", ui-monospace, monospace;

  /* type scale — nothing below --rw-t-micro (9px) ships */
  --rw-t-micro: 0.5625rem;      /* 9.0px  · uppercase eyebrows */
  --rw-t-meta: 0.625rem;        /* 10.0px · mono meta lines */
  --rw-t-meta-2: 0.6875rem;     /* 11.0px · mono controls */
  --rw-t-body-s: 0.8125rem;     /* 13.0px */
  --rw-t-body: 0.9375rem;       /* 15.0px */

  /* vertical rhythm */
  --rw-gap: 1rem;
  --rw-band: 3rem;
}

[data-theme="dark"] .rw-scope {
  --rw-field: #0a1220;
  --rw-card: #101c31;
  --rw-card2: #0c1626;
  --rw-card3: rgba(157, 184, 221, .06);
  --rw-border: rgba(157, 184, 221, .18);
  --rw-border-2: rgba(157, 184, 221, .34);
  --rw-hair: rgba(157, 184, 221, .11);
  --rw-track: rgba(157, 184, 221, .12);

  --rw-ink: #eef4fc;
  --rw-ink-2: #c9d8ee;
  --rw-muted: #93a9c6;
  --rw-muted-2: #7e93b1;

  --rw-blue: #4d8fe8;
  --rw-blue-2: #8cc0ff;
  --rw-blue-soft: rgba(77, 143, 232, .16);
  --rw-blue-line: rgba(127, 178, 240, .45);
  --rw-on-blue: #07101f;

  --rw-up: #7fb2f0;
  --rw-up-soft: rgba(77, 143, 232, .15);
  --rw-down: #e89786;
  --rw-down-soft: rgba(224, 138, 122, .14);
  --rw-held: #7ad0b1;
  --rw-held-soft: rgba(122, 208, 177, .13);

  --rw-rd1: #bcd8ff;
  --rw-rd2: #8cc0ff;
  --rw-rd3: #5f9bec;
  --rw-rd4: #3f74c0;
  --rw-rd5: #2b5290;
  --rw-rd1-on: #0a1a33;
  --rw-rd2-on: #0a1a33;
  --rw-rd3-on: #ffffff;
  --rw-rd4-on: #ffffff;
  --rw-rd5-on: #ffffff;

  --rw-receipt: #e0bd6e;

  --rw-shadow: 0 18px 46px rgba(2, 8, 20, .55);
  --rw-lift: 0 4px 14px rgba(2, 8, 20, .4);
  --rw-hover: 0 16px 34px rgba(2, 8, 20, .6);
}

/* House rule, enforced: Newsreader upright everywhere in this scope. */
.rw-scope em, .rw-scope i, .rw-scope cite, .rw-scope address { font-style: normal; }

.rw-main {
  max-width: 1200px; margin: 0 auto; padding: 0 1.2rem 3.5rem;
  color: var(--rw-ink); font-family: var(--rw-sans);
}

.rw-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Shared micro-label. Every uppercase eyebrow on the page uses it or matches it. */
.rw-k {
  font-family: var(--rw-sans); font-size: var(--rw-t-micro); font-weight: 800;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--rw-muted);
}

/* A player with no /players/ file renders as a button in the same place —
   same type, opens the quick card instead. */
.rw-nmbtn {
  font-family: inherit; font-size: inherit; font-weight: inherit; color: inherit;
  background: none; border: 0; padding: 0; margin: 0; text-align: left; cursor: pointer; width: 100%;
}

/* styles.css paints every bare <button> as a pill-shaped ink CTA that lifts on
   hover. Nothing on this page is that button, so each one opts out here first
   and repaints itself below — class-only selectors, so source order still lets
   the component rules win. .rw-team keeps its lift and declares it itself. */
.rw-wr, .rw-yr, .rw-find-r, .rw-team, .rw-seg button,
.rw-cardbtn, .rw-club-x, .rw-find-clear, .rw-nmbtn {
  min-height: 0; padding: 0; border: 0; border-radius: 0; background: none;
  color: inherit; font-weight: inherit; letter-spacing: inherit;
  justify-content: flex-start; transition: none;
}
.rw-wr:hover, .rw-yr:hover, .rw-find-r:hover, .rw-seg button:hover,
.rw-cardbtn:hover, .rw-club-x:hover, .rw-find-clear:hover, .rw-nmbtn:hover {
  transform: none; box-shadow: none;
}

/* --- research desk cross-nav --- */
.rw-desk { display: flex; gap: 8px; overflow-x: auto; padding: 0.7rem 0 0.3rem; scrollbar-width: none; }
.rw-desk::-webkit-scrollbar { display: none; }
.rw-desk a {
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; padding: 6px 12px; border-radius: 999px; white-space: nowrap;
  border: 1px solid var(--rw-border); color: var(--rw-muted); transition: color .15s, border-color .15s;
}
.rw-desk a:hover { color: var(--rw-ink); border-color: var(--rw-muted-2); }
.rw-desk a:focus-visible { outline: 2px solid var(--rw-blue); outline-offset: 2px; }
.rw-desk a.on { background: var(--rw-blue); border-color: var(--rw-blue); color: var(--rw-on-blue); }

/* =============================================================================
   Masthead — the one navy band on the page. Both themes render it navy, so any
   crest inside it must use the _dark.svg variant (.rw-onnavy below).
   ============================================================================= */
.rw-masthead {
  position: relative; overflow: hidden; border-radius: 20px; margin-top: 0.5rem;
  background: linear-gradient(135deg, var(--rw-navy-a), var(--rw-navy-b));
  color: var(--rw-navy-ink); padding: 2rem 1.9rem 0; box-shadow: var(--rw-shadow);
}
.rw-masthead::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 620px 620px at 88% -30%, rgba(255, 255, 255, .07), transparent 60%),
    repeating-linear-gradient(115deg, transparent 0 180px, rgba(255, 255, 255, .03) 180px 181px);
}
.rw-mast-row {
  position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 1rem;
  align-items: center; flex-wrap: wrap;
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--rw-navy-label);
}
.rw-mast-date { color: var(--rw-navy-ink); }
.rw-mast-date::before { content: "\25F7"; color: var(--rw-receipt); margin-right: 6px; }
.rw-mast-title {
  position: relative; z-index: 1; margin: 0.85rem 0 0.5rem;
  font-family: var(--rw-serif); font-weight: 600;
  font-size: clamp(2.2rem, 5.6vw, 3.7rem); line-height: 1.03; letter-spacing: -0.012em;
}
.rw-mast-title em { color: #8cc0ff; }
.rw-mast-lede {
  position: relative; z-index: 1; max-width: 62ch; margin: 0;
  color: var(--rw-navy-lede); font-size: var(--rw-t-body); line-height: 1.6;
}
.rw-mast-rail {
  position: relative; z-index: 1; display: flex; flex-wrap: wrap;
  margin-top: 1.5rem; border-top: 1px solid var(--rw-navy-rule);
}
.rw-mast-rail div {
  padding: 0.95rem 1.5rem 1.1rem 0; margin-right: 1.5rem;
  border-right: 1px solid rgba(255, 255, 255, .15); min-width: 0;
}
.rw-mast-rail div:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.rw-mast-rail b {
  display: block; font-family: var(--rw-serif); font-weight: 600;
  font-size: 1.75rem; color: var(--rw-navy-ink); line-height: 1.05;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rw-mast-rail span {
  display: block; font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--rw-navy-label); margin-top: 0.5rem;
}
/* the navy-band crest trap: only ever the dark variant in here */
.rw-scope .rw-onnavy .logo-l { display: none !important; }
.rw-scope .rw-onnavy .logo-d { display: inline-block !important; }
.rw-mast-crest { display: inline-flex; width: 26px; height: 26px; vertical-align: -5px; margin-right: 9px; }
.rw-mast-crest img { width: 100%; height: 100%; object-fit: contain; }

/* =============================================================================
   The year rail — bar height = share of the class that reached the NHL,
   tint = how settled the redraft is.
   ============================================================================= */
.rw-years { padding: 1.4rem 0 0.2rem; }
.rw-rail-top {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap; margin-bottom: 0.55rem;
}
.rw-rail-key {
  display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap;
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); letter-spacing: 0.07em; color: var(--rw-muted);
}
.rw-rail-key-t { font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.rw-rail-key-b { display: inline-flex; align-items: center; gap: 5px; }
.rw-rail-key-b i { width: 9px; height: 9px; border-radius: 2px; }
.rw-rail-key-b i.final { background: var(--rw-blue); }
.rw-rail-key-b i.maturing { background: var(--rw-blue); opacity: .5; }
.rw-rail-key-b i.traj { background: var(--rw-muted-2); opacity: .45; }
/* Chrome ignores ::-webkit-scrollbar once scrollbar-width is set, so the rail is
   themed with scrollbar-color and both themes get a quiet track. */
.rw-rail-scroll {
  overflow-x: auto; padding-bottom: 4px;
  scrollbar-width: thin; scrollbar-color: var(--rw-border-2) transparent;
}
.rw-rail-scroll::-webkit-scrollbar { height: 5px; }
.rw-rail-scroll::-webkit-scrollbar-thumb { background: var(--rw-border); border-radius: 3px; }
.rw-rail-track {
  display: flex; align-items: flex-end; gap: 2px; min-width: min-content;
  border-bottom: 1px solid var(--rw-border);
}
.rw-rail-dec {
  align-self: stretch; display: flex; align-items: flex-end; padding: 0 7px 7px 9px; margin-left: 4px;
  border-left: 1px solid var(--rw-hair);
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; letter-spacing: 0.1em;
  color: var(--rw-muted); white-space: nowrap;
}
.rw-rail-dec[data-first] { border-left: 0; margin-left: 0; padding-left: 0; }
.rw-yr {
  display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 0 2px 7px;
  background: none; border: 0; cursor: pointer; border-radius: 6px 6px 0 0; min-width: 28px;
  transition: background .14s;
}
.rw-yr-spark { display: flex; align-items: flex-end; height: 46px; width: 14px; }
.rw-yr-spark i {
  display: block; width: 100%; border-radius: 3px 3px 0 0;
  background: var(--rw-muted-2); opacity: .4; transition: opacity .14s, background .14s;
}
.rw-yr.is-final .rw-yr-spark i { background: var(--rw-blue); opacity: .62; }
.rw-yr.is-maturing .rw-yr-spark i { background: var(--rw-blue); opacity: .34; }
.rw-yr-n {
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; color: var(--rw-muted);
  letter-spacing: 0.02em; white-space: nowrap; transition: color .14s;
}
.rw-yr:hover .rw-yr-spark i { opacity: .95; }
.rw-yr:hover .rw-yr-n { color: var(--rw-ink); }
.rw-yr:focus-visible { outline: 2px solid var(--rw-blue); outline-offset: 1px; }
.rw-yr.is-on { background: var(--rw-blue-soft); }
.rw-yr.is-on .rw-yr-spark i,
.rw-yr.is-on.is-maturing .rw-yr-spark i,
.rw-yr.is-on.is-final .rw-yr-spark i { background: var(--rw-blue); opacity: 1; }
.rw-yr.is-on .rw-yr-n {
  color: var(--rw-on-blue); background: var(--rw-blue); border-radius: 5px; padding: 2px 6px; margin: -2px -4px;
  font-size: var(--rw-t-meta); letter-spacing: .02em;
}

/* =============================================================================
   Find a player — one field over all 8,515 re-picked players.
   ============================================================================= */
.rw-find { position: relative; margin-top: 1.1rem; }
.rw-find-box {
  display: flex; align-items: center; gap: 0.6rem;
  background: var(--rw-card); border: 1px solid var(--rw-border); border-radius: 12px;
  padding: 0 0.85rem; box-shadow: var(--rw-lift); transition: border-color .15s, box-shadow .15s;
}
.rw-find-box:focus-within { border-color: var(--rw-blue); box-shadow: 0 0 0 3px var(--rw-blue-soft); }
.rw-find-box > svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--rw-muted); }
.rw-find input {
  flex: 1; min-width: 0; border: 0; background: none; outline: none; color: var(--rw-ink);
  font-family: var(--rw-sans); font-size: var(--rw-t-body-s); font-weight: 600;
  padding: 0.68rem 0; letter-spacing: .01em;
}
.rw-find input::placeholder { color: var(--rw-muted); font-weight: 500; }
.rw-find-hint {
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted);
  white-space: nowrap; letter-spacing: .04em;
}
.rw-find-clear {
  border: 0; background: none; cursor: pointer; color: var(--rw-muted); padding: 4px;
  line-height: 0; border-radius: 6px;
}
.rw-find-clear:hover { color: var(--rw-ink); }
.rw-find-clear:focus-visible { outline: 2px solid var(--rw-blue); outline-offset: 1px; }
.rw-find-clear svg { width: 13px; height: 13px; }
.rw-find-out {
  position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 6px);
  background: var(--rw-card); border: 1px solid var(--rw-border); border-radius: 12px;
  box-shadow: var(--rw-shadow); overflow: hidden; max-height: 340px; overflow-y: auto;
}
.rw-find-out[hidden] { display: none; }
.rw-find-r {
  display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 0.7rem; align-items: center;
  width: 100%; text-align: left; background: none; border: 0; cursor: pointer;
  padding: 0.5rem 0.85rem; border-bottom: 1px solid var(--rw-hair); font-family: var(--rw-sans);
}
.rw-find-r:last-child { border-bottom: 0; }
.rw-find-r:hover, .rw-find-r.is-active { background: var(--rw-blue-soft); }
.rw-find-r:focus-visible { outline: 2px solid var(--rw-blue); outline-offset: -2px; }
.rw-find-yr {
  font-family: var(--rw-mono); font-size: var(--rw-t-meta-2); font-weight: 700; color: var(--rw-blue);
}
.rw-find-nm { display: block; font-weight: 700; font-size: var(--rw-t-body-s); color: var(--rw-ink); line-height: 1.25; }
.rw-find-mt { display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); margin-top: 2px; }
.rw-find-none { padding: 0.9rem 0.85rem; font-family: var(--rw-mono); font-size: var(--rw-t-meta); color: var(--rw-muted); }

/* =============================================================================
   Bands
   ============================================================================= */
.rw-band { margin-top: var(--rw-band); scroll-margin-top: 1.5rem; }
.rw-band-top { margin-top: 2.2rem; }
.rw-band-head { display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
.rw-band h2 {
  font-family: var(--rw-serif); font-weight: 600; font-size: clamp(1.55rem, 3.1vw, 2rem);
  margin: 0; letter-spacing: -0.012em; line-height: 1.15;
}
.rw-band h2 em { color: var(--rw-blue); }
.rw-band-rule { flex: 1; height: 1px; background: var(--rw-border); min-width: 40px; }
.rw-stamp {
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted);
  letter-spacing: 0.05em; white-space: nowrap;
}
.rw-stamp::before { content: "\25F7"; color: var(--rw-receipt); margin-right: 5px; }
.rw-chips { display: flex; gap: 0.35rem; flex-wrap: wrap; }
/* the class receipt: same stamp voice, but it is a sentence, so it wraps */
.rw-receipt { margin: 0.75rem 0 0; }
.rw-receipt .rw-stamp { white-space: normal; line-height: 1.75; }
.rw-chip {
  font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 5px 10px; border-radius: 999px; border: 1px solid var(--rw-border); color: var(--rw-muted);
  white-space: nowrap;
}
.rw-chip.is-mode.final { background: var(--rw-held-soft); color: var(--rw-held); border-color: var(--rw-held); }
.rw-chip.is-mode.maturing { background: var(--rw-blue-soft); color: var(--rw-blue); border-color: var(--rw-blue); }
.rw-chip.is-mode.traj { background: var(--rw-card2); color: var(--rw-ink-2); border-color: var(--rw-border-2); }
.rw-note {
  color: var(--rw-muted); font-size: var(--rw-t-body-s); line-height: 1.65; margin: 0.75rem 0 0; max-width: 78ch;
}
.rw-note a { color: var(--rw-blue); font-weight: 600; }
.rw-note b { color: var(--rw-ink-2); font-weight: 700; }
.rw-hint {
  display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin: 0.65rem 0 0.9rem;
  font-family: var(--rw-mono); font-size: var(--rw-t-meta); color: var(--rw-muted);
}
.rw-hint .sep { opacity: .45; }
.rw-hint-ic { width: 15px; height: 15px; display: inline-flex; color: var(--rw-blue); }
.rw-hint-ic svg { width: 100%; height: 100%; }

/* a shared segmented control: ledger depth, scorecard scope */
.rw-seg { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rw-seg-k {
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--rw-muted); margin-right: 2px;
}
.rw-seg button {
  font-family: var(--rw-mono); font-size: var(--rw-t-meta); font-weight: 700; letter-spacing: 0.05em;
  padding: 6px 12px; border-radius: 999px; border: 1px solid var(--rw-border);
  background: var(--rw-card); color: var(--rw-muted); cursor: pointer;
  transition: color .14s, border-color .14s, background .14s;
}
.rw-seg button:hover { color: var(--rw-ink); border-color: var(--rw-muted-2); }
.rw-seg button.on { background: var(--rw-blue); border-color: var(--rw-blue); color: var(--rw-on-blue); }
.rw-seg button:focus-visible { outline: 2px solid var(--rw-blue); outline-offset: 2px; }

/* =============================================================================
   Module 1 — the verdict
   ============================================================================= */
.rw-verdict {
  display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.3rem; align-items: center;
  background: var(--rw-card); border: 1px solid var(--rw-border); border-radius: 16px;
  box-shadow: var(--rw-shadow); padding: 1.4rem 1.6rem; margin-top: 1rem;
  position: relative; overflow: hidden;
}
.rw-verdict::before {
  content: ""; position: absolute; inset: 0 auto 0 0; width: 4px;
  background: linear-gradient(180deg, var(--rw-blue), var(--rw-down));
}
.rw-verdict.is-same { grid-template-columns: 1fr auto; }
.rw-verdict.is-same::before { background: var(--rw-held); }
.rw-vd-side { display: flex; gap: 1rem; align-items: center; min-width: 0; position: relative; }
.rw-vd-t { min-width: 0; flex: 1; }
.rw-vd-k {
  display: block; font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--rw-muted);
}
.rw-verdict .is-should .rw-vd-k { color: var(--rw-blue); }
.rw-vd-n {
  display: block; font-family: var(--rw-serif); font-weight: 600;
  font-size: clamp(1.3rem, 2.4vw, 1.6rem); line-height: 1.12; margin: 4px 0 5px; color: var(--rw-ink);
}
a.rw-vd-n:hover, button.rw-vd-n:hover { color: var(--rw-blue); }
.rw-vd-m { display: block; font-family: var(--rw-mono); font-size: var(--rw-t-meta); color: var(--rw-muted); line-height: 1.55; }
.rw-vd-mid {
  display: grid; place-items: center; gap: 7px; padding: 0 0.3rem;
  border-left: 1px solid var(--rw-hair); border-right: 1px solid var(--rw-hair); min-height: 74px;
}
.rw-vd-vs { font-family: var(--rw-serif); color: var(--rw-muted); font-size: 0.95rem; white-space: nowrap; padding: 0 0.8rem; }
.rw-vd-arrow {
  font-family: var(--rw-mono); font-size: var(--rw-t-meta); font-weight: 700; color: var(--rw-blue);
  background: var(--rw-blue-soft); border: 1px solid var(--rw-blue-line); border-radius: 6px; padding: 3px 9px;
  white-space: nowrap;
}
.rw-vd-arrow b { font-weight: 400; font-size: var(--rw-t-micro); letter-spacing: 0.1em; text-transform: uppercase; opacity: .8; }
.rw-vd-seal { display: grid; place-items: center; padding: 0.7rem 1.2rem; border-left: 1px solid var(--rw-hair); text-align: center; position: relative; z-index: 1; }
.rw-vd-seal b { font-family: var(--rw-serif); font-weight: 600; font-size: 2.2rem; color: var(--rw-held); line-height: 1; }
.rw-vd-seal b span { font-size: 1rem; }
.rw-vd-seal > span {
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--rw-muted); margin-top: 7px;
}

/* =============================================================================
   Module 2 — the slot ledger
   ============================================================================= */
.rw-ledger {
  background: var(--rw-card); border: 1px solid var(--rw-border); border-radius: 16px;
  box-shadow: var(--rw-shadow); overflow: hidden;
}
.rw-ledger-head, .rw-slot {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) 34px minmax(0, 1fr) 84px;
  align-items: center; gap: 0.4rem;
}
.rw-ledger-head {
  padding: 0.7rem 1.1rem; background: var(--rw-card2); border-bottom: 1px solid var(--rw-border);
  font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--rw-muted);
}
.rw-lh-a { color: var(--rw-blue); }
.rw-lh-b { color: var(--rw-ink-2); }
.rw-lh-v, .rw-lh-n { text-align: center; }
.rw-slot { padding: 0.45rem 1.1rem; border-bottom: 1px solid var(--rw-hair); position: relative; }
.rw-slot:last-child { border-bottom: 0; }
.rw-slot.is-held { background: var(--rw-held-soft); }
.rw-slot:hover { background: var(--rw-blue-soft); }
.rw-slot-n {
  font-family: var(--rw-serif); font-weight: 600; font-size: 1.4rem;
  color: var(--rw-muted); text-align: center; line-height: 1;
}
.rw-slot.is-held .rw-slot-n { color: var(--rw-held); }
/* a quiet round marker so a 60-deep ledger still reads as rounds */
.rw-slot-rd {
  display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700;
  letter-spacing: .06em; color: var(--rw-muted-2); margin-top: 3px;
}
.rw-ledger-more { display: flex; justify-content: center; padding: 0.7rem; background: var(--rw-card2); border-top: 1px solid var(--rw-hair); }

/* the spine: one continuous rule down the middle so the two sides read as one table */
.rw-spine { position: relative; align-self: stretch; display: grid; place-items: center; }
.rw-spine::before { content: ""; position: absolute; top: 0; bottom: 0; width: 1px; background: var(--rw-hair); }
.rw-spine i {
  width: 7px; height: 7px; transform: rotate(45deg); background: var(--rw-card);
  border: 1px solid var(--rw-border); position: relative; z-index: 1;
}
.rw-slot.is-held .rw-spine i { background: var(--rw-held); border-color: var(--rw-held); }

.rw-side {
  display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; gap: 0.6rem; align-items: center;
  position: relative; padding: 0.35rem 0.3rem; border-radius: 10px; min-width: 0;
}
.rw-side-none { font-family: var(--rw-mono); font-size: var(--rw-t-meta); color: var(--rw-muted); opacity: .7; grid-column: 1 / -1; }
.rw-side:hover { background: var(--rw-card2); }
.rw-nm { display: block; font-weight: 700; font-size: 0.875rem; line-height: 1.25; color: var(--rw-ink); }
a.rw-nm:hover, button.rw-nm:hover { color: var(--rw-blue); text-decoration: underline; text-underline-offset: 2px; }
.rw-mt { display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); margin-top: 3px; line-height: 1.4; }
.rw-side-t { display: block; min-width: 0; }

/* mugs: a team-tinted monogram is the floor, never an empty disc */
.rw-mug {
  width: 38px; height: 38px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
  background: var(--rw-card2); border: 1px solid var(--rw-border); display: grid; place-items: center;
  position: relative;
}
.rw-mug img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rw-mug b {
  font-size: 0.6rem; font-weight: 800; color: var(--rw-ink-2); letter-spacing: .02em;
  font-family: var(--rw-sans);
}
.rw-mug.sm { width: 28px; height: 28px; }
.rw-mug.sm b { font-size: var(--rw-t-micro); }
.rw-mug.xl { width: 64px; height: 64px; border: 2px solid var(--rw-blue); box-shadow: 0 0 0 4px var(--rw-blue-soft); }
.rw-mug.xl b { font-size: 1.05rem; }
.rw-logo { width: 21px; height: 21px; flex-shrink: 0; display: inline-flex; }
.rw-logo img { width: 100%; height: 100%; object-fit: contain; }

.rw-vc-w { display: grid; place-items: center; }
.rw-vc {
  font-family: var(--rw-mono); font-size: var(--rw-t-meta); font-weight: 700; padding: 3px 8px;
  border-radius: 6px; min-width: 46px; text-align: center; display: inline-block;
}
.rw-vc.up { background: var(--rw-up-soft); color: var(--rw-up); border: 1px solid var(--rw-blue-line); }
.rw-vc.down { background: var(--rw-down-soft); color: var(--rw-down); border: 1px solid var(--rw-down); }
.rw-vc.held {
  background: var(--rw-held-soft); color: var(--rw-held); border: 1px solid var(--rw-held);
  font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.rw-vc.flat, .rw-vc.none { color: var(--rw-muted); border: 1px solid var(--rw-hair); }

/* the secondary affordance: the quick-card button */
.rw-cardbtn {
  position: relative; z-index: 2; width: 27px; height: 27px; flex-shrink: 0; display: grid; place-items: center;
  border-radius: 7px; border: 1px solid var(--rw-border); background: var(--rw-card);
  color: var(--rw-muted); cursor: pointer; padding: 0; transition: color .14s, border-color .14s, background .14s;
}
.rw-cardbtn svg { width: 15px; height: 15px; }
.rw-cardbtn:hover { color: var(--rw-blue); border-color: var(--rw-blue); background: var(--rw-blue-soft); }
.rw-cardbtn:focus-visible { outline: 2px solid var(--rw-blue); outline-offset: 2px; }

/* stretched link: the whole side/card navigates, the button stays on top */
.rw-stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 10px; }
.rw-stretch:focus-visible { outline: none; }
.rw-stretch:focus-visible::after { outline: 2px solid var(--rw-blue); outline-offset: 1px; }

/* =============================================================================
   Module 3 — the class shape
   ============================================================================= */
.rw-shape { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 1.1rem; margin-top: 1rem; align-items: stretch; }
.rw-shape-a { display: flex; flex-direction: column; }
.rw-shape-a .rw-sh-report { margin-top: auto; }
.rw-panel {
  background: var(--rw-card); border: 1px solid var(--rw-border); border-radius: 16px;
  box-shadow: var(--rw-shadow); padding: 1.25rem 1.35rem;
}
.rw-panel h3 {
  font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--rw-blue); margin: 0 0 0.25rem;
}
.rw-panel-sub { font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); line-height: 1.6; margin-bottom: 1rem; }
.rw-sh-lede { font-family: var(--rw-serif); font-size: 1.05rem; line-height: 1.45; margin: 0 0 0.85rem; color: var(--rw-ink); }
.rw-sh-lede b { font-weight: 600; font-size: 1.85rem; color: var(--rw-blue); vertical-align: -2px; margin-right: 3px; }
.rw-sh-bar { display: flex; height: 20px; border-radius: 5px; overflow: hidden; background: var(--rw-track); }
.rw-sh-seg { display: grid; place-items: center; height: 100%; overflow: hidden; flex: 0 0 auto; }
.rw-sh-seg span { font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; color: inherit; }
.rw-sh-seg + .rw-sh-seg { box-shadow: inset 1px 0 0 var(--rw-card); }
.rw-sh-brace {
  display: flex; align-items: flex-start; margin-top: 6px; font-family: var(--rw-mono);
  font-size: var(--rw-t-micro); color: var(--rw-muted); letter-spacing: .04em; line-height: 1.5;
}
.rw-sh-brace i {
  display: block; border-left: 1px solid var(--rw-border-2); border-top: 1px solid var(--rw-border-2);
  height: 5px; margin: 3px 8px 0 0; flex-shrink: 0;
}
.rw-sh-brace span { flex: 1; min-width: 0; }
.rw-sh-legs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px; margin-top: 0.85rem; }
.rw-sh-leg { display: flex; align-items: center; gap: 7px; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); }
.rw-sh-leg i { width: 9px; height: 9px; border-radius: 2px; flex-shrink: 0; }
.rw-sh-leg span { flex: 1; }
.rw-sh-leg b { color: var(--rw-ink); font-weight: 700; }
.rw-sh-leg.is-nil { opacity: .45; }
.rw-sh-pos { margin-top: 1.15rem; padding-top: 0.95rem; border-top: 1px solid var(--rw-hair); }
.rw-sh-pos-rows { display: grid; gap: 0.55rem; margin-top: 0.7rem; }
.rw-sh-pr { display: grid; grid-template-columns: 30px minmax(0, 1fr) 78px; gap: 0.6rem; align-items: center; }
.rw-sh-pr-k { font-family: var(--rw-mono); font-size: var(--rw-t-meta-2); font-weight: 700; color: var(--rw-ink); }
.rw-sh-pr-t { position: relative; height: 16px; }
.rw-sh-pr-t i { position: absolute; left: 0; height: 6px; border-radius: 3px; }
.rw-sh-pr-t i.a { top: 1px; background: var(--rw-blue); }
.rw-sh-pr-t i.b { top: 9px; background: var(--rw-muted-2); opacity: .55; }
.rw-sh-pr-n { font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); text-align: right; white-space: nowrap; }
.rw-sh-pr-n b { color: var(--rw-ink); font-weight: 700; }
.rw-sh-poskey { display: flex; gap: 0.9rem; flex-wrap: wrap; margin-top: 0.6rem; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); }
.rw-sh-poskey span { display: inline-flex; align-items: center; gap: 6px; }
.rw-sh-poskey i { width: 14px; height: 5px; border-radius: 3px; }
.rw-sh-report { margin-top: 1.15rem; padding-top: 0.95rem; border-top: 1px solid var(--rw-hair); }
.rw-sh-rk { font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--rw-muted); margin-bottom: 0.75rem; }
.rw-sh-nums { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.7rem; }
.rw-sh-nums b { display: block; font-family: var(--rw-serif); font-weight: 600; font-size: 1.65rem; line-height: 1; color: var(--rw-held); }
.rw-sh-nums b span { font-size: 0.85rem; color: var(--rw-muted); }
.rw-sh-nums b.bad { color: var(--rw-down); }
.rw-sh-nums b.nil { color: var(--rw-muted); }
.rw-sh-nums > div > span { display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); margin-top: 6px; line-height: 1.45; }

.rw-scatter { width: 100%; height: auto; display: block; }
.rw-scatter .rw-sc-t { font-family: var(--rw-mono); font-size: 9px; fill: var(--rw-muted); }
.rw-scatter .rw-sc-ax { font-family: var(--rw-mono); font-size: 9.5px; fill: var(--rw-muted); letter-spacing: .07em; text-transform: uppercase; }
.rw-scatter .rw-sc-band { font-family: var(--rw-mono); font-size: 9px; fill: var(--rw-muted); letter-spacing: .08em; text-transform: uppercase; }
.rw-scatter .rw-sc-nm { font-family: var(--rw-sans); font-size: 10.5px; font-weight: 800; fill: var(--rw-ink); }
.rw-sc-legend { display: flex; gap: 0.85rem; flex-wrap: wrap; margin-top: 0.7rem; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); }
.rw-sc-legend span { display: inline-flex; align-items: center; gap: 6px; }
.rw-sc-legend i.dot { width: 8px; height: 8px; border-radius: 50%; }
.rw-sc-legend i.band { width: 15px; height: 9px; border-radius: 2px; }
.rw-sc-legend i.band.top { background: var(--rw-blue); opacity: .16; border: 1px solid var(--rw-blue-line); }
.rw-sc-legend i.band.r1 { background: var(--rw-muted-2); opacity: .18; border: 1px dashed var(--rw-border-2); }

/* --- loading skeletons --- */
.rw-skel { position: relative; overflow: hidden; border-color: var(--rw-hair); background: var(--rw-card2); }
.rw-skel > * { visibility: hidden; }
.rw-skel::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, transparent 20%, rgba(125, 143, 166, .16) 50%, transparent 80%);
  animation: rwShim 1.4s linear infinite;
}
@keyframes rwShim { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
.rw-slot-skel { display: block; padding: 0.9rem 1.1rem; }
.rw-skel-bar { display: block; height: 30px; border-radius: 8px; background: var(--rw-card2); position: relative; overflow: hidden; }
.rw-skel-bar::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, transparent 20%, rgba(125, 143, 166, .16) 50%, transparent 80%);
  animation: rwShim 1.4s linear infinite;
}
.rw-verdict.rw-skel::before { display: none; }
.rw-tb.rw-skel { border-radius: 7px; }
.rw-tb-none { display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); padding: 6px 0; }
.rw-miss {
  background: var(--rw-card); border: 1px solid var(--rw-border); border-left: 3px solid var(--rw-down);
  border-radius: 0 12px 12px 0; padding: 1rem 1.2rem; margin-top: 1rem; max-width: none;
}

/* =============================================================================
   Module 4 — steals & slides
   ============================================================================= */
.rw-movers { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; margin-top: 1rem; }
.rw-movers h3 { font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; margin: 0 0 0.75rem; }
.up-h { color: var(--rw-blue); }
.down-h { color: var(--rw-down); }
.rw-mover {
  display: grid; grid-template-columns: 44px minmax(0, 1fr) auto auto; gap: 0.8rem; align-items: center;
  background: var(--rw-card); border: 1px solid var(--rw-border); border-radius: 12px;
  padding: 0.7rem 0.9rem; margin-bottom: 0.55rem; box-shadow: var(--rw-lift);
  transition: transform .16s, box-shadow .16s; position: relative;
}
.rw-mover.riser { border-left: 3px solid var(--rw-blue); }
.rw-mover.faller { border-left: 3px solid var(--rw-down); }
.rw-mover:hover { transform: translateY(-2px); box-shadow: var(--rw-hover); }
.rw-mover .rw-mug { width: 44px; height: 44px; }
.rw-mover-t { min-width: 0; }
.rw-move { display: block; position: relative; height: 4px; border-radius: 2px; background: var(--rw-track); margin: 8px 0 6px; }
.rw-move .span { position: absolute; top: 0; height: 100%; border-radius: 2px; }
.rw-mover.riser .rw-move .span { background: var(--rw-blue); }
.rw-mover.faller .rw-move .span { background: var(--rw-down); }
.rw-move .dot { position: absolute; top: 50%; width: 7px; height: 7px; border-radius: 50%; transform: translate(-50%, -50%); }
.rw-move .dot.from { background: var(--rw-muted-2); }
.rw-mover.riser .rw-move .dot.to { background: var(--rw-blue); box-shadow: 0 0 0 2px var(--rw-blue-soft); }
.rw-mover.faller .rw-move .dot.to { background: var(--rw-down); box-shadow: 0 0 0 2px var(--rw-down-soft); }
.rw-mt2 { display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); }
.rw-mt2 span { color: var(--rw-muted-2); }
.rw-mover-d { font-family: var(--rw-serif); font-weight: 600; font-size: 1.4rem; text-align: right; line-height: 1; }
.rw-mover.riser .rw-mover-d { color: var(--rw-blue); }
.rw-mover.faller .rw-mover-d { color: var(--rw-down); }
.rw-mover-d span {
  display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700;
  letter-spacing: 0.12em; color: var(--rw-muted); margin-top: 4px;
}

/* =============================================================================
   Module 5 — team scorecard (this class) and the all-time franchise ledger
   ============================================================================= */
.rw-scorebar { display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap; margin: 1rem 0 0.2rem; }

.rw-teams { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 0.8rem; margin-top: 0.9rem; }
.rw-team {
  background: var(--rw-card); border: 1px solid var(--rw-border); border-radius: 13px;
  padding: 0.85rem 0.95rem; position: relative; overflow: hidden; box-shadow: var(--rw-lift);
  transition: transform .16s, box-shadow .16s, border-color .16s; text-align: left;
  font-family: var(--rw-sans); color: inherit; cursor: pointer; width: 100%; display: block;
}
.rw-team:hover { transform: translateY(-2px); box-shadow: var(--rw-hover); }
.rw-team:focus-visible { outline: 2px solid var(--rw-blue); outline-offset: 2px; }
.rw-team.is-pod { border-color: var(--rw-blue-line); }
.rw-team.is-open { border-color: var(--rw-blue); box-shadow: 0 0 0 2px var(--rw-blue-soft); }
.rw-team-top { display: flex; align-items: center; gap: 0.55rem; position: relative; }
.rw-team-top .rw-logo { width: 26px; height: 26px; }
.rw-team-top b { font-weight: 800; font-size: 0.875rem; letter-spacing: 0.05em; }
.rw-team-rk { margin-left: auto; font-family: var(--rw-serif); font-size: 1.1rem; color: var(--rw-muted); }
.rw-team.is-pod .rw-team-rk { color: var(--rw-blue); }
.rw-team-sur { display: flex; align-items: baseline; gap: 6px; margin-top: 0.5rem; }
.rw-team-sur b { font-family: var(--rw-serif); font-weight: 600; font-size: 1.45rem; line-height: 1; color: var(--rw-blue); }
.rw-team-sur.neg b { color: var(--rw-down); }
.rw-team-sur span {
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--rw-muted);
}
.rw-team-bar { display: block; height: 6px; border-radius: 3px; background: var(--rw-track); margin: 0.5rem 0 0.5rem; position: relative; }
.rw-team-bar .mid { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--rw-border-2); }
.rw-team-bar i { position: absolute; top: 0; bottom: 0; border-radius: 2px; background: var(--rw-blue); }
.rw-team-bar i.neg { background: var(--rw-down); }
.rw-team-m { display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); line-height: 1.5; }
.rw-team-m b { color: var(--rw-ink); }
.rw-team-best { display: block; margin-top: 0.6rem; padding-top: 0.5rem; border-top: 1px solid var(--rw-hair); position: relative; }
.rw-team-best-k {
  display: block; font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--rw-muted); margin-bottom: 6px;
}
.rw-tb { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 0.5rem; align-items: center; position: relative; }
.rw-tb-t { display: block; min-width: 0; }
.rw-tb-n { display: block; font-weight: 700; font-size: var(--rw-t-body-s); line-height: 1.2; color: var(--rw-ink); }
.rw-tb .rw-mt .ar { color: var(--rw-muted-2); }
.rw-tb .rw-vc { min-width: 38px; font-size: var(--rw-t-micro); padding: 2px 6px; }
.rw-team-open {
  display: flex; align-items: center; gap: 5px; margin-top: 0.6rem;
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--rw-blue);
}
.rw-team-open svg { width: 11px; height: 11px; transition: transform .16s; }
.rw-team.is-open .rw-team-open svg { transform: rotate(180deg); }

/* the club drill-down: every pick a club made in the class in view */
.rw-club {
  margin-top: 0.9rem; background: var(--rw-card); border: 1px solid var(--rw-blue-line);
  border-radius: 16px; box-shadow: var(--rw-shadow); overflow: hidden;
}
.rw-club[hidden] { display: none; }
.rw-club-head {
  display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap;
  padding: 0.85rem 1.1rem; background: var(--rw-card2); border-bottom: 1px solid var(--rw-border);
}
.rw-club-head .rw-logo { width: 28px; height: 28px; }
.rw-club-ttl { font-family: var(--rw-serif); font-size: 1.15rem; font-weight: 600; color: var(--rw-ink); }
.rw-club-sub { font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); letter-spacing: .04em; }
.rw-club-x {
  margin-left: auto; border: 1px solid var(--rw-border); background: var(--rw-card); border-radius: 7px;
  width: 26px; height: 26px; display: grid; place-items: center; cursor: pointer; color: var(--rw-muted); padding: 0;
}
.rw-club-x:hover { color: var(--rw-ink); border-color: var(--rw-muted-2); }
.rw-club-x:focus-visible { outline: 2px solid var(--rw-blue); outline-offset: 2px; }
.rw-club-x svg { width: 12px; height: 12px; }
.rw-club-rows { display: block; }
.rw-cr {
  display: grid; grid-template-columns: 74px 36px minmax(0, 1fr) minmax(0, 130px) 66px 27px;
  gap: 0.6rem; align-items: center; padding: 0.5rem 1.1rem;
  border-bottom: 1px solid var(--rw-hair); position: relative;
}
.rw-cr:last-child { border-bottom: 0; }
.rw-cr:hover { background: var(--rw-blue-soft); }
.rw-cr-slot { font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); letter-spacing: .04em; }
.rw-cr-slot b { display: block; font-size: var(--rw-t-meta-2); color: var(--rw-ink); font-weight: 700; }
.rw-cr-out { font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); text-align: right; line-height: 1.4; }
.rw-club-foot {
  padding: 0.75rem 1.1rem; background: var(--rw-card2); border-top: 1px solid var(--rw-hair);
  font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); line-height: 1.7;
}
.rw-club-foot b { color: var(--rw-ink); }

/* the all-time franchise ledger */
.rw-alltime { margin-top: 0.9rem; background: var(--rw-card); border: 1px solid var(--rw-border); border-radius: 16px; box-shadow: var(--rw-shadow); overflow: hidden; }
.rw-at-head, .rw-at-row {
  display: grid; grid-template-columns: 40px 92px minmax(0, 1.15fr) 78px 76px minmax(0, 1.35fr);
  gap: 0.6rem; align-items: center;
}
.rw-at-head {
  padding: 0.7rem 1.1rem; background: var(--rw-card2); border-bottom: 1px solid var(--rw-border);
  font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; color: var(--rw-muted);
}
.rw-at-head span.num, .rw-at-row .num { text-align: right; }
.rw-at-row { padding: 0.5rem 1.1rem; border-bottom: 1px solid var(--rw-hair); position: relative; }
.rw-at-row:last-child { border-bottom: 0; }
.rw-at-row:hover { background: var(--rw-blue-soft); }
.rw-at-rk { font-family: var(--rw-mono); font-size: var(--rw-t-meta); color: var(--rw-muted); }
.rw-at-team { display: flex; align-items: center; gap: 0.5rem; }
.rw-at-team .rw-logo { width: 22px; height: 22px; }
.rw-at-team b { font-weight: 800; font-size: var(--rw-t-body-s); letter-spacing: .05em; }
.rw-at-fin { display: flex; align-items: center; gap: 0.55rem; }
.rw-at-track { position: relative; flex: 1; height: 6px; border-radius: 3px; background: var(--rw-track); min-width: 40px; }
.rw-at-track i { position: absolute; top: 0; bottom: 0; left: 0; border-radius: 3px; background: var(--rw-blue); }
.rw-at-fin b { font-family: var(--rw-mono); font-size: var(--rw-t-meta-2); font-weight: 700; color: var(--rw-ink); white-space: nowrap; }
.rw-at-n { font-family: var(--rw-mono); font-size: var(--rw-t-meta); color: var(--rw-ink); }
.rw-at-n span { color: var(--rw-muted); }
.rw-at-best { font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); line-height: 1.45; min-width: 0; }
.rw-at-best b { color: var(--rw-ink); font-weight: 700; font-family: var(--rw-sans); font-size: var(--rw-t-body-s); display: block; }
.rw-at-thin { opacity: .72; }
.rw-at-thin .rw-at-team b::after {
  content: "thin sample"; display: inline-block; margin-left: 7px; padding: 1px 6px; border-radius: 999px;
  border: 1px solid var(--rw-border); font-family: var(--rw-mono); font-size: var(--rw-t-micro);
  font-weight: 700; letter-spacing: .06em; text-transform: none; color: var(--rw-muted);
}

/* =============================================================================
   The wall — all 36 classes at once
   ============================================================================= */
.rw-wall { margin-top: 1rem; background: var(--rw-card); border: 1px solid var(--rw-border); border-radius: 16px; box-shadow: var(--rw-shadow); overflow: hidden; }
.rw-wall-head, .rw-wr {
  display: grid; grid-template-columns: 62px 104px minmax(0, 1.15fr) minmax(0, 1.15fr) minmax(0, 1.15fr);
  gap: 0.7rem; align-items: center;
}
.rw-wall-head {
  padding: 0.7rem 1.1rem; background: var(--rw-card2); border-bottom: 1px solid var(--rw-border);
  font-size: var(--rw-t-micro); font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; color: var(--rw-muted);
}
.rw-wall-head .up { color: var(--rw-blue); }
.rw-wall-head .down { color: var(--rw-down); }
.rw-wr {
  width: 100%; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--rw-hair);
  padding: 0.5rem 1.1rem; cursor: pointer; font-family: var(--rw-sans); color: inherit;
  transition: background .13s;
}
.rw-wr:last-child { border-bottom: 0; }
.rw-wr:hover { background: var(--rw-blue-soft); }
.rw-wr:focus-visible { outline: 2px solid var(--rw-blue); outline-offset: -2px; }
.rw-wr.is-on { background: var(--rw-blue-soft); box-shadow: inset 3px 0 0 var(--rw-blue); }
.rw-wr-y { font-family: var(--rw-serif); font-size: 1.25rem; font-weight: 600; color: var(--rw-ink); line-height: 1; }
.rw-wr-y span { display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--rw-muted); margin-top: 4px; }
.rw-wr-rate { display: flex; align-items: center; gap: 0.5rem; }
.rw-wr-track { position: relative; flex: 1; height: 6px; border-radius: 3px; background: var(--rw-track); min-width: 34px; }
.rw-wr-track i { position: absolute; inset: 0 auto 0 0; border-radius: 3px; background: var(--rw-blue); opacity: .62; }
.rw-wr.is-traj .rw-wr-track i { background: var(--rw-muted-2); opacity: .5; }
.rw-wr-rate b { font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700; color: var(--rw-muted); white-space: nowrap; }
.rw-wc { min-width: 0; }
.rw-wc-n { display: block; font-weight: 700; font-size: var(--rw-t-body-s); color: var(--rw-ink); line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rw-wc-m { display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); margin-top: 3px; }
.rw-wc-m b { font-weight: 700; }
.rw-wc.up .rw-wc-m b { color: var(--rw-blue); }
.rw-wc.down .rw-wc-m b { color: var(--rw-down); }
.rw-wall-foot { padding: 0.8rem 1.1rem; background: var(--rw-card2); border-top: 1px solid var(--rw-hair); font-family: var(--rw-mono); font-size: var(--rw-t-micro); color: var(--rw-muted); line-height: 1.7; }

/* --- ghost crest watermark --- */
.rw-ghost { position: absolute; right: -26px; bottom: -30px; width: 130px; height: 130px; opacity: .05; transform: rotate(-8deg); pointer-events: none; z-index: 0; }
.rw-ghost img { width: 100%; height: 100%; }
.rw-verdict .rw-ghost { right: auto; left: 44%; bottom: -64px; width: 190px; height: 190px; opacity: .045; }
.rw-verdict.is-same .rw-ghost { left: 34%; }

/* --- theme-aware crest swap --- */
.rw-scope .logo-l { display: inline-block; }
.rw-scope .logo-d { display: none; }
[data-theme="dark"] .rw-scope .logo-l { display: none; }
[data-theme="dark"] .rw-scope .logo-d { display: inline-block; }

.rw-loading, .rw-empty { padding: 3rem 0; text-align: center; font-family: var(--rw-mono); font-size: var(--rw-t-meta-2); color: var(--rw-muted); }
.rw-foot { margin-top: 2.5rem; font-family: var(--rw-mono); font-size: var(--rw-t-meta); color: var(--rw-muted); line-height: 1.9; }
.rw-foot a { color: var(--rw-blue); }

/* --- staggered reveal --- */
.rw-reveal { animation: rwIn .38s cubic-bezier(.2, .8, .2, 1) backwards; animation-delay: calc(var(--i, 0) * 22ms); }
@keyframes rwIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .rw-reveal { animation: none; }
  .rw-skel::after, .rw-skel-bar::after { animation: none; }
  .rw-mover:hover, .rw-team:hover { transform: none; }
  html { scroll-behavior: auto; }
}

/* =============================================================================
   Narrow
   ============================================================================= */
@media (max-width: 1040px) {
  .rw-at-head, .rw-at-row { grid-template-columns: 34px 84px minmax(0, 1.1fr) 70px minmax(0, 1.2fr); }
  .rw-at-hit, .rw-at-row .rw-at-hit { display: none; }
}
@media (max-width: 980px) {
  .rw-shape { grid-template-columns: 1fr; }
  .rw-movers { grid-template-columns: 1fr; }
  .rw-wall-head, .rw-wr { grid-template-columns: 56px 92px minmax(0, 1fr) minmax(0, 1fr); }
  .rw-wall-head .slide, .rw-wr .rw-wc.down { display: none; }
}
@media (max-width: 860px) {
  .rw-verdict { grid-template-columns: 1fr; gap: 0.9rem; padding: 1.2rem; }
  .rw-verdict.is-same { grid-template-columns: 1fr; }
  .rw-vd-mid { grid-auto-flow: column; min-height: 0; border: 0; border-top: 1px solid var(--rw-hair); border-bottom: 1px solid var(--rw-hair); padding: 0.5rem 0; }
  .rw-vd-seal { border-left: 0; border-top: 1px solid var(--rw-hair); padding-top: 0.9rem; }
  /* stacked, the watermark would sit straight behind the seal — corner it */
  .rw-verdict .rw-ghost, .rw-verdict.is-same .rw-ghost { left: auto; right: -34px; bottom: -44px; width: 150px; height: 150px; }
  .rw-masthead { padding: 1.7rem 1.15rem 0; border-radius: 16px; }
  .rw-mast-rail { display: grid; grid-template-columns: 1fr 1fr; }
  .rw-mast-rail div { padding: 0.8rem 1rem 0.85rem 0; margin: 0; border-right: 0; }
  .rw-mast-rail div:nth-child(odd) { border-right: 1px solid rgba(255, 255, 255, .15); padding-right: 1rem; }
  .rw-mast-rail div:nth-child(even) { padding-left: 1rem; }
  .rw-mast-rail div:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .12); }
  .rw-mast-rail b { font-size: 1.35rem; }

  /* the ledger stacks: slot numeral spans both sides */
  .rw-ledger-head, .rw-slot { grid-template-columns: 38px minmax(0, 1fr) 62px; gap: 0.3rem; }
  .rw-lh-s, .rw-lh-b { display: none; }
  .rw-slot { grid-template-areas: "n a v" "n b v"; padding: 0.55rem 0.7rem; row-gap: 0.4rem; }
  .rw-slot-n { grid-area: n; align-self: center; font-size: 1.15rem; }
  .rw-side-a { grid-area: a; border-left: 2px solid var(--rw-blue); }
  .rw-side-b { grid-area: b; border-left: 2px solid var(--rw-border-2); }
  .rw-vc-w { grid-area: v; }
  .rw-spine { display: none; }
  .rw-side { grid-template-columns: 32px minmax(0, 1fr) auto auto; gap: 0.45rem; padding: 0.2rem 0.2rem 0.2rem 0.45rem; border-radius: 0 8px 8px 0; }
  .rw-side .rw-mug { width: 32px; height: 32px; }
  .rw-side .rw-side-t::before {
    display: block; font-family: var(--rw-mono); font-size: var(--rw-t-micro); font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase; color: var(--rw-muted); margin-bottom: 2px;
  }
  .rw-side-a .rw-side-t::before { content: "Redraft"; }
  .rw-side-b .rw-side-t::before { content: "Actual"; }
  .rw-sh-nums { grid-template-columns: 1fr; gap: 0.55rem; }
  .rw-sh-nums > div { display: flex; align-items: baseline; gap: 9px; }
  .rw-sh-nums > div > span { margin-top: 0; }
  .rw-sh-legs { grid-template-columns: 1fr; }
  /* the scatter scales down with the panel, so its type has to scale up */
  .rw-scatter .rw-sc-t, .rw-scatter .rw-sc-ax { font-size: 12px; }
  .rw-scatter .rw-sc-nm { font-size: 14px; }
  .rw-cr { grid-template-columns: 62px 32px minmax(0, 1fr) 60px 27px; gap: 0.5rem; padding: 0.5rem 0.8rem; }
  .rw-cr .rw-cr-out { display: none; }
  .rw-at-head, .rw-at-row { grid-template-columns: 28px 76px minmax(0, 1fr) 62px; padding-left: 0.8rem; padding-right: 0.8rem; }
  .rw-at-head .rw-at-bestk, .rw-at-row .rw-at-best { display: none; }
}
@media (max-width: 620px) {
  .rw-wall-head, .rw-wr { grid-template-columns: 50px minmax(0, 1fr) minmax(0, 1fr); gap: 0.5rem; padding-left: 0.8rem; padding-right: 0.8rem; }
  .rw-wall-head .rate, .rw-wr .rw-wr-rate { display: none; }
}
@media (max-width: 560px) {
  .rw-main { padding: 0 0.8rem 2.5rem; }
  .rw-side .rw-logo { display: none; }
  .rw-teams { grid-template-columns: 1fr; }
  .rw-mover { grid-template-columns: 40px minmax(0, 1fr) auto 27px; gap: 0.55rem; }
  .rw-mover .rw-mug { width: 40px; height: 40px; }
  .rw-panel { padding: 1.05rem 0.95rem; }
  .rw-find-hint { display: none; }
  .rw-band { margin-top: 2.3rem; }
  .rw-mast-title { font-size: clamp(1.95rem, 9.5vw, 2.6rem); }
}
@media (max-width: 430px) {
  .rw-at-head, .rw-at-row { grid-template-columns: 24px minmax(0, 1fr) 58px; }
  .rw-at-head .num.picks, .rw-at-row .rw-at-n.picks { display: none; }
  .rw-mast-rail b { font-size: 1.2rem; }
}

/* =============================================================================
   Shell overrides — deliberately last.

   styles.css repaints every bare <button> a second time under
   [data-theme="dark"]: the base rule is specificity (0,1,1) and its :hover is
   (0,2,1), both out of reach of the plain class selectors this file uses, which
   is why an unstyled name button picked up a rgba(255,255,255,.08) slab in dark
   mode. Only three properties are ever involved — background, border-color,
   color — so they are switched off once here and handed back to the controls
   that actually want them, in dark theme only. Everything else in this file
   already outranks the shell, including the hover lift on .rw-team.
   ============================================================================= */
[data-theme="dark"] .rw-scope button,
[data-theme="dark"] .rw-scope button:hover {
  background: none; border-color: transparent; color: inherit;
}
[data-theme="dark"] .rw-scope .rw-team { background: var(--rw-card); border-color: var(--rw-border); }
[data-theme="dark"] .rw-scope .rw-team:hover { border-color: var(--rw-border-2); }
[data-theme="dark"] .rw-scope .rw-team.is-pod { border-color: var(--rw-blue-line); }
[data-theme="dark"] .rw-scope .rw-team.is-open { border-color: var(--rw-blue); }
[data-theme="dark"] .rw-scope .rw-seg button { background: var(--rw-card); border-color: var(--rw-border); color: var(--rw-muted); }
[data-theme="dark"] .rw-scope .rw-seg button:hover { color: var(--rw-ink); border-color: var(--rw-muted-2); }
[data-theme="dark"] .rw-scope .rw-seg button.on { background: var(--rw-blue); border-color: var(--rw-blue); color: var(--rw-on-blue); }
[data-theme="dark"] .rw-scope .rw-seg button:disabled { color: var(--rw-muted-2); }
[data-theme="dark"] .rw-scope .rw-cardbtn { background: var(--rw-card); border-color: var(--rw-border); color: var(--rw-muted); }
[data-theme="dark"] .rw-scope .rw-cardbtn:hover { background: var(--rw-blue-soft); border-color: var(--rw-blue); color: var(--rw-blue); }
[data-theme="dark"] .rw-scope .rw-club-x { background: var(--rw-card); border-color: var(--rw-border); color: var(--rw-muted); }
[data-theme="dark"] .rw-scope .rw-club-x:hover { color: var(--rw-ink); border-color: var(--rw-muted-2); }
[data-theme="dark"] .rw-scope .rw-yr.is-on { background: var(--rw-blue-soft); }
[data-theme="dark"] .rw-scope .rw-yr.is-on .rw-yr-n { background: var(--rw-blue); color: var(--rw-on-blue); }
[data-theme="dark"] .rw-scope .rw-yr:hover .rw-yr-n { color: var(--rw-ink); }
[data-theme="dark"] .rw-scope .rw-wr:hover,
[data-theme="dark"] .rw-scope .rw-wr.is-on,
[data-theme="dark"] .rw-scope .rw-find-r:hover,
[data-theme="dark"] .rw-scope .rw-find-r.is-active { background: var(--rw-blue-soft); }
[data-theme="dark"] .rw-scope .rw-find-clear:hover { color: var(--rw-ink); }
[data-theme="dark"] .rw-scope button.rw-nm:hover,
[data-theme="dark"] .rw-scope button.rw-vd-n:hover { color: var(--rw-blue); }

/* =============================================================================
   THE PAGE GROUND.

   Every module on this page was already parchment (--rw-field / --rw-card), but
   the DOCUMENT behind them was not: html/body take their background from the
   shared shell (styles.css -> --bg -> --frost), which is a cool blue-white.
   The result was parchment cards floating on a blue-white field, and /redraft/
   read as a different site from /draft-value/ and /class-pulse/.

   redraft.css is loaded by /redraft/ and nothing else, so painting the document
   here cannot leak into another surface. The value is the house parchment from
   hi-tokens.css (--hi-surface-0), which this page already loads, with the
   literal as a fallback in case the token sheet is unavailable.
   ============================================================================= */
html:has(.rw-scope),
body:has(.rw-scope) { background: var(--hi-surface-0, #f2ede1); }
[data-theme="dark"] html:has(.rw-scope),
[data-theme="dark"] body:has(.rw-scope) { background: #0a1220; }
/* Fallback for engines without :has() — the scope itself paints its own ground,
   which covers everything from the research desk down. */
.rw-main.rw-scope { background: var(--rw-field); }
