:root{
  --bg:#f4f7f5;
  --surface:#ffffff;
  --soft:#eef5f1;
  --text:#17211b;
  --muted:#607066;
  --line:#dbe5df;
  --brand:#0b6e4f;
  --brand-dark:#084c38;
  --success:#18794e;
  --warning:#9a6700;
  --danger:#b42318;
  --shadow:0 14px 36px rgba(23,33,27,.08);
  --radius:20px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);overflow-x:hidden}
button,input{font:inherit}
button{touch-action:manipulation}
.hero{
  background:radial-gradient(circle at top right,rgba(255,255,255,.18),transparent 34%),linear-gradient(135deg,var(--brand-dark),var(--brand));
  color:white;
  padding:44px 20px 44px;
}
.hero__content,.layout,.footer{width:min(1400px,calc(100% - 32px));margin:0 auto}
.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800;opacity:.78}
h1,h2,h3,p{margin-top:0}
h1{margin-bottom:12px;font-size:clamp(2.2rem,7vw,4.8rem);line-height:.95}
h2{font-size:clamp(1.25rem,4.5vw,1.75rem)}
.hero__lead{max-width:760px;font-size:1.08rem;line-height:1.65;opacity:.9}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.button{
  border:0;border-radius:999px;padding:11px 18px;font-weight:800;cursor:pointer;
  transition:transform .15s ease,opacity .15s ease;min-height:44px;
}
.button:hover{transform:translateY(-1px)}
.button--primary{background:white;color:var(--brand-dark)}
.button--secondary{background:rgba(255,255,255,.13);color:white;border:1px solid rgba(255,255,255,.32)}
.layout{display:grid;gap:22px;padding:28px 0 48px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.admin-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:-54px}
.login-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.login-form input{border:1px solid var(--line);border-radius:999px;padding:11px 14px;min-width:220px;min-height:44px}
.hidden{display:none!important}
.muted{color:var(--muted);margin-bottom:0;line-height:1.45}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.summary-card{background:var(--surface);border:1px solid rgba(219,229,223,.8);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.summary-card span{display:block;color:var(--muted);font-size:.83rem;font-weight:700;margin-bottom:8px}
.summary-card strong{font-size:2rem}
.panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.panel__header h2{margin-bottom:0}
.panel__note{max-width:640px;color:var(--muted);line-height:1.5}
.groups-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.group-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.group-card__header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;background:var(--soft);border-bottom:1px solid var(--line)}
.group-title{margin-bottom:0;font-size:1rem;line-height:1.35}
.badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 10px;border-radius:999px;font-size:.72rem;font-weight:900;background:#e9efeb;color:var(--muted);white-space:nowrap}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll::after{content:"";display:block;height:1px}
.standings-table{width:100%;border-collapse:collapse;min-width:720px}
.standings-table th,.standings-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:center;font-size:.86rem;white-space:nowrap}
.standings-table th{color:var(--muted);background:#fbfcfb;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.standings-table th:nth-child(2),.standings-table td:nth-child(2){text-align:left}
.compact-table{min-width:760px}
.row-qualified td{background:rgba(24,121,78,.06)}
.row-eliminated td{background:rgba(180,35,24,.05)}
.status{display:inline-block;max-width:210px;white-space:normal;line-height:1.25;font-weight:800}
.status--success{color:var(--success)}
.status--warning{color:var(--warning)}
.status--danger{color:var(--danger)}
.status--neutral{color:var(--muted)}
.matches-list{display:grid;gap:0}
.match-row{
  display:grid;
  grid-template-columns:minmax(110px,1fr) 64px 18px 64px minmax(110px,1fr);
  align-items:center;
  gap:8px;
  padding:12px 16px;
  border-top:1px solid var(--line);
}
.match-team{font-weight:750;line-height:1.25}
.match-team:last-child{text-align:right}
.score-input{width:64px;border:1px solid var(--line);border-radius:10px;padding:8px;text-align:center;font-weight:900;background:#fffdf2;min-height:42px}
.score-input:disabled{background:#f3f5f3;color:#7d887f;cursor:not-allowed}
.score-input:focus{outline:3px solid rgba(11,110,79,.16);border-color:var(--brand)}
.match-separator{text-align:center;color:var(--muted);font-weight:800}
.match-meta{grid-column:1/-1;color:var(--muted);font-size:.75rem;text-align:center;margin-top:-4px}
.info-panel{color:var(--muted);line-height:1.65}
.info-panel ol{padding-left:22px}
.footer{display:flex;justify-content:space-between;gap:20px;color:var(--muted);padding:0 0 36px;font-size:.82rem}

/* Tablet */
@media(max-width:980px){
  .summary-grid,.groups-grid{grid-template-columns:1fr 1fr}
  .panel__header{flex-direction:column}
  .admin-panel{margin-top:-34px}
}

/* Mobile layout */
@media(max-width:700px){
  .hero{padding:32px 14px 62px}
  .hero__content,.layout,.footer{width:min(100% - 20px,1400px)}
  h1{font-size:2.35rem}
  .hero__lead{font-size:.98rem;line-height:1.5}
  .hero__actions{display:grid;grid-template-columns:1fr;gap:10px}
  .button{width:100%;padding:12px 14px}
  .layout{padding-top:0;gap:16px}
  .admin-panel{
    margin-top:-42px;
    display:grid;
    grid-template-columns:1fr;
    padding:16px;
    gap:14px;
  }
  .login-form{display:grid;grid-template-columns:1fr;gap:10px;width:100%}
  .login-form input{min-width:0;width:100%;border-radius:14px}
  .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .summary-card{padding:14px;border-radius:16px}
  .summary-card span{font-size:.72rem;line-height:1.25}
  .summary-card strong{font-size:1.55rem}
  .groups-grid{grid-template-columns:1fr;gap:14px}
  .panel{padding:14px;border-radius:16px}
  .panel__header{gap:8px;margin-bottom:12px}
  .panel__note{font-size:.88rem}
  .group-card{border-radius:16px}
  .group-card__header{
    padding:14px;
    align-items:flex-start;
    display:grid;
    grid-template-columns:1fr auto;
  }
  .group-title{font-size:.92rem}

  /* Turn standings tables into mobile cards */
  .compact-table,
  #thirdPlaceTable{
    min-width:0;
  }
  .compact-table thead,
  #thirdPlaceTable thead{
    display:none;
  }
  .compact-table tbody,
  #thirdPlaceTable tbody{
    display:grid;
    gap:10px;
    padding:10px;
  }
  .compact-table tr,
  #thirdPlaceTable tr{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px 10px;
    border:1px solid var(--line);
    border-radius:14px;
    padding:11px;
    background:#fff;
  }
  .compact-table td,
  #thirdPlaceTable td{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border:0;
    padding:0;
    text-align:right;
    white-space:normal;
    font-size:.84rem;
  }
  .compact-table td::before,
  #thirdPlaceTable td::before{
    content:attr(data-label);
    color:var(--muted);
    font-size:.68rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
    text-align:left;
  }
  .compact-table td:nth-child(2),
  #thirdPlaceTable td:nth-child(3){
    grid-column:1 / -1;
    justify-content:flex-start;
    font-size:1rem;
    font-weight:900;
    text-align:left;
  }
  .compact-table td:nth-child(2)::before,
  #thirdPlaceTable td:nth-child(3)::before{
    display:none;
  }
  .compact-table td:nth-child(8),
  #thirdPlaceTable td:nth-child(8){
    grid-column:1 / -1;
    align-items:flex-start;
  }
  .status{max-width:100%;font-size:.82rem;text-align:right}

  /* Match cards */
  .match-row{
    grid-template-columns:1fr 54px 18px 54px 1fr;
    padding:13px 10px;
    gap:6px;
  }
  .score-input{width:54px;min-height:44px;border-radius:12px}
  .match-team{font-size:.88rem}
  .match-meta{font-size:.7rem;margin-top:0}
  .footer{flex-direction:column;padding-bottom:28px}
}

