/* Shuttloop 3.3.0 — genuine interactive bracket, not a static SVG preview. */
.ib-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;padding:10px 12px;color:#cde5cf;background:#0b2c21;border-bottom:1px solid #315242;font-family:Inter,system-ui,sans-serif}
.ib-live{font-weight:900;color:#c9ff68;font-size:11px;letter-spacing:.12em}.ib-live i{display:inline-block;width:8px;height:8px;margin-right:7px;background:#b7ff3c;border-radius:50%}
.ib-hint{font-size:11px;color:#a9c1b2}.ib-tools{display:flex;align-items:center;gap:6px}.ib-tools button{background:#174131;color:#e7f6e6;border:1px solid #426b4b;border-radius:9px;min-width:39px;height:38px;font-size:13px;padding:4px 10px;font-weight:800;cursor:pointer}.ib-tools button:hover{border-color:#b7ff3c}.ib-zoom{min-width:42px;text-align:center;font-size:12px}
.ib-scroll{width:100%;height:min(64vh,700px);min-height:430px;overflow:auto;position:relative;background:radial-gradient(circle at 50% 40%,#133727,#05170f 66%);overscroll-behavior:contain;scrollbar-color:#527451 #091c15;touch-action:pan-x pan-y;outline-offset:-3px}.ib-stage{position:relative;min-width:1px}.ib-board{position:absolute;top:0;left:0;transform-origin:0 0;background:radial-gradient(circle at center,rgba(183,255,60,.05),transparent 60%)}.ib-board:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#98af9c22 1px,transparent 1px);background-size:23px 23px;pointer-events:none}.ib-board-title{position:absolute;top:28px;left:0;width:100%;text-align:center;font-size:23px;font-weight:900;color:#f3ffed;letter-spacing:-.04em}.ib-board-title span{font-size:11px;letter-spacing:.16em;color:#b7ff3c;display:block;margin-top:6px}.ib-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ib-footer-note{position:absolute;bottom:27px;left:0;width:100%;text-align:center;color:#789b81;font-size:12px;font-weight:700}
.ib-match{position:absolute;border:1px solid #3f6a4e;border-radius:13px;background:#102d22;color:#eaf6eb;display:block;text-align:left;padding:7px 13px;cursor:pointer;box-shadow:0 6px 19px #0005;font:inherit;overflow:hidden;transition:border-color .16s,box-shadow .16s}.ib-match:hover,.ib-match:focus-visible{border-color:#b7ff3c;box-shadow:0 0 0 2px #b7ff3c55;outline:none}.ib-match:active{background:#194530}.ib-final{background:#1b442c;border-color:#b7ff3c}.ib-third{border-color:#997d55}.ib-finished{background:#173e2b}.ib-match-title{display:flex;justify-content:space-between;font-size:9px;font-weight:900;color:#b7ff3c;letter-spacing:.1em;margin-bottom:4px}.ib-match-title small{color:#7fa58e;font-size:9px}.ib-side{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:690;gap:8px;line-height:19px}.ib-side span{max-width:184px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ib-side b{font-size:14px;color:#d8e6d9}.ib-side.ib-winning{color:#caff6d;font-weight:850}.ib-side.ib-winning b{color:#b7ff3c}
.ib-edit-backdrop[hidden]{display:none!important}.ib-edit-backdrop{position:fixed;inset:0;z-index:2147483400;background:#000b;backdrop-filter:blur(7px);display:flex;justify-content:center;align-items:center;padding:15px;overflow:auto}.ib-modal-open{overflow:hidden}.ib-edit-card{width:min(100%,455px);max-height:90dvh;overflow:auto;padding:23px;border:1px solid #587950;border-radius:21px;background:#0a281f;color:#f5fff1;box-shadow:0 30px 90px #000b;font:inherit}.ib-edit-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ib-edit-header small{color:#b7ff3c;font-size:10px;letter-spacing:.15em;font-weight:800}.ib-edit-header h3{font-size:25px;margin:6px 0}.ib-close{background:#143e2e;color:white;border:1px solid #517153;border-radius:11px;min-width:42px;height:42px;cursor:pointer}.ib-edit-context{font-size:12px;color:#a9c4af;line-height:1.6;margin:10px 0 20px}.ib-score-form{display:grid;grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);gap:10px;align-items:center}.ib-score-side{display:grid;gap:12px;min-width:0;font-size:13px;font-weight:750;text-align:center;overflow-wrap:anywhere}.ib-score-side input{width:100%;height:62px;border-radius:14px;background:#061b13;border:1px solid #496a50;color:#b7ff3c;text-align:center;font-size:30px;font-weight:900}.ib-score-side input:focus-visible{outline:2px solid #b7ff3c;outline-offset:2px}.ib-versus{font-size:11px;color:#8caa96;text-align:center}.ib-editor-error{grid-column:1/-1;color:#ffb1a0;font-size:12px;min-height:15px;margin:0}.ib-editor-actions{grid-column:1/-1;display:flex;gap:9px}.ib-editor-actions button{flex:1;min-height:45px;border:1px solid #476b4d;border-radius:12px;background:#163c2e;color:#eef8ed;font-weight:800;font-size:13px;cursor:pointer}.ib-editor-actions .ib-confirm{background:#b7ff3c;color:#082313;border-color:#b7ff3c}.ib-editor-actions button:disabled{opacity:.38;cursor:not-allowed}.ib-edit-help{font-size:11px;color:#91b39d;line-height:1.5;margin:15px 0 0}
@media(max-width:600px){.ib-toolbar{padding:10px 8px}.ib-hint{width:100%;order:3}.ib-tools{margin-left:auto}.ib-scroll{height:55vh;min-height:420px}.ib-edit-card{padding:17px}.ib-editor-actions button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.ib-match{transition:none}}

/* Live SVG must never inherit min-width from export-only bracket SVG rule. */
.gv-bracket-scroll.ib-container svg.ib-lines{position:absolute;inset:0;width:100%;min-width:0!important;max-width:none;height:100%;display:block}
.ib-round-panel{padding:14px 12px;background:#09251b;border-bottom:1px solid #375442}
.ib-round-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:11px;color:#eaffdc;font-size:13px;font-weight:800}
.ib-round-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin}
.ib-round-tabs button{background:#143527;border:1px solid #375c40;color:#c3d5c6;border-radius:100px;padding:9px 13px;min-width:max-content;font-size:12px;font-weight:800;min-height:39px}
.ib-round-tabs button[aria-selected=true]{background:#b7ff3c;color:#0b2719;border-color:#b7ff3c}
.ib-round-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:9px}.ib-round-card{display:block;text-align:left;background:#123627;border:1px solid #40604a;border-radius:14px;color:#f3fff2;padding:13px 14px;min-height:119px}.ib-round-card:focus-visible{outline:2px solid #b7ff3c}.ib-round-card small{display:block;color:#b7ff3c;font-size:10px;font-weight:850;letter-spacing:.08em;margin-bottom:9px}.ib-round-card .ib-round-team{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;line-height:1.8}.ib-round-card .ib-round-team b{font-size:17px}.ib-round-card .ib-round-won{color:#b7ff3c;font-weight:900}.ib-round-card .ib-round-state{color:#a1b7a8;font-size:11px;margin-top:7px;display:block}.ib-round-card:disabled{opacity:.6}.ib-round-card:hover{border-color:#b7ff3c}
.ib-map-toggle{background:#193d2e;color:#eaffdd;border:1px solid #4c7350;border-radius:10px;padding:9px 12px;font-size:12px;font-weight:800;min-height:40px;cursor:pointer}.ib-map-toggle[aria-expanded=true]{background:#b7ff3c;color:#0c2517}
.ib-scroll{min-height:340px;height:min(58vh,600px)}
.ib-score-side input{font-size:30px!important;min-width:0;appearance:none!important;-webkit-appearance:none!important;touch-action:manipulation;user-select:text;-webkit-user-select:text}.ib-score-form .ib-score-side input::placeholder{color:#799584}.ib-score-form .ib-score-side input:focus{border-color:#b7ff3c;box-shadow:0 0 0 3px #b7ff3c25}
@media(max-width:640px){.ib-scroll{display:none;height:min(65vh,650px);min-height:340px}.ib-container.ib-map-open .ib-scroll{display:block}.ib-round-cards{grid-template-columns:1fr}.ib-round-panel{padding:12px 10px}.ib-tools{margin:0}.ib-hint{order:0;width:100%}.ib-toolbar{gap:7px}.ib-edit-card{max-height:calc(100dvh - 26px)}}
@media(min-width:641px){.ib-map-toggle{display:none}}

/* V3.3.2: Mobile never opens the empty horizontal poster-sized tree. The toggle
   reveals real clickable match cards for every round, with no hidden off-screen nodes. */
.ib-all-rounds[hidden]{display:none!important}
.ib-all-rounds{display:none;padding:14px 12px 17px;background:linear-gradient(180deg,#0b291d,#061b14)}
.ib-all-intro{font-size:12px;color:#acc5b3;line-height:1.5;margin:0 0 16px}
.ib-all-round-group{padding:0 0 16px 15px;margin:0 0 6px;position:relative;border-left:2px solid #476f4d}
.ib-all-round-group:last-child{border-left-color:#b7ff3c;margin-bottom:0;padding-bottom:2px}
.ib-all-round-group::before{content:'';position:absolute;top:8px;left:-5px;width:8px;height:8px;border-radius:50%;background:#b7ff3c}
.ib-all-round-title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:850;color:#eaffdd;margin-bottom:10px;padding-right:3px}
.ib-all-round-title small{font-size:11px;color:#96ba99;font-weight:650}
.ib-all-round-cards{display:grid;gap:9px;grid-template-columns:repeat(auto-fit,minmax(225px,1fr))}
.ib-all-rounds .ib-round-card{min-height:104px;width:100%;cursor:pointer}
.ib-all-rounds .ib-final-card{border-color:#b7ff3c;background:#193e28}
.ib-all-rounds .ib-bronze-card{border-color:#937746}
@media(max-width:640px){
  .ib-container .ib-scroll,.ib-container.ib-map-open .ib-scroll{display:none!important}
  .ib-container.ib-map-open .ib-all-rounds{display:block}
  .ib-all-round-cards{grid-template-columns:minmax(0,1fr)}
  .ib-all-rounds{padding:13px 12px 18px}
  .ib-map-toggle{min-width:136px}
}
@media(min-width:641px){.ib-container .ib-all-rounds{display:none!important}}
/* Keep one readable mobile view at a time, without duplicated round cards. */
@media(max-width:640px){
 .ib-container .ib-tools{display:none!important}
 .ib-container.ib-map-open .ib-round-tabs,
 .ib-container.ib-map-open .ib-round-cards{display:none!important}
 .ib-container.ib-map-open .ib-round-head{margin-bottom:0}
 .ib-container.ib-map-open .ib-all-rounds{border-top:1px solid #34573c}
}

/* V3.4.2 - Live Match Board must be visible and usable on phones.
   The oversized desktop SVG is retained for desktop and high-resolution PNG export;
   phones get an interactive, fully connected vertical progression (not a static image). */
.ib-mobile-board-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;margin:0 0 10px;border:1px solid #4b704c;background:linear-gradient(110deg,#1b4730,#0b2d21);border-radius:14px}
.ib-mobile-board-heading div{display:grid;gap:4px;min-width:0}
.ib-mobile-board-heading small{font-size:10px;letter-spacing:.14em;font-weight:900;color:#b7ff3c}
.ib-mobile-board-heading strong{font-size:17px;line-height:1.25;color:#efffed;overflow-wrap:anywhere}
.ib-mobile-board-heading>span{flex:none;color:#c2f48d;font-size:10px;font-weight:850;background:#2b5935;padding:8px;border-radius:100px}
.ib-all-round-group{border-left:2px solid #638c57;padding-bottom:5px;margin-bottom:0}
.ib-all-round-group:last-child{border-left-color:#b7ff3c}
.ib-flow-connector{position:relative;margin:0 0 0 15px;height:35px;border-left:2px solid #6d965c}
.ib-flow-connector>span{position:absolute;bottom:1px;left:-12px;display:grid;place-items:center;width:23px;height:23px;border:1px solid #5e8d52;border-radius:50%;color:#b7ff3c;background:#0e3525;font-size:18px;font-weight:900;line-height:1}
.ib-all-rounds .ib-round-card{position:relative;min-height:110px;transition:border-color .15s,background .15s,transform .15s}
.ib-all-rounds .ib-round-card:focus-visible{outline:3px solid #b7ff3c;outline-offset:1px}
.ib-all-rounds .ib-round-card:active{background:#285740;transform:scale(.99)}
.ib-all-rounds .ib-round-card .ib-round-state{font-size:11px}
@media(max-width:640px){
 .ib-container .ib-all-rounds:not([hidden]){display:block!important}
 .ib-container .ib-round-panel{padding:12px}
 .ib-container .ib-all-rounds{padding:12px}
 .ib-mobile-board-heading{flex-wrap:wrap}
 .ib-all-round-group{padding-left:12px}
 .ib-all-round-cards{grid-template-columns:minmax(0,1fr)}
 .ib-container.ib-map-open .ib-round-head{margin-bottom:2px}
 .ib-container .ib-scroll{display:none!important}
 .ib-container .ib-round-card{width:100%}
}
@media(min-width:641px){.ib-container .ib-all-rounds{display:none!important}}

.ib-side-branch{font-size:11px;font-weight:750;color:#c9d6bd;line-height:1.4;border-left:2px dashed #947947;border-bottom:1px dashed #947947;margin:0 0 10px 15px;padding:6px 10px 9px;background:linear-gradient(90deg,#71571b24,transparent)}

/* V3.4.3 — One real interactive bracket on ALL devices. The old fixed-height
   desktop canvas is deliberately removed from the live UI; geometry is ONLY
   used for standalone SVG/PNG exports, never for clickable match placement. */
.ib-container .ib-scroll{display:none!important}
.ib-container .ib-all-rounds:not([hidden]){display:block!important}
.ib-container.ib-map-open .ib-round-tabs,.ib-container.ib-map-open .ib-round-cards{display:none!important}
.ib-container:not(.ib-map-open) .ib-all-rounds{display:none!important}
.ib-container .ib-bracket-columns{display:flex;gap:0;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding:10px 2px 16px;scrollbar-color:#6a955e #102e22;max-width:100%;overscroll-behavior-x:contain}
.ib-container .ib-bracket-column{flex:1 0 220px;min-width:220px;min-height:0;height:auto;padding:13px;border:1px solid #3c6249;border-radius:15px;margin:0;background:#103024}
.ib-container .ib-bracket-column::before{display:none}
.ib-container .ib-bracket-column .ib-all-round-cards{grid-template-columns:minmax(0,1fr);gap:11px}
.ib-container .ib-bracket-column .ib-round-card{min-height:110px}
.ib-container .ib-bracket-column .ib-all-round-title{font-size:14px;color:#daffbd;margin-bottom:12px}
.ib-container .ib-bracket-columns .ib-flow-connector{flex:0 0 35px;height:2px;width:35px;min-width:35px;background:#709b67;border:0;margin:auto 0;padding:0;position:relative}
.ib-container .ib-bracket-columns .ib-flow-connector span{position:absolute;left:8px;top:-12px;bottom:auto;width:25px;height:25px;line-height:1;background:#153a2b;color:#caff66;border:1px solid #668e58;border-radius:50%;display:grid;place-items:center;font-weight:900}
.ib-container .ib-bronze-section{max-width:430px;margin:12px auto 0}
.ib-container .ib-bronze-section .ib-bracket-column{min-width:0;width:100%;border-color:#8b7751}
.ib-container .ib-side-branch{margin:12px 0 0;border-radius:10px;border-left-color:#ab8750;padding:10px 12px;background:#70531b1c}
.ib-container .ib-all-rounds{padding:14px}
.ib-container .ib-all-rounds .ib-round-card{overflow-wrap:anywhere;cursor:pointer}
.ib-container .ib-all-rounds .ib-round-card .ib-round-team{min-width:0}
.ib-container .ib-all-rounds .ib-round-card .ib-round-team span{min-width:0;overflow-wrap:anywhere}
.ib-container .ib-tools{display:flex!important}
.ib-container .ib-round-panel{padding-bottom:10px}
@media(min-width:641px){.ib-container .ib-all-rounds:not([hidden]){display:block!important}}
@media(max-width:640px){
 .ib-container .ib-bracket-columns{flex-direction:column;overflow:visible;gap:0;padding:2px 0}
 .ib-container .ib-bracket-column{flex:initial;width:100%;min-width:0;padding:12px}
 .ib-container .ib-bracket-columns .ib-flow-connector{flex:0 0 29px;width:2px;min-width:2px;height:29px;background:#709b67;margin:0 0 0 19px;border:0}
 .ib-container .ib-bracket-columns .ib-flow-connector span{left:-12px;top:6px;transform:rotate(90deg)}
 .ib-container .ib-all-rounds{padding:10px!important}
 .ib-container .ib-tools{display:flex!important;margin:0 0 0 auto}
 .ib-container .ib-mobile-board-heading{margin:0 0 12px}
 .ib-container .ib-bronze-section{max-width:none}
}
@media(min-width:641px){.ib-container .ib-map-toggle{display:inline-flex;align-items:center}}
