:root {
  --gb-navy-950: #06192b;
  --gb-navy-900: #071f36;
  --gb-navy-800: #0b2f50;
  --gb-red-700: #9f252c;
  --gb-red-600: #be3138;
  --gb-coral-400: #eb7b82;
  --gb-blue-500: #369ce4;
  --gb-blue-100: #dff1fc;
  --gb-ice-50: #f5fafd;
  --gb-ice-100: #edf6fb;
  --gb-ink: #10283d;
  --gb-border: #cfdee8;
}

.authenticator-qr-code {
  width: min(100%, 18rem);
  padding: 0.75rem;
  background: #fff;
  border: 1px solid #b9c7d3;
  border-radius: 0.5rem;
}

.authenticator-qr-code svg {
  display: block;
  width: 100%;
  height: auto;
}

/* Vault-to-SaaS team operating system */
.operations-shell { --ops-navy:#071f36; --ops-blue:#0877c9; }
.operations-hero { background:linear-gradient(125deg,#071f36,#0b4776); color:#fff; border-radius:1.1rem; padding:2rem; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; box-shadow:0 18px 42px rgba(7,31,54,.2); }
.operations-hero .gameball-eyebrow { color:#8fd0ff; }
.operations-module-card { border:1px solid #d9e3ec; color:#172333; transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease; }
.operations-module-card:hover,.operations-module-card:focus { transform:translateY(-3px); box-shadow:0 12px 28px rgba(7,31,54,.13); border-color:#0877c9; }
.operations-module-icon { display:grid; place-items:center; width:2.5rem; height:2.5rem; border-radius:.7rem; background:#e7f3fb; color:#0877c9; font-weight:800; font-size:1.2rem; }
.metric-card { background:#f3f7fa; border-radius:.8rem; padding:1rem; height:100%; display:flex; flex-direction:column; }
.metric-card strong { font-size:1.8rem; color:#071f36; }
.metric-card span { color:#596b7a; font-size:.85rem; }
.claim-confirmation-mark { align-items:center; border-radius:999px; display:inline-flex; font-size:2rem; font-weight:800; height:4rem; justify-content:center; width:4rem; }
.claim-next-step { align-items:flex-start; background:#f4f8fc; border:1px solid #d7e3ee; border-radius:.8rem; display:flex; gap:.8rem; padding:1rem; }
.claim-next-step > span { align-items:center; background:#0b4f86; border-radius:999px; color:#fff; display:inline-flex; flex:0 0 2rem; font-weight:800; height:2rem; justify-content:center; }
.claim-next-step small { color:#526477; display:block; margin-top:.2rem; }
.record-heading { background:#071f36; color:#fff; border-radius:1rem; padding:1.5rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.access-label { background:#dff2ff; color:#071f36; border-radius:999px; padding:.55rem .8rem; font-size:.82rem; font-weight:700; max-width:18rem; text-align:center; }
.record-meta dt { color:#596b7a; }
.record-text { white-space:pre-wrap; min-height:2.2rem; }
.guided-form-card { border-color:#9dc8e5; }
.guided-form-card .gameball-eyebrow { color:#0877c9; }
.structured-form-table { border:1px solid #cfdee8; border-radius:.65rem; max-height:34rem; }
.structured-form-table thead { position:sticky; top:0; z-index:2; }
.structured-form-table th { background:#eaf4fa; color:#071f36; font-size:.78rem; line-height:1.15; vertical-align:middle; }
.structured-form-table td { min-width:8.5rem; }
.structured-form-table .structured-wide-column { min-width:15rem; }
.structured-form-table .structured-row-action { min-width:2.5rem; width:2.5rem; }
.structured-form-table .structured-row-action .btn { font-size:1.25rem; line-height:1; text-decoration:none; }
.structured-record-table { margin-bottom:1.5rem; }
.structured-record-table th { min-width:7.5rem; }
.structured-field-summary { background:#f3f7fa; border-radius:.7rem; margin:0 0 1.5rem; padding:1rem .5rem .25rem; }
.operations-form-copy { flex:1 1 24rem; }
.operations-form-action { flex:0 0 auto; }
.operations-recent-panel { top:1rem; }
.rink-canvas-wrap { overflow:auto; background:#d9eaf4; border-radius:.8rem; padding:.75rem; }
#rink-board { display:block; width:100%; min-width:620px; max-width:900px; aspect-ratio:9/5; background:#f7fbfe; border:1px solid #7594aa; border-radius:2rem; touch-action:none; cursor:crosshair; }
#rink-board.vertical { width:min(100%,500px); min-width:0; max-width:500px; aspect-ratio:608/1201; margin-inline:auto; border-radius:1.5rem; }
#rink-board.readonly { cursor:default; }
@media (max-width:767px) { .operations-hero,.record-heading { align-items:flex-start; flex-direction:column; } #rink-board { min-width:540px; } .operations-form-action { text-align:left !important; width:100%; } }

html {
  font-size: 14px;
  min-height: 100%;
  position: relative;
}

@media (min-width: 768px) {
  html { font-size: 16px; }
}

body {
  background:
    radial-gradient(circle at 12% 10%, rgba(54, 156, 228, 0.08), transparent 23rem),
    linear-gradient(180deg, #fff 0, var(--gb-ice-50) 38rem, #fff 100%);
  color: var(--gb-ink);
  font-family: Aptos, "Segoe UI", Arial, sans-serif;
  margin-bottom: 88px;
}

h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
  color: var(--gb-navy-900);
  font-family: "Aptos Display", Aptos, "Segoe UI", Arial, sans-serif;
  letter-spacing: -0.02em;
}

a { color: var(--gb-red-700); }
a:hover { color: var(--gb-red-600); }

.site-navbar {
  background: var(--gb-navy-900);
  border-bottom: 4px solid var(--gb-red-700);
  min-height: 76px;
  padding-bottom: .35rem;
  padding-top: .35rem;
}

.site-brand {
  margin-right: 1.5rem;
  padding: 0;
}

.site-brand-frame {
  background: #fff;
  border: 2px solid rgba(255,255,255,.9);
  border-radius: .4rem;
  box-shadow: 0 6px 18px rgba(0,0,0,.22);
  display: block;
  height: 62px;
  overflow: hidden;
  position: relative;
  width: 188px;
}

.site-brand-frame img {
  display: block;
  height: auto;
  transform: translateY(-25.3%);
  width: 100%;
}

.site-navbar .nav-link {
  border-bottom: 2px solid transparent;
  color: rgba(255,255,255,.86) !important;
  font-size: .92rem;
  font-weight: 600;
  margin: 0 .08rem;
  padding-left: .55rem !important;
  padding-right: .55rem !important;
}

.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus {
  border-bottom-color: var(--gb-coral-400);
  color: #fff !important;
}

.site-navbar .dropdown-menu {
  border: 1px solid var(--gb-border);
  border-radius: .45rem;
  box-shadow: 0 .8rem 2rem rgba(7,31,54,.22);
  min-width: 17rem;
  padding: .5rem;
}

.site-navbar .dropdown-header {
  color: var(--gb-red-700);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .1em;
  margin: 0;
  padding: .55rem .7rem .35rem;
}

.site-navbar .dropdown-item {
  border-radius: .3rem;
  color: var(--gb-navy-900);
  font-weight: 650;
  padding: .55rem .7rem;
}

.site-navbar .dropdown-item:hover,
.site-navbar .dropdown-item:focus {
  background: var(--gb-ice-100);
  color: var(--gb-red-700);
}

.site-navbar .dropdown-divider { border-color: var(--gb-border); }

.site-navbar .navbar-toggler { border-color: rgba(255,255,255,.5); }

.site-main { min-height: calc(100vh - 164px); }

.identity-page main {
  background: rgba(255,255,255,.96);
  border: 1px solid var(--gb-border);
  border-radius: .65rem;
  border-top: 5px solid var(--gb-navy-900);
  box-shadow: 0 .75rem 2rem rgba(7,31,54,.1);
  margin: 3rem auto;
  max-width: 1050px;
  padding: clamp(1.25rem, 4vw, 3rem);
}

.identity-page main::before {
  color: var(--gb-red-700);
  content: "GAMEBALL ACCOUNT";
  display: block;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  margin-bottom: .65rem;
}

.site-footer {
  background: var(--gb-navy-950);
  border-top: 4px solid var(--gb-red-700);
  bottom: 0;
  color: #c7d7e3;
  line-height: 24px;
  padding: 1.15rem 0;
  position: absolute;
  width: 100%;
}

.site-footer a { color: #fff; }

.text-primary { color: var(--gb-red-700) !important; }
.bg-primary { background-color: var(--gb-navy-900) !important; }
.border-primary { border-color: var(--gb-blue-500) !important; }
.text-bg-primary { background-color: var(--gb-red-700) !important; color: #fff !important; }

.bg-primary h1, .bg-primary h2, .bg-primary h3,
.bg-primary h4, .bg-primary h5, .bg-primary h6 { color: #fff; }

.btn {
  border-radius: .3rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.btn-primary {
  --bs-btn-bg: var(--gb-red-700);
  --bs-btn-border-color: var(--gb-red-700);
  --bs-btn-hover-bg: #861d24;
  --bs-btn-hover-border-color: #861d24;
  --bs-btn-active-bg: #74191f;
  --bs-btn-active-border-color: #74191f;
  background-color: var(--gb-red-700);
  border-color: var(--gb-red-700);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: #861d24;
  border-color: #861d24;
}

.btn-outline-primary {
  --bs-btn-color: var(--gb-red-700);
  --bs-btn-border-color: var(--gb-red-700);
  --bs-btn-hover-bg: var(--gb-red-700);
  --bs-btn-hover-border-color: var(--gb-red-700);
  color: var(--gb-red-700);
  border-color: var(--gb-red-700);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background-color: var(--gb-red-700);
  border-color: var(--gb-red-700);
  color: #fff;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus,
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: var(--gb-blue-500);
  box-shadow: 0 0 0 .1rem #fff, 0 0 0 .25rem rgba(54,156,228,.42);
}

.card {
  border-color: var(--gb-border);
  border-radius: .55rem;
}

.card-header:first-child { border-radius: .5rem .5rem 0 0; }

.table > thead {
  background: var(--gb-navy-900);
  color: #fff;
}

.table > thead > tr > th {
  background: var(--gb-navy-900);
  border-bottom-color: var(--gb-navy-800);
  color: #fff;
  font-weight: 700;
}

.form-control, .form-select {
  border-color: #b9ccd9;
  border-radius: .35rem;
}

.nav-pills .nav-link.active {
  background-color: var(--gb-red-700);
  color: #fff;
}

.gameball-eyebrow {
  color: var(--gb-red-700);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.gameball-home-hero {
  background:
    linear-gradient(90deg, transparent 49.85%, rgba(159,37,44,.11) 50%, transparent 50.15%),
    radial-gradient(circle at 86% 45%, transparent 0 8.5rem, rgba(159,37,44,.12) 8.6rem 8.75rem, transparent 8.85rem),
    linear-gradient(135deg, #fff 0%, var(--gb-ice-100) 100%);
  border: 1px solid var(--gb-border);
  border-top: 5px solid var(--gb-navy-900);
  border-radius: .7rem;
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 4rem);
  position: relative;
}

.home-brand-lockup {
  aspect-ratio: 2.8 / 1;
  background: #fff;
  border-radius: .35rem;
  max-width: 600px;
  overflow: hidden;
  width: 100%;
}

.home-brand-lockup img {
  display: block;
  height: auto;
  transform: translateY(-25.4%);
  width: 100%;
}

.gameball-scoreboard {
  background: var(--gb-navy-900);
  border: 1px solid #1b4567;
  border-bottom: 8px solid var(--gb-red-700);
  border-radius: .55rem;
  color: #fff;
  padding: 1.5rem;
}

.scoreboard-topline {
  border-bottom: 1px solid rgba(255,255,255,.22);
  color: var(--gb-coral-400);
  display: flex;
  font-size: .75rem;
  font-weight: 800;
  justify-content: space-between;
  letter-spacing: .08em;
  margin-bottom: 1.25rem;
  padding-bottom: .7rem;
}

.scoreboard-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: 1fr 1fr;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.15);
}

.scoreboard-grid > div {
  background: var(--gb-navy-900);
  display: grid;
  padding: 1rem;
}

.scoreboard-number {
  color: var(--gb-blue-500);
  font-size: .75rem;
  font-weight: 800;
}

.scoreboard-grid strong { color: #fff; font-size: 1.1rem; }
.scoreboard-grid small { color: #b8cad8; }

.scoreboard-link {
  color: #fff;
  display: inline-block;
  font-weight: 700;
  margin-top: 1.25rem;
  text-decoration: none;
}

.scoreboard-link:hover { color: var(--gb-coral-400); }

.gameball-feature-card {
  background: #fff;
  border-top: 4px solid var(--gb-blue-500);
  box-shadow: 0 .4rem 1.25rem rgba(7,31,54,.08);
  transition: transform .18s ease, box-shadow .18s ease;
}

.gameball-feature-card:hover {
  box-shadow: 0 .7rem 1.8rem rgba(7,31,54,.14);
  transform: translateY(-3px);
}

.feature-number {
  color: var(--gb-red-700);
  display: block;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .08em;
  margin-bottom: 1.4rem;
}

.gameball-role-band {
  align-items: center;
  background: var(--gb-navy-900);
  border-left: 8px solid var(--gb-red-700);
  border-radius: .45rem;
  color: #d9e6ef;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  padding: 1.5rem 1.75rem;
}

.gameball-role-band h2 { color: #fff; }

.section-heading {
  margin-left: auto;
  margin-right: auto;
  max-width: 850px;
}

.handbook-hero,
.vault-hero,
.support-hero,
.handbooks-intro {
  background:
    radial-gradient(circle at 91% 12%, rgba(54,156,228,.16), transparent 17rem),
    linear-gradient(135deg, #fff 0%, var(--gb-ice-100) 100%);
  border: 1px solid var(--gb-border);
  border-top: 5px solid var(--gb-navy-900);
  border-radius: .8rem;
  overflow: hidden;
  padding: clamp(1.5rem, 4.5vw, 4.5rem);
}

.handbook-cover-stage {
  align-items: end;
  display: flex;
  justify-content: center;
  min-height: 430px;
  padding: 1rem 0;
  position: relative;
}

.handbook-cover {
  background: #fff;
  border-radius: .25rem;
  box-shadow: 0 1.1rem 2.8rem rgba(7,31,54,.25);
  height: auto;
  position: absolute;
  width: min(39%, 220px);
}

.handbook-cover--manager { left: 3%; transform: rotate(-5deg) translateY(13px); z-index: 1; }
.handbook-cover--coach { left: 31%; transform: translateY(-17px); z-index: 3; }
.handbook-cover--trainer { right: 3%; transform: rotate(5deg) translateY(13px); z-index: 2; }

.book-card {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-radius: .65rem;
  box-shadow: 0 .5rem 1.6rem rgba(7,31,54,.1);
  display: grid;
  grid-template-columns: 38% 1fr;
  overflow: hidden;
  position: relative;
}

.book-card::before,
.vault-role-card::before,
.handbook-detail::before {
  content: "";
  height: 6px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.book-card--manager::before,
.vault-role-card--manager::before,
.handbook-detail--manager::before { background: var(--gb-red-700); }
.book-card--coach::before,
.vault-role-card--coach::before,
.handbook-detail--coach::before { background: var(--gb-blue-500); }
.book-card--trainer::before,
.vault-role-card--trainer::before,
.handbook-detail--trainer::before { background: #1c9f95; }

.book-card-cover {
  align-self: center;
  box-shadow: .25rem .5rem 1.25rem rgba(7,31,54,.2);
  display: block;
  height: auto;
  margin: 1.5rem 0 1.5rem 1.25rem;
  max-width: 100%;
  object-fit: contain;
  width: calc(100% - 1.25rem);
}

.book-card-body {
  display: flex;
  flex-direction: column;
  padding: 1.6rem 1.35rem 1.5rem;
}

.book-card-body p { flex-grow: 1; }

.role-kicker {
  color: var(--gb-red-700);
  display: block;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .12em;
  margin-bottom: .45rem;
}

.book-card--coach .role-kicker,
.handbook-detail--coach .role-kicker,
.vault-role-card--coach .role-kicker { color: #166aa8; }
.book-card--trainer .role-kicker,
.handbook-detail--trainer .role-kicker,
.vault-role-card--trainer .role-kicker { color: #087a71; }

.book-stat-row {
  border-bottom: 1px solid var(--gb-border);
  border-top: 1px solid var(--gb-border);
  display: flex;
  flex-wrap: wrap;
  font-size: .78rem;
  gap: .55rem .8rem;
  margin-bottom: 1rem;
  padding: .7rem 0;
}

.gameball-process {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-left: 8px solid var(--gb-red-700);
  border-radius: .55rem;
  box-shadow: 0 .35rem 1.3rem rgba(7,31,54,.08);
  padding: clamp(1.5rem, 4vw, 3rem);
}

.system-part-card {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-top: 6px solid var(--gb-navy-900);
  border-radius: .65rem;
  box-shadow: 0 .55rem 1.5rem rgba(7,31,54,.09);
  display: flex;
  flex-direction: column;
  padding: clamp(1.4rem, 3vw, 2rem);
  position: relative;
}

.system-part-card--vault { border-top-color: var(--gb-red-700); }
.system-part-card--saas { border-top-color: var(--gb-blue-500); }

.system-part-number {
  color: #d7e4ec;
  font-size: 2.8rem;
  font-weight: 900;
  letter-spacing: -.05em;
  line-height: 1;
  position: absolute;
  right: 1.25rem;
  top: 1.15rem;
}

.system-part-card .role-kicker { padding-right: 3.5rem; }

.platform-scope-list {
  border: 1px solid var(--gb-border);
  border-radius: .45rem;
  display: grid;
  overflow: hidden;
}

.platform-scope-list span {
  background: var(--gb-ice-50);
  color: #526878;
  display: block;
  font-size: .88rem;
  padding: .68rem .75rem;
}

.platform-scope-list span + span { border-top: 1px solid var(--gb-border); }
.platform-scope-list strong { color: var(--gb-navy-900); display: block; }

.saas-overview {
  background:
    radial-gradient(circle at 94% 8%, rgba(54,156,228,.16), transparent 16rem),
    linear-gradient(135deg, var(--gb-ice-100), #fff 62%);
  border: 1px solid var(--gb-border);
  border-left: 8px solid var(--gb-blue-500);
  border-radius: .65rem;
  padding: clamp(1.5rem, 4vw, 3.25rem);
}

.saas-level-card {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-radius: .55rem;
  box-shadow: 0 .35rem 1rem rgba(7,31,54,.07);
  padding: 1.5rem;
}

.saas-level-label {
  background: var(--gb-navy-900);
  border-radius: 999px;
  color: #fff;
  display: inline-block;
  font-size: .73rem;
  font-weight: 900;
  letter-spacing: .11em;
  margin-bottom: .85rem;
  padding: .42rem .7rem;
}

.launch-status-board {
  background: var(--gb-navy-900);
  border-bottom: 7px solid var(--gb-red-700);
  border-radius: .65rem;
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  overflow: hidden;
  padding: 1px;
}

.launch-status-board article {
  background: rgba(255,255,255,.07);
  color: #fff;
  display: flex;
  flex-direction: column;
  min-height: 145px;
  padding: 1.15rem;
}

.launch-status-board strong {
  font-size: 1.02rem;
  margin-top: .9rem;
}

.launch-status-board small {
  color: #c7d8e4;
  margin-top: .25rem;
}

.launch-status-pill {
  align-self: flex-start;
  border: 1px solid transparent;
  border-radius: 999px;
  display: inline-block;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .08em;
  padding: .42rem .68rem;
  text-transform: uppercase;
}

.launch-status-pill--available { background: #dff4e8; border-color: #91cfa9; color: #175b32; }
.launch-status-pill--pilot { background: #e1f2ff; border-color: #87bee4; color: #0a568b; }
.launch-status-pill--beta { background: #fff1cd; border-color: #e3c565; color: #6d5200; }
.launch-status-pill--preview { background: #f3e8f8; border-color: #c7a4d8; color: #633477; }

.launch-status-card {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-top: 5px solid var(--gb-blue-500);
  border-radius: .6rem;
  box-shadow: 0 .4rem 1.4rem rgba(7,31,54,.08);
  padding: clamp(1.4rem, 3vw, 2rem);
}

.pilot-boundary {
  background:
    linear-gradient(135deg, #eef8ff, #fff 66%);
  border: 1px solid #a9cfe8;
  border-left: 8px solid var(--gb-blue-500);
  border-radius: .6rem;
  box-shadow: 0 .35rem 1.2rem rgba(7,31,54,.07);
  padding: clamp(1.4rem, 3vw, 2.4rem);
}

.pilot-role-grid {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.pilot-role-grid span {
  background: var(--gb-ice-100);
  border: 1px solid var(--gb-border);
  border-radius: .45rem;
  color: var(--gb-navy-900);
  font-weight: 800;
  padding: .85rem .7rem;
  text-align: center;
}

.journey-grid { display: grid; gap: .8rem; }

.journey-step {
  align-items: center;
  background: var(--gb-ice-50);
  border: 1px solid var(--gb-border);
  border-radius: .45rem;
  display: flex;
  gap: 1rem;
  padding: .9rem 1rem;
}

.journey-step > span,
.support-steps > li > span {
  align-items: center;
  background: var(--gb-red-700);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 2.25rem;
  font-weight: 900;
  height: 2.25rem;
  justify-content: center;
}

.journey-step strong,
.journey-step small,
.support-steps strong,
.support-steps small { display: block; }
.journey-step small,
.support-steps small { color: #526878; margin-top: .12rem; }

.vault-callout,
.support-strip {
  background: var(--gb-navy-900);
  border-bottom: 7px solid var(--gb-red-700);
  border-radius: .6rem;
  color: #dce9f2;
  padding: clamp(1.5rem, 3.5vw, 2.6rem);
}

.vault-callout h2,
.support-strip h2 { color: #fff; }
.vault-callout .gameball-eyebrow { color: var(--gb-coral-400); }

.support-callout,
.support-card,
.support-checklist,
.privacy-card {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-radius: .6rem;
  box-shadow: 0 .4rem 1.5rem rgba(7,31,54,.08);
  padding: clamp(1.4rem, 3vw, 2.3rem);
}

.vault-metric-row {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 1.5rem;
}

.vault-metric-row > div {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-radius: .45rem;
  display: flex;
  flex-direction: column;
  padding: .8rem;
}

.vault-metric-row strong { color: var(--gb-navy-900); font-size: 1.8rem; line-height: 1; }
.vault-metric-row span { color: #526878; font-size: .78rem; margin-top: .35rem; }

.vault-path-panel {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-top: 5px solid var(--gb-red-700);
  border-radius: .6rem;
  box-shadow: 0 .7rem 2rem rgba(7,31,54,.13);
  padding: 1.7rem;
}

.vault-path-item { border-top: 1px solid var(--gb-border); padding: .9rem 0; }
.vault-path-item strong,
.vault-path-item span { display: block; }
.vault-path-item span { color: #526878; margin-top: .2rem; }

.vault-role-card {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-radius: .6rem;
  box-shadow: 0 .4rem 1.4rem rgba(7,31,54,.08);
  padding: 2rem;
  position: relative;
}

.vault-role-count {
  background: var(--gb-ice-100);
  border-radius: .35rem;
  color: #445d70;
  margin-top: 1.2rem;
  padding: .65rem .8rem;
}

.path-card {
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--gb-border);
  border-radius: .6rem;
  box-shadow: 0 .4rem 1.4rem rgba(7,31,54,.08);
  display: flex;
  gap: 1.25rem;
  padding: 2rem;
}

.path-number,
.support-card-number {
  color: var(--gb-red-700);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .1em;
}

.support-strip {
  align-items: center;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
}
.support-strip a:not(.btn) { color: #fff; }

.handbooks-intro .lead { max-width: 900px; }

.handbooks-intro-covers {
  align-items: end;
  display: flex;
  gap: clamp(.7rem, 3vw, 2rem);
  justify-content: center;
  margin: 2rem auto 1.3rem;
}

.handbooks-intro-covers img {
  border-radius: .2rem;
  box-shadow: 0 .8rem 2rem rgba(7,31,54,.22);
  height: auto;
  max-width: 200px;
  width: 27%;
}

.handbooks-intro-covers img:nth-child(2) { transform: translateY(-12px); }

.handbook-jump-nav {
  background: var(--gb-navy-900);
  border-radius: .45rem;
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  justify-content: center;
  padding: .65rem;
  position: sticky;
  top: .5rem;
  z-index: 10;
}

.handbook-jump-nav a {
  border-radius: .3rem;
  color: #fff;
  font-weight: 700;
  padding: .55rem .85rem;
  text-decoration: none;
}
.handbook-jump-nav a:hover,
.handbook-jump-nav a:focus { background: rgba(255,255,255,.14); color: #fff; }

.handbook-detail {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-radius: .7rem;
  box-shadow: 0 .45rem 1.6rem rgba(7,31,54,.09);
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 3rem);
  position: relative;
}

.handbook-detail-cover {
  border-radius: .2rem;
  box-shadow: .65rem .85rem 2rem rgba(7,31,54,.24);
  height: auto;
  max-width: 280px;
  width: 82%;
}

.book-stat-grid {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(3, 1fr);
  margin: 1.3rem 0;
}

.book-stat-grid > div {
  background: var(--gb-ice-100);
  border: 1px solid var(--gb-border);
  border-radius: .4rem;
  display: flex;
  flex-direction: column;
  padding: .8rem;
}

.book-stat-grid strong { color: var(--gb-navy-900); font-size: 1.65rem; line-height: 1; }
.book-stat-grid span { color: #526878; font-size: .82rem; margin-top: .25rem; }

.check-list { list-style: none; margin: 0; padding: 0; }
.check-list li { margin-bottom: .55rem; padding-left: 1.55rem; position: relative; }
.check-list li::before { color: var(--gb-red-700); content: "\2713"; font-weight: 900; left: 0; position: absolute; }

.book-sample-grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }

.book-sample {
  background: var(--gb-ice-50);
  border: 1px solid var(--gb-border);
  border-radius: .5rem;
  display: grid;
  grid-template-columns: 135px 1fr;
  overflow: hidden;
  text-decoration: none;
  transition: box-shadow .18s ease, transform .18s ease;
}

.book-sample:hover,
.book-sample:focus { box-shadow: 0 .55rem 1.4rem rgba(7,31,54,.14); transform: translateY(-2px); }
.book-sample img { height: 165px; object-fit: cover; object-position: top; width: 100%; }
.book-sample > span { align-self: center; color: var(--gb-navy-900); font-size: 1.05rem; font-weight: 800; padding: 1rem; }
.book-sample small { color: var(--gb-red-700); display: block; font-size: .76rem; margin-top: .25rem; }

.comparison-table-wrap { border: 1px solid var(--gb-border); border-radius: .55rem; }
.comparison-table { min-width: 900px; }
.comparison-table tbody th { color: var(--gb-navy-900); }
.comparison-table td,
.comparison-table th { padding: .9rem; }
.faq-section .accordion-item { border-color: var(--gb-border); }
.faq-section .accordion-button { color: var(--gb-navy-900); font-weight: 800; }
.faq-section .accordion-button:not(.collapsed) { background: var(--gb-ice-100); box-shadow: none; }

.support-hero { border-top-color: var(--gb-red-700); }
.support-card { border-top: 5px solid var(--gb-blue-500); }
.support-card p { min-height: 4.5rem; }

.support-checklist { border-left: 7px solid var(--gb-red-700); }
.support-steps { list-style: none; margin: 1.25rem 0 0; padding: 0; }
.support-steps li { align-items: flex-start; border-top: 1px solid var(--gb-border); display: flex; gap: .9rem; padding: .85rem 0; }
.support-steps li:last-child { padding-bottom: 0; }
.privacy-card { background: var(--gb-ice-100); border-top: 5px solid #1c9f95; }

.registration-note {
  background: var(--gb-ice-100);
  border: 1px solid var(--gb-border);
  border-left: 6px solid var(--gb-blue-500);
  border-radius: .55rem;
  padding: 1.5rem;
}

.legal-content,
.interest-form {
  background: #fff;
  border: 1px solid var(--gb-border);
  border-radius: .65rem;
  box-shadow: 0 .4rem 1.5rem rgba(7,31,54,.08);
  padding: clamp(1.5rem, 4vw, 3rem);
}

.legal-content h2 {
  border-top: 1px solid var(--gb-border);
  color: var(--gb-navy-900);
  font-size: 1.35rem;
  margin-top: 2rem;
  padding-top: 1.2rem;
}

.legal-content h2:first-child {
  border-top: 0;
  margin-top: 0;
  padding-top: 0;
}

.form-honeypot {
  height: 1px;
  left: -10000px;
  overflow: hidden;
  position: absolute;
  top: auto;
  width: 1px;
}

.consent-check {
  background: var(--gb-ice-100);
  border: 1px solid var(--gb-border);
  border-radius: .45rem;
  padding: 1rem 1rem 1rem 2.7rem;
}

.login-access-note { padding: clamp(1.4rem, 3vw, 2rem); }

.login-access-list {
  border: 1px solid var(--gb-border);
  border-radius: .45rem;
  overflow: hidden;
}

.login-access-list > div {
  background: rgba(255,255,255,.76);
  padding: .9rem 1rem;
}

.login-access-list > div + div { border-top: 1px solid var(--gb-border); }
.login-access-list strong,
.login-access-list span { display: block; }
.login-access-list strong { color: var(--gb-navy-900); margin-bottom: .2rem; }
.login-access-list span { color: #526878; font-size: .9rem; }

.coming-sports-band {
  align-items: center;
  background:
    radial-gradient(circle at 92% 50%, rgba(54,156,228,.16), transparent 14rem),
    var(--gb-navy-900);
  border-bottom: 7px solid var(--gb-red-700);
  border-radius: .65rem;
  color: #dce9f2;
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, 1.8fr) minmax(250px, .8fr);
  padding: clamp(1.6rem, 4vw, 3rem);
}

.coming-sports-band h2 { color: #fff; }
.coming-sports-band .gameball-eyebrow { color: var(--gb-coral-400); }
.coming-sports-band a { color: #fff; }

.coming-sports-band--compact {
  gap: 1.25rem;
  grid-template-columns: minmax(0, 2.2fr) minmax(240px, .8fr);
  padding: 1.25rem 1.5rem;
}

.coming-sports-band--compact .coming-sport-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.coming-sports-band--compact .coming-sport-list span {
  font-size: .92rem;
  padding: .6rem .5rem;
}

.coming-sport-list { display: grid; gap: .65rem; }

.coming-sport-list span {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: .45rem;
  color: #fff;
  font-size: 1.15rem;
  font-weight: 800;
  padding: .8rem 1rem;
  text-align: center;
}

.amazon-vault-hero {
  background:
    linear-gradient(90deg, transparent 49.85%, rgba(159,37,44,.1) 50%, transparent 50.15%),
    radial-gradient(circle at 88% 50%, transparent 0 8rem, rgba(54,156,228,.13) 8.1rem 8.25rem, transparent 8.35rem),
    linear-gradient(135deg, var(--gb-ice-100) 0%, #fff 58%, #f8e9ea 100%);
  border: 1px solid var(--gb-border);
  border-top: 5px solid var(--gb-navy-900);
}

.amazon-vault-step {
  align-items: center;
  background: var(--gb-red-700);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 2rem;
  font-weight: 800;
  height: 2rem;
  justify-content: center;
}

.scroll-mt-3 { scroll-margin-top: 1rem; }

/* Hockey Digital Vault catalogue */
.vault-catalogue-header { border-bottom: 1px solid var(--gb-border); }

.vault-account-access {
  align-items: center;
  background: #fff;
  border: 1px solid var(--gb-border);
  border-radius: .55rem;
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  padding: .75rem 1rem;
}

.vault-account-access__count { color: var(--gb-navy-900); font-weight: 800; }

.vault-account-access__legend {
  align-items: center;
  color: #526878;
  display: inline-flex;
  font-size: .82rem;
  gap: .35rem;
}

.vault-access-dot { border-radius: 50%; display: inline-block; height: .65rem; width: .65rem; }
.vault-access-dot--unlocked { background: #198754; }
.vault-access-dot--locked { background: #6c757d; }
.vault-access-alert { margin-bottom: 1.25rem; }

.vault-search-panel {
  align-items: end;
  background: linear-gradient(135deg, var(--gb-ice-100), #fff);
  border: 1px solid var(--gb-border);
  border-left: 6px solid var(--gb-blue-500);
  border-radius: .6rem;
  display: grid;
  gap: .9rem 1.25rem;
  grid-template-columns: minmax(14rem, .9fr) minmax(18rem, 1.4fr);
  margin-bottom: 1rem;
  padding: 1rem 1.1rem;
}

.vault-search-controls { display: flex; gap: .5rem; }
.vault-search-controls .form-control { min-height: 2.75rem; }
.vault-search-status { color: #526878; grid-column: 1 / -1; }
.vault-search-empty { margin-bottom: 1rem; }
.vault-search-match { animation: vault-search-pulse 1.2s ease-out 1; }

@keyframes vault-search-pulse {
  0% { box-shadow: 0 0 0 0 rgba(54,156,228,.45); }
  100% { box-shadow: 0 0 0 .7rem rgba(54,156,228,0); }
}

.vault-role-accordion { display: grid; gap: 1rem; }

.vault-role-accordion > .vault-role-item {
  border: 1px solid var(--gb-border);
  border-left-width: 7px;
  border-radius: .65rem;
  box-shadow: 0 .35rem 1.15rem rgba(7,31,54,.07);
  overflow: hidden;
}

.vault-role-item--unlocked { border-left-color: #198754 !important; }
.vault-role-item--locked { border-left-color: #6c757d !important; }

.vault-role-button {
  align-items: center;
  background: #fff;
  color: var(--gb-navy-900);
  gap: 1.25rem;
  padding: 1.15rem 1.25rem;
}

.vault-role-button:not(.collapsed) {
  background: var(--gb-ice-100);
  box-shadow: inset 0 -1px 0 var(--gb-border);
  color: var(--gb-navy-900);
}

.vault-role-button:focus { box-shadow: 0 0 0 .25rem rgba(54,156,228,.22); }
.vault-role-button__main { display: flex; flex: 1 1 30rem; flex-direction: column; min-width: 0; }
.vault-role-button__title { font-size: clamp(1.25rem, 3vw, 1.65rem); font-weight: 850; line-height: 1.15; }
.vault-role-button__description { color: #526878; font-size: .92rem; font-weight: 500; margin-top: .3rem; }

.vault-role-button__details {
  align-items: flex-end;
  color: #526878;
  display: flex;
  flex: 0 1 18rem;
  flex-direction: column;
  font-size: .82rem;
  gap: .35rem;
  padding-right: .5rem;
  text-align: right;
}

.vault-status {
  border-radius: 999px;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 800;
  padding: .3rem .6rem;
}

.vault-status--unlocked { background: #d1e7dd; color: #0f5132; }
.vault-status--locked { background: #e9ecef; color: #41464b; }
.vault-role-body { background: #fff; padding: 1.25rem; }

.vault-role-access-note {
  align-items: center;
  border: 1px solid;
  border-left-width: 5px;
  border-radius: .5rem;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding: .9rem 1rem;
}

.vault-role-access-note strong,
.vault-role-access-note span { display: block; }
.vault-role-access-note span { font-size: .9rem; margin-top: .15rem; }
.vault-role-access-note--unlocked { background: #eef8f3; border-color: #a3cfbb; color: #0f5132; }
.vault-role-access-note--locked { background: #f7f8f9; border-color: #c7ccd1; color: #41464b; }
.vault-default-access { color: #526878; font-size: .86rem; margin: 0 0 1rem; }

.vault-section-accordion { border: 1px solid var(--gb-border); border-radius: .5rem; overflow: hidden; }
.vault-section-accordion > .vault-section-item { border: 0; border-radius: 0; }
.vault-section-accordion > .vault-section-item + .vault-section-item { border-top: 1px solid var(--gb-border); }

.vault-section-button {
  align-items: center;
  background: #fff;
  color: var(--gb-navy-900);
  gap: .75rem;
  padding: .9rem 1rem;
}

.vault-section-button:not(.collapsed) {
  background: var(--gb-ice-100);
  box-shadow: inset 0 -1px 0 var(--gb-border);
  color: var(--gb-navy-900);
}

.vault-section-button__title { flex: 1 1 auto; font-weight: 800; }
.vault-section-button__count { color: #526878; flex: 0 1 auto; font-size: .8rem; font-weight: 500; }
.vault-section-button__access { border-radius: 999px; flex: 0 0 auto; font-size: .72rem; font-weight: 800; padding: .22rem .5rem; }
.vault-section-button__access.is-unlocked { background: #d1e7dd; color: #0f5132; }
.vault-section-button__access.is-locked { background: #e9ecef; color: #41464b; }
.vault-section-body { background: #f7fafc; padding: 1rem; }

.vault-package-card { background: #fff; border: 1px solid var(--gb-border); box-shadow: 0 .2rem .7rem rgba(7,31,54,.05); }
.vault-package-card--unlocked { border-top: 4px solid #198754; }
.vault-package-card--locked { border-top: 4px solid #8a949e; }

.vault-package-contents-toggle {
  align-items: center;
  background: var(--gb-ice-100);
  border: 1px solid var(--gb-border);
  border-radius: .4rem;
  color: var(--gb-navy-900);
  display: flex;
  font-size: .84rem;
  font-weight: 800;
  gap: .65rem;
  justify-content: space-between;
  margin: .9rem 0;
  padding: .55rem .7rem;
  text-align: left;
  width: 100%;
}

.vault-package-contents-toggle:hover { background: #e5f2fa; }
.vault-package-contents-toggle:focus { box-shadow: 0 0 0 .2rem rgba(54,156,228,.22); outline: 0; }
.vault-package-contents-toggle::before { content: "\2212"; font-size: 1rem; line-height: 1; }
.vault-package-contents-toggle.collapsed::before { content: "+"; }
.vault-package-contents-toggle > span:first-of-type { flex: 1 1 auto; }

.vault-package-contents-count {
  align-items: center;
  background: var(--gb-navy-900);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: .72rem;
  height: 1.5rem;
  justify-content: center;
  min-width: 1.5rem;
  padding: 0 .4rem;
}

.vault-package-form-list {
  border: 1px solid var(--gb-border);
  border-radius: .4rem;
  list-style: none;
  margin: 0 0 .9rem;
  max-height: 22rem;
  overflow-y: auto;
  padding: 0;
}

.vault-package-form-list li {
  align-items: start;
  display: grid;
  gap: .6rem;
  grid-template-columns: minmax(5.5rem, auto) 1fr;
  padding: .55rem .65rem;
}

.vault-package-form-list li + li { border-top: 1px solid var(--gb-border); }
.vault-package-form-list li.is-search-match { background: #fff3cd; box-shadow: inset 4px 0 0 #d39e00; }
.vault-package-form-id { color: var(--gb-red-700); font-size: .75rem; font-weight: 850; }
.vault-package-form-name { color: #334d5e; font-size: .82rem; }

.vault-package-meta { display: grid; gap: .5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vault-package-meta div { min-width: 0; }
.vault-package-meta dt { color: var(--gb-navy-900); font-weight: 800; }
.vault-package-meta dd { color: #526878; margin: .1rem 0 0; overflow-wrap: anywhere; }

.vault-package-lock {
  align-items: center;
  background: #eef0f2;
  border-radius: .4rem;
  color: #41464b;
  display: inline-flex;
  font-size: .82rem;
  font-weight: 800;
  gap: .4rem;
  padding: .48rem .65rem;
}

/* Shared hockey season journey */
.season-path {
  background: linear-gradient(145deg, #f7fafc, #edf5fa);
  border: 1px solid var(--gb-border);
  border-radius: 1rem;
  padding: 1.5rem;
}
.season-path-grid { display: grid; gap: .75rem; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.season-path-step { background: #fff; border: 1px solid var(--gb-border); border-radius: .7rem; min-width: 0; padding: 1rem; position: relative; }
.season-path-step:not(:last-child)::after { color: var(--gb-red-700); content: "\2192"; font-size: 1.25rem; font-weight: 900; position: absolute; right: -.63rem; top: 1.35rem; z-index: 2; }
.season-path-step__number { align-items: center; background: var(--gb-red-700); border-radius: 50%; color: #fff; display: inline-flex; font-size: .75rem; font-weight: 900; height: 1.75rem; justify-content: center; width: 1.75rem; }
.season-path-step strong { color: var(--gb-navy-900); display: block; font-size: .95rem; margin-top: .6rem; }
.season-path-step small { color: #526878; display: block; line-height: 1.4; margin-top: .35rem; }
.season-path-cross { align-items: center; background: var(--gb-navy-900); border-radius: .7rem; color: #fff; display: flex; gap: 1rem; justify-content: space-between; margin-top: .8rem; padding: .8rem 1rem; }
.season-path-cross strong { flex: 0 0 auto; }
.season-path-cross span { color: #d7e8f3; font-size: .88rem; }

/* Team HQ season-first operations */
.operations-season-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.operations-phase-card { border: 1px solid var(--gb-border); box-shadow: 0 .35rem 1rem rgba(7,31,54,.07); color: var(--gb-ink); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.operations-phase-card:hover, .operations-phase-card:focus { border-color: var(--gb-blue-500); box-shadow: 0 .8rem 1.6rem rgba(7,31,54,.13); color: var(--gb-ink); transform: translateY(-2px); }
.operations-phase-number { align-items: center; background: var(--gb-red-700); border-radius: 50%; color: #fff; display: inline-flex; font-size: .9rem; font-weight: 900; height: 2.15rem; justify-content: center; width: 2.15rem; }
.operations-phase-metrics { display: flex; flex-wrap: wrap; font-size: .8rem; gap: .8rem; }
.operations-phase-metrics strong { color: var(--gb-navy-900); }
.operations-cross-season-card { align-items: center; background: linear-gradient(125deg, var(--gb-navy-900), #0b527f); border-radius: .85rem; color: #fff; display: flex; gap: 1.5rem; justify-content: space-between; padding: 1.25rem 1.4rem; }
.operations-cross-season-card:hover, .operations-cross-season-card:focus { color: #fff; box-shadow: 0 .8rem 1.6rem rgba(7,31,54,.18); }
.operations-phase-metrics--light strong { color: #fff; }
.operations-secondary-nav { background: #f7fafc; border: 1px solid var(--gb-border); border-radius: .8rem; padding: 1rem; }
.operations-secondary-nav summary { align-items: center; cursor: pointer; display: flex; gap: 1rem; justify-content: space-between; }
.operations-secondary-nav summary small { color: #526878; display: block; font-weight: 400; margin-top: .2rem; }
.operations-phase-hero { align-items: flex-start; background: linear-gradient(125deg, var(--gb-navy-900), #0b527f); border-radius: 1rem; color: #fff; display: flex; gap: 2rem; justify-content: space-between; padding: 1.65rem; }
.operations-phase-hero h1 { color: #fff; }
.operations-phase-hero .gameball-eyebrow { color: #8fd0ff; }
.operations-phase-hero--cross { background: linear-gradient(125deg, #075a6b, #0a8090); }
.operations-role-workstreams .accordion-button { align-items: flex-start; }

.vault-view-switch { background: #edf5fa; border-radius: .7rem; display: inline-flex; gap: .35rem; margin: 0 0 1rem; padding: .35rem; }
.vault-view-switch .btn { border: 0; font-weight: 800; }
.vault-view-switch .btn.is-active { background: var(--gb-navy-900); color: #fff; }
.vault-season-role { border-left: 4px solid var(--gb-blue-500); margin-bottom: 1rem; padding-left: 1rem; }

@media (max-width: 991.98px) {
  .season-path-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .season-path-step:nth-child(3)::after { display: none; }
  .operations-season-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .season-path-grid, .operations-season-grid { grid-template-columns: 1fr; }
  .season-path-step::after { display: none; }
  .season-path-cross, .operations-cross-season-card, .operations-phase-hero { align-items: flex-start; flex-direction: column; }
  .vault-view-switch { display: flex; }
  .vault-view-switch .btn { flex: 1 1 50%; }
}

/* Team HQ drill builder */
.drill-hero {
  align-items: center;
  background: linear-gradient(125deg, var(--gb-navy-900), #0b527f);
  border-radius: 1.1rem;
  box-shadow: 0 18px 42px rgba(7,31,54,.18);
  color: #fff;
  display: flex;
  gap: 1.5rem;
  justify-content: space-between;
  padding: 1.8rem 2rem;
}
.drill-hero h1 { color: #fff; }
.drill-hero .gameball-eyebrow { color: #8fd0ff; }
.drill-team-choice { border-color: var(--gb-border); color: var(--gb-ink); transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.drill-team-choice:hover, .drill-team-choice:focus { border-color: var(--gb-blue-500); box-shadow: 0 12px 28px rgba(7,31,54,.12); color: var(--gb-ink); transform: translateY(-2px); }
.drill-filter { background: #f7fafc; border-color: var(--gb-border); }
.drill-card { border-color: var(--gb-border); box-shadow: 0 .35rem 1rem rgba(7,31,54,.07); overflow: hidden; }
.drill-card-description { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.drill-card-rink {
  background: #fbfdff;
  border: 4px solid var(--gb-navy-900);
  border-radius: 2.25rem;
  height: 126px;
  margin: 1.25rem 1.25rem 0;
  overflow: hidden;
  position: relative;
}
.drill-card-rink::before { border-left: 4px solid #d75860; border-right: 4px solid #d75860; content: ""; inset: 0 49%; position: absolute; }
.drill-card-rink::after { border: 3px solid #4b80a8; border-radius: 50%; content: ""; height: 44px; left: calc(50% - 22px); position: absolute; top: calc(50% - 22px); width: 44px; }
.drill-card-rink--half { border-radius: 2.25rem 0 0 2.25rem; border-right-color: #d75860; margin: 1.25rem auto 0; width: min(58%, 165px); }
.drill-card-rink--half::before { border-left: 3px solid #c98686; border-right: 0; bottom: 15%; left: 22%; right: auto; top: 15%; }
.drill-card-rink--half::after { height: 30px; left: 43%; top: 12px; width: 30px; }
.drill-card-rink--half span::before { border: 3px solid #c98686; border-radius: 50%; bottom: 12px; content: ""; height: 30px; left: 43%; position: absolute; width: 30px; }
.drill-card-rink--half span::after { border-left: 3px solid #4b80a8; bottom: 0; content: ""; left: 76%; position: absolute; top: 0; }
.drill-card-rink--stations span::before, .drill-card-rink--stations span::after { border-color: #6a7f8f; border-style: dashed; content: ""; opacity: .7; position: absolute; }
.drill-card-rink--stations span::before { border-width: 0 0 2px; left: 0; right: 0; top: 50%; }
.drill-card-rink--stations span::after { border-width: 0 0 0 2px; bottom: 0; left: 50%; top: 0; }
.drill-empty-rink { border: 4px solid var(--gb-navy-900); border-radius: 2rem; height: 100px; position: relative; width: min(100%, 250px); }
.drill-empty-rink::after { border: 3px solid #4b80a8; border-radius: 50%; content: ""; height: 44px; left: calc(50% - 22px); position: absolute; top: calc(50% - 22px); width: 44px; }

.drill-editor-page { max-width: 1600px; }
.drill-builder-shell {
  align-items: stretch;
  background: #dbe8f0;
  border: 1px solid #b9cbd7;
  border-radius: 1rem;
  display: grid;
  gap: 0;
  grid-template-columns: 245px minmax(0, 1fr);
  min-height: 650px;
  overflow: hidden;
}
.drill-builder-shell--readonly { display: block; min-height: 0; }
.drill-toolbox { background: var(--gb-navy-900); color: #fff; overflow-y: auto; padding: 1rem; }
.drill-tool-section + .drill-tool-section { border-top: 1px solid rgba(255,255,255,.16); margin-top: .9rem; padding-top: .9rem; }
.drill-tool-label { color: #b9def6; display: block; font-size: .74rem; font-weight: 850; letter-spacing: .08em; margin-bottom: .45rem; text-transform: uppercase; }
.drill-tool-grid { display: grid; gap: .45rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
.drill-tool {
  align-items: center;
  background: #fff;
  border: 2px solid transparent;
  border-radius: .45rem;
  color: var(--gb-navy-900);
  display: flex;
  flex-direction: column;
  font-size: .72rem;
  font-weight: 750;
  gap: .15rem;
  justify-content: center;
  min-height: 54px;
  padding: .35rem;
}
.drill-tool > span:first-child { font-size: 1.2rem; font-weight: 850; line-height: 1; }
.drill-tool:hover, .drill-tool:focus, .drill-tool.is-active { background: #e7f5ff; border-color: var(--gb-blue-500); color: var(--gb-navy-900); }
.drill-tool:disabled { opacity: .45; }
.tool-symbol { align-items: center; display: inline-flex; justify-content: center; }
.tool-symbol--player { border: 3px solid var(--gb-red-700); border-radius: 50%; height: 1.35rem; width: 1.35rem; }
.tool-symbol--goalie { border: 3px solid var(--gb-blue-500); border-radius: .25rem; height: 1.35rem; width: 1.6rem; }
.tool-symbol--puck { background: var(--gb-navy-900); border-radius: 50%; height: .75rem; width: 1.2rem; }
.tool-symbol--puck-pile { background: radial-gradient(ellipse at 25% 32%, #071f36 0 22%, transparent 24%), radial-gradient(ellipse at 67% 28%, #071f36 0 22%, transparent 24%), radial-gradient(ellipse at 48% 70%, #071f36 0 23%, transparent 25%); height: 1.4rem; width: 1.7rem; }
.tool-symbol--cone { border-bottom: 1.3rem solid #f59f00; border-left: .55rem solid transparent; border-right: .55rem solid transparent; height: 0; width: 0; }
.tool-symbol--net { border: 3px solid #d12f3b; border-bottom-width: 5px; border-radius: 50% 50% .2rem .2rem; height: 1.25rem; width: 1.7rem; }
.drill-rotation-grid { display: grid; gap: .4rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.drill-colours { display: flex; flex-wrap: wrap; gap: .55rem; }
.drill-colours button { background: var(--drill-colour); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px rgba(255,255,255,.3); height: 29px; width: 29px; }
.drill-colours button[data-color="#a91f2b"] { --drill-colour: #a91f2b; }
.drill-colours button[data-color="#0877c9"] { --drill-colour: #0877c9; }
.drill-colours button[data-color="#071f36"] { --drill-colour: #071f36; }
.drill-colours button[data-color="#198754"] { --drill-colour: #198754; }
.drill-colours button[data-color="#f59f00"] { --drill-colour: #f59f00; }
.drill-colours button.is-active { box-shadow: 0 0 0 3px var(--gb-blue-500); }
.drill-stage-column { display: flex; flex-direction: column; min-width: 0; }
.drill-stage-toolbar { align-items: center; background: #fff; border-bottom: 1px solid #b9cbd7; display: flex; gap: 1rem; justify-content: space-between; min-height: 68px; padding: .75rem 1rem; }
.drill-stage { align-items: center; display: flex; flex: 1 1 auto; justify-content: center; overflow: auto; padding: 1rem; }
#drill-canvas { background: #fff; box-shadow: 0 .5rem 1.5rem rgba(7,31,54,.15); display: block; height: auto; max-height: calc(100vh - 8rem); min-width: 680px; touch-action: none; user-select: none; width: min(100%, 1200px); }
#drill-canvas[data-layout="half"] { max-height: none; min-width: 560px; width: min(100%, 740px); }
#drill-canvas [data-item-id] { cursor: pointer; }
.drill-mobile-hint { background: #fff; border-top: 1px solid #b9cbd7; color: #526878; display: none; font-size: .78rem; padding: .5rem 1rem; text-align: center; }

@media (max-width: 991.98px) {
  .drill-hero { align-items: flex-start; flex-direction: column; }
  .drill-builder-shell { grid-template-columns: 1fr; }
  .drill-toolbox { display: grid; gap: .8rem; grid-template-columns: repeat(3, minmax(0,1fr)); max-height: none; }
  .drill-tool-section + .drill-tool-section { border-left: 1px solid rgba(255,255,255,.16); border-top: 0; margin: 0; padding: 0 0 0 .8rem; }
  .drill-mobile-hint { display: block; }
  #drill-canvas { max-height: none; }
}

@media (max-width: 575.98px) {
  .drill-hero { padding: 1.35rem; }
  .drill-toolbox { grid-template-columns: 1fr 1fr; }
  .drill-tool-section + .drill-tool-section { border-left: 0; border-top: 1px solid rgba(255,255,255,.16); padding: .8rem 0 0; }
  .drill-stage { justify-content: flex-start; padding: .65rem; }
  #drill-canvas { min-width: 660px; }
}

@media (max-width: 1199.98px) {
  .site-navbar .navbar-collapse {
    border-top: 1px solid rgba(255,255,255,.16);
    margin-top: .6rem;
    padding: .6rem 0 1rem;
  }
  .site-navbar .nav-link { border-bottom: 0; padding: .55rem .25rem !important; }
}

@media (max-width: 991.98px) {
  .handbook-cover-stage { min-height: 380px; }
  .handbook-cover { width: min(36%, 205px); }
  .book-card { grid-template-columns: 31% 1fr; }
  .book-card-cover { max-height: 280px; object-fit: contain; }
  .handbook-jump-nav { position: static; }
  .coming-sports-band { grid-template-columns: 1fr; }
  .coming-sport-list { grid-template-columns: repeat(3, 1fr); }
  .launch-status-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pilot-role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
  body { margin-bottom: 118px; }
  .site-brand-frame { height: 54px; width: 164px; }
  .scoreboard-grid { grid-template-columns: 1fr; }
  .gameball-role-band { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .handbook-hero,
  .vault-hero,
  .support-hero,
  .handbooks-intro { padding: 1.35rem; }
  .handbook-cover-stage { min-height: 285px; }
  .handbook-cover { width: 39%; }
  .book-card { grid-template-columns: 1fr; }
  .book-card-cover { margin: 1.4rem auto 0; max-height: 260px; object-fit: contain; width: auto; }
  .vault-metric-row,
  .book-stat-grid { grid-template-columns: 1fr; }
  .support-strip { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .handbooks-intro-covers { gap: .45rem; }
  .handbooks-intro-covers img { width: 31%; }
  .handbook-jump-nav { justify-content: flex-start; }
  .book-sample-grid { grid-template-columns: 1fr; }
  .book-sample { grid-template-columns: 110px 1fr; }
  .coming-sport-list { grid-template-columns: 1fr; }
  .launch-status-board,
  .pilot-role-grid { grid-template-columns: 1fr; }
  .launch-status-board article { min-height: auto; }
  .vault-account-access { align-items: flex-start; flex-direction: column; width: 100%; }
  .vault-search-panel { align-items: stretch; grid-template-columns: 1fr; }
  .vault-search-status { grid-column: 1; }
  .vault-search-controls { align-items: stretch; flex-direction: column; }
  .vault-role-button { align-items: flex-start; flex-direction: column; gap: .65rem; padding: 1rem; }
  .vault-role-button::after { position: absolute; right: 1rem; top: 1.25rem; }
  .vault-role-button__main { flex-basis: auto; padding-right: 2rem; }
  .vault-role-button__details { align-items: flex-start; flex-basis: auto; padding-right: 0; text-align: left; }
  .vault-role-access-note { align-items: flex-start; flex-direction: column; }
  .vault-section-button { align-items: flex-start; flex-wrap: wrap; padding-right: 3rem; position: relative; }
  .vault-section-button::after { position: absolute; right: 1rem; top: 1rem; }
  .vault-section-button__title { flex-basis: 100%; }
  .vault-package-form-list li { grid-template-columns: 1fr; gap: .15rem; }
  .vault-package-meta { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .gameball-feature-card,
  .book-sample { transition: none; }
  .handbooks-intro-covers img:nth-child(2) { transform: none; }
}

@media print {
  body { background: #fff; margin: 0; }
  header, .site-footer, .d-print-none { display: none !important; }
  .site-main { max-width: none; padding: 0; }
  .purchase-confirmation { border: 0 !important; box-shadow: none !important; margin-top: 0 !important; }
  .purchase-confirmation .card-body { padding: 0 !important; }
  .purchase-confirmation a { color: #000; text-decoration: none; }
}