@media(max-width:410px){
  .summary-grid{grid-template-columns:1fr}
  .match-row{
    grid-template-columns:1fr 48px 12px 48px 1fr;
    gap:5px;
  }
  .score-input{width:48px;padding:7px 4px}
  .match-team{font-size:.8rem}
  .badge{font-size:.68rem}
}


.admin-only.hidden{display:none!important}
.bracket-grid{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:14px;align-items:start}
.bracket-round{display:grid;gap:12px}
.bracket-round h3{margin:0 0 4px;font-size:1rem}
.knockout-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px;display:grid;gap:9px}
.knockout-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.match-label{color:var(--muted);font-size:.8rem}
.knockout-row{display:grid;grid-template-columns:1fr 58px;gap:8px;align-items:center}
.team-input,.ko-score-input,.penalty-input,.event-form input,.event-form select{border:1px solid var(--line);border-radius:10px;padding:9px 10px;min-height:40px;width:100%;background:#fff}
.team-input:disabled,.ko-score-input:disabled,.penalty-input:disabled{background:#f3f5f3;color:#7d887f}
.ko-score-input,.penalty-input{text-align:center;font-weight:900}
.knockout-penalties{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.knockout-winner{font-size:.8rem}
.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:20px}
.stats-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.event-form{display:grid;grid-template-columns:1.4fr 1fr 1.2fr .9fr .55fr .75fr auto;gap:10px;align-items:center;margin-bottom:18px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.events-list{display:grid;gap:8px;margin-top:18px}
.event-item{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.event-delete{border:0;background:#ffe9e7;color:var(--danger);border-radius:999px;padding:6px 10px;font-weight:900;cursor:pointer}
@media(max-width:1100px){.bracket-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-form{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-columns{grid-template-columns:1fr}}
@media(max-width:700px){.bracket-grid{grid-template-columns:1fr}.event-form{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.knockout-card{border-radius:14px}.stats-table{min-width:0}.stats-table thead{display:none}.stats-table tbody{display:grid;gap:10px;padding:10px}.stats-table tr{display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;border:1px solid var(--line);border-radius:14px;padding:11px;background:#fff}.stats-table td{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;padding:0;text-align:right;white-space:normal;font-size:.84rem}.stats-table td::before{content:attr(data-label);color:var(--muted);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;text-align:left}.events-list{font-size:.86rem}}

.knockout-card--provisional{
  border-style:dashed;
  background:linear-gradient(180deg,#fff,#fffdf5);
}
.knockout-card--provisional .match-label{
  color:var(--warning);
}


.audit-box{
  margin-top:22px;
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  background:#fff;
}
.audit-summary{
  margin-bottom:16px;
}
.audit-ok td{background:rgba(24,121,78,.05)}
.audit-missing td{background:rgba(154,103,0,.07)}
.audit-extra td{background:rgba(180,35,24,.06)}


/* Desktop/tablet anti-overflow patch */
html, body{
  max-width:100%;
  overflow-x:hidden;
}
.hero__content,.layout,.footer{
  width:min(1280px,calc(100% - 24px));
}
.panel,.group-card,.summary-card,.knockout-card,.audit-box{
  min-width:0;
}
.groups-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,560px),1fr));
}
.table-scroll{
  overflow-x:visible;
  max-width:100%;
}
.standings-table{
  min-width:0;
  table-layout:fixed;
}
.standings-table th,
.standings-table td{
  padding:8px 7px;
  font-size:.78rem;
  white-space:normal;
  word-break:normal;
  overflow-wrap:anywhere;
}
.compact-table{
  min-width:0;
}
.compact-table th:nth-child(1),
.compact-table td:nth-child(1){width:32px}
.compact-table th:nth-child(2),
.compact-table td:nth-child(2){width:27%}
.compact-table th:nth-child(3),
.compact-table td:nth-child(3){width:34px}
.compact-table th:nth-child(4),
.compact-table td:nth-child(4){width:42px}
.compact-table th:nth-child(5),
.compact-table td:nth-child(5){width:46px}
.compact-table th:nth-child(6),
.compact-table td:nth-child(6){width:54px}
.compact-table th:nth-child(7),
.compact-table td:nth-child(7){width:54px}
.compact-table th:nth-child(8),
.compact-table td:nth-child(8){width:auto}
.status{
  max-width:none;
  font-size:.74rem;
}
.group-card__header{
  padding:14px;
}
.group-title{
  font-size:.88rem;
}
.match-row{
  grid-template-columns:minmax(0,1fr) 52px 14px 52px minmax(0,1fr);
  padding:10px 12px;
}
.score-input{
  width:52px;
  min-height:38px;
  padding:6px;
}
.match-team{
  min-width:0;
  overflow-wrap:anywhere;
}
.summary-grid{
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
}
.stats-grid{
  grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
}
.bracket-grid{
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
}
.event-form{
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}
.event-form .button{
  width:100%;
}
.stats-columns{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));
}
#thirdPlaceTable,
#scorersTable,
#ownGoalsTable,
#cardsTable,
#goalAuditTable{
  min-width:0;
}

/* 125% Windows scaling / narrow laptop viewport */
@media(max-width:1250px){
  .hero__content,.layout,.footer{
    width:min(1180px,calc(100% - 20px));
  }
  .groups-grid{
    grid-template-columns:1fr;
  }
  .compact-table th,
  .compact-table td{
    padding:8px 6px;
    font-size:.8rem;
  }
  .compact-table th:nth-child(2),
  .compact-table td:nth-child(2){
    width:30%;
  }
  .status{
    font-size:.76rem;
  }
}

/* Keep tables readable without horizontal scroll on smaller desktop/tablet */
@media(max-width:900px){
  .standings-table:not(.compact-table):not(.stats-table){
    table-layout:auto;
  }
  #goalAuditTable{
    table-layout:auto;
  }
  .panel{
    padding:16px;
  }
}


/* Bracket route view */
.bracket-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
.bracket-round{
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px;
  background:#fbfcfb;
}
.bracket-round h3{
  margin:0 0 12px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line);
  font-size:1.05rem;
}
.bracket-round{
  grid-template-columns:1fr;
}
.bracket-round .knockout-card{
  margin-bottom:10px;
}
.knockout-card{
  position:relative;
  gap:10px;
}
.knockout-card__head{
  padding-bottom:8px;
  border-bottom:1px solid var(--line);
}
.knockout-row{
  grid-template-columns:minmax(0,1fr) 64px;
}
.team-input{
  font-weight:800;
}
.ko-score-input{
  font-size:1rem;
}
.knockout-winner{
  margin:2px 0 0;
  font-weight:900;
  color:var(--brand-dark);
}
.knockout-next{
  margin:0;
  padding:9px 10px;
  border-radius:12px;
  background:var(--soft);
  color:var(--muted);
  font-size:.82rem;
  line-height:1.35;
}
@media(min-width:900px){
  .bracket-round{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    align-items:start;
  }
  .bracket-round h3{
    grid-column:1/-1;
  }
  .bracket-round .knockout-card{
    margin-bottom:0;
  }
}
@media(min-width:1280px){
  .bracket-round{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .bracket-round:nth-child(2),
  .bracket-round:nth-child(3),
  .bracket-round:nth-child(4),
  .bracket-round:nth-child(5){
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  }
}


/* Bracket keys view */
#knockoutContainer.bracket-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(230px,1fr));
  gap:26px;
  align-items:stretch;
  overflow-x:auto;
  padding:8px 4px 18px;
  scroll-snap-type:x proximity;
}
.bracket-round{
  position:relative;
  display:grid;
  grid-template-rows:auto repeat(16,minmax(30px,1fr));
  gap:0;
  min-width:230px;
  padding:0 14px 0 0;
  border:0;
  background:transparent;
}
.bracket-round h3{
  grid-row:1;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--soft);
  text-align:center;
  font-size:.95rem;
}
.bracket-round .knockout-card{
  position:relative;
  z-index:2;
  align-self:center;
  min-height:122px;
  margin:0;
  box-shadow:0 10px 24px rgba(23,33,27,.08);
  scroll-snap-align:start;
}
.bracket-round--1 .knockout-card--order-1{grid-row:2 / span 1}
.bracket-round--1 .knockout-card--order-2{grid-row:3 / span 1}
.bracket-round--1 .knockout-card--order-3{grid-row:4 / span 1}
.bracket-round--1 .knockout-card--order-4{grid-row:5 / span 1}
.bracket-round--1 .knockout-card--order-5{grid-row:6 / span 1}
.bracket-round--1 .knockout-card--order-6{grid-row:7 / span 1}
.bracket-round--1 .knockout-card--order-7{grid-row:8 / span 1}
.bracket-round--1 .knockout-card--order-8{grid-row:9 / span 1}
.bracket-round--1 .knockout-card--order-9{grid-row:10 / span 1}
.bracket-round--1 .knockout-card--order-10{grid-row:11 / span 1}
.bracket-round--1 .knockout-card--order-11{grid-row:12 / span 1}
.bracket-round--1 .knockout-card--order-12{grid-row:13 / span 1}
.bracket-round--1 .knockout-card--order-13{grid-row:14 / span 1}
.bracket-round--1 .knockout-card--order-14{grid-row:15 / span 1}
.bracket-round--1 .knockout-card--order-15{grid-row:16 / span 1}
.bracket-round--1 .knockout-card--order-16{grid-row:17 / span 1}

