/* =========================================================
   DPL BRACKET — restrained premium lane treatment
   Visual-only layer: keeps current geometry and one-screen fit.
   Upper = cold blue, Lower = muted violet, Grand Final = gold.
   Winner row = emerald emphasis.
   ========================================================= */

:root {
    --br-upper: 69, 153, 214;
    --br-lower: 151, 91, 190;
    --br-final: 214, 166, 70;
    --br-win: 48, 211, 153;
}

/* Keep the bracket itself quiet enough for the cosmic background to breathe. */
.bracket-page-v2 .bracket-v2-board {
    isolation: isolate;
}

/* ---------- upper bracket ---------- */
.bracket-page-v2 .bracket-v2-round[data-lane="upper"] .bracket-v2-card {
    border-color: rgba(var(--br-upper), .54);
    background:
        linear-gradient(180deg, rgba(16, 27, 37, .96), rgba(12, 20, 28, .96));
    box-shadow:
        0 12px 28px rgba(0, 0, 0, .28),
        0 0 18px rgba(var(--br-upper), .055),
        inset 0 1px 0 rgba(255, 255, 255, .018);
}

.bracket-page-v2 .bracket-v2-round[data-lane="upper"] .bracket-v2-card-head {
    border-bottom-color: rgba(var(--br-upper), .24);
    background:
        linear-gradient(90deg, rgba(var(--br-upper), .08), rgba(10, 16, 23, .98) 52%, rgba(var(--br-upper), .035));
}

.bracket-page-v2 .bracket-v2-round[data-lane="upper"] .bracket-v2-round-label {
    color: rgb(142, 196, 233);
    text-shadow: 0 0 12px rgba(var(--br-upper), .18);
}

.bracket-page-v2 .bracket-v2-round[data-lane="upper"] .bracket-v2-team-row {
    border-bottom-color: rgba(var(--br-upper), .13);
}

/* ---------- lower bracket ---------- */
.bracket-page-v2 .bracket-v2-round[data-lane="lower"] .bracket-v2-card {
    border-color: rgba(var(--br-lower), .52);
    background:
        linear-gradient(180deg, rgba(24, 19, 33, .96), rgba(16, 15, 25, .96));
    box-shadow:
        0 12px 28px rgba(0, 0, 0, .28),
        0 0 18px rgba(var(--br-lower), .055),
        inset 0 1px 0 rgba(255, 255, 255, .018);
}

.bracket-page-v2 .bracket-v2-round[data-lane="lower"] .bracket-v2-card-head {
    border-bottom-color: rgba(var(--br-lower), .24);
    background:
        linear-gradient(90deg, rgba(var(--br-lower), .085), rgba(14, 13, 21, .98) 52%, rgba(var(--br-lower), .035));
}

.bracket-page-v2 .bracket-v2-round[data-lane="lower"] .bracket-v2-round-label {
    color: rgb(196, 154, 220);
    text-shadow: 0 0 12px rgba(var(--br-lower), .16);
}

.bracket-page-v2 .bracket-v2-round[data-lane="lower"] .bracket-v2-team-row {
    border-bottom-color: rgba(var(--br-lower), .13);
}

/* ---------- grand final ---------- */
.bracket-page-v2 .bracket-v2-round[data-lane="final"] .bracket-v2-card,
.bracket-page-v2 .bracket-v2-card-grand {
    border-color: rgba(var(--br-final), .74);
    background:
        radial-gradient(circle at 50% 115%, rgba(var(--br-final), .09), transparent 55%),
        linear-gradient(180deg, rgba(28, 25, 19, .97), rgba(16, 16, 17, .97));
    box-shadow:
        0 15px 36px rgba(0, 0, 0, .34),
        0 0 0 1px rgba(var(--br-final), .045),
        0 0 22px rgba(var(--br-final), .10);
}

