:root {
      --bg: #0f172a;
      --panel: #111827;
      --panel-2: #1f2937;
      --text: #f8fafc;
      --muted: #cbd5e1;
      --line: #334155;
      --accent: #38bdf8;
      --accent-2: #22c55e;
      --danger: #ef4444;
      --gold: #f59e0b;
      --chip: #1e293b;
      --shadow: 0 14px 40px rgba(0,0,0,.22);
      --radius: 18px;
    }


    * { box-sizing: border-box; }
    body {
      margin: 0;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      background:
        radial-gradient(circle at top center, rgba(185, 28, 28, 0.18), transparent 18%),
        linear-gradient(180deg, #08101e 0%, #0f172a 38%, #13213b 100%);
      color: var(--text);
    }

    .site-top {
      background:
        radial-gradient(circle at top center, rgba(185, 28, 28, 0.42), transparent 24%),
        linear-gradient(180deg, #05080f 0%, #0b1220 58%, #10203a 100%);
      border-bottom: 4px solid rgba(239,68,68,.75);
      box-shadow: inset 0 -24px 60px rgba(255,255,255,.06);
    }

    .site-top-inner {
      max-width: 1400px;
      margin: 0 auto;
      padding: 18px 22px 24px;
      text-align: center;
    }

    .brand-logo {
      display: block;
      width: min(580px, 92vw);
      margin: 0 auto 10px;
      filter: drop-shadow(0 14px 26px rgba(0,0,0,.45));
    }

    .brand-tagline {
      color: #dbe7f9;
      font-size: 15px;
      line-height: 1.45;
      max-width: 72ch;
      margin: 0 auto;
    }

    .wrap {
      max-width: 1400px;
      margin: 0 auto;
      padding: 22px;
    }

    .hero {
      display: grid;
      grid-template-columns: 1.5fr .8fr;
      gap: 18px;
      margin: -12px 0 18px;
    }

    .card {
      background: rgba(17,24,39,.92);
      border: 1px solid rgba(148,163,184,.16);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      backdrop-filter: blur(6px);
    }

    .card-inner {
      padding: 18px;
    }

    .favorite-box {
      padding: 2px 0;
    }

    .hero-main {
      padding: 26px;
      background:
        radial-gradient(circle at top right, rgba(56,189,248,.18), transparent 30%),
        radial-gradient(circle at bottom left, rgba(245,158,11,.14), transparent 28%),
        rgba(17,24,39,.92);
    }

    .eyebrow {
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: .18em;
      color: var(--accent);
      font-weight: 700;
      margin-bottom: 8px;
    }

    h1 {
      margin: 0 0 10px;
      font-size: clamp(28px, 4vw, 44px);
      line-height: 1.02;
    }

    .sub {
      color: var(--muted);
      font-size: 16px;
      line-height: 1.5;
      margin-bottom: 18px;
      max-width: 60ch;
    }

    .hero-actions, .mode-buttons {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }

    .hero-actions { margin-top: 10px; }
    .mode-buttons { margin-top: 14px; }

    .hero-quickbar {
      display: grid;
      grid-template-columns: minmax(180px, 260px) 1fr;
      gap: 10px;
      align-items: center;
      margin-top: 14px;
    }

    .hero-park-filter {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

.site-top-filter {
      max-width: 260px;
      margin: 16px auto 0;
    }

    .mobile-park-filter { display: none; }

.hero-park-filter label {
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: .14em;
      color: var(--muted);
      font-weight: 700;
    }

    .hero-park-filter select {
      width: 100%;
      min-height: 46px;
      border-radius: 12px;
      background: rgba(15,23,42,.85);
      border: 1px solid var(--line);
      color: var(--text);
      padding: 10px 12px;
    }

    .mode-buttons.compact {
      margin-top: 0;
      background: rgba(15,23,42,.72);
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 6px;
      gap: 6px;
    }

    .mode-buttons.compact .btn {
      flex: 1 1 0;
      min-height: 44px;
      border-radius: 10px;
      padding: 10px 12px;
    }

    .short-label { display: none; }

    button, .btn, select, input {
      font: inherit;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      border-radius: 12px;
      padding: 12px 14px;
      text-decoration: none;
      border: 1px solid transparent;
      cursor: pointer;
      transition: .18s ease;
    }

    .btn.primary {
      background: var(--accent);
      color: #062033;
      font-weight: 800;
    }

    .btn.secondary {
      background: transparent;
      border-color: rgba(148,163,184,.2);
      color: var(--text);
    }

    .btn.ghost {
      background: rgba(30,41,59,.6);
      border-color: rgba(148,163,184,.16);
      color: var(--text);
    }

    .btn.small {
      padding: 9px 12px;
      border-radius: 999px;
      font-size: 14px;
    }

    .btn:hover { transform: translateY(-1px); }
    a.btn { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }

    .btn.active {
      background: rgba(56,189,248,.18);
      border-color: rgba(56,189,248,.55);
      color: #dff6ff;
    }

    .hero-side {
      padding: 20px;
      display: grid;
      gap: 14px;
      align-content: start;
    }

    .stat-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
    }

    .stat {
      padding: 16px;
      border-radius: 14px;
      background: var(--panel-2);
      border: 1px solid rgba(148,163,184,.14);
    }

    .stat .label {
      color: var(--muted);
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: .08em;
    }

    .stat .value {
      font-size: 26px;
      font-weight: 800;
      margin-top: 8px;
    }

    .controls {
      padding: 18px;
      margin-bottom: 18px;
    }

    .controls-grid {
      display: grid;
      grid-template-columns: repeat(6, minmax(0,1fr));
      gap: 12px;
    }

    .field {
      display: grid;
      gap: 6px;
    }

    .field label {
      font-size: 12px;
      color: var(--muted);
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .08em;
    }

    .field input, .field select {
      width: 100%;
      background: #0b1220;
      color: var(--text);
      border: 1px solid rgba(148,163,184,.18);
      border-radius: 12px;
      padding: 12px;
      min-height: 46px;
      outline: none;
    }

    .field input:focus, .field select:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(56,189,248,.12);
    }

    .toolbar {
      display: flex;
      justify-content: space-between;
      gap: 14px;
      flex-wrap: wrap;
      align-items: center;
      margin-top: 14px;
    }

    .chips {
      display: none;
      flex-wrap: wrap;
      gap: 8px;
    }

    .chip {
      border: 1px solid rgba(148,163,184,.18);
      background: var(--chip);
      color: var(--text);
      padding: 8px 12px;
      border-radius: 999px;
      cursor: pointer;
      font-size: 13px;
    }

    .chip.active {
      background: rgba(56,189,248,.18);
      border-color: rgba(56,189,248,.55);
      color: #dff6ff;
    }

    .meta {
      color: var(--muted);
      font-size: 14px;
    }

    .table-card {
      overflow: hidden;
    }

    .table-wrap {
      overflow: auto;
      max-height: 72vh;
    }

    table {
      width: 100%;
      border-collapse: collapse;
      min-width: 980px;
      background: transparent;
    }

    thead th {
      position: sticky;
      top: 0;
      z-index: 1;
      background: #0c1426;
      text-align: left;
      padding: 14px 14px;
      font-size: 12px;
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing: .08em;
      border-bottom: 1px solid rgba(148,163,184,.18);
    }

    tbody td {
      padding: 14px;
      border-bottom: 1px solid rgba(148,163,184,.12);
      vertical-align: top;
    }

    tbody tr:hover {
      background: rgba(30,41,59,.45);
    }

    .pill {
      display: inline-block;
      padding: 6px 10px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 700;
      background: rgba(34,197,94,.12);
      color: #bbf7d0;
      border: 1px solid rgba(34,197,94,.24);
    }

    .small { font-size: 13px; color: var(--muted); }
    .contact { white-space: nowrap; }
    .empty {
      padding: 38px 18px;
      text-align: center;
      color: var(--muted);
    }

    .footer-note {
      margin-top: 14px;
      color: var(--muted);
      font-size: 13px;
    }

    .upload-box {
      padding: 16px;
      background: rgba(15,23,42,.65);
      border: 1px dashed rgba(148,163,184,.25);
      border-radius: 14px;
    }

    code.inline {
      background: rgba(148,163,184,.12);
      padding: 2px 6px;
      border-radius: 6px;
      font-size: .95em;
    }

    .view-section[hidden] { display: none !important; }

    .section-title {
      margin: 0 0 12px;
      font-size: 20px;
    }

    .section-subtitle {
      margin: 0 0 16px;
      color: var(--muted);
      font-size: 14px;
    }

    .tonight-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
      gap: 14px;
    }

    .park-block {
      padding: 16px;
      border-radius: 16px;
      background: rgba(15,23,42,.7);
      border: 1px solid rgba(148,163,184,.14);
    }

    .park-block h3 {
      margin: 0 0 10px;
      font-size: 18px;
    }

    .mini-game {
      padding: 10px 0;
      border-top: 1px solid rgba(148,163,184,.12);
    }

    .mini-game:first-of-type { border-top: 0; padding-top: 0; }

    .mini-time {
      font-size: 13px;
      color: var(--accent);
      font-weight: 700;
      margin-bottom: 4px;
    }

    .mini-field {
      font-size: 12px;
      color: var(--muted);
      margin-top: 2px;
    }

    .notice-bar {
      margin-top: 16px;
      padding: 12px 14px;
      border-radius: 14px;
      background: rgba(245,158,11,.12);
      border: 1px solid rgba(245,158,11,.26);
      color: #fde68a;
      font-size: 14px;
    }

    .alert-list {
      display: grid;
      gap: 12px;
    }

    .alert-banner {
      display: flex;
      gap: 12px;
      align-items: flex-start;
      padding: 14px 16px;
      border-radius: 16px;
      border: 1px solid rgba(148,163,184,.16);
      background: rgba(15,23,42,.82);
    }

    .alert-banner .icon {
      width: 34px;
      height: 34px;
      border-radius: 999px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      flex: 0 0 auto;
      margin-top: 2px;
    }

    .alert-banner.warning { border-color: rgba(245,158,11,.45); background: rgba(245,158,11,.11); }
    .alert-banner.warning .icon { background: rgba(245,158,11,.18); }
    .alert-banner.danger { border-color: rgba(239,68,68,.45); background: rgba(239,68,68,.11); }
    .alert-banner.danger .icon { background: rgba(239,68,68,.18); }
    .alert-banner.info { border-color: rgba(56,189,248,.45); background: rgba(56,189,248,.11); }
    .alert-banner.info .icon { background: rgba(56,189,248,.18); }

    .admin-divider { margin: 22px 0; border-top: 1px solid rgba(148,163,184,.16); }
    .admin-two-col { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; }
    @media (max-width: 820px) { .admin-two-col { grid-template-columns: 1fr; } }
    .alert-banner.success { border-color: rgba(34,197,94,.45); background: rgba(34,197,94,.11); }
    .alert-banner.success .icon { background: rgba(34,197,94,.18); }

    .alert-title {
      font-size: 15px;
      font-weight: 800;
      margin-bottom: 3px;
    }

    .alert-copy {
      color: var(--muted);
      font-size: 14px;
      line-height: 1.45;
    }

    .board-grid {
      display: grid;
      gap: 14px;
    }

    .board-park {
      padding: 16px;
      border-radius: 16px;
      background: rgba(15,23,42,.7);
      border: 1px solid rgba(148,163,184,.14);
    }

    .board-park-head {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: baseline;
      margin-bottom: 12px;
      flex-wrap: wrap;
    }

    .board-park h3 {
      margin: 0;
      font-size: 20px;
    }

    .board-fields {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
      gap: 12px;
    }

    .field-column {
      border-radius: 14px;
      background: rgba(30,41,59,.65);
      border: 1px solid rgba(148,163,184,.12);
      overflow: hidden;
    }

    .field-column-head {
      padding: 12px 14px;
      background: rgba(8,16,30,.8);
      border-bottom: 1px solid rgba(148,163,184,.12);
      font-weight: 800;
      letter-spacing: .02em;
    }

    .board-game {
      padding: 12px 14px;
      border-top: 1px solid rgba(148,163,184,.12);
    }

    .board-game:first-of-type { border-top: 0; }

    .board-time {
      color: var(--accent);
      font-weight: 800;
      font-size: 14px;
      margin-bottom: 4px;
    }

    .board-division {
      margin-top: 4px;
      color: var(--muted);
      font-size: 12px;
    }

    .mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

    .admin-panel {
      padding: 20px;
      margin-top: 18px;
    }

    .admin-help {
      color: var(--muted);
      font-size: 14px;
      line-height: 1.55;
      margin: 0 0 16px;
    }

    .admin-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0,1fr));
      gap: 12px;
      align-items: end;
    }

    .admin-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 14px;
    }

    .admin-list {
      display: grid;
      gap: 12px;
      margin-top: 14px;
    }

    .admin-item, .admin-empty {
      padding: 14px 16px;
      border-radius: 14px;
      background: rgba(15,23,42,.7);
      border: 1px solid rgba(148,163,184,.14);
    }

    .admin-item-head {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: flex-start;
    }


    @media (max-width: 1100px) {
      .hero { grid-template-columns: 1fr; }
      .controls-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    }

    @media (max-width: 700px) {
      .wrap { padding: 12px; }
      .site-top-inner { padding: 18px 14px 20px; }
      .brand-logo { margin-bottom: 8px; }
      .brand-tagline { font-size: 14px; }
      .controls { padding: 14px; margin-bottom: 14px; }
      .controls-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
      .stat-grid { grid-template-columns: 1fr 1fr; }
      .toolbar { align-items: flex-start; gap: 10px; }
      .hero { gap: 12px; margin-bottom: 14px; }
      .hero-main { padding: 18px; }
      .hero-side { padding: 16px; gap: 12px; }
      .hero-quickbar { grid-template-columns: 1fr; gap: 8px; margin-top: 12px; }
      .site-top-filter { display: none; }
      .mobile-park-filter { display: flex; }
      .hero-actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 10px; }
      .hero-actions .btn { width: 100%; min-height: 42px; }
      .mode-buttons.compact { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; padding: 5px; }
      .mode-buttons.compact .btn { width: 100%; min-height: 38px; padding: 8px 8px; font-size: 13px; }
      .full-label { display: none; }
      .short-label { display: inline; }
      .post-schedule-tools { grid-template-columns: 1fr; gap: 12px; }
      .card-inner { padding: 16px; }
      .table-wrap { max-height: none; }
    }

    @media (max-width: 520px) {
      .wrap { padding: 10px; }
      .site-top-inner { padding: 16px 12px 18px; }
      .controls-grid { grid-template-columns: 1fr; }
      .stat-grid { grid-template-columns: 1fr; }
      .hero-actions, .mode-buttons { gap: 8px; }
      .btn.small { width: 100%; }
      .hero-park-filter label { display: none; }
      .hero-park-filter select { min-height: 42px; }
      h1 { font-size: 28px; }
      .sub { font-size: 14px; margin-bottom: 14px; }
      .card-inner { padding: 14px; }
      .stat { padding: 14px; }
    }
    #authGate {
      position: fixed;
      inset: 0;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 20px;
      background: rgba(2, 6, 23, 0.78);
      backdrop-filter: blur(8px);
      z-index: 9999;
    }
    body.auth-locked {
      overflow: hidden;
    }
    body.auth-locked .site-top,
    body.auth-locked .wrap {
      filter: blur(4px);
      pointer-events: none;
      user-select: none;
    }
    body.auth-locked #authGate {
      display: flex;
    }
    .auth-card {
      width: min(100%, 460px);
      background: linear-gradient(180deg, rgba(15,23,42,.98), rgba(17,24,39,.98));
      border: 1px solid rgba(148,163,184,.18);
      border-radius: 22px;
      box-shadow: 0 24px 80px rgba(0,0,0,.38);
      padding: 22px;
    }
    .auth-title { margin: 0 0 8px; font-size: 28px; }
    .auth-sub { color: var(--muted); margin: 0 0 18px; line-height: 1.5; }
    .auth-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
    .auth-status { margin-top: 12px; color: var(--muted); min-height: 1.2em; }
    .auth-status.error { color: #fca5a5; }
    .auth-status.success { color: #86efac; }
    .auth-remember {
      display: flex;
      align-items: flex-start;
      gap: 9px;
      margin-top: 12px;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.35;
      cursor: pointer;
      user-select: none;
    }
    .auth-remember input {
      width: 16px;
      height: 16px;
      margin-top: 2px;
      accent-color: var(--accent);
    }
    .top-linkbar { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
    .contact-admin-grid { display:grid; grid-template-columns: 1.2fr .8fr; gap:18px; align-items:start; }
    @media (max-width: 900px) { .contact-admin-grid { grid-template-columns: 1fr; } }

    .admin-nav-tabs {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
      padding: 12px 14px;
      margin-bottom: 18px;
      background: rgba(15,23,42,.72);
      border: 1px solid rgba(148,163,184,.14);
      border-radius: 14px;
      box-shadow: var(--shadow);
    }

    .admin-nav-label {
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--muted);
      margin-right: 6px;
    }

    .admin-nav-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 40px;
      padding: 10px 14px;
      border-radius: 10px;
      text-decoration: none;
      border: 1px solid rgba(148,163,184,.16);
      background: rgba(15,23,42,.78);
      color: var(--text);
      font-weight: 700;
      transition: .18s ease;
    }

    .admin-nav-link:hover {
      transform: translateY(-1px);
      border-color: rgba(56,189,248,.42);
      background: rgba(20,33,56,.95);
    }

    .admin-nav-link.active {
      background: rgba(56,189,248,.16);
      border-color: rgba(56,189,248,.42);
      color: #dff6ff;
    }

    .admin-overview-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 320px;
      gap: 18px;
      align-items: start;
      margin-bottom: 18px;
    }

    .admin-overview-main {
      min-width: 0;
    }

    .admin-overview-side {
      min-width: 0;
    }

    .dashboard-panel {
      background: rgba(12,18,30,.94);
      border: 1px solid rgba(148,163,184,.12);
      border-radius: 14px;
      box-shadow: 0 8px 22px rgba(0,0,0,.14);
      backdrop-filter: none;
    }

    .dashboard-panel .section-title {
      margin-bottom: 8px;
    }

    .dashboard-panel .section-subtitle,
    .dashboard-panel .admin-help {
      margin-bottom: 14px;
      color: #c7d2e1;
    }

    .post-schedule-tools {
      display: grid;
      grid-template-columns: 1fr;
      gap: 18px;
      margin-bottom: 18px;
    }

    .admin-item,
    .admin-empty {
      border-radius: 10px;
      background: rgba(10,18,32,.86);
      border: 1px solid rgba(148,163,184,.12);
      box-shadow: none;
    }

    .admin-item-head {
      gap: 14px;
    }

    .admin-list {
      gap: 10px;
    }

    .top-linkbar {
      margin-bottom: 0;
    }

    @media (min-width: 1024px) {
      body {
        background:
          linear-gradient(180deg, #0a101d 0%, #101826 100%);
      }

      .site-top {
        background:
          linear-gradient(180deg, #070b14 0%, #0d1422 100%);
        border-bottom: 1px solid rgba(148,163,184,.16);
        box-shadow: none;
      }

      .site-top-inner {
        text-align: left;
        padding: 18px 22px 20px;
      }

      .brand-logo {
        margin: 0 0 8px;
        width: min(360px, 42vw);
      }

      .brand-tagline {
        margin: 0;
        max-width: 86ch;
        color: #b8c6d8;
      }

      .site-top-filter {
        margin: 14px 0 0;
      }

      .wrap {
        max-width: 1640px;
        padding: 18px 22px 28px;
      }

      .hero {
        gap: 16px;
        margin: 0 0 18px;
      }

      .hero-main {
        padding: 22px 24px;
        background: rgba(12,18,30,.94);
      }

      .controls,
      .table-card,
      .admin-panel,
      .post-schedule-tools .card,
      .card.controls,
      .card.hero-main,
      .card.hero-side,
      .dashboard-panel {
        border-radius: 12px;
        border-color: rgba(148,163,184,.12);
        box-shadow: 0 8px 22px rgba(0,0,0,.14);
      }

      .controls {
        padding: 16px 18px;
      }

      .controls-grid {
        grid-template-columns: repeat(6, minmax(0,1fr));
        gap: 10px;
      }

      .field label {
        font-size: 11px;
        letter-spacing: .06em;
      }

      .field input,
      .field select {
        min-height: 40px;
        padding: 10px 12px;
        border-radius: 8px;
        background: #0b1220;
      }

      .btn {
        min-height: 40px;
        border-radius: 8px;
        padding: 10px 14px;
      }

      .btn.small {
        min-height: 32px;
        padding: 7px 11px;
      }


      thead th {
        background: #111827;
        padding: 12px 12px;
      }

      tbody td {
        padding: 12px;
      }

      .post-schedule-tools {
        grid-template-columns: 320px 1fr;
        align-items: start;
      }

      .post-schedule-tools > .card:last-child {
        display: none;
      }

      .admin-overview-grid {
        grid-template-columns: 320px minmax(0, 1fr);
      }

      .admin-overview-grid .admin-overview-side .card {
        position: sticky;
        top: 18px;
      }

      #adminPanel {
        padding: 18px;
      }

      #adminPanel > .admin-grid {
        grid-template-columns: repeat(4, minmax(0,1fr));
        gap: 12px;
        padding: 16px;
        background: rgba(8,15,28,.72);
        border: 1px solid rgba(148,163,184,.12);
        border-radius: 10px;
        margin-bottom: 14px;
      }

      #adminPanel > .admin-actions {
        margin-top: 0;
        margin-bottom: 14px;
        padding: 12px 14px;
        background: rgba(8,15,28,.72);
        border: 1px solid rgba(148,163,184,.12);
        border-radius: 10px;
      }

      #adminPanel > .admin-item,
      #adminPanel > .admin-list > .admin-item,
      #adminPanel > .admin-list > .admin-empty {
        padding: 14px 16px;
      }

      .admin-two-col {
        gap: 14px;
      }
    }

    @media (max-width: 1023px) {
      .admin-overview-grid {
        grid-template-columns: 1fr;
      }

      .admin-nav-tabs {
        gap: 8px;
      }

      .admin-nav-link {
        flex: 1 1 calc(50% - 8px);
      }
    }

 
  

    @media (min-width: 1180px) {
      body {
        background: #f0f0f1;
        color: #1d2327;
      }

      body.auth-locked .site-top,
      body.auth-locked .wrap {
        filter: blur(3px);
      }

      .site-top {
        position: sticky;
        top: 0;
        z-index: 30;
        background: #ffffff;
        border-bottom: 1px solid #dcdcde;
        box-shadow: none;
      }

      .site-top-inner {
        max-width: none;
        padding: 14px 24px 12px 24px;
        text-align: left;
      }

      .brand-logo {
        width: 190px;
        margin: 0 0 6px;
        filter: none;
      }

      .brand-tagline {
        margin: 0;
        max-width: 90ch;
        color: #50575e;
        font-size: 13px;
      }

      .site-top-filter {
        display: none;
      }

      .wrap {
        max-width: none;
        padding: 22px 24px 40px 24px;
      }

      .admin-nav-tabs {
        position: fixed;
        inset: 0 auto 0 0;
        width: 240px;
        overflow-y: auto;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 50px 0 24px;
        margin: 0;
        background: #1d2327;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        z-index: 40;
      }

      .admin-nav-label {
        display: block;
        padding: 0 20px 10px;
        margin: 0;
        color: #8c8f94;
        font-size: 11px;
        letter-spacing: .08em;
      }

      .admin-nav-link {
        justify-content: flex-start;
        min-height: 42px;
        padding: 11px 20px;
        border: 0;
        border-left: 4px solid transparent;
        border-radius: 0;
        background: transparent;
        color: #f0f0f1;
        font-weight: 500;
      }

      .admin-nav-link:hover {
        transform: none;
        background: #2c3338;
        color: #ffffff;
        border-left-color: #72aee6;
      }

      .admin-nav-link.active {
        background: #2271b1;
        color: #ffffff;
        border-left-color: #72aee6;
      }

      .hero {
        grid-template-columns: 1fr;
        gap: 0;
        margin: 0 0 18px;
      }

      .hero-main,
      .dashboard-panel,
      .card,
      .controls,
      .table-card,
      .admin-panel,
      .post-schedule-tools .card,
      .stat,
      .admin-item,
      .admin-empty,
      .field-column,
      .park-block,
      .board-park {
        background: #ffffff;
        color: #1d2327;
        border: 1px solid #dcdcde;
        border-radius: 4px;
        box-shadow: none;
        backdrop-filter: none;
      }

      .hero-main {
        padding: 22px 24px;
      }

      .eyebrow,
      .field label,
      .stat .label {
        color: #2271b1;
      }

      h1,
      .section-title,
      .stage-title,
      .alert-title,
      .park-block h3,
      .board-park h3,
      .favorite-name {
        color: #1d2327;
      }

      .sub,
      .section-subtitle,
      .admin-help,
      .meta,
      .small,
      .alert-copy,
      .brand-tagline,
      .favorite-empty,
      .mini-field,
      .board-division,
      .notice-bar,
      .footer-admin-link,
      .footer-note {
        color: #50575e;
      }

      .controls,
      .admin-panel {
        padding: 18px;
      }

      .post-schedule-tools {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 18px;
      }

      .stat {
        background: #f6f7f7;
      }

      .field input,
      .field select,
      .hero-park-filter select,
      #adminSignedInDisplay,
      #adminScope {
        background: #ffffff;
        color: #2c3338;
        border: 1px solid #8c8f94;
        border-radius: 4px;
        box-shadow: none;
      }

      .field input:focus,
      .field select:focus,
      .hero-park-filter select:focus {
        border-color: #2271b1;
        box-shadow: 0 0 0 1px #2271b1;
      }

      .btn {
        border-radius: 3px;
        box-shadow: none;
      }

      .btn:hover {
        transform: none;
      }

      .btn.primary {
        background: #2271b1;
        color: #ffffff;
        border-color: #2271b1;
      }

      .btn.primary:hover {
        background: #135e96;
        border-color: #135e96;
      }

      .btn.secondary {
        background: #f6f7f7;
        color: #2271b1;
        border-color: #2271b1;
      }

      .btn.secondary:hover {
        background: #f0f0f1;
      }

      .btn.ghost {
        background: #f6f7f7;
        color: #2c3338;
        border-color: #c3c4c7;
      }

      .btn.active {
        background: #2271b1;
        border-color: #2271b1;
        color: #ffffff;
      }

      .mode-buttons.compact {
        background: #f6f7f7;
        border: 1px solid #dcdcde;
        border-radius: 4px;
        padding: 4px;
      }

      .mode-buttons.compact .btn {
        border-radius: 3px;
      }


      table {
        background: #ffffff;
      }

      thead th {
        background: #f6f7f7;
        color: #50575e;
        border-bottom: 1px solid #dcdcde;
      }

      tbody td {
        color: #1d2327;
        border-bottom: 1px solid #f0f0f1;
      }

      tbody tr:hover {
        background: #f6f7f7;
      }

      .pill {
        background: #edfaef;
        color: #0a7a2f;
        border-color: #b8e6c3;
      }

      .alert-banner {
        background: #ffffff;
        border: 1px solid #dcdcde;
        border-left-width: 4px;
        border-radius: 4px;
      }

      .alert-banner.warning { border-left-color: #dba617; background: #fff8e5; }
      .alert-banner.danger { border-left-color: #d63638; background: #fcf0f1; }
      .alert-banner.info { border-left-color: #2271b1; background: #f0f6fc; }
      .alert-banner.success { border-left-color: #00a32a; background: #edfaef; }

      .alert-banner .icon {
        background: rgba(0,0,0,.04) !important;
        color: #1d2327;
      }

      .admin-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
      }

      .admin-item-head {
        align-items: center;
      }

      .admin-list {
        gap: 12px;
      }

      .top-linkbar {
        justify-content: flex-start;
      }

      .board-park-head,
      .admin-item-head {
        padding-bottom: 10px;
        border-bottom: 1px solid #f0f0f1;
      }

      .field-column-head {
        background: #f6f7f7;
        color: #1d2327;
        border-bottom: 1px solid #dcdcde;
      }

      .board-game,
      .mini-game {
        border-top-color: #f0f0f1;
      }

      .board-time,
      .mini-time {
        color: #2271b1;
      }

      .footer-admin-link a {
        color: #2271b1;
      }

      #notificationsBlock,
      #dataSetup,
      #adminPanel {
        margin-top: 18px;
      }
    }


    /* Admin-only cleanup */
    .hero {
      display: none !important;
    }

    .admin-shell {
      display: block;
    }
    .admin-sidebar {
      display: none;
    }
    .admin-sidebar-title {
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: .08em;
      color: #6b7280;
      font-weight: 700;
      margin: 0 0 10px;
      padding: 0 4px;
    }
    .admin-sidebar-nav {
      display: grid;
      gap: 4px;
    }
    .admin-sidebar-link {
      appearance: none;
      border: 0;
      background: transparent;
      color: #1f2937;
      text-align: left;
      padding: 10px 12px;
      border-radius: 6px;
      font-weight: 600;
      cursor: pointer;
      transition: background .15s ease, color .15s ease;
    }
    .admin-sidebar-link:hover {
      background: #f3f4f6;
    }
    .admin-sidebar-link.active {
      background: #2271b1;
      color: #fff;
    }
    .admin-content {
      min-width: 0;
    }
    .admin-pane {
      display: none;
    }
    .admin-pane.active {
      display: block;
    }
    .admin-pane-stack {
      display: grid;
      gap: 18px;
    }
    .schedule-week-nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 14px;
      padding: 12px 14px;
      border: 1px solid #dcdcde;
      border-radius: 6px;
      background: #fff;
    }
    .schedule-week-nav[hidden] { display: none !important; }
    .schedule-week-label {
      font-weight: 600;
      color: #1d2327;
      text-align: center;
      flex: 1 1 auto;
    }

    .schedule-frame {
      border: 1px solid #dcdcde;
      border-radius: 8px;
      background: #fff;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      min-height: 0;
    }
    .schedule-frame .schedule-week-nav {
      margin-bottom: 0;
      border: 0;
      border-bottom: 1px solid #dcdcde;
      border-radius: 0;
      flex: 0 0 auto;
    }
    .schedule-frame .table-wrap {
      flex: 1 1 auto;
      overflow: auto;
      max-height: 68vh;
    }
    @media (max-width: 1023px) {
      .schedule-frame .table-wrap {
        max-height: 60vh;
      }
    }
    @media (min-width: 1180px) {
      .schedule-frame {
        border-radius: 4px;
      }
      .schedule-frame .schedule-week-nav {
        background: #f6f7f7;
      }
      .schedule-frame .table-wrap {
        background: #fff;
        max-height: 70vh;
      }
    }
    .wp-admin-look .schedule-week-nav .btn.secondary,
    .wp-admin-look .schedule-week-nav .btn.ghost {
      min-height: 34px;
      padding: 6px 12px;
    }
    @media (min-width: 1101px) {
      .admin-shell {
        display: grid;
        grid-template-columns: 220px minmax(0, 1fr);
        gap: 22px;
        align-items: start;
        margin-top: 18px;
      }
      .admin-sidebar {
        display: block;
        position: sticky;
        top: 18px;
        align-self: start;
        background: #fff;
        border: 1px solid #dcdcde;
        border-radius: 8px;
        padding: 14px 10px;
        box-shadow: 0 1px 1px rgba(0,0,0,.04);
      }
      .admin-pane-stack {
        gap: 20px;
      }
    }


    /* === 31N Admin UI rebuild: desktop command center + mobile game-day mode === */
    :root {
      --admin-bg: #f3f4f6;
      --admin-ink: #111827;
      --admin-muted: #6b7280;
      --admin-border: #d1d5db;
      --admin-card: #ffffff;
      --admin-blue: #2271b1;
      --admin-blue-dark: #135e96;
      --admin-sidebar: #111827;
      --admin-sidebar-2: #1f2937;
    }

    body.admin-shell-ready {
      background: var(--admin-bg) !important;
      color: var(--admin-ink) !important;
    }

    body.admin-shell-ready .site-top {
      position: sticky;
      top: 0;
      z-index: 80;
      background: #ffffff !important;
      border-bottom: 1px solid var(--admin-border) !important;
      box-shadow: 0 1px 2px rgba(0,0,0,.04) !important;
    }

    body.admin-shell-ready .site-top-inner {
      max-width: none !important;
      min-height: 58px;
      padding: 10px 18px !important;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      text-align: left !important;
    }

    body.admin-shell-ready .brand-logo {
      width: 150px !important;
      margin: 0 !important;
      filter: none !important;
    }

    .admin-top-status {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      flex-wrap: wrap;
      min-width: 0;
      color: var(--admin-muted);
      font-size: 13px;
    }

    .admin-mobile-menu-btn {
      display: none;
      border: 1px solid var(--admin-border);
      background: #ffffff;
      color: var(--admin-ink);
      border-radius: 8px;
      padding: 9px 11px;
      font-weight: 800;
      cursor: pointer;
    }

    body.admin-shell-ready .wrap {
      max-width: none !important;
      padding: 0 !important;
    }

    .admin-shell {
      display: grid !important;
      grid-template-columns: 250px minmax(0, 1fr);
      min-height: calc(100vh - 59px);
      margin: 0 !important;
      gap: 0 !important;
      align-items: stretch !important;
    }

    .admin-sidebar {
      display: block !important;
      position: sticky !important;
      top: 59px !important;
      height: calc(100vh - 59px);
      overflow-y: auto;
      background: var(--admin-sidebar) !important;
      border: 0 !important;
      border-radius: 0 !important;
      box-shadow: none !important;
      padding: 16px 12px 24px !important;
      z-index: 70;
    }

    .admin-sidebar-title {
      color: #9ca3af !important;
      padding: 0 10px 12px !important;
      margin: 0 !important;
      font-size: 11px !important;
      text-transform: uppercase;
      letter-spacing: .12em;
    }

    .admin-sidebar-group { margin: 0 0 18px; }

    .admin-sidebar-group-title {
      color: #6b7280;
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: .12em;
      padding: 8px 10px 6px;
      font-weight: 800;
    }

    .admin-sidebar-nav { display: block !important; }

    .admin-sidebar-link,
    .admin-sidebar-link-external {
      width: 100%;
      display: flex !important;
      align-items: center;
      gap: 10px;
      min-height: 42px;
      padding: 10px 12px !important;
      border-radius: 9px !important;
      border: 0 !important;
      background: transparent !important;
      color: #e5e7eb !important;
      text-decoration: none;
      text-align: left;
      font-weight: 650;
      cursor: pointer;
    }

    .admin-sidebar-link:hover,
    .admin-sidebar-link-external:hover {
      background: var(--admin-sidebar-2) !important;
      color: #ffffff !important;
    }

    .admin-sidebar-link.active {
      background: var(--admin-blue) !important;
      color: #ffffff !important;
    }

    .admin-sidebar-link-external {
      color: #cbd5e1 !important;
      font-weight: 600;
    }

    .admin-sidebar-divider {
      height: 1px;
      background: rgba(255,255,255,.09);
      margin: 12px 8px;
    }

    .admin-content {
      min-width: 0;
      padding: 22px 24px 48px;
    }

    .admin-pane { display: none !important; }
    .admin-pane.active { display: block !important; }

    .admin-pane-stack {
      display: grid !important;
      gap: 16px !important;
    }

    .admin-pane-heading {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 16px;
      margin-bottom: 16px;
    }

    .admin-pane-kicker {
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: .12em;
      color: var(--admin-blue);
      font-weight: 900;
      margin-bottom: 4px;
    }

    .admin-pane-title {
      margin: 0;
      color: var(--admin-ink);
      font-size: clamp(24px, 3vw, 34px);
      line-height: 1.1;
    }

    .admin-pane-desc {
      margin: 6px 0 0;
      max-width: 78ch;
      color: var(--admin-muted);
      font-size: 14px;
      line-height: 1.45;
    }

    .admin-dashboard-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
      margin-bottom: 16px;
    }

    .admin-dashboard-card {
      background: var(--admin-card);
      border: 1px solid var(--admin-border);
      border-radius: 12px;
      padding: 16px;
      box-shadow: 0 1px 2px rgba(0,0,0,.04);
    }

    .admin-dashboard-card .label {
      color: var(--admin-muted);
      font-size: 12px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .08em;
    }

    .admin-dashboard-card .value {
      color: var(--admin-ink);
      font-size: 28px;
      font-weight: 900;
      margin-top: 8px;
    }

    .admin-quick-actions {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      margin-bottom: 16px;
    }

    .admin-quick-action {
      border: 1px solid var(--admin-border);
      background: #fff;
      color: var(--admin-ink);
      border-radius: 12px;
      padding: 14px;
      min-height: 74px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
      gap: 4px;
      cursor: pointer;
      text-align: left;
      font-weight: 900;
      box-shadow: 0 1px 2px rgba(0,0,0,.04);
    }

    .admin-quick-action span {
      color: var(--admin-muted);
      font-weight: 600;
      font-size: 12px;
    }

    body.admin-shell-ready .card,
    body.admin-shell-ready .controls,
    body.admin-shell-ready .table-card,
    body.admin-shell-ready .admin-panel,
    body.admin-shell-ready .admin-item,
    body.admin-shell-ready .admin-empty,
    body.admin-shell-ready .dashboard-panel,
    body.admin-shell-ready .park-block,
    body.admin-shell-ready .board-park,
    body.admin-shell-ready .field-column,
    body.admin-shell-ready .stat {
      background: #ffffff !important;
      color: var(--admin-ink) !important;
      border: 1px solid var(--admin-border) !important;
      border-radius: 10px !important;
      box-shadow: 0 1px 2px rgba(0,0,0,.04) !important;
      backdrop-filter: none !important;
    }

    body.admin-shell-ready .section-title,
    body.admin-shell-ready .alert-title,
    body.admin-shell-ready h2,
    body.admin-shell-ready h3 {
      color: var(--admin-ink) !important;
    }

    body.admin-shell-ready .section-subtitle,
    body.admin-shell-ready .admin-help,
    body.admin-shell-ready .small,
    body.admin-shell-ready .meta,
    body.admin-shell-ready .alert-copy,
    body.admin-shell-ready .mini-field,
    body.admin-shell-ready .board-division {
      color: var(--admin-muted) !important;
    }

    body.admin-shell-ready .field input,
    body.admin-shell-ready .field select,
    body.admin-shell-ready #adminSignedInDisplay,
    body.admin-shell-ready #adminScope {
      background: #ffffff !important;
      color: var(--admin-ink) !important;
      border: 1px solid #9ca3af !important;
      border-radius: 8px !important;
      min-height: 42px;
    }

    body.admin-shell-ready .field label {
      color: #374151 !important;
      font-size: 11px !important;
      font-weight: 900 !important;
    }

    body.admin-shell-ready .btn {
      border-radius: 8px !important;
      min-height: 40px;
      box-shadow: none !important;
    }

    body.admin-shell-ready .btn:hover { transform: none !important; }

    body.admin-shell-ready .btn.primary {
      background: var(--admin-blue) !important;
      color: #ffffff !important;
      border-color: var(--admin-blue) !important;
    }

    body.admin-shell-ready .btn.primary:hover {
      background: var(--admin-blue-dark) !important;
      border-color: var(--admin-blue-dark) !important;
    }

    body.admin-shell-ready .btn.secondary {
      background: #ffffff !important;
      color: var(--admin-blue) !important;
      border-color: var(--admin-blue) !important;
    }

    body.admin-shell-ready .btn.ghost {
      background: #f9fafb !important;
      color: #374151 !important;
      border-color: var(--admin-border) !important;
    }

    body.admin-shell-ready .btn.active {
      background: var(--admin-blue) !important;
      color: #fff !important;
      border-color: var(--admin-blue) !important;
    }

    body.admin-shell-ready .schedule-frame {
      border: 1px solid var(--admin-border) !important;
      border-radius: 10px !important;
      overflow: hidden;
      background: #fff !important;
    }

    body.admin-shell-ready .schedule-frame .table-wrap {
      max-height: calc(100vh - 300px) !important;
      min-height: 360px;
    }

    body.admin-shell-ready table { background: #ffffff !important; }

    body.admin-shell-ready thead th {
      background: #f9fafb !important;
      color: #4b5563 !important;
      border-bottom: 1px solid var(--admin-border) !important;
      font-size: 11px !important;
    }

    body.admin-shell-ready tbody td {
      color: var(--admin-ink) !important;
      border-bottom: 1px solid #e5e7eb !important;
    }

    body.admin-shell-ready tbody tr:hover { background: #f9fafb !important; }

    body.admin-shell-ready .pill {
      background: #ecfdf5 !important;
      color: #047857 !important;
      border-color: #a7f3d0 !important;
    }

    .mobile-director-panel {
      display: none;
      background: #ffffff;
      border: 1px solid var(--admin-border);
      border-radius: 14px;
      padding: 14px;
      margin-bottom: 14px;
      box-shadow: 0 1px 2px rgba(0,0,0,.04);
    }

    .mobile-director-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 12px;
    }

    .mobile-director-action {
      border: 1px solid var(--admin-border);
      background: #f9fafb;
      color: var(--admin-ink);
      border-radius: 12px;
      padding: 14px 12px;
      min-height: 72px;
      font-weight: 900;
      text-align: left;
      cursor: pointer;
    }

    .mobile-director-action span {
      display: block;
      color: var(--admin-muted);
      font-size: 12px;
      font-weight: 600;
      margin-top: 3px;
    }

    @media (max-width: 1100px) {
      body.admin-shell-ready .site-top-inner { padding: 9px 12px !important; }
      .admin-mobile-menu-btn { display: inline-flex; align-items:center; gap:6px; }
      .admin-shell { grid-template-columns: 1fr !important; }
      .admin-sidebar {
        position: fixed !important;
        top: 59px !important;
        left: 0;
        bottom: 0;
        width: min(84vw, 310px) !important;
        height: auto !important;
        transform: translateX(-105%);
        transition: transform .18s ease;
        box-shadow: 14px 0 34px rgba(0,0,0,.25) !important;
      }
      body.admin-menu-open .admin-sidebar { transform: translateX(0); }
      .admin-content { padding: 14px 12px 84px !important; }
      .admin-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .admin-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .mobile-director-panel { display: block; }
      .admin-pane-heading { display: block; }
      body.admin-shell-ready .schedule-frame .table-wrap { max-height: 58vh !important; min-height: 300px; }
    }

    @media (max-width: 640px) {
      body.admin-shell-ready .brand-logo { width: 118px !important; }
      .admin-top-status { font-size: 11px; }
      .admin-dashboard-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
      .admin-dashboard-card { padding: 12px; }
      .admin-dashboard-card .value { font-size: 22px; }
      .admin-quick-actions { grid-template-columns: 1fr; }
      .mobile-director-grid { grid-template-columns: 1fr 1fr; }
      body.admin-shell-ready .controls-grid,
      body.admin-shell-ready .admin-grid,
      body.admin-shell-ready .admin-two-col { grid-template-columns: 1fr !important; }
      body.admin-shell-ready .table-wrap { overflow-x: auto; }
      body.admin-shell-ready table { min-width: 900px; }
    }



    .tournament-controls {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 12px;
      margin-bottom: 14px;
    }
    .tournament-layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
      gap: 14px;
      align-items: start;
    }
    .tournament-card {
      background: #fff;
      border: 1px solid var(--admin-border, #d1d5db);
      border-radius: 10px;
      padding: 14px;
      margin-bottom: 10px;
    }
    .tournament-game-title { font-weight: 900; color: var(--admin-ink, #111827); }
    .tournament-game-meta { color: var(--admin-muted, #6b7280); font-size: 13px; margin-top: 4px; }
    .tournament-score-row { display: grid; grid-template-columns: 1fr 84px; gap: 10px; align-items: center; margin-top: 10px; }
    .tournament-score-row input { width: 100%; min-height: 38px; border: 1px solid #9ca3af; border-radius: 8px; padding: 8px; }
    .tournament-bracket-grid { display: grid; gap: 10px; }
    .tournament-status { color: var(--admin-muted, #6b7280); font-size: 13px; margin-top: 8px; }
    @media (max-width: 900px) {
      .tournament-controls, .tournament-layout { grid-template-columns: 1fr; }
    }


    .tournament-controls { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:12px; align-items:end; }
    .tournament-builder-grid { display:grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .45fr); gap:14px; align-items:start; }
    .tournament-team-list { display:grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap:10px; }
    .tournament-team-option { display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid var(--admin-border, #d1d5db); border-radius:10px; background:#fff; }
    .tournament-team-option input { margin-top:3px; }
    .tournament-card { border:1px solid var(--admin-border, #d1d5db); border-radius:12px; padding:12px; background:#fff; margin-bottom:10px; }
    .tournament-game-title { font-weight:900; color:var(--admin-ink, #111827); }
    .tournament-game-meta { margin-top:4px; color:var(--admin-muted, #6b7280); font-size:13px; }
    .tournament-score-row { display:grid; grid-template-columns: minmax(0, 1fr) 90px; gap:10px; align-items:center; margin-top:10px; }
    .tournament-score-row input { width:100%; min-height:38px; border:1px solid #9ca3af; border-radius:8px; padding:8px; }
    .tournament-bracket-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap:12px; }
    .tournament-status { padding:10px 12px; border:1px solid var(--admin-border, #d1d5db); border-radius:10px; background:#f9fafb; color:var(--admin-muted, #6b7280); }
    @media (max-width: 900px) { .tournament-controls, .tournament-builder-grid { grid-template-columns:1fr; } }



    /* Tournament drag/drop scheduling board */
    .tournament-scheduler-layout { display:grid; grid-template-columns: 300px minmax(0, 1fr) 300px; gap:14px; align-items:start; }
    .tournament-scheduler-controls { display:grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap:10px; align-items:end; margin-bottom:12px; }
    .tournament-unscheduled-list, .tournament-stage-list { display:grid; gap:10px; max-height:62vh; overflow:auto; padding-right:2px; }
    .tournament-pool-card { border:1px solid var(--admin-border,#d1d5db); border-radius:12px; padding:11px 12px; background:#fff; cursor:grab; user-select:none; box-shadow:0 1px 2px rgba(0,0,0,.04); }
    .tournament-pool-card:hover { border-color:#2271b1; }
    .tournament-pool-card.dragging { opacity:.5; cursor:grabbing; }
    .tournament-pool-card-title { font-weight:900; color:var(--admin-ink,#111827); }
    .tournament-pool-card-meta { margin-top:4px; color:var(--admin-muted,#6b7280); font-size:12px; line-height:1.35; }
    .tournament-grid-wrap { overflow:auto; border:1px solid var(--admin-border,#d1d5db); border-radius:12px; background:#fff; padding:10px; max-height:72vh; }
    .tournament-day-lane { display:grid; grid-template-columns: 112px minmax(0, 1fr); gap:10px; margin-bottom:12px; }
    .tournament-day-label { position:sticky; left:0; z-index:2; background:#f9fafb; border:1px solid var(--admin-border,#d1d5db); border-radius:10px; padding:11px; min-height:92px; display:flex; flex-direction:column; justify-content:center; }
    .tournament-day-label strong { font-size:15px; }
    .tournament-day-label span { color:var(--admin-muted,#6b7280); font-size:12px; font-weight:700; margin-top:3px; }
    .tournament-field-track { display:flex; gap:10px; min-width:max-content; }
    .tournament-field-col { width:155px; flex:0 0 155px; display:grid; gap:7px; }
    .tournament-field-head { background:#f9fafb; border:1px solid var(--admin-border,#d1d5db); border-radius:10px; padding:8px; text-align:center; font-weight:900; font-size:12px; min-height:44px; }
    .tournament-field-head small { display:block; color:var(--admin-muted,#6b7280); font-weight:600; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .tournament-slot { min-height:62px; border:1px dashed #cbd5e1; border-radius:11px; background:#f9fafb; padding:6px; }
    .tournament-slot-label { color:#64748b; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; margin-bottom:5px; }
    .tournament-slot-open { color:#94a3b8; font-size:12px; text-align:center; padding:8px 4px; font-weight:700; }
    .tournament-slot.drop-target { background:#ecfdf5; border-color:#22c55e; box-shadow:0 0 0 2px rgba(34,197,94,.12) inset; }
    .tournament-slot.drop-warning { background:#fffbeb; border-color:#f59e0b; box-shadow:0 0 0 2px rgba(245,158,11,.14) inset; }
    .tournament-slot.drop-conflict { background:#fef2f2; border-color:#ef4444; }
    .tournament-slot.drop-conflict::after,
    .tournament-slot.drop-warning::after {
      content: attr(data-drop-message);
      display:block;
      margin-top:5px;
      padding:5px 6px;
      border-radius:7px;
      font-size:10px;
      line-height:1.2;
      font-weight:800;
    }
    .tournament-slot.drop-conflict::after { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
    .tournament-slot.drop-warning::after { background:#fef3c7; color:#92400e; border:1px solid #fde68a; }
    .tournament-assigned-card { border:1px solid rgba(34,113,177,.28); border-radius:10px; background:#eff6ff; padding:7px; cursor:grab; font-size:12px; line-height:1.25; }
    .tournament-assigned-card.staged { border-color:#f59e0b; background:#fffbeb; }
    .tournament-stage-card { border:1px solid var(--admin-border,#d1d5db); border-radius:12px; padding:10px; background:#fff; }
    .tournament-stage-card strong { display:block; margin-bottom:5px; }
    @media (max-width: 1180px) { .tournament-scheduler-layout { grid-template-columns:1fr; } .tournament-scheduler-controls { grid-template-columns:1fr 1fr; } .tournament-unscheduled-list,.tournament-stage-list { max-height:none; } }
    @media (max-width: 640px) { .tournament-scheduler-controls { grid-template-columns:1fr; } .tournament-day-lane { grid-template-columns:86px minmax(0,1fr); } .tournament-field-col { width:145px; flex-basis:145px; } }

  

    /* Tournament scheduler v2: compact tray + full-week instant-save board */
    .tournament-command-center { overflow:visible; max-width:100%; }
    .tournament-scheduler-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:12px; }
    .tournament-save-mode-pill { flex:0 0 auto; background:#ecfdf5; color:#047857; border:1px solid #a7f3d0; border-radius:999px; padding:7px 11px; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
    .tournament-scheduler-controls.compact { grid-template-columns: 1.05fr 1.05fr 1.1fr 1fr 1fr auto; margin-bottom:10px; }
    .tournament-tray-card { border:1px solid var(--admin-border,#d1d5db); border-radius:12px; background:#f9fafb; padding:8px 10px 10px; margin:8px 0 12px; overflow:hidden; }
    .tournament-tray-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:6px; }
    .tournament-tray-head .alert-title { font-size:14px; line-height:1.15; }
    .tournament-tray-head .small { font-size:12px; }
    .tournament-unscheduled-list.compact {
      display:grid;
      grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
      gap:6px;
      width:100%;
      max-height:128px;
      overflow-y:auto;
      overflow-x:hidden;
      padding:2px 4px 2px 2px;
      overscroll-behavior:contain;
    }
    .tournament-unscheduled-list.compact .admin-empty { grid-column:1 / -1; min-width:0; padding:10px; font-size:13px; }
    .tournament-pool-card { min-width:0; min-height:46px; padding:6px 7px; border-radius:8px; }
    .tournament-pool-card-title { font-size:12px; line-height:1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .tournament-pool-card-meta { font-size:10px; line-height:1.15; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .tournament-grid-wrap.full-week { width:100%; max-width:100%; max-height:72vh; overflow:auto; padding:10px; border-radius:12px; }
    .tournament-park-section { margin-bottom:18px; min-width:980px; }
    .tournament-park-band { position:sticky; left:0; z-index:4; background:#111827; color:#fff; border-radius:10px; padding:9px 12px; font-weight:900; display:flex; justify-content:space-between; gap:12px; align-items:center; }
    .tournament-week-grid { width:100%; min-width:1120px; border-collapse:separate; border-spacing:0 7px; background:transparent !important; }
    .tournament-week-grid th { position:sticky; top:0; z-index:3; background:#f9fafb !important; border-bottom:1px solid var(--admin-border,#d1d5db); color:#374151 !important; text-align:center; padding:8px; font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
    .tournament-week-grid th:first-child { left:0; z-index:5; text-align:left; min-width:150px; }
    .tournament-week-grid td { vertical-align:top; padding:0 5px 0 0; border:0 !important; background:transparent !important; }
    .tournament-field-row-label { position:sticky; left:0; z-index:2; min-width:150px; background:#fff; border:1px solid var(--admin-border,#d1d5db); border-radius:10px; padding:9px; font-weight:900; font-size:13px; line-height:1.2; box-shadow:4px 0 8px rgba(255,255,255,.75); }
    .tournament-field-row-label small { display:block; color:var(--admin-muted,#6b7280); font-weight:600; margin-top:3px; font-size:11px; }
    .tournament-day-cell { min-width:138px; background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:5px; display:grid; gap:5px; min-height:78px; }
    .tournament-day-cell.unavailable { background:#f3f4f6; color:#9ca3af; align-content:center; text-align:center; font-size:12px; font-weight:800; border-style:dashed; }
    .tournament-slot { min-height:44px; padding:5px; border-radius:9px; }
    .tournament-slot-label { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:4px; }
    .tournament-slot-open { padding:6px 3px; font-size:11px; }
    .tournament-assigned-card { padding:6px; border-radius:8px; font-size:11px; }
    .tournament-assigned-card strong { display:block; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .tournament-card-actions { display:flex; gap:5px; align-items:center; margin-top:5px; }
    .tournament-card-actions input[type="time"] { width:82px; min-height:28px !important; padding:3px 5px !important; font-size:11px; border-radius:6px !important; }
    .tournament-card-actions .btn { min-height:28px !important; padding:4px 7px !important; font-size:11px; border-radius:6px !important; }
    .tournament-saving { opacity:.55; pointer-events:none; }
    @media (max-width: 1180px) { .tournament-scheduler-controls.compact { grid-template-columns:1fr 1fr; } .tournament-scheduler-head { display:block; } .tournament-save-mode-pill { display:inline-flex; margin-top:8px; } .tournament-grid-wrap.full-week { max-height:68vh; } }
    @media (max-width: 640px) { .tournament-scheduler-controls.compact { grid-template-columns:1fr; } .tournament-unscheduled-list.compact { grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); max-height:150px; } .tournament-week-grid { min-width:980px; } }





    /* Tournament scheduling polish: collapsible menu + sticky unscheduled tray */
    .admin-sidebar-collapse-btn {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:6px;
      min-height:34px;
      padding:7px 10px;
      border:1px solid var(--admin-border,#d1d5db);
      border-radius:8px;
      background:#f9fafb;
      color:#111827;
      font-weight:900;
      cursor:pointer;
      white-space:nowrap;
    }
    .admin-sidebar-collapse-btn:hover { background:#f3f4f6; }
    body.admin-sidebar-collapsed .admin-shell {
      grid-template-columns: 0 minmax(0, 1fr) !important;
    }
    body.admin-sidebar-collapsed .admin-sidebar {
      width:0 !important;
      min-width:0 !important;
      padding:0 !important;
      overflow:hidden !important;
      border:0 !important;
    }
    body.admin-sidebar-collapsed .admin-content {
      padding-left:18px !important;
      padding-right:18px !important;
    }
    body.admin-sidebar-collapsed .admin-sidebar-collapse-btn {
      background:#2271b1;
      border-color:#2271b1;
      color:#fff;
    }
    .tournament-command-center .tournament-tray-card {
      position: sticky;
      top: 64px;
      z-index: 95;
      box-shadow: 0 8px 18px rgba(0,0,0,.10);
    }
    .tournament-command-center .tournament-tray-card::after {
      content:'';
      position:absolute;
      left:0; right:0; bottom:-10px;
      height:10px;
      pointer-events:none;
      background:linear-gradient(180deg, rgba(243,244,246,.85), rgba(243,244,246,0));
    }
    @media (max-width: 1100px) {
      .admin-sidebar-collapse-btn { display:none; }
      body.admin-sidebar-collapsed .admin-shell { grid-template-columns:1fr !important; }
      body.admin-sidebar-collapsed .admin-sidebar {
        width:min(84vw,310px) !important;
        padding:16px 12px 24px !important;
      }
      .tournament-command-center .tournament-tray-card { top: 58px; z-index: 95; }
    }


    /* Tournament scheduler v3: dates down side, fields across top, per-day horizontal scroll */
    .tournament-grid-wrap.full-week {
      max-height: none !important;
      overflow: visible !important;
      padding: 8px !important;
    }
    .tournament-date-section {
      display: grid;
      grid-template-columns: 132px minmax(0, 1fr);
      gap: 8px;
      align-items: stretch;
      margin-bottom: 12px;
      max-width: 100%;
    }
    .tournament-date-label {
      position: sticky;
      left: 0;
      z-index: 8;
      background: #111827;
      color: #fff;
      border-radius: 10px;
      padding: 10px;
      min-height: 96px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      box-shadow: 2px 0 8px rgba(0,0,0,.10);
    }
    .tournament-date-label strong {
      font-size: 16px;
      line-height: 1.1;
    }
    .tournament-date-label span {
      color: #cbd5e1;
      font-size: 12px;
      font-weight: 800;
      margin-top: 4px;
    }
    .tournament-date-scroll {
      overflow-x: auto;
      overflow-y: hidden;
      max-width: 100%;
      border: 1px solid var(--admin-border,#d1d5db);
      border-radius: 12px;
      background: #fff;
      padding: 8px;
      overscroll-behavior-x: contain;
    }
    .tournament-date-scroll::-webkit-scrollbar { height: 12px; }
    .tournament-date-scroll::-webkit-scrollbar-thumb { background:#cbd5e1; border-radius:999px; border:3px solid #fff; }
    .tournament-field-lane {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: 142px;
      gap: 8px;
      width: max-content;
      min-width: 100%;
    }
    .tournament-field-day-col {
      display: grid;
      grid-template-rows: auto 1fr;
      gap: 6px;
      min-width: 142px;
    }
    .tournament-field-abbr-head {
      position: sticky;
      top: 0;
      z-index: 3;
      background: #f9fafb;
      border: 1px solid var(--admin-border,#d1d5db);
      border-radius: 9px;
      padding: 7px 6px;
      text-align: center;
      font-weight: 1000;
      font-size: 12px;
      color: #111827;
      line-height: 1.1;
      min-height: 40px;
    }
    .tournament-field-abbr-head small {
      display: block;
      color: var(--admin-muted,#6b7280);
      font-size: 9px;
      font-weight: 800;
      margin-top: 2px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .tournament-field-day-slots {
      display: grid;
      gap: 5px;
      align-content: start;
      min-height: 88px;
      background: #fff;
      border: 1px solid #e5e7eb;
      border-radius: 10px;
      padding: 5px;
    }
    .tournament-field-day-slots.unavailable {
      background: #f3f4f6;
      border-style: dashed;
      color: #9ca3af;
      align-content: center;
      justify-items: center;
      font-size: 12px;
      font-weight: 900;
    }
    .tournament-date-section .tournament-slot {
      min-height: 42px;
      padding: 5px;
      border-radius: 8px;
    }
    .tournament-date-section .tournament-assigned-card {
      padding: 5px;
      font-size: 10px;
      line-height: 1.18;
    }
    .tournament-date-section .tournament-assigned-card strong {
      font-size: 11px;
    }
    .tournament-date-section .tournament-card-actions {
      gap: 4px;
      flex-wrap: wrap;
    }
    .tournament-date-section .tournament-card-actions input[type="time"] {
      width: 76px;
      min-height: 26px !important;
      font-size: 10px;
    }
    .tournament-date-section .tournament-card-actions .btn {
      min-height: 26px !important;
      padding: 3px 6px !important;
      font-size: 10px;
    }
    @media (max-width: 760px) {
      .tournament-date-section { grid-template-columns: 86px minmax(0,1fr); }
      .tournament-date-label { min-height: 84px; padding: 8px; }
      .tournament-date-label strong { font-size: 13px; }
      .tournament-date-label span { font-size: 10px; }
      .tournament-field-lane { grid-auto-columns: 132px; }
      .tournament-field-day-col { min-width: 132px; }
    }



    .tournament-round-chip { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:2px 6px; background:#e0f2fe; color:#075985; font-size:10px; font-weight:900; margin-right:4px; white-space:nowrap; }
    .tournament-pool-card-title .tournament-round-chip { margin-right:5px; }


    .tournament-save-mode-pill.staged-mode { background:#fffbeb; color:#92400e; border-color:#fcd34d; }
    .tournament-stage-summary {
      margin-top:10px;
      border:1px solid var(--admin-border,#d1d5db);
      border-radius:12px;
      background:#fff;
      padding:10px 12px;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:12px;
      flex-wrap:wrap;
    }
    .tournament-stage-summary.has-staged { border-color:#f59e0b; background:#fffbeb; }
    .tournament-stage-actions { margin-top:0 !important; }
    .tournament-stage-actions .btn { min-height:34px !important; padding:7px 11px !important; }
    .tournament-pool-card.staged,
    .tournament-assigned-card.staged { border-color:#f59e0b !important; background:#fffbeb !important; }
    .tournament-slot.staged-drop { border-color:#f59e0b; background:#fffbeb; }




    /* Tournament compact game cards */
    .tournament-age-dot {
      display:inline-flex;
      width:10px;
      height:10px;
      border-radius:999px;
      flex:0 0 10px;
      box-shadow:0 0 0 1px rgba(17,24,39,.12) inset;
      vertical-align:middle;
    }
    .tournament-age-6u { background:#38bdf8; }
    .tournament-age-8u { background:#22c55e; }
    .tournament-age-10u { background:#f59e0b; }
    .tournament-age-12u { background:#a855f7; }
    .tournament-age-default { background:#64748b; }
    .tournament-type-chip,
    .tournament-round-chip {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:20px;
      border-radius:999px;
      padding:1px 5px;
      font-size:9px;
      line-height:1.35;
      font-weight:1000;
      white-space:nowrap;
    }
    .tournament-round-chip { background:#e0f2fe; color:#075985; margin-right:4px; }
    .tournament-type-chip { background:#f1f5f9; color:#334155; border:1px solid #cbd5e1; }
    .tournament-type-chip.bracket { background:#fef3c7; color:#92400e; border-color:#fcd34d; }
    .tournament-card-meta-compact {
      display:flex;
      align-items:center;
      gap:4px;
      margin-top:4px;
      min-width:0;
    }
    .tournament-card-icon-btn {
      appearance:none;
      border:1px solid #d1d5db;
      background:#fff;
      color:#374151;
      border-radius:6px;
      width:23px;
      height:23px;
      min-height:23px !important;
      padding:0 !important;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      font-size:12px;
      line-height:1;
      cursor:pointer;
      margin-left:auto;
    }
    .tournament-card-icon-btn:hover { background:#f3f4f6; border-color:#9ca3af; }
    .tournament-card-icon-btn.clear { margin-left:0; color:#991b1b; }
    .tournament-date-section .tournament-assigned-card {
      padding:4px 5px;
      font-size:10px;
      line-height:1.05;
      border-left-width:4px;
    }
    .tournament-assigned-card.tournament-age-6u { border-left-color:#38bdf8 !important; }
    .tournament-assigned-card.tournament-age-8u { border-left-color:#22c55e !important; }
    .tournament-assigned-card.tournament-age-10u { border-left-color:#f59e0b !important; }
    .tournament-assigned-card.tournament-age-12u { border-left-color:#a855f7 !important; }
    .tournament-assigned-card.tournament-age-default { border-left-color:#64748b !important; }
    .tournament-date-section .tournament-assigned-card strong {
      font-size:11px;
      line-height:1.12;
    }
    .tournament-date-section .tournament-card-actions { display:none !important; }
    .tournament-pool-card {
      border-left-width:4px;
    }
    .tournament-pool-card.tournament-age-6u { border-left-color:#38bdf8 !important; }
    .tournament-pool-card.tournament-age-8u { border-left-color:#22c55e !important; }
    .tournament-pool-card.tournament-age-10u { border-left-color:#f59e0b !important; }
    .tournament-pool-card.tournament-age-12u { border-left-color:#a855f7 !important; }
    .tournament-pool-card.tournament-age-default { border-left-color:#64748b !important; }


    /* Tournament bracket visual board + compact bracket cards */
    .tournament-bracket-board { display:grid; gap:14px; }
    .tournament-bracket-section { border:1px solid var(--admin-border,#d1d5db); border-radius:12px; background:#fff; overflow:hidden; }
    .tournament-bracket-section-head { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 12px; background:#111827; color:#fff; font-weight:900; }
    .tournament-bracket-section-head small { color:#cbd5e1; font-weight:700; }
    .tournament-bracket-rounds { display:flex; gap:12px; overflow-x:auto; padding:12px; align-items:stretch; }
    .tournament-bracket-round { min-width:220px; flex:0 0 220px; display:grid; align-content:start; gap:9px; }
    .tournament-bracket-round-title { position:sticky; top:0; z-index:1; background:#f9fafb; border:1px solid #e5e7eb; border-radius:9px; padding:7px 9px; font-size:12px; font-weight:900; color:#374151; text-transform:uppercase; letter-spacing:.05em; }
    .tournament-bracket-game { border:1px solid #d1d5db; border-radius:11px; background:#fff; padding:9px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
    .tournament-bracket-game.championship { border-color:#f59e0b; background:#fffbeb; }
    .tournament-bracket-game-head { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:7px; }
    .tournament-bracket-game-head strong { font-size:12px; }
    .tournament-bracket-game-head span { font-size:10px; font-weight:900; border:1px solid #d1d5db; border-radius:999px; padding:2px 6px; background:#f9fafb; color:#374151; }
    .tournament-bracket-team-row { display:flex; justify-content:space-between; align-items:center; gap:8px; border-top:1px solid #f3f4f6; padding:6px 0; font-size:12px; }
    .tournament-bracket-team-row:first-of-type { border-top:0; }
    .tournament-bracket-team-row .score { color:#111827; font-weight:900; min-width:24px; text-align:right; }
    .tournament-bracket-meta { color:#6b7280; font-size:11px; line-height:1.3; margin-top:6px; }
    .tournament-bracket-winner { margin-top:6px; color:#047857; font-size:11px; font-weight:900; }
    @media (max-width:640px) { .tournament-bracket-round { min-width:200px; flex-basis:200px; } }



    /* Tournament bracket print-style view + seed placeholder controls */
    .tournament-top-controls-slim { grid-template-columns: minmax(180px, 260px) minmax(0, 1fr) !important; align-items:end; }
    .tournament-bracket-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:0 0 12px; }
    .tournament-bracket-board { display:grid; gap:16px; }
    .tournament-bracket-section { border:1px solid var(--admin-border,#d1d5db); border-radius:12px; background:#fff; overflow:hidden; }
    .tournament-bracket-section-head { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 12px; background:#111827; color:#fff; font-weight:900; }
    .tournament-bracket-print-scroll { overflow-x:auto; padding:14px; }
    .tournament-bracket-print { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(210px, 235px); gap:34px; align-items:stretch; min-width:max-content; }
    .tournament-bracket-print-round { display:grid; grid-template-rows:auto 1fr; gap:10px; }
    .tournament-bracket-print-round-title { background:#f9fafb; border:1px solid #e5e7eb; border-radius:9px; padding:7px 9px; font-size:12px; font-weight:900; color:#374151; text-transform:uppercase; letter-spacing:.05em; }
    .tournament-bracket-print-games { display:grid; grid-template-rows:repeat(var(--bracket-rows, 15), 28px); gap:0; min-height:220px; align-items:center; }
    .tournament-bracket-game { position:relative; z-index:2; border:1px solid #d1d5db; border-radius:10px; background:#fff; padding:8px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
    .tournament-bracket-game::after { content:''; position:absolute; right:-35px; top:50%; width:34px; border-top:2px solid #cbd5e1; display:block; }
    .tournament-bracket-print-round:last-child .tournament-bracket-game::after { display:none; }
    .tournament-bracket-game.championship { border-color:#f59e0b; background:#fffbeb; }
    .tournament-bracket-game-head { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:6px; font-size:11px; color:#374151; }
    .tournament-bracket-team-row { display:flex; justify-content:space-between; align-items:center; gap:8px; border-top:1px solid #f3f4f6; padding:5px 0; font-size:12px; min-height:26px; }
    .tournament-bracket-team-row:first-of-type { border-top:0; }
    .tournament-bracket-team-row .score { color:#111827; font-weight:900; min-width:22px; text-align:right; }
    .tournament-bracket-meta { color:#6b7280; font-size:10px; line-height:1.25; margin-top:5px; }
    .tournament-bracket-winner { margin-top:5px; color:#047857; font-size:10px; font-weight:900; }
    .tournament-bracket-seed-needed { display:inline-flex; align-items:center; gap:6px; background:#fff7ed; color:#9a3412; border:1px solid #fed7aa; border-radius:999px; padding:6px 10px; font-size:12px; font-weight:900; }
    #seedBracketBtn[hidden] { display:none !important; }
    #seedBracketBtn.is-hidden { display:none !important; }
    @media (max-width:640px) { .tournament-top-controls-slim { grid-template-columns:1fr !important; } .tournament-bracket-print { grid-auto-columns:minmax(190px, 210px); gap:24px; } .tournament-bracket-game::after { right:-25px; width:24px; } }

    /* Facilities manager */
    .facilities-grid { display:grid; grid-template-columns: 1fr; gap:14px; }
    .facilities-toolbar { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:10px 0 14px; }
    .facilities-table-wrap { overflow:auto; border:1px solid var(--admin-border,#d1d5db); border-radius:10px; background:#fff; }
    .facilities-table { width:100%; min-width:920px; border-collapse:collapse; }
    .facilities-table th, .facilities-table td { padding:10px; border-bottom:1px solid #e5e7eb; vertical-align:top; }
    .facilities-table th { background:#f9fafb; color:#374151; font-size:11px; text-transform:uppercase; letter-spacing:.06em; text-align:left; }
    .facilities-table input[type="text"], .facilities-table input[type="time"], .facilities-table select { width:100%; min-height:36px; border:1px solid #9ca3af; border-radius:7px; padding:7px 8px; background:#fff; color:#111827; }
    .facilities-checks { display:flex; flex-wrap:wrap; gap:8px 12px; font-size:12px; }
    .facilities-checks label { display:inline-flex; gap:4px; align-items:center; white-space:nowrap; }
    .facilities-day-grid { display:grid; grid-template-columns: repeat(7, minmax(120px, 1fr)); gap:8px; }
    .facilities-day-card { border:1px solid #d1d5db; border-radius:10px; padding:10px; background:#fff; }
    .facilities-day-title { font-weight:900; margin-bottom:8px; }
    .facilities-muted-note { color:var(--admin-muted,#6b7280); font-size:12px; line-height:1.4; }
    .facilities-park-section { border:1px solid var(--admin-border,#d1d5db); border-radius:12px; background:#fff; overflow:hidden; margin-bottom:14px; }
    .facilities-park-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; flex-wrap:wrap; padding:12px 14px; background:#f9fafb; border-bottom:1px solid #e5e7eb; }
    .facilities-park-title { font-weight:1000; color:var(--admin-ink,#111827); }
    .facilities-park-meta { color:var(--admin-muted,#6b7280); font-size:12px; margin-top:3px; line-height:1.35; }
    .facilities-park-fields { padding:12px; }
    @media (max-width:900px) { .facilities-day-grid { grid-template-columns:1fr 1fr; } }

  
    /* Bracket alignment fix: line cards up by seed slot instead of simple flex spacing */
    .tournament-bracket-print-games {
      display: grid !important;
      grid-template-rows: repeat(var(--bracket-rows, 15), 26px) !important;
      justify-content: stretch !important;
      align-content: stretch !important;
      gap: 0 !important;
      min-height: calc(var(--bracket-rows, 15) * 26px) !important;
    }
    .tournament-bracket-game {
      align-self: center;
      min-height: 78px;
    }


    /* Bracket connector polish: add vertical join spines between feeder games */
    .tournament-bracket-print {
      gap: 58px !important;
    }
    .tournament-bracket-game.has-incoming-connector {
      overflow: visible;
    }
    .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector {
      position:absolute;
      left:-58px;
      top:-18px;
      bottom:-18px;
      width:58px;
      pointer-events:none;
      z-index:0;
    }
    .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::before {
      content:'';
      position:absolute;
      left:0;
      top:0;
      bottom:0;
      border-left:2px solid #cbd5e1;
    }
    .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::after {
      content:'';
      position:absolute;
      left:0;
      top:50%;
      width:58px;
      border-top:2px solid #cbd5e1;
      transform:translateY(-1px);
    }
    .tournament-bracket-print-round:first-child .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector,
    .tournament-bracket-print-round:first-child .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::before,
    .tournament-bracket-print-round:first-child .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::after {
      display:none;
    }
    @media (max-width:640px) {
      .tournament-bracket-print { gap: 42px !important; }
      .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector {
        left:-42px;
        width:42px;
      }
      .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::after {
        width:42px;
      }
    }


    /* Bracket connector alignment refinement: vertical spine sits at the END of feeder horizontals */
    .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector {
      left: -24px !important;
      width: 24px !important;
    }
    .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::before {
      left: 0 !important;
    }
    .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::after {
      left: 0 !important;
      width: 24px !important;
    }
    @media (max-width:640px) {
      .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector {
        left: -20px !important;
        width: 20px !important;
      }
      .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::after {
        width: 20px !important;
      }
    }



    /* Bracket connector exact overlay: draw lines from real card/row positions */
    .tournament-bracket-print-scroll {
      position: relative !important;
    }
    .tournament-bracket-print {
      position: relative !important;
      z-index: 2;
    }
    .tournament-bracket-game {
      position: relative !important;
      z-index: 3 !important;
    }
    .tournament-bracket-game::after,
    .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector,
    .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::before,
    .tournament-bracket-game.has-incoming-connector .tournament-bracket-in-connector::after {
      display: none !important;
    }
    .tournament-bracket-svg {
      position: absolute;
      left: 14px;
      top: 14px;
      width: calc(100% - 28px);
      height: calc(100% - 28px);
      pointer-events: none;
      overflow: visible;
      z-index: 1;
    }
    .tournament-bracket-svg path {
      fill: none;
      stroke: #9ca3af;
      stroke-width: 2;
      stroke-linecap: square;
      shape-rendering: crispEdges;
    }


    /* Tournament bracket scheduling helpers */
    .tournament-pool-card.bracket-playable {
      border-color:#22c55e !important;
      background:#ecfdf5 !important;
      box-shadow:0 0 0 2px rgba(34,197,94,.16) inset;
    }
    .tournament-pool-card.bracket-playable .tournament-type-chip.bracket {
      background:#dcfce7;
      color:#166534;
      border-color:#86efac;
    }
    .tournament-playable-tag {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      margin-left:auto;
      border-radius:999px;
      padding:1px 5px;
      background:#dcfce7;
      color:#166534;
      border:1px solid #86efac;
      font-size:9px;
      font-weight:1000;
      white-space:nowrap;
    }


    /* Admin status toast + mobile tournament cleanup */
    .admin-toast {
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 10000;
      max-width: min(420px, calc(100vw - 32px));
      padding: 12px 14px;
      border-radius: 12px;
      background: #111827;
      color: #fff;
      box-shadow: 0 18px 45px rgba(0,0,0,.24);
      font-weight: 800;
      font-size: 14px;
      line-height: 1.35;
      opacity: 0;
      transform: translateY(10px);
      pointer-events: none;
      transition: opacity .18s ease, transform .18s ease;
    }
    .admin-toast.show { opacity: 1; transform: translateY(0); }
    .admin-toast.error { background:#991b1b; }
    .developer-preview-banner {
      display:flex;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
      margin:0 0 16px;
      padding:10px 12px;
      border:1px solid #dba617;
      border-left:4px solid #dba617;
      border-radius:10px;
      background:#fff8e5;
      color:#3f2a00;
      font-size:13px;
      line-height:1.35;
    }
    .developer-preview-current {
      margin:0 0 14px;
      padding:10px 12px;
      border:1px solid var(--admin-border,#d1d5db);
      border-radius:10px;
      background:#f9fafb;
      color:#374151;
      font-size:14px;
      font-weight:800;
    }
    .developer-role-grid {
      display:grid;
      grid-template-columns:repeat(5,minmax(0,1fr));
      gap:10px;
      margin:0 0 14px;
    }
    .developer-role-option {
      min-height:96px;
      padding:12px;
      border:1px solid var(--admin-border,#d1d5db);
      border-radius:10px;
      background:#ffffff;
      color:#111827;
      text-align:left;
      cursor:pointer;
    }
    .developer-role-option span {
      display:block;
      font-weight:900;
      margin-bottom:6px;
    }
    .developer-role-option small {
      display:block;
      color:var(--admin-muted,#6b7280);
      font-size:12px;
      line-height:1.35;
    }
    .developer-role-option.active {
      border-color:#2271b1;
      box-shadow:0 0 0 2px rgba(34,113,177,.16);
      background:#f0f6fc;
    }
    .developer-preview-fields {
      display:grid;
      grid-template-columns:minmax(240px,420px) minmax(0,1fr);
      gap:12px;
      align-items:end;
    }
    .developer-preview-actions {
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
    }
    .developer-auth-note { margin-top:16px; }
    .admin-top-status #adminTopStatus {
      max-width: min(52vw, 720px);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .regular-score-toolbar { display:flex; gap:10px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-bottom:12px; }
    .regular-score-toolbar .admin-actions { margin:0; }
    .regular-score-settings { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:0 0 12px; padding:10px 12px; border:1px solid var(--admin-border,#d1d5db); border-radius:12px; background:#f9fafb; }
    .regular-score-settings label { display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:800; color:#374151; }
    .regular-score-settings select { min-height:36px; border:1px solid #9ca3af; border-radius:8px; background:#fff; padding:6px 8px; }
    .regular-score-view-toggle { display:inline-flex; gap:5px; padding:4px; border:1px solid var(--admin-border,#d1d5db); border-radius:999px; background:#fff; }
    .regular-score-view-toggle .btn { min-height:30px !important; padding:5px 10px !important; border-radius:999px !important; }
    .regular-score-list { display:grid; gap:10px; }
    .regular-score-list.desktop-table { display:block; overflow:visible; border:1px solid var(--admin-border,#d1d5db); border-radius:12px; background:#fff; }
    .regular-score-table { width:100%; min-width:0; border-collapse:collapse; table-layout:fixed; }
    .regular-score-table th, .regular-score-table td { padding:9px 8px; border-bottom:1px solid #e5e7eb; vertical-align:top; }
    .regular-score-table th { background:#f9fafb; color:#374151; font-size:10px; text-transform:uppercase; letter-spacing:.05em; text-align:left; }
    .regular-score-table .game-col { width:auto; }
    .regular-score-table .score-col { width:92px; }
    .regular-score-table .final-col { width:74px; text-align:center; }
    .regular-score-table .action-col { width:86px; text-align:right; }
    .regular-score-final-label { display:inline-flex; align-items:center; justify-content:center; gap:6px; font-size:12px; font-weight:900; color:#374151; }
    .regular-score-final-label input { width:16px !important; min-height:16px !important; height:16px !important; padding:0 !important; }
    .regular-score-details-row td { background:#f9fafb; padding:10px; }
    .regular-score-details-row[hidden] { display:none !important; }
    .regular-score-card { border:1px solid var(--admin-border,#d1d5db); border-radius:12px; background:#fff; padding:12px; }
    .regular-score-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; margin-bottom:10px; }
    .regular-score-title { font-weight:900; color:#111827; }
    .regular-score-meta { color:var(--admin-muted,#6b7280); font-size:12px; margin-top:3px; line-height:1.35; }
    .regular-score-grid { display:grid; grid-template-columns: minmax(0,1fr) 92px; gap:9px; align-items:center; }
    .regular-score-grid input, .regular-score-pitch-grid input, .regular-score-table input { width:100%; min-height:38px; border:1px solid #9ca3af; border-radius:8px; padding:8px; background:#fff; color:#111827; }
    .regular-score-pitch-wrap { margin-top:10px; padding:10px; border:1px solid #e5e7eb; border-radius:10px; background:#f9fafb; }
    .regular-score-pitch-wrap[hidden], .regular-score-track-cell[hidden] { display:none !important; }
    .regular-score-pitch-toggle { margin-top:10px; }
    .regular-score-pitch-label { font-size:12px; font-weight:900; color:#374151; margin-bottom:7px; }
    .regular-score-pitch-grid { display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:8px; }
    .regular-score-pitch-grid .team-label { grid-column:1 / -1; color:#6b7280; font-size:12px; font-weight:800; margin-top:4px; }
    .regular-score-pitch-team { display:grid; gap:7px; margin-bottom:10px; }
    .regular-score-pitch-row { display:grid; grid-template-columns:minmax(0,1fr) 104px auto; gap:7px; align-items:center; }
    .regular-score-pitch-row .btn { min-height:34px !important; padding:6px 9px !important; }
    .regular-score-add-pitcher { justify-self:start; }
    .regular-score-actions { margin-top:10px; display:flex; justify-content:flex-end; }


    /* Role-based visibility must win over button/sidebar display rules. */
    [hidden] { display: none !important; }

    @media (max-width: 1100px) {
      .tournament-desktop-only,
      .admin-pane[data-pane="tournament"],
      .admin-sidebar-link[data-pane-target="tournament"],
      .admin-quick-action[data-quick-pane="tournament"] { display:none !important; }
      .regular-score-toolbar { display:block; }
      .regular-score-view-toggle { display:none; }
      .regular-score-pitch-grid { grid-template-columns: 1fr; }
      .regular-score-list.desktop-table { display:grid; overflow:visible; border:0; background:transparent; }
    }


    /* Park alerts cleanup + permission locking */
    .park-alerts-hidden-field { display: none !important; }
    .park-alerts-scope-note {
      margin: 0 0 12px;
      padding: 10px 12px;
      border: 1px solid var(--admin-border,#d1d5db);
      border-radius: 10px;
      background: #f9fafb;
      color: var(--admin-muted,#6b7280);
      font-size: 13px;
      line-height: 1.35;
    }
/* Score entry v13: compact desktop table + collapsible mobile filters */
.score-filter-panel { margin-bottom: 16px; }
.score-filter-summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  cursor:pointer;
  list-style:none;
}
.score-filter-summary::-webkit-details-marker { display:none; }
.score-filter-summary-title { display:grid; gap:2px; }
.score-filter-summary-title strong { color:var(--admin-ink,#111827); font-size:18px; }
.score-filter-summary-title span { color:var(--admin-muted,#6b7280); font-size:13px; }
.score-filter-chevron { color:#2271b1; font-weight:900; }
.score-filter-panel[open] .score-filter-chevron { transform:rotate(180deg); }
.score-filter-body { margin-top:14px; }
.score-list-desktop { display:block; }
.score-list-mobile { display:none; }
.score-table-wrap { overflow:auto; border:1px solid var(--admin-border,#d1d5db); border-radius:12px; background:#fff; }
.score-entry-table { width:100%; min-width:1060px; border-collapse:collapse; table-layout:auto; }
.score-entry-table th,
.score-entry-table td { padding:8px 8px; border-bottom:1px solid #e5e7eb; vertical-align:middle; color:#111827; }
.score-entry-table th { background:#f9fafb; color:#4b5563; font-size:10px; text-transform:uppercase; letter-spacing:.06em; text-align:left; position:sticky; top:0; z-index:1; }
.score-entry-table tr:hover td { background:#f9fafb; }
.score-entry-table .score-game-cell { min-width:120px; }
.score-entry-table .score-meta-cell { white-space:nowrap; color:#6b7280; font-size:12px; }
.score-entry-table .score-team-cell { min-width:88px; font-weight:800; }
.score-entry-table .score-input-cell { width:52px; max-width:52px; }
.score-entry-table .score-input-cell input { width:46px; max-width:46px; min-height:32px; padding:5px 6px; border:1px solid #9ca3af; border-radius:7px; text-align:center; }
.score-entry-table .score-final-cell { width:70px; text-align:center; }
.score-entry-table .score-action-cell { width:92px; text-align:right; }
.score-entry-table .score-pitch-cell { min-width:120px; }
.score-compact-title { font-weight:900; color:#111827; white-space:nowrap; }
.score-compact-sub { margin-top:2px; color:#6b7280; font-size:12px; white-space:nowrap; }
.score-compact-status { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:3px 7px; font-size:10px; font-weight:900; background:#ecfdf5; color:#047857; border:1px solid #a7f3d0; }
.score-pitch-mini { display:flex; gap:5px; align-items:center; flex-wrap:wrap; }
.score-pitch-mini input { min-height:30px !important; border:1px solid #9ca3af; border-radius:7px; padding:5px 6px; font-size:12px; }
.score-pitch-mini input[type="text"] { width:90px; }
.score-pitch-mini input[type="number"] { width:56px; }
.score-pitch-mini .btn { min-height:30px !important; padding:4px 7px !important; font-size:11px !important; }
.score-locked-note { padding:8px 10px; border:1px solid #d1d5db; background:#f9fafb; color:#6b7280; border-radius:10px; font-size:12px; }
@media (min-width: 901px) {
  .score-filter-panel { display:block; }
  .score-filter-panel:not([open]) .score-filter-body { display:block; }
  .score-filter-summary { cursor:default; }
  .score-filter-chevron { display:none; }
}
@media (max-width: 900px) {
  .score-filter-panel { border-radius:12px !important; }
  .score-filter-body .admin-grid { grid-template-columns:1fr !important; }
  .score-list-desktop { display:none; }
  .score-list-mobile { display:grid; gap:10px; }
  .regular-score-card { padding:11px; }
  .regular-score-title { font-size:14px; }
  .regular-score-meta { font-size:11px; }
  .regular-score-grid { grid-template-columns:minmax(0,1fr) 74px; gap:8px; }
  .regular-score-grid input { min-height:34px; }
}


/* Score entry v14 refinements */
.score-entry-table .score-input-cell input::-webkit-outer-spin-button,
.score-entry-table .score-input-cell input::-webkit-inner-spin-button { margin:0; }
@media (max-width: 900px) {
  .developer-role-grid { grid-template-columns:1fr; }
  .developer-preview-fields { grid-template-columns:1fr; }
  .score-list-desktop,
  .score-table-wrap,
  .score-entry-table { display:none !important; }
  .score-list-mobile { display:grid !important; gap:10px; width:100%; }
  #scoreList { overflow-x:visible !important; }
  .regular-score-card { width:100%; max-width:100%; overflow:hidden; }
}
@media (min-width: 901px) {
  .score-list-desktop { display:block !important; }
  .score-list-mobile { display:none !important; }
}
