/*
Theme Name:  TEBA Team Microsite
Theme URI:   https://tebaleague.com
Description: Child theme for per-team microsites. Renders Home, Schedule, Roster, Tickets,
             and Tryouts pages in each club's brand palette, with all dynamic content
             pulled live from SportsPress on the main tebaleague.com network site.
             One template set, eight teams, zero duplication.
Version: 1.3.15
Requires at least: 6.5
Requires PHP: 8.1
Author:      TEBA League
Author URI:  https://tebaleague.com
Template:    teba-league
Text Domain: teba-microsite
Tags:        sports, basketball, child-theme, multisite
License:     Proprietary
*/

/* ==========================================================================
   MICROSITE DESIGN TOKENS
   Barlow Condensed (display) · DM Mono (labels) · DM Sans (body)
   These supplement never override the parent theme core tokens.
   ========================================================================== */

:root {
  --ts-display: 'Barlow Condensed', 'Arial Narrow', Arial, sans-serif;
  --ts-mono:    'DM Mono', 'Roboto Mono', ui-monospace, monospace;
  --ts-ui:      'DM Sans', 'Inter', system-ui, sans-serif;

  --ts-ink:      #0E0F14;
  --ts-ink-2:    #3A3D47;
  --ts-paper:    #F5F3EE;
  --ts-paper-2:  #ECEAE4;
  --ts-card:     #FFFFFF;
  --ts-row:      #FAFAF8;
  --ts-line:     #E0DDD6;
  --ts-line-2:   #C8C5BE;
  --ts-mute:     #8A8880;
  --ts-gutter:   clamp(16px, 5vw, 72px);
  --ts-max:      1280px;

  --ts-accent:      #D62246;
  --ts-accent-dark: #16100C;
  --ts-accent-soft: #FBE8EC;
  --ts-secondary:   #777;

  --ts-hero-bg:   linear-gradient(135deg, var(--ts-accent-dark) 0%, var(--ts-accent) 60%, var(--ts-accent-dark) 100%);
  --ts-nav-bg:    var(--ts-accent);
  --ts-footer-bg: var(--ts-accent-dark);
  --ts-bar-bg:    var(--ts-ink);

  --ts-good: #1A7F3C;
  --ts-bad:  #B91C1C;
}

.ts-site *, .ts-site *::before, .ts-site *::after { box-sizing: border-box; }
.ts-site { font-family: var(--ts-ui); color: var(--ts-ink); background: var(--ts-paper); line-height: 1.5; }
.ts-site a { color: inherit; text-decoration: none; }
.ts-site img { display: block; max-width: 100%; height: auto; }

body.ts-microsite-page > header.site-header,
body.ts-microsite-page > footer.site-footer,
body.ts-microsite-page #masthead,
body.ts-microsite-page .site-footer { display: none !important; }

