    /* ── Page overrides ── */
    footer { margin-top: 40px; }

    /* ── Legend ── */
    .legend {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 10px 20px;
      margin-bottom: 32px;
    }
    .legend-item {
      display: flex;
      align-items: center;
      gap: 7px;
      font-size: 12px;
      color: var(--muted);
    }
    .legend-dot {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      flex-shrink: 0;
    }
    .legend-dot.wed        { background: var(--wed); }
    .legend-dot.sun        { background: var(--sun); }
    .legend-dot.sun550     { background: var(--sun550); }
    .legend-dot.main       { background: var(--main); }
    /* Pickering */
    .legend-dot.tue        { background: var(--tue); }
    .legend-dot.thu        { background: var(--thu); }
    .legend-dot.thu-bounty { background: var(--thu-bounty); }
    .legend-dot.thu-deep   { background: var(--thu-deep); }
    .legend-dot.thu-major  { background: var(--thu-major); }

    /* ── Calendar wrapper ── */
    .cal-wrapper {
      /* background/border/border-radius → .card utility */
      overflow: hidden;
      backdrop-filter: blur(8px);
      box-shadow: 0 8px 40px rgba(0,0,0,0.5);
    }

    .month-header {
      background: rgba(212,175,55,0.1);
      border-bottom: 1px solid var(--border);
      padding: 18px 24px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .month-title {
      font-family: 'Oswald', sans-serif;
      font-size: 22px;
      font-weight: 600;
      color: var(--gold);
      letter-spacing: 2px;
    }
    .month-sub { font-size: 12px; color: var(--muted); margin-top: 2px; }

    /* ── Carousel nav ── */
    .cal-nav {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .cal-nav-btn {
      background: rgba(212,175,55,0.1);
      border: 1px solid var(--border);
      border-radius: 8px;
      color: var(--gold);
      font-size: 22px;
      line-height: 1;
      width: 36px;
      height: 36px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: background 0.2s, box-shadow 0.2s;
      user-select: none;
      flex-shrink: 0;
    }
    .cal-nav-btn:hover:not(:disabled) {
      background: rgba(212,175,55,0.22);
      box-shadow: 0 0 10px rgba(212,175,55,0.2);
    }
    .cal-nav-btn:disabled {
      opacity: 0.25;
      cursor: default;
    }
    .cal-dots {
      display: flex;
      align-items: center;
      gap: 7px;
    }
    .cal-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: rgba(212,175,55,0.22);
      transition: background 0.22s, transform 0.22s;
      cursor: pointer;
    }
    .cal-dot.active {
      background: var(--gold);
      transform: scale(1.3);
    }
    .cal-dot:hover:not(.active) {
      background: rgba(212,175,55,0.5);
    }

    .dow-header {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      border-bottom: 1px solid var(--border);
    }
    .dow-header div {
      padding: 10px 0;
      text-align: center;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--gold3);
    }
    .dow-header div:first-child { color: #9b6b6b; }
    .dow-header div:last-child  { color: #9b6b6b; }

    .cal-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
    }

    /* Slide animation */
    @keyframes slideInRight {
      from { opacity: 0; transform: translateX(28px); }
      to   { opacity: 1; transform: translateX(0); }
    }
    @keyframes slideInLeft {
      from { opacity: 0; transform: translateX(-28px); }
      to   { opacity: 1; transform: translateX(0); }
    }
    .cal-grid.anim-right { animation: slideInRight 0.28s cubic-bezier(0.25,0.46,0.45,0.94); }
    .cal-grid.anim-left  { animation: slideInLeft  0.28s cubic-bezier(0.25,0.46,0.45,0.94); }

    .cal-cell {
      border-right: 1px solid rgba(255,255,255,0.05);
      border-bottom: 1px solid rgba(255,255,255,0.05);
      padding: 10px 8px;
      min-height: 110px;
      vertical-align: top;
      position: relative;
    }
    .cal-cell:nth-child(7n) { border-right: none; }
    .cal-cell.empty { background: rgba(0,0,0,0.1); }
    .cal-cell.today {
      background: rgba(212,175,55,0.10);
      border-top: 2px solid var(--gold2);
    }
    .cal-cell.today .day-num {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 30px;
      height: 30px;
      background: var(--gold2);
      color: #0a0e1a;
      border-radius: 50%;
      margin-bottom: 4px;
      font-weight: 700;
    }

    .day-num {
      font-family: 'Oswald', sans-serif;
      font-size: 17px;
      font-weight: 600;
      color: var(--muted);
      margin-bottom: 6px;
      line-height: 1;
    }
    .cal-cell:nth-child(7n+1) .day-num,
    .cal-cell:nth-child(7n)   .day-num { color: #9b6b6b; }

    /* ── Tournament pills ── */
    .tourney {
      display: block;
      border-radius: 6px;
      padding: 4px 7px;
      margin-bottom: 4px;
      font-size: 10.5px;
      font-weight: 600;
      line-height: 1.3;
      cursor: default;
    }
    .tourney.wed        { background: var(--wed-bg);        color: #7fb3f5; border-left: 3px solid var(--wed); }
    .tourney.sun        { background: var(--sun-bg);        color: #e8b86d; border-left: 3px solid var(--sun); }
    .tourney.sun550     { background: var(--sun550-bg);     color: #6fcf97; border-left: 3px solid var(--sun550); }
    .tourney.main       { background: var(--main-bg);       color: #f08080; border-left: 3px solid var(--main); }
    /* Pickering */
    .tourney.tue        { background: var(--tue-bg);        color: #6cd6f5; border-left: 3px solid var(--tue); }
    .tourney.thu        { background: var(--thu-bg);        color: #7fb3f5; border-left: 3px solid var(--thu); }
    .tourney.thu-bounty { background: var(--thu-bounty-bg); color: #f5a06c; border-left: 3px solid var(--thu-bounty); }
    .tourney.thu-deep   { background: var(--thu-deep-bg);   color: #6fcf97; border-left: 3px solid var(--thu-deep); }
    .tourney.thu-major  { background: var(--thu-major-bg);  color: #f08080; border-left: 3px solid var(--thu-major); }
    .tourney .time      { font-weight: 400; opacity: 0.8; font-size: 9.5px; }

    /* ── Detail cards ── */
    .detail-section { margin-top: 32px; }
    .detail-section h2 {
      font-family: 'Oswald', sans-serif;
      font-size: 14px;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 16px;
    }
    .detail-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
      gap: 14px;
    }
    .detail-card {
      /* background/border/border-radius → .card utility */
      padding: 18px;
      backdrop-filter: blur(8px);
    }
    .detail-card .dc-top {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
    }
    .dc-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
    .detail-card h3 {
      font-family: 'Oswald', sans-serif;
      font-size: 14px;
      font-weight: 600;
      color: var(--text);
      letter-spacing: 0.5px;
    }
    .detail-card .dc-buy { font-family: 'Oswald', sans-serif; font-size: 22px; color: var(--gold); margin-bottom: 6px; }
    .detail-card .dc-row { font-size: 12px; color: var(--muted); margin-bottom: 3px; }
    .detail-card .dc-row strong { color: var(--text); }
    .detail-card a { color: var(--gold3); font-size: 11px; text-decoration: none; }
    .detail-card a:hover { text-decoration: underline; }

    /* ── Highlight / dim interactions ── */
    /* ── Blackout dates ── */
    .tourney.blackout {
      position: relative;
      opacity: 0.4;
      filter: grayscale(0.4);
    }
    .tourney.blackout::after {
      content: '✕';
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 32px;
      font-weight: 900;
      color: #ff1a1a;
      text-shadow: 0 0 8px rgba(255,26,26,0.8), 0 2px 6px rgba(0,0,0,0.6);
      pointer-events: none;
    }
    /* Blackout toast — default: fixed bottom-centre (mobile/tap) */
    #blackout-tip {
      position: fixed;
      bottom: 20px;
      left: 50%;
      transform: translateX(-50%);
      background: rgba(20, 5, 5, 0.95);
      color: #fff;
      font-size: 13px;
      font-weight: 500;
      white-space: nowrap;
      padding: 8px 16px;
      border-radius: 6px;
      border: 1px solid rgba(255, 26, 26, 0.5);
      pointer-events: none;
      opacity: 0;
      transition: opacity 0.2s;
      z-index: 9999;
    }
    /* Desktop: near-mouse mode — position set via inline style */
    #blackout-tip.near-mouse {
      bottom: auto;
      transform: none;
    }
    #blackout-tip.visible { opacity: 1; }

    .tourney        { transition: opacity 0.18s, box-shadow 0.18s, filter 0.18s; }
    .detail-card    { transition: opacity 0.18s, box-shadow 0.18s, border-color 0.18s; }

    .tourney.hl-active {
      opacity: 1 !important;
      filter: brightness(1.35);
      box-shadow: 0 0 0 2px currentColor, 0 0 14px rgba(255,255,255,0.25);
    }
    .detail-card.hl-active {
      opacity: 1 !important;
      border-color: rgba(212,175,55,0.7);
      box-shadow: 0 0 0 2px rgba(212,175,55,0.35), 0 0 24px rgba(212,175,55,0.2);
    }
    .detail-card.hl-active.wed-card        { border-color: rgba(37,99,168,0.8);   box-shadow: 0 0 0 2px rgba(37,99,168,0.4),   0 0 24px rgba(37,99,168,0.25); }
    .detail-card.hl-active.sun-card        { border-color: rgba(176,125,44,0.8);  box-shadow: 0 0 0 2px rgba(176,125,44,0.4),  0 0 24px rgba(176,125,44,0.25); }
    .detail-card.hl-active.sun550-card     { border-color: rgba(46,125,82,0.8);   box-shadow: 0 0 0 2px rgba(46,125,82,0.4),   0 0 24px rgba(46,125,82,0.25); }
    .detail-card.hl-active.main-card       { border-color: rgba(139,32,32,0.9);   box-shadow: 0 0 0 2px rgba(139,32,32,0.5),   0 0 24px rgba(139,32,32,0.3); }
    /* Pickering */
    .detail-card.hl-active.tue-card        { border-color: rgba(26,122,154,0.8);  box-shadow: 0 0 0 2px rgba(26,122,154,0.4),  0 0 24px rgba(26,122,154,0.25); }
    .detail-card.hl-active.thu-card        { border-color: rgba(37,99,168,0.8);   box-shadow: 0 0 0 2px rgba(37,99,168,0.4),   0 0 24px rgba(37,99,168,0.25); }
    .detail-card.hl-active.thu-bounty-card { border-color: rgba(184,74,26,0.8);   box-shadow: 0 0 0 2px rgba(184,74,26,0.4),   0 0 24px rgba(184,74,26,0.25); }
    .detail-card.hl-active.thu-deep-card   { border-color: rgba(46,125,82,0.8);   box-shadow: 0 0 0 2px rgba(46,125,82,0.4),   0 0 24px rgba(46,125,82,0.25); }
    .detail-card.hl-active.thu-major-card  { border-color: rgba(139,32,32,0.9);   box-shadow: 0 0 0 2px rgba(139,32,32,0.5),   0 0 24px rgba(139,32,32,0.3); }

    .tourney.hl-dim    { opacity: 0.25; filter: none; }
    .detail-card.hl-dim{ opacity: 0.3; }

    .tourney.hl-pinned     { opacity: 1 !important; filter: brightness(1.5); box-shadow: 0 0 0 2px currentColor, 0 0 18px rgba(255,255,255,0.3); }
    .detail-card.hl-pinned { opacity: 1 !important; }

    /* Results table rows — highlight / dim / glow (mirrors pill + card system) */
    #results-tbody tr[data-type]          { transition: opacity 0.18s, background 0.18s, outline 0.18s; }
    #results-tbody tr[data-type].hl-dim   { opacity: 0.2; }
    #results-tbody tr[data-type].hl-active { outline: 1px solid transparent; outline-offset: -1px; }
    #results-tbody tr[data-type="wed"].hl-active    { background: rgba(37,99,168,0.12);   outline-color: rgba(37,99,168,0.5); }
    #results-tbody tr[data-type="sun"].hl-active    { background: rgba(176,125,44,0.12);  outline-color: rgba(176,125,44,0.5); }
    #results-tbody tr[data-type="sun550"].hl-active { background: rgba(46,125,82,0.12);   outline-color: rgba(46,125,82,0.5); }
    #results-tbody tr[data-type="main"].hl-active   { background: rgba(139,32,32,0.15);   outline-color: rgba(139,32,32,0.6); }
    #results-tbody tr[data-type].hl-pinned                { opacity: 1 !important; }
    #results-tbody tr[data-type="wed"].hl-pinned           { background: rgba(37,99,168,0.22);   outline: 1px solid rgba(37,99,168,0.75);   outline-offset: -1px; }
    #results-tbody tr[data-type="sun"].hl-pinned           { background: rgba(176,125,44,0.22);  outline: 1px solid rgba(176,125,44,0.75);  outline-offset: -1px; }
    #results-tbody tr[data-type="sun550"].hl-pinned        { background: rgba(46,125,82,0.22);   outline: 1px solid rgba(46,125,82,0.75);   outline-offset: -1px; }
    #results-tbody tr[data-type="main"].hl-pinned          { background: rgba(139,32,32,0.28);   outline: 1px solid rgba(139,32,32,0.85);   outline-offset: -1px; }
    /* Pickering */
    #results-tbody tr[data-type="tue"].hl-active           { background: rgba(26,122,154,0.12);  outline-color: rgba(26,122,154,0.5); }
    #results-tbody tr[data-type="thu"].hl-active           { background: rgba(37,99,168,0.12);   outline-color: rgba(37,99,168,0.5); }
    #results-tbody tr[data-type="thu-bounty"].hl-active    { background: rgba(184,74,26,0.12);   outline-color: rgba(184,74,26,0.5); }
    #results-tbody tr[data-type="thu-deep"].hl-active      { background: rgba(46,125,82,0.12);   outline-color: rgba(46,125,82,0.5); }
    #results-tbody tr[data-type="thu-major"].hl-active     { background: rgba(139,32,32,0.15);   outline-color: rgba(139,32,32,0.6); }
    #results-tbody tr[data-type="tue"].hl-pinned           { background: rgba(26,122,154,0.22);  outline: 1px solid rgba(26,122,154,0.75);  outline-offset: -1px; }
    #results-tbody tr[data-type="thu"].hl-pinned           { background: rgba(37,99,168,0.22);   outline: 1px solid rgba(37,99,168,0.75);   outline-offset: -1px; }
    #results-tbody tr[data-type="thu-bounty"].hl-pinned    { background: rgba(184,74,26,0.22);   outline: 1px solid rgba(184,74,26,0.75);   outline-offset: -1px; }
    #results-tbody tr[data-type="thu-deep"].hl-pinned      { background: rgba(46,125,82,0.22);   outline: 1px solid rgba(46,125,82,0.75);   outline-offset: -1px; }
    #results-tbody tr[data-type="thu-major"].hl-pinned     { background: rgba(139,32,32,0.28);   outline: 1px solid rgba(139,32,32,0.85);   outline-offset: -1px; }

    /* ── 2026 Results table ── */
    .results-section { margin-top: 48px; }
    .results-section h2 {
      font-family: 'Oswald', sans-serif;
      font-size: 14px;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 16px;
    }
    .results-table-wrap {
      /* background/border/border-radius → .card utility */
      overflow-x: auto;
      backdrop-filter: blur(8px);
      box-shadow: 0 8px 40px rgba(0,0,0,0.5);
    }
    /* .results-table structure, .rt-* classes, .results-source → now in styles.css */

    /* ── Countdown ── */
    /* ── Running now + countdown side-by-side layout ── */
    #cd-outer { margin-bottom: 28px; gap: 16px; align-items: stretch; }
    .cd-running-card  { flex: 0 0 auto; min-width: 200px; max-width: 260px; display: flex; flex-direction: column; justify-content: center; }
    .cd-countdown-card { flex: 1; }
    .countdown-box {
      /* background/border/border-radius → .card utility */
      padding: 22px 24px;
      text-align: center;
      backdrop-filter: blur(8px);
      box-shadow: 0 4px 24px rgba(0,0,0,0.3);
    }
    .cd-eyebrow {
      font-family: 'Oswald', sans-serif;
      font-size: 11px;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 6px;
    }
    .cd-name {
      font-family: 'Oswald', sans-serif;
      font-size: 20px;
      font-weight: 600;
      letter-spacing: 1px;
      margin-bottom: 16px;
    }
    .cd-name.wed        { color: #7fb3f5; }
    .cd-name.sun        { color: #e8b86d; }
    .cd-name.sun550     { color: #6fcf97; }
    .cd-name.main       { color: #f08080; }
    .cd-name.tue        { color: #6cd6f5; }
    .cd-name.thu        { color: #7fb3f5; }
    .cd-name.thu-bounty { color: #f5a06c; }
    .cd-name.thu-deep   { color: #6fcf97; }
    .cd-name.thu-major  { color: #f08080; }
    .cd-units {
      display: flex;
      justify-content: center;
      gap: 12px;
    }
    .cd-unit {
      background: rgba(0,0,0,0.28);
      border: 1px solid rgba(212,175,55,0.15);
      border-radius: 10px;
      padding: 12px 8px;
      width: 72px;
      text-align: center;
      flex-shrink: 0;
    }
    .cd-num {
      font-family: 'Oswald', sans-serif;
      font-size: 32px;
      font-weight: 700;
      color: var(--gold);
      line-height: 1;
      font-variant-numeric: tabular-nums;
      letter-spacing: 1px;
      display: block;
    }
    .cd-unit-label {
      display: block;
      text-align: center;
      font-size: 10px;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 4px;
    }
    .cd-sub {
      font-size: 12px;
      color: var(--muted);
      margin-top: 12px;
    }
    /* Live state */
    .cd-live-row {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      margin-bottom: 6px;
    }
    .cd-live-dot {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: #4caf50;
      flex-shrink: 0;
      animation: livePulse 1.4s ease-in-out infinite;
    }
    @keyframes livePulse {
      0%, 100% { box-shadow: 0 0 0 0 rgba(76,175,80,0.6); opacity: 1; }
      50%       { box-shadow: 0 0 0 7px rgba(76,175,80,0); opacity: 0.8; }
    }
    .cd-live-label {
      font-family: 'Oswald', sans-serif;
      font-size: 11px;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: #4caf50;
    }
    .cd-live-name {
      font-family: 'Oswald', sans-serif;
      font-size: 20px;
      font-weight: 600;
      letter-spacing: 1px;
      margin-bottom: 4px;
    }
    .cd-live-name.wed        { color: #7fb3f5; }
    .cd-live-name.sun        { color: #e8b86d; }
    .cd-live-name.sun550     { color: #6fcf97; }
    .cd-live-name.main       { color: #f08080; }
    .cd-live-name.tue        { color: #6cd6f5; }
    .cd-live-name.thu        { color: #7fb3f5; }
    .cd-live-name.thu-bounty { color: #f5a06c; }
    .cd-live-name.thu-deep   { color: #6fcf97; }
    .cd-live-name.thu-major  { color: #f08080; }
    .cd-running-text {
      font-family: 'Oswald', sans-serif;
      font-size: 15px;
      color: #4caf50;
      letter-spacing: 1px;
    }
    @media (max-width: 480px) {
      .cd-unit { width: 58px; padding: 10px 2px; }
      .cd-num  { font-size: 26px; }
    }

    /* ── Responsive ── */
    @media (max-width: 640px) {
      .cal-cell { min-height: 80px; padding: 6px 4px; }
      .tourney { font-size: 9px; padding: 3px 5px; }
      .tourney .time { display: none; }
      .day-num { font-size: 14px; }
      .month-title { font-size: 18px; }
      #cd-outer { flex-direction: column; }
      .cd-running-card { max-width: none; min-width: 0; }
    }
