.lbp-wrap { max-width: 100%; }
.lbp-person { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
.lbp-person label { display:flex; flex-direction:column; font-weight:600; }
.lbp-bracket { display:block; overflow-x:auto; padding:1rem .5rem 2rem; min-height:620px; }
.lbp-bracket-canvas { position:relative; flex:0 0 auto; color:#222; margin-bottom:1rem; }
.lbp-lines { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:visible; }
.lbp-round { position:absolute; top:0; bottom:0; overflow:visible; }
.lbp-round h4 { text-align:center; margin:.25rem 0 .75rem; font-size:1rem; min-height:1.5rem; }
.lbp-game { position:absolute; z-index:2; background:#fff; border:2px solid #222; height:auto !important; min-height:unset !important; width:100%; padding:.55rem; box-sizing:border-box; box-shadow:0 1px 0 rgba(0,0,0,.04); overflow:visible; display:flex; flex-direction:column; justify-content:center; }
.lbp-game-label { font-size:.76rem; font-weight:700; color:#333; margin-bottom:.2rem; }
.lbp-game-time { font-size:.72rem; opacity:.78; margin-bottom:.3rem; line-height:1.2; white-space:normal; }
.lbp-team { border-top:1px solid #222; padding:.42rem .3rem; margin:0 !important; min-height:1.7rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lbp-team:first-of-type { border-top:0; }
.lbp-pick { margin-top:.6rem; position:relative; z-index:4; background:#fff; }
.lbp-game select, .lbp-person input { width:100%; max-width:100%; box-sizing:border-box; }
.lbp-game select { display:block !important; visibility:visible !important; opacity:1 !important; min-height:40px; font-size:14px; padding:5px 8px; background:#fff; color:#111; border:1px solid #777; }
.lbp-entry-form button { padding:.6rem 1rem; cursor:pointer; margin-top:1rem; }
.lbp-message, .lbp-notice { font-weight:700; }
.lbp-leaderboard, .lbp-schedule table { width:100%; border-collapse:collapse; margin-top:.5rem; }
.lbp-leaderboard th, .lbp-leaderboard td, .lbp-schedule th, .lbp-schedule td { border:1px solid #ddd; padding:.5rem; text-align:left; }
.lbp-schedule { margin: 1rem 0; }
.lbp-schedule summary { cursor:pointer; font-weight:700; }
.lbp-playin-round .lbp-game { width:100%; }
.lbp-playin-game { min-height:188px; }
.lbp-playin-game .lbp-game-label::before { content:"Winner to "; font-weight:600; }

/* Mobile: keep the full bracket canvas intact and horizontally scrollable.
   Earlier versions hid SVG connectors under 700px, which made the lines
   disappear on phones. Do not collapse columns or hide the SVG line layer. */
.lbp-bracket { -webkit-overflow-scrolling: touch; }
.lbp-bracket-canvas { min-width: max-content; }
.lbp-lines { display:block !important; }
.lbp-lines path { vector-effect: non-scaling-stroke; }
@media (max-width: 700px) {
  .lbp-bracket { overflow-x:auto !important; overflow-y:visible; padding-bottom:1.5rem; }
  .lbp-bracket-canvas { transform:none !important; }
  .lbp-round, .lbp-game, .lbp-lines { visibility:visible !important; }
}

.lbp-print-actions { margin:.5rem 0 1rem; }
.lbp-print-button { padding:.55rem .9rem; cursor:pointer; }
@media print {
  body * { visibility:hidden !important; }
  .lbp-wrap, .lbp-wrap * { visibility:visible !important; }
  .lbp-wrap { position:absolute !important; left:0 !important; top:0 !important; width:100% !important; max-width:none !important; background:#fff !important; color:#000 !important; }
  .lbp-person, .lbp-entry-limit, .lbp-print-actions, .lbp-entry-form > button[type="submit"], .lbp-message, .lbp-leaderboard, .lbp-schedule, .lbp-pick select { display:none !important; }
  .lbp-bracket { overflow:visible !important; padding:0 !important; transform-origin:top left; }
  .lbp-bracket-canvas { transform:scale(.72); transform-origin:top left; margin:0 !important; page-break-inside:avoid; }
  .lbp-game { border:1.5px solid #000 !important; box-shadow:none !important; background:#fff !important; }
  .lbp-team { background:#fff !important; color:#000 !important; }
  .lbp-lines path { stroke:#000 !important; }
  @page { size: landscape; margin:.35in; }
}

.lbp-entry-viewer { margin-top:1.25rem; padding-top:1rem; border-top:1px solid #ddd; }
.lbp-entry-viewer label { display:inline-flex; gap:.5rem; align-items:center; font-weight:700; flex-wrap:wrap; }
.lbp-view-entry-select { min-width:240px; padding:.35rem; }
.lbp-viewing-label { font-weight:700; margin:.8rem 0 .25rem; }
.lbp-readonly-bracket .lbp-bracket { margin-top:.25rem; }
.lbp-picked { margin-top:.6rem; padding:.45rem .5rem; border:1px solid #bbb; background:#f8f8f8; font-weight:700; }
.lbp-readonly-game { min-height:178px; }
@media print {
  .lbp-entry-viewer { display:none !important; }
}

/* v0.6.1 connector + submitted bracket modal fixes */
.lbp-lines {
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  display:block !important;
  z-index:1 !important;
  pointer-events:none !important;
  color:#222;
}
.lbp-lines path {
  stroke:#222;
  stroke-linecap:square;
  stroke-linejoin:miter;
}
.lbp-leaderboard .lbp-view-entry {
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  color:#0645ad;
  text-decoration:underline;
  cursor:pointer;
  font:inherit;
  font-weight:700;
}
.lbp-leaderboard-row { cursor:pointer; }
.lbp-viewer-help { margin:.6rem 0 1rem; font-weight:600; }
.lbp-entry-modal { display:none; }
.lbp-entry-modal.is-open { display:block; position:fixed; inset:0; z-index:99999; }
.lbp-entry-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.62); }
.lbp-entry-modal-panel {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  width:min(96vw, 1180px);
  max-height:92vh;
  overflow:auto;
  background:#fff;
  color:#111;
  padding:1rem;
  border-radius:8px;
  box-shadow:0 18px 60px rgba(0,0,0,.35);
}
.lbp-entry-modal-close {
  position:sticky;
  float:right;
  top:0;
  z-index:5;
  border:1px solid #999;
  background:#fff;
  font-size:28px;
  line-height:1;
  width:40px;
  height:40px;
  cursor:pointer;
}
.lbp-entry-modal-title { margin:.2rem 3rem 1rem 0; }
body.lbp-modal-open { overflow:hidden; }
.lbp-entry-modal .lbp-bracket { overflow:auto; max-height:78vh; }
@media (max-width:700px){
  .lbp-entry-modal-panel { width:96vw; max-height:94vh; padding:.75rem; }
  .lbp-entry-modal .lbp-bracket { -webkit-overflow-scrolling:touch; }
}
@media print {
  .lbp-entry-modal { display:none !important; }
}

/* v0.6.3 mobile-first usability pass */
.lbp-mobile-hint { display:none; }
.lbp-bracket { touch-action: pan-x pan-y; overscroll-behavior-x: contain; }
.lbp-game select,
.lbp-person input,
.lbp-entry-form button,
.lbp-print-button {
  border-radius:6px;
}
.lbp-team,
.lbp-game-label,
.lbp-game-time,
.lbp-picked { overflow-wrap:anywhere; }

@media (max-width: 760px) {
  .lbp-wrap { width:100%; max-width:100%; }
  .lbp-wrap h2 { font-size:1.35rem; line-height:1.2; }
  .lbp-person { display:block; margin-bottom:.75rem; }
  .lbp-person label { margin-bottom:.65rem; }
  .lbp-person input { min-height:46px; font-size:16px; padding:.55rem .65rem; }
  .lbp-entry-limit, .lbp-notice, .lbp-viewer-help { font-size:.95rem; }
  .lbp-print-actions { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
  .lbp-print-button, .lbp-entry-form button[type="submit"] { width:100%; min-height:46px; font-size:16px; }

  .lbp-bracket {
    position:relative;
    width:100%;
    overflow-x:auto !important;
    overflow-y:visible;
    padding:.5rem .25rem 1rem;
    border:1px solid #e5e5e5;
    border-radius:8px;
    background:linear-gradient(90deg, rgba(0,0,0,.045), transparent 18px) 0 0/18px 100% no-repeat,
               linear-gradient(270deg, rgba(0,0,0,.045), transparent 18px) 100% 0/18px 100% no-repeat,
               #fff;
    -webkit-overflow-scrolling:touch;
  }
  .lbp-bracket::before {
    content:"Swipe sideways to see the full bracket";
    position:sticky;
    left:.25rem;
    top:0;
    display:inline-block;
    z-index:10;
    padding:.25rem .5rem;
    margin-bottom:.25rem;
    border-radius:999px;
    background:#f5f5f5;
    border:1px solid #ddd;
    font-size:.78rem;
    font-weight:700;
    color:#333;
  }
  .lbp-bracket-canvas { min-width:max-content; margin-top:.3rem; }
  .lbp-round h4 { font-size:.88rem; margin:.1rem 0 .45rem; }
  .lbp-game {
    min-height:176px;
    padding:.45rem;
    border-width:1.5px;
    border-radius:7px;
  }
  .lbp-game-label { font-size:.7rem; }
  .lbp-game-time { font-size:.68rem; line-height:1.15; }
  .lbp-team { min-height:1.55rem; padding:.34rem .25rem; font-size:.86rem; }
  .lbp-pick { margin-top:.45rem; }
  .lbp-game select { min-height:44px; font-size:16px; padding:.45rem .5rem; border-radius:6px; }
  .lbp-lines { display:block !important; opacity:1 !important; }
  .lbp-lines path { stroke-width:2.25; }

  .lbp-schedule { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .lbp-schedule table,
  .lbp-leaderboard { min-width:420px; font-size:.92rem; }
  .lbp-leaderboard th,
  .lbp-leaderboard td,
  .lbp-schedule th,
  .lbp-schedule td { padding:.42rem; }

  .lbp-entry-modal.is-open { display:flex; align-items:stretch; justify-content:center; }
  .lbp-entry-modal-panel {
    position:relative;
    left:auto;
    top:auto;
    transform:none;
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
    padding:.75rem;
    overflow:auto;
  }
  .lbp-entry-modal-close {
    position:sticky;
    top:.25rem;
    float:right;
    width:44px;
    height:44px;
    border-radius:999px;
    background:#fff;
  }
  .lbp-entry-modal-title { font-size:1.05rem; margin:.4rem 3.2rem .75rem 0; }
  .lbp-entry-modal .lbp-bracket { max-height:none; }
}

@media print {
  .lbp-bracket::before { display:none !important; }
}

/* v0.6.5 shortcode and bracket-only printing */
.lbp-title-wrap .lbp-title { margin-top:0; }
@media print {
  body.lbp-printing * { visibility:hidden !important; }
  body.lbp-printing .lbp-print-target,
  body.lbp-printing .lbp-print-target * { visibility:visible !important; }
  body.lbp-printing .lbp-print-target {
    display:block !important;
    position:absolute !important;
    left:0 !important;
    top:0 !important;
    width:max-content !important;
    max-width:none !important;
    overflow:visible !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:#fff !important;
  }
  body.lbp-printing .lbp-print-target::before { display:none !important; }
  body.lbp-printing .lbp-print-target .lbp-bracket-canvas {
    transform:scale(.56) !important;
    transform-origin:top left !important;
    margin:0 !important;
    page-break-inside:avoid !important;
    break-inside:avoid !important;
  }
  body.lbp-printing .lbp-print-target .lbp-pick,
  body.lbp-printing .lbp-print-target select { display:none !important; }
  body.lbp-printing .lbp-print-target .lbp-lines,
  body.lbp-printing .lbp-print-target .lbp-lines * { visibility:visible !important; display:block !important; }
  body.lbp-printing .lbp-print-target .lbp-game { box-shadow:none !important; background:#fff !important; border-color:#000 !important; }
  @page { size: landscape; margin:.25in; }
}


/* v0.6.6 reliable single-page bracket printing */
@media print {
  html, body { width:100% !important; height:auto !important; margin:0 !important; padding:0 !important; overflow:hidden !important; }
  body.lbp-printing * { visibility:hidden !important; }
  body.lbp-printing .lbp-print-target,
  body.lbp-printing .lbp-print-target * { visibility:visible !important; }
  body.lbp-printing .lbp-print-target {
    position:absolute !important;
    left:0 !important;
    top:0 !important;
    display:block !important;
    overflow:visible !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:#fff !important;
    width:var(--lbp-print-width, 10in) !important;
    height:var(--lbp-print-height, 7.2in) !important;
    max-width:none !important;
    max-height:none !important;
    page-break-after:avoid !important;
    page-break-inside:avoid !important;
    break-inside:avoid !important;
  }
  body.lbp-printing .lbp-print-target::before,
  body.lbp-printing .lbp-print-target .lbp-pick,
  body.lbp-printing .lbp-print-target select { display:none !important; }
  body.lbp-printing .lbp-print-target .lbp-bracket-canvas {
    position:absolute !important;
    left:0 !important;
    top:0 !important;
    margin:0 !important;
    transform:scale(var(--lbp-print-scale, .45)) !important;
    transform-origin:top left !important;
    page-break-inside:avoid !important;
    break-inside:avoid !important;
  }
  body.lbp-printing .lbp-print-target .lbp-lines,
  body.lbp-printing .lbp-print-target .lbp-lines * { visibility:visible !important; display:block !important; }
  body.lbp-printing .lbp-print-target .lbp-lines path { stroke:#000 !important; stroke-width:2 !important; vector-effect:non-scaling-stroke; }
  body.lbp-printing .lbp-print-target .lbp-game { box-shadow:none !important; background:#fff !important; border:1.2px solid #000 !important; }
  body.lbp-printing .lbp-print-target .lbp-game-time { font-size:.66rem !important; }
  body.lbp-printing .lbp-print-target .lbp-team { background:#fff !important; color:#000 !important; }
  body.lbp-printing .lbp-print-actions,
  body.lbp-printing .lbp-leaderboard,
  body.lbp-printing .lbp-schedule,
  body.lbp-printing .lbp-entry-viewer,
  body.lbp-printing .lbp-entry-modal { display:none !important; }
  @page { size: letter landscape; margin:.2in; }
}

.lbp-deadline-notice { margin: .75rem 0 1rem; padding: .75rem 1rem; border: 1px solid #d7b45a; background: #fff8df; border-radius: 6px; font-weight: 600; }
.lbp-deadline-closed { border-color: #b94a48; background: #fff1f1; }
@media print { .lbp-deadline-notice { display:none !important; } }

/* v0.7.1 results and pick status styling */
.lbp-game-result {
  font-size: .78rem;
  font-weight: 700;
  margin: .22rem 0 .28rem;
}
.lbp-team.lbp-winner {
  font-weight: 800;
  border-color: currentColor;
}
.lbp-team.lbp-user-pick {
  outline: none !important;
  background: lightskyblue !important;
}
.lbp-team.lbp-pick-correct,
.lbp-picked.lbp-pick-correct-text {
  background: #e8f7ed;
  color: #166534;
  border-color: #16a34a;
}
.lbp-team.lbp-pick-wrong,
.lbp-picked.lbp-pick-wrong-text {
  background: #fdecec;
  color: #991b1b;
  border-color: #dc2626;
}
.lbp-picked.lbp-pick-correct-text,
.lbp-picked.lbp-pick-wrong-text {
  font-weight: 700;
  border-radius: 4px;
  padding: .2rem .35rem;
}
@media print {
  body.lbp-printing .lbp-print-target .lbp-team.lbp-pick-correct,
  body.lbp-printing .lbp-print-target .lbp-picked.lbp-pick-correct-text,
  body.lbp-printing .lbp-print-target .lbp-team.lbp-pick-wrong,
  body.lbp-printing .lbp-print-target .lbp-picked.lbp-pick-wrong-text {
    background:#fff !important;
    color:#000 !important;
    border-color:#000 !important;
  }
}

/* v0.7.7 whole-game pick status */
.lbp-game.lbp-game-pick-correct {
  background: #e8f7ed;
  border-color: #16a34a;
  box-shadow: 0 0 0 2px rgba(22, 163, 74, .18);
}
.lbp-game.lbp-game-pick-wrong {
  background: #fdecec;
  border-color: #dc2626;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, .18);
}
.lbp-game.lbp-game-pick-correct .lbp-picked,
.lbp-game.lbp-game-pick-wrong .lbp-picked {
  background: rgba(255,255,255,.72);
}
@media print {
  body.lbp-printing .lbp-print-target .lbp-game.lbp-game-pick-correct,
  body.lbp-printing .lbp-print-target .lbp-game.lbp-game-pick-wrong {
    background:#fff !important;
    border-color:#000 !important;
    box-shadow:none !important;
  }
}

.lbp-locked-game {
  opacity: 0.92;
}
.lbp-game-locked {
  margin-top: 4px;
  font-size: 12px;
  font-weight: 700;
  color: #8a4b00;
}
.lbp-locked-game select:disabled {
  cursor: not-allowed;
  opacity: 0.75;
  background: #f3f3f3;
}

/* v0.7.8 full result-color fill fix */
.lbp-game.lbp-game-pick-correct,
.lbp-game.lbp-game-pick-correct .lbp-team,
.lbp-game.correct-pick,
.lbp-game.correct-pick .lbp-team {
  background: #e8f7ed !important;
  color: #166534;
}

.lbp-game.lbp-game-pick-wrong,
.lbp-game.lbp-game-pick-wrong .lbp-team,
.lbp-game.wrong-pick,
.lbp-game.wrong-pick .lbp-team {
  background: #fdecec !important;
  color: #991b1b;
}

.lbp-game.lbp-game-pick-correct .lbp-picked,
.lbp-game.lbp-game-pick-wrong .lbp-picked,
.lbp-game.correct-pick .lbp-picked,
.lbp-game.wrong-pick .lbp-picked {
  background: rgba(255,255,255,.42) !important;
}

/* v0.8.5 inline user pick text */
.lbp-your-pick-inline {
  display:inline;
  margin-left:.45rem;
  padding:0;
  border-radius:0;
  border:0;
  background:transparent !important;
  font-size:.72rem;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  vertical-align:baseline;
}
.lbp-picked { display:none !important; }


/* v0.8.0 auto-height game boxes
   Game boxes should size to their content instead of using fixed heights.
   The JS still positions rounds with safe vertical spacing, then connector lines
   redraw from the actual rendered box positions. */
.lbp-game,
.lbp-playin-game,
.lbp-readonly-game {
  height: auto !important;
  min-height: unset !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 10px;
  box-sizing: border-box;
}

.lbp-team {
  min-height: unset !important;
  padding: 6px 8px;
  margin: 2px 0;
}

.lbp-pick {
  margin-top: .45rem;
}

@media (max-width: 760px) {
  .lbp-game,
  .lbp-playin-game,
  .lbp-readonly-game {
    height: auto !important;
    min-height: unset !important;
    padding: 8px;
  }
  .lbp-team {
    min-height: unset !important;
    padding: 5px 7px;
  }
}


/* v0.8.3 packaged CSS fixes */
.lbp-team.lbp-user-pick {
  outline: none !important;
  background: lightskyblue !important;
}

.lbp-team {
  margin: 0 !important;
}

.lbp-game.lbp-game-pick-correct,
.lbp-game.lbp-game-pick-correct .lbp-team,
.lbp-game.correct-pick,
.lbp-game.correct-pick .lbp-team {
  background: #e8f7ed !important;
  color: #166534;
}

.lbp-game.lbp-game-pick-wrong,
.lbp-game.lbp-game-pick-wrong .lbp-team,
.lbp-game.wrong-pick,
.lbp-game.wrong-pick .lbp-team {
  background: #fdecec !important;
  color: #991b1b;
}


/* v0.8.5 final override: show pick as inline text, not a box */
.lbp-your-pick-inline {
  display:inline !important;
  margin-left:.45rem !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  font-size:.72rem;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  vertical-align:baseline;
}


/* v0.8.6: picked team text is prefixed directly, no duplicate inline badge */
.lbp-your-pick-inline {
  display:none !important;
}
.lbp-team.lbp-user-pick {
  outline:none !important;
  background:lightskyblue !important;
}


/* v0.8.9: picked team label is part of the team row */
.lbp-your-pick-inline {
  display:none !important;
}
.lbp-team.lbp-user-pick {
  outline:none !important;
  background:lightskyblue !important;
}
.lbp-team {
  margin:0 !important;
}


/* v0.9.2 public leaderboard pagination */
.lbp-leaderboard-pagination {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  margin:.75rem 0 1rem;
  flex-wrap:wrap;
}
.lbp-leaderboard-pagination button {
  padding:.45rem .75rem;
  cursor:pointer;
}
.lbp-leaderboard-pagination button:disabled {
  cursor:not-allowed;
  opacity:.5;
}
.lbp-leaderboard-page-info {
  font-weight:700;
}





/* v0.9.4 pagination fix: JS toggles this class for hidden leaderboard rows */
.lbp-leaderboard .lbp-page-hidden {
  display: none !important;
}
.lbp-leaderboard-pagination {
  display: flex;
}


/* v0.9.7 bracket zoom controls */
.lbp-zoom-controls {
  display:flex;
  align-items:center;
  gap:.4rem;
  flex-wrap:wrap;
  margin:.5rem 0 .75rem;
}
.lbp-zoom-controls button {
  padding:.4rem .65rem;
  line-height:1;
  cursor:pointer;
  border:1px solid #999;
  background:#fff;
  border-radius:4px;
}
.lbp-zoom-controls button:disabled {
  opacity:.45;
  cursor:not-allowed;
}
.lbp-zoom-current {
  font-weight:700;
  min-width:3.5rem;
}
.lbp-bracket {
  position:relative;
}
.lbp-bracket-canvas {
  will-change:transform;
}
@media print {
  .lbp-zoom-controls {
    display:none !important;
  }
  .lbp-bracket-canvas {
    transform:none !important;
  }
}


/* v0.9.8 fixed bracket zoom controls */
.lbp-zoom-controls {
  display: flex !important;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 10px 0 12px;
  padding: 8px;
  background: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 6px;
}
.lbp-zoom-controls .lbp-zoom-btn {
  appearance: none;
  display: inline-block !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  padding: 7px 10px !important;
  margin: 0 !important;
  line-height: 1.2 !important;
  font-size: 14px !important;
  font-weight: 600;
  color: #111 !important;
  background: #fff !important;
  border: 1px solid #888 !important;
  border-radius: 4px !important;
  cursor: pointer;
  text-decoration: none;
}
.lbp-zoom-controls .lbp-zoom-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.lbp-zoom-current {
  font-weight: 700;
  min-width: 44px;
}
.lbp-bracket {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
}
.lbp-bracket-canvas {
  will-change: transform;
}
@media print {
  .lbp-zoom-controls {
    display: none !important;
  }
  .lbp-bracket-canvas {
    transform: none !important;
  }
}


/* v1.0.2 zoom repair */
.lbp-bracket {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
.lbp-bracket-canvas {
  will-change: transform;
  transform-origin: top left !important;
  -webkit-transform-origin: top left !important;
  margin: 0 !important;
}
.lbp-zoom-controls {
  position: relative;
  z-index: 50;
  display: flex !important;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 10px 0 12px;
  padding: 8px;
  background: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 6px;
  touch-action: manipulation;
}
.lbp-zoom-controls .lbp-zoom-btn {
  appearance: none;
  display: inline-block !important;
  width: auto !important;
  min-height: 42px !important;
  padding: 7px 10px !important;
  margin: 0 !important;
  line-height: 1.2 !important;
  font-size: 14px !important;
  font-weight: 600;
  color: #111 !important;
  background: #fff !important;
  border: 1px solid #888 !important;
  border-radius: 4px !important;
  cursor: pointer;
  touch-action: manipulation;
}
.lbp-zoom-controls .lbp-zoom-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.lbp-zoom-current {
  font-weight: 700;
  min-width: 44px;
}
@media (max-width: 760px) {
  .lbp-zoom-controls {
    gap: 6px;
    align-items: stretch;
  }
  .lbp-zoom-controls .lbp-zoom-btn {
    flex: 1 1 auto;
    font-size: 13px !important;
    padding: 9px 8px !important;
  }
}
@media print {
  .lbp-zoom-controls {
    display: none !important;
  }
  .lbp-bracket-canvas {
    transform: none !important;
  }
}


/* v1.0.3 championship score tiebreaker */
.lbp-tiebreaker {
  border: 1px solid #ddd;
  padding: .75rem;
  margin: .75rem 0 1rem;
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  align-items: flex-end;
}
.lbp-tiebreaker legend {
  font-weight: 700;
  padding: 0 .25rem;
}
.lbp-tiebreaker p {
  flex-basis: 100%;
  margin: .25rem 0;
}
.lbp-tiebreaker label {
  display: flex;
  flex-direction: column;
  font-weight: 600;
}
.lbp-tiebreaker input {
  width: 8rem;
  max-width: 100%;
}


/* v1.0.4 hide submitted brackets until submission deadline */
.lbp-viewer-locked {
  padding: .65rem .75rem;
  background: #fff8e1;
  border: 1px solid #f1d48b;
  border-radius: 4px;
  font-weight: 600;
}