.bracket-round--2 .knockout-card--order-1{grid-row:2 / span 2}
.bracket-round--2 .knockout-card--order-2{grid-row:4 / span 2}
.bracket-round--2 .knockout-card--order-3{grid-row:6 / span 2}
.bracket-round--2 .knockout-card--order-4{grid-row:8 / span 2}
.bracket-round--2 .knockout-card--order-5{grid-row:10 / span 2}
.bracket-round--2 .knockout-card--order-6{grid-row:12 / span 2}
.bracket-round--2 .knockout-card--order-7{grid-row:14 / span 2}
.bracket-round--2 .knockout-card--order-8{grid-row:16 / span 2}

.bracket-round--3 .knockout-card--order-1{grid-row:3 / span 4}
.bracket-round--3 .knockout-card--order-2{grid-row:7 / span 4}
.bracket-round--3 .knockout-card--order-3{grid-row:11 / span 4}
.bracket-round--3 .knockout-card--order-4{grid-row:15 / span 3}

.bracket-round--4 .knockout-card--order-1{grid-row:5 / span 6}
.bracket-round--4 .knockout-card--order-2{grid-row:12 / span 6}

.bracket-round--5 .knockout-card--order-1{grid-row:8 / span 5}

/* Connector lines: outgoing horizontal line */
.bracket-round:not(.bracket-round--5) .knockout-card::after{
  content:"";
  position:absolute;
  right:-28px;
  top:50%;
  width:28px;
  border-top:2px solid var(--line);
  transform:translateY(-50%);
  z-index:1;
}

