:root{--dark:#0b1118;--navy:#152231;--lime:#a7ff00;--red:#c80f25;--cyan:#16b7cc;--green:#36b400;--gray:#eef1f5;--mid:#cdd3da;--white:#fff;--text:#17202b;--muted:#667085;--shadow:0 12px 28px rgba(11,17,24,.16);--radius:14px}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f5f7fa;color:var(--text)}a{text-decoration:none;color:inherit}.container{width:min(1120px,92vw);margin:auto}.site-header{background:#070b0f;color:#fff;position:sticky;top:0;z-index:10;border-bottom:4px solid var(--lime)}.nav-wrap{height:76px;display:flex;align-items:center;justify-content:space-between}.brand img{height:48px}.site-header nav{display:flex;align-items:center;gap:22px;font-weight:800;font-size:13px;text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:999px;border:0;background:#263342;color:#fff;font-weight:800;cursor:pointer}.btn-lime{background:var(--lime);color:#071006}.btn-red{background:var(--red);color:#fff}.hero{background:#0b1118 url('../img/court-bg.svg') center/cover;color:#fff}.hero-small{padding:58px 0}.hero-content{text-align:center}.colorfest-logo{max-width:360px;width:60%;height:auto}.hero h1{font-size:clamp(36px,7vw,68px);margin:14px 0 10px}.hero p{max-width:720px;margin:0 auto;color:#e9eef4}.section{padding:48px 0}.tabs{display:flex;justify-content:center;gap:8px;margin-bottom:24px}.tabs button{border:1px solid #d0d6dd;background:white;border-radius:999px;padding:8px 16px;font-weight:800;cursor:pointer}.tabs button.active{background:var(--lime);border-color:var(--lime)}.tournament-list{display:grid;gap:18px;max-width:850px;margin:auto}.tournament-card{display:grid;grid-template-columns:120px 1fr 150px;gap:18px;align-items:center;background:white;border-radius:10px;padding:16px;box-shadow:0 2px 10px rgba(0,0,0,.14)}.tournament-thumb{height:100px;border-radius:8px;background:#080b0e;display:flex;align-items:center;justify-content:center;overflow:hidden}.tournament-thumb img{width:100%;height:100%;object-fit:cover}.tournament-thumb img[src$='.svg']{object-fit:contain;padding:10px}.eyebrow{font-size:12px;color:var(--red);font-weight:900}.tournament-info h2{font-size:20px;margin:3px 0 5px}.tournament-info p{font-size:13px;margin:0 0 8px;color:#2a3440}.meta-row{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;font-weight:700;color:#475467}.tournament-actions{display:flex;flex-direction:column;align-items:flex-end;gap:14px}.price-pill{background:#111;color:#fff;border-radius:999px;padding:6px 12px;font-weight:900;font-size:12px}.event-hero{min-height:270px;background:#0b1118 url('../img/court-bg.svg') center/cover}.event-hero-overlay{min-height:270px;background:linear-gradient(90deg,rgba(0,0,0,.85),rgba(0,0,0,.25));display:flex;align-items:center;color:#fff}.event-hero h1{font-size:clamp(34px,6vw,66px);margin:10px 0}.center-title{text-align:center;position:relative;margin-bottom:32px}.center-title .ghost-title{position:absolute;left:0;right:0;top:-20px;font-size:82px;line-height:1;color:#000;opacity:.035;font-weight:900}.center-title h2{position:relative;color:var(--red);margin:0 0 10px}.event-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:30px auto;align-items:center;border-top:1px solid #ccd2d9;border-bottom:1px solid #ccd2d9;padding:18px 0}.event-summary span{display:block;color:var(--muted);font-size:13px}.event-summary strong{font-size:18px}.red-bar-title{background:var(--red);color:white;text-align:center;border-radius:6px;padding:10px 14px;margin:34px 0 18px;text-transform:uppercase;font-size:18px}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}.category-tile{background:white;border-radius:12px;padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;border-left:8px solid var(--lime)}.ball{width:18px;height:18px;border-radius:50%;display:inline-block;vertical-align:middle;margin-right:8px;box-shadow:inset -3px -3px 8px rgba(0,0,0,.2)}.ball-amarilla{background:#ffe600}.ball-roja{background:#ff1734}.ball-naranja{background:#ff8b22}.ball-verde{background:#7dff20}.category-header{background:var(--navy);color:white;padding:34px 0;border-bottom:5px solid var(--lime)}.back-link{color:var(--lime);font-weight:800}.info-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.panel-card{background:#d7dde4;border-radius:9px;padding:32px;box-shadow:var(--shadow)}.panel-card h3{background:#087786;color:#fff;margin:0 auto 0;padding:14px 18px;border-radius:8px 8px 0 0;text-align:center;text-transform:uppercase;width:80%;font-size:15px}.clean-table,.panel-card table{width:80%;margin:auto;border-collapse:collapse;background:white}.clean-table th,.clean-table td,.panel-card td,.panel-card th{padding:12px;border:1px solid #d8dde3;font-size:13px}.schedule-wrap,.standings-grid{overflow:auto}.schedule-table{width:100%;border-collapse:collapse;background:white;box-shadow:var(--shadow)}.schedule-table th{background:var(--red);color:#fff;padding:12px}.schedule-table td{padding:12px;border-bottom:1px solid #e5e8ec;font-size:14px}.standings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:18px}.standing-card{background:white;border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}.standing-card h3{margin:0;background:var(--red);color:white;padding:10px;text-align:center}.standing-card table{width:100%;border-collapse:collapse}.standing-card th{background:#ffdd00;color:#111}.standing-card th,.standing-card td{padding:8px;border:1px solid #dce1e8;font-size:12px}.bracket-board{display:flex;gap:22px;background:#172332;color:#fff;padding:24px;overflow:auto;border-radius:4px}.bracket-round{min-width:230px;display:flex;flex-direction:column;gap:22px}.bracket-round h4{text-align:center;margin:0 0 10px;color:#fff;font-style:italic}.bracket-match{background:#202d3f;border:1px solid #9aa5b1;padding:8px;min-height:84px;display:flex;flex-direction:column;justify-content:center;gap:4px;position:relative}.bracket-match.played{border-left:6px solid #12b76a}.bracket-match small{color:#76b7ff;font-weight:900;text-align:center}.site-footer{background:#071006;color:white;padding:30px 0;border-top:8px solid var(--lime)}.footer-grid{display:grid;grid-template-columns:160px 1fr;gap:22px;align-items:center}.footer-logo{max-width:130px}.narrow{max-width:760px}.form-card{background:white;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}form label{display:flex;flex-direction:column;gap:6px;font-weight:800;font-size:13px;margin-bottom:14px}input,select,textarea{border:1px solid #ced4dc;border-radius:8px;padding:12px;font:inherit;background:white}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.alert{border-radius:10px;padding:12px 14px;margin:0 0 16px}.alert.success{background:#e8ffce;color:#235000}.alert.error{background:#ffe7e7;color:#9b0014}.login-body{min-height:100vh;display:grid;place-items:center;background:#0b1118 url('../img/court-bg.svg') center/cover}.login-card{width:min(420px,92vw);background:white;border-radius:16px;padding:34px;box-shadow:var(--shadow)}.login-card img{height:70px;display:block;margin:auto}.admin-body{display:grid;grid-template-columns:260px 1fr;min-height:100vh;background:#eef2f6}.admin-sidebar{background:#0b1118;color:white;padding:22px;display:flex;flex-direction:column;gap:8px}.admin-logo img{height:62px;margin-bottom:18px}.admin-sidebar a{padding:12px 14px;border-radius:8px;font-weight:800}.admin-sidebar a:hover{background:#1d2a38}.admin-main{padding:24px}.admin-topbar{background:white;border-radius:12px;padding:18px 22px;display:flex;justify-content:space-between;margin-bottom:20px;box-shadow:0 2px 10px rgba(0,0,0,.08)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-card{background:white;border-radius:12px;padding:20px;box-shadow:var(--shadow);border-top:5px solid var(--lime)}.stat-card span{color:var(--muted);font-weight:800}.stat-card strong{display:block;font-size:42px;margin-top:8px}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:24px}.admin-action{background:var(--navy);color:white;border-radius:12px;padding:24px;font-weight:900;text-align:center}.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.admin-table{width:100%;border-collapse:collapse;background:white;border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}.admin-table th{background:#101923;color:white;text-align:left}.admin-table th,.admin-table td{padding:12px;border-bottom:1px solid #e4e8ee;vertical-align:top}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.row-actions a,.row-actions button{background:#edf2f7;border:0;border-radius:7px;padding:7px 9px;font-weight:800;cursor:pointer;color:#152231}.admin-form{max-width:1000px}.admin-inline-actions{margin-top:16px;display:flex;gap:10px}.compact-form{margin-bottom:20px}@media(max-width:820px){.tournament-card{grid-template-columns:90px 1fr}.tournament-actions{grid-column:1/-1;align-items:flex-start}.event-summary,.info-card-grid,.grid-2,.grid-3,.grid-4,.footer-grid{grid-template-columns:1fr}.admin-body{grid-template-columns:1fr}.admin-sidebar{position:relative}.panel-card h3,.panel-card table{width:100%}.bracket-board{padding:14px}.site-header nav{gap:8px;font-size:11px}.brand img{height:42px}}
.admin-card{background:white;border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}.narrow-card{max-width:620px}.muted{color:var(--muted);font-size:14px;line-height:1.5}.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.btn-secondary{background:#edf2f7;color:#152231}

/* =========================================================
   ESAT v6 - Diseño de cuadro final estilo tablero de tenis
   Referencia: cuadro visual tipo videojuego sin fotos de jugadores
========================================================= */
.bracket-board{
    --bracket-bg:#142415;
    --bracket-card:#25341f;
    --bracket-card-2:#304626;
    --bracket-line:rgba(221,255,187,.78);
    --bracket-lime:#a7ff00;
    --bracket-green:#32d35a;
    --bracket-score:#c8ff7a;
    position:relative;
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(210px, 1fr);
    align-items:start;
    gap:58px;
    min-height:360px;
    padding:42px 46px;
    border-radius:14px;
    overflow:auto;
    color:#fff;
    background:
        linear-gradient(90deg, rgba(8,16,9,.88), rgba(35,71,27,.70), rgba(11,20,12,.88)),
        url('../img/court-bg.svg') center/cover no-repeat;
    box-shadow:0 18px 36px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.08);
}

.bracket-board::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(115deg, transparent 0 43%, rgba(255,255,255,.13) 43.3% 43.8%, transparent 44.1% 100%),
        linear-gradient(25deg, transparent 0 56%, rgba(255,255,255,.10) 56.3% 56.8%, transparent 57.1% 100%);
    opacity:.75;
}

