.europe header {padding:24px 0 0;background:radial-gradient(ellipse at 80% 100%,#273d68,transparent 60%),#081321;color:#fff}
.europe nav,.europe nav div,.sections {display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.europe nav a:hover,.official:hover {text-decoration:underline}
.europe .season {margin:52px 0 10px;color:#cfbc8a;font-size:.78rem;font-weight:bold;text-transform:uppercase;letter-spacing:.12em}
.europe h1,.europe h2,.europe h3 {font-family:Oswald,sans-serif;line-height:1.12}
.europe h1 {font-size:clamp(40px,6vw,82px);margin:0 0 32px;letter-spacing:-.03em}
.europe h1 span {color:#b9c8de}
.europe nav.sections {justify-content:flex-start;border-top:1px solid #ffffff40;padding:17px 0}
.europe main {margin:0 auto;padding:30px 0 55px}
.europe section {margin:0 0 42px}
.europe h2 {font-size:clamp(28px,4vw,44px);margin:0 0 12px}
.europe section > p {margin:0 0 18px;line-height:1.5}
.europe table {width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;background:#fffcf6}
.table-scroll {overflow:auto;border:1px solid #d9d2c6;border-radius:6px}
.europe th,.europe td {padding:9px 10px;text-align:center}
.europe th {background:#101e32;color:white;font-size:.8rem}
.europe td:nth-child(2),.europe th:nth-child(2) {text-align:left}
.europe td:last-child {font-weight:700}.europe tbody tr+tr {border-top:1px solid #e5dfd5}
.europe tbody tr:nth-child(4),.europe tbody tr:nth-child(12){border-bottom:2px solid #9a937f}
.europe tr.lyon {background:#f7e3df}.europe tr.chelsea {background:#e0eafa}
.europe small {display:block;color:#556170;margin-top:8px}
#bracket {display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:18px;overflow:auto;padding-bottom:8px}
.round-column {display:grid;grid-template-rows:auto 1fr}
.round-column h3 {margin:0;padding:12px;background:#101e32;color:white;font-size:1rem}
.round-slots {display:grid;align-items:center;gap:10px;padding-top:10px}
.tie {position:relative;display:grid;gap:4px;padding:10px;background:#fffaf2;border:1px solid #d7d0c4;border-radius:4px;font-size:.88rem}
.round-column:not(:last-child) .tie::after {content:"";position:absolute;left:100%;top:50%;width:18px;border-top:1px solid #a89c88}
.tie span {color:#56616e;font-size:.8rem}
.round-select {display:flex;align-items:center;gap:10px;margin:16px 0}
.round-select select {font:inherit;background:white;padding:8px;border:1px solid #c8c2b5;border-radius:4px;max-width:100%}
.euro-match {background:#fffcf7;border:1px solid #d8d1c5;border-radius:6px;margin:7px 0;padding:12px 16px}
.euro-match summary {display:block;cursor:pointer;list-style:none}
.euro-match summary::-webkit-details-marker {display:none}
.match-meta {display:flex;align-items:center;gap:8px;color:#506074;font-size:.75rem}
.match-meta > span:nth-child(2) {margin-left:auto}
.match-meta::after {content:"";width:7px;height:7px;margin:0 2px 3px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.euro-match[open] .match-meta::after {transform:rotate(225deg);margin-top:5px}
.match-line {display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;padding:10px 0}
.match-line b {padding:6px 12px;border-radius:4px;background:#11243b;color:white;white-space:nowrap;font:600 1.35rem Oswald,sans-serif}
.match-side {display:flex;align-items:center;gap:10px;font-weight:700;overflow-wrap:anywhere}
.match-line .match-side:first-child {flex-direction:row-reverse;text-align:right}
.team-badge {flex:none;width:40px;height:40px;display:grid;place-items:center;background:white;border:1px solid #e8e3db;border-radius:50%;font-size:.72rem;color:#42516b}
.team-badge img {width:30px;height:30px;object-fit:contain}
@media(max-width:600px){
  .match-line .match-side,.match-line .match-side:first-child {flex-direction:column;text-align:center;gap:5px}
  .match-line {align-items:start}.match-line b {align-self:start;margin-top:5px;font-size:1.1rem}
}
.euro-match p,.euro-match ul {margin:10px 0 2px;line-height:1.55}.europe .official,.euro-match a {text-decoration:underline}
@media(max-width:650px){.europe th,.europe td {padding:7px 4px;font-size:.78rem}.europe nav div,.europe nav.sections {font-size:.85rem}.europe .season {margin-top:34px}.round-select{align-items:flex-start;flex-direction:column}.match-line {gap:6px;font-size:.84rem}.euro-match{padding:10px 8px}#bracket {grid-template-columns:repeat(4,160px)}}
.round-slots {grid-auto-rows:1fr;gap:0}
.branch {display:grid;align-items:center;position:relative;min-height:74px;padding:5px 0}
.round-column:nth-child(2) .branch::after,.round-column:nth-child(3) .branch::after {content:"";position:absolute;left:calc(100% + 8px);height:50%;top:50%;border-left:1px solid #a89c88}
.round-column:nth-child(2) .branch:nth-child(even)::after,.round-column:nth-child(3) .branch:nth-child(even)::after {top:0}
.round-column:nth-child(2) .tie::after,.round-column:nth-child(3) .tie::after {width:9px}
.round-column:nth-child(n+3) .tie::before {content:"";position:absolute;right:100%;top:50%;width:10px;border-top:1px solid #a89c88}

#rows .match-side,.bracket-leg .match-side {gap:7px;text-align:left}
#rows .team-badge,.bracket-leg .team-badge {width:28px;height:28px}
#rows .team-badge img,.bracket-leg .team-badge img {width:21px;height:21px}
.bracket-leg {display:grid;gap:4px}
.bracket-leg + .bracket-leg {border-top:1px solid #ded8ce;padding-top:7px}
.bracket-leg .match-side b {margin-left:auto}
.bracket-leg small {margin:0}