/* Incoming horizontal line */
.bracket-round:not(.bracket-round--1) .knockout-card::before{
  content:"";
  position:absolute;
  left:-20px;
  top:50%;
  width:20px;
  border-top:2px solid var(--line);
  transform:translateY(-50%);
  z-index:1;
}

/* Vertical grouping connectors per round */
.bracket-round--1::after,
.bracket-round--2::after,
.bracket-round--3::after,
.bracket-round--4::after{
  content:"";
  position:absolute;
  right:0;
  top:78px;
  bottom:8px;
  width:14px;
  pointer-events:none;
  background:
    linear-gradient(var(--line),var(--line)) right 3.125%/2px 6.25% no-repeat,
    linear-gradient(var(--line),var(--line)) right 15.625%/2px 6.25% no-repeat,
    linear-gradient(var(--line),var(--line)) right 28.125%/2px 6.25% no-repeat,
    linear-gradient(var(--line),var(--line)) right 40.625%/2px 6.25% no-repeat,
    linear-gradient(var(--line),var(--line)) right 53.125%/2px 6.25% no-repeat,
    linear-gradient(var(--line),var(--line)) right 65.625%/2px 6.25% no-repeat,
    linear-gradient(var(--line),var(--line)) right 78.125%/2px 6.25% no-repeat,
    linear-gradient(var(--line),var(--line)) right 90.625%/2px 6.25% no-repeat;
}
.bracket-round--2::after{
  background:
    linear-gradient(var(--line),var(--line)) right 6.25%/2px 12.5% no-repeat,
    linear-gradient(var(--line),var(--line)) right 31.25%/2px 12.5% no-repeat,
    linear-gradient(var(--line),var(--line)) right 56.25%/2px 12.5% no-repeat,
    linear-gradient(var(--line),var(--line)) right 81.25%/2px 12.5% no-repeat;
}
.bracket-round--3::after{
  background:
    linear-gradient(var(--line),var(--line)) right 12.5%/2px 25% no-repeat,
    linear-gradient(var(--line),var(--line)) right 62.5%/2px 25% no-repeat;
}
.bracket-round--4::after{
  background:
    linear-gradient(var(--line),var(--line)) right 25%/2px 50% no-repeat;
}

