/* =========================================================================
   SMW Modern schedule renderer ("modrevamp")
   All selectors are prefixed smw-modrevamp- and scoped so they cannot affect
   the Classic table or the surrounding theme.
   ========================================================================= */

.smw-modrevamp-strip-wrap,
.smw-modrevamp-day,
.smw-modrevamp-row {
    box-sizing: border-box;
}
.smw-modrevamp-day *,
.smw-modrevamp-strip-wrap * {
    box-sizing: border-box;
}

:root {
    --smwmr-border: #e6e8eb;
    --smwmr-ink: #111827;
    --smwmr-muted: #6b7280;
    --smwmr-faint: #9ca3af;
    --smwmr-accent: #2563eb;
    --smwmr-bg: #ffffff;
    --smwmr-bg-soft: #f8fafc;
    --smwmr-radius: 14px;
}

/* ---------- Date strip ---------- */
.smw-modrevamp-strip-wrap {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin: 0 0 18px;
}
.smw-modrevamp-strip {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scroll-behavior: smooth;
    flex: 1 1 auto;
    -ms-overflow-style: none;   /* IE/Edge */
    scrollbar-width: none;      /* Firefox */
    padding: 2px;
}
.smw-modrevamp-strip::-webkit-scrollbar { display: none; } /* WebKit */

.smw-modrevamp-strip-day {
    flex: 0 0 auto;
    min-width: 86px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 10px 14px;
    background: var(--smwmr-bg);
    border: 1px solid var(--smwmr-border);
    border-radius: 12px;
    cursor: pointer;
    font: inherit;
    color: var(--smwmr-ink);
    transition: background .15s, border-color .15s, color .15s, box-shadow .15s;
}
.smw-modrevamp-strip-day:hover {
    border-color: #c7ccd1;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.smw-modrevamp-strip-day.is-active {
    background: var(--smwmr-accent);
    border-color: var(--smwmr-accent);
    color: #fff;
}
.smw-modrevamp-strip-dow {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
}
.smw-modrevamp-strip-md {
    font-size: 13px;
    font-weight: 500;
    opacity: .9;
}
.smw-modrevamp-strip-nav {
    flex: 0 0 auto;
    width: 40px;
    border: 1px solid var(--smwmr-border);
    background: var(--smwmr-bg);
    border-radius: 12px;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    color: var(--smwmr-muted);
    transition: background .15s, color .15s;
}
.smw-modrevamp-strip-nav:hover { background: var(--smwmr-bg-soft); color: var(--smwmr-ink); }

/* ---------- Season / competition header ---------- */
.smw-modrevamp-season {
    font-size: 15px;
    font-weight: 700;
    color: var(--smwmr-ink);
    margin: 22px 0 10px;
    letter-spacing: .01em;
}

/* ---------- Day block ---------- */
.smw-modrevamp-day {
    background: var(--smwmr-bg);
    border: 1px solid var(--smwmr-border);
    border-radius: var(--smwmr-radius);
    margin: 0 0 18px;
    overflow: hidden;
}
.smw-modrevamp-dayhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px 12px;
    border-bottom: 1px solid var(--smwmr-border);
}
.smw-modrevamp-daytitle {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: .01em;
    color: var(--smwmr-ink);
    text-transform: none;
}
.smw-modrevamp-tz {
    font-size: 12px;
    color: var(--smwmr-faint);
    white-space: nowrap;
}

/* ---------- Column header ---------- */
.smw-modrevamp-colhead {
    display: grid;
    grid-template-columns: 110px 76px minmax(220px,1fr) minmax(0,250px) 24px;
    gap: 16px;
    align-items: center;
    padding: 10px 20px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--smwmr-faint);
    border-bottom: 1px solid var(--smwmr-border);
}
/* When a single league is pinned, the renderer adds .smw-modrevamp--noleague
   and the league column is removed (4 columns, no :has() needed). */
.smw-modrevamp--noleague .smw-modrevamp-colhead {
    grid-template-columns: 110px minmax(220px,1fr) minmax(0,250px) 24px;
}

/* ---------- Rows ---------- */
.smw-modrevamp-row {
    display: grid;
    grid-template-columns: 110px 76px minmax(220px,1fr) minmax(0,250px) 24px;
    gap: 16px;
    align-items: center;
    padding: 14px 20px;
    border-bottom: 1px solid #f1f3f5;
    transition: background .12s;
}
.smw-modrevamp-row:last-child { border-bottom: 0; }
.smw-modrevamp-row:hover { background: var(--smwmr-bg-soft); }

/* No league column when a single league is pinned (4 columns). */
.smw-modrevamp--noleague .smw-modrevamp-row {
    grid-template-columns: 110px minmax(220px,1fr) minmax(0,250px) 24px;
}

/* Time */
.smw-modrevamp-time {
    font-size: 15px;
    font-weight: 700;
    color: var(--smwmr-ink);
    line-height: 1.25;
}
.smw-modrevamp-time .local-time { font-weight: 700; }