/* NAV */
.ts-nav { position: sticky; top: 0; z-index: 200; background: var(--ts-nav-bg); color: #fff; }
.ts-nav__inner { max-width: var(--ts-max); margin: 0 auto; padding: 0 var(--ts-gutter); display: flex; align-items: center; gap: 28px; height: 64px; }
.ts-nav__brand { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.ts-nav__logo { width: 40px; height: 40px; object-fit: contain; filter: drop-shadow(0 2px 6px rgba(0,0,0,.25)); }
.ts-nav__team-name { font-family: var(--ts-display); font-weight: 750; font-size: 22px; letter-spacing: -.02em; text-transform: uppercase; line-height: 1; }
.ts-nav__meta { font-family: var(--ts-mono); font-size: 9.5px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; opacity: .75; margin-top: 2px; }
.ts-nav__links { display: flex; align-items: center; gap: 4px; flex: 1; }
.ts-nav__link { font-family: var(--ts-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.8); padding: 8px 12px; transition: color .12s, background .12s; white-space: nowrap; }
.ts-nav__link:hover, .ts-nav__link[aria-current="page"] { color: #fff; background: rgba(255,255,255,.15); }
.ts-nav__cta { margin-left: auto; flex-shrink: 0; font-family: var(--ts-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; background: rgba(255,255,255,.18); color: #fff; border: 1px solid rgba(255,255,255,.35); padding: 8px 16px; cursor: pointer; transition: background .12s; }
.ts-nav__cta:hover { background: rgba(255,255,255,.30); }
.ts-nav__burger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 8px; margin-left: auto; }
.ts-nav__burger span { display: block; width: 22px; height: 2px; background: #fff; }

@media (max-width: 720px) {
  .ts-nav__links { display: none; flex-direction: column; position: absolute; top: 64px; left: 0; right: 0; background: var(--ts-accent); padding: 12px 0; }
  .ts-nav__links.is-open { display: flex; }
  .ts-nav__link { padding: 12px var(--ts-gutter); }
  .ts-nav__burger { display: flex; }
  .ts-nav__cta { display: none; }
}

/* HERO */
.ts-hero { background: var(--ts-hero-bg); color: #fff; position: relative; overflow: hidden; }
.ts-hero--has-image { background-image: linear-gradient(135deg, rgba(0,0,0,.72), rgba(0,0,0,.35)), var(--ts-hero-image); background-size: cover; background-position: center; }
.ts-hero__halftone { position: absolute; inset: 0; background-image: radial-gradient(rgba(0,0,0,.18) 1px,transparent 1.5px); background-size: 14px 14px; opacity: .35; pointer-events: none; }
.ts-hero__watermark { position: absolute; right: -20px; top: -80px; font-family: var(--ts-display); font-weight: 750; font-size: clamp(260px,34vw,500px); line-height: .78; color: rgba(255,255,255,.08); letter-spacing: -.05em; text-transform: uppercase; pointer-events: none; user-select: none; }
.ts-hero__inner { position: relative; max-width: var(--ts-max); margin: 0 auto; padding: 40px var(--ts-gutter) 52px; }
.ts-hero__back { display: inline-block; margin-bottom: 20px; font-family: var(--ts-mono); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.ts-hero__brand { display: flex; align-items: center; gap: 24px; }
.ts-hero__logo { width: 110px; height: 110px; object-fit: contain; filter: drop-shadow(0 4px 16px rgba(0,0,0,.3)); flex-shrink: 0; }
.ts-hero__city { font-family: var(--ts-mono); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.8); margin-bottom: 4px; }
.ts-hero__name { margin: 0; font-family: var(--ts-display); font-weight: 750; font-size: clamp(2.6rem,7vw,5.5rem); line-height: .88; letter-spacing: -.03em; text-transform: uppercase; }
.ts-hero__tagline { margin-top: 8px; font-family: var(--ts-mono); font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.ts-hero__stats-bar { margin-top: 36px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.22); display: grid; grid-template-columns: repeat(5,1fr); gap: 20px; }
.ts-hero__stat-val { font-family: var(--ts-display); font-weight: 750; font-size: clamp(1.8rem,3vw,2.75rem); line-height: .9; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.ts-hero__stat-lbl { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-top: 6px; }

@media (max-width: 640px) {
  .ts-hero__stats-bar { grid-template-columns: repeat(3,1fr); }
  .ts-hero__brand { flex-direction: column; align-items: flex-start; gap: 16px; }
  .ts-hero__logo { width: 80px; height: 80px; }
}

/* SUBNAV */
.ts-subnav { background: var(--ts-paper); border-bottom: 2px solid var(--ts-line); position: sticky; top: 64px; z-index: 190; }
.ts-subnav__inner { max-width: var(--ts-max); margin: 0 auto; padding: 0 var(--ts-gutter); display: flex; overflow-x: auto; scrollbar-width: none; }
.ts-subnav__inner::-webkit-scrollbar { display: none; }
.ts-subnav__link { font-family: var(--ts-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ts-mute); padding: 14px 16px; white-space: nowrap; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: color .12s,border-color .12s; }
.ts-subnav__link:hover { color: var(--ts-ink); }
.ts-subnav__link.is-active { color: var(--ts-ink); border-bottom-color: var(--ts-accent); }

/* COUNTDOWN */
.ts-countdown { background: var(--ts-accent); color: #fff; padding: 20px var(--ts-gutter); }
.ts-countdown__inner { max-width: var(--ts-max); margin: 0 auto; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.ts-countdown__label { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; opacity: .8; flex-shrink: 0; }
.ts-countdown__units { display: flex; gap: 16px; }
.ts-countdown__unit { text-align: center; }
.ts-countdown__num { font-family: var(--ts-display); font-weight: 750; font-size: 2.4rem; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.ts-countdown__unit-lbl { font-family: var(--ts-mono); font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; opacity: .7; }
.ts-countdown__game-info { margin-left: auto; font-family: var(--ts-display); font-weight: 700; font-size: 18px; letter-spacing: -.01em; text-transform: uppercase; }

/* PAGE */
.ts-page { max-width: var(--ts-max); margin: 0 auto; padding: 48px var(--ts-gutter) 80px; }

/* TYPOGRAPHY */
.ts-kicker { display: inline-block; font-family: var(--ts-mono); font-size: 10px; font-weight: 750; letter-spacing: .2em; text-transform: uppercase; color: var(--ts-accent); }
.ts-section-head { margin: 0 0 6px; font-family: var(--ts-display); font-weight: 750; font-size: clamp(1.8rem,3.5vw,2.75rem); letter-spacing: -.025em; text-transform: uppercase; line-height: .95; }
.ts-section-sub { font-family: var(--ts-mono); font-size: 11px; color: var(--ts-mute); letter-spacing: .1em; text-transform: uppercase; }

/* HOME GRID */
.ts-home-grid { display: grid; grid-template-columns: 1fr 340px; gap: 40px; align-items: start; }
@media (max-width: 900px) { .ts-home-grid { grid-template-columns: 1fr; } }

/* GAME CARD */
.ts-game-card { border: 1px solid var(--ts-line); background: var(--ts-card); display: flex; flex-direction: column; transition: background .12s; }
.ts-game-card:hover { background: var(--ts-paper-2); }
.ts-game-card__top { display: flex; justify-content: space-between; align-items: center; padding: 9px 14px; border-bottom: 1px solid var(--ts-line); }
.ts-game-card__meta { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ts-mute); }
.ts-game-card__body { display: flex; align-items: center; gap: 14px; padding: 14px 16px; }
.ts-game-card__opp-logo { width: 38px; height: 38px; object-fit: contain; flex-shrink: 0; }
.ts-game-card__opp-name { font-family: var(--ts-display); font-weight: 600; font-size: 17px; letter-spacing: -.01em; text-transform: uppercase; }
.ts-game-card__opp-record { font-family: var(--ts-mono); font-size: 10px; color: var(--ts-mute); letter-spacing: .1em; text-transform: uppercase; margin-top: 2px; }
.ts-game-card__score { margin-left: auto; text-align: right; flex-shrink: 0; }
.ts-game-card__score-val { font-family: var(--ts-display); font-weight: 500; font-size: 2rem; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.ts-game-card__result { font-family: var(--ts-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .14em; }
.ts-game-card__result--w { color: var(--ts-good); }
.ts-game-card__result--l { color: var(--ts-bad); }

.ts-live-badge { display: inline-flex; align-items: center; gap: 6px; font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #E53535; }
.ts-live-dot { width: 6px; height: 6px; background: #E53535; border-radius: 50%; animation: ts-pulse 1.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .ts-live-dot { animation: none; } }
@keyframes ts-pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .4; transform: scale(.6); } }

/* STANDINGS */
.ts-standings-table { width: 100%; border-collapse: collapse; font-family: var(--ts-ui); font-size: 13px; }
.ts-standings-table th { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ts-mute); padding: 8px 10px; border-bottom: 2px solid var(--ts-ink); text-align: center; }
.ts-standings-table th:first-child { text-align: left; }
.ts-standings-table td { padding: 10px 10px; border-bottom: 1px solid var(--ts-line); text-align: center; font-variant-numeric: tabular-nums; }
.ts-standings-table td:first-child { text-align: left; }
.ts-standings-table tr.is-current-team td { background: var(--ts-accent-soft); }
.ts-you-chip { display: inline-block; font-family: var(--ts-mono); font-size: 8.5px; font-weight: 750; letter-spacing: .1em; background: var(--ts-accent); color: #fff; padding: 1px 5px; margin-left: 6px; vertical-align: middle; }

/* ROSTER */
.ts-roster-section-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 2px solid var(--ts-ink); }
.ts-player-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 14px; margin-bottom: 40px; }
.ts-player-card { border: 1px solid var(--ts-line); background: var(--ts-card); display: flex; flex-direction: column; transition: background .12s; position: relative; }
.ts-player-card:hover { background: var(--ts-paper-2); }
.ts-player-card__photo { aspect-ratio: 3/4; object-fit: cover; object-position: top; width: 100%; display: block; }
.ts-player-card__photo-placeholder { aspect-ratio: 3/4; display: flex; align-items: flex-end; justify-content: center; background: var(--ts-paper-2); overflow: hidden; }
.ts-player-card__info { padding: 14px; }
.ts-player-card__num { font-family: var(--ts-display); font-weight: 750; font-size: 11px; color: var(--ts-accent); letter-spacing: .06em; }
.ts-player-card__name { font-family: var(--ts-display); font-weight: 500; font-size: 17px; letter-spacing: -.01em; text-transform: uppercase; line-height: 1.05; }
.ts-player-card__pos { display: inline-block; font-family: var(--ts-mono); font-size: 9px; font-weight: 700; letter-spacing: .14em; color: #fff; padding: 2px 7px; margin-top: 6px; }
.ts-player-card__stats { display: grid; grid-template-columns: 1fr 1fr 1fr; border-top: 1px solid var(--ts-line); }
.ts-player-card__stat { padding: 10px 8px; text-align: center; }
.ts-player-card__stat + .ts-player-card__stat { border-left: 1px solid var(--ts-line); }
.ts-player-card__stat-val { font-family: var(--ts-display); font-weight: 500; font-size: 1.4rem; color: var(--ts-accent); letter-spacing: -.02em; }
.ts-player-card__stat-lbl { font-family: var(--ts-mono); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ts-mute); margin-top: 2px; }
.ts-mvp-badge { position: absolute; top: 10px; right: 10px; font-family: var(--ts-mono); font-size: 8px; font-weight: 750; letter-spacing: .12em; background: #D4AF37; color: #000; padding: 3px 6px; }
.ts-pos--pg { background: #2A8FD9; } .ts-pos--sg { background: #9B59B6; } .ts-pos--sf { background: #1F8A5B; } .ts-pos--pf { background: #D9A227; } .ts-pos--c { background: #C13434; }
.ts-staff-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(180px,1fr)); gap: 14px; }
.ts-staff-card { border: 1px solid var(--ts-line); background: var(--ts-card); padding: 18px; }
.ts-staff-card__role { font-family: var(--ts-mono); font-size: 9.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ts-accent); margin-bottom: 6px; }
.ts-staff-card__name { font-family: var(--ts-display); font-weight: 750; font-size: 16px; letter-spacing: -.01em; text-transform: uppercase; }

/* SCHEDULE */
.ts-schedule-filter { display: flex; gap: 6px; margin-bottom: 28px; flex-wrap: wrap; }
.ts-filter-btn { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; background: var(--ts-card); border: 1px solid var(--ts-line-2); color: var(--ts-mute); padding: 7px 14px; cursor: pointer; transition: background .12s,color .12s,border-color .12s; }
.ts-filter-btn:hover { background: var(--ts-paper-2); color: var(--ts-ink); }
.ts-filter-btn.is-active { background: var(--ts-accent); border-color: var(--ts-accent); color: #fff; }
.ts-schedule-group { margin-bottom: 32px; }
.ts-schedule-group__date { font-family: var(--ts-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ts-mute); padding-bottom: 8px; margin-bottom: 12px; border-bottom: 1px solid var(--ts-line); }
.ts-schedule-list { display: flex; flex-direction: column; gap: 10px; }
.ts-live-card { border-left: 3px solid #E53535; }

/* TICKETS */
.ts-tickets-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 40px; }
@media (max-width: 640px) { .ts-tickets-grid { grid-template-columns: 1fr; } }
.ts-ticket-card { border: 1px solid var(--ts-line); background: var(--ts-card); padding: 24px; display: flex; flex-direction: column; gap: 14px; position: relative; cursor: pointer; transition: background .12s; }
.ts-ticket-card:hover { background: var(--ts-paper-2); }
.ts-ticket-card.is-selected { border-color: var(--ts-accent); background: var(--ts-accent-soft); }
.ts-ticket-card__tier { font-family: var(--ts-mono); font-size: 9.5px; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; color: var(--ts-accent); }
.ts-ticket-card__name { font-family: var(--ts-display); font-weight: 750; font-size: 1.6rem; letter-spacing: -.025em; text-transform: uppercase; }
.ts-ticket-card__price { font-family: var(--ts-display); font-weight: 750; font-size: 2rem; color: var(--ts-accent); letter-spacing: -.03em; }
.ts-ticket-card__perks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.ts-ticket-card__perk { font-family: var(--ts-ui); font-size: 13px; color: var(--ts-ink-2); display: flex; align-items: center; gap: 8px; }
.ts-ticket-card__perk::before { content: '✓'; font-family: var(--ts-mono); font-weight: 700; color: var(--ts-accent); flex-shrink: 0; }
.ts-ticket-avail { font-family: var(--ts-mono); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 3px 8px; position: absolute; top: 18px; right: 18px; }
.ts-ticket-avail--good { background: var(--ts-good); color: #fff; }
.ts-ticket-avail--low  { background: #E8870A; color: #fff; }
.ts-ticket-avail--sold { background: var(--ts-mute); color: #fff; }
.ts-cart-summary { background: var(--ts-accent-dark); color: #fff; padding: 28px; }
.ts-cart-summary__title { font-family: var(--ts-display); font-weight: 750; font-size: 1.4rem; letter-spacing: -.02em; text-transform: uppercase; margin-bottom: 16px; }
.ts-cart-btn { width: 100%; background: var(--ts-accent); color: #fff; border: none; padding: 14px 24px; font-family: var(--ts-mono); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; margin-top: 16px; transition: opacity .12s; min-height: 44px; }
.ts-cart-btn:hover { opacity: .88; }

/* TRYOUTS */
.ts-tryout-card { border: 1px solid var(--ts-line); background: var(--ts-card); padding: 28px; margin-bottom: 16px; }
.ts-tryout-card__date { font-family: var(--ts-display); font-weight: 750; font-size: 1.8rem; letter-spacing: -.02em; text-transform: uppercase; color: var(--ts-accent); }
.ts-tryout-card__details { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 10px; }
.ts-tryout-card__detail { font-family: var(--ts-mono); font-size: 11px; color: var(--ts-mute); letter-spacing: .1em; text-transform: uppercase; }
.ts-form { display: flex; flex-direction: column; gap: 16px; max-width: 560px; }
.ts-field { display: flex; flex-direction: column; gap: 6px; }
.ts-field label { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ts-mute); }
.ts-field input, .ts-field select, .ts-field textarea { font-family: var(--ts-ui); font-size: 14px; color: var(--ts-ink); background: var(--ts-card); border: 1px solid var(--ts-line-2); padding: 11px 14px; min-height: 44px; transition: border-color .12s; width: 100%; }
.ts-field input:focus, .ts-field select:focus, .ts-field textarea:focus { outline: 2px solid var(--ts-accent); outline-offset: 1px; border-color: var(--ts-accent); }
.ts-submit-btn { background: var(--ts-accent); color: #fff; border: none; padding: 14px 32px; font-family: var(--ts-mono); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; min-height: 44px; align-self: flex-start; transition: opacity .12s; }
.ts-submit-btn:hover { opacity: .88; }
.ts-form-success { background: var(--ts-accent-soft); border: 1px solid var(--ts-accent); padding: 24px; display: none; }
.ts-form-success.is-visible { display: block; }

/* FOOTER */
.ts-footer { background: var(--ts-footer-bg); color: rgba(255,255,255,.85); padding: 56px var(--ts-gutter) 36px; }
.ts-footer__inner { max-width: var(--ts-max); margin: 0 auto; display: grid; grid-template-columns: 2.25fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 40px; }
.ts-footer__brand { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; align-items: flex-start; }
.ts-footer__brand-logo { width: 150px; max-width: 150px; height: auto; max-height: 150px; object-fit: contain; filter: none !important; opacity: 1; padding: 0; background: transparent; border: 0; }
.ts-footer__brand-copy { min-width: 0; }
.ts-footer__team-name { font-family:var(--ts-display);font-weight:750;font-size:1.55rem;letter-spacing:-.02em;text-transform:uppercase;color:#fff;line-height:1; }
.ts-footer__meta { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ts-accent); margin-top: 8px; }

.ts-footer__about { font-family: var(--ts-ui); font-size: 13.5px; line-height: 1.65; color: rgba(255,255,255,.65); margin-top: 10px; }
.ts-footer__socials { display: flex; gap: 10px; margin-top: 16px; }
.ts-footer__social { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.2); padding: 6px 10px; transition: border-color .12s,color .12s; }
.ts-footer__social:hover { color: #fff; border-color: rgba(255,255,255,.5); }
.ts-footer__col-title { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.45); margin-bottom: 14px; }
.ts-footer__link { display: block; font-family: var(--ts-ui); font-size: 13px; color: rgba(255,255,255,.7); margin-bottom: 9px; transition: color .12s; }
.ts-footer__link:hover { color: #fff; }
.ts-footer__bottom { max-width: var(--ts-max); margin: 0 auto; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.ts-footer__back { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.55); transition: color .12s; }
.ts-footer__back:hover { color: #fff; }
.ts-footer__copy { font-family: var(--ts-mono); font-size: 10px; color: rgba(255,255,255,.35); letter-spacing: .06em; }
@media (max-width: 720px) { .ts-footer__inner { grid-template-columns: 1fr 1fr; gap: 28px; } .ts-footer__brand { grid-template-columns: 110px minmax(0, 1fr); } .ts-footer__brand-logo { width: 110px; max-width: 110px; } }
@media (max-width: 480px) { .ts-footer__inner { grid-template-columns: 1fr; } .ts-footer__brand { grid-template-columns: 1fr; } .ts-footer__brand-logo { width: 150px; max-width: 150px; } }

/* SIDEBAR */
.ts-sidebar { display: flex; flex-direction: column; gap: 24px; }
.ts-widget { border: 1px solid var(--ts-line); background: var(--ts-card); }
.ts-widget__head { padding: 14px 18px; border-bottom: 1px solid var(--ts-line); }
.ts-widget__body { padding: 18px; }
.ts-info-row { display: flex; justify-content: space-between; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--ts-line); gap: 12px; }
.ts-info-row:last-child { border-bottom: none; }
.ts-info-row__label { font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ts-mute); flex-shrink: 0; }
.ts-info-row__val { font-family: var(--ts-display); font-weight: 700; font-size: 13px; text-transform: uppercase; text-align: right; }
.ts-form-pips { display: flex; gap: 6px; }
.ts-form-pip { width: 28px; height: 28px; display: grid; place-items: center; font-family: var(--ts-mono); font-size: 11px; font-weight: 750; }
.ts-form-pip--w { background: var(--ts-good); color: #fff; }
.ts-form-pip--l { background: var(--ts-bad); color: #fff; }

/* UTILITY */
.ts-divider { height: 1px; background: var(--ts-line); margin: 32px 0; }
.ts-spacer-sm { height: 24px; } .ts-spacer { height: 40px; }
.ts-site :focus-visible { outline: 2px solid var(--ts-accent); outline-offset: 2px; }

/* Tryout Manager bridge states */
.ts-tryout-manager {
  background: var(--ts-card);
  border: 1px solid var(--ts-line);
  border-left: 4px solid var(--ts-accent);
  padding: 22px 24px;
}
.ts-tryout-manager__message {
  font-family: var(--ts-ui);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ts-ink-2);
  margin: 10px 0 0;
}
.ts-tryout-manager code {
  font-family: var(--ts-mono);
  font-size: 11px;
  background: var(--ts-paper);
  border: 1px solid var(--ts-line);
  padding: 2px 5px;
}
.ts-tryout-card--empty {
  opacity: .9;
}


/* INTEGRATION CARDS */
.ts-integration-card { border: 1px solid var(--ts-line); background: var(--ts-card); padding: 22px 24px; margin: 18px 0; }
.ts-integration-card--soft { background: var(--ts-accent-soft); border-color: var(--ts-accent); }
.ts-integration-card__title { font-family: var(--ts-display); font-weight: 600; font-size: 1.35rem; letter-spacing: -.02em; text-transform: uppercase; margin: 0 0 8px; }
.ts-integration-card__copy { font-family: var(--ts-ui); font-size: 14px; line-height: 1.6; color: var(--ts-ink-2); margin: 0; }
.ts-integration-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.ts-integrated-shortcode { margin: 18px 0 30px; }
.ts-owner-status { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 10px; margin: 18px 0; }
.ts-owner-status__item { border: 1px solid var(--ts-line); background: var(--ts-paper); padding: 14px; }
.ts-owner-status__label { font-family: var(--ts-mono); font-size: 9px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; color: var(--ts-mute); }
.ts-owner-status__value { font-family: var(--ts-display); font-size: 1.25rem; font-weight: 750; text-transform: uppercase; margin-top: 4px; }
.ts-chip { display: inline-flex; align-items: center; gap: 6px; font-family: var(--ts-mono); font-size: 9px; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; padding: 4px 8px; border: 1px solid var(--ts-line-2); background: var(--ts-paper); color: var(--ts-mute); }
.ts-chip--active { background: var(--ts-good); border-color: var(--ts-good); color: #fff; }
.ts-chip--inactive { background: var(--ts-bad); border-color: var(--ts-bad); color: #fff; }

.ts-chip--unavailable { background: #7C2D12; border-color: #7C2D12; color: #fff; }
.ts-chip--former { background: var(--ts-bad); border-color: var(--ts-bad); color: #fff; }
.ts-player-card--unavailable .ts-player-card__photo { filter: grayscale(.25); }
.ts-player-card--unavailable { background: linear-gradient(180deg, var(--ts-card), var(--ts-paper-2)); }
.ts-admin-note { margin: 0 0 18px; padding: 10px 12px; border: 1px dashed var(--ts-line-2); background: var(--ts-paper-2); color: var(--ts-ink-2); font-family: var(--ts-mono); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ts-action-link { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 16px; background: var(--ts-accent); color: #fff; font-family: var(--ts-mono); font-size: 10px; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.ts-action-link--ghost { background: transparent; color: var(--ts-accent); border: 1px solid var(--ts-accent); }
.ts-action-link:hover { opacity: .88; color: #fff; }
.ts-action-link--ghost:hover { background: var(--ts-accent); color: #fff; }
.ts-player-status { position:absolute; left:10px; top:10px; z-index:2; }
.ts-player-status .ts-chip { background: rgba(0,0,0,.72); color:#fff; border-color: rgba(255,255,255,.2); }
.ts-ticket-shortcode-wrap .spgb-tickets-list, .ts-ticket-shortcode-wrap .teba-tickets-list { margin-top: 8px; }


/* ==========================================================================
   v1.0.4 — Mockup alignment / visual polish
   ========================================================================== */
.ts-site {
  min-height: 100vh;
  background:
    radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--ts-accent) 11%, transparent) 0 18rem, transparent 26rem),
    var(--ts-paper);
}
.ts-nav {
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
  backdrop-filter: saturate(120%) blur(8px);
}
.ts-nav__inner { height: 72px; }
.ts-nav__logo {
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.08);
  padding: 4px;
}
.ts-nav__team-name { font-size: clamp(18px, 2vw, 24px); }
.ts-nav__link,
.ts-nav__cta {
  border-radius: 0;
}
.ts-nav__link[aria-current="page"] {
  box-shadow: inset 0 -2px 0 #fff;
}
.ts-hero {
  min-height: clamp(420px, 56vw, 640px);
  display: flex;
  align-items: center;
  background:
    radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--ts-accent) 30%, transparent) 0 9rem, transparent 9.5rem),
    linear-gradient(135deg, var(--ts-accent-dark) 0%, color-mix(in srgb, var(--ts-accent-dark) 72%, var(--ts-accent)) 48%, var(--ts-accent-dark) 100%);
}
.ts-hero--has-image {
  background-image:
    linear-gradient(135deg, rgba(0,0,0,.78), rgba(0,0,0,.44)),
    var(--ts-hero-image);
}
.ts-hero__inner {
  width: 100%;
  padding-top: clamp(56px, 8vw, 96px);
  padding-bottom: clamp(56px, 8vw, 96px);
}
.ts-hero__brand {
  justify-content: center;
  text-align: center;
  flex-direction: column;
  gap: 18px;
}
.ts-hero__logo,
.ts-hero__logo-placeholder {
  width: clamp(116px, 16vw, 176px);
  height: clamp(116px, 16vw, 176px);
  border-radius: 999px;
  border: 10px solid color-mix(in srgb, var(--ts-accent) 70%, #fff 10%);
  background: rgba(0,0,0,.18);
  padding: 18px;
  object-fit: contain;
}
.ts-hero__logo-placeholder {
  display: grid;
  place-items: center;
}
.ts-hero__logo-placeholder span {
  font-family: var(--ts-display);
  font-weight: 750;
  font-size: clamp(42px, 8vw, 86px);
  color: var(--ts-accent);
  letter-spacing: -.05em;
}
.ts-hero__city,
.ts-hero__tagline {
  color: color-mix(in srgb, var(--ts-accent) 64%, #fff 36%);
  text-align: center;
}
.ts-hero__name {
  max-width: 1000px;
  text-align: center;
  text-wrap: balance;
  font-size: clamp(3.4rem, 8.8vw, 7.8rem);
  letter-spacing: -.045em;
  text-shadow: 0 16px 44px rgba(0,0,0,.28);
}
.ts-hero__stats-bar {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top-color: rgba(255,255,255,.18);
}
.ts-hero__stat { text-align: center; }
.ts-section-head {
  font-size: clamp(2.6rem, 7vw, 5.4rem);
  line-height: .9;
  letter-spacing: -.04em;
  text-transform: uppercase;
}
.ts-game-card,
.ts-player-card,
.ts-staff-card,
.ts-widget,
.ts-ticket-card,
.ts-tryout-card,
.ts-integration-card {
  box-shadow: 0 16px 40px rgba(14,15,20,.055);
}
.ts-game-card:hover,
.ts-player-card:hover,
.ts-ticket-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 56px rgba(14,15,20,.09);
}
.ts-subnav {
  border-bottom: 1px solid var(--ts-line);
  background: color-mix(in srgb, var(--ts-paper) 92%, #fff 8%);
}
.ts-subnav__inner { max-width: var(--ts-max); margin:0 auto; padding:0 var(--ts-gutter); display:flex; gap:4px; overflow:auto; }
.ts-subnav__link { font-family:var(--ts-mono); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ts-mute); padding:15px 12px; white-space:nowrap; border-bottom:2px solid transparent; }
.ts-subnav__link:hover,
.ts-subnav__link.is-active { color:var(--ts-accent); border-bottom-color:var(--ts-accent); }
@media (max-width: 760px) {
  .ts-nav__inner { height: 64px; }
  .ts-nav__links { top: 64px; }
  .ts-hero { min-height: 460px; }
  .ts-hero__stats-bar { grid-template-columns: 1fr; gap: 14px; }
  .ts-hero__stat { border-top: 1px solid rgba(255,255,255,.12); padding-top: 14px; }
}

/* v1.0.7 ticket integration */
.ts-ticket-board { margin: 8px 0 34px; }
.ts-ticket-board__head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:18px; }
.ts-ticket-board__head h2 { font-family:var(--ts-display); font-size:clamp(2rem,5vw,4rem); line-height:.9; text-transform:uppercase; margin:4px 0 0; }
.ts-ticket-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.ts-ticket-card { display:flex; flex-direction:column; gap:16px; min-height:270px; }
.ts-ticket-card.is-disabled { opacity:.78; }
.ts-ticket-card__date { display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--ts-line); padding-bottom:14px; font-family:var(--ts-mono); text-transform:uppercase; letter-spacing:.12em; font-size:10px; color:var(--ts-mute); }
.ts-ticket-card__date strong { color:var(--ts-ink); font-size:12px; }
.ts-ticket-card__matchup { display:flex; align-items:center; gap:14px; }
.ts-ticket-card__matchup img { width:58px; height:58px; object-fit:contain; flex:0 0 auto; }
.ts-ticket-card__matchup span { display:block; font-family:var(--ts-mono); font-size:9px; font-weight:750; letter-spacing:.16em; text-transform:uppercase; color:var(--ts-mute); margin-bottom:4px; }
.ts-ticket-card__matchup h3 { font-family:var(--ts-display); font-size:1.8rem; line-height:.95; text-transform:uppercase; margin:0; }
.ts-ticket-card__venue { color:var(--ts-ink-2); font-family:var(--ts-ui); line-height:1.5; margin:0 auto 0 0; }
.ts-action-link.is-disabled { pointer-events:none; opacity:.7; }
.ts-ticket-admin-tools { margin-top:26px; border:1px dashed var(--ts-line-2); background:var(--ts-paper); padding:16px 18px; }
.ts-ticket-admin-tools summary { cursor:pointer; font-family:var(--ts-mono); font-weight:750; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--ts-accent); }
.ts-ticket-admin-tools p { color:var(--ts-ink-2); font-size:13px; }
.ts-ticket-admin-tools__grid { display:grid; gap:16px; }
@media (max-width: 720px) {
  .ts-ticket-board__head { align-items:flex-start; flex-direction:column; }
}

/* v1.0.9 — owner/draft link cleanup */
.ts-integration-card--owner { background: linear-gradient(135deg, var(--ts-card), var(--ts-paper)); border-color: rgba(0,0,0,.10); }
.ts-integration-actions--wrap { flex-wrap: wrap; align-items: center; }
.ts-nav__cta--owner { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.28); }

/* v1.1.0 — responsive polish and mobile stability */
.ts-site { min-width: 0; overflow-x: clip; }
.ts-page, .ts-nav__inner, .ts-subnav__inner, .ts-hero__inner, .ts-footer__inner, .ts-footer__bottom { min-width: 0; }
.ts-nav__brand { min-width: 0; }
.ts-nav__brand > div { min-width: 0; }
.ts-nav__team-name, .ts-nav__meta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: min(44vw, 360px); }
.ts-nav__burger { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.ts-nav__burger span { transition: transform .16s ease, opacity .16s ease; }
.ts-nav__burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ts-nav__burger.is-open span:nth-child(2) { opacity: 0; }
.ts-nav__burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.ts-nav__link, .ts-nav__cta, .ts-subnav__link, .ts-cart-btn, .ts-submit-btn, .ts-action-link { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.ts-game-card, .ts-player-card, .ts-ticket-card, .ts-tryout-card, .ts-widget, .ts-staff-card { min-width: 0; overflow-wrap: anywhere; }
.ts-game-card__top, .ts-countdown__inner, .ts-ticket-board__head, .ts-ticket-card__date, .ts-ticket-card__matchup, .ts-integration-actions { min-width: 0; }
.ts-countdown__units { flex-wrap: wrap; }
.ts-player-grid { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.ts-staff-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }

@media (max-width: 1024px) {
  :root { --ts-gutter: clamp(16px, 4vw, 42px); }
  .ts-home-grid { gap: 28px; }
  .ts-hero__watermark { right: -90px; top: -46px; opacity: .65; }
  .ts-ticket-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}

@media (max-width: 820px) {
  .ts-nav { box-shadow: 0 8px 28px rgba(0,0,0,.18); }
  .ts-nav__inner { gap: 12px; padding-right: calc(var(--ts-gutter) - 4px); }
  .ts-nav__links {
    display: none;
    position: absolute;
    top: 64px;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 10px var(--ts-gutter) 14px;
    background: color-mix(in srgb, var(--ts-accent) 92%, #000 8%);
    border-top: 1px solid rgba(255,255,255,.18);
    box-shadow: 0 18px 36px rgba(0,0,0,.28);
  }
  .ts-nav__links.is-open { display: flex; }
  .ts-nav__link { justify-content: flex-start; width: 100%; padding: 13px 4px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .ts-nav__link:last-child { border-bottom: 0; }
  .ts-nav__burger { display: inline-flex; }
  .ts-nav__cta { display: none; }
  .ts-subnav { top: 64px; }
  .ts-subnav__inner { padding-left: var(--ts-gutter); padding-right: var(--ts-gutter); scroll-snap-type: x proximity; }
  .ts-subnav__link { scroll-snap-align: start; padding-left: 10px; padding-right: 10px; }
  .ts-page { padding-top: 34px; padding-bottom: 64px; }
  .ts-hero__name { font-size: clamp(3rem, 15vw, 5.4rem); }
  .ts-hero__watermark { font-size: clamp(170px, 46vw, 280px); right: -74px; top: -10px; }
  .ts-countdown__inner { align-items: flex-start; flex-direction: column; gap: 14px; }
  .ts-countdown__game-info { margin-left: 0; }
  .ts-footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  :root { --ts-gutter: 16px; }
  .ts-nav__inner { height: 60px; }
  .ts-nav__links { top: 60px; }
  .ts-nav__logo { width: 36px; height: 36px; }
  .ts-nav__team-name { font-size: 18px; max-width: 52vw; }
  .ts-nav__meta { display: none; }
  .ts-subnav { top: 60px; }
  .ts-hero { min-height: auto; }
  .ts-hero__inner { padding-top: 34px; padding-bottom: 38px; }
  .ts-hero__brand { gap: 12px; }
  .ts-hero__logo, .ts-hero__logo-placeholder { width: 104px; height: 104px; border-width: 7px; padding: 14px; }
  .ts-hero__city, .ts-hero__tagline { font-size: 9.5px; line-height: 1.35; }
  .ts-hero__stats-bar { margin-top: 26px; padding-top: 18px; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
  .ts-hero__stat { padding-top: 0; border-top: 0; }
  .ts-hero__stat-val { font-size: 1.75rem; }
  .ts-hero__stat-lbl { font-size: 8.5px; letter-spacing: .12em; }
  .ts-section-head { font-size: clamp(2.2rem, 13vw, 3.7rem); }
  .ts-home-grid { gap: 22px; }
  .ts-game-card__top { flex-direction: column; align-items: flex-start; gap: 10px; }
  .ts-player-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .ts-player-card__info { padding: 12px; }
  .ts-player-card__name { font-size: 15px; }
  .ts-player-card__stats { grid-template-columns: 1fr; }
  .ts-player-card__stat + .ts-player-card__stat { border-left: 0; border-top: 1px solid var(--ts-line); }
  .ts-ticket-card { min-height: 0; padding: 18px; }
  .ts-ticket-card__matchup { align-items: flex-start; }
  .ts-ticket-card__matchup img { width: 46px; height: 46px; }
  .ts-ticket-card__matchup h3 { font-size: 1.45rem; }
  .ts-tryout-card { padding: 20px; }
  .ts-tryout-card__details { gap: 10px; flex-direction: column; }
  .ts-submit-btn, .ts-cart-btn { width: 100%; }
  .ts-footer { padding-top: 42px; }
  .ts-footer__inner { grid-template-columns: 1fr; gap: 24px; }
  .ts-footer__bottom { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 390px) {
  .ts-player-grid { grid-template-columns: 1fr; }
  .ts-hero__stats-bar { grid-template-columns: 1fr; }
  .ts-nav__team-name { max-width: 48vw; }
  .ts-ticket-card__date { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .ts-site *, .ts-site *::before, .ts-site *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; }
}

/* v1.1.2 Homepage Control layout */
.ts-home-hero { position: relative; min-height: clamp(360px, 58vw, 560px); overflow: hidden; border-bottom: 3px solid var(--ts-accent); background: linear-gradient(180deg,#bfc3c5 0%,#1d2430 72%,#07101d 100%); }
.ts-home-hero__media { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; opacity: .88; }
.ts-home-hero__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) contrast(.95); }
.ts-home-hero__dropzone { font-family: var(--ts-mono); font-size: 12px; color: rgba(20,24,30,.45); letter-spacing: .04em; text-align: center; }
.ts-home-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(0,0,0,.02) 0%,rgba(3,6,14,.22) 45%,rgba(4,8,18,.92) 100%); }
.ts-home-hero__watermark { position:absolute; right:3vw; bottom:-.14em; font-family:var(--ts-display); font-size:clamp(7rem,20vw,19rem); font-weight:750; line-height:.8; letter-spacing:-.08em; color:rgba(255,255,255,.045); pointer-events:none; }
.ts-home-hero__content { position: relative; z-index: 1; max-width: var(--ts-max); margin: 0 auto; padding: clamp(110px,18vw,220px) var(--ts-gutter) 44px; }
.ts-home-hero__badges { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.ts-home-hero__badges span { background: var(--ts-accent); color:#fff; font-family:var(--ts-mono); font-weight:750; font-size:10px; letter-spacing:.16em; text-transform:uppercase; padding:6px 9px; }
.ts-home-hero__badges span + span { background: rgba(255,255,255,.8); color:#111827; }
.ts-home-hero__title { margin:0; max-width:760px; font-family:var(--ts-display); font-weight:600; font-size:clamp(3.7rem,10vw,8.4rem); line-height:.82; letter-spacing:-.055em; text-transform:uppercase; color:#fff; }
.ts-home-hero__tagline { margin:18px 0 0; font-size:1.1rem; font-style:italic; color:rgba(255,255,255,.86); }
.ts-home-hero__actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.ts-home-hero__logo { position:absolute; right:var(--ts-gutter); bottom:24px; width:86px; height:86px; object-fit:contain; filter: drop-shadow(0 12px 18px rgba(0,0,0,.35)); }
.ts-btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 26px; border:1px solid rgba(255,255,255,.25); font-family:var(--ts-mono); font-size:10px; font-weight:750; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; }
.ts-btn--light { background:#fff; color:#172033; border-color:#fff; }
.ts-btn--ghost { background:rgba(8,14,26,.22); color:#fff; border-color:rgba(255,255,255,.35); }
.ts-btn--blue { background:var(--ts-accent); color:#fff; border-color:var(--ts-accent); }
.ts-btn--outline { background:transparent; color:var(--ts-accent-dark); border-color:rgba(30,45,70,.35); }
.ts-home-stats { display:grid; grid-template-columns:repeat(4,1fr); background:#070707; color:#fff; border-bottom:1px solid rgba(255,255,255,.08); }
.ts-home-stats__item { padding:22px var(--ts-gutter); border-right:1px solid rgba(255,255,255,.14); }
.ts-home-stats__item:first-child { background:var(--ts-accent); }
.ts-home-stats__value { font-family:var(--ts-display); font-weight:750; font-size:clamp(2.2rem,5vw,3.5rem); line-height:.82; letter-spacing:-.04em; }
.ts-home-stats__label { margin-top:8px; font-family:var(--ts-mono); font-size:10px; font-weight:750; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.64); }
.ts-home-games { display:grid; grid-template-columns:1fr 1fr; background:var(--ts-paper); border-bottom:1px solid var(--ts-line); }
.ts-home-games__card { min-height:250px; padding:32px clamp(22px,5vw,60px); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.ts-home-games__card + .ts-home-games__card { border-left:1px solid var(--ts-line); }
.ts-home-matchup { display:flex; align-items:center; justify-content:center; gap:34px; margin:20px 0 16px; }
.ts-home-matchup__team { min-width:90px; display:flex; flex-direction:column; align-items:center; gap:9px; font-family:var(--ts-display); text-transform:uppercase; }
.ts-home-matchup__team img { width:58px; height:58px; object-fit:contain; }
.ts-home-matchup__vs { font-family:var(--ts-mono); font-weight:750; color:var(--ts-mute); letter-spacing:.2em; }
.ts-home-games__meta { font-family:var(--ts-mono); font-size:11px; line-height:1.8; letter-spacing:.08em; color:var(--ts-mute); }
.ts-home-games__meta--result { color:var(--ts-good); font-weight:750; text-transform:uppercase; }
.ts-home-games__actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:20px; }
.ts-home-result { display:flex; align-items:center; justify-content:center; gap:22px; margin:24px 0 10px; font-family:var(--ts-display); font-weight:750; text-transform:uppercase; }
.ts-home-result strong { color:var(--ts-good); font-size:clamp(2.2rem,5vw,3.75rem); letter-spacing:-.04em; }
.ts-home-result span { font-size:1.15rem; }
.ts-home-partners { background:#050505; color:#fff; padding:44px var(--ts-gutter); text-align:center; border-top:2px solid var(--ts-accent); border-bottom:1px solid rgba(255,255,255,.08); }
.ts-home-partners__label { font-family:var(--ts-mono); font-size:10px; font-weight:750; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.35); margin-bottom:20px; }
.ts-home-partners__row { display:flex; justify-content:center; gap:18px; flex-wrap:wrap; }
.ts-home-partners__badge { min-width:90px; background:var(--ts-accent); color:#fff; padding:11px 18px; font-family:var(--ts-mono); font-size:11px; font-weight:750; letter-spacing:.14em; text-transform:uppercase; }
.ts-home-partners__badge:nth-child(2n) { background:#39227a; }
.ts-home-partners__badge:nth-child(3n) { background:#bf1436; }
.ts-home-partners__badge:nth-child(4n) { background:#064d8e; }
.ts-home-partners__badge:nth-child(5n) { background:#d4a400; }
@media (max-width:760px){
  .ts-home-hero__content{padding-top:150px;}
  .ts-home-hero__logo{position:static;margin-top:24px;width:70px;height:70px;}
  .ts-home-stats{grid-template-columns:repeat(2,1fr);}
  .ts-home-stats__item:nth-child(2n){border-right:0;}
  .ts-home-games{grid-template-columns:1fr;}
  .ts-home-games__card + .ts-home-games__card{border-left:0;border-top:1px solid var(--ts-line);}
  .ts-home-matchup{gap:18px;}
}


/* v1.1.3 Layout-grid alignment: full-width home sections, standings chrome, and last-game details. */
.ts-owner-home-wrap { max-width: 1180px; margin: 28px auto; padding: 0 clamp(18px, 4vw, 48px); }
.ts-home-standings { background: var(--ts-paper); }
.ts-home-standings__bar { min-height: 68px; background: var(--ts-bar-bg); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 clamp(24px, 5vw, 64px); border-top: 1px solid rgba(255,255,255,.08); }
.ts-home-standings__bar h2 { margin: 0; color: #fff; font-family: var(--ts-display); font-size: clamp(18px, 2vw, 26px); line-height: 1; text-transform: uppercase; letter-spacing: .02em; }
.ts-home-standings__bar nav { display: flex; align-items: stretch; gap: 28px; align-self: stretch; }
.ts-home-standings__bar nav span { display: flex; align-items: center; border-bottom: 3px solid transparent; color: rgba(255,255,255,.55); font-family: var(--ts-mono); font-size: 10px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.ts-home-standings__bar nav .is-active { color: #fff; border-bottom-color: var(--ts-accent); }
.ts-home-standings__table-wrap { padding: 38px clamp(18px, 5vw, 64px) 48px; overflow-x: auto; }
.ts-standings-table--full { min-width: 760px; font-family: var(--ts-mono); font-size: 13px; }
.ts-standings-table--full th { border-bottom: 3px solid var(--ts-accent); color: var(--ts-ink); background: transparent; }
.ts-standings-table--full th:nth-child(2), .ts-standings-table--full td:nth-child(2) { text-align: left; }
.ts-standings-table--full td { padding: 14px 12px; background: rgba(255,255,255,.18); }
.ts-standings-table--full tr.is-current-team td { background: color-mix(in srgb, var(--ts-accent) 13%, #e9eefb); }
.ts-standings-team-cell { display: flex; align-items: center; gap: 10px; font-weight: 750; }
.ts-standings-team-cell img { width: 24px; height: 24px; object-fit: contain; flex: 0 0 24px; }
.ts-home-matchup--result { grid-template-columns: 1fr auto 1fr; gap: clamp(16px, 4vw, 38px); }
.ts-home-result-score { font-family: var(--ts-display); font-size: clamp(30px, 4vw, 50px); line-height: 1; color: var(--ts-ink); white-space: nowrap; }
.ts-home-result-score.is-win, .ts-home-games__meta--result.is-win { color: var(--ts-good); }
.ts-home-result-score.is-loss, .ts-home-games__meta--result.is-loss { color: var(--ts-bad); }
.ts-home-countdown { margin-top: 14px; color: var(--ts-accent); font-family: var(--ts-mono); font-size: 12px; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
.ts-home-mini-results { list-style: none; margin: 18px 0 0; padding: 0; width: min(340px, 100%); font-family: var(--ts-mono); font-size: 11px; color: var(--ts-mute); }
.ts-home-mini-results li { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 9px 0; border-top: 1px solid var(--ts-line); }
.ts-home-mini-results strong { color: var(--ts-bad); font-weight: 750; }
@media (max-width: 760px) {
  .ts-home-standings__bar { flex-direction: column; align-items: flex-start; padding-top: 18px; gap: 14px; }
  .ts-home-standings__bar nav { width: 100%; overflow-x: auto; gap: 22px; min-height: 36px; }
  .ts-home-matchup--result { grid-template-columns: 1fr; }
}


/* v1.1.5 — remove parent theme chrome from standalone team microsites. */
body.ts-microsite-page .teba-sr-only,
body.ts-microsite-page a.teba-sr-only[href="#teba-content"],
body.ts-microsite-page .skip-link,
body.ts-microsite-page a[href="#content"].skip-link,
body.ts-microsite-page .teba-side-cart,
body.ts-microsite-page .teba-side-cart-overlay {
  display: none !important;
  visibility: hidden !important;
}

body.ts-microsite-page.teba-side-cart-is-open {
  overflow: auto !important;
}


/* v1.2.0: ticket source badges */
.ts-ticket-card__date { flex-wrap: wrap; }
.ts-ticket-card__scope { display:inline-flex; align-items:center; border:1px solid var(--ts-line); padding:4px 7px; font-style:normal; color:var(--ts-accent); background:var(--ts-paper); font-family:var(--ts-mono); font-size:9px; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
.ts-admin-note { margin-top:14px; font-family:var(--ts-ui); font-size:13px; color:var(--ts-mute); }


/* v1.2.9 — homepage game split visual alignment only.
   Matches the reference mockup without changing home/schedule data functions. */
body.ts-microsite-page .ts-home-games {
  grid-template-columns: 1fr 1fr;
  background: #f2efe6;
  border-top: 1px solid rgba(15, 20, 30, .08);
  border-bottom: 3px solid var(--ts-ink);
}
body.ts-microsite-page .ts-home-games__card {
  min-height: 335px;
  padding: 46px clamp(28px, 6vw, 76px) 34px;
  justify-content: flex-start;
}
body.ts-microsite-page .ts-home-games__card + .ts-home-games__card {
  border-left: 1px solid rgba(15, 20, 30, .12);
}
body.ts-microsite-page .ts-home-games .ts-kicker {
  display: block;
  align-self: flex-start;
  margin: 0 0 24px;
  color: var(--ts-accent);
  font-size: 11px;
  letter-spacing: .28em;
}
body.ts-microsite-page .ts-home-matchup {
  width: min(460px, 100%);
  margin: 0 auto 20px;
  gap: clamp(34px, 7vw, 76px);
}
body.ts-microsite-page .ts-home-matchup__team {
  min-width: 90px;
  gap: 12px;
  color: var(--ts-ink);
}
body.ts-microsite-page .ts-home-matchup__team img {
  width: 72px;
  height: 72px;
  object-fit: contain;
}
body.ts-microsite-page .ts-home-matchup__team strong {
  font-size: 18px;
  line-height: 1;
}
body.ts-microsite-page .ts-home-matchup__vs {
  color: rgba(15, 20, 30, .42);
  font-size: 18px;
  letter-spacing: .16em;
}
body.ts-microsite-page .ts-home-games__meta {
  min-height: 48px;
  color: rgba(15, 20, 30, .48);
  font-size: 13px;
  line-height: 1.85;
  letter-spacing: .12em;
}
body.ts-microsite-page .ts-home-countdown {
  min-height: 22px;
  margin: 20px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 10px;
  color: var(--ts-accent);
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: .22em;
  text-align: center;
}
body.ts-microsite-page .ts-home-countdown .ts-countdown__unit {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
}
body.ts-microsite-page .ts-home-countdown .ts-countdown__val,
body.ts-microsite-page .ts-home-countdown .ts-countdown__lbl,
body.ts-microsite-page .ts-home-countdown .ts-countdown__sep {
  display: inline;
}
body.ts-microsite-page .ts-home-games__actions {
  margin-top: 26px;
  gap: 12px;
}
body.ts-microsite-page .ts-home-games__actions .ts-btn {
  min-width: 160px;
  min-height: 54px;
  padding: 0 28px;
  border-color: var(--ts-accent);
  color: var(--ts-accent-dark);
  background: transparent;
}
body.ts-microsite-page .ts-home-games__actions .ts-btn--blue {
  color: #fff;
  background: var(--ts-accent);
}
body.ts-microsite-page .ts-home-matchup--result {
  width: min(520px, 100%);
}
body.ts-microsite-page .ts-home-result-score {
  font-size: clamp(38px, 4vw, 54px);
}
body.ts-microsite-page .ts-home-mini-results {
  width: min(430px, 100%);
  margin-top: 24px;
  font-size: 12px;
}
body.ts-microsite-page .ts-home-mini-results li {
  padding: 12px 0;
}
@media (max-width: 760px) {
  body.ts-microsite-page .ts-home-games { grid-template-columns: 1fr; }
  body.ts-microsite-page .ts-home-games__card { min-height: 0; padding: 34px 22px; }
  body.ts-microsite-page .ts-home-games__card + .ts-home-games__card { border-left: 0; border-top: 1px solid rgba(15,20,30,.12); }
  body.ts-microsite-page .ts-home-matchup { gap: 24px; }
  body.ts-microsite-page .ts-home-matchup__team img { width: 60px; height: 60px; }
  body.ts-microsite-page .ts-home-games__actions .ts-btn { width: 100%; min-width: 0; }
}


/* v1.3.3 — Owner Portal dashboard bridge */
.ts-page--owner-dashboard .ts-page-hero { border-bottom: 1px solid var(--ts-line); }
.ts-owner-dashboard-shell { max-width: 1180px; margin: 0 auto; padding: clamp(28px, 5vw, 64px) clamp(18px, 4vw, 48px); }
.ts-owner-dashboard-shell .teba-op-owner-command,
.ts-owner-dashboard-shell .teba-op-dashboard,
.ts-owner-dashboard-shell .teba-op-card { max-width: 100%; }

/* v1.3.6 — Super Admin Owner Portal preview notice */
.ts-owner-dashboard-shell .ts-owner-preview-notice {
    box-sizing: border-box;
    max-width: 1180px;
    margin: 0 auto 24px;
    border: 1px solid var(--ts-primary, #0b86d1);
    background: color-mix(in srgb, var(--ts-primary, #0b86d1) 10%, #fff 90%);
    padding: 18px 20px;
    font-family: var(--ts-ui, system-ui, sans-serif);
    color: var(--ts-text, #111827);
}
.ts-owner-dashboard-shell .ts-owner-preview-notice strong {
    display: block;
    margin-bottom: 4px;
    font-family: var(--ts-display, system-ui, sans-serif);
    text-transform: uppercase;
    letter-spacing: .02em;
}
.ts-owner-dashboard-shell .ts-owner-preview-notice a {
    font-weight: 750;
    color: var(--ts-primary, #0b86d1);
    text-decoration: underline;
}

/* ==========================================================================
   WOOCOMMERCE MICROSITE SHELL
   The ticket/product plugin retains ownership of the product-body design.
   ========================================================================== */
.ts-woocommerce-main {
  min-width: 0;
  width: 100%;
}

/* ========================================================================== 
   1.3.15 — Display font weight normalization
   ========================================================================== */
.ts-default-content {
  width: min(var(--ts-max), calc(100% - (2 * var(--ts-gutter))));
  margin-inline: auto;
  padding-block: clamp(48px, 7vw, 96px);
  min-height: 50vh;
}
.ts-default-content__article + .ts-default-content__article {
  margin-top: 48px;
  padding-top: 48px;
  border-top: 1px solid var(--ts-line);
}
.ts-default-content__title { margin-bottom: 28px; }
.ts-default-content__title a { color: inherit; text-decoration: none; }
.ts-default-content__body { font-family: var(--ts-ui); line-height: 1.7; }
.ts-default-content__body > *:first-child { margin-top: 0; }
.ts-default-content__body > *:last-child { margin-bottom: 0; }
.ts-default-content__body img { max-width: 100%; height: auto; }