.knockout-card__head{
  gap:8px;
}
.knockout-row{
  grid-template-columns:minmax(0,1fr) 50px;
  gap:6px;
}
.team-input,
.ko-score-input,
.penalty-input{
  min-height:34px;
  padding:7px 8px;
  font-size:.82rem;
}
.knockout-penalties{
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.knockout-next{
  font-size:.76rem;
  padding:7px 8px;
}
.knockout-winner{
  font-size:.78rem;
}

/* Tablet and mobile: collapse to readable route cards instead of forcing bracket overflow */
@media(max-width:1050px){
  #knockoutContainer.bracket-grid{
    display:grid;
    grid-template-columns:1fr;
    overflow-x:visible;
    gap:18px;
    padding:0;
  }
  .bracket-round{
    display:grid;
    grid-template-rows:auto;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:12px;
    min-width:0;
    padding:14px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fbfcfb;
  }
  .bracket-round h3{
    grid-column:1/-1;
    margin-bottom:0;
  }
  .bracket-round .knockout-card{
    grid-row:auto!important;
    min-height:auto;
  }
  .bracket-round::after,
  .bracket-round .knockout-card::before,
  .bracket-round .knockout-card::after{
    display:none!important;
  }
}

@media(max-width:620px){
  .bracket-round{
    grid-template-columns:1fr;
    padding:12px;
  }
  .knockout-row{
    grid-template-columns:minmax(0,1fr) 48px;
  }
}


/* Correct bracket visual order by real routes */
.bracket-round--1 .knockout-card,
.bracket-round--2 .knockout-card,
.bracket-round--3 .knockout-card,
.bracket-round--4 .knockout-card,
.bracket-round--5 .knockout-card{
  grid-row:auto;
}

.bracket-round--1 .knockout-card--visual-1{grid-row:2 / span 1}
.bracket-round--1 .knockout-card--visual-2{grid-row:3 / span 1}
.bracket-round--1 .knockout-card--visual-3{grid-row:4 / span 1}
.bracket-round--1 .knockout-card--visual-4{grid-row:5 / span 1}
.bracket-round--1 .knockout-card--visual-5{grid-row:6 / span 1}
.bracket-round--1 .knockout-card--visual-6{grid-row:7 / span 1}
.bracket-round--1 .knockout-card--visual-7{grid-row:8 / span 1}
.bracket-round--1 .knockout-card--visual-8{grid-row:9 / span 1}
.bracket-round--1 .knockout-card--visual-9{grid-row:10 / span 1}
.bracket-round--1 .knockout-card--visual-10{grid-row:11 / span 1}
.bracket-round--1 .knockout-card--visual-11{grid-row:12 / span 1}
.bracket-round--1 .knockout-card--visual-12{grid-row:13 / span 1}
.bracket-round--1 .knockout-card--visual-13{grid-row:14 / span 1}
.bracket-round--1 .knockout-card--visual-14{grid-row:15 / span 1}
.bracket-round--1 .knockout-card--visual-15{grid-row:16 / span 1}
.bracket-round--1 .knockout-card--visual-16{grid-row:17 / span 1}

