/* Cuadro tradicional: competidores individuales, uniones y avance continuo hasta el ganador. */
.public-category-series{display:grid;gap:24px}
.public-series{padding:15px;border:1px solid #2a3942;border-radius:16px;background:#07111799;overflow:hidden}
.public-series+.public-series{margin-top:2px}
.public-series-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.public-series-heading h4{margin:0;color:var(--gold);font:800 12px "Space Grotesk",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.public-series-heading span{color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.public-tree-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden;padding:0 0 9px;scrollbar-color:#52636d #0a151c;scrollbar-width:thin}
.public-tree-scroll:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:8px}
.public-bracket-tree{--column-width:224px;--column-gap:86px;--slot-height:58px;--slot-gap:18px;position:relative;display:grid;grid-template-columns:repeat(var(--stage-count),var(--column-width));column-gap:var(--column-gap);width:max-content;min-width:100%;min-height:calc(30px + var(--first-stage-count) * var(--slot-height) + (var(--first-stage-count) - 1) * var(--slot-gap));isolation:isolate}
.public-stage-column{position:relative;z-index:2;display:grid;grid-template-rows:28px auto;min-width:0}
.public-stage-title{display:flex;justify-content:space-between;align-items:start;margin:0 2px 7px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.public-stage-title span{color:#d9e1e5}
.public-stage-column:last-of-type .public-stage-title span{color:var(--gold)}
.public-stage-list{display:grid;grid-template-rows:repeat(var(--first-stage-count),var(--slot-height));gap:var(--slot-gap);min-height:0}
.public-stage-slot{position:relative;z-index:2;display:flex;align-self:center;width:100%;height:var(--slot-height);min-width:0;padding:6px 9px;border:2px solid #485862;border-right:8px solid #4f82ff;border-radius:2px;background:#eef1f2;color:#0b151b;box-shadow:0 5px 15px #0004;overflow:hidden}
.public-stage-slot.formation-slot{padding-block:8px;overflow:visible}
.public-stage-slot.side-red{border-right-color:#ef3a48}
.public-stage-slot.side-blue{border-right-color:#4f82ff}
.public-stage-slot.champion{border-color:#c89a1b;border-right-width:8px;background:#fff9e8;box-shadow:0 0 0 1px #e0b83a55,0 7px 18px #0004}
.public-stage-slot.waiting{border-style:dashed;border-right-width:2px;background:#0a151b;color:#8ea0aa}
.public-stage-slot .public-competitor-image{flex:0 0 44px;width:44px;height:44px;margin:-1px 7px -1px -3px;object-fit:cover;border-radius:2px}
.public-stage-slot .public-competitor-image.school-logo-only{object-fit:contain;object-position:center;padding:2px;background:#10191e}
.public-stage-slot .public-competitor-images{display:flex;flex:0 0 auto;width:54px;margin:-1px 6px -1px -3px}.public-stage-slot .public-competitor-images .public-competitor-image{width:30px;height:44px;margin:0;object-fit:cover}.public-stage-slot .public-competitor-images .public-competitor-image+img{margin-left:-9px;border-left:2px solid #fff}
.public-stage-slot .public-slot-copy{display:flex;min-width:0;flex:1;flex-direction:column;justify-content:center}
.public-stage-slot b,.public-stage-slot small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.public-stage-slot b{font-size:9px;line-height:1.2;text-transform:uppercase}
.public-stage-slot small{margin-top:2px;color:#52636d;font-size:8px;font-weight:700;text-transform:uppercase}.public-stage-slot .public-weigh-in{color:#a36c00;font-size:7px}.public-stage-slot .public-weigh-in.ok,.public-stage-slot .public-weigh-in.confirmado{color:#177448}.public-stage-slot .public-weigh-in.en_revision{color:#a75c00}
.public-stage-slot.champion b{color:#7c5c00}
.public-waiting-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:700}
.public-slot b em,.public-team-members em{color:var(--gold);font-size:.72em;font-style:normal;font-weight:800;white-space:nowrap}
.public-stage-slot b em,.public-team-members em{color:#8d6700;font-size:.72em;font-style:normal;font-weight:800;white-space:nowrap}
.public-team-members{display:grid;gap:3px;min-width:0;align-content:center}
.public-team-members b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.public-bracket-connectors{position:absolute;z-index:1;inset:0;overflow:visible;pointer-events:none}
.public-bracket-connectors path{fill:none;stroke:#aebbc2;stroke-width:2.2;vector-effect:non-scaling-stroke}
.public-match-code rect{fill:#071117;stroke:#d7e0e4;stroke-width:1.5;vector-effect:non-scaling-stroke}
.public-match-code text{fill:#fff;font:800 8px "Space Grotesk",sans-serif;text-anchor:middle}
.brackets-modes button.active,.school-tabs button.active,.discipline-tabs button.active{border-color:#c82631;background:#c82631;color:#fff}

@media(max-width:950px){
  .public-bracket-tree{--column-width:214px;--column-gap:76px}
}
@media(max-width:650px){
  .public-series{padding:11px}
  .public-series-heading{align-items:flex-start;flex-direction:column;gap:3px}
  .public-series-heading::after{content:"Desliza para seguir la llave \2192";color:var(--gold);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
  .public-bracket-tree{--column-width:202px;--column-gap:68px;--slot-height:56px;--slot-gap:16px;min-width:calc(var(--stage-count) * var(--column-width) + (var(--stage-count) - 1) * var(--column-gap))}
  .public-tree-scroll{margin-right:-11px;padding-right:11px}
  .public-stage-slot{height:var(--slot-height)}
  .public-stage-slot b{font-size:8px}
}

@media print{
  @page{size:landscape;margin:8mm}
  body{background:#fff!important;color:#111!important}
  .top,.brackets-back,.brackets-hero aside,.brackets-modes,.brackets-filter,.brackets-note,#printPoomsaeBrackets{display:none!important}
  .brackets-main,.brackets-browser,.brackets-board{max-width:none!important;width:100%!important;margin:0!important;padding:0!important;background:#fff!important;border:0!important;box-shadow:none!important}
  .brackets-hero{margin:0 0 6mm!important;padding:0!important;background:#fff!important;color:#111!important;min-height:0!important}
  .brackets-board.show-all .public-category-board{break-before:page;page-break-before:always}
  .brackets-board.show-all .public-category-board:first-child{break-before:auto;page-break-before:auto}
  .public-category-board,.public-series{break-inside:avoid;page-break-inside:avoid;background:#fff!important;color:#111!important}
  .public-tree-scroll{overflow:visible}
  .public-bracket-tree{transform-origin:top left}
}
/* Identidad compacta de cada competidor en todas las vistas de llaves. */
.public-school-name{display:flex!important;align-items:center;gap:4px}
.public-school-logo{width:16px;height:16px;object-fit:contain;border-radius:3px;flex:0 0 16px;background:#fff}
.public-athlete-grade-line{display:block;margin-top:2px;color:#f2bf35;font-size:9px;font-style:normal;font-weight:800;line-height:1.1}
.public-athlete-grade-line.grade-white,.athlete-grade.grade-white{color:#59666e!important}.public-athlete-grade-line.grade-yellow,.athlete-grade.grade-yellow{color:#9b6a00!important}.public-athlete-grade-line.grade-green,.athlete-grade.grade-green{color:#137447!important}.public-athlete-grade-line.grade-blue,.athlete-grade.grade-blue{color:#1767b0!important}.public-athlete-grade-line.grade-red,.athlete-grade.grade-red{color:#c32738!important}.public-athlete-grade-line.grade-black,.athlete-grade.grade-black{color:#171d21!important}
.public-stage-slot>.public-slot-copy>b,.public-stage-slot>.public-slot-copy>b a{font-size:10px;line-height:1.15}
.formation-name-list>span{display:flex!important;flex-direction:column;align-items:flex-start;line-height:1.12}
.formation-name-list .athlete-grade,.personal-athlete-name+.athlete-grade{display:block;margin-top:2px}
