:root{font-family:system-ui,Arial,sans-serif;color:#182d3b;background:#f3f6f8;--accent:#086b5b}*{box-sizing:border-box}body{margin:0}header{background:#132e3b;color:white;padding:28px max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px}h1{margin:6px 0;font-size:32px;letter-spacing:-1px}.eyebrow{font-size:11px;letter-spacing:2px;color:#8addc6}main{max-width:1180px;margin:24px auto;padding:0 20px}button,select,input,textarea{font:inherit;border:1px solid #c5d2d9;border-radius:7px;padding:9px 12px}button{cursor:pointer;background:white;color:#183d49}button:hover{border-color:var(--accent);background:#eaf6f1}button:disabled{opacity:.5;cursor:default}.primary,button.active{background:var(--accent);color:white}label{display:flex;flex-direction:column;gap:6px;font-size:14px}input,textarea,select{max-width:100%;background:white}textarea{min-height:100px}.toolbar,nav,.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar{padding:16px;background:white;border:1px solid #dce5e9;border-radius:10px}#updated{font-size:12px;color:#536b78;margin-left:auto}#tournament{margin:24px 0}nav{margin-bottom:20px}.card{background:white;border:1px solid #dbe4e9;border-radius:10px;margin:18px 0;padding:20px}.card h3{margin-top:0}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:#526876;font-size:12px;background:#f3f7f9}th,td{padding:10px;border-bottom:1px solid #e5ecef}td:first-child{font-weight:600}.muted{color:#5b717c;font-size:13px}.warning{color:#985300;background:#fff2d8;padding:12px;border-radius:7px}.match{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e5ecef}.match button{white-space:nowrap}.score{font-weight:700;color:var(--accent)}.bracket{display:flex;gap:20px;overflow-x:auto}.round{min-width:240px;flex:1}.round .match{display:block;border:1px solid #dce5e9;border-radius:8px;padding:14px;margin:12px 0}.round .match button{margin-top:8px}dialog{border:0;border-radius:12px;width:min(640px,94vw);max-height:90vh;padding:24px;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#122e3c99}#fields{display:grid;gap:14px}dialog footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}#dialogerror,#message{color:#aa3526;white-space:pre-wrap}#message:empty{display:none}.sitefoot{text-align:center;padding:30px;color:#677c88;font-size:12px}.qr{width:170px;height:170px}a{color:#086b5b}details{margin:12px 0}summary{cursor:pointer}@media(max-width:600px){header{padding:20px;align-items:flex-start;flex-direction:column}h1{font-size:26px}.card{padding:12px}th,td{padding:8px}.match{align-items:flex-start}}

.players{flex:1;min-width:0}.players>div{padding:5px 0;overflow-wrap:anywhere}.match-status{font-size:12px;border-top:1px solid #dce5e9;padding-top:8px;margin-top:6px}.bracket{gap:32px;align-items:stretch;padding:12px 0}.round{display:flex;flex-direction:column;min-width:245px}.round-games{display:flex;flex:1;flex-direction:column}.bracket-cell{position:relative;flex:1;display:flex;align-items:center;min-height:170px}.round .ko-match{width:100%;margin:12px 0;background:#f9fcfb;display:block}.round:not(:last-child) .bracket-cell:after{content:'';position:absolute;left:100%;width:16px;border-right:2px solid #799f95;height:50%}.round:not(:last-child) .bracket-cell:nth-child(odd):after{top:50%;border-top:2px solid #799f95}.round:not(:last-child) .bracket-cell:nth-child(even):after{bottom:50%;border-bottom:2px solid #799f95}.round:not(:first-child) .bracket-cell:before{content:'';position:absolute;right:100%;width:16px;top:50%;border-top:2px solid #799f95}
@media print{@page{size:A4 landscape;margin:12mm}body{background:white;font-size:10pt}header{background:white;color:black;padding:0}header h1{font-size:18pt}.eyebrow,button,.actions,.toolbar,nav,dialog,.sitefoot,#message,#tournament details{display:none!important}main{max-width:none;margin:0;padding:0}.card{border:0;padding:0;margin:16px 0;break-inside:avoid}th,td{padding:5px}.tablewrap,.bracket{overflow:visible}.bracket{gap:20px}.round{min-width:0;flex:1}.round h4{font-size:9pt}.bracket-cell{min-height:90px}.round .ko-match{padding:5px;font-size:8pt}.round:not(:last-child) .bracket-cell:after,.round:not(:first-child) .bracket-cell:before{width:10px}.players>div{padding:2px 0}.match-status{font-size:8pt}.warning{background:white;color:black;border:1px solid #aaa}a{color:black}}

/* Group fixtures inline; KO player cards keep their vertical layout. */
.group-match .players{display:block}.group-match .players>div{display:inline;padding:0}.group-match .players>div+div:before{content:" – ";white-space:pre}.group-match .match-status{border-top:0;margin-top:0;padding-top:0}