.bracket-round--2 .knockout-card--visual-1{grid-row:2 / span 2}
.bracket-round--2 .knockout-card--visual-2{grid-row:4 / span 2}
.bracket-round--2 .knockout-card--visual-3{grid-row:6 / span 2}
.bracket-round--2 .knockout-card--visual-4{grid-row:8 / span 2}
.bracket-round--2 .knockout-card--visual-5{grid-row:10 / span 2}
.bracket-round--2 .knockout-card--visual-6{grid-row:12 / span 2}
.bracket-round--2 .knockout-card--visual-7{grid-row:14 / span 2}
.bracket-round--2 .knockout-card--visual-8{grid-row:16 / span 2}

.bracket-round--3 .knockout-card--visual-1{grid-row:3 / span 4}
.bracket-round--3 .knockout-card--visual-2{grid-row:7 / span 4}
.bracket-round--3 .knockout-card--visual-3{grid-row:11 / span 4}
.bracket-round--3 .knockout-card--visual-4{grid-row:15 / span 3}

.bracket-round--4 .knockout-card--visual-1{grid-row:5 / span 6}
.bracket-round--4 .knockout-card--visual-2{grid-row:12 / span 6}

.bracket-round--5 .knockout-card--visual-1{grid-row:8 / span 5}


/* v17 - llaves simples sobre partidos */
#knockoutContainer.bracket-grid{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(235px,1fr));
  gap:18px;
  align-items:start;
  overflow-x:auto;
  padding:6px 2px 10px;
}
.bracket-round{
  position:relative;
  display:block !important;
  min-width:235px;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}
.bracket-round h3{
  margin:0 0 10px;
  padding:0;
  border:0 !important;
  background:transparent !important;
  text-align:center;
  font-size:.98rem;
}
.bracket-stack{
  display:grid;
  gap:18px;
}
.bracket-round--1 .bracket-stack{gap:18px;}
.bracket-round--2 .bracket-stack{gap:34px; padding-top:22px;}
.bracket-round--3 .bracket-stack{gap:64px; padding-top:54px;}
.bracket-round--4 .bracket-stack{gap:120px; padding-top:120px;}
.bracket-round--5 .bracket-stack{padding-top:210px;}
.knockout-pair{
  position:relative;
  display:grid;
  gap:10px;
  padding-top:10px;
  padding-right:18px;
}
.knockout-pair::before{
  content:"";
  position:absolute;
  top:0;
  left:10px;
  right:26px;
  border-top:2px solid var(--line);
}
.bracket-round--5 .knockout-pair::before,
.knockout-pair--single::before{display:none;}
.knockout-pair::after{
  content:"";
  position:absolute;
  right:8px;
  top:10px;
  bottom:50%;
  width:16px;
  border-right:2px solid var(--line);
  border-bottom:2px solid var(--line);
  border-bottom-right-radius:12px;
}
.bracket-round--5 .knockout-pair::after,
.knockout-pair--single::after{display:none;}
.bracket-round .knockout-card{
  position:relative;
  min-height:auto !important;
  margin:0 !important;
  box-shadow:var(--shadow);
  scroll-snap-align:none;
}
.bracket-round .knockout-card::before,
.bracket-round .knockout-card::after,
.bracket-round::after{display:none !important;}
.round-label{display:none;}
.match-label{
  display:block;
  color:var(--brand-dark);
  font-size:.86rem;
  font-weight:800;
}
.knockout-card__head{
  padding-bottom:6px;
  border-bottom:1px solid var(--line);
}
.knockout-row{grid-template-columns:minmax(0,1fr) 56px;}
.team-input{font-weight:800;}
.ko-score-input,.penalty-input{font-size:.92rem;}
.knockout-next{
  margin-top:2px;
  padding:8px 9px;
  border-radius:10px;
  background:var(--soft);
  font-size:.77rem;
}
@media (max-width: 1220px){
  #knockoutContainer.bracket-grid{grid-template-columns:repeat(3,minmax(235px,1fr));}
  .bracket-round--4 .bracket-stack,.bracket-round--5 .bracket-stack{padding-top:20px;}
}
@media (max-width: 900px){
  #knockoutContainer.bracket-grid{grid-template-columns:repeat(2,minmax(230px,1fr));}
  .bracket-stack,
  .bracket-round--2 .bracket-stack,
  .bracket-round--3 .bracket-stack,
  .bracket-round--4 .bracket-stack,
  .bracket-round--5 .bracket-stack{gap:16px;padding-top:0;}
}
@media (max-width: 620px){
  #knockoutContainer.bracket-grid{grid-template-columns:1fr; overflow-x:visible;}
  .bracket-round{min-width:0;}
}


