/* Monthly Books Battle championship (app e19/e20) — one fixed poster look (deep navy, blue/red split, gold),
   independent of the site theme, like the app's MPL-poster bracket. Pop-ups are centred. */
.bch-page{--bch-bg:#0b1530;--bch-navy:#0e1b3d;--bch-blue:#1f5bd8;--bch-red:#d8343f;--bch-gold:#f2c94c;--bch-gold-ink:#3a2a00;--bch-card:rgba(22,34,74,.94);--bch-border:#2c3a66;--bch-line:#3b4c82;--bch-ink:#fff;--bch-mute:#9aa6c8;--bch-faint:#5e6b92;--bch-shine:#ffe21a;--bch-glow:0 0 12px 1px rgba(255,226,26,.7);
  position:fixed;inset:0;z-index:11000;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(135deg,#1f5bd855 0%,var(--bch-bg) 35%,var(--bch-navy) 70%,#d8343f55 100%),var(--bch-bg);color:var(--bch-ink);font-family:Inter,system-ui,sans-serif}
body.bch-open{overflow:hidden}
.bch-page *,.bch-backdrop *{box-sizing:border-box}
.bch-page button,.bch-backdrop button{font:inherit;color:inherit;cursor:pointer}
.bch-page button:focus-visible,.bch-backdrop button:focus-visible{outline:3px solid var(--bch-gold,#f2c94c);outline-offset:2px}
.bch-page-inner{max-width:560px;min-height:100%;margin:0 auto;padding:0 16px 40px}
.bch-gold{color:var(--bch-gold,#f2c94c)}
.bch-top{display:flex;align-items:center;justify-content:space-between;height:52px;position:sticky;top:0;z-index:2;background:linear-gradient(var(--bch-bg) 70%,transparent)}
.bch-top span{font-size:12px;font-weight:800;color:var(--bch-mute)}
.bch-page .bch-back{width:36px;height:36px;border-radius:18px;border:1px solid var(--bch-border);background:var(--bch-card);font-size:22px;line-height:1;display:grid;place-items:center}
.bch-top-gap{width:36px}
.bch-hero{text-align:center;margin-top:4px}
.bch-hero small{font-size:11px;font-weight:900;letter-spacing:2.2px}
.bch-hero h2{font-size:26px;font-weight:900;margin:2px 0}
.bch-hero p{font-size:12px;font-weight:700;color:var(--bch-mute);margin:2px 0 0}
.bch-card{margin:24px 4px;padding:18px;border-radius:16px;border:1px solid var(--bch-border);background:var(--bch-card);text-align:center;font-size:12.5px;font-weight:700;color:var(--bch-mute)}
.bch-card strong{display:block;font-size:15px;color:var(--bch-ink);margin-bottom:6px}
.bch-card p{margin:0}
.bch-state{text-align:center;color:var(--bch-mute);font-weight:700}
/* Tree: the left half climbs from the left edge, the right half from the right edge, meeting at the trophy. */
.bch-tree{--gap:10px;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr)) minmax(0,2.3fr) repeat(var(--cols),minmax(0,1fr));column-gap:var(--gap);margin-top:30px;align-items:stretch}
.bch-col{position:relative;display:flex;flex-direction:column;justify-content:space-around;gap:12px}
.bch-col-label{position:absolute;top:-22px;left:-4px;right:-4px;text-align:center;font-size:10px;font-weight:900;letter-spacing:1.2px;color:var(--bch-mute)}
.bch-pair{position:relative;display:flex;flex-direction:column;gap:4px}
.bch-pair::after{content:"";position:absolute;top:25%;bottom:25%;width:calc(var(--gap) / 2);border:1.5px solid var(--bch-line)}
.bch-pair::before{content:"";position:absolute;top:50%;width:calc(var(--gap) / 2 + 1px);border-top:1.5px solid var(--bch-line)}
.bch-col-left .bch-pair::after{right:calc(var(--gap) / -2);border-left:0;border-radius:0 4px 4px 0}
.bch-col-left .bch-pair::before{right:calc(var(--gap) * -1)}
.bch-col-right .bch-pair::after{left:calc(var(--gap) / -2);border-right:0;border-radius:4px 0 0 4px}
.bch-col-right .bch-pair::before{left:calc(var(--gap) * -1)}
.bch-pair.is-decided::after,.bch-pair.is-decided::before{border-color:var(--bch-shine);box-shadow:0 0 5px rgba(255,226,26,.6)}
.bch-slot{display:block;width:100%;aspect-ratio:2/3;padding:0;border:1px solid var(--bch-border);border-radius:6px;background:var(--bch-card);overflow:hidden;position:relative}
.bch-slot:disabled{cursor:default}
.bch-slot.is-through,.bch-slot.is-live{border-color:var(--bch-shine);box-shadow:var(--bch-glow)}
.bch-slot.is-out{opacity:.45}
.bch-empty{display:grid;place-items:center;width:100%;height:100%;border:1.5px dashed var(--bch-faint);border-radius:6px;color:var(--bch-faint);font-size:clamp(14px,4vw,22px);font-weight:900}
.bch-cover{position:relative;display:block;width:100%;aspect-ratio:2/3;border-radius:6px;overflow:hidden;background:#1a2550}
.bch-cover img{width:100%;height:100%;object-fit:cover;display:block}
.bch-cover.is-through{box-shadow:var(--bch-glow);outline:1px solid var(--bch-shine)}
.bch-cover.is-out{opacity:.5}
.bch-cover-fallback,.bch-cover-empty{display:grid;place-items:center;width:100%;height:100%;font-weight:900;color:var(--bch-faint)}
.bch-cover-empty{border:1.5px dashed var(--bch-faint);background:transparent}
.bch-18{position:absolute;top:3px;right:3px;padding:1px 4px;border-radius:4px;background:#e5484d;color:#fff;font-size:8px;font-weight:900;line-height:1.3}
.bch-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;min-width:0}
.bch-trophy{border:0;background:none;padding:0;width:min(84px,70%)}
.bch-trophy img{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 14px rgba(242,201,76,.35))}
.bch-finalists{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:4px;width:100%}
.bch-vs{display:grid;place-items:center;width:30px;height:30px;border-radius:15px;border:1px solid var(--bch-gold,#f2c94c);background:var(--bch-navy,#0e1b3d);color:var(--bch-gold,#f2c94c);font-size:11px;font-weight:900}
.bch-final-label{margin:0;font-size:10px;font-weight:900;letter-spacing:1.4px;color:var(--bch-gold)}
.bch-champion-name{margin:0;font-size:12px;font-weight:900;display:flex;align-items:center;gap:4px}
.bch-champion-name img{width:18px;height:auto}
.bch-prelims,.bch-past{margin-top:28px}
.bch-prelims h3,.bch-past h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:12px;font-weight:900;letter-spacing:1.8px;color:var(--bch-gold)}
.bch-past h3 img{width:22px;height:22px;object-fit:contain}
.bch-prelim-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bch-prelim{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:14px;border:1px solid var(--bch-border);background:var(--bch-card);text-align:left;min-width:0}
.bch-prelim.is-live{border-color:var(--bch-shine);box-shadow:var(--bch-glow)}
.bch-prelim-day{font-size:10px;font-weight:800;letter-spacing:.8px;color:var(--bch-mute)}
.bch-prelim-books{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px}
.bch-prelim-books b{font-size:10px;font-weight:900;color:var(--bch-gold)}
.bch-prelim-status{font-size:11px;font-weight:700;color:var(--bch-mute);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bch-prelim-status.is-gold{color:var(--bch-gold)}
.bch-past-row{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory}
.bch-past-card{position:relative;flex:0 0 min(330px,88%);display:flex;gap:14px;padding:14px;border-radius:18px;border:1px solid rgba(242,201,76,.45);background:linear-gradient(135deg,#2a2346,#141b3c 50%,#0e1430);text-align:left;overflow:hidden;scroll-snap-align:start;box-shadow:0 6px 20px rgba(242,201,76,.18)}
.bch-past-card:only-child{flex-basis:100%}
.bch-past-trophy{position:absolute;right:-18px;bottom:-14px;width:128px;height:128px;object-fit:contain;opacity:.22;pointer-events:none}
.bch-past-cover{position:relative;flex:0 0 76px}
.bch-crown{position:absolute;top:-12px;left:-12px;width:32px;height:auto;pointer-events:none}
.bch-past-text{display:flex;flex-direction:column;gap:2px;min-width:0;position:relative}
.bch-past-text small{font-size:10.5px;font-weight:900;letter-spacing:1.4px;color:var(--bch-mute)}
.bch-past-text small.bch-gold{color:var(--bch-gold)}
.bch-past-text strong{font-size:16px;line-height:1.3;font-weight:900;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.bch-past-link{margin-top:auto;font-size:12px;font-weight:800}
/* Centred pop-ups: a match face-off and the trophies. */
.bch-backdrop{--bch-navy:#0e1b3d;--bch-gold:#f2c94c;--bch-gold-ink:#3a2a00;--bch-card:rgba(22,34,74,.97);--bch-border:#2c3a66;--bch-ink:#fff;--bch-mute:#9aa6c8;--bch-faint:#5e6b92;--bch-shine:#ffe21a;--bch-glow:0 0 12px 1px rgba(255,226,26,.7);
  position:fixed;inset:0;z-index:11500;display:grid;place-items:center;padding:16px;background:rgba(4,8,22,.78);color:var(--bch-ink);font-family:Inter,system-ui,sans-serif}
.bch-dialog{width:100%;max-width:420px;max-height:calc(100vh - 32px);overflow:auto;outline:none}
.bch-dialog-round{margin:0 0 10px;text-align:center;font-size:12px;font-weight:900;letter-spacing:1.4px;color:var(--bch-gold)}
.bch-match{padding:12px 14px 14px;border-radius:16px;border:1px solid var(--bch-border);background:var(--bch-card)}
.bch-match.is-live{border-color:var(--bch-shine);box-shadow:var(--bch-glow)}
.bch-match-head{display:flex;justify-content:space-between;gap:8px;font-size:11px;font-weight:800;letter-spacing:.6px;color:var(--bch-mute)}
.bch-match-body{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:8px;margin-top:14px}
.bch-match-body>.bch-vs{margin-top:60px}
.bch-face{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-width:0}
.bch-face.is-out{opacity:.5}
.bch-face-cover{position:relative;border:0;background:none;padding:0;width:96px}
.bch-face strong{font-size:13px;line-height:1.3;font-weight:900;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bch-face small{font-size:11px;font-weight:700;color:var(--bch-mute)}
.bch-face-empty .bch-cover{width:96px}
.bch-face-empty p{margin:0;font-size:12px;font-weight:700;color:var(--bch-faint)}
.bch-result{font-size:12px;font-weight:800;color:var(--bch-mute)}
.bch-result.is-gold{color:var(--bch-gold)}
.bch-backdrop .bch-vote{display:block;width:100%;height:40px;margin-top:14px;border:0;border-radius:12px;background:var(--bch-gold);color:var(--bch-gold-ink)!important;font-weight:900}
.bch-backdrop .bch-close{display:block;margin:14px auto 0;padding:0 22px;height:40px;border:0;border-radius:20px;background:rgba(255,255,255,.12);font-weight:800}
.bch-medals{display:flex;flex-direction:column;gap:12px}
.bch-medal{display:flex;align-items:center;gap:12px}
.bch-medal img{width:56px;height:56px;object-fit:contain;flex:0 0 auto}
.bch-medal span{display:flex;flex-direction:column;gap:2px;min-width:0}
.bch-medal small{font-size:10.5px;font-weight:900;letter-spacing:1.2px}
.bch-medal strong{font-size:14px;font-weight:800}
/* Discover card and the book-page honour. */
.bch-discover-slot{margin:18px auto 0;width:100%;max-width:590px}
.bch-discover{display:flex;flex-direction:column;gap:12px;width:100%;padding:14px;border:1px solid rgba(242,201,76,.45);border-radius:18px;background:linear-gradient(135deg,#1f5bd8 0%,#0e1b3d 35%,#0b1530 70%,#d8343fcc 100%);color:#fff;text-align:left;font:inherit;font-family:Inter,system-ui,sans-serif;cursor:pointer;box-shadow:0 6px 20px rgba(242,201,76,.18);box-sizing:border-box}
.bch-discover *{box-sizing:border-box}
.bch-discover:focus-visible{outline:3px solid #f2c94c;outline-offset:2px}
.bch-discover .bch-gold{color:#f2c94c}
.bch-discover-head{display:flex;align-items:center;gap:12px}
.bch-discover-head>img{width:48px;height:48px;object-fit:contain;flex:0 0 auto}
.bch-discover-head span,.bch-card-feature>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.bch-discover small{font-size:10.5px;font-weight:900;letter-spacing:1.6px}
.bch-discover-head strong{font-size:20px;font-weight:900}
.bch-discover em{font-style:normal;font-size:11.5px;font-weight:700;color:#9aa6c8}
.bch-card-feature{display:flex;align-items:center;gap:8px;padding:10px;border-radius:14px;background:rgba(14,27,61,.7);border:1px solid #2c3a66}
.bch-card-feature .bch-cover{flex:0 0 44px;width:44px}
.bch-card-feature strong{font-size:12.5px;font-weight:800;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bch-card-feature small{color:#9aa6c8}
.bch-card-feature small.bch-live{color:#ffe21a}
.bch-discover-cta{display:grid;place-items:center;height:40px;border-radius:12px;background:#f2c94c;color:#3a2a00;font-size:14px;font-weight:900}
.bch-honor{display:inline-flex;align-items:center;gap:6px;margin:6px 0 2px;padding:5px 12px 5px 8px;border-radius:999px;border:1px solid rgba(242,201,76,.6);background:linear-gradient(135deg,#2a2346,#0e1b3d);color:#f2c94c;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer}
.bch-honor img{width:18px;height:18px;object-fit:contain}
.bch-honor-wins{background:rgba(242,201,76,.12);color:inherit}
@media (max-width:420px){.bch-tree{--gap:6px}.bch-face-cover,.bch-face-empty .bch-cover{width:80px}.bch-hero h2{font-size:22px}}
@media (prefers-reduced-motion:reduce){.bch-page{scroll-behavior:auto}}