.bracket-board::after{
    content:"";
    position:absolute;
    right:28px;
    top:34px;
    width:86px;
    height:86px;
    border-radius:50%;
    background:radial-gradient(circle at 35% 30%, #f5ff9d 0 13%, #caff20 14% 56%, #7bb600 57% 100%);
    box-shadow:0 12px 28px rgba(0,0,0,.35);
    opacity:.42;
    pointer-events:none;
}

.bracket-round{
    position:relative;
    z-index:1;
    min-width:210px;
    display:flex;
    flex-direction:column;
    gap:20px;
}

.bracket-round:nth-child(2){padding-top:44px;gap:66px}
.bracket-round:nth-child(3){padding-top:108px;gap:126px}
.bracket-round:nth-child(4){padding-top:182px;gap:210px}
.bracket-round:nth-child(5){padding-top:258px;gap:260px}

.bracket-round h4{
    min-height:24px;
    margin:0 0 12px;
    text-align:center;
    color:#fff;
    font-weight:900;
    font-style:italic;
    text-shadow:0 3px 10px rgba(0,0,0,.55);
    letter-spacing:.2px;
}

.bracket-match{
    position:relative;
    min-height:66px;
    padding:0;
    border:1px solid rgba(236,255,218,.55);
    border-left:5px solid var(--bracket-green);
    border-radius:3px;
    background:linear-gradient(180deg, rgba(52,75,39,.92), rgba(31,48,28,.92));
    box-shadow:0 8px 18px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.05);
    display:grid;
    grid-template-rows:1fr 1fr auto;
    overflow:visible;
}

.bracket-match::before{
    content:"";
    position:absolute;
    left:-1px;
    top:50%;
    right:-1px;
    height:1px;
    background:rgba(255,255,255,.18);
}

.bracket-round:not(:last-child) .bracket-match::after{
    content:"";
    position:absolute;
    left:100%;
    top:50%;
    width:58px;
    height:2px;
    background:var(--bracket-line);
    box-shadow:0 0 8px rgba(167,255,0,.32);
}

.bracket-match span{
    display:flex;
    align-items:center;
    min-height:30px;
    padding:6px 34px 6px 10px;
    font-size:14px;
    font-weight:800;
    line-height:1.1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    text-shadow:0 2px 6px rgba(0,0,0,.55);
}

