
.lxt-public-competitions,
.lxt-public-tournament-detail{
    --lxt-green:#1f7a4c;
    --lxt-green-dark:#145437;
    --lxt-soft:#f4f8f5;
    --lxt-border:#dce6df;
    --lxt-text:#17211b;
    --lxt-muted:#68746d;
    max-width:1180px;
    margin:40px auto 0;
    padding:0 24px;
    color:var(--lxt-text);
    box-sizing:border-box;
}
.lxt-public-competitions-heading{margin-bottom:22px}
.lxt-public-competitions-heading h2,
.lxt-public-detail-header h2{
    margin:4px 0 0;
    font-size:clamp(28px,4vw,42px);
}
.lxt-public-kicker{
    display:block;
    color:var(--lxt-green);
    font-size:12px;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase;
}
.lxt-public-tournament-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}
.lxt-public-tournament-card{
    padding:22px;
    border:1px solid var(--lxt-border);
    border-radius:14px;
    background:#fff;
    box-shadow:0 10px 28px rgba(19,49,31,.06);
}
.lxt-public-card-top,
.lxt-public-detail-header,
.lxt-public-match-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}
.lxt-public-tournament-card h3{margin:18px 0 12px;font-size:22px}
.lxt-public-status,
.lxt-public-category{
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
}
.lxt-public-category{background:var(--lxt-soft);color:var(--lxt-green-dark)}
.lxt-status-en_juego{background:#dff6e8;color:#17603c}
.lxt-status-inscripciones_abiertas{background:#e5f2ff;color:#135f96}
.lxt-status-finalizado{background:#efefef;color:#4c5450}
.lxt-status-borrador{background:#fff4d8;color:#795d00}
.lxt-public-card-meta{display:flex;gap:16px;color:var(--lxt-muted);font-size:14px}
.lxt-public-card-date{color:var(--lxt-muted);font-size:14px}
.lxt-public-button{
    display:inline-flex;
    margin-top:16px;
    padding:10px 16px;
    border-radius:8px;
    background:var(--lxt-green);
    color:#fff!important;
    font-weight:800;
    text-decoration:none!important;
}
.lxt-public-button:hover{background:var(--lxt-green-dark)}
.lxt-public-detail-header{margin-bottom:24px;align-items:flex-end}
.lxt-public-round{margin:0 0 28px}
.lxt-public-round h3{margin:0 0 14px;font-size:24px}
.lxt-public-match-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.lxt-public-match-card{
    overflow:hidden;
    border:1px solid var(--lxt-border);
    border-radius:12px;
    background:#fff;
    box-shadow:0 8px 22px rgba(19,49,31,.05);
}
.lxt-public-match-meta{
    padding:10px 14px;
    background:var(--lxt-soft);
    color:var(--lxt-muted);
    font-size:12px;
}
.lxt-public-player-line{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:15px 16px;
    border-top:1px solid var(--lxt-border);
}
.lxt-public-player-line.is-winner{
    background:#f1fbf5;
}
.lxt-public-player-line.is-winner .lxt-public-player-name{
    color:var(--lxt-green-dark);
    font-weight:800;
}
.lxt-public-player-name{font-weight:700}
.lxt-public-sets{
    display:grid;
    grid-template-columns:repeat(3,34px);
    gap:4px;
    text-align:center;
}
.lxt-public-sets b{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    border-radius:6px;
    background:#f5f6f5;
}
.lxt-public-final-results{margin-top:34px}
.lxt-public-results-grid{
    overflow:hidden;
    border:1px solid var(--lxt-border);
    border-radius:12px;
    background:#fff;
}
.lxt-public-result-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:14px 16px;
    border-bottom:1px solid var(--lxt-border);
}
.lxt-public-result-row:last-child{border-bottom:0}
.lxt-public-empty{
    padding:28px;
    border:1px dashed var(--lxt-border);
    border-radius:12px;
    color:var(--lxt-muted);
    text-align:center;
}
@media(max-width:900px){
    .lxt-public-tournament-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
    .lxt-public-competitions,
    .lxt-public-tournament-detail{padding:0 12px;margin-top:28px}
    .lxt-public-tournament-grid,
    .lxt-public-match-list{grid-template-columns:1fr}
    .lxt-public-detail-header{align-items:flex-start;flex-direction:column}
}


/* Mejoras visuales v1.4.1 */
.lxt-public-card-champion{
    display:flex;
    align-items:center;
    gap:8px;
    margin:14px 0 0;
    padding:10px 12px;
    border-radius:9px;
    background:#fff8dc;
    color:#6b5400;
    font-size:14px;
}
.lxt-public-card-champion > span:first-child{
    font-size:18px;
}
.lxt-public-progress-block{
    margin-top:16px;
}
.lxt-public-progress-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:7px;
    color:var(--lxt-muted);
    font-size:12px;
}
.lxt-public-progress-track{
    height:9px;
    overflow:hidden;
    border-radius:999px;
    background:#e6ece8;
}
.lxt-public-progress-track span{
    display:block;
    height:100%;
    border-radius:999px;
    background:linear-gradient(90deg,var(--lxt-green),#42a66e);
}
.lxt-public-set-header{
    display:grid;
    grid-template-columns:minmax(0,1fr) repeat(3,58px);
    gap:4px;
    padding:8px 16px;
    border-top:1px solid var(--lxt-border);
    background:#fafcfb;
    color:var(--lxt-muted);
    font-size:10px;
    font-weight:800;
    letter-spacing:.04em;
    text-align:center;
    text-transform:uppercase;
}
.lxt-public-set-header span:first-child{
    text-align:left;
}
.lxt-public-player-line{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
}
.lxt-public-winner-ball{
    margin-right:7px;
    font-size:15px;
}
@media(max-width:700px){
    .lxt-public-set-header{
        grid-template-columns:minmax(0,1fr) repeat(3,45px);
        padding-left:12px;
        padding-right:12px;
    }
}

/* ===== Torneo público completo v2.1.0 ===== */
.lxt-tournament-live{--lxt-green:#0d7c43;--lxt-green-soft:#edf8f1;--lxt-border:#dfe6df;--lxt-text:#18231d;display:grid;gap:28px;color:var(--lxt-text);font-family:inherit}
.lxt-tournament-live__header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px;border:1px solid var(--lxt-border);border-radius:16px;background:#fff}
.lxt-tournament-live__header h2,.lxt-public-phase__heading h3{margin:5px 0 4px;line-height:1.1}.lxt-tournament-live__header p{margin:0;color:#69736d}
.lxt-public-champion{display:flex;align-items:center;justify-content:center;gap:12px;padding:22px;border:1px solid #b9dfc5;border-radius:16px;background:#f3fbf5;text-align:center}.lxt-public-champion span{font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--lxt-green);font-size:12px}.lxt-public-champion strong{font-size:22px}
.lxt-public-phase{display:grid;gap:18px}.lxt-public-phase__heading .lxt-public-kicker{color:var(--lxt-green);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.lxt-public-phase__heading h3{font-size:28px}
.lxt-public-groups-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.lxt-public-group-card{overflow:hidden;border:1px solid var(--lxt-border);border-radius:15px;background:#fff}.lxt-public-group-card.is-complete{border-top:5px solid var(--lxt-green)}
.lxt-public-group-card__header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:17px 18px 13px}.lxt-public-group-card__header h4{margin:0 0 3px;font-size:20px;color:#076a39}.lxt-public-group-card__header span{font-size:12px;color:#69736d}.lxt-public-group-card__header b{font-size:13px;color:#076a39}
.lxt-public-progress-track{height:5px;background:#e8ece9}.lxt-public-progress-track>span{display:block;height:100%;background:var(--lxt-green)}
.lxt-public-standing-wrap{overflow-x:auto}.lxt-public-standing{width:100%;border-collapse:collapse;min-width:540px}.lxt-public-standing th{padding:11px 9px;background:#fafbfa;color:#4c5951;font-size:10px;text-align:center;text-transform:uppercase;letter-spacing:.04em}.lxt-public-standing th:nth-child(2),.lxt-public-standing td:nth-child(2){text-align:left}.lxt-public-standing td{padding:12px 9px;border-top:1px solid #edf0ed;text-align:center;font-size:13px}.lxt-public-standing tr.is-qualified{background:#f3fbf5}.lxt-public-standing td strong{display:block}.lxt-public-standing td small{display:block;margin-top:3px;color:#078044;font-size:9px;font-weight:800;text-transform:uppercase}.lxt-public-position{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f0f2f0;font-weight:800}.is-qualified .lxt-public-position{background:#dff4e6;color:#08763f}
.lxt-public-group-matches{border-top:1px solid #e6ebe7}.lxt-public-group-matches summary{cursor:pointer;padding:14px 18px;font-weight:700;color:#116e40}.lxt-public-match-list.compact{display:grid;gap:9px;padding:0 14px 14px}.lxt-public-mini-match{border:1px solid #e6ebe7;border-radius:10px;overflow:hidden}.lxt-public-mini-match__meta{display:flex!important;justify-content:space-between;background:#f8faf8!important;color:#68736c;padding:7px 10px!important;font-size:10px}.lxt-public-mini-match>div:not(.lxt-public-mini-match__meta){display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-top:1px solid #eef1ee}.lxt-public-mini-match .is-winner{background:#eef9f2;font-weight:700}.lxt-public-mini-match b{white-space:pre;word-spacing:8px}
.lxt-public-knockout{padding-top:6px}.lxt-public-bracket{display:flex;gap:18px;overflow-x:auto;align-items:stretch;padding:4px 2px 12px}.lxt-public-bracket-round{display:flex;flex:1 0 240px;flex-direction:column;min-width:240px}.lxt-public-bracket-round h4{margin:0 0 10px;color:#096d3c;font-size:15px}.lxt-public-bracket-round__matches{display:flex;flex:1;flex-direction:column;justify-content:space-around;gap:14px}.lxt-public-bracket-match{overflow:hidden;border:1px solid var(--lxt-border);border-radius:12px;background:#fff;box-shadow:0 5px 14px rgba(20,50,30,.04)}.lxt-public-bracket-match__label{display:block;padding:8px 11px;background:#f6f8f6;color:#647068;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.lxt-public-bracket-match>div{display:flex;justify-content:space-between;gap:10px;padding:10px 11px;border-top:1px solid #edf0ed;font-size:13px}.lxt-public-bracket-match>div.is-winner{background:#edf8f1;color:#08733e;font-weight:800}.lxt-public-bracket-match footer{display:flex;justify-content:space-between;gap:8px;padding:7px 11px;background:#fafbfa;color:#758078;font-size:10px}.lxt-public-bracket-match footer strong{color:#25332a}
@media(max-width:800px){.lxt-public-groups-grid{grid-template-columns:1fr}.lxt-tournament-live__header{flex-direction:column}.lxt-public-phase__heading h3{font-size:24px}.lxt-public-champion{flex-direction:column;gap:5px}.lxt-public-bracket{padding-bottom:16px}.lxt-public-bracket-round{flex-basis:220px;min-width:220px}}

/* ===== Pulido visual de producción v2.2.0 ===== */
.lxt-tournament-live{
    --lxt-gold:#d5a928;
    --lxt-gold-dark:#87620a;
    --lxt-gold-soft:#fff8df;
    --lxt-shadow:0 12px 34px rgba(20,50,30,.07);
    gap:34px;
}
.lxt-tournament-live__header{
    position:relative;
    overflow:hidden;
    box-shadow:var(--lxt-shadow);
}
.lxt-tournament-live__header:before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:5px;
    background:var(--lxt-green);
}
.lxt-tournament-live__header h2{font-size:clamp(30px,4vw,48px)}

.lxt-public-champion{
    position:relative;
    isolation:isolate;
    min-height:154px;
    gap:22px;
    padding:26px 32px;
    overflow:hidden;
    border:1px solid #ead482;
    background:linear-gradient(135deg,#fffdf4 0%,var(--lxt-gold-soft) 55%,#fff2bd 100%);
    box-shadow:0 18px 38px rgba(135,98,10,.12);
}
.lxt-public-champion:before,.lxt-public-champion:after{
    content:"";
    position:absolute;
    z-index:-1;
    border-radius:50%;
    background:rgba(213,169,40,.13);
}
.lxt-public-champion:before{width:210px;height:210px;left:-70px;top:-90px}
.lxt-public-champion:after{width:170px;height:170px;right:-40px;bottom:-110px}
.lxt-public-champion__trophy{
    display:grid;
    place-items:center;
    width:82px;
    height:82px;
    flex:0 0 82px;
    border:1px solid rgba(135,98,10,.17);
    border-radius:50%;
    background:rgba(255,255,255,.72);
    box-shadow:0 10px 24px rgba(135,98,10,.12);
    font-size:42px;
}
.lxt-public-champion__content{display:grid;gap:3px;text-align:left}
.lxt-public-champion__content span{
    color:var(--lxt-gold-dark);
    font-size:12px;
    font-weight:900;
    letter-spacing:.16em;
}
.lxt-public-champion__content strong{
    color:#382b08;
    font-size:clamp(25px,3vw,38px);
    line-height:1.08;
}
.lxt-public-champion__content small{margin-top:5px;color:#806b2b;font-size:12px}

.lxt-public-phase__heading{display:flex;align-items:end;justify-content:space-between;gap:16px}
.lxt-public-phase__heading h3{font-size:clamp(27px,3vw,38px)}
.lxt-public-group-card{box-shadow:0 8px 24px rgba(20,50,30,.045);transition:transform .2s ease,box-shadow .2s ease}
@media(hover:hover){.lxt-public-group-card:hover{transform:translateY(-2px);box-shadow:var(--lxt-shadow)}}

.lxt-public-group-matches summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    list-style:none;
    transition:background .18s ease,color .18s ease;
}
.lxt-public-group-matches summary::-webkit-details-marker{display:none}
.lxt-public-group-matches summary span:before{content:"▶";display:inline-block;margin-right:9px;font-size:10px;transition:transform .2s ease}
.lxt-public-group-matches[open] summary span:before{transform:rotate(90deg)}
.lxt-public-group-matches summary small{
    padding:4px 8px;
    border-radius:999px;
    background:#eef5f0;
    color:#567060;
    font-size:10px;
    font-weight:800;
}
.lxt-public-group-matches[open] summary{background:#f4faf6}
.lxt-public-group-matches[open] .lxt-public-match-list{animation:lxtReveal .2s ease-out both}
@keyframes lxtReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Cuadro con lectura de árbol y conectores entre rondas. */
.lxt-public-bracket{
    position:relative;
    gap:46px;
    padding:12px 12px 24px;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
    scrollbar-color:#b9cbbf transparent;
}
.lxt-public-bracket-round{
    position:relative;
    scroll-snap-align:start;
}
.lxt-public-bracket-round:not(:last-child):after{
    content:"";
    position:absolute;
    right:-32px;
    top:50%;
    width:20px;
    height:2px;
    border-radius:99px;
    background:#b9d2c1;
}
.lxt-public-bracket-round:not(:last-child):before{
    content:"";
    position:absolute;
    z-index:2;
    right:-34px;
    top:calc(50% - 4px);
    width:8px;
    height:8px;
    border-top:2px solid #83ad91;
    border-right:2px solid #83ad91;
    transform:rotate(45deg);
}
.lxt-public-bracket-round h4{
    position:sticky;
    left:0;
    z-index:3;
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:5px 11px;
    border-radius:999px;
    background:#eaf6ee;
    font-size:12px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.lxt-public-bracket-match{
    position:relative;
    border-color:#d9e3dc;
    box-shadow:0 9px 24px rgba(20,50,30,.065);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
@media(hover:hover){.lxt-public-bracket-match:hover{transform:translateY(-2px);border-color:#b8d2c0;box-shadow:0 14px 30px rgba(20,50,30,.10)}}
.lxt-public-bracket-match__label{padding:10px 12px;color:#4d6455}
.lxt-public-bracket-match>div{min-height:42px;align-items:center}
.lxt-public-bracket-match>div.is-winner{background:linear-gradient(90deg,#e8f8ed,#f5fbf7)}
.lxt-public-bracket-match>div.is-winner b{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#0c8044;color:white;font-size:12px}
.lxt-public-bracket-match footer{align-items:center}
.lxt-public-match-state{display:inline-flex;align-items:center;gap:5px;font-weight:700}
.lxt-public-match-state:before{content:"";width:7px;height:7px;border-radius:50%;background:#a4ada7}
.lxt-public-match-state.lxt-state-finalizado:before{background:#11a157;box-shadow:0 0 0 3px #e1f5e9}
.lxt-round-final .lxt-public-bracket-match{border-color:#e8cf71;box-shadow:0 16px 34px rgba(135,98,10,.12)}
.lxt-round-final .lxt-public-bracket-match__label{background:#fff7d9;color:#846109}
.lxt-round-final .lxt-public-bracket-match>div.is-winner{background:linear-gradient(90deg,#fff7d8,#fffdf4);color:#725408}

/* Foco visible para navegación por teclado. */
.lxt-public-group-matches summary:focus-visible,.lxt-public-bracket:focus-visible{outline:3px solid rgba(13,124,67,.28);outline-offset:3px}

@media(max-width:800px){
    .lxt-tournament-live{gap:26px}
    .lxt-tournament-live__header{padding:21px 20px}
    .lxt-public-champion{min-height:0;padding:22px 18px;flex-direction:row;align-items:center;text-align:left}
    .lxt-public-champion__trophy{width:62px;height:62px;flex-basis:62px;font-size:31px}
    .lxt-public-champion__content{text-align:left}
    .lxt-public-champion__content strong{font-size:25px}
    .lxt-public-bracket{gap:34px;margin-left:-4px;margin-right:-4px;padding-left:4px;padding-right:28px}
    .lxt-public-bracket-round{flex-basis:78vw;min-width:78vw;max-width:300px}
    .lxt-public-bracket-round:not(:last-child):after{right:-26px;width:16px}
    .lxt-public-bracket-round:not(:last-child):before{right:-28px}
}
@media(max-width:520px){
    .lxt-public-champion{align-items:flex-start}
    .lxt-public-champion__trophy{width:50px;height:50px;flex-basis:50px;font-size:25px}
    .lxt-public-champion__content strong{font-size:22px}
    .lxt-public-standing{min-width:500px}
}
@media(prefers-reduced-motion:reduce){
    .lxt-public-group-card,.lxt-public-bracket-match,.lxt-public-group-matches summary span:before{transition:none}
    .lxt-public-group-matches[open] .lxt-public-match-list{animation:none}
}
