
:root{
  --ink:#131722;--muted:#6f7686;--page:#f4f6f8;--panel:#fff;--line:#e1e5eb;
  --gold:#ffc34d;--radius:18px;--red:#990000;--orange:#ef6730;
  --aurora:#0f9b0f;--broomfield:#4286f4;--centennial:#dd1818;--denver:#9a6a2f;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:linear-gradient(180deg,#f5f7fa 0,#e9edf2 100%);
  color:var(--ink);font-family:Inter,Arial,sans-serif;min-height:100vh
}
a{color:inherit}
a,button,select{touch-action:manipulation}
.lh-top{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid #dfe3e8;box-shadow:0 2px 13px #1112}
.lh-top-inner{min-height:66px;max-width:1120px;margin:auto;padding:0 14px;display:flex;align-items:center;gap:12px;position:relative}
.lh-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.lh-spinner{font-size:24px;color:#111}
.lh-wordmark{font-weight:950;letter-spacing:.09em;text-transform:uppercase;font-size:17px;text-shadow:2px 2px 6px #999;line-height:1}
.lh-wordmark small{display:block;font-size:8px;letter-spacing:.22em;color:#777;margin-top:6px}
.lh-menu-toggle{margin-left:auto;border:0;background:transparent;padding:12px;cursor:pointer}
.lh-menu-toggle i{font-size:20px}
.lh-drawer{
  display:none;position:absolute;right:12px;top:58px;width:min(228px,calc(100vw - 24px));
  background:linear-gradient(180deg,#fff,#f6f7f9);border:2px solid #111;border-radius:14px;
  box-shadow:0 16px 42px #0004;overflow:hidden;z-index:1200;padding:7px
}

.lh-page-blur{
  position:fixed;inset:66px 0 0;z-index:1100;
  background:rgba(238,241,245,.32);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease
}
.lh-page-blur.open{opacity:1;visibility:visible;pointer-events:auto}
@keyframes drawerIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.drawer-grid{display:grid;grid-template-columns:1fr;gap:4px}
.drawer-grid a{
  min-height:48px;padding:12px 13px;text-decoration:none;border:2px solid #c9ccd2;border-radius:9px;
  display:flex;align-items:center;gap:11px;font-size:12px;font-weight:900;background:#f8f7f4;
  box-shadow:0 2px 8px #17223a0c;transition:transform .15s ease,background .15s ease,color .15s ease
}
.drawer-grid a:hover{transform:translateX(3px);background:#111;color:#fff}
.drawer-grid a i{width:22px;text-align:center;color:#555;font-size:15px}
.drawer-grid a:hover i{color:#fff}
.drawer-grid a.book{background:linear-gradient(to right,#ef6730,#161616);color:#fff}.drawer-grid a.book i{color:#fff}
.drawer-grid a.pass{background:linear-gradient(to right,#702963,#111);color:#fff}.drawer-grid a.pass i{color:#fff}
.drawer-grid a.exit{background:#171717;color:#fff}.drawer-grid a.exit i{color:#fff}

.lh-shell{width:min(100% - 22px,1080px);margin:auto;padding:20px 0 72px}
.section-label{
  display:inline-flex;align-items:center;gap:9px;margin:4px 0 14px;padding:8px 15px;border-radius:7px;
  background:linear-gradient(90deg,#111 0,#2e2e2e 55%,#7f1919 100%);color:#fff;
  font-size:14px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;box-shadow:3px 3px 6px #9996
}
.section-label img{width:25px;height:25px;object-fit:contain}
.rules-label{background:linear-gradient(90deg,#111,#5e1e1e)}
.book-label{background:linear-gradient(90deg,#ef6730,#111)}
.tourney-label{background:linear-gradient(90deg,#9a6a2f,#111)}
.pass-label{background:linear-gradient(90deg,#702963,#111)}
.contact-label{background:linear-gradient(90deg,#4286f4,#111)}
.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px;box-shadow:0 8px 24px #17223a12}

/* FILTERS */
.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.filter label{display:block;margin-bottom:6px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:950;cursor:pointer}
.filter select{width:100%;padding:12px;border:1px solid #cfd4da;border-radius:9px;background:#fff;font-weight:800}
.active-filter{margin-top:9px;font-size:11px;font-weight:850;color:#59606c}
.active-filter .x{margin-left:5px;border:0;background:#111;color:#fff;border-radius:50%;width:20px;height:20px}
.admin-bar{display:none;background:#111;color:#fff;border-radius:9px;padding:10px 13px;margin-top:10px;font-size:11px}
.admin-on .admin-bar{display:block}
#scheduleList{margin-top:24px}

/* SCHEDULE */
.day{margin-bottom:23px}
.day-heading{display:flex;align-items:center;gap:9px;margin:0 5px 9px}
.day-title{margin:0;font-size:14px;font-weight:950}
.day-heading .area{margin-left:6px}
.day-line{height:1px;background:#ccd1d9;flex:1}
.area{
  display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;color:#fff;
  font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.09em;box-shadow:0 3px 8px #0002
}
.area.Aurora{background:linear-gradient(to right,var(--aurora),#000)}
.area.Broomfield{background:linear-gradient(to right,var(--broomfield),#000)}
.area.Centennial{background:linear-gradient(to right,var(--centennial),#000)}
.area.Denver{background:linear-gradient(to right,var(--denver),#000)}
.games{display:grid;gap:10px}

.game{
  position:relative;min-height:112px;perspective:1100px;border-radius:var(--radius);
  filter:drop-shadow(0 11px 18px #17223a32)
}
.game.featured{filter:drop-shadow(0 0 6px #ffc34d85) drop-shadow(0 11px 18px #17223a42)}
.game-flipper{
  position:relative;min-height:112px;transform-style:preserve-3d;
  transition:transform .82s cubic-bezier(.22,.61,.36,1)
}
.game.location-open .game-flipper{transform:rotateY(180deg)}
.game-face{
  position:absolute;inset:0;display:grid;grid-template-columns:82px minmax(0,1fr);
  min-height:112px;overflow:hidden;border:1px solid #ffffff22;border-radius:var(--radius);background:#0b0e13;color:#fff;
  backface-visibility:hidden;-webkit-backface-visibility:hidden
}
.game.featured .game-front{border:2px solid var(--gold);box-shadow:0 0 7px #ffc34d88,0 0 18px #ffc34d3b}
.game-back{
  transform:rotateY(180deg);display:block;padding:0;border:1px solid #ffffff38;
  background:
    linear-gradient(90deg,var(--back1,#333) 0 48%,rgba(0,0,0,.55) 50%,var(--back2,#555) 52% 100%);
}
.game-back:after{
  content:"";position:absolute;inset:0;background:rgba(7,9,12,.80);pointer-events:none
}
.marker{position:absolute;z-index:15;top:4px;left:7px;color:var(--gold);font-size:1.4rem;filter:drop-shadow(0 0 5px #ffc34d)}
.time{
  position:relative;z-index:4;display:flex;align-items:flex-start;justify-content:center;
  padding:39px 4px 10px;border-right:1px solid #ffffff17;background:#0b0e13;
  font-size:.84rem;font-weight:950;white-space:nowrap
}
.matchup{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;padding-bottom:27px}
.team{
  --team:#333;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:0;padding:18px 17px;text-align:center;
  background:linear-gradient(135deg,color-mix(in srgb,var(--team) 82%,#000),color-mix(in srgb,var(--team) 27%,#000))
}
.team + .team{border-left:1px solid #ffffff30}
.team-logo{position:absolute;width:108px;height:108px;object-fit:contain;opacity:.13;pointer-events:none}
.team-name{position:relative;z-index:2;border:0;background:transparent;color:#fff;cursor:pointer;font-size:clamp(.84rem,2vw,1.13rem);font-weight:950;text-shadow:0 2px 10px #000;padding:5px}
.team-record{position:relative;z-index:2;margin-top:2px;color:#d2d6dd;font-size:.64rem;font-weight:850;letter-spacing:.08em}
.vs{
  position:absolute;z-index:9;left:50%;top:43%;display:grid;place-items:center;width:38px;height:38px;
  border:1px solid #ffffff80;border-radius:50%;background:#080a0ef4;color:#fff;font-size:.6rem;font-weight:950;
  transform:translate(-50%,-50%);box-shadow:0 4px 12px #0009
}
.scores{
  position:absolute;z-index:9;left:50%;top:57%;display:grid;grid-template-columns:repeat(2,36px);
  transform:translate(-50%,-50%);filter:drop-shadow(0 4px 7px #0009)
}
.score{
  display:grid;place-items:center;height:32px;border:2px solid #050505;background:#1d2026;color:#aeb3bc;
  font-size:.78rem;font-weight:950;line-height:1
}
.score:first-child{border-radius:8px 0 0 8px}
.score:last-child{border-left:0;border-radius:0 8px 8px 0}
.score.winner{background:var(--gold);color:#111;font-size:.9rem}
.game-meta{
  position:absolute;z-index:10;left:0;right:0;bottom:0;height:28px;display:flex;align-items:center;justify-content:space-between;
  padding:0 9px;background:#080a0ebd;font-size:.62rem;font-weight:900;text-transform:uppercase
}
.grade-link,.gym-link{border:0;background:transparent;padding:2px 0;color:inherit;font:inherit;font-weight:950;cursor:pointer;text-decoration:none}
.grade-link:hover,.gym-link:hover{text-decoration:underline}
.gym-link{letter-spacing:.05em;text-align:right}
.video-link{
  position:absolute;z-index:16;left:41px;top:68px;transform:translateX(-50%);display:grid;place-items:center;
  width:32px;height:32px;border:1px solid #ffffffd2;border-radius:50%;background:#c1c5cc;color:#111;text-decoration:none;
  box-shadow:0 0 10px #ffffff9c,0 4px 12px #0008
}
.video-link:hover{background:#fff;transform:translateX(-50%) scale(1.05)}
.video-link i{font-size:13px}

/* FLIP BACK */
.location-back-inner{
  position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;padding:16px 45px 16px 18px;text-align:center
}
.location-close{
  position:absolute;z-index:4;right:10px;top:10px;width:29px;height:29px;border:1px solid #ffffff80;border-radius:50%;
  background:#111c;color:#fff;font-size:17px;cursor:pointer
}
.location-name{font-size:15px;font-weight:950;margin-bottom:6px}
.location-address{font-size:12px;line-height:1.45;color:#e3e5e9;margin-bottom:11px}
.maps-link{
  display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:9px;background:linear-gradient(90deg,#fff,#d9dde3);
  color:#111;text-decoration:none;font-size:11px;font-weight:950;text-transform:uppercase
}
.schedule-empty{margin-top:14px;padding:28px 18px;border:2px solid #c7cdd6;border-radius:14px;background:#fff;color:#646b77;text-align:center;font-weight:850;box-shadow:0 7px 18px #17223a12}
.schedule-bottom{display:flex;justify-content:center;margin:18px 0 36px}

/* BUTTONS */
.btn{
  border:0;border-radius:9px;padding:12px 16px;text-decoration:none;font-weight:950;text-transform:uppercase;
  letter-spacing:.06em;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer
}
.btn-dark{background:#111;color:#fff}.btn-primary{background:linear-gradient(to right,#ef6730,#000);color:#fff}
.btn-violet{background:linear-gradient(to right,#702963,#111);color:#fff}
.btn-ghost{background:#fff;color:#111;border:1px solid #cdd1d7}
.btn[disabled]{opacity:.48;cursor:not-allowed}

/* BOOK */
.booking-note{font-size:12px;color:#666;line-height:1.5;margin:0}
.booking-list{display:grid;gap:10px;margin-top:14px}
.booking-card{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff;border:1px solid #dfe3e8;border-radius:13px;padding:14px;box-shadow:0 7px 18px #17223a12}
.booking-card strong{display:block}.booking-card small{color:#666}

/* PASS */
.pass-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pass-card{position:relative;overflow:hidden;background:#fff;border:2px solid #111;border-radius:16px;padding:20px;box-shadow:0 9px 24px #17223a18}
.pass-card:after{content:"";position:absolute;width:170px;height:170px;border:20px solid #7029630f;border-radius:50%;right:-70px;bottom:-95px}
.pass-price{font-size:42px;font-weight:1000;letter-spacing:-.04em;margin:4px 0}
.pass-card p{color:#62656b;font-size:13px;line-height:1.5;max-width:450px}
.pass-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:#f4f1f6;border:1px solid #ddd4e3;font-size:12px;color:#555}

/* TOURNAMENTS */
.tourney-grid{display:grid;gap:12px}
.tourney-card{
  position:relative;background:#fff;border:2px solid #111;border-radius:15px;padding:14px 14px 14px 78px;
  box-shadow:0 8px 22px #17223a16;min-height:106px
}
.tourney-icon{position:absolute;left:14px;top:14px;width:48px;height:48px;object-fit:contain}
.tourney-title{font-size:17px;font-weight:1000;text-transform:uppercase;letter-spacing:.02em}
.tourney-date{font-size:12px;color:#666;font-weight:850;margin:3px 0 8px}
.tourney-format{position:absolute;right:12px;top:12px;padding:5px 8px;border-radius:999px;background:#990000;color:#fff;font-size:9px;font-weight:950;text-transform:uppercase}
.division-chips{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0 10px}
.division-chip{padding:4px 7px;border-radius:999px;background:#eff1f4;border:1px solid #d3d7dc;font-size:9px;font-weight:900}
.tourney-actions{display:flex;gap:8px;flex-wrap:wrap}
.bracket-placeholder{font-size:10px;color:#777;align-self:center}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-card{background:#fff;border:1px solid #dfe3e8;border-radius:15px;padding:18px;box-shadow:0 8px 24px #17223a12}
.contact-card i{font-size:24px;margin-bottom:9px;color:#333}.contact-card h3{margin:0 0 5px}
.contact-card p{font-size:12px;color:#666;line-height:1.5}
.faq{margin-top:16px}
.faq details{background:#fff;border:1px solid #dfe3e8;border-radius:11px;margin:7px 0;padding:0 13px;box-shadow:0 4px 12px #17223a0b}
.faq summary{cursor:pointer;padding:13px 0;font-weight:900}
.faq p{font-size:12px;line-height:1.55;color:#555;padding:0 0 13px;margin:0}

/* RULES */
.rules-intro{margin:0 0 15px;color:#555;line-height:1.6;font-size:13px}
.rule-section{background:#fff;border:1px solid #dfe3e8;border-radius:15px;padding:18px;margin:12px 0;box-shadow:0 8px 24px #17223a12}
.rule-section h2{margin:0 0 13px;font-size:16px;text-transform:uppercase;letter-spacing:.07em}
.rule-list{margin:0;padding-left:21px}.rule-list li{margin:0 0 11px;line-height:1.58;font-size:13px;color:#333}
.regional-rule{border-radius:11px;padding:14px;margin:9px 0;color:#fff}
.regional-rule p{margin:6px 0 0;line-height:1.5;font-size:13px}
.regional-rule.Aurora{background:linear-gradient(to right,var(--aurora),#000)}
.regional-rule.Broomfield{background:linear-gradient(to right,var(--broomfield),#000)}
.regional-rule.Centennial{background:linear-gradient(to right,var(--centennial),#000)}
.regional-rule.Denver{background:linear-gradient(to right,var(--denver),#000)}
.rule-tag{font-size:9px;letter-spacing:.11em;text-transform:uppercase;opacity:.85}
.footer{padding:30px 15px 44px;text-align:center;color:#777;font-size:9px;text-transform:uppercase;letter-spacing:.14em}

@media(max-width:760px){
  .filters{grid-template-columns:1fr}
  .game-face{grid-template-columns:74px minmax(0,1fr)}
  .time{font-size:.77rem;padding-top:40px}
  .video-link{left:37px;top:69px}
  .team{padding:17px 13px}.team-logo{width:94px;height:94px}
  .game-meta{font-size:.57rem}
  .pass-grid,.contact-grid{grid-template-columns:1fr}
  .tourney-format{position:static;display:inline-block;margin-top:7px}
}

/* v6 menu + flip safety overrides */
.game:not(.location-open) .game-back{pointer-events:none}
.game.location-open .game-front{pointer-events:none}
.game.location-open .game-back{pointer-events:auto}

.tourney-tagline{font-size:12px;font-weight:800;color:#3d4148;margin:0 0 8px;line-height:1.35}

/* v7 fullscreen menu layering */
.lh-top{
  z-index:1000;
}
.lh-menu-toggle{
  position:fixed;
  top:137px;
  right:34px;
  z-index:3200;
  width:44px;
  height:44px;
  padding:0;
  margin:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:10px;
  background:transparent;
  cursor:pointer;
  transition:background .28s ease, transform .28s ease;
}
.lh-menu-toggle:hover{background:rgba(255,255,255,.75)}
.hamburger-lines{
  width:28px;
  height:22px;
  position:relative;
  display:block;
}
.hamburger-lines span{
  position:absolute;
  left:0;
  width:28px;
  height:4px;
  border-radius:99px;
  background:#1689e6;
  transform-origin:center;
  transition:
    top .34s cubic-bezier(.22,.61,.36,1),
    transform .34s cubic-bezier(.22,.61,.36,1),
    opacity .22s ease,
    background .28s ease;
}
.hamburger-lines span:nth-child(1){top:0}
.hamburger-lines span:nth-child(2){top:9px}
.hamburger-lines span:nth-child(3){top:18px}

body.menu-open .hamburger-lines span{
  background:#111;
}
body.menu-open .hamburger-lines span:nth-child(1){
  top:9px;
  transform:rotate(45deg);
}
body.menu-open .hamburger-lines span:nth-child(2){
  opacity:0;
  transform:scaleX(.2);
}
body.menu-open .hamburger-lines span:nth-child(3){
  top:9px;
  transform:rotate(-45deg);
}

.lh-page-blur{
  position:fixed;
  inset:0;
  z-index:3000;
  background:rgba(245,247,250,.16);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:
    opacity .36s ease,
    visibility .36s ease,
    backdrop-filter .36s ease,
    -webkit-backdrop-filter .36s ease;
}
.lh-page-blur.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.lh-drawer{
  position:fixed;
  top:190px;
  right:25px;
  z-index:3150;
  width:min(228px,calc(100vw - 44px));
  transform:translateY(-10px) scale(.985);
  opacity:0;
  visibility:hidden;
  display:block;
  pointer-events:none;
  transition:
    opacity .34s ease,
    transform .34s cubic-bezier(.22,.61,.36,1),
    visibility .34s ease;
}
.lh-drawer.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
  animation:none;
}

body.menu-open{
  overflow:hidden;
}

@media(max-width:760px){
  .lh-menu-toggle{
    top:139px;
    right:32px;
  }
  .lh-drawer{
    top:191px;
    right:24px;
    width:min(220px,calc(100vw - 42px));
  }
}

/* v8 menu positioning + state styling */
.lh-menu-toggle{
  top:146px !important;
  right:34px !important;
}
.lh-drawer{
  top:194px !important;
  right:24px !important;
}

/* Fan Entry Pass uses normal menu styling */
.drawer-grid a.pass{
  background:#f8f7f4 !important;
  color:#111 !important;
}
.drawer-grid a.pass i{
  color:#555 !important;
}
.drawer-grid a.pass:hover{
  background:#111 !important;
  color:#fff !important;
}
.drawer-grid a.pass:hover i{
  color:#fff !important;
}

/* Tournament division buttons */
.division-chips{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:10px 0 4px;
}
.division-chip{
  appearance:none;
  border:2px solid #c9cdd3;
  padding:8px 11px;
  border-radius:9px;
  background:#e2e5e9;
  color:#6e737b;
  font-size:10px;
  font-weight:950;
  letter-spacing:.03em;
  cursor:default;
  opacity:.78;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.division-chip.live{
  background:#111;
  border-color:#111;
  color:#fff;
  opacity:1;
  cursor:pointer;
  box-shadow:0 4px 10px #0002;
}
.division-chip.live:hover{
  transform:translateY(-1px);
}

/* Fully opaque reverse face */
.game-back{
  background:#101216 !important;
  border:1px solid #2a2d33 !important;
}
.game-back:after{
  display:none !important;
}
.location-back-inner{
  background:#101216 !important;
  opacity:1 !important;
}
.game.location-open .game-front{
  visibility:hidden !important;
  opacity:0 !important;
}
.game-front{
  transition:opacity .15s ease,visibility .15s ease;
}

.game.location-open .game-back{
  background:#101216 !important;
}
.game.location-open .game-back *{
  opacity:1;
}

/* v9 user-confirmed menu position */
.lh-menu-toggle{
  top:10px !important;
  right:20px !important;
}
.lh-drawer{
  top:58px !important;
  right:18px !important;
}

/* tournament buttons + tagline positioning */
.tourney-card{
  display:flex;
  flex-direction:column;
}
.tourney-title,.tourney-date,.division-chips,.tourney-actions,.tourney-format{position:relative;z-index:2}
.tourney-tagline{
  order:10;
  margin-top:auto;
  padding-top:10px;
  font-size:11px !important;
  font-style:italic;
  font-weight:400 !important;
  color:#747880 !important;
  line-height:1.35;
}
.division-chips{
  gap:4px !important;
  flex-wrap:nowrap !important;
}
.division-chip{
  flex:1 1 0;
  min-width:0;
  padding:6px 5px !important;
  font-size:9px !important;
  border-radius:8px !important;
  white-space:nowrap;
}

/* Add Your Team */
.addteam-toolbar{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.addteam-toolbar label{
  display:block;margin-bottom:6px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:950
}
.addteam-toolbar select{
  width:100%;padding:12px;border:1px solid #cfd4da;border-radius:9px;background:#fff;font-weight:800
}
.inventory-list{display:grid;gap:10px;margin-top:18px;padding-bottom:92px}
.inventory-card{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
  align-items:center;
  background:#fff;
  border:1px solid #dfe3e8;
  border-left:6px solid #111;
  border-radius:14px;
  padding:14px;
  box-shadow:0 7px 18px #17223a12
}
.inventory-card.featured{border-color:#d9ae3a;border-left-color:#d9ae3a;box-shadow:0 0 10px #d9ae3a2b,0 7px 18px #17223a12}
.inventory-main strong{font-size:14px}
.inventory-sub{margin-top:5px;font-size:11px;color:#666;line-height:1.45}
.inventory-opponents{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.opponent-chip{
  display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:999px;
  background:#f0f2f4;border:1px solid #d8dce1;font-size:10px;font-weight:900
}
.live-price{
  min-width:80px;
  border:0;
  border-radius:11px;
  padding:13px 12px;
  color:#fff;
  background:linear-gradient(135deg,#1b1b1b,#4b4b4b);
  font-size:16px;
  font-weight:1000;
  cursor:pointer;
  box-shadow:0 5px 12px #0002;
  position:relative;
  overflow:hidden
}
.live-price:before{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-120%);
  background:linear-gradient(90deg,transparent,#ffffff45,transparent)
}
.live-price.resolving:before{animation:priceScan 1.15s ease-in-out infinite}
.live-price.resolving .price-value{opacity:.28}
.live-price.held{background:linear-gradient(135deg,#702963,#111)}
@keyframes priceScan{to{transform:translateX(120%)}}
.price-value{transition:opacity .25s ease}
.hold-note{font-size:9px;color:#777;text-align:center;margin-top:5px}
.cart-bar{
  position:fixed;
  left:50%;bottom:14px;z-index:900;
  transform:translateX(-50%) translateY(120px);
  width:min(620px,calc(100vw - 24px));
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 12px;border-radius:14px;background:#111;color:#fff;
  box-shadow:0 12px 35px #0005;
  transition:transform .32s cubic-bezier(.22,.61,.36,1)
}
.cart-bar.open{transform:translateX(-50%) translateY(0)}
.cart-summary{font-size:11px}
.cart-summary strong{display:block;font-size:14px}
.cart-items-mini{opacity:.7}
.checkout-sheet{
  position:fixed;inset:0;z-index:2500;display:flex;align-items:flex-end;justify-content:center;
  background:rgba(0,0,0,.48);opacity:0;visibility:hidden;pointer-events:none;transition:.28s ease
}
.checkout-sheet.open{opacity:1;visibility:visible;pointer-events:auto}
.checkout-panel{
  width:min(720px,100%);max-height:90vh;overflow:auto;background:#f7f8fa;border-radius:20px 20px 0 0;
  padding:18px;transform:translateY(40px);transition:transform .32s cubic-bezier(.22,.61,.36,1)
}
.checkout-sheet.open .checkout-panel{transform:translateY(0)}
.checkout-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.checkout-close{border:0;background:#111;color:#fff;border-radius:50%;width:31px;height:31px;font-size:18px}
.identity-grid{display:grid;grid-template-columns:2fr 2fr 1fr;gap:9px}
.identity-grid input{width:100%;padding:11px;border:1px solid #cfd4da;border-radius:9px}
.checkout-game{
  background:#fff;border:1px solid #dfe3e8;border-radius:12px;padding:12px;margin-top:10px
}
.checkout-game h4{margin:0 0 7px}
.opponent-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.opponent-option{
  border:2px solid #d8dce2;background:#f4f5f6;border-radius:10px;padding:10px;text-align:left;cursor:pointer
}
.opponent-option.selected{border-color:#111;background:#111;color:#fff}
.opponent-option small{display:block;opacity:.7;margin-top:3px}
.featured-lock{
  margin-top:8px;padding:10px;border-radius:10px;background:#fff7dc;border:1px solid #e4c766;font-size:11px;font-weight:800
}
.checkout-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:15px}
@media(max-width:760px){
  .addteam-toolbar,.identity-grid{grid-template-columns:1fr}
  .inventory-card{grid-template-columns:1fr auto}
  .division-chip{font-size:8px !important;padding:6px 3px !important}
}

/* v10 user-confirmed menu position */
.lh-menu-toggle{
  top:10px !important;
  right:20px !important;
}
.lh-drawer{
  top:58px !important;
  right:18px !important;
}

/* compact filters */
.filter label,
.addteam-toolbar label{
  display:none !important;
}
.filters,
.addteam-toolbar{
  align-items:end;
}
.filters select,
.addteam-toolbar select{
  min-height:44px;
}

/* tournament spacing and sizing */
.tourney-card{
  display:flex;
  flex-direction:column;
}
.tourney-format{
  position:static !important;
  display:inline-flex !important;
  width:max-content !important;
  max-width:100%;
  align-self:flex-start;
  margin:10px 0 13px !important;
  padding:6px 10px !important;
}
.division-chips{
  margin:0 0 15px !important;
  gap:4px !important;
  flex-wrap:nowrap !important;
}
.division-chip{
  flex:1 1 0;
  min-width:0;
  padding:5px 4px !important;
  font-size:8.5px !important;
  border-radius:8px !important;
  white-space:nowrap;
}
.tourney-actions{
  margin:0 0 15px;
}
.tourney-tagline{
  order:10;
  margin-top:auto !important;
  padding-top:8px !important;
  font-size:11px !important;
  font-style:italic;
  font-weight:400 !important;
  color:#747880 !important;
  line-height:1.35;
}

/* Add Your Team */
.addteam-toolbar{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.addteam-toolbar select{
  width:100%;
  padding:12px;
  border:1px solid #cfd4da;
  border-radius:9px;
  background:#fff;
  font-weight:800;
}
.logo-upload{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.logo-upload input[type=file]{
  width:100%;
  min-width:0;
  padding:8px;
  border:1px solid #cfd4da;
  border-radius:9px;
  background:#fff;
  font-size:11px;
}
.logo-preview{
  width:44px;
  height:44px;
  flex:0 0 44px;
  border-radius:10px;
  border:1px solid #d2d6dc;
  background:#f0f2f4;
  object-fit:contain;
  display:none;
}
.logo-preview.show{display:block}

@media(max-width:760px){
  .addteam-toolbar{grid-template-columns:1fr}
  .division-chip{font-size:8px !important;padding:5px 3px !important}
}

/* v11 Add Your Team card hierarchy */
.inventory-card{
  border-left-width:7px !important;
  padding:0 !important;
  overflow:hidden;
}
.inventory-card.city-Aurora{border-left-color:var(--aurora) !important}
.inventory-card.city-Broomfield{border-left-color:var(--broomfield) !important}
.inventory-card.city-Centennial{border-left-color:var(--centennial) !important}
.inventory-card.city-Denver{border-left-color:var(--denver) !important}

.inventory-body{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:13px 14px 14px;
}
.inventory-city{
  display:block;
  width:100%;
  padding:8px 13px;
  color:#fff;
  font-size:11px;
  font-weight:1000;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.inventory-city.Aurora{background:linear-gradient(90deg,var(--aurora),#0c2a13)}
.inventory-city.Broomfield{background:linear-gradient(90deg,var(--broomfield),#10243f)}
.inventory-city.Centennial{background:linear-gradient(90deg,var(--centennial),#3b1010)}
.inventory-city.Denver{background:linear-gradient(90deg,var(--denver),#33230f)}
.inventory-date{
  font-size:14px;
  font-weight:1000;
  letter-spacing:-.015em;
  margin-bottom:4px;
}
.inventory-sub{
  margin-top:0 !important;
}
.inventory-protected{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:7px;
  padding:4px 7px;
  border-radius:999px;
  background:#f3f4f6;
  border:1px solid #d9dde2;
  color:#777;
  font-size:9px;
  font-weight:900;
}
.identity-grid{
  grid-template-columns:2fr 2fr !important;
}
.live-price{
  min-width:80px;
}
.live-price .price-value{
  display:inline-block;
  min-width:42px;
}
@media(max-width:760px){
  .inventory-body{grid-template-columns:minmax(0,1fr) auto}
  .identity-grid{grid-template-columns:1fr !important}
}

/* v12 Add Your Team layout refinements */
.inventory-card{
  display:block !important;
}
.inventory-meta{
  padding:12px 14px 10px;
  background:#fff;
}
.inventory-date{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:14px;
  font-weight:1000;
  margin:0 0 3px;
}
.inventory-sub{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:11px;
  color:#666;
}
.inventory-city{
  margin:0;
}
.inventory-body{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:12px;
  align-items:center;
  padding:11px 14px 13px !important;
}
.inventory-opponents{
  display:flex;
  flex-wrap:nowrap !important;
  gap:6px;
  min-width:0;
  overflow:hidden;
  margin:0 !important;
}
.opponent-chip{
  flex:0 1 auto;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.inventory-price-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.inventory-protected{
  display:none !important;
}
.unhold-btn{
  margin-top:6px;
  border:1px solid #bbbfc6;
  background:#f3f4f6;
  color:#333;
  border-radius:8px;
  padding:5px 8px;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}
.unhold-btn:hover{background:#e7e9ec}
.cart-remove{
  border:0;
  background:transparent;
  color:#fff;
  opacity:.75;
  font-size:18px;
  line-height:1;
  cursor:pointer;
  padding:5px 7px;
}
.cart-remove:hover{opacity:1}
.cart-mini-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.cart-divisions{
  opacity:.72;
}
@media(max-width:760px){
  .inventory-date{font-size:13px}
  .inventory-sub{font-size:10px}
  .inventory-body{grid-template-columns:minmax(0,1fr) auto !important}
  .opponent-chip{font-size:9px;padding:5px 6px}
}

/* v13 city badge sizing + independent price alignment */
.inventory-city{
  display:inline-flex !important;
  width:auto !important;
  max-width:32% !important;
  align-self:flex-start !important;
  margin:0 0 0 0 !important;
  padding:7px 13px !important;
  border-radius:0 0 8px 0;
  white-space:nowrap;
}
.inventory-body{
  position:relative;
  min-height:70px;
}
.inventory-price-wrap{
  align-self:center !important;
  justify-self:end !important;
}
@media(max-width:760px){
  .inventory-city{
    max-width:42% !important;
  }
}

/* v14 compact Add Your Team vertical rhythm */
.inventory-card{
  position:relative;
}
.inventory-meta{
  padding:9px 14px 7px !important;
}
.inventory-date{
  margin-bottom:2px !important;
  line-height:1.1;
}
.inventory-sub{
  line-height:1.15;
}
.inventory-city{
  margin-top:7px !important;
  margin-bottom:7px !important;
  padding-top:6px !important;
  padding-bottom:6px !important;
}
.inventory-body{
  min-height:48px !important;
  padding:7px 14px 8px !important;
  align-items:center !important;
}
.inventory-opponents{
  margin:0 !important;
  align-items:center;
}
.opponent-chip{
  padding:4px 6px !important;
}
.inventory-price-wrap{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
}
.inventory-meta,
.inventory-city,
.inventory-body{
  padding-right:108px !important;
}
@media(max-width:760px){
  .inventory-price-wrap{
    right:12px;
  }
  .inventory-meta,
  .inventory-city,
  .inventory-body{
    padding-right:102px !important;
  }
}

/* v15 user-tested price alignment */
.inventory-price-wrap{
  position:absolute !important;
  right:14px !important;
  top:-28% !important;
  transform:translateY(-50%) !important;
  z-index:3 !important;
}

/* v17 Brackets / Monthly Tournament */
.tournament-shell{padding-bottom:96px}
.tourney-card{
  transition:border-color .25s ease,background .25s ease,box-shadow .25s ease,transform .25s ease;
}
.tourney-card.live-now{
  border:2px solid #990000 !important;
  background:linear-gradient(135deg,#fff7f7,#fff 58%,#f4eded) !important;
  box-shadow:0 0 0 3px #99000018,0 10px 28px #43000022 !important;
}
.tourney-card.past-event{
  opacity:.74;
  filter:saturate(.72);
}
.tourney-status{
  display:inline-flex;
  width:max-content;
  padding:4px 8px;
  border-radius:999px;
  font-size:8px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-left:6px;
  background:#eceff2;
  color:#70757d;
}
.tourney-card.live-now .tourney-status{background:#990000;color:#fff}
.tourney-bracket-list{display:grid;gap:7px;margin:0 0 14px}
.tourney-bracket-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 82px;
  gap:7px;
  align-items:center;
}
.bracket-link{
  min-height:35px;
  padding:7px 9px;
  border:1px solid #cfd3d8;
  border-radius:9px;
  background:#e7e9ec;
  color:#5f646b;
  font-size:9px;
  font-weight:950;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.bracket-link.live{
  background:#111;
  color:#fff;
  border-color:#111;
  box-shadow:0 4px 10px #0002;
}
.bracket-link.archive:after{
  content:" • ARCHIVE";
  font-size:7px;
  opacity:.58;
}
.tourney-price{
  min-height:35px;
  border:0;
  border-radius:9px;
  background:linear-gradient(135deg,#8c0000,#111);
  color:#fff;
  font-size:13px;
  font-weight:1000;
  cursor:pointer;
  position:relative;
  overflow:hidden;
}
.tourney-price:before{
  content:"";position:absolute;inset:0;transform:translateX(-120%);
  background:linear-gradient(90deg,transparent,#ffffff45,transparent)
}
.tourney-price.resolving:before{animation:priceScan 1.05s ease-in-out infinite}
.tourney-price.held{background:#333}
.tourney-card.live-now .tourney-price,
.tourney-card.past-event .tourney-price{display:none}
.tourney-lock-note{
  font-size:9px;color:#8a1b1b;font-weight:900;margin:2px 0 12px
}
.tourney-cart-item{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  background:#fff;
  border:1px solid #dfe3e8;
  border-radius:11px;
  padding:11px;
  margin-top:8px;
}
.tourney-cart-item strong{display:block;font-size:12px}
.tourney-cart-item small{display:block;color:#777;margin-top:3px}
.promo-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px}
.promo-row input{padding:11px;border:1px solid #ccd1d7;border-radius:9px}
.promo-status{font-size:10px;margin-top:6px;color:#666;min-height:14px}
.bracket-filters{grid-template-columns:1fr 1fr}
.bracket-era-live{color:#990000;font-weight:950}
.bracket-era-archive{color:#666;font-weight:850}
.tourney-game-card{
  border:1px solid #d6d9df;
  border-radius:13px;
  background:#111;
  color:#fff;
  overflow:hidden;
  display:grid;
  grid-template-columns:88px 1fr;
  min-height:88px;
  margin:8px 0;
}
.tourney-game-time{
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-size:12px;font-weight:950;background:#050505;border-right:1px solid #ffffff24;padding:8px
}
.tourney-game-main{padding:12px;position:relative}
.tourney-game-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;font-size:13px;font-weight:950}
.tourney-game-teams span:nth-child(3){text-align:right}
.tourney-game-vs{font-size:9px;opacity:.55}
.tourney-game-meta{margin-top:8px;font-size:9px;color:#bbb}
@media(max-width:640px){
  .tourney-bracket-row{grid-template-columns:minmax(0,1fr) 74px}
  .bracket-filters{grid-template-columns:1fr}
}

/* v18 team identity + name collision / overflow */
.team-name{
  max-width:100%;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:clamp(10px,2.8vw,15px);
}
.matchup .team{
  min-width:0;
}
.opponent-chip,
.opponent-option{
  min-width:0;
}
.opponent-option strong,
.identity-team-name{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tourney-game-teams span:not(.tourney-game-vs){
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:clamp(10px,2.6vw,13px);
}
.identity-grid{
  grid-template-columns:1fr 1fr !important;
}
.identity-matches{
  display:none;
  margin-top:10px;
  padding:10px;
  border:1px solid #cfd4da;
  border-radius:11px;
  background:#fff;
}
.identity-matches.show{display:block}
.identity-matches-title{
  font-size:10px;
  font-weight:950;
  margin-bottom:8px;
  color:#444;
}
.identity-choice-list{
  display:grid;
  gap:6px;
}
.identity-choice{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  text-align:left;
  border:1px solid #d7dbe0;
  border-radius:9px;
  padding:8px 9px;
  background:#f7f8f9;
  cursor:pointer;
}
.identity-choice:hover,
.identity-choice.selected{
  background:#111;
  color:#fff;
  border-color:#111;
}
.identity-choice small{
  display:block;
  opacity:.65;
  margin-top:2px;
}
.identity-choice-record{
  font-size:10px;
  font-weight:950;
  white-space:nowrap;
}
.identity-new{
  margin-top:7px;
  border:0;
  background:transparent;
  text-decoration:underline;
  color:#555;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.identity-note{
  margin-top:7px;
  font-size:9px;
  color:#777;
  line-height:1.35;
}
@media(max-width:640px){
  .identity-grid{grid-template-columns:1fr !important}
}

/* v19 mobile admin */
.admin-shell{padding-bottom:90px}
.admin-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:0 0 12px;padding:10px 12px;border:1px solid #d9dde2;border-radius:12px;background:#fff
}
.admin-toolbar strong{font-size:12px}
.admin-toolbar small{display:block;color:#777;margin-top:2px}
.admin-logout{border:0;background:#111;color:#fff;border-radius:9px;padding:8px 10px;font-size:9px;font-weight:950}
.admin-list{display:grid;gap:10px}
.admin-game{
  background:#fff;border:1px solid #d8dce2;border-radius:14px;overflow:hidden;
  box-shadow:0 6px 18px #17223a10
}
.admin-game-head{
  display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;
  padding:9px 11px;background:#111;color:#fff
}
.admin-game-time{font-size:11px;font-weight:950;white-space:nowrap}
.admin-game-meta{min-width:0;font-size:9px;color:#cfd2d7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-matchup{
  display:grid;grid-template-columns:minmax(0,1fr) 58px 24px 58px minmax(0,1fr);
  gap:6px;align-items:center;padding:12px 10px 8px
}
.admin-team{
  min-width:0;font-size:11px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.admin-team.right{text-align:right}
.admin-score{
  width:58px;height:42px;border:2px solid #cfd3d9;border-radius:9px;
  text-align:center;font-size:18px;font-weight:1000;background:#fafafa
}
.admin-vs{text-align:center;font-size:9px;color:#888;font-weight:950}
.admin-video-row{display:grid;grid-template-columns:1fr auto;gap:7px;padding:0 10px 10px}
.admin-video{
  min-width:0;padding:10px;border:1px solid #d5d9df;border-radius:9px;font-size:11px
}
.admin-save{
  border:0;border-radius:9px;padding:0 13px;background:linear-gradient(135deg,#8f0000,#111);
  color:#fff;font-size:10px;font-weight:1000;min-width:58px
}
.admin-save.saving{opacity:.6}
.admin-save.saved{background:#111}
.admin-status-msg{
  padding:0 10px 10px;font-size:9px;min-height:11px;color:#666
}
.admin-empty{padding:28px;text-align:center;border:2px solid #d8dde3;border-radius:14px;background:#fff;color:#666;font-weight:850}
.admin-login-card{
  max-width:420px;margin:28px auto;background:#fff;border:1px solid #d8dde2;border-radius:15px;padding:18px;
  box-shadow:0 10px 25px #00000014
}
.admin-login-card input{width:100%;padding:12px;border:1px solid #ccd1d7;border-radius:9px;margin:10px 0}
.admin-login-card button{width:100%;padding:12px;border:0;border-radius:9px;background:#111;color:#fff;font-weight:950}
.admin-login-error{font-size:10px;color:#990000;margin-top:8px}
.admin-filter-note{
  font-size:9px;color:#777;margin:0 0 11px;padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.tourney-video-link{
  position:absolute;right:9px;bottom:9px;width:30px;height:30px;border-radius:50%;
  display:grid;place-items:center;background:#fff;color:#111;text-decoration:none;font-size:9px
}

.bracket-filters-three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:640px){.bracket-filters-three{grid-template-columns:1fr}}


/* v22 current-page menu highlight */
.drawer-grid a{
  background:#f8f7f4 !important;
  color:#111 !important;
}
.drawer-grid a i{
  color:#555 !important;
}

/* Current page uses the same visual family as its page header. */
.drawer-grid a.active-menu{
  color:#fff !important;
  border-color:transparent !important;
  box-shadow:0 5px 12px #0002;
}
.drawer-grid a.active-menu i{color:#fff !important}

.drawer-grid a.active-schedule{
  background:linear-gradient(90deg,#111 0%,#2b1717 55%,#8b1d17 100%) !important;
}
.drawer-grid a.active-book{
  background:linear-gradient(90deg,#c65a1e 0%,#7d3414 55%,#111 100%) !important;
}
.drawer-grid a.active-brackets{
  background:linear-gradient(90deg,#8b0000 0%,#4a1111 55%,#111 100%) !important;
}
.drawer-grid a.active-pass{
  background:linear-gradient(90deg,#6d3f77 0%,#40264a 55%,#111 100%) !important;
}
.drawer-grid a.active-contact{
  background:linear-gradient(90deg,#4e5968 0%,#2f3741 55%,#111 100%) !important;
}
.drawer-grid a.active-rules{
  background:linear-gradient(90deg,#444 0%,#242424 55%,#111 100%) !important;
}

/* Main Site is always black, active state irrelevant. */
.drawer-grid a.exit{
  background:#111 !important;
  color:#fff !important;
  border-color:#111 !important;
}
.drawer-grid a.exit i{color:#fff !important}

/* Remove the old permanent special-state treatment from Add Your Team / Fan Entry. */
.drawer-grid a.book:not(.active-menu),
.drawer-grid a.pass:not(.active-menu){
  background:#f8f7f4 !important;
  color:#111 !important;
  border-color:#c9ccd2 !important;
}
.drawer-grid a.book:not(.active-menu) i,
.drawer-grid a.pass:not(.active-menu) i{
  color:#555 !important;
}

/* v23 unified page/menu color system */
:root{
  --lh-red:#9b1c1c;
  --lh-gold:#a97812;
  --lh-orange:#c8641b;
  --lh-purple:#6d3f77;
  --lh-blue:#2f6fb0;
  --lh-green:#2f7a3d;
}

/* Active menu item color matches page color */
.drawer-grid a.active-schedule{
  background:linear-gradient(90deg,#111 0%,#471313 58%,var(--lh-red) 100%) !important;
}
.drawer-grid a.active-brackets{
  background:linear-gradient(90deg,#111 0%,#5d4510 58%,var(--lh-gold) 100%) !important;
}
.drawer-grid a.active-book{
  background:linear-gradient(90deg,#111 0%,#6f3510 58%,var(--lh-orange) 100%) !important;
}
.drawer-grid a.active-pass{
  background:linear-gradient(90deg,#111 0%,#40264a 58%,var(--lh-purple) 100%) !important;
}
.drawer-grid a.active-contact{
  background:linear-gradient(90deg,#111 0%,#183d66 58%,var(--lh-blue) 100%) !important;
}
.drawer-grid a.active-rules{
  background:linear-gradient(90deg,#111 0%,#1f4f28 58%,var(--lh-green) 100%) !important;
}

/* Page section headers use the same matching color */
.section-label{
  color:#fff !important;
  border-color:transparent !important;
}
.section-label:not(.tourney-label):not(.book-label):not(.pass-label):not(.contact-label):not(.rules-label){
  background:linear-gradient(90deg,#111 0%,#471313 58%,var(--lh-red) 100%) !important;
}
.tourney-label{
  background:linear-gradient(90deg,#111 0%,#5d4510 58%,var(--lh-gold) 100%) !important;
}
.book-label{
  background:linear-gradient(90deg,#111 0%,#6f3510 58%,var(--lh-orange) 100%) !important;
}
.pass-label{
  background:linear-gradient(90deg,#111 0%,#40264a 58%,var(--lh-purple) 100%) !important;
}
.contact-label{
  background:linear-gradient(90deg,#111 0%,#183d66 58%,var(--lh-blue) 100%) !important;
}
.rules-label{
  background:linear-gradient(90deg,#111 0%,#1f4f28 58%,var(--lh-green) 100%) !important;
}

/* Schedule header specifically red */
.schedule-label{
  background:linear-gradient(90deg,#111 0%,#471313 58%,var(--lh-red) 100%) !important;
}

/* v24 exact shared menu/page color vibes */
:root{
  --lh-red:#9b1c1c;
  --lh-gold:#a97812;
  --lh-orange:#c8641b;
  --lh-purple:#6d3f77;
  --lh-blue:#2f6fb0;
  --lh-green:#2f7a3d;
}

/* Active menu */
.drawer-grid a.active-schedule,
.schedule-label{
  background:linear-gradient(90deg,#111 0%,#471313 58%,var(--lh-red) 100%) !important;
  color:#fff !important;
}
.drawer-grid a.active-brackets,
.tourney-label{
  background:linear-gradient(90deg,#111 0%,#5d4510 58%,var(--lh-gold) 100%) !important;
  color:#fff !important;
}
.drawer-grid a.active-book,
.book-label{
  background:linear-gradient(90deg,#111 0%,#6f3510 58%,var(--lh-orange) 100%) !important;
  color:#fff !important;
}
.drawer-grid a.active-pass,
.pass-label{
  background:linear-gradient(90deg,#111 0%,#40264a 58%,var(--lh-purple) 100%) !important;
  color:#fff !important;
}
.drawer-grid a.active-contact,
.contact-label{
  background:linear-gradient(90deg,#111 0%,#183d66 58%,var(--lh-blue) 100%) !important;
  color:#fff !important;
}
.drawer-grid a.active-rules,
.rules-label{
  background:linear-gradient(90deg,#111 0%,#1f4f28 58%,var(--lh-green) 100%) !important;
  color:#fff !important;
}

/* Keep icons and borders coherent in both places. */
.drawer-grid a.active-menu,
.section-label.schedule-label,
.section-label.tourney-label,
.section-label.book-label,
.section-label.pass-label,
.section-label.contact-label,
.section-label.rules-label{
  border-color:transparent !important;
  box-shadow:0 5px 12px #0002;
}
.drawer-grid a.active-menu i,
.section-label.schedule-label i,
.section-label.tourney-label i,
.section-label.book-label i,
.section-label.pass-label i,
.section-label.contact-label i,
.section-label.rules-label i{
  color:#fff !important;
}

/* Main Site is always black. */
.drawer-grid a.exit{
  background:#111 !important;
  color:#fff !important;
  border-color:#111 !important;
}
.drawer-grid a.exit i{color:#fff !important}



.drawer-grid a.active-rules,
.rules-label{
  background:linear-gradient(90deg,#111 0%,#34373b 58%,var(--lh-rules-gray) 100%) !important;
  color:#fff !important;
  border-color:transparent !important;
}

.drawer-grid a.active-rules i,
.rules-label i{
  color:#fff !important;
}

/* v26 authoritative Rules color treatment */
body .drawer-grid a.active-rules{
  background:#111 !important;
  background-image:linear-gradient(90deg,#111 0%,#34373b 58%,#73777c 100%) !important;
  color:#fff !important;
  border-color:transparent !important;
}

body main.lh-shell .section-label.rules-label{
  background:#111 !important;
  background-image:linear-gradient(90deg,#111 0%,#34373b 58%,#73777c 100%) !important;
  color:#fff !important;
  border-color:transparent !important;
  box-shadow:0 5px 12px #0002 !important;
}

body .drawer-grid a.active-rules i,
body main.lh-shell .section-label.rules-label i{
  color:#fff !important;
}

/* v33 social/header/cart refinements */
.section-heading-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 14px;
}
.section-heading-row .section-label{margin:0}
.section-action{
  display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 14px;border-radius:8px;
  text-decoration:none;font-size:11px;font-weight:1000;letter-spacing:.07em;white-space:nowrap;box-shadow:0 4px 10px #0002;
}
.section-action-book{background:linear-gradient(90deg,#111,#ef6730);color:#fff}
.section-action-book:hover{filter:brightness(1.08)}
.checkout-game{position:relative;padding-right:48px}
.cart-remove{
  border:0;background:#111;color:#fff;border-radius:50%;width:30px;height:30px;font-size:20px;line-height:1;
  display:inline-grid;place-items:center;cursor:pointer;font-weight:800;
}
.checkout-game-remove{position:absolute;right:10px;top:10px}
.tourney-cart-item .cart-remove{justify-self:end}
@media(max-width:520px){
  .section-heading-row{gap:8px}
  .section-action{font-size:9px;padding:7px 10px;min-height:34px}
}

/* v34 cart height + persistent menu button */
.checkout-sheet{
  align-items:flex-start !important;
  padding:72px 12px 14px !important;
  overflow:hidden !important;
}
.checkout-panel{
  width:min(720px,100%) !important;
  max-height:calc(100vh - 92px) !important;
  overflow-y:auto !important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  border-radius:20px !important;
  padding:18px !important;
}
.checkout-top{
  position:sticky;
  top:-18px;
  z-index:8;
  margin:-18px -18px 12px !important;
  padding:18px 18px 12px !important;
  background:#f7f8fa;
  border-radius:20px 20px 0 0;
}
.checkout-close{
  position:relative;
  z-index:9;
  flex:0 0 auto;
}

.lh-menu-toggle{
  border:1px solid rgba(0,0,0,.20) !important;
  background:rgba(255,255,255,.94) !important;
  box-shadow:0 5px 14px rgba(0,0,0,.22) !important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.lh-menu-toggle:hover{
  background:#fff !important;
  box-shadow:0 7px 18px rgba(0,0,0,.27) !important;
}
.hamburger-lines span{
  background:#111 !important;
}
body.menu-open .hamburger-lines span{
  background:#111 !important;
}

@media(max-width:520px){
  .checkout-sheet{padding:66px 8px 10px !important}
  .checkout-panel{max-height:calc(100vh - 78px) !important;padding:16px !important}
  .checkout-top{top:-16px;margin:-16px -16px 10px !important;padding:16px 16px 10px !important}
}


/* v35 heading refinements */
.section-heading-row{
  padding-left:2px;
  padding-right:8px;
}
.section-action-book-small{
  min-height:30px !important;
  padding:6px 10px !important;
  font-size:9px !important;
  letter-spacing:.055em !important;
  border-radius:7px !important;
}
.tourney-heading-row{
  display:flex;
  align-items:center;
  gap:22px;
  margin:4px 0 14px;
}
.tourney-heading-row .section-label{
  margin:0;
}
.tourney-deadline{
  color:#8a8a8a;
  font-size:12px;
  font-weight:500;
  font-style:italic;
  letter-spacing:.015em;
  white-space:nowrap;
}
@media(max-width:520px){
  .section-heading-row{padding-right:4px}
  .section-action-book-small{
    min-height:28px !important;
    padding:5px 8px !important;
    font-size:8px !important;
  }
  .tourney-heading-row{gap:14px}
  .tourney-deadline{font-size:10px}
}

/* V36 contact/rules heading alignment */
.contact-card-heading{display:flex;align-items:center;gap:10px;margin-bottom:5px}
.contact-card-heading i{font-size:24px;margin:0;color:#333;flex:0 0 auto}
.contact-card-heading h3{margin:0}
.rule-section h2{display:flex;align-items:center;gap:9px}
.rule-section h2 i{width:18px;flex:0 0 18px;text-align:center;color:#4b4f55;font-size:15px}


/* v39 mobile form usability + logo picker */
.identity-grid input,
.promo-row input{
  font-size:16px !important;
  line-height:1.25;
}
.logo-picker-wrap{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  min-width:0;
}
.logo-picker-btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:44px;
  padding:10px 13px;
  border:1px solid #cfd4da;
  border-radius:9px;
  background:#fff;
  color:#111;
  font-size:14px;
  font-weight:850;
  cursor:pointer;
  box-shadow:0 3px 10px #0000000d;
}
.logo-picker-note{font-size:10px;color:#777;font-style:italic;padding-left:2px}
.logo-upload input[type=file]{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
@media(max-width:760px){
  .identity-grid input,
  .promo-row input,
  .addteam-toolbar select{font-size:16px !important}
  .logo-upload{align-items:center}
}

.logo-optional{font-weight:700;opacity:.68;font-size:.86em}


/* V43 tournament identity + logo UX */
#tourneyIdentityMatches .identity-choice{
  grid-template-columns:auto minmax(0,1fr) auto;
  min-height:50px;
}
.identity-choice-logo{
  width:34px;
  height:34px;
  object-fit:contain;
  border-radius:8px;
  background:#fff;
  border:1px solid #d7dbe0;
  padding:3px;
}
.identity-new{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin-top:7px;
  padding:9px 11px;
  border:1px dashed #aeb4bc;
  border-radius:9px;
  background:#f7f8f9;
  color:#333;
  text-decoration:none;
  font-size:11px;
  font-weight:950;
  cursor:pointer;
}
.identity-new::before{
  content:'+';
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  margin-right:9px;
  border-radius:50%;
  background:#fff;
  border:1px solid #c8cdd3;
  font-size:16px;
  line-height:1;
}
.identity-new:hover,
.identity-new.selected{
  background:#111;
  color:#fff;
  border-color:#111;
  border-style:solid;
}
.identity-new.selected::before{background:#fff;color:#111;border-color:#fff}
#tourneyIdentityMatches .identity-team-name{font-weight:950}
#tourneyLogoNote{max-width:230px;line-height:1.25}


/* V44 tournament capacity + current field */
.tourney-bracket-row{
  grid-template-columns:minmax(0,1fr) 58px 82px !important;
}
.tourney-slots{
  min-height:35px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:5px 6px;
  border:1px solid #d3d7dc;
  border-radius:9px;
  background:#fff;
  color:#555d67;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.05em;
  white-space:nowrap;
}
.tourney-slots.full{
  background:#252525;
  border-color:#252525;
  color:#fff;
}
.tourney-price.full{
  background:#252525 !important;
  color:#fff;
  cursor:not-allowed;
  opacity:.92;
}
.tourney-field-panel{
  margin:12px 0 10px;
  padding:14px;
  border:1px solid #d8dde3;
  border-radius:16px;
  background:linear-gradient(145deg,#fff,#f3f5f7);
  box-shadow:0 9px 24px #17223a12;
}
.field-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:11px;
}
.field-head>div{
  min-width:0;
}
.field-head strong{
  display:block;
  margin-top:2px;
  font-size:13px;
  line-height:1.15;
}
.field-kicker{
  display:block;
  color:#7a8088;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.14em;
}
.field-count{
  flex:0 0 auto;
  padding:7px 9px;
  border-radius:999px;
  background:#eceff2;
  color:#555d67;
  font-size:9px;
  font-weight:1000;
  white-space:nowrap;
}
.field-count.full{background:#111;color:#fff}
.entered-team-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.entered-team{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border:1px solid #e0e4e8;
  border-radius:11px;
  background:#fff;
}
.entered-team-logo{
  width:34px;height:34px;flex:0 0 34px;
  display:grid;place-items:center;
  overflow:hidden;
  border-radius:9px;
  background:#f0f2f4;
  color:#777;
}
.entered-team-logo img{width:100%;height:100%;object-fit:contain}
.entered-team-copy{min-width:0}
.entered-team-copy strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
}
.entered-team-copy small{
  display:block;
  margin-top:2px;
  color:#8a9097;
  font-size:7px;
  font-weight:800;
}
.entered-team-empty{
  grid-column:1/-1;
  padding:9px 3px;
  color:#777;
  font-size:10px;
  font-weight:800;
}
.bracket-history-note{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:0 0 14px;
  padding:11px 13px;
  border-left:3px solid #777;
  border-radius:9px;
  background:#f1f3f5;
  color:#555d65;
  font-size:10px;
  line-height:1.4;
}
.bracket-history-note i{margin-top:2px;color:#777}
.bracket-history-note strong{color:#30343a}
@media(max-width:680px){
  .tourney-bracket-row{grid-template-columns:minmax(0,1fr) 52px 72px !important}
  .tourney-slots{font-size:7px;padding-inline:4px}
  .entered-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .field-head{align-items:flex-start}
  .field-head strong{font-size:11px}
}


/* V47 T-14 tournament lock controls */
.tournament-lock-panel{
  margin:10px 0 14px;
  padding:13px;
  border:1px solid #d6d9de;
  border-radius:14px;
  background:linear-gradient(145deg,#fff,#f4f5f7);
  box-shadow:0 8px 22px #12182610;
}
.lock-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.lock-head span{
  display:block;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.14em;
  color:#8a6a17;
}
.lock-head strong{
  display:block;
  margin-top:2px;
  font-size:13px;
}
.lock-head button,.lock-now{
  border:0;
  border-radius:9px;
  padding:9px 11px;
  font-size:9px;
  font-weight:1000;
  letter-spacing:.05em;
  cursor:pointer;
}
.lock-head button{background:#111;color:#fff}
.lock-preview-body{
  margin-top:10px;
  color:#5e636b;
  font-size:10px;
  line-height:1.35;
}
.lock-date{
  padding-bottom:8px;
  font-weight:900;
  color:#34383e;
}
.lock-counts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}
.lock-counts span{
  padding:7px 5px;
  border:1px solid #e0e2e5;
  border-radius:8px;
  background:#fff;
  text-align:center;
  font-size:8px;
}
.lock-counts b{display:block;font-size:8px;color:#30343a}
.lock-plan{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-top:8px;
  padding:8px 0;
  font-weight:850;
}
.lock-now{
  width:100%;
  margin-top:4px;
  background:linear-gradient(90deg,#111,#9a6a2f);
  color:#fff;
}
.lock-wait{
  margin-top:4px;
  padding:8px;
  border-radius:8px;
  background:#eceff2;
  color:#6f747c;
  font-size:9px;
  font-weight:800;
}
.lock-success{
  margin-top:7px;
  padding:8px;
  border-radius:8px;
  background:#e9f6ec;
  color:#246b36;
  font-size:9px;
  font-weight:950;
}
@media(max-width:620px){
  .lock-counts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lock-plan{flex-direction:column;gap:3px}
}


/* V48 upcoming tournament date + explicit early-test override */
.next-tournament-date{
  display:flex;
  align-items:center;
  gap:11px;
  margin:0 0 10px;
  padding:12px 14px;
  border:1px solid #d8bd74;
  border-radius:13px;
  background:linear-gradient(135deg,#fff8df,#f1dfaa);
  box-shadow:0 8px 20px #9a6a2f1c;
  color:#4c3a0b;
}
.next-tournament-date i{
  flex:0 0 auto;
  font-size:18px;
  color:#9a6a2f;
}
.next-tournament-date div{min-width:0}
.next-tournament-date span{
  display:block;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.14em;
  color:#8c6a15;
}
.next-tournament-date strong{
  display:block;
  margin-top:2px;
  font-size:14px;
  letter-spacing:.02em;
  color:#2f2918;
}
.lock-override{
  width:100%;
  margin-top:7px;
  padding:8px 10px;
  border:1px dashed #b7bcc2;
  border-radius:9px;
  background:#fff;
  color:#6a7078;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.06em;
  cursor:pointer;
}
.lock-override.on{
  border-style:solid;
  border-color:#d7a53a;
  background:#fff5d7;
  color:#76530b;
}


/* V49 current-field date + single join-slot CTA */
.field-kicker{
  line-height:1.2;
}
.join-team-card{
  text-decoration:none;
  background:linear-gradient(145deg,#fffdf7,#f7f2e7) !important;
  border-style:dashed !important;
  border-color:#cdbf9c !important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.join-team-card:hover,
.join-team-card:focus-visible{
  transform:translateY(-1px);
  border-color:#9a6a2f !important;
  box-shadow:0 7px 16px #9a6a2f17;
  outline:none;
}
.join-team-plus{
  border:1.5px dashed #a88a45 !important;
  background:#fffaf0 !important;
  color:#8b691c !important;
}
.join-team-plus i{
  font-size:13px;
}
.join-team-card .entered-team-copy strong{
  color:#554315;
}
.join-team-card .entered-team-copy small{
  color:#8b7440;
}


/* V51 iPhone tournament checkout scrolling fix */
#tourneyCheckoutSheet{
  min-height:100dvh;
}
#tourneyCheckoutSheet .checkout-panel{
  width:min(720px,100%);
  max-height:calc(100vh - 8px);
  max-height:calc(100dvh - 8px);
  overflow-y:auto !important;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  scroll-behavior:smooth;
  scroll-padding-bottom:96px;
  padding-bottom:calc(14px + env(safe-area-inset-bottom));
}
#tourneyCheckoutSheet .checkout-top{
  position:sticky;
  top:-1px;
  z-index:8;
  margin:-2px -2px 10px;
  padding:2px 2px 10px;
  background:#f7f8fa;
}
#tourneyCheckoutSheet .checkout-footer{
  position:sticky;
  bottom:-1px;
  z-index:8;
  margin:14px -2px -2px;
  padding:12px 2px calc(8px + env(safe-area-inset-bottom));
  border-top:1px solid #dfe3e8;
  background:linear-gradient(to bottom,rgba(247,248,250,.96),#f7f8fa 28%);
  box-shadow:0 -9px 18px rgba(20,25,35,.06);
}
#tourneyCheckoutSheet .checkout-footer .btn{
  flex:0 0 auto;
}
@media(max-width:760px){
  #tourneyCheckoutSheet .checkout-panel{
    max-height:calc(100vh - 2px);
    max-height:calc(100dvh - 2px);
    border-radius:16px 16px 0 0;
    padding-left:14px;
    padding-right:14px;
  }
  #tourneyCheckoutSheet .checkout-footer{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:10px;
  }
  #tourneyCheckoutSheet .checkout-footer .btn{
    width:100%;
    min-height:46px;
  }
}


/* V53 tournament editor controls + all-view filters */
.admin-view-filters{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:0 0 10px;
}
.admin-view-filters select{
  width:100%;
  min-width:0;
  padding:10px 11px;
  border:1px solid #cfd4da;
  border-radius:10px;
  background:#fff;
  font-size:11px;
  font-weight:900;
  color:#23262a;
}
.admin-detail-label{
  padding:2px 10px 6px;
  color:#777d85;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.12em;
}
.admin-detail-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  padding:0 10px 10px;
}
.admin-detail-grid label{
  min-width:0;
}
.admin-detail-grid label span{
  display:block;
  margin:0 0 3px;
  color:#7b8088;
  font-size:7px;
  font-weight:1000;
  letter-spacing:.06em;
}
.admin-detail-grid input{
  width:100%;
  min-width:0;
  height:38px;
  padding:7px 8px;
  border:1px solid #d2d6dc;
  border-radius:8px;
  background:#fafafa;
  font-size:16px;
  font-weight:800;
}
@media(max-width:640px){
  .admin-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-view-filters{grid-template-columns:1fr 1fr}
}


/* V54 tournament schedule cards mirror league schedule */
.tourney-league-game{
  position:relative;
  display:grid;
  grid-template-columns:82px minmax(0,1fr);
  min-height:112px;
  overflow:hidden;
  border:1px solid #ffffff22;
  border-radius:var(--radius);
  background:#0b0e13;
  color:#fff;
  box-shadow:0 8px 18px #17223a23;
}
.tourney-time-panel{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:32px 4px 10px;
  border-right:1px solid #ffffff17;
  background:#0b0e13;
  text-align:center;
}
.tourney-game-number{
  position:absolute;
  z-index:15;
  left:8px;
  top:7px;
  min-width:27px;
  height:27px;
  padding:0 6px;
  display:grid;
  place-items:center;
  border:1px solid #ffffff78;
  border-radius:7px;
  background:#16191f;
  color:#fff;
  font-size:.7rem;
  font-weight:1000;
  box-shadow:0 3px 8px #0008;
}
.tourney-time-main{
  font-size:.84rem;
  font-weight:950;
  white-space:nowrap;
}
.tourney-court{
  font-size:.72rem;
  font-weight:900;
  color:#e0e3e8;
}
.tourney-matchup-panel{
  position:relative;
  min-width:0;
  padding-bottom:28px;
}
.tourney-team-grid{
  position:absolute;
  inset:0 0 28px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.tourney-team-side{
  --team:#22252a;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:0;
  overflow:hidden;
  padding:15px 18px;
  text-align:center;
  background:linear-gradient(135deg,color-mix(in srgb,var(--team) 82%,#000),color-mix(in srgb,var(--team) 27%,#000));
}
.tourney-team-side.pending{
  background:#050607;
}
.tourney-team-side + .tourney-team-side{
  border-left:1px solid #ffffff30;
}
.tourney-team-watermark{
  position:absolute;
  width:110px;
  height:110px;
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  opacity:.14;
  pointer-events:none;
  filter:saturate(.9);
}
.tourney-team-side.pending .tourney-team-watermark{
  display:none;
}
.tourney-team-name{
  position:relative;
  z-index:2;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#fff;
  font-size:clamp(.84rem,2vw,1.1rem);
  font-weight:950;
  text-shadow:0 2px 10px #000;
}
.tourney-team-side.pending .tourney-team-name{
  font-size:1rem;
  letter-spacing:.04em;
}
.tourney-team-record{
  position:relative;
  z-index:2;
  margin-top:4px;
  color:#d2d6dd;
  font-size:.64rem;
  font-weight:850;
  letter-spacing:.04em;
}
.tourney-team-side.pending .tourney-team-record{
  color:#858b93;
  font-size:.57rem;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.tourney-center-vs{
  position:absolute;
  z-index:9;
  left:50%;
  top:46%;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid #ffffff80;
  border-radius:50%;
  background:#080a0ef4;
  color:#fff;
  font-size:.6rem;
  font-weight:950;
  transform:translate(-50%,-50%);
  box-shadow:0 4px 12px #0009;
}
.tourney-center-scores{
  position:absolute;
  z-index:9;
  left:50%;
  top:57%;
  display:grid;
  grid-template-columns:repeat(2,36px);
  transform:translate(-50%,-50%);
  filter:drop-shadow(0 4px 7px #0009);
}
.tourney-score{
  display:grid;
  place-items:center;
  height:32px;
  border:2px solid #050505;
  background:#1d2026;
  color:#aeb3bc;
  font-size:.78rem;
  font-weight:950;
}
.tourney-score:first-child{border-radius:8px 0 0 8px}
.tourney-score:last-child{border-left:0;border-radius:0 8px 8px 0}
.tourney-score.winner{
  background:var(--gold);
  color:#111;
  font-size:.9rem;
}
.tourney-meta-bar{
  position:absolute;
  z-index:10;
  left:0;
  right:0;
  bottom:0;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 9px;
  background:#080a0ed9;
  color:#fff;
  font-size:.62rem;
  font-weight:900;
  text-transform:uppercase;
}
.tourney-video-link.league-style{
  left:-41px;
  top:68px;
}
@media(max-width:640px){
  .tourney-league-game{grid-template-columns:82px minmax(0,1fr)}
  .tourney-team-side{padding:14px 12px}
  .tourney-team-name{font-size:.83rem}
  .tourney-team-watermark{width:94px;height:94px}
}


/* V55 tournament bracket card refinement */
.tourney-league-game{
  display:block !important;
  min-height:0 !important;
  overflow:hidden;
}
.tourney-card-main{
  display:grid;
  grid-template-columns:104px minmax(0,1fr);
  min-height:126px;
}
.tourney-time-panel{
  min-height:126px;
  justify-content:flex-start !important;
  gap:4px !important;
  padding:48px 7px 8px !important;
}
.tourney-top-actions{
  position:absolute;
  top:8px;
  left:8px;
  right:8px;
  display:flex;
  align-items:center;
  gap:7px;
}
.tourney-game-number,
.tourney-game-video{
  position:static !important;
  width:30px;
  min-width:30px;
  height:30px;
  padding:0 !important;
  display:grid;
  place-items:center;
  border:1px solid #ffffff78;
  border-radius:7px;
  background:#16191f;
  color:#fff;
  font-size:.72rem;
  font-weight:1000;
  text-decoration:none;
  box-shadow:0 3px 8px #0008;
}
.tourney-game-video{
  border-color:#9a6a2f;
  background:#17130b;
  color:#e2b655;
}
.tourney-game-video i{font-size:.62rem}
.tourney-time-main{
  margin-top:3px;
  font-size:.8rem !important;
  white-space:nowrap;
}
.tourney-court{
  font-size:.7rem !important;
}
.tourney-division{
  margin-top:auto;
  width:100%;
  padding-top:6px;
  border-top:1px solid #ffffff14;
  color:#fff;
  font-size:.62rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.tourney-matchup-panel{
  min-height:126px;
  padding-bottom:0 !important;
}
.tourney-team-grid{
  inset:0 !important;
}
.tourney-team-side{
  justify-content:flex-start !important;
  padding:26px 14px 14px !important;
}
.tourney-team-watermark{
  width:72% !important;
  height:72% !important;
  max-width:94px;
  max-height:78px;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  background-size:contain !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  opacity:.13 !important;
}
.tourney-team-name{
  margin-top:4px;
}
.tourney-team-record{
  margin-top:5px;
}
.tourney-center-vs{
  top:57% !important;
}
.tourney-center-scores{
  top:70% !important;
}
.tourney-advance-bar{
  min-height:31px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:6px 10px;
  border-top:1px solid #ffffff1f;
  background:#07090c;
  color:#f3f4f6;
  text-align:center;
  font-size:.61rem;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.tourney-advance-bar b{
  color:#777f8a;
  font-weight:900;
}
.tourney-advance-bar .out{
  color:#c9cdd4;
}
@media(max-width:640px){
  .tourney-card-main{grid-template-columns:104px minmax(0,1fr)}
  .tourney-time-panel{padding-left:6px !important;padding-right:6px !important}
  .tourney-time-main{font-size:.77rem !important}
  .tourney-team-side{padding:25px 10px 12px !important}
  .tourney-team-watermark{max-width:82px;max-height:70px}
  .tourney-center-scores{top:71% !important}
  .tourney-advance-bar{font-size:.56rem;gap:7px}
}


/* V56 compact tournament cards + master location flip */
.tourney-league-game{
  position:relative;
  min-height:112px !important;
  height:112px;
  overflow:visible !important;
  border:0 !important;
  background:transparent !important;
  perspective:1100px;
  filter:drop-shadow(0 11px 18px #17223a32);
}
.tourney-game-flipper{
  position:relative;
  width:100%;
  height:112px;
  transform-style:preserve-3d;
  transition:transform .82s cubic-bezier(.22,.61,.36,1);
}
.tourney-league-game.location-open .tourney-game-flipper{
  transform:rotateY(180deg);
}
.tourney-game-face{
  position:absolute;
  inset:0;
  overflow:hidden;
  border:1px solid #ffffff22;
  border-radius:var(--radius);
  background:#0b0e13;
  color:#fff;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.tourney-game-front{
  display:grid;
  grid-template-rows:minmax(0,1fr) 26px;
}
.tourney-card-upper{
  min-height:0;
  display:grid;
  grid-template-columns:104px minmax(0,1fr);
}
.tourney-time-panel{
  min-height:0 !important;
  height:auto !important;
  display:flex;
  flex-direction:column;
  justify-content:center !important;
  gap:1px !important;
  padding:35px 6px 5px !important;
  border-right:1px solid #ffffff17;
  background:#0b0e13;
}
.tourney-top-actions{
  top:6px !important;
  left:7px !important;
  right:7px !important;
  gap:6px !important;
}
.tourney-game-number,
.tourney-game-video{
  width:29px !important;
  min-width:29px !important;
  height:29px !important;
}
.tourney-time-main{
  margin:0 !important;
  font-size:.76rem !important;
  line-height:1.05;
}
.tourney-court{
  border:0;
  background:transparent;
  color:#fff;
  padding:2px 0 0;
  font:inherit;
  font-size:.66rem !important;
  font-weight:950;
  cursor:pointer;
  text-decoration:none;
  line-height:1.05;
}
.tourney-court:hover,
.tourney-court:focus-visible{
  text-decoration:underline;
  outline:none;
}
.tourney-division{
  width:auto !important;
  margin:1px 0 0 !important;
  padding:0 !important;
  border:0 !important;
  color:#cfd3d9;
  font-size:.56rem !important;
  font-weight:950;
  line-height:1.05;
  text-transform:uppercase;
}
.tourney-matchup-panel{
  min-height:0 !important;
  height:auto !important;
}
.tourney-team-side{
  justify-content:center !important;
  padding:9px 11px 16px !important;
}
.tourney-team-watermark{
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  transform:none !important;
  background-size:auto 92% !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  opacity:.13 !important;
}
.tourney-team-name{
  margin-top:0 !important;
}
.tourney-team-record{
  margin-top:2px !important;
}
.tourney-center-vs{
  top:47% !important;
}
.tourney-center-scores{
  top:66% !important;
}
.tourney-advance-bar{
  min-height:26px !important;
  height:26px;
  padding:4px 8px !important;
  border-top:1px solid #ffffff1f;
  font-size:.54rem !important;
  line-height:1;
}
.tourney-game-back{
  transform:rotateY(180deg);
  display:block;
  background:linear-gradient(135deg,#10151b,#050607);
  border:1px solid #ffffff38;
}
.tourney-game-back:after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(7,9,12,.30);
  pointer-events:none;
}
.tourney-location-inner{
  position:absolute;
  z-index:2;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 44px 12px 16px;
  text-align:center;
}
.tourney-location-close{
  position:absolute;
  z-index:4;
  right:9px;
  top:9px;
  width:29px;
  height:29px;
  border:1px solid #ffffff80;
  border-radius:50%;
  background:#111c;
  color:#fff;
  font-size:17px;
  cursor:pointer;
}
.tourney-location-name{
  margin-bottom:4px;
  font-size:14px;
  font-weight:950;
}
.tourney-location-address{
  margin-bottom:8px;
  color:#e3e5e9;
  font-size:10px;
  line-height:1.25;
}
.day-heading .area i.fa-map-marker-alt{
  margin-right:7px;
}
@media(max-width:640px){
  .tourney-league-game,
  .tourney-game-flipper{height:112px;min-height:112px !important}
  .tourney-card-upper{grid-template-columns:104px minmax(0,1fr)}
  .tourney-team-side{padding:8px 9px 16px !important}
  .tourney-team-watermark{background-size:auto 94% !important}
  .tourney-center-scores{top:67% !important}
  .tourney-advance-bar{font-size:.51rem !important;gap:6px}
}


/* V57: exact league-style tournament flip + compact bottom row */
.tourney-league-game{
  height:112px !important;
  min-height:112px !important;
  overflow:visible !important;
  background:transparent !important;
  border:0 !important;
  perspective:1200px;
  filter:drop-shadow(0 9px 16px #17223a2f);
}
.tourney-game-flipper{
  position:relative;
  width:100%;
  height:112px;
  transform-style:preserve-3d;
  transition:transform .7s cubic-bezier(.2,.72,.2,1);
}
.tourney-league-game.location-open .tourney-game-flipper{
  transform:rotateY(180deg);
}
.tourney-game-face{
  position:absolute;
  inset:0;
  border-radius:var(--radius);
  overflow:hidden;
  background:#0b0e13;
  color:#fff;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform-style:preserve-3d;
}
.tourney-game-front{
  display:grid;
  grid-template-rows:minmax(0,1fr) 26px;
  transform:rotateY(0deg);
}
.tourney-game-back{
  transform:rotateY(180deg);
  background:#0b0e13 !important;
}
.tourney-game-back:after{
  display:none !important;
}
.tourney-location-inner{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 44px 12px 16px;
  text-align:center;
  background:#0b0e13;
  opacity:1;
}
.tourney-location-name{
  color:#fff;
}
.tourney-location-address{
  color:#dfe3e8;
}
.tourney-card-upper{
  display:grid;
  grid-template-columns:104px minmax(0,1fr);
  min-height:0;
}
.tourney-time-panel{
  min-height:0 !important;
  height:auto !important;
  padding:36px 7px 7px !important;
  gap:0 !important;
  justify-content:center !important;
  background:#0b0e13;
}
.tourney-time-main{
  margin:0 0 8px !important;
  font-size:.78rem !important;
  line-height:1;
  white-space:nowrap;
}
.tourney-division-pill{
  display:inline-flex;
  align-self:center;
  justify-content:center;
  max-width:86px;
  padding:4px 7px;
  border-radius:999px;
  background:linear-gradient(180deg,#fff,#d6d9de);
  color:#111;
  font-size:.54rem;
  font-weight:1000;
  letter-spacing:.02em;
  text-transform:uppercase;
  box-shadow:0 1px 3px #0003;
}
.tourney-bottom-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  min-width:0;
  height:26px;
  border-top:1px solid #ffffff1f;
  background:#07090c;
}
.tourney-advance-bar{
  min-width:0;
  height:26px !important;
  min-height:26px !important;
  justify-content:flex-start !important;
  padding:4px 8px !important;
  border:0 !important;
  background:transparent !important;
  text-align:left !important;
  overflow:hidden;
  white-space:nowrap;
  font-size:.52rem !important;
}
.tourney-location-inline{
  align-self:stretch;
  max-width:160px;
  padding:0 10px;
  border:0;
  border-left:1px solid #ffffff1f;
  background:transparent;
  color:#fff;
  font-size:.53rem;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
}
.tourney-location-inline:hover,
.tourney-location-inline:focus-visible{
  background:#ffffff0a;
  outline:none;
}
.tourney-center-scores{
  top:69% !important;
}
.tourney-team-watermark{
  background-size:auto 100% !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
@media(max-width:640px){
  .tourney-league-game,
  .tourney-game-flipper{height:112px !important;min-height:112px !important}
  .tourney-card-upper{grid-template-columns:104px minmax(0,1fr)}
  .tourney-bottom-row{grid-template-columns:minmax(0,1fr) auto}
  .tourney-location-inline{max-width:138px;padding-inline:8px;font-size:.5rem}
  .tourney-advance-bar{font-size:.49rem !important}
  .tourney-team-watermark{background-size:auto 102% !important}
}


/* V58 final tournament flip parity + cover-style logos */
.tourney-league-game.game{
  min-height:112px !important;
  height:112px !important;
  perspective:1100px !important;
  border-radius:var(--radius);
}
.tourney-league-game .tourney-game-flipper.game-flipper{
  min-height:112px !important;
  height:112px !important;
  transform-style:preserve-3d !important;
  transition:transform .82s cubic-bezier(.22,.61,.36,1) !important;
}
.tourney-league-game.location-open .tourney-game-flipper{
  transform:rotateY(180deg) !important;
}
.tourney-league-game .tourney-game-face.game-face{
  position:absolute !important;
  inset:0 !important;
  min-height:112px !important;
  height:112px !important;
  overflow:hidden !important;
  border:1px solid #ffffff22 !important;
  border-radius:var(--radius) !important;
  background:#0b0e13 !important;
  color:#fff !important;
  backface-visibility:hidden !important;
  -webkit-backface-visibility:hidden !important;
}
.tourney-league-game .tourney-game-back.game-back{
  transform:rotateY(180deg) !important;
  display:block !important;
  padding:0 !important;
  border:1px solid #2a2d33 !important;
  background:#101216 !important;
}
.tourney-league-game .tourney-game-back.game-back:after{
  display:none !important;
}
.tourney-league-game .tourney-location-inner{
  background:#101216 !important;
  opacity:1 !important;
}
.tourney-league-game:not(.location-open) .tourney-game-back{
  pointer-events:none !important;
}
.tourney-league-game.location-open .tourney-game-front{
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.tourney-league-game.location-open .tourney-game-back{
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
}
.tourney-league-game .tourney-game-front{
  transition:opacity .15s ease,visibility .15s ease;
}
.tourney-team-watermark{
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  transform:none !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  opacity:.13 !important;
  overflow:hidden !important;
}


/* V60 repair: prevent League .game-face grid rules from collapsing tournament cards */
.tourney-league-game .tourney-game-face{
  display:block !important;
  grid-template-columns:none !important;
  grid-template-rows:none !important;
}
.tourney-league-game .tourney-game-front{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:minmax(0,1fr) 26px !important;
}
.tourney-league-game .tourney-card-upper{
  display:grid !important;
  grid-template-columns:104px minmax(0,1fr) !important;
  grid-template-rows:1fr !important;
  min-width:0 !important;
  min-height:0 !important;
}
.tourney-league-game .tourney-time-panel,
.tourney-league-game .tourney-matchup-panel{
  min-width:0 !important;
  min-height:0 !important;
}
.tourney-league-game .tourney-team-grid{
  position:absolute !important;
  inset:0 !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.tourney-league-game .tourney-bottom-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  width:100% !important;
  min-width:0 !important;
}
.tourney-league-game .tourney-game-back{
  display:block !important;
}


/* V61 league logo parity + tournament spacing polish */

/* League Schedule logos now fill/crop exactly like Tournament Schedule backgrounds. */
.team{
  overflow:hidden;
}
.team-logo{
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center !important;
  opacity:.13 !important;
}

/* Tournament location label: no divider, slightly inset from the right edge. */
.tourney-location-inline{
  border-left:0 !important;
  margin-right:8px;
  padding-left:8px !important;
  padding-right:4px !important;
}

/* Nudge time downward while tightening it toward the division pill. */
.tourney-time-panel{
  padding-top:39px !important;
}
.tourney-time-main{
  margin-bottom:5px !important;
}

/* Slightly slimmer division pill. */
.tourney-division-pill{
  padding-top:3px !important;
  padding-bottom:3px !important;
}

/* Give winner/loser routing a little breathing room from the left edge. */
.tourney-advance-bar{
  padding-left:13px !important;
}

/* Smaller game-number / highlight boxes, kept identical to each other. */
.tourney-game-number,
.tourney-game-video{
  width:27px !important;
  min-width:27px !important;
  height:27px !important;
  border-radius:6px !important;
}
.tourney-top-actions{
  gap:5px !important;
}
.tourney-game-video i{
  font-size:.58rem !important;
}

@media(max-width:640px){
  .team-logo{
    width:100% !important;
    height:100% !important;
  }
  .tourney-location-inline{
    margin-right:7px;
  }
}


/* V62 global tournament navigation */
.team-filter-link,
.field-team-link,
.bracket-path-link,
.advance-link{
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:inherit;
  padding:0;
  margin:0;
  cursor:pointer;
  text-decoration:none;
}
.team-filter-link:hover,
.team-filter-link:focus-visible,
.field-team-link:hover,
.field-team-link:focus-visible,
.bracket-path-link:hover,
.bracket-path-link:focus-visible,
.advance-link:hover,
.advance-link:focus-visible{
  text-decoration:underline;
  outline:none;
}
.field-team-link{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
  font-weight:950;
  text-align:left;
}
.advance-link{
  white-space:nowrap;
  text-transform:inherit;
}
.game-jump-highlight .tourney-game-face{
  box-shadow:0 0 0 2px #d7a53a,0 0 24px #d7a53a55 !important;
}


/* V64 VIP Fan Entry */
.pass-eyebrow{
  font-size:11px;
  text-transform:uppercase;
  font-weight:950;
  letter-spacing:.1em;
  color:#702963;
}
.vip-purchase-form{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.vip-purchase-form label{
  display:grid;
  gap:5px;
  color:#4f5359;
  font-size:9px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.vip-purchase-form input[type="text"],
.vip-purchase-form input[type="email"]{
  width:100%;
  min-width:0;
  padding:11px 12px;
  border:1px solid #d5d9df;
  border-radius:10px;
  background:#fff;
  color:#17191c;
  font-size:16px;
  font-weight:750;
  text-transform:none;
  letter-spacing:0;
}
.vip-photo-field span{
  color:#92979f;
  font-weight:800;
}
.vip-photo-field input{
  padding:9px;
  border:1px dashed #c9cdd4;
  border-radius:10px;
  background:#fafafa;
  font-size:12px;
  text-transform:none;
  letter-spacing:0;
}
.vip-photo-preview{
  min-height:0;
  display:flex;
  align-items:center;
  gap:8px;
  color:#6b7078;
  font-size:10px;
  font-weight:850;
}
.vip-photo-preview img{
  width:44px;
  height:44px;
  border-radius:10px;
  object-fit:cover;
}
.vip-finalizing{
  margin:18px auto;
  max-width:520px;
  display:grid;
  justify-items:center;
  gap:9px;
  padding:28px;
  border:1px solid #d8dbe0;
  border-radius:16px;
  background:#fff;
  text-align:center;
}
.vip-finalizing i{font-size:24px;color:#702963}
.vip-finalizing strong{font-size:16px}
.vip-finalizing span{font-size:11px;color:#747982}
.vip-pass-shell{max-width:720px}
.vip-public-card{
  overflow:hidden;
  border:1px solid #c9cdd3;
  border-radius:22px;
  background:linear-gradient(145deg,#16151a,#050506);
  color:#fff;
  box-shadow:0 18px 38px #1114;
}
.vip-loading{
  padding:42px;
  text-align:center;
  color:#ddd;
}
.vip-pass-top{
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px;
  background:radial-gradient(circle at 80% 10%,#70296355,transparent 38%);
}
.vip-pass-photo{
  width:108px;
  height:108px;
  flex:0 0 108px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:2px solid #ffffff33;
  border-radius:18px;
  background:#242128;
  color:#aaa;
  font-size:36px;
}
.vip-pass-photo img{width:100%;height:100%;object-fit:cover}
.vip-pass-copy{min-width:0}
.vip-pass-kicker{
  display:block;
  color:#bca9ba;
  font-size:9px;
  font-weight:1000;
  letter-spacing:.16em;
}
.vip-pass-copy h1{
  margin:4px 0 9px;
  font-size:25px;
  line-height:1.05;
}
.vip-status{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.1em;
}
.vip-status.active{background:#159447;color:#fff}
.vip-status.inactive{background:#a52b2b;color:#fff}
.vip-pass-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  border-top:1px solid #ffffff1c;
  background:#0c0c0f;
}
.vip-pass-bottom span,
.vip-pass-bottom small{
  display:block;
  color:#92969f;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.vip-pass-bottom strong{
  display:block;
  margin:4px 0;
  font-size:15px;
}
.vip-qr{
  width:120px;
  height:120px;
  padding:4px;
  border-radius:8px;
  background:#fff;
}
.vip-qr img,.vip-qr canvas{width:112px!important;height:112px!important}
@media(max-width:560px){
  .vip-pass-top{align-items:flex-start}
  .vip-pass-photo{width:84px;height:84px;flex-basis:84px}
  .vip-pass-copy h1{font-size:20px}
  .vip-pass-bottom{align-items:flex-end}
}


/* ==========================================================
   V65 VIP PASS — MOCKUP-DRIVEN ONE-SCREEN DESIGN
   ========================================================== */

.vip-pass-page{
  margin:0;
  min-height:100dvh;
  height:100dvh;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% -10%,#3a1111 0,transparent 42%),
    linear-gradient(180deg,#171717,#030303 68%);
  color:#fff;
}
.vip-screen{
  width:100%;
  height:100dvh;
  display:grid;
  place-items:center;
  padding:max(6px,env(safe-area-inset-top)) 6px max(6px,env(safe-area-inset-bottom));
  overflow:hidden;
}
.vip-card-shell{
  width:min(96vw,56dvh);
  aspect-ratio:.575;
  max-height:98dvh;
  display:grid;
  place-items:center;
}
.vip-card-loading,
.vip-card-error{
  width:100%;
  min-height:220px;
  display:grid;
  place-items:center;
  gap:8px;
  border:1px solid #80602f;
  border-radius:26px;
  background:#0b0b0c;
  color:#ddd;
  text-align:center;
}
.vip-card{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  display:grid;
  grid-template-rows:14% 38% 25% 19% 4%;
  border:2px solid #b48a47;
  border-radius:clamp(18px,5vw,32px);
  background:
    linear-gradient(160deg,transparent 0 36%,#21100f 36% 38%,transparent 38% 100%),
    linear-gradient(20deg,transparent 0 69%,#281212 69% 71%,transparent 71% 100%),
    #09090a;
  box-shadow:
    0 0 0 5px #242426,
    0 0 0 7px #785726,
    0 18px 38px #000c,
    inset 0 0 40px #000;
}
.vip-metal-texture{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.42;
  background:
    repeating-radial-gradient(circle at 20% 10%,#ffffff09 0 1px,transparent 1px 4px),
    linear-gradient(115deg,#ffffff08,transparent 18% 82%,#ffffff08);
  mix-blend-mode:screen;
}
.vip-red-angle{
  position:absolute;
  z-index:0;
  width:42%;
  height:12%;
  top:9%;
  border-top:3px solid #7b1717;
  background:linear-gradient(180deg,#290b0b88,transparent);
  transform:skewY(-32deg);
  opacity:.9;
}
.vip-red-angle-left{left:-9%;transform:rotate(28deg)}
.vip-red-angle-right{right:-9%;transform:rotate(-28deg)}
.vip-brand,
.vip-photo-frame,
.vip-identity,
.vip-qr-zone,
.vip-card-footer{
  position:relative;
  z-index:2;
}
.vip-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3%;
  padding:5% 7% 1%;
}
.vip-brand-mark{
  width:15%;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border:1px solid #b88b49;
  border-radius:50%;
  box-shadow:0 0 10px #d1a04d55;
}
.vip-brand-mark img,
.vip-verify-logo img,
.vip-qr-center img{
  width:78%;
  height:78%;
  object-fit:contain;
  filter:invert(72%) sepia(37%) saturate(682%) hue-rotate(359deg) brightness(92%) contrast(90%);
}
.vip-brand-wordmark{
  display:grid;
  line-height:.88;
  text-align:center;
  font-family:Georgia,serif;
  text-shadow:0 2px 2px #000,0 0 12px #c5923a33;
}
.vip-brand-wordmark strong{
  font-size:clamp(22px,8.4vw,48px);
  letter-spacing:.055em;
  color:#cda763;
}
.vip-brand-wordmark span{
  margin-top:2.5%;
  font-size:clamp(12px,4.2vw,25px);
  font-weight:900;
  letter-spacing:.28em;
  color:#d1ad6a;
}
.vip-photo-frame{
  margin:0 6%;
  overflow:visible;
  border:1px solid #a67d43;
  border-radius:9% / 8%;
  background:#050506;
  box-shadow:inset 0 0 0 5px #242426,inset 0 0 25px #000;
}
.vip-photo-stage{
  position:absolute;
  inset:4%;
  overflow:hidden;
  border-radius:8% / 7%;
  background:
    radial-gradient(circle at 50% 25%,#434343,#161616 58%,#050505 100%);
}
.vip-member-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%;
  filter:saturate(.72) contrast(1.08) brightness(.82);
}
.vip-photo-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,transparent 46%,#0006 100%),
    radial-gradient(circle at center,transparent 35%,#0007 100%);
  pointer-events:none;
}
.vip-photo-grain{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.12;
  background:repeating-radial-gradient(circle at 20% 20%,#fff 0 1px,transparent 1px 3px);
  mix-blend-mode:overlay;
}
.vip-photo-fallback{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font-size:clamp(46px,17vw,86px);
  color:#777;
}
.vip-status-banner{
  position:absolute;
  left:3%;
  right:3%;
  bottom:-7%;
  z-index:4;
  display:grid;
  place-items:center;
  height:22%;
  border-radius:999px;
  font-size:clamp(24px,10vw,56px);
  font-weight:1000;
  letter-spacing:.08em;
  text-shadow:0 2px 4px #000;
  backdrop-filter:blur(6px);
  box-shadow:0 0 18px currentColor,inset 0 0 14px #ffffff22;
}
.vip-status-banner.active{
  border:1px solid #44ff63;
  background:linear-gradient(180deg,#0a6e18d9,#023a0bde);
  color:#67ff7d;
}
.vip-status-banner.inactive{
  border:1px solid #ff5050;
  background:linear-gradient(180deg,#842222db,#3f0909e8);
  color:#ff7373;
}
.vip-identity{
  display:grid;
  grid-template-rows:auto auto repeat(3,1fr);
  gap:0;
  padding:5% 11% 0;
}
.vip-identity h1{
  margin:0;
  overflow:hidden;
  color:#f0dfbc;
  font-size:clamp(21px,7.2vw,43px);
  font-weight:950;
  letter-spacing:.04em;
  line-height:1.05;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.vip-identity-divider{
  display:grid;
  grid-template-columns:1fr auto auto 1fr;
  align-items:center;
  gap:2%;
  margin:2% 0 1%;
  color:#c69a50;
  font-size:clamp(8px,2.8vw,14px);
}
.vip-identity-divider span{
  height:1px;
  background:linear-gradient(90deg,transparent,#bb8b45);
}
.vip-identity-divider span:last-child{
  background:linear-gradient(90deg,#bb8b45,transparent);
}
.vip-identity-divider b{font-size:.8em}
.vip-detail-row{
  display:grid;
  grid-template-columns:12% 1fr;
  align-items:center;
  min-height:0;
  border-bottom:1px solid #ffffff1c;
  color:#f2f2f2;
  font-size:clamp(8px,2.55vw,13px);
}
.vip-detail-row:last-child{border-bottom:0}
.vip-detail-icon{
  width:76%;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border:1px solid #b38749;
  border-radius:20%;
  color:#d2a95f;
}
.vip-detail-row div{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:2%;
}
.vip-detail-row label{
  color:#d5a95f;
  font-weight:950;
}
.vip-detail-row strong{
  min-width:0;
  overflow:hidden;
  font-weight:780;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.vip-qr-zone{
  display:grid;
  grid-template-rows:1fr auto;
  justify-items:center;
  min-height:0;
  padding:1% 0 2%;
}
.vip-qr-frame{
  position:relative;
  width:min(40%,150px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  padding:2.2%;
  border:2px solid #b98b46;
  border-radius:9%;
  background:#fff;
  box-shadow:0 0 0 3px #292929,0 5px 16px #000a;
}
.vip-qr-live{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.vip-qr-live img,
.vip-qr-live canvas{
  width:100%!important;
  height:100%!important;
}
.vip-qr-center{
  position:absolute;
  left:50%;
  top:50%;
  width:23%;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  transform:translate(-50%,-50%);
  border:1px solid #b48748;
  border-radius:24%;
  background:#080808;
  box-shadow:0 0 0 3px #fff;
}
.vip-scan-copy{
  margin-top:2%;
  color:#a99370;
  font-size:clamp(7px,2vw,10px);
  font-weight:950;
  letter-spacing:.1em;
}
.vip-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 7%;
  color:#776a56;
  font-size:clamp(6px,1.8vw,9px);
  font-weight:900;
  letter-spacing:.08em;
}

/* Door / gate verification is intentionally plain and immediate. */
.vip-verify-page{
  margin:0;
  min-height:100dvh;
  background:#050505;
  color:#fff;
}
.vip-verify-shell{
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));
}
.vip-verify-card{
  width:min(96vw,480px);
  display:grid;
  justify-items:center;
  gap:14px;
  padding:20px;
  border:2px solid #555;
  border-radius:22px;
  background:#111;
  box-shadow:0 18px 40px #000a;
  text-align:center;
}
.vip-verify-card.active{border-color:#2dd15d}
.vip-verify-card.inactive,
.vip-verify-card.invalid{border-color:#d13b3b}
.vip-verify-logo{
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#050505;
}
.vip-verify-status{
  width:100%;
  display:grid;
  justify-items:center;
  gap:5px;
  padding:12px;
  border-radius:14px;
  font-size:34px;
  font-weight:1000;
  letter-spacing:.08em;
}
.vip-verify-card.active .vip-verify-status{
  background:#0b5f22;
  color:#72ff95;
}
.vip-verify-card.inactive .vip-verify-status,
.vip-verify-card.invalid .vip-verify-status{
  background:#6b1616;
  color:#ff8d8d;
}
.vip-verify-photo{
  width:150px;
  height:150px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:3px solid #fff3;
  border-radius:20px;
  background:#222;
  color:#888;
  font-size:52px;
}
.vip-verify-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.vip-verify-card h1{
  margin:0;
  font-size:28px;
  line-height:1.05;
}
.vip-verify-meta{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.vip-verify-meta div{
  display:grid;
  gap:3px;
  padding:10px;
  border-radius:12px;
  background:#1a1a1d;
}
.vip-verify-meta span{
  color:#9b9ba2;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.vip-verify-meta strong{
  font-size:13px;
}
.vip-verify-instruction{
  margin:0;
  font-size:14px;
  font-weight:900;
}
.vip-verify-loading{
  display:grid;
  justify-items:center;
  gap:8px;
  color:#ddd;
}

@media(max-height:700px){
  .vip-card-shell{width:min(91vw,54dvh)}
}


/* V66 VIP purchase + renewal lifecycle */
.pass-page{max-width:820px}
.pass-info-strip{
  display:grid;
  gap:4px;
  margin:10px 0 14px;
  padding:12px 14px;
  border:1px solid #dec99b;
  border-radius:12px;
  background:linear-gradient(180deg,#fff9df,#f6edca);
  color:#3f351f;
}
.pass-info-strip strong{font-size:12px}
.pass-info-strip span{font-size:10px;line-height:1.4}
.vip-mode-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-bottom:10px;
}
.vip-mode-tabs button{
  padding:11px;
  border:1px solid #d7d9de;
  border-radius:10px;
  background:#f5f6f8;
  color:#565a61;
  font-size:11px;
  font-weight:950;
}
.vip-mode-tabs button.active{
  border-color:#6f2a68;
  background:#6f2a68;
  color:#fff;
}
.vip-checkout-panel{
  display:grid;
  gap:13px;
  padding:15px;
  border:1px solid #d8dbe0;
  border-radius:15px;
  background:#fff;
}
.vip-checkout-panel.hidden{display:none!important}
.vip-checkout-head{
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:15px;
}
.vip-checkout-head h1{margin:0 0 5px;font-size:18px}
.vip-checkout-head p{margin:0;color:#686d75;font-size:10px;line-height:1.45}
.vip-qty-label,
.vip-email-label{
  display:grid;
  gap:5px;
  color:#5d626a;
  font-size:9px;
  font-weight:950;
  text-transform:uppercase;
}
.vip-qty-label select,
.vip-email-label input{
  min-height:42px;
  padding:9px 11px;
  border:1px solid #d4d8de;
  border-radius:10px;
  background:#fff;
  color:#111;
  font-size:16px;
}
.vip-holder-forms{
  display:grid;
  gap:10px;
}
.vip-holder-card{
  position:relative;
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid #d9dde2;
  border-radius:13px;
  background:#fafbfc;
}
.vip-holder-number{
  position:absolute;
  right:9px;
  top:9px;
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#111;
  color:#fff;
  font-size:10px;
  font-weight:950;
}
.vip-holder-card label{
  display:grid;
  gap:5px;
  color:#555a62;
  font-size:9px;
  font-weight:950;
  text-transform:uppercase;
}
.vip-holder-card input[type="text"]{
  min-height:42px;
  padding:9px 11px;
  border:1px solid #d4d8de;
  border-radius:10px;
  background:#fff;
  color:#111;
  font-size:16px;
  text-transform:none;
}
.vip-photo-actions{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
}
.vip-photo-action{
  position:relative;
  min-height:54px;
  display:grid!important;
  place-items:center;
  align-content:center;
  gap:4px!important;
  overflow:hidden;
  border:1px solid #cfd3d9;
  border-radius:10px;
  background:#fff;
  color:#333!important;
  text-align:center;
  cursor:pointer;
}
.vip-photo-action i{font-size:14px;color:#702963}
.vip-photo-action span{font-size:8px;font-weight:950}
.vip-photo-action input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}
.vip-holder-photo-preview{
  min-height:52px;
  display:flex;
  align-items:center;
  gap:9px;
  color:#787d85;
  font-size:9px;
  font-weight:900;
}
.vip-holder-photo-preview img{
  width:48px;
  height:48px;
  border-radius:9px;
  object-fit:cover;
}
.vip-pay-btn{width:100%;justify-content:center}
.vip-renew-lookup{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:8px;
}
.vip-renew-results{display:grid;gap:7px}
.vip-renew-row{
  display:grid;
  grid-template-columns:auto 42px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:9px;
  border:1px solid #d9dde2;
  border-radius:11px;
  background:#fafbfc;
}
.vip-renew-row input{width:18px;height:18px}
.vip-renew-photo{
  width:42px;height:42px;
  overflow:hidden;
  display:grid;place-items:center;
  border-radius:9px;
  background:#222;color:#888;
}
.vip-renew-photo img{width:100%;height:100%;object-fit:cover}
.vip-renew-copy{display:grid;gap:2px;min-width:0}
.vip-renew-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.vip-renew-copy small{color:#777d85;font-size:9px}
.vip-renew-price{font-size:13px;font-weight:950;color:#702963}
.vip-inline-loading{padding:13px;text-align:center;color:#777;font-size:10px}

/* Public pass: animated online-only status proof */
.vip-status-banner.active{
  animation:vipActivePulse 2.6s ease-in-out infinite;
}
.vip-status-banner.inactive{
  animation:vipInactivePulse 3.2s ease-in-out infinite;
}
@keyframes vipActivePulse{
  0%,100%{box-shadow:0 0 12px #35ff6466,inset 0 0 12px #ffffff1c;filter:brightness(1)}
  50%{box-shadow:0 0 24px #35ff6496,inset 0 0 16px #ffffff2a;filter:brightness(1.08)}
}
@keyframes vipInactivePulse{
  0%,100%{box-shadow:0 0 10px #ff45454f,inset 0 0 10px #ffffff16;filter:brightness(.95)}
  50%{box-shadow:0 0 18px #ff454576,inset 0 0 14px #ffffff22;filter:brightness(1.03)}
}
.vip-pass-note{
  max-width:86%;
  margin-top:1%;
  color:#8e806b;
  font-size:clamp(5px,1.55vw,8px);
  line-height:1.25;
  text-align:center;
}
.vip-card-footer{
  display:grid!important;
  grid-template-columns:1fr auto 1fr;
}
.vip-card-footer span:last-child{text-align:right}
.vip-card-renew{
  color:#cda763;
  font-size:clamp(6px,1.8vw,9px);
  font-weight:1000;
  letter-spacing:.09em;
  text-decoration:none;
}

/* Verification page online animation */
.vip-online-proof{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:6px 9px;
  border:1px solid #ffffff22;
  border-radius:999px;
  background:#17191d;
  color:#bec2c9;
  font-size:9px;
  font-weight:950;
  letter-spacing:.08em;
}
.vip-online-proof span{
  width:8px;height:8px;
  border-radius:50%;
  background:#5cff7a;
  box-shadow:0 0 0 0 #5cff7a80;
  animation:vipLiveDot 1.8s ease-out infinite;
}
.vip-verify-card.inactive .vip-online-proof span,
.vip-verify-card.invalid .vip-online-proof span{
  background:#ff5b5b;
  box-shadow:0 0 0 0 #ff5b5b80;
}
@keyframes vipLiveDot{
  0%{box-shadow:0 0 0 0 currentColor;transform:scale(.92)}
  55%{box-shadow:0 0 0 7px transparent;transform:scale(1.06)}
  100%{box-shadow:0 0 0 0 transparent;transform:scale(.92)}
}
.vip-verify-note{
  margin:0;
  color:#969ba3;
  font-size:9px;
  line-height:1.4;
}

@media(max-width:560px){
  .vip-checkout-head{align-items:end}
  .vip-photo-actions{grid-template-columns:1fr}
  .vip-photo-action{grid-template-columns:auto 1fr;justify-items:start;padding:0 14px}
  .vip-renew-lookup{grid-template-columns:1fr}
}


/* V67 VIP photo input reliability + purple info strip */
.pass-info-strip{
  border-color:#ddd2eb !important;
  background:linear-gradient(180deg,#faf7ff,#f0eafb) !important;
  color:#41364f !important;
}
.vip-photo-action{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  border:1px solid #cfd3d9;
  font-family:inherit;
}
.vip-camera-button{
  border:1px solid #cfd3d9 !important;
}
.vip-camera-modal{
  position:fixed;
  z-index:9000;
  inset:0;
  display:grid;
  place-items:center;
  padding:16px;
  background:#000c;
  backdrop-filter:blur(8px);
}
.vip-camera-modal.hidden{display:none!important}
.vip-camera-dialog{
  width:min(94vw,440px);
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid #ffffff2b;
  border-radius:16px;
  background:#0e0f12;
  box-shadow:0 20px 55px #000c;
}
.vip-camera-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#fff;
}
.vip-camera-head strong{font-size:13px}
.vip-camera-head button{
  width:32px;height:32px;
  border:1px solid #ffffff33;
  border-radius:50%;
  background:#191b20;
  color:#fff;
  font-size:20px;
}
#vipCameraVideo{
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  border-radius:12px;
  background:#050505;
}
#vipCameraCanvas{display:none!important}


/* ==========================================================
   V69 VIP WALLET + LIVE PASS POLISH
   ========================================================== */

/* Stronger glossy wordmark */
.vip-brand-wordmark{
  position:relative;
  overflow:hidden;
  padding:1% 2%;
  filter:drop-shadow(0 4px 4px #000) drop-shadow(0 0 10px #b77d2730);
}
.vip-brand-wordmark strong{
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif !important;
  font-stretch:condensed;
  font-weight:1000 !important;
  letter-spacing:.07em !important;
  background:linear-gradient(180deg,#fff4d2 0%,#d2a45b 42%,#8d6428 58%,#e1bb75 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent !important;
  text-shadow:none !important;
}
.vip-brand-wordmark span{
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif !important;
  color:#d5b06d !important;
  text-shadow:0 2px 0 #241405,0 0 8px #d3a45744;
}
.vip-brand-wordmark:after{
  content:"";
  position:absolute;
  top:-20%;
  bottom:-20%;
  width:24%;
  left:-34%;
  transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,#ffffff80,transparent);
  animation:vipHeaderSweep 4.8s ease-in-out infinite;
  pointer-events:none;
}
@keyframes vipHeaderSweep{
  0%,48%{left:-34%;opacity:0}
  52%{opacity:.9}
  72%{left:112%;opacity:.35}
  100%{left:112%;opacity:0}
}

/* Glossy moving sweep over status so a screenshot is visibly less trustworthy. */
.vip-status-banner{
  overflow:hidden;
  isolation:isolate;
}
.vip-status-banner:after{
  content:"";
  position:absolute;
  top:-55%;
  bottom:-55%;
  width:18%;
  left:-28%;
  z-index:3;
  transform:skewX(-22deg);
  background:linear-gradient(90deg,transparent,#ffffffa8,transparent);
  animation:vipStatusSweep 2.9s ease-in-out infinite;
  pointer-events:none;
}
@keyframes vipStatusSweep{
  0%,18%{left:-28%;opacity:0}
  28%{opacity:.85}
  62%{left:116%;opacity:.38}
  100%{left:116%;opacity:0}
}
.vip-expiration-row>div{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center!important;
}
.vip-expire-renew{
  margin-left:5px;
  padding:3px 6px;
  border:1px solid #bc914b;
  border-radius:6px;
  color:#ddb86e;
  font-size:.72em;
  font-weight:1000;
  letter-spacing:.06em;
  text-decoration:none;
}
.vip-card-footer{
  grid-template-columns:1fr auto 1fr!important;
}
.vip-card-footer span:nth-child(2){
  color:#b3915b;
  text-align:center;
}

/* Wallet / batch-success page */
.vip-wallet-page{
  min-height:100dvh;
  background:linear-gradient(180deg,#f4f5f8,#eaedf2);
}
.vip-wallet-shell{
  max-width:760px;
  overflow:hidden;
}
.vip-wallet-message{
  display:grid;
  gap:5px;
  margin:10px 0 13px;
  padding:12px 14px;
  border:1px solid #ddd2eb;
  border-radius:13px;
  background:linear-gradient(180deg,#faf7ff,#f0eafb);
  color:#41364f;
}
.vip-wallet-message strong{font-size:12px}
.vip-wallet-message span{font-size:10px;line-height:1.4}
.vip-wallet-carousel{
  display:flex;
  align-items:center;
  gap:12px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  overscroll-behavior-x:contain;
  padding:16px calc(50% - min(39vw,170px)) 19px;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.vip-wallet-carousel::-webkit-scrollbar{display:none}
.vip-wallet-card{
  flex:0 0 min(78vw,340px);
  scroll-snap-align:center;
  transition:transform .16s ease,opacity .16s ease;
  transform-origin:center;
}
.vip-wallet-image-link{
  position:relative;
  display:block;
  overflow:hidden;
  aspect-ratio:.577;
  border:1px solid #b98d4b;
  border-radius:20px;
  background:#111;
  box-shadow:0 15px 28px #17223a35;
}
.vip-wallet-image-link img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.vip-wallet-live{
  position:absolute;
  left:8px;
  bottom:8px;
  padding:5px 8px;
  border-radius:999px;
  color:#fff;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.08em;
  backdrop-filter:blur(4px);
}
.vip-wallet-live.active{background:#0c8a38d9}
.vip-wallet-live.inactive{background:#a02c2cdd}
.vip-wallet-card-copy{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:8px;
  margin-top:8px;
  padding:8px 10px;
  border:1px solid #d7dbe1;
  border-radius:11px;
  background:#fff;
}
.vip-wallet-card-copy>div{display:grid;gap:2px;min-width:0}
.vip-wallet-card-copy strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
}
.vip-wallet-card-copy span{color:#777c84;font-size:8px}
.vip-wallet-card-copy a,
.vip-wallet-delete{
  border:0;
  background:transparent;
  color:#702963;
  font-size:8px;
  font-weight:950;
  text-decoration:none;
}
.vip-wallet-delete{color:#a02f2f;cursor:pointer}
.vip-wallet-dots{
  display:flex;
  justify-content:center;
  gap:5px;
  min-height:8px;
}
.vip-wallet-dots span{
  width:6px;height:6px;
  border-radius:50%;
  background:#b9bdc5;
  transition:all .2s ease;
}
.vip-wallet-dots span.active{
  width:16px;
  border-radius:999px;
  background:#6f2a68;
}
.vip-wallet-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:12px;
}
.vip-wallet-actions .btn{justify-content:center}
.vip-wallet-status{
  min-height:20px;
  padding:8px 0;
  color:#696e76;
  font-size:9px;
  text-align:center;
}
@media(max-width:520px){
  .vip-wallet-card{flex-basis:76vw}
  .vip-wallet-carousel{padding-left:12vw;padding-right:12vw}
  .vip-wallet-actions{grid-template-columns:1fr}
}


/* V70 VIP wallet refinement */
.vip-pass-url{
  min-width:0;
  overflow:hidden;
  color:#f0dfbc;
  font-weight:780;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-decoration:underline;
  text-decoration-color:#c49a55;
  text-underline-offset:2px;
}
.vip-wallet-carousel{
  gap:14px !important;
  padding-left:8vw !important;
  padding-right:20vw !important;
  scroll-padding-left:8vw;
}
.vip-wallet-card{
  flex:0 0 min(70vw,310px) !important;
}
.vip-wallet-pass-link{
  display:block;
  text-decoration:none;
}
.vip-wallet-pass-frame{
  position:relative;
  width:100%;
  aspect-ratio:.575;
  overflow:hidden;
  border:1px solid #b98d4b;
  border-radius:20px;
  background:#080808;
  box-shadow:0 15px 28px #17223a35;
}
.vip-wallet-pass-preview{
  position:absolute;
  left:50%;
  top:50%;
  width:430px;
  height:748px;
  border:0;
  pointer-events:none;
  transform:translate(-50%,-50%) scale(var(--wallet-pass-scale, .70));
  transform-origin:center;
  background:#09090a;
}
.vip-wallet-pass-overlay{
  position:absolute;
  inset:0;
  z-index:3;
  background:transparent;
}
.vip-wallet-actions{
  grid-template-columns:1fr !important;
}
@media(max-width:560px){
  .vip-wallet-carousel{
    padding-left:9vw !important;
    padding-right:23vw !important;
  }
  .vip-wallet-card{
    flex-basis:68vw !important;
  }
  .vip-wallet-pass-preview{
    --wallet-pass-scale:.53;
  }
}
@media(min-width:561px){
  .vip-wallet-pass-preview{
    --wallet-pass-scale:.66;
  }
}


/* V71 obvious return-to-wallet controls on the full live pass */
.vip-card-shell{
  position:relative;
}
.vip-all-passes-button{
  position:absolute;
  z-index:8;
  left:50%;
  top:1.2%;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border:1px solid #c49a55;
  border-radius:999px;
  background:linear-gradient(180deg,#1c1c1fdd,#09090bd9);
  color:#e5c27e;
  box-shadow:0 4px 14px #0008,inset 0 1px 0 #ffffff14;
  backdrop-filter:blur(5px);
  font-size:clamp(7px,2.1vw,10px);
  font-weight:1000;
  letter-spacing:.08em;
  text-decoration:none;
}
.vip-all-passes-button i{
  font-size:.9em;
}
.vip-all-passes-button:active{
  transform:translateX(-50%) scale(.97);
}
.vip-footer-wallet-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  color:#cda763;
  font-size:inherit;
  font-weight:1000;
  letter-spacing:.08em;
  text-decoration:none;
}


/* V72 live-pass header spacing */
.vip-all-passes-button{
  left:auto !important;
  right:4.5% !important;
  top:1.5% !important;
  transform:none !important;
  margin-right:0 !important;
}
.vip-all-passes-button:active{
  transform:scale(.97) !important;
}
.vip-brand{
  justify-content:flex-start !important;
  padding-left:5.5% !important;
  padding-right:31% !important;
  gap:2.5% !important;
}
.vip-brand-mark{
  width:14% !important;
  flex:0 0 14% !important;
}
.vip-brand-wordmark{
  text-align:left !important;
  padding-left:0 !important;
}
.vip-brand-wordmark strong{
  font-size:clamp(20px,7.4vw,44px) !important;
}
.vip-brand-wordmark span{
  font-size:clamp(11px,3.7vw,23px) !important;
  letter-spacing:.24em !important;
}
.vip-footer-wallet-link{
  display:none !important;
}


/* V73 pass header alignment from live-device screenshot */
.vip-all-passes-button{
  right:2.6% !important;
  top:1.45% !important;
}
.vip-brand{
  padding-left:3.2% !important;
  padding-right:33.5% !important;
  gap:2.1% !important;
}
.vip-brand-mark{
  width:13.2% !important;
  flex:0 0 13.2% !important;
}
.vip-brand-wordmark{
  transform:translateX(-1.5%);
}


/* V74 VIP wallet save-image control */
.vip-wallet-card-copy{
  grid-template-columns:minmax(0,1fr) auto auto auto !important;
}
.vip-wallet-save{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:#295b8f !important;
  white-space:nowrap;
}
@media(max-width:520px){
  .vip-wallet-card-copy{
    grid-template-columns:minmax(0,1fr) auto !important;
  }
  .vip-wallet-card-copy>div{
    grid-column:1 / -1;
  }
  .vip-wallet-delete{
    justify-self:end;
  }
}

/* V74 season rollover preview */
.season-rollover-card{
  margin-top:14px;
}
.rollover-preview-out{
  display:grid;
  gap:6px;
  margin-top:10px;
  padding:10px;
  border:1px solid #d9dde3;
  border-radius:10px;
  background:#fafbfc;
  color:#555b63;
  font-size:9px;
}
.rollover-preview-out strong{font-size:12px;color:#111}
.rollover-preview-out small{font-size:9px}
.rollover-preview-out ol{margin:5px 0 0;padding-left:18px}
.rollover-preview-out li{margin:4px 0;line-height:1.35}
.rollover-preview-out b{color:#9f2d2d;font-size:8px}
.rollover-preview-out em{font-size:8px;color:#7b8087}


/* V76 VIP home-screen install prompt */
.vip-home-prompt{
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  margin:0 0 8px;
  padding:9px 10px;
  border:1px solid #d8d1e4;
  border-radius:12px;
  background:linear-gradient(180deg,#fbf9ff,#f2edf9);
  color:#3e354a;
}
.vip-home-prompt.hidden{display:none!important}
.vip-home-icon{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:10px;
  background:#fff;
  box-shadow:0 2px 8px #34224420;
}
.vip-home-icon img{
  width:78%;
  height:78%;
  object-fit:contain;
}
.vip-home-copy{
  min-width:0;
  display:grid;
  gap:2px;
}
.vip-home-copy strong{
  font-size:10px;
  line-height:1.2;
}
.vip-home-copy span{
  color:#756a82;
  font-size:8px;
  line-height:1.3;
}
.vip-home-install{
  padding:7px 10px;
  border:0;
  border-radius:8px;
  background:#6f2a68;
  color:#fff;
  font-size:9px;
  font-weight:950;
}
.vip-home-install.hidden{display:none!important}


/* V78 tournament date-state banner */
.next-tournament-date.is-upcoming{
  border:1px solid #d6b85f !important;
  background:linear-gradient(135deg,#fff6d3 0%,#f5df9e 58%,#ecd081 100%) !important;
  color:#6b4c12 !important;
}
.next-tournament-date.is-past{
  border:2px solid #111 !important;
  background:
    linear-gradient(135deg,#ffe9e9 0%,#f7bcbc 42%,#ef8f8f 72%,#dc6666 100%) !important;
  color:#6d1010 !important;
  box-shadow:0 5px 16px #00000018,inset 0 1px 0 #ffffff90 !important;
}
.next-tournament-date.is-past i{
  color:#8f1717 !important;
}
.next-tournament-date.is-past span{
  color:#7d1111 !important;
}
.next-tournament-date.is-past strong{
  color:#1a1111 !important;
}

/* Tournament schedule team names match the tighter league-schedule scale */
.tourney-team-name{
  font-size:clamp(.72rem,1.65vw,.93rem) !important;
}
.tourney-team-side.pending .tourney-team-name{
  font-size:clamp(.72rem,1.65vw,.93rem) !important;
}


/* V79 VIP wallet controls: clearer actions, no duplicate metadata */
.vip-wallet-card-copy{display:grid !important;grid-template-columns:1fr 1fr !important;gap:10px !important;margin-top:10px !important;padding:0 !important;border:0 !important;background:transparent !important;}
.vip-wallet-open,.vip-wallet-save,.vip-wallet-delete{display:flex !important;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:10px 12px !important;border:1px solid #d5d9df !important;border-radius:10px !important;background:#fff !important;box-shadow:0 3px 10px #1c243015;font-size:11px !important;font-weight:1000 !important;line-height:1.1;text-align:center;text-decoration:none !important;}
.vip-wallet-open{color:#5c2458 !important;}
.vip-wallet-save{color:#295b8f !important;cursor:pointer;}
.vip-wallet-save:disabled{opacity:.65;}
.vip-wallet-delete{grid-column:1 / -1;color:#a02f2f !important;}
@media(max-width:520px){.vip-wallet-card-copy{grid-template-columns:1fr 1fr !important}.vip-wallet-open,.vip-wallet-save{font-size:10px !important;min-height:40px}}
.vip-home-copy strong{font-size:11px !important}.vip-home-copy span{font-size:9px !important}
\n\n/* V80 renewal lookup: obvious wallet recovery without clutter */\n.vip-renew-actions{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:8px;\n  margin-top:10px;\n}\n.vip-renew-actions.hidden{display:none!important}\n.vip-renew-actions .btn{\n  min-height:42px;\n  justify-content:center;\n  font-size:10px;\n  font-weight:950;\n}\n.vip-wallet-btn.hidden{display:none!important}\n@media(max-width:520px){\n  .vip-renew-actions{grid-template-columns:1fr 1fr}\n  .vip-renew-actions .btn{font-size:9px;padding-left:8px;padding-right:8px}\n}\n

/* V81 renewal actions visibility/layout */
#vipRenewActions{
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
  align-items:stretch !important;
  margin-top:14px !important;
}
#vipRenewActions .btn,
#vipRenewActions button,
#vipRenewActions a{
  min-height:44px;
  padding:11px 14px !important;
  justify-content:center;
  text-align:center;
}
@media(max-width:480px){
  #vipRenewActions{
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
  }
}


/* V88 rollover target selection / guardrail */
.rollover-controls{
  display:grid;
  grid-template-columns:minmax(150px,220px) auto;
  gap:10px;
  align-items:center;
}
#rolloverSeasonSelect{
  min-height:40px;
  padding:8px 10px;
  border:1px solid #cfd4db;
  border-radius:9px;
  background:#fff;
  font-weight:800;
}
.rollover-warning{
  display:block;
  padding:7px 9px;
  border:2px solid #111;
  border-radius:8px;
  background:linear-gradient(135deg,#ffe5e5,#efaaaa);
  color:#7d1111 !important;
}
.rollover-safe-target{
  display:block;
  padding:7px 9px;
  border:1px solid #b9d8bd;
  border-radius:8px;
  background:#edf8ef;
  color:#22602c !important;
}
@media(max-width:520px){
  .rollover-controls{grid-template-columns:1fr}
}