/* v18 - resumen visual arriba y listado ordenado abajo */
.knockout-panel{overflow:hidden;}
.knockout-visual{
  display:grid;
  grid-template-columns:repeat(9,minmax(150px,1fr));
  gap:14px;
  align-items:start;
  overflow-x:auto;
  padding:8px 4px 18px;
  margin-bottom:28px;
}
.bracket-summary{min-width:150px;}
.bracket-summary h3{margin:0 0 10px;text-align:center;font-size:.92rem;color:var(--brand-dark);}
.bracket-summary__list{display:grid;gap:14px;}
.bracket-summary--left .bracket-summary__list{padding-right:12px;}
.bracket-summary--right .bracket-summary__list{padding-left:12px;}
.summary-match{position:relative;display:grid;gap:6px;}
.summary-match__meta{display:flex;justify-content:space-between;gap:8px;font-size:.72rem;color:var(--muted);padding:0 6px;}
.summary-match__box{position:relative;background:#f7faf8;border-radius:16px;padding:0 0 0 34px;min-height:74px;}
.summary-match__code{position:absolute;left:0;top:50%;transform:translate(-10px,-50%);font-weight:800;font-size:.75rem;color:var(--brand-dark);text-decoration:underline;}
.summary-match__teams{display:grid;gap:6px;}
.summary-team{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:.82rem;font-weight:700;min-height:34px;display:flex;align-items:center;}
.summary-match--left::after,.summary-match--right::before{content:"";position:absolute;top:50%;width:18px;border-top:2px solid var(--line);}
.summary-match--left::after{right:-18px;}
.summary-match--right::before{left:-18px;}
.bracket-summary--center .bracket-summary__list{padding:78px 0 12px;}
.bracket-summary--center .summary-match__box{padding-left:18px;}
.bracket-summary--center .summary-match__code{left:50%;top:auto;bottom:-18px;transform:translateX(-50%);}
.bracket-summary--center .summary-match::before,.bracket-summary--center .summary-match::after{display:none;}
.summary-extra{margin-top:26px;}
.summary-extra h4{margin:0 0 10px;text-align:center;font-size:.95rem;color:var(--brand-dark);font-weight:800;}
.summary-match--extra .summary-match__code{bottom:-18px;}
.summary-match--extra{max-width:220px;margin:0 auto;}

/* simple spacing to evoke bracket progression */
.bracket-summary:nth-child(1) .bracket-summary__list{gap:20px;padding-top:8px;}
.bracket-summary:nth-child(2) .bracket-summary__list{gap:46px;padding-top:54px;}
.bracket-summary:nth-child(3) .bracket-summary__list{gap:114px;padding-top:136px;}
.bracket-summary:nth-child(4) .bracket-summary__list{gap:0;padding-top:250px;}
.bracket-summary:nth-child(6) .bracket-summary__list{gap:0;padding-top:250px;}
.bracket-summary:nth-child(7) .bracket-summary__list{gap:114px;padding-top:136px;}
.bracket-summary:nth-child(8) .bracket-summary__list{gap:46px;padding-top:54px;}
.bracket-summary:nth-child(9) .bracket-summary__list{gap:20px;padding-top:8px;}

/* list by round */
.knockout-list{display:grid;gap:24px;}
.knockout-round-block{display:grid;gap:14px;}
.knockout-round-block h3{margin:0;font-size:1.05rem;color:var(--brand-dark);padding-bottom:8px;border-bottom:1px solid var(--line);}
.knockout-round-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;}
.knockout-list .knockout-card{margin:0 !important;min-height:auto;box-shadow:var(--shadow);}
.knockout-list .knockout-card::before,.knockout-list .knockout-card::after{display:none !important;}
.knockout-list .round-label{display:none;}
.knockout-list .match-label{display:block;color:var(--brand-dark);font-size:.86rem;font-weight:800;}
.knockout-list .knockout-card__head{padding-bottom:6px;border-bottom:1px solid var(--line);}