.bracket-match span:first-child::after,
.bracket-match span:nth-child(2)::after{
    position:absolute;
    right:9px;
    width:22px;
    height:22px;
    border-radius:3px;
    display:grid;
    place-items:center;
    background:rgba(0,0,0,.35);
    color:var(--bracket-score);
    font-size:13px;
    font-weight:900;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}

.bracket-match span:first-child::after{
    content:"";
    top:5px;
}

.bracket-match span:nth-child(2)::after{
    content:"";
    top:36px;
}

.bracket-match small{
    display:block;
    padding:5px 8px 7px;
    color:#bbf2ff;
    font-size:12px;
    font-weight:900;
    text-align:center;
    background:rgba(5,12,18,.38);
    border-top:1px solid rgba(255,255,255,.08);
    text-shadow:0 1px 4px rgba(0,0,0,.55);
}

.bracket-match.played{
    border-left-color:var(--bracket-lime);
    background:linear-gradient(180deg, rgba(67,102,42,.96), rgba(34,66,31,.96));
}

.bracket-match.played span:first-child{
    color:#fff;
}

@media(max-width:900px){
    .bracket-board{
        grid-auto-columns:minmax(190px, 210px);
        gap:42px;
        padding:30px 26px;
        min-height:300px;
    }
    .bracket-round:not(:last-child) .bracket-match::after{width:42px}
    .bracket-round:nth-child(2){padding-top:36px;gap:54px}
    .bracket-round:nth-child(3){padding-top:86px;gap:104px}
    .bracket-round:nth-child(4){padding-top:142px;gap:170px}
    .bracket-board::after{width:62px;height:62px;right:18px;top:18px}
}

/* =========================================================
   ESAT v7 - Cuadro final por jugador con conectores visibles
   ========================================================= */
.bracket-board.bracket-board-v7{
    --v7-bg:#0b1e10;
    --v7-card:#203c1b;
    --v7-card-dark:#132515;
    --v7-border:rgba(203,255,171,.7);
    --v7-line:rgba(203,255,171,.72);
    --v7-lime:#a7ff00;
    --v7-green:#21d45a;
    --v7-blue:#6fd4ff;
    --v7-yellow:#d9ff6a;
    display:flex;
    align-items:flex-start;
    gap:46px;
    min-height:420px;
    padding:30px 34px 34px;
    border-radius:12px;
    position:relative;
    overflow:auto;
    color:#fff;
    background:
        radial-gradient(circle at 91% 12%, rgba(167,255,0,.22) 0 0, transparent 58px),
        linear-gradient(115deg, rgba(255,255,255,.06) 0 2px, transparent 3px 38%),
        linear-gradient(28deg, transparent 0 47%, rgba(255,255,255,.06) 48%, transparent 50%),
        linear-gradient(rgba(7,18,9,.80), rgba(7,18,9,.92)),
        url('../img/court-bg.svg') center/cover no-repeat,
        var(--v7-bg);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 16px 36px rgba(0,0,0,.22);
}

.bracket-board.bracket-board-v7::before{
    content:"";
    position:absolute;
    inset:24px 28px;
    border:5px solid rgba(167,255,0,.08);
    border-radius:18px;
    pointer-events:none;
}

.bracket-board.bracket-board-v7::after{
    content:"";
    position:absolute;
    top:26px;
    right:28px;
    width:72px;
    height:72px;
    border-radius:50%;
    background:
        radial-gradient(circle at 35% 28%, rgba(255,255,255,.25) 0 9px, transparent 10px),
        linear-gradient(135deg, rgba(255,255,255,.16), transparent 48%),
        #7aa600;
    box-shadow:12px 10px 0 rgba(95,132,0,.75);
    opacity:.78;
    pointer-events:none;
}

.bracket-board-v7 .bracket-round{
    position:relative;
    z-index:1;
    min-width:258px;
    width:258px;
    flex:0 0 258px;
    display:flex;
    flex-direction:column;
    gap:18px;
}

.bracket-board-v7 .bracket-round:nth-child(2){padding-top:72px;gap:72px;}
.bracket-board-v7 .bracket-round:nth-child(3){padding-top:158px;gap:144px;}
.bracket-board-v7 .bracket-round:nth-child(4){padding-top:246px;gap:210px;}
.bracket-board-v7 .bracket-round:nth-child(5){padding-top:330px;gap:260px;}

.bracket-board-v7 .bracket-round h4{
    min-height:24px;
    margin:0 0 12px;
    color:#fff;
    font-size:17px;
    line-height:1.1;
    font-style:italic;
    font-weight:900;
    text-align:center;
    text-shadow:0 2px 6px rgba(0,0,0,.65);
}

.bracket-board-v7 .bracket-match{
    position:relative;
    min-height:96px;
    padding:0;
    border:0;
    border-left:5px solid var(--v7-lime);
    background:rgba(23,43,19,.72);
    box-shadow:0 0 0 1px var(--v7-border), 0 10px 20px rgba(0,0,0,.18);
    display:grid;
    grid-template-rows:1fr auto 1fr;
    gap:0;
    overflow:visible;
}

.bracket-board-v7 .bracket-match::after{
    content:"";
    position:absolute;
    left:100%;
    top:50%;
    width:46px;
    height:2px;
    background:var(--v7-line);
    transform:translateY(-50%);
    box-shadow:0 0 8px rgba(167,255,0,.22);
}

.bracket-board-v7 .bracket-round:last-child .bracket-match::after{
    display:none;
}

.bracket-board-v7 .bracket-round:not(:first-child) .bracket-match::before{
    content:"";
    position:absolute;
    right:100%;
    top:50%;
    width:46px;
    height:2px;
    background:var(--v7-line);
    transform:translateY(-50%);
    box-shadow:0 0 8px rgba(167,255,0,.22);
}

.bracket-board-v7 .bracket-player{
    position:relative;
    min-height:34px;
    display:flex;
    align-items:center;
    padding:8px 32px 8px 12px;
    background:linear-gradient(90deg, rgba(58,92,42,.92), rgba(30,58,24,.76));
    border-bottom:1px solid rgba(214,255,194,.17);
    font-size:13px;
    font-weight:900;
    line-height:1.2;
    text-shadow:0 2px 4px rgba(0,0,0,.65);
}

.bracket-board-v7 .bracket-player:last-child{
    border-top:1px solid rgba(214,255,194,.17);
    border-bottom:0;
}

.bracket-board-v7 .bracket-player::after{
    content:"";
    position:absolute;
    right:9px;
    top:50%;
    width:16px;
    height:16px;
    border-radius:2px;
    background:rgba(8,18,10,.5);
    border:1px solid rgba(255,255,255,.09);
    transform:translateY(-50%);
}