/* League pill */
.smw-modrevamp-league { display: flex; }
.smw-modrevamp-pill {
    display: inline-block;
    padding: 3px 9px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .03em;
    color: #fff;
    background: #475569;
    border-radius: 6px;
    white-space: nowrap;
}
/* A few recognizable league colors; everything else uses the slate default. */
.smw-modrevamp-pill[data-league="CFB"],
.smw-modrevamp-pill[data-league="NFL"]   { background: #166534; }
.smw-modrevamp-pill[data-league="NBA"],
.smw-modrevamp-pill[data-league="MCBB"]  { background: #1d4ed8; }
.smw-modrevamp-pill[data-league="WCBB"],
.smw-modrevamp-pill[data-league="WNBA"]  { background: #6d28d9; }
.smw-modrevamp-pill[data-league="NHL"]   { background: #0f172a; }
.smw-modrevamp-pill[data-league="MLB"]   { background: #b91c1c; }
.smw-modrevamp-pill[data-league="MLS"],
.smw-modrevamp-pill[data-league="NWSL"]  { background: #047857; }
.smw-modrevamp-pill[data-league="NSCR"]  { background: #ea580c; }

/* Matchup */
.smw-modrevamp-match { min-width: 0; }
.smw-modrevamp-teams {
    font-size: 15px;
    font-weight: 600;
    color: var(--smwmr-ink);
    line-height: 1.35;
    overflow-wrap: break-word;
    word-break: normal;
}
/* Engine-emitted team markup is namespaced (smwmr-*) so theme / Additional CSS
   cannot reach it. !important on color defeats generic theme link colors. */
.smw-modrevamp-teams a,
.smw-modrevamp-teams .smwmr-team-label,
.smw-modrevamp-teams .smwmr-team-link {
    color: var(--smwmr-ink) !important;
    text-decoration: none;
    font-weight: 600;
}
.smw-modrevamp-teams a:hover { color: var(--smwmr-accent) !important; text-decoration: underline; }
.smw-modrevamp-teams .smwmr-is-current { font-weight: 700; }
.smw-modrevamp-teams .smwmr-rank-badge {
    font-size: 11px;
    font-weight: 700;
    color: var(--smwmr-muted);
    margin-right: 3px;
}
.smw-modrevamp-vs {
    color: var(--smwmr-faint);
    font-weight: 500;
    font-size: 13px;
    padding: 0 8px;
    white-space: nowrap;
}
.smw-modrevamp-note-top,
.smw-modrevamp-note-bottom {
    font-size: 12.5px;
    color: var(--smwmr-muted);
    line-height: 1.35;
}
.smw-modrevamp-note-top { margin-bottom: 2px; }
.smw-modrevamp-note-bottom { margin-top: 3px; }
.smw-modrevamp-note-top .smwmr-bold,
.smw-modrevamp-note-bottom .smwmr-comp { font-weight: 600; color: #374151; }

/* TV / Streaming — broadcaster lines, right-aligned (matchup left / TV right).
   national & streaming groups each get a line; away + home share one line.
   The renderer wraps each group in .smw-modrevamp-tvline. */
.smw-modrevamp-tv {
    display: block;
    min-width: 0;
    font-size: 13px;
    line-height: 1.3;
    text-align: right;
    color: var(--smwmr-ink);
    overflow-wrap: anywhere;
}
.smw-modrevamp-tvline { display: block; margin-top: 2px; }
.smw-modrevamp-tvline:first-child { margin-top: 0; }
/* Away/home lines are single-network: never let the A/H badge break away from
   its network name. */
.smw-modrevamp-tvline-local { white-space: nowrap; }
.smw-modrevamp-tv a { color: var(--smwmr-ink) !important; text-decoration: none; }
.smw-modrevamp-tv a:hover { text-decoration: underline; }
.smw-modrevamp-tv .smwmr-networkfcolor { color: var(--smwmr-ink); }
/* Each network token is a pill (margin on the left so they hug the right edge). */
.smw-modrevamp-tv .smwmr-net-pill {
    display: inline-block;
    font-size: 12px;
    line-height: 1.25;
    padding: 3px 10px;
    margin: 0 0 3px 6px;
    border: 1px solid var(--smwmr-border);
    border-radius: 999px;
    background: #fff;
    color: var(--smwmr-ink);
    white-space: nowrap;
    vertical-align: middle;
}
.smw-modrevamp-tv .smwmr-net-pill:hover { border-color: #c7ccd1; }
.smw-modrevamp-tv .smwmr-net-pill a { color: var(--smwmr-ink) !important; text-decoration: none; }
.smw-modrevamp-tv .smwmr-net-pill a:hover { text-decoration: none; }
.smw-modrevamp-tv .smwmr-network-logo,
.smw-modrevamp-tv img { max-height: 16px; width: auto; vertical-align: middle; }
/* Any stray separators are consumed by the renderer; hide as a safety net. */
.smw-modrevamp-tv .smwmr-pipeseparator { display: none; }
/* away-box / home-box deliberately keep their ORIGINAL class names so they
   inherit the site's existing styling (Additional CSS), matching Classic. */
.smw-modrevamp-tv .away-box,
.smw-modrevamp-tv .home-box { margin-right: 4px; }

/* Chevron */
.smw-modrevamp-chev {
    text-align: center;
    color: var(--smwmr-faint);
    font-size: 18px;
    line-height: 1;
}

/* =========================================================================
   Responsive: stack gracefully on mobile WITHOUT becoming giant cards.
   ========================================================================= */
@media (max-width: 720px) {
    .smw-modrevamp-colhead { display: none; }

    .smw-modrevamp-row,
    .smw-modrevamp--noleague .smw-modrevamp-row {
        grid-template-columns: 64px minmax(0,1fr);
        grid-template-areas:
            "time match"
            "time tv";
        gap: 4px 12px;
        align-items: start;
        padding: 14px 16px;
    }
    .smw-modrevamp-time { grid-area: time; font-size: 14px; }
    .smw-modrevamp-league { grid-area: match; margin-bottom: 2px; }
    .smw-modrevamp-match { grid-area: match; }
    .smw-modrevamp-tv { grid-area: tv; justify-content: flex-start; text-align: left; margin-top: 4px; }
    .smw-modrevamp-chev { display: none; }

    .smw-modrevamp-dayhead { padding: 14px 16px 10px; }
    .smw-modrevamp-daytitle { font-size: 15px; }
}

/* Grid columns are driven by the explicit .smw-modrevamp--noleague class set by
   the renderer, so no :has() / feature-query fallback is required. */