.bracket-page-v2 .bracket-v2-round[data-lane="final"] .bracket-v2-card-head,
.bracket-page-v2 .bracket-v2-card-grand .bracket-v2-card-head {
    border-bottom-color: rgba(var(--br-final), .28);
    background:
        linear-gradient(90deg, rgba(var(--br-final), .08), rgba(16, 15, 13, .98) 50%, rgba(var(--br-final), .08));
}

.bracket-page-v2 .bracket-v2-round[data-lane="final"] .bracket-v2-round-label,
.bracket-page-v2 .bracket-v2-card-grand .bracket-v2-round-label {
    color: rgb(235, 194, 109);
    text-shadow: 0 0 14px rgba(var(--br-final), .18);
}

/* ---------- winner of a completed series ---------- */
.bracket-page-v2 .bracket-v2-team-row.is-winner {
    position: relative;
    background:
        linear-gradient(90deg,
            rgba(var(--br-win), .25) 0%,
            rgba(var(--br-win), .115) 48%,
            rgba(var(--br-win), .025) 78%,
            transparent 100%);
    box-shadow:
        inset 3px 0 0 rgba(var(--br-win), .95),
        inset 0 0 22px rgba(var(--br-win), .075);
}

.bracket-page-v2 .bracket-v2-team-row.is-winner .bracket-v2-team-name {
    color: #effff8;
    text-shadow: 0 0 10px rgba(var(--br-win), .15);
}

.bracket-page-v2 .bracket-v2-team-row.is-winner .bracket-v2-team-logo {
    border-color: rgba(var(--br-win), .55);
    box-shadow: 0 0 10px rgba(var(--br-win), .12);
}

.bracket-page-v2 .bracket-v2-team-row.is-winner .bracket-v2-score {
    color: rgb(91, 229, 174);
    text-shadow: 0 0 12px rgba(var(--br-win), .32);
}

/* In a finished series the loser stays readable, but the winner wins the hierarchy. */
.bracket-page-v2 .bracket-v2-card:has(.bracket-v2-team-row.is-winner)
.bracket-v2-team-row:not(.is-winner) .bracket-v2-team-name,
.bracket-page-v2 .bracket-v2-card:has(.bracket-v2-team-row.is-winner)
.bracket-v2-team-row:not(.is-winner) .bracket-v2-score {
    color: #a8b1bc;
}

/* ---------- lane connectors ---------- */
.bracket-page-v2 .bracket-v2-line {
    stroke-width: 2.15;
    opacity: .88;
}

.bracket-page-v2 .bracket-v2-line-upper {
    stroke: rgba(var(--br-upper), .84);
    filter: drop-shadow(0 0 2px rgba(var(--br-upper), .18));
}

.bracket-page-v2 .bracket-v2-line-lower {
    stroke: rgba(var(--br-lower), .82);
    filter: drop-shadow(0 0 2px rgba(var(--br-lower), .16));
}

.bracket-page-v2 .bracket-v2-line-final {
    stroke: rgba(var(--br-final), .86);
    filter: drop-shadow(0 0 2px rgba(var(--br-final), .18));
}

/* Subtle hover only; no layout movement beyond the original 1px lift. */
.bracket-page-v2 .bracket-v2-round[data-lane="upper"] .bracket-v2-card:hover {
    border-color: rgba(var(--br-upper), .76);
    box-shadow: 0 13px 34px rgba(0,0,0,.34), 0 0 20px rgba(var(--br-upper), .085);
}

.bracket-page-v2 .bracket-v2-round[data-lane="lower"] .bracket-v2-card:hover {
    border-color: rgba(var(--br-lower), .74);
    box-shadow: 0 13px 34px rgba(0,0,0,.34), 0 0 20px rgba(var(--br-lower), .085);
}

.bracket-page-v2 .bracket-v2-round[data-lane="final"] .bracket-v2-card:hover {
    border-color: rgba(var(--br-final), .92);
    box-shadow: 0 16px 38px rgba(0,0,0,.35), 0 0 25px rgba(var(--br-final), .14);
}