.bracket-board-v7 .bracket-player.winner{
    color:#fff;
    background:linear-gradient(90deg, rgba(44,151,66,.94), rgba(36,85,28,.76));
}

.bracket-board-v7 .bracket-player.winner::after{
    background:var(--v7-lime);
    border-color:rgba(255,255,255,.25);
    box-shadow:0 0 10px rgba(167,255,0,.45);
}

.bracket-board-v7 .bracket-player-name{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.bracket-board-v7 .bracket-meta{
    justify-self:center;
    align-self:center;
    min-width:108px;
    max-width:180px;
    padding:4px 12px;
    margin:-1px 0;
    border-radius:0;
    background:rgba(6,18,10,.55);
    color:var(--v7-blue);
    font-size:12px;
    font-weight:950;
    text-align:center;
    line-height:1.15;
    letter-spacing:.1px;
    text-shadow:0 2px 4px rgba(0,0,0,.75);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}

.bracket-board-v7 .bracket-meta.is-score{
    color:var(--v7-yellow);
    background:rgba(8,28,11,.72);
}

.bracket-board-v7 .bracket-match.played{
    border-left-color:var(--v7-green);
}

.bracket-board-v7 .bracket-empty{
    position:relative;
    z-index:1;
    margin:0;
    padding:16px 18px;
    background:rgba(255,255,255,.08);
    border-radius:10px;
    font-weight:800;
}

@media(max-width:900px){
    .bracket-board.bracket-board-v7{
        gap:34px;
        padding:24px 20px 28px;
    }
    .bracket-board-v7 .bracket-round{
        min-width:230px;
        width:230px;
        flex-basis:230px;
    }
    .bracket-board-v7 .bracket-match::after,
    .bracket-board-v7 .bracket-round:not(:first-child) .bracket-match::before{
        width:34px;
    }
    .bracket-board-v7 .bracket-player{
        font-size:12px;
    }
    .bracket-board.bracket-board-v7::after{
        width:54px;
        height:54px;
    }
}

/* =========================================================
   ESAT BRACKET V8 - jugadores en cajas separadas con score
   ========================================================= */
.bracket-board.bracket-board-v8{
    --v8-lime:#9cff00;
    --v8-line:#b9ff84;
    --v8-green-1:rgba(53,95,42,.92);
    --v8-green-2:rgba(28,58,25,.90);
    --v8-green-3:rgba(9,25,12,.86);
    --v8-border:rgba(221,255,205,.40);
    --v8-score-bg:rgba(7,18,10,.88);
    --v8-score-border:rgba(255,255,255,.28);
    --v8-gap:46px;
    --v8-line-w:58px;
    width:100%;
    min-height:420px;
    display:flex !important;
    align-items:flex-start;
    gap:var(--v8-gap);
    overflow-x:auto;
    overflow-y:hidden;
    padding:30px 34px 38px !important;
    border-radius:12px;
    position:relative;
    color:#fff;
    background:
        radial-gradient(circle at 91% 10%, rgba(158,255,0,.18) 0 0, transparent 58px),
        linear-gradient(114deg, rgba(255,255,255,.08) 0 2px, transparent 3px 40%),
        linear-gradient(28deg, transparent 0 47%, rgba(255,255,255,.07) 48%, transparent 50%),
        linear-gradient(rgba(7,24,10,.78), rgba(5,16,8,.94)),
        url('../img/court-bg.svg') center/cover no-repeat,
        #081508;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 16px 36px rgba(0,0,0,.24);
}

.bracket-board.bracket-board-v8::before{
    content:"";
    position:absolute;
    inset:24px 28px;
    border:5px solid rgba(156,255,0,.08);
    border-radius:18px;
    pointer-events:none;
}

.bracket-board.bracket-board-v8::after{
    content:"";
    position:absolute;
    top:26px;
    right:30px;
    width:74px;
    height:74px;
    border-radius:50%;
    background:
        radial-gradient(circle at 35% 28%, rgba(255,255,255,.26) 0 9px, transparent 10px),
        linear-gradient(135deg, rgba(255,255,255,.14), transparent 49%),
        #7aa600;
    box-shadow:12px 10px 0 rgba(86,120,0,.72);
    opacity:.76;
    pointer-events:none;
}

.bracket-board-v8 .esat-bracket-round{
    position:relative;
    z-index:1;
    min-width:260px;
    width:260px;
    flex:0 0 260px;
    display:flex;
    flex-direction:column;
    gap:18px;
    overflow:visible;
}

.bracket-board-v8 .esat-bracket-round-2{padding-top:74px;gap:70px;}
.bracket-board-v8 .esat-bracket-round-3{padding-top:162px;gap:142px;}
.bracket-board-v8 .esat-bracket-round-4{padding-top:248px;gap:212px;}
.bracket-board-v8 .esat-bracket-round-5{padding-top:334px;gap:270px;}

.bracket-board-v8 .esat-bracket-round h4{
    min-height:26px;
    margin:0 0 10px !important;
    color:#fff;
    font-size:17px;
    line-height:1.1;
    font-style:italic;
    font-weight:950;
    text-align:center;
    text-shadow:0 3px 7px rgba(0,0,0,.85);
}

.bracket-board-v8 .esat-bracket-match{
    position:relative;
    min-height:82px;
    padding:0;
    border:0;
    background:transparent !important;
    box-shadow:none !important;
    overflow:visible;
}

.bracket-board-v8 .esat-bracket-match::after{
    content:"";
    position:absolute;
    left:100%;
    top:50%;
    width:var(--v8-line-w);
    height:2px;
    background:linear-gradient(90deg, var(--v8-line), rgba(185,255,132,.62));
    transform:translateY(-50%);
    box-shadow:0 0 10px rgba(156,255,0,.35);
    z-index:0;
}

.bracket-board-v8 .esat-bracket-round:last-child .esat-bracket-match::after{
    display:none;
}

.bracket-board-v8 .esat-bracket-match.pair-top::before{
    content:"";
    position:absolute;
    left:calc(100% + var(--v8-line-w));
    top:50%;
    width:2px;
    height:100px;
    background:rgba(185,255,132,.42);
    box-shadow:0 0 8px rgba(156,255,0,.20);
    z-index:0;
}

.bracket-board-v8 .esat-bracket-round-2 .esat-bracket-match.pair-top::before{height:154px;}
.bracket-board-v8 .esat-bracket-round-3 .esat-bracket-match.pair-top::before{height:226px;}
.bracket-board-v8 .esat-bracket-round-4 .esat-bracket-match.pair-top::before{height:296px;}
.bracket-board-v8 .esat-bracket-round:last-child .esat-bracket-match.pair-top::before{display:none;}

.bracket-board-v8 .esat-bracket-incoming{
    position:absolute;
    right:100%;
    top:50%;
    width:var(--v8-line-w);
    height:2px;
    background:linear-gradient(90deg, rgba(185,255,132,.55), var(--v8-line));
    transform:translateY(-50%);
    box-shadow:0 0 10px rgba(156,255,0,.28);
    z-index:0;
}

.bracket-board-v8 .esat-bracket-round:first-child .esat-bracket-incoming{
    display:none;
}

.bracket-board-v8 .esat-player-box{
    position:relative;
    z-index:2;
    min-height:34px;
    display:grid;
    grid-template-columns:1fr 42px;
    align-items:center;
    overflow:hidden;
    border:1px solid var(--v8-border);
    background:linear-gradient(90deg, var(--v8-green-1), var(--v8-green-2));
    backdrop-filter:blur(2px);
    box-shadow:0 4px 10px rgba(0,0,0,.25), inset 4px 0 0 var(--v8-lime);
}

.bracket-board-v8 .esat-player-box + .esat-player-box{
    margin-top:4px;
}

.bracket-board-v8 .esat-player-name{
    display:block;
    padding:8px 10px 8px 16px;
    overflow:hidden;
    color:#fff;
    font-size:13px;
    font-weight:950;
    line-height:1.15;
    white-space:nowrap;
    text-overflow:ellipsis;
    text-shadow:0 2px 5px rgba(0,0,0,.82);
}

.bracket-board-v8 .esat-player-score{
    height:100%;
    min-height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 6px;
    color:#fff;
    background:var(--v8-score-bg);
    border-left:1px solid var(--v8-score-border);
    font-size:14px;
    font-weight:950;
    letter-spacing:.2px;
    text-shadow:0 2px 4px rgba(0,0,0,.8);
}

.bracket-board-v8 .esat-player-score.is-empty{
    color:rgba(255,255,255,.34);
}

.bracket-board-v8 .esat-player-box.is-winner{
    background:linear-gradient(90deg, rgba(40,151,63,.98), rgba(35,87,30,.92));
    border-color:rgba(204,255,179,.72);
    box-shadow:0 5px 14px rgba(0,0,0,.32), inset 4px 0 0 #fff700, 0 0 12px rgba(156,255,0,.22);
}

.bracket-board-v8 .esat-player-box.is-winner .esat-player-score{
    color:#081208;
    background:var(--v8-lime);
    border-left-color:rgba(255,255,255,.34);
}

.bracket-board-v8 .esat-match-center{
    position:relative;
    z-index:3;
    width:max-content;
    max-width:190px;
    margin:-1px auto;
    padding:3px 11px;
    border-radius:3px;
    background:rgba(5,18,8,.92);
    border:1px solid rgba(255,255,255,.12);
    color:#89d5ff;
    font-size:11px;
    font-weight:950;
    line-height:1.05;
    text-align:center;
    text-shadow:0 2px 4px rgba(0,0,0,.82);
    box-shadow:0 2px 6px rgba(0,0,0,.25);
}

.bracket-board-v8 .esat-match-center.is-result{
    color:#fff700;
    background:rgba(4,18,8,.96);
}

.bracket-board-v8 .bracket-empty{
    position:relative;
    z-index:1;
    margin:0;
    padding:16px 18px;
    background:rgba(255,255,255,.08);
    border-radius:10px;
    font-weight:800;
}

@media(max-width:900px){
    .bracket-board.bracket-board-v8{
        --v8-gap:36px;
        --v8-line-w:42px;
        min-height:360px;
        padding:24px 20px 30px !important;
    }
    .bracket-board-v8 .esat-bracket-round{
        min-width:226px;
        width:226px;
        flex-basis:226px;
    }
    .bracket-board-v8 .esat-player-name{font-size:12px;}
    .bracket-board-v8 .esat-player-score{font-size:12px;grid-column:auto;}
    .bracket-board-v8 .esat-player-box{grid-template-columns:1fr 34px;}
    .bracket-board.bracket-board-v8::after{width:54px;height:54px;}
}

/* =========================================================
   ESAT BRACKET V9 - jugador en cuadro propio con marcador lateral
   ========================================================= */
.bracket-board.esat-bracket-v9{
    --v9-lime:#9cff00;
    --v9-line:#d5ffb4;
    --v9-line-soft:rgba(213,255,180,.42);
    --v9-card:rgba(38,70,30,.94);
    --v9-card-2:rgba(23,48,20,.96);
    --v9-score-bg:rgba(5,15,8,.96);
    --v9-border:rgba(221,255,205,.62);
    --v9-gap:54px;
    --v9-line-width:64px;
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    gap:var(--v9-gap) !important;
    width:100% !important;
    min-height:460px !important;
    padding:34px 38px 42px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    position:relative !important;
    border-radius:10px !important;
    color:#fff !important;
    background:
        radial-gradient(circle at 92% 9%, rgba(156,255,0,.18) 0 0, transparent 58px),
        linear-gradient(116deg, transparent 0 26%, rgba(255,255,255,.11) 27%, transparent 28% 100%),
        linear-gradient(32deg, transparent 0 61%, rgba(255,255,255,.10) 62%, transparent 63% 100%),
        linear-gradient(rgba(8,28,12,.76), rgba(4,15,8,.96)),
        url('../img/court-bg.svg') center/cover no-repeat,
        #071407 !important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 16px 36px rgba(0,0,0,.22) !important;
}

.bracket-board.esat-bracket-v9::before{
    content:"";
    position:absolute;
    inset:28px 34px;
    border:5px solid rgba(156,255,0,.08);
    border-radius:18px;
    pointer-events:none;
}

.bracket-board.esat-bracket-v9::after{
    content:"";
    position:absolute;
    top:26px;
    right:30px;
    width:72px;
    height:72px;
    border-radius:50%;
    background:
        radial-gradient(circle at 35% 28%, rgba(255,255,255,.28) 0 9px, transparent 10px),
        linear-gradient(135deg, rgba(255,255,255,.14), transparent 49%),
        #7aa600;
    box-shadow:12px 10px 0 rgba(86,120,0,.72);
    opacity:.76;
    pointer-events:none;
}

.esat-bracket-v9 .esat-v9-round{
    position:relative !important;
    z-index:2 !important;
    width:270px !important;
    min-width:270px !important;
    flex:0 0 270px !important;
    display:flex !important;
    flex-direction:column !important;
    gap:16px !important;
    overflow:visible !important;
}

.esat-bracket-v9 .esat-v9-round-2{padding-top:72px !important; gap:72px !important;}
.esat-bracket-v9 .esat-v9-round-3{padding-top:162px !important; gap:142px !important;}
.esat-bracket-v9 .esat-v9-round-4{padding-top:248px !important; gap:220px !important;}
.esat-bracket-v9 .esat-v9-round-5{padding-top:334px !important; gap:270px !important;}

.esat-bracket-v9 .esat-v9-round h4{
    display:block !important;
    min-height:26px !important;
    margin:0 0 10px !important;
    color:#fff !important;
    font-size:16px !important;
    line-height:1.1 !important;
    font-style:italic !important;
    font-weight:950 !important;
    text-align:center !important;
    text-shadow:0 3px 7px rgba(0,0,0,.88) !important;
}

.esat-bracket-v9 .esat-v9-match{
    position:relative !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    gap:4px !important;
    min-height:78px !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    overflow:visible !important;
}

.esat-bracket-v9 .esat-v9-match::after{
    content:"";
    position:absolute;
    left:100%;
    top:50%;
    width:var(--v9-line-width);
    height:3px;
    transform:translateY(-50%);
    background:linear-gradient(90deg, var(--v9-line), rgba(213,255,180,.60));
    box-shadow:0 0 9px rgba(156,255,0,.36);
    z-index:1;
}

.esat-bracket-v9 .esat-v9-round:last-child .esat-v9-match::after{
    display:none !important;
}

.esat-bracket-v9 .esat-v9-match.is-pair-top::before{
    content:"";
    position:absolute;
    left:calc(100% + var(--v9-line-width));
    top:50%;
    width:3px;
    height:98px;
    background:var(--v9-line-soft);
    box-shadow:0 0 9px rgba(156,255,0,.22);
    z-index:1;
}

.esat-bracket-v9 .esat-v9-round-2 .esat-v9-match.is-pair-top::before{height:154px !important;}
.esat-bracket-v9 .esat-v9-round-3 .esat-v9-match.is-pair-top::before{height:226px !important;}
.esat-bracket-v9 .esat-v9-round-4 .esat-v9-match.is-pair-top::before{height:296px !important;}
.esat-bracket-v9 .esat-v9-round:last-child .esat-v9-match.is-pair-top::before{display:none !important;}

.esat-bracket-v9 .esat-v9-player{
    position:relative !important;
    z-index:3 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 44px !important;
    align-items:center !important;
    min-height:32px !important;
    overflow:hidden !important;
    border:1px solid var(--v9-border) !important;
    background:linear-gradient(90deg, var(--v9-card), var(--v9-card-2)) !important;
    box-shadow:0 4px 10px rgba(0,0,0,.30), inset 4px 0 0 var(--v9-lime) !important;
}

.esat-bracket-v9 .esat-v9-name{
    display:block !important;
    padding:7px 10px 7px 15px !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
    color:#fff !important;
    font-size:13px !important;
    font-weight:950 !important;
    line-height:1.1 !important;
    text-shadow:0 2px 5px rgba(0,0,0,.85) !important;
}

.esat-bracket-v9 .esat-v9-score{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    height:100% !important;
    min-height:32px !important;
    padding:0 5px !important;
    border-left:1px solid rgba(255,255,255,.25) !important;
    background:var(--v9-score-bg) !important;
    color:#fff !important;
    font-size:14px !important;
    font-weight:950 !important;
    letter-spacing:.2px !important;
    text-shadow:0 2px 4px rgba(0,0,0,.85) !important;
}

.esat-bracket-v9 .esat-v9-score.is-empty{
    color:rgba(255,255,255,.34) !important;
}

.esat-bracket-v9 .esat-v9-player.is-winner{
    background:linear-gradient(90deg, rgba(37,146,60,.98), rgba(28,83,27,.96)) !important;
    border-color:rgba(223,255,199,.84) !important;
    box-shadow:0 5px 14px rgba(0,0,0,.34), inset 4px 0 0 #fff700, 0 0 12px rgba(156,255,0,.25) !important;
}

.esat-bracket-v9 .esat-v9-player.is-winner .esat-v9-score{
    background:var(--v9-lime) !important;
    color:#071407 !important;
}

.esat-bracket-v9 .esat-v9-date{
    position:relative !important;
    z-index:4 !important;
    align-self:center !important;
    width:max-content !important;
    max-width:190px !important;
    margin:-1px 0 !important;
    padding:2px 10px !important;
    border-radius:3px !important;
    border:1px solid rgba(255,255,255,.16) !important;
    background:rgba(4,15,8,.94) !important;
    color:#89d5ff !important;
    font-size:11px !important;
    font-weight:950 !important;
    line-height:1.05 !important;
    text-align:center !important;
    text-shadow:0 2px 4px rgba(0,0,0,.82) !important;
}

.esat-bracket-v9 .bracket-empty{
    position:relative !important;
    z-index:2 !important;
    margin:0 !important;
    padding:16px 18px !important;
    background:rgba(255,255,255,.08) !important;
    border-radius:10px !important;
    font-weight:800 !important;
}

@media(max-width:900px){
    .bracket-board.esat-bracket-v9{
        --v9-gap:38px;
        --v9-line-width:42px;
        min-height:370px !important;
        padding:24px 20px 30px !important;
    }

    .esat-bracket-v9 .esat-v9-round{
        width:226px !important;
        min-width:226px !important;
        flex-basis:226px !important;
    }

    .esat-bracket-v9 .esat-v9-player{
        grid-template-columns:minmax(0,1fr) 36px !important;
    }

    .esat-bracket-v9 .esat-v9-name,
    .esat-bracket-v9 .esat-v9-score{
        font-size:12px !important;
    }

    .bracket-board.esat-bracket-v9::after{
        width:54px;
        height:54px;
    }
}

/* =========================================================
   ESAT BRACKET V10 - cuadro alineado por slots con marcador lateral
   ========================================================= */
.bracket-board.esat-bracket-v10{
    --v10-lime:#9cff00;
    --v10-lime-soft:rgba(156,255,0,.75);
    --v10-line:#d6ffb8;
    --v10-line-soft:rgba(214,255,184,.58);
    --v10-card:rgba(24,55,24,.94);
    --v10-card-2:rgba(16,39,17,.96);
    --v10-card-win:rgba(30,125,48,.98);
    --v10-score-bg:rgba(4,15,8,.96);
    --v10-border:rgba(220,255,205,.64);
    --slot-h:42px;
    --match-w:270px;
    --line-w:62px;
    --round-gap:86px;
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    gap:var(--round-gap) !important;
    width:100% !important;
    min-height:calc((var(--total-slots) * var(--slot-h)) + 98px) !important;
    padding:28px 46px 42px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    position:relative !important;
    border-radius:10px !important;
    color:#fff !important;
    background:
        linear-gradient(rgba(3,18,8,.68), rgba(3,14,7,.86)),
        url('../img/court-bg.svg') center/cover no-repeat,
        #061207 !important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 16px 36px rgba(0,0,0,.22) !important;
}

.bracket-board.esat-bracket-v10::before{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    background:linear-gradient(90deg, rgba(0,0,0,.12), transparent 35%, rgba(0,0,0,.10));
    pointer-events:none;
    z-index:0;
}

.bracket-board.esat-bracket-v10::after{
    content:"";
    position:absolute;
    top:18px;
    right:30px;
    width:70px;
    height:70px;
    border-radius:50%;
    background:
        radial-gradient(circle at 34% 28%, rgba(255,255,255,.28) 0 9px, transparent 10px),
        linear-gradient(135deg, rgba(255,255,255,.14), transparent 49%),
        #7aa600;
    box-shadow:12px 10px 0 rgba(86,120,0,.68);
    opacity:.74;
    pointer-events:none;
    z-index:1;
}

.esat-bracket-v10 .esat-v10-round{
    position:relative !important;
    z-index:2 !important;
    width:var(--match-w) !important;
    min-width:var(--match-w) !important;
    flex:0 0 var(--match-w) !important;
}

.esat-bracket-v10 .esat-v10-round h4{
    display:block !important;
    height:32px !important;
    margin:0 0 12px !important;
    color:#fff !important;
    font-size:16px !important;
    line-height:1.1 !important;
    font-style:italic !important;
    font-weight:950 !important;
    text-align:center !important;
    text-shadow:0 3px 7px rgba(0,0,0,.9) !important;
}

.esat-bracket-v10 .esat-v10-grid{
    display:grid !important;
    position:relative !important;
    width:var(--match-w) !important;
    min-height:calc(var(--total-slots) * var(--slot-h)) !important;
    overflow:visible !important;
}

.esat-bracket-v10 .esat-v10-slot{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    width:var(--match-w) !important;
    overflow:visible !important;
}

.esat-bracket-v10 .esat-v10-match{
    position:relative !important;
    z-index:3 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    width:var(--match-w) !important;
    min-height:70px !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    overflow:visible !important;
}

/* Línea que sale de cada partido hacia el conector vertical */
.esat-bracket-v10 .esat-v10-match::after{
    content:"";
    position:absolute;
    left:100%;
    top:50%;
    width:var(--line-w);
    height:3px;
    transform:translateY(-50%);
    background:linear-gradient(90deg, var(--v10-line), rgba(214,255,184,.42));
    box-shadow:0 0 9px rgba(156,255,0,.38);
    z-index:1;
}

/* Línea que entra desde el conector anterior al partido de la nueva ronda */
.esat-bracket-v10 .esat-v10-match::before{
    content:"";
    position:absolute;
    right:100%;
    top:50%;
    width:calc(var(--round-gap) - 24px);
    height:3px;
    transform:translateY(-50%);
    background:linear-gradient(90deg, rgba(214,255,184,.42), var(--v10-line));
    box-shadow:0 0 9px rgba(156,255,0,.32);
    z-index:1;
}

.esat-bracket-v10 .esat-v10-round:first-child .esat-v10-match::before,
.esat-bracket-v10 .esat-v10-round.is-last-round .esat-v10-match::after{
    display:none !important;
}

/* Conector vertical entre los dos partidos que alimentan la ronda siguiente */
.esat-bracket-v10 .esat-v10-slot.is-pair-top::after{
    content:"";
    position:absolute;
    left:calc(100% + var(--line-w));
    top:50%;
    width:3px;
    height:calc(var(--slot-h) * var(--slot-span));
    background:var(--v10-line-soft);
    box-shadow:0 0 9px rgba(156,255,0,.26);
    z-index:1;
}

.esat-bracket-v10 .esat-v10-round.is-last-round .esat-v10-slot.is-pair-top::after{
    display:none !important;
}

.esat-bracket-v10 .esat-v10-player{
    position:relative !important;
    z-index:4 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 44px !important;
    align-items:center !important;
    min-height:32px !important;
    overflow:hidden !important;
    border:1px solid var(--v10-border) !important;
    background:linear-gradient(90deg, var(--v10-card), var(--v10-card-2)) !important;
    box-shadow:0 4px 10px rgba(0,0,0,.30), inset 4px 0 0 var(--v10-lime) !important;
}

.esat-bracket-v10 .esat-v10-player + .esat-v10-player{
    margin-top:4px !important;
}

.esat-bracket-v10 .esat-v10-name{
    display:block !important;
    padding:7px 10px 7px 15px !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
    color:#fff !important;
    font-size:13px !important;
    font-weight:950 !important;
    line-height:1.1 !important;
    text-shadow:0 2px 5px rgba(0,0,0,.88) !important;
}

.esat-bracket-v10 .esat-v10-score{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    height:100% !important;
    min-height:32px !important;
    padding:0 5px !important;
    border-left:1px solid rgba(255,255,255,.25) !important;
    background:var(--v10-score-bg) !important;
    color:#fff !important;
    font-size:14px !important;
    font-weight:950 !important;
    letter-spacing:.2px !important;
    text-shadow:0 2px 4px rgba(0,0,0,.85) !important;
}

.esat-bracket-v10 .esat-v10-score.is-empty{
    color:rgba(255,255,255,.36) !important;
}

.esat-bracket-v10 .esat-v10-player.is-winner{
    background:linear-gradient(90deg, var(--v10-card-win), rgba(28,82,27,.96)) !important;
    border-color:rgba(231,255,210,.88) !important;
    box-shadow:0 5px 14px rgba(0,0,0,.36), inset 4px 0 0 #fff700, 0 0 13px rgba(156,255,0,.25) !important;
}

.esat-bracket-v10 .esat-v10-player.is-winner .esat-v10-score{
    background:var(--v10-lime) !important;
    color:#071407 !important;
    border-left-color:rgba(255,255,255,.35) !important;
}

/* Solo se muestra cuando el partido todavía no tiene resultado */
.esat-bracket-v10 .esat-v10-date{
    position:relative !important;
    z-index:5 !important;
    align-self:center !important;
    width:max-content !important;
    max-width:190px !important;
    margin:3px 0 !important;
    padding:2px 10px !important;
    border-radius:3px !important;
    border:1px solid rgba(255,255,255,.16) !important;
    background:rgba(4,15,8,.94) !important;
    color:#89d5ff !important;
    font-size:11px !important;
    font-weight:950 !important;
    line-height:1.05 !important;
    text-align:center !important;
    text-shadow:0 2px 4px rgba(0,0,0,.82) !important;
}

.esat-bracket-v10 .bracket-empty{
    position:relative !important;
    z-index:2 !important;
    margin:0 !important;
    padding:16px 18px !important;
    background:rgba(255,255,255,.08) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    border-radius:10px !important;
    color:#fff !important;
}

@media (max-width: 768px){
    .bracket-board.esat-bracket-v10{
        --match-w:238px;
        --line-w:42px;
        --round-gap:62px;
        --slot-h:40px;
        padding:24px 28px 34px !important;
    }
    .esat-bracket-v10 .esat-v10-name{font-size:12px !important;}
    .esat-bracket-v10 .esat-v10-player{grid-template-columns:minmax(0,1fr) 38px !important;}
}

/* =========================================================
   ESAT Ajustes v11 · Round Robin y formularios
   ========================================================= */
.form-help{display:block;color:#64748b;font-size:.86rem;line-height:1.45;margin-top:5px}
.public-form h2{margin:28px 0 12px;color:#142131;font-size:1.25rem;border-bottom:2px solid #9dff00;padding-bottom:8px}

.rr-groups-grid{display:grid;gap:28px;margin:22px 0 34px}
.rr-card{background:#fff;border:1px solid #d8e0e8;border-radius:14px;overflow:hidden;box-shadow:0 10px 24px rgba(15,23,42,.08)}
.rr-card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;background:linear-gradient(90deg,#087a8d,#20b5cf);color:#fff}
.rr-card-title strong{font-size:1rem;text-transform:uppercase}
.rr-card-title span{font-size:.78rem;font-weight:800;opacity:.92}
.rr-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.rr-matrix{width:100%;min-width:760px;border-collapse:collapse;background:#fff;color:#111827;font-size:.8rem}
.rr-matrix th,.rr-matrix td{border:1px solid #d7dee7;padding:7px 8px;text-align:center;vertical-align:middle}
.rr-matrix thead th{background:#f8fafc;color:#0f172a;font-size:.72rem;text-transform:uppercase;white-space:nowrap}
.rr-matrix .rr-number{width:42px;font-weight:900}
.rr-matrix .rr-player{min-width:190px;text-align:left}
.rr-matrix .rr-academy{min-width:115px;text-align:left}
.rr-matrix .rr-opponent{min-width:76px}
.rr-self{background:linear-gradient(135deg,#e2e8f0 49%,#94a3b8 50%,#e2e8f0 51%)}
.rr-result{min-width:78px;background:#f8fafc;padding:4px!important}
.rr-result a{display:flex;flex-direction:column;gap:3px;color:inherit;text-decoration:none}
.rr-set{display:block;border-radius:4px;background:#e7edf4;padding:3px 5px;font-weight:900;white-space:nowrap}
.rr-set.is-won{background:#9dff00;color:#071018}
.rr-result.is-pending{background:#fff}
.rr-date{display:block;color:#64748b;font-size:.69rem;line-height:1.2}
.rr-pending{color:#94a3b8;background:#fff}
.rr-stat{font-weight:900;background:#f8fafc;white-space:nowrap}
.rr-position{font-weight:1000;background:#dbeafe;color:#0f172a}
.rr-public-help{margin:-2px 0 18px;color:#64748b;text-align:center}
.rr-public-groups{grid-template-columns:1fr}

@media (max-width:760px){
  .rr-card-title{align-items:flex-start;flex-direction:column}
  .rr-matrix{font-size:.75rem;min-width:690px}
}

/* =========================================================
   ESAT Registro v12 - formulario público y política de datos
   ========================================================= */
.esat-registration-form h2{
    margin-top:28px;
    margin-bottom:12px;
    color:#0e1b2d;
    font-size:22px;
}
.esat-registration-form label small{
    color:#6b7280;
    font-weight:700;
}
.registration-legal-box{
    margin:22px 0 14px;
    padding:16px 18px;
    border-left:5px solid #9bff00;
    background:#f3f7ee;
    border-radius:14px;
    color:#1b2430;
    font-size:14px;
    line-height:1.45;
}
.registration-legal-box p{margin:0 0 10px}
.registration-legal-box p:last-child{margin-bottom:0}
.registration-checks{
    display:grid;
    gap:12px;
    margin:18px 0 24px;
}
.check-row{
    display:flex!important;
    align-items:flex-start;
    gap:10px;
    padding:12px 14px;
    background:#fff;
    border:1px solid #d7dee8;
    border-radius:14px;
    line-height:1.35;
    font-weight:700;
    flex-direction: row;
}
.check-row input{
    width:auto!important;
    min-width:18px;
    height:18px;
    margin-top:2px;
}
.check-row a{
    color:#d10f27;
    text-decoration:underline;
}
.esat-policy-page h2{
    margin-top:26px;
    color:#d10f27;
    font-size:21px;
}
.esat-policy-page p{
    line-height:1.65;
}
/* ===== Ajuste separación entre partidos en eliminatorias públicas ===== */

.public-elimination-bracket,
.elimination-bracket,
.bracket-board {
    padding: 28px 26px;
}

.public-elimination-bracket .bracket-round,
.elimination-bracket .bracket-round,
.bracket-board .bracket-round {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.public-elimination-bracket .bracket-match,
.elimination-bracket .bracket-match,
.bracket-board .bracket-match {
    margin-bottom: 6px;
}

.public-elimination-bracket .bracket-match + .bracket-match,
.elimination-bracket .bracket-match + .bracket-match,
.bracket-board .bracket-match + .bracket-match {
    margin-top: 8px;
}

.public-elimination-bracket .bracket-player,
.elimination-bracket .bracket-player,
.bracket-board .bracket-player {
    min-height: 42px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.public-elimination-bracket .bracket-meta,
.elimination-bracket .bracket-meta,
.bracket-board .bracket-meta {
    margin: 8px 0 12px;
}

.public-elimination-bracket .bracket-round-title,
.elimination-bracket .bracket-round-title,
.bracket-board .bracket-round-title {
    margin-bottom: 18px;
}

/* Más espacio todavía en la primera columna, donde se nota más el problema */
.public-elimination-bracket .bracket-round:first-child,
.elimination-bracket .bracket-round:first-child,
.bracket-board .bracket-round:first-child {
    gap: 24px;
}