@media(max-width:1500px){
  .knockout-visual{grid-template-columns:repeat(9,minmax(145px,1fr));}
  .summary-team{font-size:.78rem;padding:8px 10px;}
}
@media(max-width:1200px){
  .knockout-visual{grid-template-columns:repeat(5,minmax(170px,1fr));}
  .bracket-summary:nth-child(1) .bracket-summary__list,
  .bracket-summary:nth-child(2) .bracket-summary__list,
  .bracket-summary:nth-child(3) .bracket-summary__list,
  .bracket-summary:nth-child(4) .bracket-summary__list,
  .bracket-summary:nth-child(6) .bracket-summary__list,
  .bracket-summary:nth-child(7) .bracket-summary__list,
  .bracket-summary:nth-child(8) .bracket-summary__list,
  .bracket-summary:nth-child(9) .bracket-summary__list{padding-top:0;gap:16px;}
  .bracket-summary--center .bracket-summary__list{padding-top:0;}
}
@media(max-width:900px){
  .knockout-visual{grid-template-columns:repeat(3,minmax(180px,1fr));}
}
@media(max-width:680px){
  .knockout-visual{grid-template-columns:1fr;overflow-x:visible;}
  .summary-match--left::after,.summary-match--right::before{display:none;}
  .summary-match__code{position:static;transform:none;padding:0 6px 2px;display:block;}
  .summary-match__box{padding:0;background:transparent;min-height:auto;}
  .bracket-summary--left .bracket-summary__list,.bracket-summary--right .bracket-summary__list,.bracket-summary--center .bracket-summary__list{padding:0;}
}


/* v19 - mobile bracket: compact horizontal view */
@media(max-width:680px){
  .knockout-panel{
    overflow:hidden;
  }

  .knockout-visual{
    display:grid;
    grid-template-columns:repeat(9,118px);
    gap:8px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:8px 2px 18px;
    margin:0 -6px 22px;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }

  .knockout-visual::before{
    content:"Desliza horizontalmente para ver toda la llave";
    position:sticky;
    left:0;
    grid-column:1 / -1;
    display:block;
    width:max-content;
    max-width:calc(100vw - 40px);
    margin:0 0 4px 6px;
    padding:7px 10px;
    border-radius:999px;
    background:var(--soft);
    color:var(--muted);
    font-size:.72rem;
    font-weight:800;
    z-index:4;
  }

  .bracket-summary{
    min-width:118px;
    scroll-snap-align:start;
  }

  .bracket-summary h3{
    min-height:30px;
    margin:0 0 7px;
    font-size:.68rem;
    line-height:1.1;
    text-align:center;
  }

  .bracket-summary__list{
    gap:8px!important;
    padding-top:0!important;
  }

  .bracket-summary:nth-child(1) .bracket-summary__list,
  .bracket-summary:nth-child(9) .bracket-summary__list{
    gap:8px!important;
    padding-top:0!important;
  }

  .bracket-summary:nth-child(2) .bracket-summary__list,
  .bracket-summary:nth-child(8) .bracket-summary__list{
    gap:22px!important;
    padding-top:34px!important;
  }

  .bracket-summary:nth-child(3) .bracket-summary__list,
  .bracket-summary:nth-child(7) .bracket-summary__list{
    gap:54px!important;
    padding-top:88px!important;
  }

  .bracket-summary:nth-child(4) .bracket-summary__list,
  .bracket-summary:nth-child(6) .bracket-summary__list{
    gap:0!important;
    padding-top:166px!important;
  }

  .bracket-summary--center .bracket-summary__list{
    padding-top:86px!important;
  }

  .summary-extra{
    margin-top:28px;
  }

  .summary-extra h4{
    font-size:.72rem;
    line-height:1.15;
    margin-bottom:6px;
  }

  .summary-match{
    gap:3px;
  }

  .summary-match__meta{
    padding:0 2px;
    font-size:.55rem;
    line-height:1;
  }

  .summary-match__box{
    min-height:52px;
    padding:0 0 0 18px;
    background:#f7faf8;
  }

  .summary-match__code{
    position:absolute;
    left:0;
    top:50%;
    transform:translate(-7px,-50%);
    padding:0;
    font-size:.58rem;
    line-height:1;
  }

  .summary-match__teams{
    gap:4px;
  }

  .summary-team{
    min-height:24px;
    padding:5px 6px;
    border-radius:7px;
    font-size:.62rem;
    line-height:1.05;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .summary-match--left::after,
  .summary-match--right::before{
    display:block;
    width:10px;
    border-top:2px solid var(--line);
  }

  .summary-match--left::after{
    right:-10px;
  }

  .summary-match--right::before{
    left:-10px;
  }

  .bracket-summary--left .bracket-summary__list{
    padding-right:6px!important;
  }

  .bracket-summary--right .bracket-summary__list{
    padding-left:6px!important;
  }

  .bracket-summary--center .summary-match__box{
    padding-left:8px;
  }

  .bracket-summary--center .summary-match__code{
    left:50%;
    top:auto;
    bottom:-13px;
    transform:translateX(-50%);
  }

  .summary-match--extra{
    max-width:118px;
  }

  .summary-match--extra .summary-match__code{
    bottom:-13px;
  }

  .knockout-round-grid{
    grid-template-columns:1fr;
  }
}
