/* ═══════════════════════════════════════════════════════════
   Athletic Edge — Athlete Portal
   portal.css v28
   ═══════════════════════════════════════════════════════════ */

/* ── Reset / Base ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:          #0a0a14;
  --bg2:         #0f0f1e;
  --bg3:         #14142a;
  --surface:     #1a1a2e;
  --surface2:    #1e1e38;
  --border:      rgba(255,255,255,0.08);
  --blue:        #1400FF;
  --blue-mid:    #2b1fff;
  --blue-glow:   rgba(20,0,255,0.25);
  --blue-light:  rgba(20,0,255,0.12);
  --accent:      #00d4ff;
  --text:        #e8eaf2;
  --text-muted:  #8b8fa8;
  --text-dim:    #5a5e7a;
  --success:     #22c55e;
  --warning:     #f59e0b;
  --danger:      #ef4444;
  --gold:        #fbbf24;
  --font-head:   'Rajdhani', sans-serif;
  --font-body:   'Inter', sans-serif;
  --radius:      10px;
  --radius-sm:   6px;
  --sidebar-w:   240px;
}

html, body {
  min-height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
}

/* ── Utility ──────────────────────────────────────────────── */
.hidden { display: none !important; }

/* ══════════════════════════════════════════════════════════
   SIGN-IN SCREEN
   ══════════════════════════════════════════════════════════ */
.portal-auth-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: var(--bg);
  background-image:
    radial-gradient(ellipse 60% 40% at 50% -10%, rgba(20,0,255,0.18) 0%, transparent 70%);
}

.auth-card {
  width: 100%;
  max-width: 420px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 40px 36px;
  box-shadow: 0 24px 80px rgba(0,0,0,0.6), 0 0 0 1px rgba(20,0,255,0.1);
}

.auth-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}

.auth-logo-text h1 {
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--text);
  line-height: 1;
  margin-bottom: 2px;
}

.auth-logo-text span {
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--text-muted);
}

.auth-headline {
  font-family: var(--font-head);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--text);
  margin-bottom: 8px;
}

.auth-sub {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.55;
  margin-bottom: 28px;
}

.auth-error {
  background: rgba(239,68,68,0.12);
  border: 1px solid rgba(239,68,68,0.3);
  color: #fca5a5;
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  font-size: 13px;
  margin-bottom: 18px;
}

.btn-google-signin {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 13px 20px;
  background: #fff;
  color: #1a1a1a;
  border: none;
  border-radius: var(--radius);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, transform 0.12s;
  margin-bottom: 20px;
}

.btn-google-signin:hover { background: #f1f1f1; }
.btn-google-signin:active { transform: scale(0.98); }

.google-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.auth-note {
  font-size: 12px;
  color: var(--text-dim);
  text-align: center;
  line-height: 1.5;
}

.auth-gate-icon {
  font-size: 36px;
  text-align: center;
  margin: 4px 0 10px;
}

.btn-auth-secondary {
  display: block;
  width: 100%;
  padding: 12px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-muted);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  transition: all 0.15s;
  margin-top: 10px;
}

.btn-auth-secondary:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ══════════════════════════════════════════════════════════
   LOGO MARK
   ══════════════════════════════════════════════════════════ */
.logo-mark {
  width: 44px;
  height: 44px;
  background: var(--blue);
  color: #fff;
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 20px var(--blue-glow);
}

.logo-mark.sm {
  width: 34px;
  height: 34px;
  font-size: 13px;
  border-radius: 8px;
}

/* ══════════════════════════════════════════════════════════
   WIZARD SCREEN
   ══════════════════════════════════════════════════════════ */
.wizard-wrap {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 20px 60px;
  background: var(--bg);
  background-image:
    radial-gradient(ellipse 50% 30% at 50% 0%, rgba(20,0,255,0.15) 0%, transparent 60%);
}

.wizard-header {
  text-align: center;
  max-width: 500px;
  margin-bottom: 36px;
}

.wizard-header .logo-mark {
  margin: 0 auto 16px;
}

.wizard-header h2 {
  font-family: var(--font-head);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--text);
  margin-bottom: 6px;
}

.wizard-header p {
  font-size: 14px;
  color: var(--text-muted);
}

/* Progress steps */
.wizard-progress {
  width: 100%;
  max-width: 560px;
  margin-bottom: 32px;
}

.wizard-steps {
  display: flex;
  align-items: center;
  justify-content: center;
}

.wstep {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  cursor: default;
}

.wstep-dot {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--border);
  color: var(--text-muted);
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.wstep span {
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-dim);
  transition: color 0.2s;
}

.wstep.active .wstep-dot {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
  box-shadow: 0 0 12px var(--blue-glow);
}

.wstep.active span { color: var(--text); }

.wstep.done .wstep-dot {
  background: rgba(20,0,255,0.2);
  border-color: rgba(20,0,255,0.5);
  color: var(--accent);
}

.wstep-line {
  flex: 1;
  height: 2px;
  background: var(--border);
  margin: 0 8px;
  margin-bottom: 24px;
  min-width: 40px;
  max-width: 80px;
}

/* Photo upload in wizard */
.wizard-photo-upload-wrap {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
  padding: 16px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.wizard-photo-preview {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--border);
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.wizard-photo-preview::before {
  content: '👤';
  font-size: 32px;
  opacity: 0.3;
}

.wizard-photo-preview.has-photo::before {
  display: none;
}

.wizard-photo-info {
  flex: 1;
}

/* Photo upload in profile edit form */
.profile-photo-edit-wrap {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
  padding: 16px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.profile-photo-preview {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--border);
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.profile-photo-preview::before {
  content: '👤';
  font-size: 32px;
  opacity: 0.3;
}

.profile-photo-preview.has-photo::before {
  display: none;
}

.profile-photo-edit-info {
  flex: 1;
}

/* Metrics grid in wizard */
.metrics-wizard-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 24px;
  margin-top: 12px;
}

.metrics-wizard-grid .form-group {
  margin-bottom: 0;
}

.metrics-wizard-grid .form-input {
  text-align: center;
  font-family: var(--font-head);
  font-size: 18px;
  font-weight: 700;
  color: var(--accent);
}

/* Wizard panel */
.wizard-step-panel {
  width: 100%;
  max-width: 560px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
  margin-bottom: 20px;
}

.step-title {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--text);
  margin-bottom: 24px;
}

/* Wizard nav */
.wizard-nav {
  display: flex;
  width: 100%;
  max-width: 560px;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.btn-wiz-back {
  padding: 11px 24px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-muted);
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
}

.btn-wiz-back:hover {
  border-color: rgba(255,255,255,0.2);
  color: var(--text);
}

.btn-wiz-next {
  padding: 11px 32px;
  background: var(--blue);
  border: none;
  color: #fff;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  box-shadow: 0 4px 16px var(--blue-glow);
  margin-left: auto;
}

.btn-wiz-next:hover { background: var(--blue-mid); }
.btn-wiz-next:disabled { opacity: 0.5; cursor: not-allowed; }

.wizard-error {
  width: 100%;
  max-width: 560px;
  background: rgba(239,68,68,0.12);
  border: 1px solid rgba(239,68,68,0.3);
  color: #fca5a5;
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  font-size: 13px;
  margin-top: 8px;
}

/* ── Form elements ──────────────────────────────────────── */
.form-group {
  margin-bottom: 18px;
}

.form-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 6px;
}

.form-input {
  width: 100%;
  padding: 10px 14px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  transition: border-color 0.15s, box-shadow 0.15s;
  appearance: none;
}

.form-input:focus {
  outline: none;
  border-color: rgba(20,0,255,0.5);
  box-shadow: 0 0 0 3px var(--blue-light);
}

.form-input::placeholder { color: var(--text-dim); }

select.form-input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238b8fa8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
  cursor: pointer;
}

select.form-input option {
  background: var(--surface);
  color: var(--text);
}

.form-textarea {
  width: 100%;
  padding: 10px 14px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  resize: vertical;
  min-height: 80px;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.form-textarea:focus {
  outline: none;
  border-color: rgba(20,0,255,0.5);
  box-shadow: 0 0 0 3px var(--blue-light);
}

.form-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.checkbox-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.checkbox-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--text-muted);
  cursor: pointer;
  padding: 8px 10px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  transition: all 0.12s;
}

.checkbox-item:hover {
  border-color: rgba(20,0,255,0.4);
  color: var(--text);
}

.checkbox-item input[type="checkbox"] {
  width: 14px;
  height: 14px;
  accent-color: var(--blue);
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════
   DASHBOARD LAYOUT
   ══════════════════════════════════════════════════════════ */
.portal-layout {
  display: flex;
  min-height: 100vh;
}

/* ── Sidebar ─────────────────────────────────────────────── */
.portal-sidebar {
  width: var(--sidebar-w);
  height: 100vh;
  background: var(--bg2);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  padding: 20px 0;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  overflow: hidden;
  transition: transform 0.25s ease;
}

.sidebar-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 18px 20px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 8px;
}

.sidebar-logo-text {
  display: flex;
  flex-direction: column;
}

.sidebar-title {
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--text);
  line-height: 1;
}

.sidebar-sub {
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-dim);
  margin-top: 2px;
}

.sidebar-athlete-info {
  padding: 16px 18px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 8px;
}

.athlete-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--surface2);
  border: 2px solid var(--border);
  margin-bottom: 10px;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.athlete-name {
  font-family: var(--font-head);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--text);
  margin-bottom: 2px;
}

.athlete-position {
  font-size: 12px;
  color: var(--text-muted);
  text-transform: capitalize;
  margin-bottom: 8px;
}

.athlete-tier-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.sidebar-nav {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 4px 0;
}

/* ── Sidebar footer (Upgrade CTA + Sign Out) ─────────────────────── */
.sidebar-footer {
  margin-top: auto;
  padding: 12px 14px 14px;
  border-top: 1px solid rgba(255,255,255,0.06);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sidebar-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  background: linear-gradient(135deg, var(--gold) 0%, #f59e0b 100%);
  color: #1a1408;
  border: none;
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
  box-shadow: 0 2px 8px rgba(251,191,36,0.25);
}

.sidebar-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(251,191,36,0.35);
}

.sidebar-cta-icon {
  font-size: 14px;
}

/* Combine-tier variant: outline style, signals "manage" not "buy" */
.sidebar-cta.is-manage {
  background: transparent;
  color: var(--gold);
  border: 1.5px solid rgba(251,191,36,0.5);
  box-shadow: none;
}
.sidebar-cta.is-manage:hover {
  background: rgba(251,191,36,0.08);
  transform: none;
}

/* Manage Plan banner — shown at top of upgrade section for combine athletes */
.manage-plan-banner {
  background: rgba(251,191,36,0.08);
  border: 1px solid rgba(251,191,36,0.3);
  border-radius: 8px;
  padding: 14px 16px;
  margin: 0 0 20px;
}
.manage-plan-banner-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--gold);
  margin-bottom: 6px;
}
.manage-plan-banner-body {
  font-size: 0.88rem;
  color: var(--text);
  line-height: 1.55;
  margin: 0;
}
.manage-plan-banner-body a {
  color: var(--gold);
  text-decoration: underline;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  background: none;
  border: none;
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s;
  position: relative;
  border-left: 3px solid transparent;
  text-decoration: none;
}

.nav-item:hover {
  color: var(--text);
  background: var(--blue-light);
}

.nav-item.active {
  color: var(--text);
  background: var(--blue-light);
  border-left-color: var(--blue);
}

.nav-icon {
  font-size: 14px;
  opacity: 0.7;
  width: 16px;
  text-align: center;
  flex-shrink: 0;
}

.nav-lock {
  margin-left: auto;
  font-size: 11px;
  opacity: 0.5;
}

.btn-sidebar-signout {
  margin: 12px 18px 0;
  padding: 9px 14px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-dim);
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  text-align: center;
}

.btn-sidebar-signout:hover {
  border-color: rgba(239,68,68,0.4);
  color: #fca5a5;
}

/* ── Main content ──────────────────────────────────────── */
.portal-main {
  flex: 1;
  margin-left: var(--sidebar-w);
  min-height: 100vh;
  background: var(--bg);
}

/* Mobile header (hidden on desktop) */
.mobile-header {
  display: none;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: var(--bg2);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 50;
}

.mobile-header-title {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--text);
}

.btn-mobile-menu {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 20px;
  cursor: pointer;
  padding: 2px 6px;
}

/* ── Sections ──────────────────────────────────────────── */
.portal-section {
  padding: 36px 40px;
  max-width: 960px;
}

.portal-section.hidden { display: none; }
.portal-section.active { display: block; }

.section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 28px;
  flex-wrap: wrap;
  gap: 12px;
}

.section-header h2 {
  font-family: var(--font-head);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--text);
  line-height: 1.2;
}

.section-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin-top: 4px;
}

/* ── Overview cards ────────────────────────────────────── */
.overview-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 24px;
}

.ov-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
}

.ov-card-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  margin-bottom: 8px;
}

.ov-card-value {
  font-family: var(--font-head);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--text);
}

.overview-notice {
  background: var(--surface);
  border: 1px solid rgba(20,0,255,0.25);
  border-left: 3px solid var(--blue);
  border-radius: var(--radius-sm);
  padding: 14px 18px;
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 24px;
}

.overview-notice:empty { display: none; }

/* Tier ladder */
.tier-ladder {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 24px;
}

.tier-ladder-title {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  margin-bottom: 16px;
}

.tier-ladder-steps {
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: wrap;
  gap: 6px;
}

.tier-step {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.4;
  border: 1px solid transparent;
}

.tier-step.current {
  opacity: 1;
  border-color: rgba(20,0,255,0.4);
  background: var(--blue-light);
  color: var(--accent);
}

.tier-step.unlocked { opacity: 0.7; }

.tier-step-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

/* ── Tier badge colors ─────────────────────────────────── */
.tier-free     { background: rgba(139,143,168,0.12); color: var(--text-muted); border: 1px solid rgba(139,143,168,0.2); }
.tier-basic    { background: rgba(20,0,255,0.12);    color: #818cf8;            border: 1px solid rgba(20,0,255,0.25); }
.tier-essentials { background: rgba(0,212,255,0.1);  color: var(--accent);      border: 1px solid rgba(0,212,255,0.2); }
.tier-combine  { background: rgba(251,191,36,0.1);   color: var(--gold);        border: 1px solid rgba(251,191,36,0.2); }

/* ── Share profile card ─────────────────────────────────── */
.share-profile-card {
  background: var(--surface);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: var(--radius);
  padding: 18px 20px;
  margin-bottom: 20px;
}

.share-profile-title {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 4px;
}

.share-profile-note {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 12px;
}

.share-link-row {
  display: flex;
  gap: 8px;
}

.share-link-input {
  flex: 1;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 8px 12px;
  font-size: 12px;
  color: var(--text-muted);
  font-family: var(--font-body);
  min-width: 0;
  cursor: text;
}

.btn-copy-link {
  padding: 8px 16px;
  background: var(--blue);
  border: none;
  border-radius: var(--radius-sm);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s;
  flex-shrink: 0;
}

.btn-copy-link:hover { background: var(--blue-mid); }
.btn-copy-link.copied { background: var(--success); }

/* ── Profile section ───────────────────────────────────── */
.profile-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

.profile-field {
  background: var(--surface);
  padding: 16px 20px;
}

.profile-field-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  margin-bottom: 4px;
}

.profile-field-value {
  font-size: 15px;
  color: var(--text);
}

.profile-field-value.empty {
  color: var(--text-dim);
  font-style: italic;
}

.btn-edit-profile {
  padding: 8px 20px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-muted);
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
}

.btn-edit-profile:hover {
  border-color: rgba(20,0,255,0.4);
  color: var(--text);
}

.edit-form {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
  margin-bottom: 16px;
}

.edit-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.btn-cancel-edit {
  padding: 9px 20px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-muted);
  border-radius: var(--radius-sm);
  font-size: 13px;
  cursor: pointer;
}

.btn-save-profile {
  padding: 9px 22px;
  background: var(--blue);
  border: none;
  color: #fff;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-save-profile:hover { background: var(--blue-mid); }
.btn-save-profile:disabled { opacity: 0.5; cursor: not-allowed; }

.profile-save-msg {
  text-align: right;
  font-size: 13px;
  color: var(--success);
  margin-top: 8px;
}

/* ── Gate overlay ──────────────────────────────────────── */
.gate-overlay {
  position: relative;
  z-index: 10;
}

.gate-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 40px 32px;
  text-align: center;
  max-width: 420px;
}

.gate-lock {
  font-size: 36px;
  margin-bottom: 14px;
}

.gate-card h3 {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--text);
  margin-bottom: 10px;
}

.gate-card p {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.55;
}

/* ── Video section ─────────────────────────────────────── */
.video-upload-area {
  border: 2px dashed var(--border);
  border-radius: var(--radius);
  padding: 40px 24px;
  text-align: center;
  margin-bottom: 20px;
  transition: border-color 0.15s, background 0.15s;
}

.video-upload-area:hover,
.video-upload-area.dragover {
  border-color: rgba(20,0,255,0.5);
  background: var(--blue-light);
}

.upload-icon {
  font-size: 32px;
  color: var(--text-dim);
  margin-bottom: 12px;
}

.upload-hint p {
  font-size: 14px;
  color: var(--text-muted);
  margin-bottom: 6px;
}

.upload-sub {
  font-size: 12px;
  color: var(--text-dim) !important;
}

.btn-browse-files {
  margin-top: 14px;
  padding: 9px 22px;
  background: var(--blue);
  border: none;
  color: #fff;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-browse-files:hover { background: var(--blue-mid); }

.upload-progress-list {
  margin-bottom: 16px;
}

.upload-progress-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  margin-bottom: 8px;
}

.upi-name {
  font-size: 13px;
  color: var(--text);
  margin-bottom: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.upi-bar-wrap {
  height: 4px;
  background: var(--border);
  border-radius: 2px;
  overflow: hidden;
}

.upi-bar {
  height: 100%;
  background: var(--blue);
  border-radius: 2px;
  transition: width 0.2s;
}

.upi-status {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 5px;
}

.uploaded-videos-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.videos-empty {
  font-size: 14px;
  color: var(--text-dim);
  text-align: center;
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.uploaded-video-item {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
}

.uvi-icon {
  font-size: 24px;
  flex-shrink: 0;
  color: var(--text-dim);
}

.uvi-info {
  flex: 1;
  min-width: 0;
}

.uvi-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.uvi-meta {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 2px;
}

/* ── Metrics section ───────────────────────────────────── */
.metrics-empty {
  font-size: 14px;
  color: var(--text-muted);
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  text-align: center;
}

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

.metric-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  text-align: center;
}

.metric-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  margin-bottom: 6px;
}

.metric-value {
  font-family: var(--font-head);
  font-size: 30px;
  font-weight: 700;
  color: var(--text);
}

.metric-unit {
  font-size: 12px;
  color: var(--text-dim);
  margin-top: 2px;
}


/* ══════════════════════════════════════════════════════════
   TOAST
   ══════════════════════════════════════════════════════════ */
.toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  padding: 12px 20px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 500;
  z-index: 9999;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.2s, transform 0.2s;
  pointer-events: none;
  max-width: 340px;
}

.toast.show {
  opacity: 1;
  transform: translateY(0);
}

.toast.success {
  background: rgba(34,197,94,0.15);
  border: 1px solid rgba(34,197,94,0.3);
  color: #4ade80;
}

.toast.error {
  background: rgba(239,68,68,0.15);
  border: 1px solid rgba(239,68,68,0.3);
  color: #fca5a5;
}

.toast.info {
  background: rgba(20,0,255,0.15);
  border: 1px solid rgba(20,0,255,0.3);
  color: #818cf8;
}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  .overview-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 720px) {
  .portal-sidebar {
    transform: translateX(-100%);
  }

  .portal-sidebar.open {
    transform: translateX(0);
    box-shadow: 4px 0 32px rgba(0,0,0,0.6);
  }

  .portal-main {
    margin-left: 0;
  }

  .mobile-header { display: flex; }

  .portal-section {
    padding: 24px 20px;
  }

  .form-row-2 {
    grid-template-columns: 1fr;
  }

  .checkbox-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .profile-grid {
    grid-template-columns: 1fr;
  }

  .metrics-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .wizard-step-panel {
    padding: 20px;
  }

  .auth-card {
    padding: 28px 22px;
  }
}

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

  .metrics-grid {
    grid-template-columns: 1fr 1fr;
  }

  .wstep span { display: none; }
}

/* ══════════════════════════════════════════════════════════
   FIELDLEVEL SECTION
   ══════════════════════════════════════════════════════════ */

/* Nav item accent */
.nav-item-fieldlevel {
  margin-top: 4px;
  border-top: 1px solid var(--border);
  padding-top: 14px;
}

/* Hero card */
.fl-hero-card {
  background: var(--surface);
  border: 1px solid rgba(20,0,255,0.25);
  border-radius: var(--radius);
  padding: 28px 28px 24px;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
}

.fl-hero-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--blue) 0%, var(--accent) 100%);
}

.fl-hero-logo {
  margin-bottom: 14px;
}

.fl-logo-text {
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.04em;
  background: linear-gradient(90deg, var(--blue) 0%, var(--accent) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.fl-hero-desc {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.7;
  margin-bottom: 22px;
  max-width: 680px;
}

.fl-hero-btns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.btn-fl-primary {
  display: inline-block;
  padding: 11px 24px;
  background: var(--blue);
  color: #fff;
  text-decoration: none;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  transition: background 0.15s, transform 0.12s;
  box-shadow: 0 4px 16px var(--blue-glow);
}

.btn-fl-primary:hover {
  background: var(--blue-mid);
  transform: translateY(-1px);
}

.btn-fl-ghost {
  display: inline-block;
  padding: 11px 24px;
  background: transparent;
  color: var(--text-muted);
  text-decoration: none;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  transition: all 0.15s;
}

.btn-fl-ghost:hover {
  border-color: rgba(20,0,255,0.4);
  color: var(--text);
  background: var(--blue-light);
}

/* Features grid */
.fl-features-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-bottom: 24px;
}

.fl-feature-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 20px 18px;
  transition: border-color 0.15s;
}

.fl-feature-card:hover {
  border-color: rgba(20,0,255,0.3);
}

.fl-feature-icon {
  font-size: 24px;
  margin-bottom: 10px;
  line-height: 1;
}

.fl-feature-title {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--text);
  margin-bottom: 6px;
}

.fl-feature-desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
}

/* Personal profile card */
.fl-profile-card {
  background: var(--surface);
  border: 1px solid rgba(0,212,255,0.2);
  border-radius: var(--radius);
  padding: 22px 24px;
  margin-bottom: 16px;
}

.fl-profile-card-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent);
  margin-bottom: 6px;
}

.fl-profile-card-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 16px;
}

/* Three action buttons */
.btn-fl-action {
  display: inline-block;
  padding: 11px 20px;
  background: var(--blue);
  color: #fff;
  text-decoration: none;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  transition: background 0.15s, transform 0.12s;
  box-shadow: 0 4px 16px var(--blue-glow);
  flex: 1;
  text-align: center;
  min-width: 110px;
}

.btn-fl-action:hover {
  background: var(--blue-mid);
  transform: translateY(-1px);
}

/* No-URL prompt */
.fl-no-url-prompt {
  font-size: 13px;
  color: var(--text-dim);
  padding: 16px 20px;
  background: var(--surface);
  border: 1px dashed var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 16px;
}

.fl-settings-link {
  background: none;
  border: none;
  color: var(--accent);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.fl-settings-link:hover { color: var(--text); }

/* Overview FieldLevel quick-link card */
.ov-fl-card {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 20px;
  margin-top: 16px;
}

.ov-fl-label {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  white-space: nowrap;
}

.ov-fl-links {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.ov-fl-links a {
  font-size: 13px;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
}

.ov-fl-links a:hover {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ov-fl-sep {
  font-size: 13px;
  color: var(--text-dim);
}

/* Responsive */
@media (max-width: 600px) {
  .fl-features-grid {
    grid-template-columns: 1fr;
  }

  .fl-hero-btns {
    flex-direction: column;
  }

  .btn-fl-action {
    text-align: center;
  }

  .ov-fl-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

/* ══════════════════════════════════════════════════════════
   PRAYER & FAITH SECTION
   ══════════════════════════════════════════════════════════ */

:root {
  --gold-faith:      #c9a84c;
  --gold-faith-dim:  rgba(201,168,76,0.15);
  --gold-faith-border: rgba(201,168,76,0.25);
}

/* Nav item separation */
.nav-item-faith {
  margin-top: 2px;
}

.nav-item-resources {
  margin-top: 2px;
}

/* Hero card */
.faith-hero-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 28px 24px;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
}

.faith-hero-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold-faith) 0%, #e8d5a0 100%);
}

.faith-hero-icon {
  font-size: 28px;
  margin-bottom: 14px;
  line-height: 1;
}

.faith-hero-desc {
  font-size: 15px;
  color: var(--text-muted);
  line-height: 1.75;
  font-style: italic;
  max-width: 680px;
}

/* Two link cards */
.faith-cards-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 28px;
}

.faith-link-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px 22px 20px;
  display: flex;
  flex-direction: column;
  transition: border-color 0.15s;
}

.faith-link-card:hover {
  border-color: var(--gold-faith-border);
}

.faith-card-icon {
  font-size: 28px;
  margin-bottom: 12px;
  line-height: 1;
}

.faith-card-title {
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--text);
  margin-bottom: 10px;
  line-height: 1.3;
}

.faith-card-desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.65;
  flex: 1;
  margin-bottom: 18px;
}

.btn-faith-primary {
  display: inline-block;
  padding: 10px 20px;
  background: var(--gold-faith-dim);
  border: 1px solid var(--gold-faith-border);
  color: var(--gold-faith);
  text-decoration: none;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 600;
  transition: all 0.15s;
  text-align: center;
}

.btn-faith-primary:hover {
  background: rgba(201,168,76,0.25);
  border-color: rgba(201,168,76,0.5);
  color: #e8d5a0;
}

/* Scripture quotes */
.faith-scripture-block {
  background: var(--surface);
  border: 1px solid var(--gold-faith-border);
  border-radius: var(--radius);
  padding: 32px 36px;
  position: relative;
  overflow: hidden;
}

.faith-scripture-block::before {
  content: '\201C';
  position: absolute;
  top: -10px;
  left: 20px;
  font-size: 120px;
  font-family: Georgia, serif;
  color: rgba(201,168,76,0.08);
  line-height: 1;
  pointer-events: none;
}

.faith-verse {
  text-align: center;
}

.faith-verse-text {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 18px;
  font-style: italic;
  color: #e8d5a0;
  line-height: 1.7;
  margin-bottom: 12px;
  letter-spacing: 0.01em;
}

.faith-verse-ref {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gold-faith);
  opacity: 0.8;
}

.faith-verse-divider {
  width: 40px;
  height: 1px;
  background: var(--gold-faith-border);
  margin: 28px auto;
}

/* Responsive */
@media (max-width: 640px) {
  .faith-cards-row {
    grid-template-columns: 1fr;
  }

  .faith-scripture-block {
    padding: 24px 22px;
  }

  .faith-verse-text {
    font-size: 16px;
  }
}

/* ══════════════════════════════════════════════════════════
   RESOURCES SECTION
   ══════════════════════════════════════════════════════════ */
.resources-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
}

.resource-category-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 22px;
}

.resource-cat-title {
  font-family: var(--font-head);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

.resource-link-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.resource-link-list li a {
  color: var(--text-muted);
  text-decoration: none;
  font-size: 13px;
  line-height: 1.4;
  transition: color 0.15s;
}

.resource-link-list li a:hover {
  color: var(--accent);
}

@media (max-width: 640px) {
  .resources-grid {
    grid-template-columns: 1fr;
  }
}

/* ══════════════════════════════════════════════════════════
   UPGRADE SECTION
   ══════════════════════════════════════════════════════════ */

/* Plans grid */
.upgrade-plans-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 18px;
  margin-top: 20px;
}

/* Plan card base */
.upgrade-plan-card {
  position: relative;
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 24px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: transform 0.15s, border-color 0.15s;
}

.upgrade-plan-card:hover:not(.upgrade-plan-lower) {
  transform: translateY(-2px);
}

/* Tier-color top accent border */
.tier-accent-basic      { border-top: 3px solid #818cf8; }
.tier-accent-essentials { border-top: 3px solid var(--accent); }
.tier-accent-combine    { border-top: 3px solid var(--gold); }

/* Current plan glow */
.upgrade-plan-current {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(0,212,255,0.25), 0 4px 20px rgba(0,212,255,0.08);
}

/* Lower tier (grayed) */
.upgrade-plan-lower {
  opacity: 0.45;
  pointer-events: none;
}

/* Current plan badge */
.upgrade-current-badge {
  position: absolute;
  top: -10px;
  left: 16px;
  background: var(--accent);
  color: #0A1628;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 2px 10px;
  border-radius: 20px;
}

.upgrade-plan-header {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.upgrade-plan-name {
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
}

.upgrade-plan-price {
  font-size: 22px;
  font-weight: 800;
  color: var(--accent);
}

.tier-accent-basic      .upgrade-plan-price { color: #818cf8; }
.tier-accent-combine    .upgrade-plan-price { color: var(--gold); }

.upgrade-plan-features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex: 1;
}

.upgrade-plan-features li {
  font-size: 13px;
  color: var(--text-muted);
  padding-left: 18px;
  position: relative;
}

.upgrade-plan-features li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 700;
}

.tier-accent-basic      .upgrade-plan-features li::before { color: #818cf8; }
.tier-accent-combine    .upgrade-plan-features li::before { color: var(--gold); }

/* Upgrade buttons */
.btn-upgrade-plan {
  width: 100%;
  padding: 11px 16px;
  border-radius: 8px;
  border: none;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, opacity 0.15s;
}

.btn-do-upgrade {
  background: var(--accent);
  color: #0A1628;
}

.btn-do-upgrade:hover {
  background: #00b8d9;
}

.tier-accent-basic      .btn-do-upgrade { background: #818cf8; color: #0A1628; }
.tier-accent-basic      .btn-do-upgrade:hover { background: #6366f1; }
.tier-accent-combine    .btn-do-upgrade { background: var(--gold); color: #0A1628; }
.tier-accent-combine    .btn-do-upgrade:hover { background: #f59e0b; }

.btn-current-plan,
.btn-lower-plan {
  background: rgba(255,255,255,0.05);
  color: var(--text-muted);
  cursor: default;
}

/* Gate card upgrade button */
.btn-gate-upgrade {
  display: inline-block;
  margin-top: 12px;
  padding: 9px 20px;
  background: transparent;
  border: 1px solid var(--accent);
  color: var(--accent);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.btn-gate-upgrade:hover {
  background: rgba(0,212,255,0.1);
}

/* Upgrade modal */
.upgrade-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9000;
  padding: 16px;
}

.upgrade-modal-overlay.hidden {
  display: none;
}

.upgrade-modal {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px;
  padding: 32px 28px 24px;
  max-width: 460px;
  width: 100%;
  position: relative;
}

.upgrade-modal-close {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  padding: 4px;
}

.upgrade-modal-close:hover { color: var(--text); }

.upgrade-modal-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 14px;
}

.upgrade-modal-body {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0 0 14px;
}

.upgrade-modal-body strong { color: var(--text); }

.upgrade-modal-actions {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}

.btn-upgrade-cancel {
  flex: 1;
  padding: 11px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  color: var(--text-muted);
  font-size: 14px;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-upgrade-cancel:hover { background: rgba(255,255,255,0.08); }

.btn-upgrade-confirm {
  flex: 2;
  padding: 11px;
  background: var(--accent);
  border: none;
  border-radius: 8px;
  color: #0A1628;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, opacity 0.15s;
}

.btn-upgrade-confirm:hover:not(:disabled) { background: #00b8d9; }
.btn-upgrade-confirm:disabled { opacity: 0.6; cursor: default; }

/* Confirmation state */
.upgrade-confirm-state {
  text-align: center;
  padding: 12px 0;
}

.upgrade-confirm-icon {
  width: 52px;
  height: 52px;
  background: rgba(0,212,255,0.12);
  border: 2px solid var(--accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: var(--accent);
  margin: 0 auto 16px;
}

@media (max-width: 640px) {
  .upgrade-plans-grid {
    grid-template-columns: 1fr;
  }

  .upgrade-modal-actions {
    flex-direction: column;
  }
}

/* ══════════════════════════════════════════════════════════
   SIDEBAR SECTION LABEL
   ══════════════════════════════════════════════════════════ */

.nav-section-label {
  padding: 14px 18px 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim, rgba(139,143,168,0.5));
  user-select: none;
}

/* ══════════════════════════════════════════════════════════
   MAILER SECTION
   ══════════════════════════════════════════════════════════ */

/* Hero card */
.mailer-hero-card {
  background: var(--surface);
  border: 1px solid rgba(0,212,255,0.15);
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 20px;
}

.mailer-hero-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}

.mailer-hero-icon {
  font-size: 28px;
  line-height: 1;
  flex-shrink: 0;
}

.mailer-hero-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 2px;
}

.mailer-hero-sub {
  font-size: 12px;
  color: var(--accent);
  font-weight: 500;
}

.mailer-hero-desc {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.65;
  margin: 0;
}

/* Action cards row */
.mailer-cards-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

.mailer-action-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 22px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mailer-card-primary {
  border-color: rgba(0,212,255,0.2);
  box-shadow: 0 0 0 1px rgba(0,212,255,0.06);
}

.mailer-card-icon {
  font-size: 26px;
  line-height: 1;
}

.mailer-card-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}

.mailer-card-desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.55;
  flex: 1;
  margin: 0;
}

.btn-mailer-primary {
  display: inline-block;
  padding: 10px 18px;
  background: var(--accent);
  color: #0A1628;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
  transition: background 0.15s;
  margin-top: auto;
}

.btn-mailer-primary:hover { background: #00b8d9; }

.btn-mailer-ghost {
  display: inline-block;
  padding: 10px 18px;
  background: transparent;
  border: 1px solid rgba(0,212,255,0.35);
  color: var(--accent);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  text-align: center;
  transition: background 0.15s, border-color 0.15s;
  margin-top: auto;
}

.btn-mailer-ghost:hover {
  background: rgba(0,212,255,0.08);
  border-color: rgba(0,212,255,0.55);
}

/* Best practices tips */
.mailer-tips-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 20px 22px;
  margin-bottom: 20px;
}

.mailer-tips-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}

.mailer-tips-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.mailer-tips-list li {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
  padding-left: 20px;
  position: relative;
}

.mailer-tips-list li::before {
  content: '→';
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 700;
}

/* Outreach stats placeholder */
.mailer-stats-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 20px 22px;
}

.mailer-stats-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 10px;
}

.mailer-stats-empty {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.55;
  margin: 0;
}

@media (max-width: 640px) {
  .mailer-cards-row {
    grid-template-columns: 1fr;
  }
}

/* ══════════════════════════════════════════════════════════
   ATHLETIC EDGE PAGE
   ══════════════════════════════════════════════════════════ */

/* Hero banner */
.ae-hero-card {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  background: linear-gradient(135deg, rgba(20,0,255,0.06) 0%, rgba(0,212,255,0.04) 100%);
  border: 1px solid rgba(0,212,255,0.15);
  border-left: 4px solid var(--accent);
  border-radius: 12px;
  padding: 28px 26px;
  margin-bottom: 28px;
}

.ae-hero-logo {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: var(--blue, #1400FF);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display, 'Rajdhani', sans-serif);
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
}

.ae-hero-body {
  flex: 1;
  min-width: 0;
}

.ae-hero-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 4px;
  font-family: var(--font-display, 'Rajdhani', sans-serif);
  letter-spacing: 0.02em;
}

.ae-hero-sub {
  font-size: 13px;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 14px;
  letter-spacing: 0.01em;
}

.ae-hero-desc {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.7;
  margin: 0;
}

/* 6D section header */
.ae-6d-header {
  margin-bottom: 18px;
}

.ae-6d-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 4px;
}

.ae-6d-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin: 0;
}

/* 6D grid */
.ae-6d-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 8px;
}

/* Individual 6D card */
.ae-6d-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 22px 20px 20px;
  position: relative;
  overflow: hidden;
}

/* Faint stage-number watermark */
.ae-6d-card::before {
  content: attr(data-num);
  position: absolute;
  top: -8px;
  right: 12px;
  font-size: 64px;
  font-weight: 900;
  color: rgba(255,255,255,0.03);
  font-family: var(--font-display, 'Rajdhani', sans-serif);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

.ae-6d-number {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--accent);
  margin-bottom: 6px;
  font-family: var(--font-display, 'Rajdhani', sans-serif);
}

.ae-6d-icon {
  font-size: 24px;
  margin-bottom: 6px;
  line-height: 1;
}

.ae-6d-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px;
  font-family: var(--font-display, 'Rajdhani', sans-serif);
  letter-spacing: 0.02em;
}

.ae-6d-desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 700px) {
  .ae-hero-card {
    flex-direction: column;
    gap: 14px;
  }

  .ae-6d-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Who We Serve ──────────────────────────────────────────── */

.ae-serve-header {
  margin: 32px 0 18px;
}

.ae-serve-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.ae-serve-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 22px 20px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color 0.15s;
}

.ae-serve-card:hover {
  border-color: rgba(0,212,255,0.2);
}

.ae-serve-icon {
  font-size: 26px;
  line-height: 1;
}

.ae-serve-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  font-family: var(--font-display, 'Rajdhani', sans-serif);
  letter-spacing: 0.02em;
}

.ae-serve-desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
  flex: 1;
  margin: 0;
}

.btn-ae-serve {
  display: inline-block;
  align-self: flex-start;
  margin-top: 4px;
  padding: 8px 16px;
  background: transparent;
  border: 1px solid rgba(0,212,255,0.35);
  border-radius: 8px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: background 0.15s, border-color 0.15s;
}

.btn-ae-serve:hover {
  background: rgba(0,212,255,0.08);
  border-color: rgba(0,212,255,0.6);
}

/* ── Quote Banner ──────────────────────────────────────────── */

.ae-quote-banner {
  margin-top: 4px;
  background: #111827;
  border-left: 4px solid rgba(0,212,255,0.5);
  border-right: 4px solid rgba(0,212,255,0.5);
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
  padding: 28px 32px;
  text-align: center;
}

.ae-quote-text {
  font-family: var(--font-display, 'Rajdhani', sans-serif);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.7;
  color: rgba(255,255,255,0.88);
  text-transform: uppercase;
}

@media (max-width: 700px) {
  .ae-serve-grid {
    grid-template-columns: 1fr;
  }

  .ae-quote-banner {
    padding: 22px 20px;
  }

  .ae-quote-text {
    font-size: 13px;
    letter-spacing: 0.06em;
  }
}

/* ══════════════════════════════════════════════════════════
   DISCOVER SECTION
   ══════════════════════════════════════════════════════════ */

/* Description / intro card */
.discover-desc-card {
  background: var(--surface);
  border: 1px solid rgba(0,212,255,0.15);
  border-left: 4px solid var(--accent);
  border-radius: 12px;
  padding: 22px 24px;
  margin-bottom: 20px;
}

.discover-desc-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 3px;
}

.discover-desc-sub {
  font-size: 12px;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}

.discover-desc-body {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.65;
  margin: 0;
}

/* Upgrade prompt (free tier) */
.discover-upgrade-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 22px 24px;
  margin-top: 20px;
}

.discover-upgrade-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px;
}

.discover-upgrade-body {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0 0 14px;
}

/* Tabs */
.discover-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding-bottom: 0;
}

.discover-tab {
  padding: 10px 18px;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
  margin-bottom: -1px;
}

.discover-tab:hover { color: var(--text); }

.discover-tab.active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* Save Results card */
.discover-save-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 22px 24px;
}

.discover-save-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px;
}

.discover-save-body {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0 0 14px;
}

.discover-save-textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  color: var(--text);
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.5;
  resize: vertical;
  transition: border-color 0.15s;
  margin-bottom: 12px;
}

.discover-save-textarea:focus {
  outline: none;
  border-color: rgba(0,212,255,0.35);
}

.discover-save-textarea::placeholder { color: var(--text-muted); }

.discover-save-footer {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.discover-save-status {
  font-size: 13px;
  color: #4ade80;
  font-weight: 600;
}

.discover-save-status.hidden { display: none; }

/* My Results */
.discover-results-empty {
  padding: 32px 0;
  text-align: center;
  color: var(--text-muted);
  font-size: 14px;
}

.discover-results-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 22px 24px;
}

.discover-results-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.discover-results-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}

.discover-results-date {
  font-size: 12px;
  color: var(--text-muted);
}

.discover-results-text {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 8px;
  padding: 14px 16px;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0 0 16px;
}

.discover-results-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

.btn-clear-results {
  padding: 10px 16px;
  background: transparent;
  border: 1px solid rgba(231,76,60,0.35);
  border-radius: 8px;
  color: #e74c3c;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-clear-results:hover { background: rgba(231,76,60,0.08); }

/* Benchmarks table */
.discover-benchmarks-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 22px 24px;
}

.discover-benchmarks-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 18px;
}

.discover-benchmarks-table-wrap {
  overflow-x: auto;
  margin-bottom: 16px;
}

.discover-benchmarks-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.discover-benchmarks-table th {
  text-align: left;
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--text-muted);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  white-space: nowrap;
}

.discover-benchmarks-table td {
  padding: 11px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  color: var(--text-muted);
  vertical-align: middle;
  font-size: 13px;
}

.discover-benchmarks-table tr:last-child td { border-bottom: none; }

.bench-level {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.bench-level.d1   { background: rgba(20,0,255,0.15);   color: #818cf8; border: 1px solid rgba(20,0,255,0.3); }
.bench-level.d2   { background: rgba(0,212,255,0.1);   color: var(--accent); border: 1px solid rgba(0,212,255,0.25); }
.bench-level.d3   { background: rgba(139,143,168,0.12); color: var(--text-muted); border: 1px solid rgba(139,143,168,0.2); }
.bench-level.naia { background: rgba(251,191,36,0.1);  color: var(--gold); border: 1px solid rgba(251,191,36,0.25); }
.bench-level.juco { background: rgba(34,197,94,0.1);   color: #4ade80; border: 1px solid rgba(34,197,94,0.25); }

.discover-benchmarks-note {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,0.06);
  font-style: italic;
}

/* ══════════════════════════════════════════════════════════
   AI RECRUITING COACH SECTION
   ══════════════════════════════════════════════════════════ */

.aicoach-desc-card {
  background: var(--surface);
  border: 1px solid rgba(0,212,255,0.15);
  border-left: 4px solid var(--accent);
  border-radius: 12px;
  padding: 22px 24px;
  margin-bottom: 20px;
}

.aicoach-desc-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 3px;
}

.aicoach-desc-sub {
  font-size: 12px;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}

.aicoach-desc-body {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.65;
  margin: 0;
}

/* Feature badges */
.aicoach-badges {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}

.aicoach-badge {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 16px 14px;
  text-align: center;
}

.aicoach-badge-icon {
  display: block;
  font-size: 22px;
  margin-bottom: 7px;
  line-height: 1;
}

.aicoach-badge-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
}

.aicoach-badge-desc {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.5;
}

/* Tips card */
.aicoach-tips-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 20px 22px;
}

.aicoach-tips-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}

.aicoach-tips-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.aicoach-tips-list li {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
  padding-left: 20px;
  position: relative;
}

.aicoach-tips-list li::before {
  content: '→';
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 700;
}

/* ── Overview AI Coach card ────────────────────────────── */

.ov-aicoach-card {
  background: var(--surface);
  border: 1px solid rgba(0,212,255,0.15);
  border-radius: 12px;
  padding: 18px 20px;
  margin-top: 14px;
}

.ov-aicoach-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.ov-aicoach-icon {
  font-size: 20px;
  line-height: 1;
}

.ov-aicoach-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}

.ov-aicoach-desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.55;
  margin: 0 0 14px;
}

.btn-ov-aicoach {
  padding: 9px 20px;
  background: var(--accent);
  border: none;
  border-radius: 8px;
  color: #0A1628;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-ov-aicoach:hover { background: #00b8d9; }

@media (max-width: 640px) {
  .aicoach-badges {
    grid-template-columns: 1fr;
  }
}

/* ══════════════════════════════════════════════════════════
   STRENGTH SYSTEM SECTION
   ══════════════════════════════════════════════════════════ */

.strength-desc-card {
  background: var(--surface);
  border: 1px solid rgba(251,191,36,0.2);
  border-left: 4px solid var(--gold);
  border-radius: 12px;
  padding: 22px 24px;
  margin-bottom: 20px;
}

.strength-desc-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 3px;
}

.strength-desc-sub {
  font-size: 12px;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}

.strength-desc-body {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.65;
  margin: 0;
}

/* Feature badges */
.strength-badges {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}

.strength-badge {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 16px 14px;
  text-align: center;
}

.strength-badge-icon {
  display: block;
  font-size: 22px;
  margin-bottom: 7px;
  line-height: 1;
}

.strength-badge-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
}

.strength-badge-desc {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.5;
}

/* Status card */
.strength-status-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 20px 22px;
  margin-bottom: 20px;
}

.strength-status-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-muted);
  margin-bottom: 6px;
}

.strength-status-msg {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0 0 14px;
}

.strength-status-date {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 14px;
}

.strength-status-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.strength-active-badge {
  background: rgba(34,197,94,0.12);
  border: 1px solid rgba(34,197,94,0.3);
  color: #4ade80;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: 20px;
}

.strength-status-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.btn-strength-primary {
  display: inline-block;
  padding: 10px 20px;
  background: var(--gold);
  color: #0A1628;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.15s;
}

.btn-strength-primary:hover { background: #f59e0b; }

.btn-strength-ghost {
  padding: 10px 20px;
  background: transparent;
  border: 1px solid rgba(251,191,36,0.35);
  border-radius: 8px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-strength-ghost:hover { background: rgba(251,191,36,0.08); }

.btn-strength-action {
  padding: 10px 20px;
  background: var(--gold);
  border: none;
  border-radius: 8px;
  color: #0A1628;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-strength-action:hover { background: #f59e0b; }

/* Save Program card */
.strength-save-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 22px 24px;
  margin-bottom: 16px;
}

.strength-save-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px;
}

.strength-save-body {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0;
}

.strength-url-input {
  width: 100%;
  box-sizing: border-box;
  padding: 11px 14px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  color: var(--text);
  font-family: var(--font-body);
  font-size: 13px;
  margin: 14px 0 12px;
  transition: border-color 0.15s;
}

.strength-url-input:focus {
  outline: none;
  border-color: rgba(251,191,36,0.4);
}

.strength-url-input::placeholder { color: var(--text-muted); }

.strength-save-footer {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.strength-save-status {
  font-size: 13px;
  color: #4ade80;
  font-weight: 600;
}

.strength-save-status.hidden { display: none; }

/* How It Works card */
.strength-howto-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 20px 22px;
  margin-bottom: 16px;
}

.strength-howto-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}

.strength-howto-list {
  padding-left: 20px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.strength-howto-list li {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.55;
}

/* Training Tips card */
.strength-tips-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 20px 22px;
}

.strength-tips-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}

.strength-tips-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.strength-tips-list li {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.55;
  padding-left: 20px;
  position: relative;
}

.strength-tips-list li::before {
  content: '→';
  position: absolute;
  left: 0;
  color: var(--gold);
  font-weight: 700;
}

/* ── Overview Strength card ────────────────────────────────── */

.ov-strength-card {
  background: var(--surface);
  border: 1px solid rgba(251,191,36,0.2);
  border-radius: 12px;
  padding: 16px 20px;
  margin-top: 14px;
}

.ov-strength-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.ov-strength-icon { font-size: 18px; line-height: 1; }

.ov-strength-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  flex: 1;
}

.ov-strength-badge {
  background: rgba(34,197,94,0.12);
  border: 1px solid rgba(34,197,94,0.3);
  color: #4ade80;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
}

.ov-strength-sub {
  font-size: 12px;
  color: var(--text-muted);
  margin: 0 0 12px;
}

.btn-ov-strength {
  padding: 8px 18px;
  background: var(--gold);
  border: none;
  border-radius: 8px;
  color: #0A1628;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-ov-strength:hover { background: #f59e0b; }

@media (max-width: 640px) {
  .strength-badges { grid-template-columns: 1fr; }
}

/* ── Wizard header tip ──────────────────────────────────── */
.wizard-header-tip {
  font-size: 12px;
  color: var(--accent);
  margin-top: 8px;
  opacity: 0.85;
}

/* ── Edge Intro Screen ──────────────────────────────────── */
.edge-intro-screen {
  position: fixed;
  inset: 0;
  background: #0a0a14;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.edge-intro-screen.hidden { display: none; }

.edge-intro-content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.edge-intro-icon {
  font-size: 72px;
  line-height: 1;
  animation: edgePulse 1.6s ease-in-out infinite;
  filter: drop-shadow(0 0 24px rgba(0, 212, 255, 0.6));
}

@keyframes edgePulse {
  0%, 100% { transform: scale(1);   opacity: 1; }
  50%       { transform: scale(1.12); opacity: 0.75; }
}

.edge-intro-title {
  font-family: var(--font-head);
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--accent);
  text-transform: uppercase;
  margin: 0;
}

.edge-intro-subtitle {
  font-size: 18px;
  color: var(--text-muted);
  margin: 0;
}

.edge-intro-loading {
  font-size: 14px;
  color: var(--text-dim);
  margin: 8px 0 0;
  min-height: 20px;
  transition: opacity 0.3s;
}

/* ── Edge Plan Section ──────────────────────────────────── */
.edge-plan-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 24px;
  text-align: center;
  gap: 16px;
}

.edge-plan-loading-icon {
  font-size: 48px;
  animation: edgePulse 1.6s ease-in-out infinite;
  filter: drop-shadow(0 0 16px rgba(0, 212, 255, 0.5));
}

.edge-plan-loading-msg {
  font-size: 15px;
  color: var(--text-muted);
  max-width: 340px;
}

/* ── Edge stale banner ──────────────────────────────────── */
.edge-stale-banner {
  display: flex;
  align-items: center;
  gap: 16px;
  background: rgba(245,158,11,0.07);
  border: 1px solid rgba(245,158,11,0.3);
  border-left: 3px solid var(--warning);
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 20px;
  max-width: 720px;
  flex-wrap: wrap;
}

.edge-stale-content {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  flex: 1;
  min-width: 200px;
}

.edge-stale-icon {
  font-size: 18px;
  flex-shrink: 0;
  margin-top: 1px;
}

.edge-stale-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--warning);
  margin-bottom: 2px;
}

.edge-stale-msg {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
}

.edge-stale-btn {
  background: var(--warning);
  color: #0a0a14;
  border: none;
  border-radius: 6px;
  padding: 7px 16px;
  font-size: 12px;
  font-weight: 700;
  font-family: var(--font-body);
  cursor: pointer;
  flex-shrink: 0;
  transition: opacity 0.15s;
  white-space: nowrap;
}

.edge-stale-btn:hover { opacity: 0.85; }
.edge-stale-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ── Post-evaluation Edge Plan prompt card ──────────────── */
.eval-edge-prompt-card {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--blue);
  border-radius: 10px;
  padding: 20px 22px;
  margin: 20px 0;
  max-width: 720px;
}

.eval-edge-prompt-icon {
  font-size: 26px;
  flex-shrink: 0;
  margin-top: 2px;
}

.eval-edge-prompt-body {
  flex: 1;
}

.eval-edge-prompt-title {
  font-family: var(--font-head);
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 6px;
  letter-spacing: 0.02em;
}

.eval-edge-prompt-msg {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.65;
  margin: 0 0 14px;
}

.eval-edge-prompt-btn {
  display: inline-block;
  background: var(--blue);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  padding: 10px 22px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.2s;
  letter-spacing: 0.02em;
}

.eval-edge-prompt-btn:hover { opacity: 0.85; }
.eval-edge-prompt-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ── Edge nav badge (blue dot) ──────────────────────────── */
.nav-edge-badge {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  margin-left: 6px;
  vertical-align: middle;
  flex-shrink: 0;
  box-shadow: 0 0 5px rgba(0,212,255,0.6);
  animation: badgePulse 2s ease-in-out infinite;
}

@keyframes badgePulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(0.85); }
}

.edge-stale-btn:hover { opacity: 0.85; }

.edge-plan-ready {
  max-width: 720px;
  padding: 8px 0 32px;
}

.edge-plan-section-header {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--accent);
  margin: 28px 0 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(0, 212, 255, 0.2);
}

.edge-plan-line {
  font-size: 14px;
  color: var(--text);
  line-height: 1.75;
}

.edge-plan-spacer {
  height: 6px;
}

.edge-plan-legacy {
  margin-top: 12px;
}

.edge-plan-legacy-note {
  font-size: 12px;
  color: var(--text-dim);
  margin-bottom: 12px;
  font-style: italic;
}

/* ══════════════════════════════════════════════════════════
   EDGE PLAN LAUNCHPAD CARDS — 6D framework (Discover/Develop/Deliver)
   ══════════════════════════════════════════════════════════ */

/* Visual separation between launchpad cards (static) and dynamic edge plan
   content. Cards sit above #edgePlanContent after the bf1bd44 reorder. */
#edgePlanContent {
  margin-top: 28px;
}

.edge-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 22px 24px;
  margin-top: 18px;
}

.edge-card-header {
  margin-bottom: 16px;
}

.edge-card-title {
  font-family: var(--font-head);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.edge-card-sub {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.5;
}

/* Hero CTA — single centered button for Prospect Evaluator card */
.edge-hero-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  padding: 20px;
  background: var(--blue);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.15s, transform 0.15s;
}
.edge-hero-cta:hover {
  opacity: 0.92;
  transform: translateY(-1px);
}
.edge-hero-icon { font-size: 24px; }
.edge-hero-label { letter-spacing: 0.02em; }

/* Tile grid — modifier classes for different tile counts */
.edge-card-grid {
  display: grid;
  gap: 12px;
}
.edge-card-grid-5 { grid-template-columns: repeat(5, 1fr); }
.edge-card-grid-2 { grid-template-columns: 1fr 1fr; }

@media (max-width: 900px) {
  .edge-card-grid-5 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px) {
  .edge-card-grid-5 { grid-template-columns: 1fr 1fr; }
  .edge-card-grid-2 { grid-template-columns: 1fr; }
}

/* Tile button — used across My Development + My Recruiting */
.edge-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 18px 10px 14px;
  background: rgba(255,255,255,0.02);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-family: var(--font-body);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, transform 0.15s;
  text-align: center;
  min-height: 100px;
}
.edge-tile:hover {
  border-color: var(--blue);
  background: rgba(20,0,255,0.06);
  transform: translateY(-1px);
}

.edge-tile-icon { font-size: 28px; line-height: 1; }
.edge-tile-label { font-size: 0.8rem; font-weight: 600; color: var(--text); line-height: 1.25; }

.edge-tile-lock {
  position: absolute;
  top: 6px;
  right: 8px;
  font-size: 14px;
  color: var(--text-muted);
  /* textContent set to '🔒' or '' by applyTierGating */
}

/* Locked variant — muted styling, signals "click for upgrade prompt" */
.edge-tile.tile-locked { opacity: 0.55; }
.edge-tile.tile-locked:hover {
  opacity: 0.75;
  border-color: var(--gold);
  background: rgba(251,191,36,0.04);
}
.edge-tile.tile-locked .edge-tile-icon { filter: grayscale(0.8); }

/* ── Headline card ────────────────────────────────────── */
.edge-headline-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 4px solid var(--accent);
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 28px;
  max-width: 720px;
}

.edge-headline-text {
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.02em;
  margin-bottom: 18px;
  line-height: 1.3;
}

.edge-projection-row {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.edge-proj-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.edge-proj-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--text-dim);
  font-family: var(--font-head);
}

.edge-proj-value {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.04em;
}

.edge-proj-upside {
  color: var(--accent);
}

.edge-proj-divider {
  font-size: 20px;
  color: var(--text-dim);
  margin-top: 14px;
}

.edge-timeline-pressure {
  font-size: 13px;
  color: var(--text-muted);
  font-style: italic;
}

/* ── Gaps section ─────────────────────────────────────── */
.edge-section-title {
  font-family: var(--font-head);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--text-dim);
  margin-bottom: 14px;
}

.edge-gaps-section {
  max-width: 720px;
  margin-bottom: 24px;
}

/* Title prominence override — matches .edge-card-title weight; scoped to
   .edge-gaps-section only so EDGE INTELLIGENCE (the other .edge-section-title
   consumer at portal.js:1427) keeps its subordinate dimmed styling. */
.edge-gaps-section .edge-section-title {
  font-size: 1.15rem;
  letter-spacing: 0.04em;
  color: var(--text);
}

/* ── Gap card ─────────────────────────────────────────── */
.edge-gap-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 4px solid #f59e0b;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
}

.edge-gap-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 10px;
  flex-wrap: wrap;
}

.edge-gap-category {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.03em;
}

.edge-priority-badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 3px 10px;
  border-radius: 20px;
  font-family: var(--font-head);
}

.edge-priority-red    { background: rgba(239,68,68,0.15); color: #ef4444; }
.edge-priority-amber  { background: rgba(245,158,11,0.15); color: #f59e0b; }
.edge-priority-yellow { background: rgba(234,179,8,0.15);  color: #eab308; }

/* ── Three-column metrics ─────────────────────────────── */
.edge-gap-metrics {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 12px;
  background: var(--bg2);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 16px;
  align-items: center;
}

.edge-metric-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.edge-metric-col.edge-metric-delta {
  text-align: center;
  align-items: center;
}

.edge-metric-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--text-dim);
  font-family: var(--font-head);
}

.edge-metric-value {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.02em;
}

.edge-metric-gap {
  color: var(--warning);
  font-size: 14px;
}

/* ── Gap message + action items ───────────────────────── */
.edge-gap-message {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.65;
  margin-bottom: 14px;
}

.edge-actions-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.edge-action-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}

.edge-action-item input[type="checkbox"] {
  margin-top: 2px;
  accent-color: var(--accent);
  flex-shrink: 0;
  width: 14px;
  height: 14px;
}

.edge-action-item span {
  font-size: 13px;
  color: var(--text);
  line-height: 1.5;
}

/* ── Gap recommendations ──────────────────────────────── */
.edge-gap-recs {
  border-top: 1px solid var(--border);
  padding-top: 14px;
}

.edge-rec-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px;
}

.edge-rec-card.edge-rec-aicoach {
  border-color: rgba(0, 212, 255, 0.2);
  position: relative;
}

.edge-rec-badge {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--accent);
  font-family: var(--font-head);
  margin-bottom: 6px;
}

.edge-rec-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 4px;
}

.edge-rec-desc {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.5;
  margin-bottom: 10px;
}

.edge-rec-btn {
  background: transparent;
  border: 1px solid var(--accent);
  color: var(--accent);
  border-radius: 6px;
  padding: 5px 14px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font-body);
  transition: background 0.15s, color 0.15s;
}

.edge-rec-btn:hover {
  background: var(--accent);
  color: #0a0a14;
}

/* ── Weekly focus card ────────────────────────────────── */
.edge-weekly-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 12px;
  padding: 20px;
  max-width: 720px;
  margin-bottom: 16px;
}

.edge-weekly-label {
  font-family: var(--font-head);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--text-dim);
  margin-bottom: 10px;
}

.edge-weekly-text {
  font-size: 14px;
  color: var(--text);
  line-height: 1.65;
}

/* ── Motivational close ───────────────────────────────── */
.edge-motive-card {
  background: linear-gradient(135deg, rgba(251,191,36,0.08) 0%, rgba(0,212,255,0.06) 100%);
  border: 1px solid rgba(251,191,36,0.2);
  border-radius: 12px;
  padding: 24px;
  max-width: 720px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 32px;
}

.edge-motive-icon {
  font-size: 28px;
  flex-shrink: 0;
  margin-top: 2px;
}

.edge-motive-text {
  font-size: 14px;
  color: var(--text);
  line-height: 1.7;
  font-style: italic;
}

@media (max-width: 600px) {
  .edge-gap-metrics { grid-template-columns: 1fr; }
  .edge-proj-divider { display: none; }
}

/* ══════════════════════════════════════════════════════════
   PROSPECT EVALUATOR
   ══════════════════════════════════════════════════════════ */

/* ── Discover tabs ────────────────────────────────────────── */
.discover-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0;
}

.discover-tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  padding: 10px 18px;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
  margin-bottom: -1px;
}

.discover-tab:hover { color: var(--text); }
.discover-tab.active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* ── Evaluator Wizard ─────────────────────────────────────── */
.eval-wizard-wrap {
  max-width: 760px;
}

.eval-progress-bar-wrap {
  margin-bottom: 24px;
}

.eval-progress-label {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 6px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.eval-progress-track {
  height: 4px;
  background: rgba(255,255,255,0.08);
  border-radius: 2px;
  overflow: hidden;
}

.eval-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--blue), var(--accent));
  border-radius: 2px;
  transition: width 0.35s ease;
}

/* Step panels — visibility controlled by .hidden class via JS */
.eval-step-panel { display: block; }

.eval-step-title {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 18px;
  letter-spacing: 0.02em;
}

.eval-field-group {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.eval-field-group.cols-1 { grid-template-columns: 1fr; }
.eval-field-group.cols-2 { grid-template-columns: 1fr 1fr; }
.eval-field-group.cols-3 { grid-template-columns: 1fr 1fr 1fr; }

.eval-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.eval-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-muted);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.eval-input,
.eval-select {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  padding: 9px 12px;
  width: 100%;
  transition: border-color 0.2s;
  appearance: none;
  -webkit-appearance: none;
}

.eval-input:focus,
.eval-select:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 2px var(--blue-light);
}

.eval-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238b8fa8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
}

.eval-subsection-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 16px 0 10px;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(0,212,255,0.15);
}

.eval-hidden { display: none !important; }

/* eval-error — visibility controlled by .hidden class via JS */
.eval-error {
  background: rgba(239,68,68,0.1);
  border: 1px solid rgba(239,68,68,0.3);
  color: #f87171;
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  font-size: 13px;
  margin-bottom: 14px;
}

.eval-nav {
  display: flex;
  gap: 10px;
  margin-top: 24px;
  align-items: center;
}

.eval-btn-back {
  background: none;
  border: 1px solid var(--border);
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}

.eval-btn-back:hover {
  border-color: var(--text-muted);
  color: var(--text);
}

.eval-btn-next {
  background: var(--blue);
  border: none;
  color: #fff;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  padding: 10px 28px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: opacity 0.2s, background 0.2s;
  letter-spacing: 0.02em;
}

.eval-btn-next:hover { opacity: 0.88; }
.eval-btn-next:disabled { opacity: 0.5; cursor: not-allowed; }

/* ── Loading state — visibility controlled by .hidden class via JS ── */
.eval-loading-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 64px 24px;
  text-align: center;
  gap: 20px;
}

.eval-loading-icon {
  font-size: 48px;
  animation: evalPulse 1.4s ease-in-out infinite;
}

@keyframes evalPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.12); opacity: 0.7; }
}

.eval-loading-msg {
  font-size: 16px;
  color: var(--text);
  font-weight: 500;
  min-height: 24px;
  transition: opacity 0.4s;
}

.eval-loading-sub {
  font-size: 13px;
  color: var(--text-muted);
}

/* ── Results wrap — visibility controlled by .hidden class via JS ── */
.eval-results-wrap { display: block; }

/* Prospect score gauge */
.eval-score-section {
  display: flex;
  align-items: center;
  gap: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 28px 32px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.eval-gauge-wrap {
  position: relative;
  flex-shrink: 0;
}

.eval-gauge-svg {
  display: block;
}

.eval-gauge-label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  pointer-events: none;
}

.eval-gauge-score {
  font-family: var(--font-head);
  font-size: 36px;
  font-weight: 700;
  color: var(--text);
  line-height: 1;
  display: block;
}

.eval-gauge-denom {
  font-size: 12px;
  color: var(--text-muted);
  display: block;
}

.eval-score-meta {
  flex: 1;
  min-width: 180px;
}

.eval-score-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.eval-score-grade {
  font-family: var(--font-head);
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--text);
}

.eval-score-tagline {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.5;
}

/* Projected levels */
.eval-levels-section { margin-bottom: 24px; }

.eval-section-header {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.03em;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.eval-levels-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 10px;
}

.eval-level-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 12px;
  text-align: center;
  transition: border-color 0.2s;
}

.eval-level-card.best-fit {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent), 0 4px 16px rgba(0,212,255,0.12);
}

.eval-level-name {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}

.eval-level-fit {
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
}

.eval-level-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  background: rgba(0,212,255,0.15);
  color: var(--accent);
  border-radius: 4px;
  padding: 2px 7px;
  margin-top: 4px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Scouting report card */
.eval-report-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--blue);
  border-radius: 8px;
  padding: 20px 22px;
  margin-bottom: 20px;
}

.eval-report-text {
  font-size: 14px;
  color: var(--text);
  line-height: 1.75;
}

/* Strengths grid */
.eval-strengths-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
  margin-bottom: 20px;
}

.eval-strength-card {
  background: rgba(34,197,94,0.07);
  border: 1px solid rgba(34,197,94,0.2);
  border-radius: 8px;
  padding: 12px 14px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.eval-strength-icon {
  font-size: 16px;
  flex-shrink: 0;
  margin-top: 1px;
}

.eval-strength-text {
  font-size: 13px;
  color: var(--text);
  line-height: 1.5;
}

/* Areas for improvement */
.eval-improvements-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 20px;
}

.eval-improvement-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 14px;
  color: var(--text);
  line-height: 1.5;
}

.eval-improvement-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--warning);
  flex-shrink: 0;
  margin-top: 8px;
}

/* Coach feedback cards */
.eval-coach-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
  margin-bottom: 24px;
}

.eval-coach-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px 18px;
}

.eval-coach-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.eval-coach-level {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.eval-coach-stars {
  display: flex;
  gap: 2px;
}

.eval-coach-star {
  font-size: 14px;
  color: rgba(251,191,36,0.25);
}

.eval-coach-star.filled { color: var(--gold); }

.eval-coach-quote {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
  font-style: italic;
}

/* Phase 2 loading indicator */
.eval-phase2-loading {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(0,212,255,0.05);
  border: 1px solid rgba(0,212,255,0.15);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 20px;
  font-size: 13px;
  color: var(--accent);
}

.eval-phase2-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(0,212,255,0.2);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  flex-shrink: 0;
}

@keyframes spin { to { transform: rotate(360deg); } }

/* Comparable players */
.eval-comps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}

.eval-comp-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px;
}

.eval-comp-name {
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 4px;
}

.eval-comp-detail {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 8px;
}

.eval-comp-note {
  font-size: 13px;
  color: var(--text);
  line-height: 1.5;
}

/* School fit cards */
.eval-schools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
  margin-bottom: 24px;
}

.eval-school-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.eval-school-name {
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  color: var(--text);
}

.eval-school-division {
  font-size: 11px;
  font-weight: 600;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.eval-school-reason {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
  flex: 1;
}

.eval-school-link {
  display: inline-block;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
  letter-spacing: 0.03em;
  transition: opacity 0.2s;
}

.eval-school-link:hover { opacity: 0.75; }

/* Restart button */
.eval-restart-btn {
  background: none;
  border: 1px solid var(--border);
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  padding: 8px 18px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
  margin-top: 8px;
}

.eval-restart-btn:hover {
  border-color: var(--text-muted);
  color: var(--text);
}

/* ── My Results empty state ───────────────────────────────── */
.eval-results-empty {
  text-align: center;
  padding: 60px 24px;
  color: var(--text-muted);
}

.eval-results-empty-icon { font-size: 40px; margin-bottom: 12px; }
.eval-results-empty-title {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 6px;
}
.eval-results-empty-sub { font-size: 14px; line-height: 1.6; }

.eval-my-results-btn {
  display: inline-block;
  margin-top: 18px;
  background: var(--blue);
  color: #fff;
  border: none;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  padding: 10px 22px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: opacity 0.2s;
}
.eval-my-results-btn:hover { opacity: 0.85; }

/* ── Division Benchmarks ──────────────────────────────────── */
.eval-benchmarks-wrap { max-width: 860px; }

.eval-benchmarks-title {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 6px;
  letter-spacing: 0.02em;
}

.eval-benchmarks-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 24px;
}

.eval-benchmark-section { margin-bottom: 32px; }

.eval-benchmark-section-title {
  font-family: var(--font-head);
  font-size: 15px;
  font-weight: 600;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}

.eval-bm-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.eval-bm-table th {
  background: var(--surface);
  color: var(--text-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 11px;
  padding: 9px 12px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}

.eval-bm-table td {
  padding: 9px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  color: var(--text);
}

.eval-bm-table tr:hover td { background: rgba(255,255,255,0.02); }

/* ── Header card (intro above wizard) ────────────────────── */
.eval-header-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 22px 24px;
  margin-bottom: 24px;
}

.eval-header-title {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.02em;
  margin-bottom: 4px;
}

.eval-header-sub {
  font-size: 13px;
  font-weight: 600;
  color: var(--accent);
  margin-bottom: 10px;
}

.eval-header-desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0;
}

/* ── Wizard form wrap ─────────────────────────────────────── */
.eval-form-wrap {
  max-width: 760px;
}

/* ── Step label (below progress bar) ─────────────────────── */
.eval-step-label {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 6px;
  font-weight: 500;
  letter-spacing: 0.03em;
}

/* ── Re-run / restart button ──────────────────────────────── */
.eval-btn-rerun {
  background: none;
  border: 1px solid var(--border);
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  padding: 9px 18px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}

.eval-btn-rerun:hover {
  border-color: var(--text-muted);
  color: var(--text);
}

/* ── Save status ──────────────────────────────────────────── */
.eval-save-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(34,197,94,0.1);
  border: 1px solid rgba(34,197,94,0.25);
  color: var(--success);
  border-radius: var(--radius-sm);
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 500;
  margin-top: 8px;
}

/* ── Benchmark section label ──────────────────────────────── */
.eval-bench-section-label {
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 600;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

/* ── Results inner wrapper & meta ─────────────────────────── */
.eval-results-inner { max-width: 860px; }

.eval-results-meta {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.eval-results-date {
  font-size: 13px;
  color: var(--text-muted);
}

.eval-results-proj {
  font-size: 13px;
  color: var(--text-muted);
}

.eval-results-proj strong { color: var(--text); }

/* ── Section label (shared heading style) ─────────────────── */
.eval-section-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-dim);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 10px;
}

/* ── Projected levels ─────────────────────────────────────── */
.eval-projected-levels,
.eval-scouting-report,
.eval-strengths-section,
.eval-improvements-section,
.eval-coaches-section,
.eval-comps-section,
.eval-schools-section { margin-bottom: 28px; }

.eval-level-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
}

.eval-level-primary {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 1px rgba(0,212,255,0.3);
}

.eval-level-conf {
  font-size: 12px;
  color: var(--accent);
  font-weight: 600;
  margin: 4px 0 2px;
}

.eval-level-just {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.4;
}

/* ── Strengths ────────────────────────────────────────────── */
.eval-strength-check {
  color: var(--success);
  font-weight: 700;
  margin-right: 8px;
  flex-shrink: 0;
}

/* ── Improvements ─────────────────────────────────────────── */
.eval-improv-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--warning);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  margin-bottom: 8px;
}

.eval-improv-area {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 3px;
}

.eval-improv-rec {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
}

/* ── Coach cards ──────────────────────────────────────────── */
.eval-coaches-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}

.eval-coach-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}

.eval-coach-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--blue), var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}

.eval-coach-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}

.eval-coach-stars {
  display: flex;
  gap: 2px;
  margin-left: auto;
}

.eval-star { color: rgba(251,191,36,0.2); font-size: 14px; }
.eval-star.filled { color: var(--gold); }

.eval-coach-reasoning {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 6px;
  line-height: 1.5;
}

.eval-coach-message {
  font-size: 13px;
  color: var(--text);
  font-style: italic;
  line-height: 1.5;
  border-left: 2px solid var(--border);
  padding-left: 10px;
}

/* ── Division Fit Assessment cards ─────────────────────── */
.eval-section-sub {
  font-size: 12px;
  color: var(--text-muted);
  margin: -6px 0 12px;
  line-height: 1.4;
}
.div-fit-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
}
.div-fit-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.div-fit-badge {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 3px;
}
.div-fit-badge.div-d1   { background: rgba(20,0,255,0.12);  color: #1400FF; border: 1px solid rgba(20,0,255,0.2); }
.div-fit-badge.div-d2   { background: rgba(100,116,139,0.12); color: #94a3b8; border: 1px solid rgba(100,116,139,0.25); }
.div-fit-badge.div-d3   { background: rgba(71,85,105,0.1);  color: #7a8b9a; border: 1px solid rgba(71,85,105,0.2); }
.div-fit-badge.div-naia { background: rgba(245,158,11,0.12); color: #f59e0b; border: 1px solid rgba(245,158,11,0.25); }
.div-fit-badge.div-juco { background: rgba(107,114,128,0.1); color: #9ca3af; border: 1px solid rgba(107,114,128,0.2); }
.div-fit-interest {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin-bottom: 10px;
  padding: 4px 0;
}
.div-fit-interest.interest-green  { color: #10b981; }
.div-fit-interest.interest-blue   { color: #3b82f6; }
.div-fit-interest.interest-amber  { color: #f59e0b; }
.div-fit-interest.interest-orange { color: #f97316; }
.div-fit-interest.interest-red    { color: #ef4444; }
.div-fit-reasoning {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.55;
}

/* ── Comparable players ────────────────────────────────────── */
.eval-comps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}

.eval-comp-level {
  font-size: 11px;
  font-weight: 600;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}

.eval-comp-notes {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
}

/* ── School fit cards ─────────────────────────────────────── */
.eval-schools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
}

.eval-school-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.eval-school-div {
  font-size: 10px;
  font-weight: 700;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  margin-top: 3px;
}

.eval-school-meta {
  font-size: 12px;
  color: var(--text-dim);
  margin-bottom: 8px;
}

.eval-school-btn {
  display: inline-block;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
  transition: opacity 0.2s;
}

.eval-school-btn:hover { opacity: 0.75; }

/* ── Share/save note ──────────────────────────────────────── */
.eval-share-note {
  font-size: 12px;
  color: var(--success);
  margin-top: 24px;
}

/* ── Phase 2 spinner (text version) ──────────────────────── */
.eval-phase2-spinner { margin-right: 4px; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 640px) {
  .eval-score-section { flex-direction: column; align-items: flex-start; }
  .eval-field-group.cols-3 { grid-template-columns: 1fr 1fr; }
  .eval-field-group.cols-2 { grid-template-columns: 1fr; }
  .eval-coaches-grid { grid-template-columns: 1fr; }
  .eval-comps-grid { grid-template-columns: 1fr; }
  .eval-schools-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════
   AI RECRUITING COACH — Native 6-D Academy
   ══════════════════════════════════════════════════════════ */

/* ── Mobile phase scroll (shown only on mobile) ─────────── */
.ac-phase-scroll {
  display: none;
  gap: 8px;
  overflow-x: auto;
  padding: 0 0 12px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  flex-wrap: nowrap;
}
.ac-phase-scroll::-webkit-scrollbar { display: none; }

.ac-scroll-chip {
  flex-shrink: 0;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text-muted);
  border-radius: 20px;
  padding: 6px 14px;
  font-size: 13px;
  font-family: var(--font-body);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
}
.ac-scroll-chip:hover { border-color: var(--blue); color: var(--text); }
.ac-scroll-chip.active {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

/* ── Two-panel layout ────────────────────────────────────── */
.ac-layout {
  display: flex;
  height: calc(100vh - 260px);
  min-height: 520px;
  max-height: 800px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}

/* ── Left sidebar ────────────────────────────────────────── */
.ac-sidebar {
  width: 240px;
  flex-shrink: 0;
  background: var(--bg2);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  scrollbar-width: thin;
}

.ac-sidebar-brand {
  padding: 18px 16px 12px;
  border-bottom: 1px solid var(--border);
}

.ac-sidebar-title {
  font-family: var(--font-head);
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ac-sidebar-sub {
  font-size: 11px;
  color: var(--text-dim);
  margin-top: 2px;
}

.ac-phase-nav {
  display: flex;
  flex-direction: column;
  padding: 8px 0;
  flex: 1;
}

.ac-phase-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  background: none;
  border: none;
  border-left: 3px solid transparent;
  color: var(--text-muted);
  font-family: var(--font-body);
  padding: 10px 14px 10px 13px;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.ac-phase-btn:hover {
  background: rgba(255,255,255,0.04);
  color: var(--text);
}
.ac-phase-btn.active {
  background: var(--surface2);
  border-left-color: var(--blue);
  color: #fff;
}

.ac-phase-icon { font-size: 16px; flex-shrink: 0; }

.ac-phase-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.ac-phase-name {
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ac-phase-sub {
  font-size: 11px;
  color: var(--text-dim);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ac-phase-btn.active .ac-phase-sub { color: rgba(255,255,255,0.55); }

.ac-sidebar-divider {
  height: 1px;
  background: var(--border);
  margin: 4px 0;
}

.ac-sidebar-footer {
  font-size: 10px;
  color: var(--text-dim);
  padding: 10px 16px 14px;
  line-height: 1.5;
}

/* ── Right chat panel ────────────────────────────────────── */
.ac-chat-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}

.ac-chat-header {
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  background: var(--bg2);
}

.ac-header-title {
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.02em;
}

.ac-header-sub {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 2px;
}

/* ── Messages area ───────────────────────────────────────── */
.ac-messages {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  scrollbar-width: thin;
}

.ac-msg { display: flex; align-items: flex-start; gap: 10px; }
.ac-msg-user { flex-direction: row-reverse; }

.ac-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--blue), var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
  margin-top: 2px;
}

.ac-bubble {
  max-width: 72%;
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.65;
}

.ac-bubble-ai {
  background: var(--surface2);
  border-left: 3px solid var(--blue);
  color: var(--text);
}

.ac-bubble-user {
  background: var(--blue);
  color: #fff;
  border-radius: 6px;
}

/* ── Typing indicator ────────────────────────────────────── */
.ac-typing {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 14px 16px;
}
.ac-typing span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--text-dim);
  animation: acDot 1.2s ease-in-out infinite;
}
.ac-typing span:nth-child(2) { animation-delay: 0.2s; }
.ac-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes acDot {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
  30% { transform: translateY(-5px); opacity: 1; }
}

/* ── Suggested prompt chips ──────────────────────────────── */
.ac-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 20px 12px;
  flex-shrink: 0;
}

.ac-prompt-chip {
  background: none;
  border: 1px solid var(--border);
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 12px;
  padding: 6px 12px;
  border-radius: 16px;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
  text-align: left;
}
.ac-prompt-chip:hover {
  border-color: var(--blue);
  color: var(--text);
  background: rgba(20,0,255,0.08);
}

/* ── Input area ──────────────────────────────────────────── */
.ac-input-wrap {
  flex-shrink: 0;
  border-top: 1px solid var(--border);
  padding: 12px 16px 10px;
  background: var(--bg2);
}

.ac-input-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.ac-input {
  flex: 1;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  padding: 9px 14px;
  outline: none;
  transition: border-color 0.2s;
}
.ac-input:focus { border-color: var(--blue); }
.ac-input::placeholder { color: var(--text-dim); }

.ac-send-btn {
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  background: var(--blue);
  border: none;
  border-radius: var(--radius-sm);
  color: #fff;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s;
}
.ac-send-btn:hover { opacity: 0.85; }

.ac-input-footer {
  margin-top: 6px;
  text-align: right;
}

.ac-clear-btn {
  background: none;
  border: none;
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 11px;
  cursor: pointer;
  padding: 0;
  transition: color 0.15s;
}
.ac-clear-btn:hover { color: var(--text-muted); }

/* ── Mobile responsive ───────────────────────────────────── */
@media (max-width: 767px) {
  .ac-phase-scroll { display: flex; }
  .ac-sidebar { display: none; }
  .ac-layout {
    height: calc(100vh - 340px);
    min-height: 400px;
    border-radius: 8px;
  }
  .ac-bubble { max-width: 88%; }
}

/* ══════════════════════════════════════════════════════════
   STRENGTH SYSTEM — Native Rebuild
   ══════════════════════════════════════════════════════════ */

/* ── Form ──────────────────────────────────────────────── */
.str-form-header {
  margin-bottom: 20px;
}
.str-step-indicator {
  font-size: 12px;
  color: var(--text-muted);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.str-progress-track {
  height: 4px;
  background: rgba(255,255,255,0.08);
  border-radius: 2px;
  overflow: hidden;
}
.str-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--blue), var(--accent));
  border-radius: 2px;
  transition: width 0.35s ease;
}

/* Step panels — hidden class controls visibility */
.str-step { display: block; }

.str-step-title {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 18px;
  letter-spacing: 0.02em;
}
.str-step-note {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 14px;
}

.str-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 20px;
}
.str-field-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.str-field-full {
  grid-column: 1 / -1;
}
.str-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-muted);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.str-optional {
  font-weight: 400;
  text-transform: none;
  color: var(--text-dim);
}
.str-input,
.str-select {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  padding: 9px 12px;
  width: 100%;
  transition: border-color 0.2s;
  appearance: none;
  -webkit-appearance: none;
}
.str-input:focus,
.str-select:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 2px var(--blue-light);
}
.str-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238b8fa8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
}

.str-btn-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
  gap: 12px;
}
.str-generate-btn {
  background: linear-gradient(135deg, var(--blue), var(--blue-mid));
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-head);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 12px 28px;
  cursor: pointer;
  transition: opacity 0.2s;
}
.str-generate-btn:hover { opacity: 0.88; }

/* ── Generating State ──────────────────────────────────── */
.str-generating-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 24px;
  text-align: center;
  gap: 16px;
}
.str-gen-icon {
  font-size: 56px;
  animation: strPulse 1.4s ease-in-out infinite;
}
@keyframes strPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.15); opacity: 0.75; }
}
.str-gen-message {
  font-family: var(--font-head);
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.02em;
  min-height: 28px;
  transition: opacity 0.3s;
}
.str-gen-sub {
  font-size: 13px;
  color: var(--text-muted);
}

/* ── Page Tabs ─────────────────────────────────────────── */
.str-page-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0;
}
.str-page-tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--text-muted);
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  padding: 10px 16px;
  transition: color 0.2s, border-color 0.2s;
  margin-bottom: -1px;
}
.str-page-tab:hover { color: var(--text); }
.str-page-tab.active {
  color: var(--blue);
  border-bottom-color: var(--blue);
}

/* ── Program Header ────────────────────────────────────── */
.str-prog-hdr {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  margin-bottom: 20px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}
.str-prog-title {
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 8px;
}
.str-prog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}
.str-prog-badge {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
}
.str-badge-pos {
  background: rgba(20,0,255,0.15);
  color: var(--accent);
  border: 1px solid rgba(20,0,255,0.3);
}
.str-badge-phase {
  background: rgba(251,191,36,0.12);
  color: var(--gold);
  border: 1px solid rgba(251,191,36,0.25);
}
.str-prog-date { font-size: 12px; color: var(--text-muted); }
.str-prog-notes {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 8px;
  line-height: 1.5;
}
.str-prog-completion {
  font-size: 12px;
  color: var(--success);
  font-weight: 500;
}
.str-prog-hdr-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  flex-shrink: 0;
}
.str-btn-chat, .str-btn-next-block, .str-btn-edit {
  font-size: 13px;
  font-weight: 500;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: opacity 0.2s;
  border: 1px solid var(--border);
  background: var(--surface2);
  color: var(--text);
  white-space: nowrap;
}
.str-btn-chat { border-color: rgba(20,0,255,0.4); color: var(--accent); }
.str-btn-chat:hover, .str-btn-next-block:hover, .str-btn-edit:hover { opacity: 0.8; }

/* ── Week Tabs ─────────────────────────────────────────── */
.str-week-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.str-week-tab {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-muted);
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  padding: 8px 16px;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 6px;
}
.str-week-tab:hover { border-color: var(--blue); color: var(--text); }
.str-week-tab.active {
  border-color: var(--blue);
  background: var(--blue-light);
  color: var(--text);
}
.str-week-done {
  font-size: 11px;
  background: var(--success);
  color: #fff;
  padding: 1px 5px;
  border-radius: 10px;
}
.str-week-partial {
  font-size: 11px;
  color: var(--warning);
}

/* ── Day Cards ─────────────────────────────────────────── */
.str-days { display: flex; flex-direction: column; gap: 10px; }

.str-day-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color 0.2s;
}
.str-day-card:hover { border-color: rgba(20,0,255,0.3); }

.str-day-hdr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  cursor: pointer;
  user-select: none;
  gap: 12px;
}
.str-day-hdr-left { flex: 1; min-width: 0; }
.str-day-label {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.02em;
}
.str-day-focus { font-size: 13px; color: var(--text-muted); margin-top: 2px; }

.str-day-hdr-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.str-day-time { font-size: 12px; color: var(--text-muted); }
.str-day-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
  background: var(--surface2);
  color: var(--text-muted);
  border: 1px solid var(--border);
}
.str-day-badge.str-badge-done {
  background: rgba(34,197,94,0.15);
  color: var(--success);
  border-color: rgba(34,197,94,0.3);
}
.str-day-badge.str-badge-partial {
  background: rgba(245,158,11,0.12);
  color: var(--warning);
  border-color: rgba(245,158,11,0.25);
}
.str-day-chevron { font-size: 10px; color: var(--text-muted); }

.str-day-body {
  border-top: 1px solid var(--border);
  padding: 0;
}

/* ── Section Blocks (warm-up / main / cool-down) ───────── */
.str-section-block { border-bottom: 1px solid var(--border); }
.str-section-block:last-child { border-bottom: none; }

.str-section-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  user-select: none;
}
.str-main-hdr { cursor: default; color: var(--text); }
.str-section-time { margin-left: auto; font-weight: 400; }
.str-section-chev { font-size: 10px; }
.str-section-content { padding: 0 18px 12px; }

/* Warm-up / cool-down rows */
.str-wu-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 5px 0;
  font-size: 13px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.str-wu-row:last-child { border-bottom: none; }
.str-wu-name { color: var(--text); flex: 1; }
.str-wu-details { color: var(--text-muted); font-size: 12px; }

/* ── Exercise Rows ─────────────────────────────────────── */
.str-ex-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  transition: opacity 0.2s;
}
.str-ex-row:last-child { border-bottom: none; }
.str-ex-done { opacity: 0.55; }
.str-ex-done .str-ex-name { text-decoration: line-through; color: var(--text-muted); }

.str-ex-check {
  margin-top: 3px;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  accent-color: var(--blue);
  cursor: pointer;
}
.str-ex-info { flex: 1; min-width: 0; }
.str-ex-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
  line-height: 1.3;
}
.str-ex-details { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.str-ex-technique {
  font-size: 11px;
  color: var(--text-dim);
  font-style: italic;
  margin-top: 2px;
}
.str-ex-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.str-ex-time {
  font-size: 11px;
  color: var(--text-dim);
  background: var(--surface2);
  padding: 2px 6px;
  border-radius: 4px;
  white-space: nowrap;
}
.str-ex-weight {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--text);
  font-size: 12px;
  padding: 4px 8px;
  width: 100px;
  transition: border-color 0.2s;
}
.str-ex-weight:focus { outline: none; border-color: var(--blue); }

.str-ai-logic {
  font-size: 11px;
  font-style: italic;
  color: var(--text-dim);
  padding: 10px 18px;
  border-top: 1px solid var(--border);
}

/* ── Training Log Tab ──────────────────────────────────── */
.str-log-summary {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 20px;
  margin-bottom: 16px;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
.str-log-stat { font-size: 14px; color: var(--text-muted); }
.str-log-stat strong { color: var(--text); }

.str-log-week {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 10px;
  overflow: hidden;
}
.str-log-week-hdr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 18px;
  font-family: var(--font-head);
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  border-bottom: 1px solid var(--border);
}
.str-log-pct { font-size: 13px; color: var(--text-muted); font-family: var(--font-body); }
.str-log-pct.str-log-complete { color: var(--success); }

.str-log-day {
  padding: 8px 18px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.str-log-day:last-child { border-bottom: none; }
.str-log-day-hdr {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--text-muted);
}
.str-log-day-ct { font-weight: 600; color: var(--text); }

/* ── Progress Notes Tab ────────────────────────────────── */
.str-notes-wrap { padding: 4px 0; }
.str-notes-label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-muted);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.str-notes-input {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.6;
  padding: 14px 16px;
  width: 100%;
  resize: vertical;
  transition: border-color 0.2s;
}
.str-notes-input:focus { outline: none; border-color: var(--blue); }
.str-notes-footer { margin-top: 8px; }
.str-notes-saved { font-size: 12px; color: var(--success); }

/* ── Coach Chat Overlay ────────────────────────────────── */
.str-chat-overlay {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: 380px;
  z-index: 1000;
  display: flex;
  flex-direction: column;
}
.str-chat-panel {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--surface);
  border-left: 1px solid var(--border);
  box-shadow: -8px 0 32px rgba(0,0,0,0.4);
}
.str-chat-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.str-chat-hdr-title {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.03em;
}
.str-chat-close {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 16px;
  padding: 4px 8px;
  transition: color 0.2s;
  border-radius: 4px;
}
.str-chat-close:hover { color: var(--text); background: var(--surface2); }

.str-chat-msgs {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.str-chat-msg {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.str-chat-ai { justify-content: flex-start; }
.str-chat-user { justify-content: flex-end; }

.str-chat-avatar {
  width: 32px; height: 32px;
  background: linear-gradient(135deg, var(--blue), var(--blue-mid));
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; flex-shrink: 0;
}
.str-chat-bubble {
  max-width: 80%;
  padding: 10px 14px;
  border-radius: 14px;
  font-size: 13px;
  line-height: 1.5;
}
.str-bubble-ai {
  background: var(--surface2);
  color: var(--text);
  border-bottom-left-radius: 4px;
}
.str-bubble-user {
  background: var(--blue);
  color: #fff;
  border-bottom-right-radius: 4px;
}

/* Typing indicator */
.str-typing { display: flex; gap: 4px; align-items: center; padding: 2px 0; }
.str-typing span {
  width: 6px; height: 6px;
  background: var(--text-muted);
  border-radius: 50%;
  animation: strDot 1.4s ease-in-out infinite;
}
.str-typing span:nth-child(2) { animation-delay: 0.2s; }
.str-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes strDot {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
  30% { transform: translateY(-5px); opacity: 1; }
}

.str-chat-chip-row {
  padding: 8px 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  border-top: 1px solid var(--border);
}
.str-chat-chip {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 16px;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 12px;
  padding: 5px 12px;
  transition: all 0.2s;
}
.str-chat-chip:hover { border-color: var(--blue); color: var(--text); }

.str-chat-input-row {
  display: flex;
  gap: 8px;
  padding: 12px 14px;
  border-top: 1px solid var(--border);
  flex-shrink: 0;
}
.str-chat-input {
  flex: 1;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  padding: 9px 14px;
  transition: border-color 0.2s;
}
.str-chat-input:focus { outline: none; border-color: var(--blue); }
.str-chat-send-btn {
  background: var(--blue);
  border: none;
  border-radius: var(--radius-sm);
  color: #fff;
  cursor: pointer;
  font-size: 18px;
  padding: 0 16px;
  transition: opacity 0.2s;
}
.str-chat-send-btn:hover { opacity: 0.85; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 767px) {
  .str-fields { grid-template-columns: 1fr; }
  .str-field-full { grid-column: 1; }
  .str-prog-hdr { flex-direction: column; }
  .str-prog-hdr-actions { width: 100%; }
  .str-btn-chat, .str-btn-next-block, .str-btn-edit { flex: 1; text-align: center; justify-content: center; }
  .str-chat-overlay { width: 100%; left: 0; }
  .str-ex-weight { width: 72px; }
  .str-week-tabs { overflow-x: auto; flex-wrap: nowrap; }
}

/* ── Sidebar Profile Power Bar ──────────────────────────── */
.sidebar-power-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  width: 100%;
  padding: 0 2px;
}
.sidebar-power-track {
  flex: 1;
  height: 4px;
  background: rgba(255,255,255,0.08);
  border-radius: 2px;
  overflow: hidden;
}
.sidebar-power-fill {
  height: 100%;
  background: var(--blue);
  border-radius: 2px;
  transition: width 0.4s ease;
}
.sidebar-power-pct {
  font-size: 0.65rem;
  color: var(--text-muted);
  white-space: nowrap;
}

/* ── New Nav Section Labels ──────────────────────────────── */
.nav-section-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 14px 16px 4px;
  opacity: 0.6;
}

/* ── Overview Dashboard ──────────────────────────────────── */
.ov-welcome-row { margin-bottom: 18px; }
.ov-welcome-title { font-family: var(--font-head); font-size: 1.6rem; color: var(--text); margin: 0 0 4px; }
.ov-welcome-date { font-size: 0.78rem; color: var(--text-muted); }

.ov-stat-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 18px;
}
.ov-stat-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
}
.ov-stat-label { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-muted); margin-bottom: 4px; }
.ov-stat-value { font-family: var(--font-head); font-size: 1.25rem; color: var(--text); }
.ov-stat-inactive { color: var(--text-muted); font-size: 0.85rem; }
.ov-stat-sub { font-size: 0.7rem; color: var(--text-muted); margin-top: 2px; }
.ov-stat-bar-wrap { height: 3px; background: rgba(255,255,255,0.08); border-radius: 2px; margin-top: 8px; overflow: hidden; }
.ov-stat-bar { height: 100%; border-radius: 2px; }

.ov-edge-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-left: 3px solid var(--blue);
  border-radius: var(--radius);
  padding: 18px 20px;
  margin-bottom: 18px;
}
.ov-edge-card.ov-edge-empty { border-left-color: var(--text-muted); text-align: center; padding: 28px; }
.ov-edge-empty-title { font-size: 1rem; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.ov-edge-empty-sub { color: var(--text-muted); font-size: 0.85rem; margin-bottom: 14px; }
.ov-edge-card-header { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.ov-edge-icon { font-size: 18px; }
.ov-edge-card-title { font-weight: 700; color: var(--text); font-size: 0.9rem; }
.ov-edge-card-date { font-size: 0.72rem; color: var(--text-muted); }
.ov-edge-headline { font-size: 0.92rem; color: var(--text); margin: 0 0 10px; line-height: 1.4; }
.ov-edge-projection { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.ov-proj-label { font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-muted); }
.ov-proj-val { font-family: var(--font-head); font-size: 1rem; color: var(--text); }
.ov-proj-upside { color: var(--blue); }
.ov-proj-arrow { color: var(--text-muted); }
.ov-edge-gap1 { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 12px; }

.ov-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 16px; }
.ov-col-card { background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; }
.ov-col-title { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); margin-bottom: 12px; }
.ov-missing-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 0.8rem; }
.ov-missing-label { font-weight: 700; color: var(--text); flex: 0 0 auto; }
.ov-missing-note { color: var(--text-muted); flex: 1; font-size: 0.72rem; }
.ov-missing-pts { color: var(--blue); font-size: 0.7rem; font-weight: 700; flex: 0 0 auto; }
.ov-this-week-text { font-size: 0.83rem; color: var(--text); line-height: 1.5; margin: 0 0 8px; }
.ov-this-week-empty { font-size: 0.8rem; color: var(--text-muted); font-style: italic; }
.ov-this-week-action { font-size: 0.75rem; color: var(--text-muted); margin-bottom: 8px; border-left: 2px solid var(--blue); padding-left: 8px; }
.ov-this-week-str { font-size: 0.75rem; color: var(--text-muted); margin-top: 8px; }

.ov-showcase-card { background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 18px; margin-bottom: 14px; }
.ov-showcase-name { font-weight: 700; color: var(--text); }
.ov-showcase-date { font-size: 0.75rem; color: var(--text-muted); }

.ov-btn-primary { background: var(--blue); border: none; border-radius: var(--radius-sm); color: #fff; cursor: pointer; font-size: 0.82rem; font-weight: 600; padding: 8px 16px; margin-top: 12px; }
.ov-btn-primary:hover { opacity: 0.88; }
.ov-btn-secondary { background: transparent; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-muted); cursor: pointer; font-size: 0.8rem; padding: 7px 14px; margin-top: 10px; }
.ov-btn-secondary:hover { border-color: var(--blue); color: var(--blue); }
.ov-btn-link { background: none; border: none; color: var(--blue); cursor: pointer; font-size: 0.75rem; padding: 0; text-decoration: underline; }

/* ── Profile Hub ─────────────────────────────────────────── */
.profile-hub { max-width: 820px; }

.ph-header-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.ph-avatar-wrap { display: flex; flex-direction: column; align-items: center; gap: 6px; flex-shrink: 0; }
.ph-avatar {
  width: 80px; height: 80px; border-radius: 50%;
  background: var(--surface3,#243045);
  background-size: cover; background-position: center;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-head); font-size: 28px; font-weight: 700; color: var(--text-muted);
}
.ph-photo-btn { font-size: 0.7rem; background: transparent; border: 1px solid var(--border); color: var(--text-muted); border-radius: 4px; padding: 3px 8px; cursor: pointer; }
.ph-photo-btn:hover { border-color: var(--blue); color: var(--blue); }
.ph-header-info { flex: 1; min-width: 160px; }
.ph-name { font-family: var(--font-head); font-size: 1.6rem; color: var(--text); margin-bottom: 4px; }
.ph-meta { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 8px; }
.ph-tier { display: inline-block; }
.ph-share-col { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-left: auto; }

/* Public profile activation toggle + warning banner — Session 2.14 */
.ph-activation-row {
  display: flex; align-items: center; gap: 10px;
  width: 100%; padding: 6px 0;
}
.ph-activation-label {
  font-size: 0.78rem; color: var(--text-muted); font-weight: 500;
}
.ph-activation-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 4px 10px 4px 4px;
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer; transition: background 0.2s, border-color 0.2s;
  font-family: inherit; font-size: 0.78rem; color: var(--text);
}
.ph-activation-toggle .ph-activation-slider {
  width: 28px; height: 16px; border-radius: 999px;
  background: var(--text-muted);
  position: relative;
  transition: background 0.2s;
}
.ph-activation-toggle .ph-activation-slider::after {
  content: ''; position: absolute;
  top: 2px; left: 2px; width: 12px; height: 12px;
  border-radius: 50%; background: #fff;
  transition: transform 0.2s;
}
.ph-activation-toggle.is-active .ph-activation-slider { background: var(--success); }
.ph-activation-toggle.is-active .ph-activation-slider::after { transform: translateX(12px); }
.ph-activation-toggle.is-active { border-color: var(--success); }
.ph-activation-toggle:hover { border-color: var(--blue); }
.ph-activation-state { font-weight: 600; }

.ph-activation-warning {
  display: flex; align-items: flex-start; gap: 10px;
  width: 100%;
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.4);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  font-size: 0.78rem; color: var(--text);
  line-height: 1.4;
}
.ph-activation-warning-icon { font-size: 1rem; flex-shrink: 0; }
.ph-activation-warning-text { flex: 1; }
.ph-activation-warning-cta {
  flex-shrink: 0;
  padding: 4px 10px;
  background: #f59e0b; color: #1a1a1a;
  border: none; border-radius: var(--radius-sm);
  font-size: 0.74rem; font-weight: 600; cursor: pointer;
  transition: background 0.15s;
}
.ph-activation-warning-cta:hover { background: #d97706; }
@keyframes phActivationPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.6); }
  50%      { box-shadow: 0 0 0 8px rgba(245, 158, 11, 0); }
}
.ph-activation-pulse { animation: phActivationPulse 1.5s ease-out 1; }

.ph-power-wrap {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 18px;
  margin-bottom: 16px;
}
.ph-power-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 0.82rem; color: var(--text); }
.ph-power-next { font-size: 0.72rem; color: var(--text-muted); max-width: 60%; text-align: right; }
.ph-power-track { height: 8px; background: rgba(255,255,255,0.07); border-radius: 4px; overflow: hidden; }
.ph-power-fill { height: 100%; border-radius: 4px; background: var(--blue); transition: width 0.4s ease; }

/* Profile Section Cards */
.psc-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 10px;
  overflow: hidden;
  transition: border-color 0.2s;
}
.psc-card:has(.psc-form-wrap:not(.hidden)) { border-color: var(--blue); }
.psc-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  cursor: default;
}
.psc-icon { font-size: 18px; flex-shrink: 0; }
.psc-title-col { flex: 1; min-width: 0; }
.psc-title { font-size: 0.88rem; font-weight: 700; color: var(--text); }
.psc-preview { font-size: 0.73rem; color: var(--text-muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.psc-status { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; padding: 3px 8px; border-radius: 10px; flex-shrink: 0; }
.psc-status-complete { background: rgba(34,197,94,0.15); color: #22c55e; }
.psc-status-partial  { background: rgba(245,158,11,0.15); color: #f59e0b; }
.psc-status-empty    { background: rgba(122,139,154,0.12); color: var(--text-muted); }
.psc-edit-btn { background: transparent; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-muted); cursor: pointer; font-size: 0.75rem; padding: 5px 12px; flex-shrink: 0; }
.psc-edit-btn:hover { border-color: var(--blue); color: var(--blue); }
.psc-ncaa-warn { padding: 8px 18px; background: rgba(245,158,11,0.08); border-top: 1px solid rgba(245,158,11,0.2); font-size: 0.75rem; color: #f59e0b; }
.psc-ncaa-warn a { color: #f59e0b; text-decoration: underline; }

/* NCAA Eligibility Center widget */
.ncaa-widget { border: 1px solid var(--border); border-radius: var(--radius); margin: 14px 0 6px; overflow: hidden; }
.ncaa-widget-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; background: var(--surface); border-bottom: 1px solid var(--border); }
.ncaa-badge { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.04em; padding: 3px 8px; border-radius: 3px; text-transform: uppercase; }
.ncaa-badge-amber { background: rgba(245,158,11,0.12); color: #f59e0b; border: 1px solid rgba(245,158,11,0.25); }
.ncaa-badge-green  { background: rgba(16,185,129,0.12); color: #10b981; border: 1px solid rgba(16,185,129,0.25); }
.ncaa-warn-box { padding: 12px 14px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ncaa-warn-text { font-size: 0.8rem; color: var(--text-muted); margin: 0; flex: 1; min-width: 180px; line-height: 1.45; }
.ncaa-register-btn { display: inline-block; background: #f59e0b; color: #fff; font-size: 0.78rem; font-weight: 600; padding: 7px 14px; border-radius: var(--radius-sm); text-decoration: none; white-space: nowrap; }
.ncaa-register-btn:hover { background: #d97706; }
.ncaa-toggle-btn { display: block; width: 100%; padding: 8px 14px; background: var(--surface); border: none; border-top: 1px solid var(--border); color: var(--blue); font-size: 0.78rem; font-weight: 600; cursor: pointer; text-align: left; letter-spacing: 0.02em; }
.ncaa-toggle-btn:hover { background: var(--blue-light); }
.ncaa-toggle-ghost { color: var(--text-muted); font-weight: 400; width: auto; border: none; background: transparent; padding: 4px 0; font-size: 0.75rem; }
.ncaa-toggle-ghost:hover { background: transparent; color: var(--text); text-decoration: underline; }
.ncaa-profile-link { font-size: 0.78rem; color: var(--blue); text-decoration: none; padding: 0 14px; }
.ncaa-profile-link:hover { text-decoration: underline; }

.psc-form-wrap { border-top: 1px solid var(--border); }
.psc-form { padding: 16px 18px; }
.psc-form-note { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 14px; line-height: 1.5; }
.psc-form-actions { display: flex; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.btn-save-section { background: var(--blue); border: none; border-radius: var(--radius-sm); color: #fff; cursor: pointer; font-size: 0.82rem; font-weight: 600; padding: 9px 18px; }
.btn-save-section:hover { opacity: 0.88; }
.btn-save-section:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-cancel-section { background: transparent; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-muted); cursor: pointer; font-size: 0.8rem; padding: 8px 14px; }
.btn-cancel-section:hover { border-color: #ef4444; color: #ef4444; }
.psc-checkbox-row { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; color: var(--text); margin: 10px 0; cursor: pointer; }
.psc-metrics-tabs { display: flex; gap: 4px; margin-bottom: 14px; flex-wrap: wrap; }
.psc-mtab { background: transparent; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-muted); cursor: pointer; font-size: 0.75rem; padding: 5px 12px; }
.psc-mtab.active { background: var(--blue); border-color: var(--blue); color: #fff; }
.psc-mtab:hover:not(.active) { border-color: var(--blue); color: var(--blue); }
.psc-stat-group-label { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-muted); margin: 12px 0 8px; border-bottom: 1px solid var(--border); padding-bottom: 4px; }
.psc-showcase-list { margin-bottom: 4px; }
.psc-showcase-row { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; color: var(--text); padding: 6px 0; border-bottom: 1px solid var(--border); }
.psc-showcase-row:last-child { border-bottom: none; }
.psc-del-btn { background: none; border: none; color: var(--text-muted); cursor: pointer; margin-left: auto; font-size: 12px; }
.psc-del-btn:hover { color: #ef4444; }
.psc-empty-note { font-size: 0.75rem; color: var(--text-muted); font-style: italic; padding: 6px 0; }

/* ── Pre-fill Notice ─────────────────────────────────────── */
.prefill-notice {
  background: rgba(20,0,255,0.08);
  border: 1px solid rgba(20,0,255,0.2);
  border-radius: var(--radius-sm);
  color: var(--blue);
  font-size: 0.78rem;
  padding: 10px 14px;
  margin-bottom: 14px;
  line-height: 1.5;
}

/* ── Virtual Combine Hub ─────────────────────────────────── */
.combine-labs-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
.combine-lab-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.combine-lab-icon { font-size: 28px; margin-bottom: 8px; }
.combine-lab-title { font-family: var(--font-head); font-size: 1.1rem; color: var(--text); margin-bottom: 8px; }
.combine-lab-desc { font-size: 0.82rem; color: var(--text-muted); line-height: 1.55; margin-bottom: 14px; flex: 1; }
.combine-lab-date  { font-size: 0.72rem; color: var(--text-muted); margin-bottom: 4px; }
.combine-lab-grade { font-size: 0.8rem; color: var(--blue); font-weight: 700; margin-bottom: 6px; }
.combine-lab-finding { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 12px; font-style: italic; }
.combine-lab-btn { background: var(--blue); border: none; border-radius: var(--radius-sm); color: #fff; cursor: pointer; font-size: 0.82rem; font-weight: 600; padding: 9px 18px; margin-top: auto; }
.combine-lab-btn:hover { opacity: 0.88; }
.combine-lab-btn-sec { background: transparent; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-muted); cursor: pointer; font-size: 0.78rem; padding: 7px 14px; margin-top: 8px; }
.combine-lab-btn-sec:hover { border-color: var(--blue); color: var(--blue); }
.combine-review-card { background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px; }
.combine-upgrade-card { background: rgba(20,0,255,0.06); border: 1px solid rgba(20,0,255,0.2); border-radius: var(--radius); padding: 20px; text-align: center; }
.combine-review-title, .combine-upgrade-title { font-weight: 700; color: var(--text); margin-bottom: 8px; }
.combine-review-status { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 12px; }
.combine-upgrade-desc { font-size: 0.82rem; color: var(--text-muted); margin-bottom: 14px; }

/* ── Responsive overrides ────────────────────────────────── */
@media (max-width: 900px) {
  .ov-stat-cards { grid-template-columns: repeat(2, 1fr); }
  .ov-two-col { grid-template-columns: 1fr; }
  .combine-labs-row { grid-template-columns: 1fr; }
  .ph-share-col { width: 100%; }
}
@media (max-width: 600px) {
  .ov-stat-cards { grid-template-columns: repeat(2, 1fr); }
  .ph-header-card { flex-direction: column; }
}

/* ── Edge Intelligence Section ──────────────────────────── */
.edge-intel-section {
  margin-top: 24px;
}
.edge-intel-section .edge-section-title {
  margin-bottom: 12px;
}
.edge-intel-card {
  background: var(--surface2, #1a2535);
  border: 1px solid var(--border, rgba(255,255,255,0.08));
  border-radius: var(--radius, 12px);
  padding: 16px 20px;
  margin-bottom: 12px;
  position: relative;
}
.edge-intel-card.edge-intel-eval  { border-left: 3px solid #818cf8; }
.edge-intel-card.edge-intel-strength { border-left: 3px solid #22d3ee; }
.edge-intel-card.edge-intel-data  { border-left: 3px solid var(--gold, #f5a623); }
.edge-intel-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.edge-intel-icon {
  font-size: 16px;
}
.edge-intel-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted, #7a8b9a);
  flex: 1;
}
.edge-intel-score {
  background: #818cf8;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
}
.edge-intel-text {
  font-size: 0.85rem;
  color: var(--text-muted, #9ab);
  line-height: 1.6;
  margin: 0;
}

/* ═══════════════════════════════════════════════════════════
   PITCHING & HITTING LABS  (v29)
   ═══════════════════════════════════════════════════════════ */

/* ── Lab tier gate ───────────────────────────────────────── */
.lab-gate-wrap {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 64px 32px; max-width: 520px; margin: 0 auto; gap: 16px;
}
.lab-gate-icon { font-size: 3.5rem; }
.lab-gate-title {
  font-family: 'Rajdhani', sans-serif; font-size: 1.6rem; font-weight: 700;
  color: #fff; margin: 0;
}
.lab-gate-msg {
  font-size: 0.9rem; color: var(--text-muted, #8a9baa);
  line-height: 1.7; margin: 0;
}

/* ── Combine hub locked card ─────────────────────────────── */
.combine-lab-card-locked {
  opacity: 0.85;
  border-color: rgba(255,255,255,0.08) !important;
}
.combine-lab-lock-badge {
  display: inline-block; font-size: 0.7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  background: rgba(249,115,22,0.15); color: #f97316;
  border: 1px solid rgba(249,115,22,0.3);
  padding: 3px 10px; border-radius: 20px; margin: 4px 0 8px;
}

/* ── Sidebar sub-nav ─────────────────────────────────────── */
.nav-sub-group { margin: 0; }
.nav-sub-item {
  padding-left: 36px !important;
  font-size: 0.8rem !important;
  opacity: 0.9;
}
.nav-item.nav-parent-active {
  color: var(--accent-blue, #3b82f6);
  background: rgba(59,130,246,0.08);
}

/* ── Lab page shell ──────────────────────────────────────── */
.lab-page { max-width: 860px; }
.lab-header { margin-bottom: 20px; }
.lab-title { font-family: 'Rajdhani', sans-serif; font-size: 1.7rem; font-weight: 700; color: #fff; margin: 0 0 4px; }
.lab-subtitle { font-size: 0.88rem; color: var(--text-muted, #7a8b9a); margin: 0; }

/* Pitching accent = orange, Hitting accent = purple */
.lab-pitching .lab-title { color: #f97316; }
.lab-hitting  .lab-title { color: #a855f7; }

/* ── Tabs ────────────────────────────────────────────────── */
.lab-tabs {
  display: flex; gap: 4px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  margin-bottom: 24px;
}
.lab-tab {
  padding: 8px 18px; font-size: 0.85rem; font-weight: 600;
  background: none; border: none; border-bottom: 2px solid transparent;
  color: var(--text-muted, #7a8b9a); cursor: pointer; transition: color .2s;
  position: relative;
}
.lab-tab:hover { color: #fff; }
.lab-tab.active { color: #f97316; border-bottom-color: #f97316; }
.lab-hitting .lab-tab.active { color: #a855f7; border-bottom-color: #a855f7; }
.lab-tab-has-data::after {
  content: ''; display: inline-block;
  width: 6px; height: 6px; border-radius: 50%;
  background: #22c55e; margin-left: 6px; vertical-align: middle;
}

/* ── Submit page layout ──────────────────────────────────── */
.lab-submit-wrap { display: flex; flex-direction: column; gap: 18px; }

.lab-desc-card, .lab-req-card, .lab-prefill-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px; padding: 18px 20px;
}
.lab-desc-title, .lab-req-title, .lab-prefill-title {
  font-family: 'Rajdhani', sans-serif; font-size: 1rem; font-weight: 700;
  color: #fff; margin: 0 0 8px;
}
.lab-desc-text { font-size: 0.88rem; color: var(--text-muted, #7a8b9a); margin: 0; line-height: 1.6; }

.lab-req-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.lab-req-list li { font-size: 0.85rem; color: var(--text-muted, #8a9baa); display: flex; align-items: flex-start; gap: 8px; }
.lab-req-icon { font-size: 1rem; flex-shrink: 0; margin-top: -1px; }

.lab-prefill-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 12px; }
.lab-prefill-item { display: flex; flex-direction: column; gap: 2px; }
.lab-prefill-label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted, #7a8b9a); }
.lab-prefill-val { font-size: 0.88rem; font-weight: 600; color: #fff; }
.lab-prefill-edit { font-size: 0.78rem; color: #3b82f6; cursor: pointer; text-decoration: none; }
.lab-prefill-edit:hover { text-decoration: underline; }

/* ── Upload zone ─────────────────────────────────────────── */
.lab-upload-zone {
  border: 2px dashed rgba(249,115,22,0.4);
  border-radius: 12px; padding: 40px 24px;
  text-align: center; cursor: pointer;
  transition: border-color .2s, background .2s;
  background: rgba(249,115,22,0.03);
}
.lab-upload-zone:hover { border-color: #f97316; background: rgba(249,115,22,0.07); }
.lab-upload-zone.drag-over { border-color: #f97316; background: rgba(249,115,22,0.12); }
.lab-upload-zone-hl { border-color: rgba(168,85,247,0.4); background: rgba(168,85,247,0.03); }
.lab-upload-zone-hl:hover { border-color: #a855f7; background: rgba(168,85,247,0.07); }
.lab-upload-zone-hl.drag-over { border-color: #a855f7; background: rgba(168,85,247,0.12); }
.lab-upload-icon { font-size: 2.5rem; margin-bottom: 10px; }
.lab-upload-main { font-size: 1rem; font-weight: 600; color: #fff; margin-bottom: 4px; }
.lab-upload-sub { font-size: 0.85rem; color: var(--text-muted, #7a8b9a); margin-bottom: 6px; }
.lab-upload-hint { font-size: 0.75rem; color: var(--text-muted, #5a6b7a); }

/* ── Video preview ───────────────────────────────────────── */
.lab-video-preview { margin: 0; }
.lab-video-player { width: 100%; max-height: 360px; border-radius: 8px; background: #000; display: block; }
.lab-video-name { font-size: 0.78rem; color: var(--text-muted, #7a8b9a); margin-top: 6px; }

/* ── File action buttons ─────────────────────────────────── */
.lab-file-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.lab-btn-primary {
  background: #f97316; color: #fff; border: none;
  padding: 11px 22px; border-radius: 8px; font-size: 0.88rem;
  font-weight: 700; cursor: pointer; transition: background .2s;
}
.lab-btn-primary:hover { background: #ea6a0a; }
.lab-btn-hl { background: #a855f7 !important; }
.lab-btn-hl:hover { background: #9333ea !important; }
.lab-btn-ghost {
  background: none; color: var(--text-muted, #8a9baa);
  border: 1px solid rgba(255,255,255,0.15);
  padding: 11px 18px; border-radius: 8px; font-size: 0.85rem;
  font-weight: 600; cursor: pointer; transition: color .2s, border-color .2s;
}
.lab-btn-ghost:hover { color: #fff; border-color: rgba(255,255,255,0.3); }
.lab-btn-sm {
  font-size: 0.78rem; font-weight: 600; padding: 5px 12px;
  background: rgba(249,115,22,0.15); color: #f97316;
  border: 1px solid rgba(249,115,22,0.3); border-radius: 6px;
  cursor: pointer; margin-top: 6px;
}
.lab-btn-sm:hover { background: rgba(249,115,22,0.25); }
.lab-btn-sm-hl { background: rgba(168,85,247,0.15) !important; color: #a855f7 !important; border-color: rgba(168,85,247,0.3) !important; }
.lab-btn-sm-hl:hover { background: rgba(168,85,247,0.25) !important; }

/* ── Loading state ───────────────────────────────────────── */
.lab-loading {
  display: flex; flex-direction: column; align-items: center;
  padding: 48px 24px; text-align: center; gap: 16px;
}
.lab-loading-icon { font-size: 3rem; }
.lab-loading-pulse { animation: labPulse 1.4s ease-in-out infinite; }
@keyframes labPulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.15);opacity:0.6} }
.lab-loading-msg { font-size: 1rem; font-weight: 600; color: #fff; margin: 0; }
.lab-loading-steps { display: flex; flex-direction: column; gap: 8px; min-width: 280px; text-align: left; }
.lab-step { display: flex; align-items: center; gap: 10px; font-size: 0.85rem; }
.lab-step-done  { color: #22c55e; }
.lab-step-active { color: #f97316; }
.lab-hitting .lab-step-active { color: #a855f7; }
.lab-step-pending { color: var(--text-muted, #5a6b7a); }
.lab-step-icon { font-size: 1rem; width: 18px; text-align: center; flex-shrink: 0; }

/* ── Error card ──────────────────────────────────────────── */
.lab-error-card {
  display: flex; flex-direction: column; align-items: center;
  padding: 40px 24px; text-align: center; gap: 12px;
  background: rgba(239,68,68,0.06); border: 1px solid rgba(239,68,68,0.25);
  border-radius: 12px;
}
.lab-error-icon { font-size: 2.5rem; }
.lab-error-title { font-size: 1.1rem; font-weight: 700; color: #ef4444; }
.lab-error-msg { font-size: 0.85rem; color: var(--text-muted, #8a9baa); max-width: 400px; margin: 0; }

/* ── Empty state ─────────────────────────────────────────── */
.lab-empty {
  display: flex; flex-direction: column; align-items: center;
  padding: 56px 24px; text-align: center; gap: 12px;
}
.lab-empty-icon { font-size: 3rem; opacity: 0.4; }
.lab-empty-msg { font-size: 0.9rem; color: var(--text-muted, #7a8b9a); max-width: 360px; margin: 0; }

/* ── Report layout ───────────────────────────────────────── */
.lab-report { display: flex; flex-direction: column; gap: 20px; }

.lab-report-header {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,0.08);
  flex-wrap: wrap;
}
.lab-report-title { font-family: 'Rajdhani', sans-serif; font-size: 1.4rem; font-weight: 700; color: #fff; margin: 0 0 4px; }
.lab-report-hl .lab-report-title { color: #a855f7; }
.lab-report-meta { font-size: 0.8rem; color: var(--text-muted, #7a8b9a); }
.lab-report-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* Root cause alert */
.lab-root-cause-alert {
  border: 2px solid #ef4444; border-radius: 10px;
  padding: 16px 20px; background: rgba(239,68,68,0.07);
}
.lab-rca-header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.lab-rca-icon { font-size: 1.2rem; }
.lab-rca-label {
  font-size: 0.72rem; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: #ef4444;
}
.lab-rca-text { font-size: 1.05rem; font-weight: 700; color: #fff; line-height: 1.5; }

/* Pro archetype */
.lab-archetype-card {
  background: rgba(249,115,22,0.06); border: 1px solid rgba(249,115,22,0.2);
  border-radius: 10px; padding: 16px 20px; text-align: center;
}
.lab-archetype-hl { background: rgba(168,85,247,0.06) !important; border-color: rgba(168,85,247,0.2) !important; }
.lab-archetype-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted, #7a8b9a); margin-bottom: 6px; }
.lab-archetype-name { font-family: 'Rajdhani', sans-serif; font-size: 1.5rem; font-weight: 700; color: #f97316; }
.lab-archetype-hl .lab-archetype-name { color: #a855f7; }

/* Summary card */
.lab-summary-card {
  border-left: 3px solid #3b82f6; background: rgba(59,130,246,0.05);
  border-radius: 0 8px 8px 0; padding: 14px 18px;
}
.lab-summary-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #3b82f6; margin-bottom: 8px; }
.lab-summary-text { font-size: 0.88rem; color: var(--text-muted, #9ab); line-height: 1.7; margin: 0; }

/* Metrics grid */
.lab-metrics-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
}
.lab-metric-card {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px; padding: 14px 12px; text-align: center;
}
.lab-metric-hl { border-color: rgba(168,85,247,0.2) !important; }
.lab-metric-val { font-family: 'Rajdhani', sans-serif; font-size: 1.2rem; font-weight: 700; color: #fff; margin-bottom: 4px; }
.lab-metric-label { font-size: 0.65rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted, #5a6b7a); }

/* Section headers */
.lab-section { display: flex; flex-direction: column; gap: 12px; }
.lab-section-title { font-family: 'Rajdhani', sans-serif; font-size: 1rem; font-weight: 700; color: #fff; border-bottom: 1px solid rgba(255,255,255,0.08); padding-bottom: 6px; }

/* Pitch repertoire */
.lab-pitch-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.lab-pitch-card {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px; padding: 14px 16px;
}
.lab-pitch-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.lab-pitch-badge { font-size: 0.75rem; font-weight: 700; padding: 3px 10px; border-radius: 20px; color: #fff; }
.lab-pitch-conf { font-size: 0.72rem; color: var(--text-muted, #5a6b7a); }
.lab-pitch-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 8px; }
.lab-pm-item { display: flex; flex-direction: column; gap: 1px; }
.lab-pm-label { font-size: 0.65rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted, #5a6b7a); }
.lab-pm-val { font-size: 0.85rem; font-weight: 600; color: #fff; }
.lab-pitch-slot { font-size: 0.78rem; color: var(--text-muted, #7a8b9a); margin-bottom: 6px; }
.lab-pitch-advice { font-size: 0.82rem; font-style: italic; color: var(--text-muted, #8a9baa); margin: 0; line-height: 1.5; }
.lab-no-pitches { font-size: 0.85rem; color: var(--text-muted, #5a6b7a); margin: 0; }

/* Delivery timeline */
.lab-timeline { display: flex; flex-direction: column; gap: 0; }
.lab-timeline-item { display: flex; gap: 14px; padding-bottom: 16px; position: relative; }
.lab-timeline-item:not(:last-child)::before {
  content: ''; position: absolute; left: 7px; top: 18px; bottom: 0;
  width: 2px; background: rgba(249,115,22,0.3);
}
.lab-timeline-dot {
  width: 16px; height: 16px; border-radius: 50%;
  background: #f97316; flex-shrink: 0; margin-top: 2px;
}
.lab-timeline-dot-hl { background: #a855f7 !important; }
.lab-timeline-item:not(:last-child)::before { background: rgba(249,115,22,0.25); }
.lab-timeline-body { flex: 1; }
.lab-timeline-phase { font-size: 0.88rem; font-weight: 700; color: #fff; margin-bottom: 2px; }
.lab-timeline-time { font-size: 0.72rem; color: #f97316; margin-bottom: 3px; }
.lab-timeline-note { font-size: 0.82rem; color: var(--text-muted, #8a9baa); line-height: 1.5; }
.lab-no-phases { font-size: 0.85rem; color: var(--text-muted, #5a6b7a); margin: 0; }

/* Two-column strengths/fixes */
.lab-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lab-strengths-card, .lab-fixes-card {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px; padding: 14px 16px;
}
.lab-col-title { font-size: 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.lab-col-green { color: #22c55e; }
.lab-col-amber { color: #f59e0b; }
.lab-check-list, .lab-fix-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.lab-check-item, .lab-fix-item { display: flex; align-items: flex-start; gap: 8px; font-size: 0.85rem; color: var(--text-muted, #9ab); line-height: 1.5; }
.lab-check-icon { color: #22c55e; font-size: 0.9rem; flex-shrink: 0; margin-top: 1px; }
.lab-fix-icon { color: #f59e0b; font-size: 0.85rem; flex-shrink: 0; margin-top: 2px; }

/* Drills */
.lab-drills-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.lab-drill-card {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px; padding: 12px 14px;
}
.lab-drill-name { font-size: 0.88rem; font-weight: 700; color: #fff; margin-bottom: 4px; }
.lab-drill-focus { font-size: 0.78rem; color: var(--text-muted, #7a8b9a); margin-bottom: 8px; }
.lab-drill-tag { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #f97316; background: rgba(249,115,22,0.1); padding: 2px 8px; border-radius: 10px; }
.lab-report-hl .lab-drill-tag { color: #a855f7; background: rgba(168,85,247,0.1); }

/* Scout review section */
.lab-scout-card, .lab-scout-pending {
  background: rgba(59,130,246,0.06); border: 1px solid rgba(59,130,246,0.25);
  border-radius: 10px; padding: 16px 20px;
}
.lab-scout-pending { border-color: rgba(255,255,255,0.1); background: rgba(255,255,255,0.03); }
.lab-scout-title { font-size: 0.85rem; font-weight: 700; color: #3b82f6; margin-bottom: 8px; }
.lab-scout-grade { font-size: 0.85rem; color: var(--text-muted, #9ab); margin-bottom: 8px; }
.lab-scout-assessment { font-size: 0.85rem; color: var(--text-muted, #9ab); line-height: 1.6; margin: 0 0 6px; }
.lab-scout-rec { font-size: 0.82rem; color: var(--text-muted, #7a8b9a); margin: 0; }
.lab-scout-pending-title { font-size: 0.85rem; font-weight: 700; color: #fff; margin-bottom: 6px; }
.lab-scout-pending p { font-size: 0.82rem; color: var(--text-muted, #7a8b9a); margin: 0; }

/* Upgrade prompt */
.lab-upgrade-prompt {
  background: linear-gradient(135deg, rgba(249,115,22,0.08), rgba(59,130,246,0.08));
  border: 1px solid rgba(249,115,22,0.25);
  border-radius: 10px; padding: 20px 24px; text-align: center;
}
.lab-report-hl .lab-upgrade-prompt { border-color: rgba(168,85,247,0.25); background: linear-gradient(135deg,rgba(168,85,247,0.08),rgba(59,130,246,0.08)); }
.lab-upgrade-title { font-family: 'Rajdhani', sans-serif; font-size: 1.1rem; font-weight: 700; color: #fff; margin-bottom: 8px; }
.lab-upgrade-desc { font-size: 0.85rem; color: var(--text-muted, #8a9baa); margin: 0 0 14px; line-height: 1.6; }

/* History */
.lab-history { display: flex; flex-direction: column; gap: 10px; }
.lab-hist-card {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px; padding: 12px 16px;
}
.lab-hist-date { font-size: 0.78rem; font-weight: 700; color: var(--text-muted, #7a8b9a); margin-bottom: 4px; }
.lab-hist-root { font-size: 0.88rem; color: #fff; margin-bottom: 6px; }
.lab-hist-meta { display: flex; gap: 12px; font-size: 0.78rem; color: var(--text-muted, #5a6b7a); }

/* ── Scout dashboard lab additions ───────────────────────── */
.scout-lab-block { border-top: 1px solid rgba(249,115,22,0.2); }
.scout-lab-review-wrap { margin-top: 10px; }
.scout-lab-review-btn {
  font-size: 0.78rem; font-weight: 700; padding: 5px 12px;
  background: rgba(249,115,22,0.1); color: #f97316;
  border: 1px solid rgba(249,115,22,0.3); border-radius: 6px;
  cursor: pointer; margin-top: 6px;
}
.scout-lab-review-btn:hover { background: rgba(249,115,22,0.2); }
.scout-lab-review-form { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.scout-lab-review-row { display: flex; gap: 6px; }
.form-input-sm {
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15);
  border-radius: 6px; color: #fff; padding: 6px 10px; font-size: 0.82rem;
}
.scout-lab-save-btn {
  font-size: 0.78rem; font-weight: 700; padding: 6px 14px;
  background: #f97316; color: #fff; border: none; border-radius: 6px;
  cursor: pointer; align-self: flex-start;
}
.scout-lab-save-btn:hover { background: #ea6a0a; }
.scout-lab-review-existing { margin-bottom: 6px; }

/* ── Print styles ────────────────────────────────────────── */
@media print {
  .portal-sidebar, .mobile-header, .lab-tabs, .lab-report-actions,
  .lab-upgrade-prompt, .lab-scout-pending, nav, .portal-main > *:not(.portal-section.active) {
    display: none !important;
  }
  .portal-main { margin: 0; padding: 0; }
  .portal-section.active { display: block !important; }
  .lab-report { gap: 14px; }
  .lab-root-cause-alert { border: 1px solid #ef4444 !important; }
  body { background: #fff !important; color: #000 !important; }
  .lab-metric-card, .lab-pitch-card, .lab-drill-card { background: #f5f5f5 !important; border-color: #ddd !important; }
  .lab-metric-val, .lab-rca-text, .lab-report-title, .lab-timeline-phase { color: #000 !important; }
  .lab-summary-text, .lab-pitch-advice, .lab-timeline-note, .lab-check-item, .lab-fix-item { color: #333 !important; }
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 900px) {
  .lab-metrics-grid { grid-template-columns: repeat(2, 1fr); }
  .lab-two-col { grid-template-columns: 1fr; }
  .lab-prefill-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .lab-tabs { gap: 0; }
  .lab-tab { padding: 8px 12px; font-size: 0.78rem; }
  .lab-title { font-size: 1.3rem; }
  .lab-metrics-grid { grid-template-columns: repeat(2, 1fr); }
  .lab-pitch-metrics { grid-template-columns: repeat(2, 1fr); }
  .lab-report-header { flex-direction: column; }
  .lab-pitch-grid { grid-template-columns: 1fr; }
}

/* ── Transcript Upload Widget ───────────────────────────── */
.transcript-widget { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.transcript-widget-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; background: var(--surface); border-bottom: 1px solid var(--border); }
.transcript-desc { font-size: 0.78rem; color: var(--text-muted); margin: 0; padding: 8px 14px; line-height: 1.45; border-bottom: 1px solid var(--border); }
.transcript-existing { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: rgba(16,185,129,0.06); border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.transcript-existing-icon { color: #10b981; font-size: 16px; font-weight: 700; flex-shrink: 0; }
.transcript-existing-info { flex: 1; min-width: 120px; }
.transcript-existing-name { font-size: 0.82rem; font-weight: 600; color: var(--text); word-break: break-all; }
.transcript-existing-date { font-size: 0.72rem; color: var(--text-muted); margin-top: 2px; }
.transcript-existing-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.transcript-view-btn { font-size: 0.78rem; font-weight: 600; color: var(--blue); text-decoration: none; }
.transcript-view-btn:hover { text-decoration: underline; }
.transcript-remove-btn { background: transparent; border: none; font-size: 0.75rem; color: #ef4444; cursor: pointer; padding: 0; }
.transcript-remove-btn:hover { text-decoration: underline; }
.transcript-empty { padding: 8px 14px; font-size: 0.78rem; color: var(--text-muted); border-bottom: 1px solid var(--border); }
.transcript-drop-zone { padding: 20px 14px; text-align: center; cursor: pointer; transition: background 0.15s; }
.transcript-drop-zone:hover, .transcript-drop-zone.drag-active { background: var(--blue-light); }
.transcript-drop-icon { font-size: 28px; margin-bottom: 6px; }
.transcript-drop-text { font-size: 0.82rem; color: var(--text); margin-bottom: 4px; }
.transcript-drop-sub { font-size: 0.72rem; color: var(--text-muted); }
.transcript-file-preview { display: flex; align-items: center; gap: 8px; padding: 8px 14px; background: var(--surface); border-top: 1px solid var(--border); flex-wrap: wrap; }
.transcript-file-icon { font-size: 18px; }
.transcript-file-name { font-size: 0.82rem; color: var(--text); font-weight: 500; flex: 1; word-break: break-all; }
.transcript-file-size { font-size: 0.72rem; color: var(--text-muted); flex-shrink: 0; }
.transcript-confirm-btn { background: var(--blue); color: #fff; border: none; border-radius: var(--radius-sm); padding: 6px 14px; font-size: 0.78rem; font-weight: 600; cursor: pointer; flex-shrink: 0; }
.transcript-confirm-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.transcript-msg { padding: 8px 14px; font-size: 0.8rem; font-weight: 500; }
.transcript-msg-success { color: #10b981; }
.transcript-msg-error { color: #ef4444; }

/* ── Strength Medical Warning Banner ──────────────────────── */
.str-medical-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  background: rgba(234,179,8,0.1);
  border: 1px solid rgba(234,179,8,0.3);
  border-radius: var(--radius-sm);
  padding: 10px 16px;
  font-size: 0.82rem;
  color: #d4a017;
  line-height: 1.5;
  margin-bottom: 20px;
}
.str-medical-disclaimer-link {
  background: none;
  border: none;
  color: #d4a017;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: auto;
}
.str-medical-disclaimer-link:hover { color: #eab308; }

/* ── Strength Medical Disclaimer Modal ────────────────────── */
.str-disclaimer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.72);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9500;
  padding: 16px;
}
.str-disclaimer-overlay.hidden { display: none; }

.str-disclaimer-modal {
  background: #13131f;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px;
  padding: 28px 28px 24px;
  max-width: 520px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
}

.str-disclaimer-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.str-disclaimer-icon { font-size: 22px; line-height: 1; }
.str-disclaimer-header h3 {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--text);
  margin: 0;
  text-transform: uppercase;
}

.str-disclaimer-body {
  font-size: 0.83rem;
  color: var(--text-muted);
  line-height: 1.65;
  margin-bottom: 18px;
}
.str-disclaimer-body p { margin: 0 0 10px; }
.str-disclaimer-body p:last-child { margin-bottom: 0; }
.str-disclaimer-body ul {
  margin: 4px 0 10px 16px;
  padding: 0;
}
.str-disclaimer-body ul li { margin-bottom: 5px; }

.str-disclaimer-check-row {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 16px;
  margin-bottom: 18px;
}
.str-disclaimer-check-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: 0.85rem;
  color: var(--text);
  font-weight: 500;
  line-height: 1.4;
}
.str-disclaimer-check-label input[type="checkbox"] {
  margin-top: 2px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: #1400FF;
  cursor: pointer;
}

.str-disclaimer-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.str-disclaimer-readonly-close {
  display: flex;
  justify-content: flex-end;
}
.str-disclaimer-readonly-close.hidden { display: none; }

.str-disclaimer-btn-cancel {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.15);
  color: var(--text-muted);
  border-radius: var(--radius-sm);
  padding: 9px 20px;
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s;
}
.str-disclaimer-btn-cancel:hover {
  border-color: rgba(255,255,255,0.3);
  color: var(--text);
}

.str-disclaimer-btn-confirm {
  background: #1400FF;
  border: none;
  color: #fff;
  border-radius: var(--radius-sm);
  padding: 9px 22px;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.15s;
}
.str-disclaimer-btn-confirm:disabled {
  opacity: 0.38;
  cursor: not-allowed;
}
.str-disclaimer-btn-confirm:not(:disabled):hover { opacity: 0.88; }

@media (max-width: 480px) {
  .str-disclaimer-modal { padding: 22px 18px 20px; }
  .str-disclaimer-actions { flex-direction: column-reverse; }
  .str-disclaimer-btn-cancel,
  .str-disclaimer-btn-confirm { width: 100%; text-align: center; }
  .str-medical-disclaimer-link { margin-left: 0; }
}

/* ══════════════════════════════════════════════════════════
   VIRTUAL COMBINE — File 9 Chunk A
   Global directives, prerequisite gate, pre-gen hero, CTA card,
   phases-grid scaffold.
   ══════════════════════════════════════════════════════════ */

.vc-generate-btn:focus-visible,
.vc-phase-upload-btn:focus-visible,
.vc-submit-btn:focus-visible,
.vc-banner-btn:focus-visible,
.vc-banner-link:focus-visible,
.vc-phase-preview-link:focus-visible,
.vc-queue-row-btn:focus-visible,
.vc-review-decision-btn:focus-visible,
.vc-review-btn-save:focus-visible,
.vc-review-btn-cancel:focus-visible,
.vc-review-modal-close:focus-visible,
.vc-review-phase-feedback:focus-visible,
.vc-review-overall-note:focus-visible,
.vc-review-shareable-input:focus-visible,
.vc-queue-header:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .vc-phase-card,
  .vc-phase-upload-btn,
  .vc-generate-btn,
  .vc-submit-btn,
  .vc-banner,
  .vc-queue-row,
  .vc-review-overlay,
  .vc-review-modal,
  .vc-phase-progress,
  .vc-review-decision-btn,
  .vc-phase-badge {
    transition: none !important;
    animation: none !important;
  }
}

.vc-gate-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 40px 32px;
  text-align: center;
  max-width: 520px;
  margin: 24px auto;
}
.vc-gate-icon {
  font-size: 40px;
  margin-bottom: 16px;
  line-height: 1;
}
.vc-gate-card h3 {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1.4rem;
  color: var(--text);
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.vc-gate-card p {
  color: var(--text-muted);
  font-size: 0.9rem;
  margin-bottom: 20px;
  line-height: 1.55;
}

.vc-hero-card {
  background: linear-gradient(135deg, var(--surface2) 0%, var(--bg3) 100%);
  border: 1px solid rgba(20,0,255,0.18);
  border-radius: var(--radius);
  padding: 28px 24px;
  margin-bottom: 20px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.3), 0 0 0 1px rgba(20,0,255,0.06);
}
.vc-hero-eyebrow {
  font-family: var(--font-head);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 10px;
}
.vc-hero-title {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1.8rem;
  color: var(--text);
  line-height: 1.2;
  margin-bottom: 14px;
  text-transform: none;
}
.vc-hero-desc {
  color: var(--text-muted);
  font-size: 0.92rem;
  line-height: 1.6;
  margin-bottom: 20px;
  max-width: 680px;
}
.vc-hero-phases {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.vc-hero-phases li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(20,0,255,0.08);
  border: 1px solid rgba(20,0,255,0.2);
  border-radius: var(--radius-sm);
  padding: 8px 14px;
  font-size: 0.82rem;
  color: var(--text);
  font-weight: 500;
}
.vc-phase-icon {
  font-size: 1.1em;
  line-height: 1;
  display: inline-block;
}

.vc-cta-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 24px;
  text-align: center;
  margin-bottom: 24px;
}
.vc-generate-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 28px;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  border-radius: var(--radius-sm);
  transition: opacity 0.15s, transform 0.15s;
}
.vc-generate-btn:hover:not(:disabled) { opacity: 0.9; transform: translateY(-1px); }
.vc-generate-btn:disabled { opacity: 0.55; cursor: wait; }
.vc-cta-note {
  margin-top: 14px;
  font-size: 0.82rem;
  color: var(--text-muted);
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.55;
}

.vc-phases-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 20px;
}

@media (max-width: 900px) {
  .vc-hero-title    { font-size: 1.5rem; }
}
@media (max-width: 600px) {
  .vc-gate-card     { padding: 28px 20px; margin: 16px 8px; }
  .vc-hero-card     { padding: 22px 18px; }
  .vc-hero-title    { font-size: 1.3rem; }
  .vc-hero-phases   { flex-direction: column; }
  .vc-hero-phases li{ width: 100%; }
  .vc-cta-card      { padding: 22px 18px; }
  .vc-generate-btn  { width: 100%; }
}
@media (max-width: 375px) {
  .vc-gate-card     { padding: 22px 16px; }
  .vc-hero-card     { padding: 18px 14px; }
  .vc-hero-desc     { font-size: 0.88rem; }
  .vc-cta-card      { padding: 18px 14px; }
}

/* ══════════════════════════════════════════════════════════
   VIRTUAL COMBINE — File 9 Chunk B
   Phase cards: container, header/summary, badges, sections,
   lists, dialogue, feedback, upload state, progress.
   ══════════════════════════════════════════════════════════ */

.vc-phase-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0;
  overflow: hidden;
}
.vc-phase-card-uploaded {
  border-left: 3px solid var(--success);
}

.vc-phase-card > details > summary.vc-phase-header {
  list-style: none;
  cursor: pointer;
  padding: 18px 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  transition: background 0.15s;
  user-select: none;
}
.vc-phase-card > details > summary.vc-phase-header::-webkit-details-marker { display: none; }
.vc-phase-card > details > summary.vc-phase-header:hover {
  background: rgba(255,255,255,0.02);
}
.vc-phase-header-title {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}
.vc-phase-header-title h4 {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--text);
  margin: 0;
  letter-spacing: 0.01em;
}
.vc-phase-chevron {
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--text-muted);
  border-bottom: 2px solid var(--text-muted);
  transform: rotate(-45deg);
  transition: transform 0.2s;
  flex: 0 0 auto;
  margin-left: 4px;
}
.vc-phase-card > details[open] > summary .vc-phase-chevron {
  transform: rotate(45deg);
}

.vc-phase-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  white-space: nowrap;
  flex: 0 0 auto;
}
.vc-phase-badge-approved {
  background: rgba(34,197,94,0.14);
  color: var(--success);
  border: 1px solid rgba(34,197,94,0.3);
}
.vc-phase-badge-changes {
  background: rgba(245,158,11,0.14);
  color: var(--warning);
  border: 1px solid rgba(245,158,11,0.3);
}
.vc-phase-badge-pending {
  background: rgba(139,143,168,0.14);
  color: var(--text-muted);
  border: 1px solid rgba(139,143,168,0.25);
}

.vc-phase-section {
  padding: 14px 22px 4px 22px;
  border-top: 1px solid var(--border);
}
.vc-phase-section-label {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 8px;
}

.vc-phase-list {
  list-style: none;
  padding: 0;
  margin: 0 0 10px 0;
}
.vc-phase-list li {
  position: relative;
  padding: 6px 0 6px 24px;
  font-size: 0.88rem;
  color: var(--text);
  line-height: 1.5;
}
.vc-phase-list-action li::before {
  content: '▸';
  position: absolute;
  left: 4px;
  color: var(--blue);
  font-weight: 700;
}
.vc-phase-list-director li::before {
  content: '•';
  position: absolute;
  left: 8px;
  color: var(--accent);
  font-weight: 700;
  font-size: 1.1em;
}
.vc-phase-list-checklist li::before {
  content: '◻';
  position: absolute;
  left: 2px;
  color: var(--text-muted);
  font-size: 1.05em;
  line-height: 1.4;
}

.vc-phase-dialogue {
  margin: 4px 0 10px 0;
  padding: 10px 14px;
  border-left: 3px solid var(--blue);
  background: rgba(20,0,255,0.04);
  font-style: italic;
  font-size: 0.9rem;
  color: var(--text);
  line-height: 1.55;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.vc-phase-feedback {
  background: rgba(245,158,11,0.06);
  border-top: 1px solid rgba(245,158,11,0.18);
  padding: 14px 22px;
}
.vc-phase-feedback-label {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--warning);
  margin-bottom: 6px;
}
.vc-phase-feedback-text {
  color: var(--text);
  font-size: 0.88rem;
  line-height: 1.55;
  white-space: pre-wrap;
}

.vc-phase-upload {
  padding: 14px 22px 18px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.vc-phase-uploaded {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
  flex-wrap: wrap;
}
.vc-phase-preview-link {
  color: var(--blue);
  font-weight: 600;
  font-size: 0.88rem;
  text-decoration: none;
  white-space: nowrap;
}
.vc-phase-preview-link:hover { opacity: 0.85; text-decoration: underline; }
.vc-phase-uploaded-date {
  font-size: 0.78rem;
  color: var(--text-muted);
}
.vc-phase-upload-btn {
  background: var(--blue);
  border: none;
  color: #fff;
  font-size: 0.86rem;
  font-weight: 700;
  min-height: 44px;
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: opacity 0.15s, transform 0.15s;
  flex: 0 0 auto;
}
.vc-phase-upload-btn:hover:not(:disabled) { opacity: 0.9; transform: translateY(-1px); }
.vc-phase-upload-btn:disabled { opacity: 0.55; cursor: wait; }
.vc-phase-card-uploaded .vc-phase-upload-btn {
  background: transparent;
  color: var(--blue);
  border: 1px solid var(--blue);
}
.vc-phase-card-uploaded .vc-phase-upload-btn:hover:not(:disabled) {
  background: rgba(20,0,255,0.08);
  opacity: 1;
}

.vc-phase-progress {
  width: 100%;
  margin-top: 8px;
  padding: 8px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text);
  background: linear-gradient(90deg, var(--blue-light) var(--vc-progress-pct, 0%), rgba(255,255,255,0.03) var(--vc-progress-pct, 0%));
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  transition: background 0.25s;
  text-align: center;
}

@media (max-width: 600px) {
  .vc-phase-card > details > summary.vc-phase-header { padding: 14px 16px; gap: 10px; }
  .vc-phase-section     { padding: 12px 16px 2px 16px; }
  .vc-phase-feedback    { padding: 12px 16px; }
  .vc-phase-upload      { padding: 12px 16px 14px; flex-direction: column; align-items: stretch; }
  .vc-phase-upload-btn  { width: 100%; }
  .vc-phase-uploaded    { justify-content: space-between; }
  .vc-phase-header-title h4 { font-size: 0.98rem; }
}
@media (max-width: 375px) {
  .vc-phase-card > details > summary.vc-phase-header { padding: 12px 14px; }
  .vc-phase-section     { padding: 10px 14px 2px 14px; }
  .vc-phase-feedback    { padding: 10px 14px; }
  .vc-phase-upload      { padding: 10px 14px 12px; }
  .vc-phase-badge       { font-size: 0.68rem; padding: 3px 8px; }
}

/* ══════════════════════════════════════════════════════════
   VIRTUAL COMBINE — File 9 Chunk C
   State banners, script intro, scout note, upgrade CTA,
   submit CTA, regen row.
   ══════════════════════════════════════════════════════════ */

.vc-banner {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 20px;
  margin-bottom: 16px;
  border-radius: var(--radius);
  border: 1px solid;
  background: transparent;
}
.vc-banner-icon {
  flex: 0 0 auto;
  font-size: 22px;
  line-height: 1;
  margin-top: 1px;
}
.vc-banner-body {
  flex: 1;
  min-width: 0;
}
.vc-banner-title {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1rem;
  color: var(--text);
  margin-bottom: 4px;
  letter-spacing: 0.01em;
}
.vc-banner-msg {
  color: var(--text);
  font-size: 0.88rem;
  line-height: 1.55;
}
.vc-banner-btn {
  flex: 0 0 auto;
  background: var(--warning);
  color: var(--bg);
  border: none;
  font-size: 0.85rem;
  font-weight: 700;
  min-height: 44px;
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: opacity 0.15s, transform 0.15s;
  align-self: center;
  white-space: nowrap;
}
.vc-banner-btn:hover:not(:disabled) { opacity: 0.9; transform: translateY(-1px); }
.vc-banner-link {
  display: inline-block;
  margin-top: 8px;
  color: var(--blue);
  font-weight: 600;
  text-decoration: none;
  font-size: 0.88rem;
}
.vc-banner-link:hover { text-decoration: underline; opacity: 0.9; }

.vc-banner-drift {
  background: rgba(245,158,11,0.1);
  border-color: rgba(245,158,11,0.35);
}
.vc-banner-drift .vc-banner-title { color: var(--warning); }

.vc-banner-info {
  background: rgba(20,0,255,0.06);
  border-color: rgba(20,0,255,0.25);
}
.vc-banner-info .vc-banner-title { color: var(--blue); }

.vc-banner-approved {
  background: rgba(34,197,94,0.08);
  border-color: rgba(34,197,94,0.3);
}
.vc-banner-approved .vc-banner-title { color: var(--success); }

.vc-banner-changes {
  background: rgba(239,68,68,0.08);
  border-color: rgba(239,68,68,0.3);
}
.vc-banner-changes .vc-banner-title { color: var(--danger); }

.vc-script-intro {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 20px;
  margin-bottom: 16px;
}
.vc-script-intro-label {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 6px;
}
.vc-script-intro-help {
  color: var(--text);
  font-size: 0.88rem;
  line-height: 1.55;
}

.vc-script-scout-note {
  margin-top: 14px;
  padding: 12px 14px;
  background: rgba(20,0,255,0.06);
  border-left: 3px solid var(--blue);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.vc-script-scout-note-label {
  display: block;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 4px;
}
.vc-script-scout-note-text {
  color: var(--text);
  font-size: 0.88rem;
  line-height: 1.55;
  white-space: pre-wrap;
}

.vc-upgrade-card {
  background: linear-gradient(135deg, rgba(20,0,255,0.1) 0%, rgba(20,0,255,0.04) 100%);
  border: 1px solid rgba(20,0,255,0.3);
  border-radius: var(--radius);
  padding: 28px 24px;
  text-align: center;
  margin: 20px 0;
  box-shadow: 0 8px 32px rgba(0,0,0,0.3), 0 0 0 1px rgba(20,0,255,0.08);
}
.vc-upgrade-icon {
  font-size: 36px;
  line-height: 1;
  margin-bottom: 12px;
}
.vc-upgrade-title {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1.3rem;
  color: var(--text);
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.vc-upgrade-desc {
  color: var(--text);
  font-size: 0.95rem;
  line-height: 1.6;
  max-width: 520px;
  margin: 0 auto 20px;
}
.vc-upgrade-card .ov-btn-primary {
  min-height: 44px;
  padding: 12px 28px;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  border-radius: var(--radius-sm);
  box-shadow: 0 6px 20px var(--blue-glow);
}
.vc-upgrade-card .ov-btn-primary:hover { opacity: 0.92; transform: translateY(-1px); }

.vc-submit-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 20px;
  text-align: center;
  margin: 20px 0;
}
.vc-submit-btn {
  min-height: 48px;
  padding: 14px 32px;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  border-radius: var(--radius-sm);
  box-shadow: 0 6px 20px var(--blue-glow);
  transition: opacity 0.15s, transform 0.15s, box-shadow 0.15s;
}
.vc-submit-btn:hover:not(:disabled) { opacity: 0.92; transform: translateY(-1px); }
.vc-submit-btn:disabled {
  background: var(--surface2);
  color: var(--text-muted);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.7;
}
.vc-submit-hint {
  margin-top: 10px;
  font-size: 0.82rem;
  color: var(--text-muted);
}

.vc-regen-row {
  margin-top: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  text-align: right;
}
.vc-regen-warn {
  margin-top: 8px;
  font-size: 0.8rem;
  color: var(--warning);
  text-align: right;
  line-height: 1.5;
}

@media (max-width: 600px) {
  .vc-banner              { flex-direction: column; gap: 10px; padding: 14px 16px; }
  .vc-banner-btn          { width: 100%; align-self: stretch; }
  .vc-script-intro        { padding: 14px 16px; }
  .vc-upgrade-card        { padding: 24px 18px; margin: 16px 0; }
  .vc-upgrade-title       { font-size: 1.15rem; }
  .vc-upgrade-desc        { font-size: 0.9rem; }
  .vc-upgrade-card .ov-btn-primary { width: 100%; }
  .vc-submit-card         { padding: 18px 16px; }
  .vc-submit-btn          { width: 100%; }
  .vc-regen-row           { text-align: center; }
  .vc-regen-warn          { text-align: center; }
}
@media (max-width: 375px) {
  .vc-banner              { padding: 12px 14px; }
  .vc-banner-title        { font-size: 0.95rem; }
  .vc-banner-msg          { font-size: 0.85rem; }
  .vc-upgrade-card        { padding: 20px 14px; }
  .vc-submit-card         { padding: 16px 14px; }
}

/* ══════════════════════════════════════════════════════════
   VIRTUAL COMBINE — My Profile status card (File 9 follow-up)
   Renders at top of #profileHubRoot. 6 states, 2 responsive
   breakpoints. Consumes existing CSS variables for family
   consistency with .combine-lab-card and .vc-phase-card.
   ══════════════════════════════════════════════════════════ */

/* ── Focus + reduced-motion (consolidated block) ─────────── */
.vcp-btn-primary:focus-visible,
.vcp-link-secondary:focus-visible,
.vcp-shareable-copy:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .vcp-progress-fill,
  .vcp-btn-primary,
  .vcp-shareable-copy,
  .vcp-link-secondary {
    transition: none !important;
  }
}

/* ── Base card ───────────────────────────────────────────── */
.vcp-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-left: 3px solid var(--text-muted);     /* default — overridden per state */
  border-radius: var(--radius);
  padding: 20px 22px;
  margin-bottom: 20px;
}

/* ── State accent variants ───────────────────────────────── */
.vcp-state-not-started   { border-left-color: var(--text-muted); }
.vcp-state-in-progress   { border-left-color: var(--blue); }
.vcp-state-ready-upgrade { border-left-color: var(--warning); }
.vcp-state-in-review     { border-left-color: var(--text-muted); }
.vcp-state-approved      { border-left-color: var(--success); }
.vcp-state-changes       { border-left-color: var(--warning); }

/* ── Header + title ──────────────────────────────────────── */
.vcp-header      { margin-bottom: 10px; }
.vcp-title-row   { display: flex; align-items: center; gap: 10px; }
.vcp-icon        { font-size: 1.3em; line-height: 1; flex: 0 0 auto; }
.vcp-title {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--text);
  margin: 0;
  letter-spacing: 0.01em;
  line-height: 1.25;
}

/* ── Body copy ──────────────────────────────────────────── */
.vcp-body {
  color: var(--text-muted);
  font-size: 0.9rem;
  line-height: 1.55;
  margin: 0 0 14px 0;
}

/* ── Primary button ──────────────────────────────────────── */
.vcp-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--blue);
  color: #fff;
  border: none;
  font-size: 0.9rem;
  font-weight: 700;
  min-height: 44px;
  padding: 10px 22px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: opacity 0.15s, transform 0.15s;
  letter-spacing: 0.01em;
}
.vcp-btn-primary:hover:not(:disabled) { opacity: 0.92; transform: translateY(-1px); }
.vcp-btn-primary:disabled { opacity: 0.55; cursor: not-allowed; }

/* ── Secondary text-link button (State 3) ────────────────── */
.vcp-link-secondary {
  display: inline-block;
  background: transparent;
  border: none;
  color: var(--text-muted);
  font-size: 0.85rem;
  font-weight: 600;
  padding: 8px 4px;
  margin-left: 14px;
  cursor: pointer;
  text-decoration: none;
  transition: color 0.15s;
}
.vcp-link-secondary:hover { color: var(--blue); text-decoration: underline; }

/* ── Progress bar (State 2) ──────────────────────────────── */
.vcp-progress-row   { margin-bottom: 14px; }
.vcp-progress-label { font-size: 0.85rem; color: var(--text); margin-bottom: 8px; font-weight: 500; }
.vcp-progress-track {
  width: 100%;
  height: 8px;
  background: var(--bg3);
  border-radius: 999px;
  overflow: hidden;
}
.vcp-progress-fill {
  height: 100%;
  background: var(--blue);
  border-radius: 999px;
  transition: width 0.4s ease;
}

/* ── Shareable URL row (State 5) ─────────────────────────── */
.vcp-shareable-row {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  align-items: stretch;
}
.vcp-shareable-input {
  flex: 1;
  min-width: 0;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 0.82rem;
  padding: 8px 12px;
}
.vcp-shareable-copy {
  flex: 0 0 auto;
  background: transparent;
  color: var(--blue);
  border: 1px solid var(--blue);
  font-size: 0.82rem;
  font-weight: 700;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  min-height: 36px;
  white-space: nowrap;
}
.vcp-shareable-copy:hover  { background: var(--blue); color: #fff; }
.vcp-shareable-copy:active { transform: scale(0.97); }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 600px) {
  .vcp-card              { padding: 18px 16px; margin-bottom: 16px; }
  .vcp-title             { font-size: 1.05rem; }
  .vcp-btn-primary       { width: 100%; }
  .vcp-link-secondary    { display: block; margin-left: 0; margin-top: 10px; text-align: center; }
  .vcp-shareable-row     { flex-direction: column; }
  .vcp-shareable-copy    { width: 100%; }
}
@media (max-width: 375px) {
  .vcp-card              { padding: 16px 14px; }
  .vcp-title             { font-size: 1rem; }
  .vcp-body              { font-size: 0.85rem; }
}

/* ── Public profile visibility toggles ──────────────────── */
.vis-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.vis-toggle:hover { background: var(--blue-light); }
.vis-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--blue-light);
  border-color: var(--blue);
}
.vis-toggle-visible { color: var(--accent); }
.vis-toggle-visible:hover { color: var(--blue); }
.vis-toggle-hidden { color: var(--text-muted); }
.vis-toggle-hidden:hover { color: var(--text-muted); border-color: var(--text-muted); }

/* ── Public profile visibility info banner ──────────────── */
.vis-info-banner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  margin: 16px 0;
  background: var(--blue-light);
  border: 1px solid rgba(20,0,255,0.25);
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
  line-height: 1.45;
}
.vis-info-banner-icon { flex-shrink: 0; color: var(--blue); margin-top: 2px; }
.vis-info-banner-text { flex: 1; }
.vis-info-banner-text strong { display: block; margin-bottom: 4px; color: var(--blue); }
.vis-info-banner-text span { color: var(--text-muted); }
.vis-info-banner-dismiss {
  flex-shrink: 0;
  background: transparent;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
  padding: 4px 8px;
  border-radius: var(--radius-sm);
}
.vis-info-banner-dismiss:hover { color: var(--blue); background: rgba(20,0,255,0.06); }

/* ══════════════════════════════════════════════════════════
   MY RECRUITING PLAN — Session 1 (read-only foundation)
   ══════════════════════════════════════════════════════════ */

/* Year tabs */
.recruiting-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.recruiting-tab {
  flex: 1 1 0;
  min-width: 110px;
  padding: 12px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-muted);
  font-family: var(--font-head);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.recruiting-tab:hover { color: var(--text); border-color: rgba(255,255,255,0.18); }
.recruiting-tab.active {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

/* Post-HS banner */
.recruiting-banner {
  background: var(--blue-light);
  border: 1px solid var(--blue-glow);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  margin-bottom: 16px;
  color: var(--text);
  font-size: 0.9rem;
}

/* Stage meta strip */
.recruiting-stage-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
  font-size: 0.85rem;
  color: var(--text-muted);
}
.recruiting-stage-icon { font-size: 1.05rem; }
.recruiting-stage-time {
  font-weight: 700;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.recruiting-stage-philosophy { font-style: italic; }

/* Threads */
.recruiting-thread { margin-top: 28px; }
.recruiting-thread-title {
  font-family: var(--font-head);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 4px;
}
.recruiting-thread-icon { margin-right: 6px; }

/* Cards (reuse .edge-card shell) */
.recruiting-card { margin-top: 14px; }
.recruiting-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.recruiting-card-headings { flex: 1 1 auto; min-width: 0; }
.recruiting-card-title {
  font-family: var(--font-head);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 4px;
  line-height: 1.25;
}
.recruiting-card-summary {
  font-size: 0.9rem;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.5;
}

/* Status badge — NOT STARTED is the only Session 1 state */
.recruiting-status-badge {
  flex: 0 0 auto;
  align-self: flex-start;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--bg3);
  border: 1px solid var(--border);
  color: var(--text-dim);
  font-family: var(--font-head);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

/* Completed state (Session 2) — subtle green tint, no strikethrough */
.recruiting-card.is-complete {
  background: rgba(34,197,94,0.06);
  border-color: rgba(34,197,94,0.30);
}
.recruiting-status-badge--complete {
  background: rgba(34,197,94,0.15);
  border-color: rgba(34,197,94,0.40);
  color: var(--success);
}

/* Bottom action row — always visible, separated from the card body */
.recruiting-card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.recruiting-completed-date {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--success);
}
.recruiting-mark-btn {
  font-family: var(--font-body);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: opacity 0.15s, background 0.15s, color 0.15s, border-color 0.15s;
}
.recruiting-mark-btn:disabled { opacity: 0.6; cursor: default; }
/* Primary action — Mark Complete */
.recruiting-mark-btn--complete {
  padding: 10px 20px;
  font-size: 0.9rem;
  font-weight: 700;
  background: var(--success);
  color: #06210f;
  border: none;
}
.recruiting-mark-btn--complete:hover { opacity: 0.9; }
/* Secondary/destructive — Mark Incomplete (smaller, dimmer; common path is stay-complete) */
.recruiting-mark-btn--undo {
  margin-left: auto;
  padding: 6px 12px;
  font-size: 0.78rem;
  font-weight: 600;
  background: none;
  color: var(--text-dim);
  border: 1px solid var(--border);
}
.recruiting-mark-btn--undo:hover { color: var(--danger); border-color: rgba(239,68,68,0.40); }

/* Locked state (Session 3) — tier-gated items: muted content, lock badge, upgrade CTA */
.recruiting-card.is-locked {
  background: rgba(255,255,255,0.02);
}
.recruiting-card.is-locked .recruiting-card-headings,
.recruiting-card.is-locked .recruiting-expand-btn,
.recruiting-card.is-locked .recruiting-detail {
  opacity: 0.55;
}
.recruiting-status-badge--locked {
  background: var(--bg3);
  border-color: rgba(255,255,255,0.12);
  color: var(--text-muted);
}
.recruiting-upgrade-btn {
  padding: 10px 20px;
  font-size: 0.9rem;
  font-weight: 700;
  background: var(--blue);
  color: #fff;
  border: none;
}
.recruiting-upgrade-btn:hover { opacity: 0.92; }

/* Stage progress bar (Session 4) — matches .eval-progress / .sidebar-power pattern */
.recruiting-progress {
  margin-bottom: 14px;
}
.recruiting-progress-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
}
.recruiting-progress-track {
  height: 6px;
  background: rgba(255,255,255,0.08);
  border-radius: 3px;
  overflow: hidden;
}
.recruiting-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--blue), var(--accent));
  border-radius: 3px;
  transition: width 0.35s ease;
}

/* Expand control */
.recruiting-expand-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  padding: 0;
  background: none;
  border: none;
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
}
.recruiting-expand-btn:hover { text-decoration: underline; }
.recruiting-expand-caret { font-size: 0.9rem; }

/* Expand panel */
.recruiting-detail {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.recruiting-detail-block { margin-bottom: 14px; }
.recruiting-detail-label {
  display: block;
  font-family: var(--font-head);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-dim);
  margin-bottom: 6px;
}
.recruiting-why-text {
  margin: 0;
  font-size: 0.9rem;
  color: var(--text);
  line-height: 1.6;
}
.recruiting-why-list {
  margin: 0;
  padding-left: 18px;
  font-size: 0.9rem;
  color: var(--text);
  line-height: 1.6;
}
.recruiting-why-list li { margin-bottom: 6px; }

/* D3 / special notes */
.recruiting-note {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  margin-bottom: 14px;
}
.recruiting-note-d3 { border-left-color: var(--success); }
.recruiting-note-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
}
.recruiting-note-text {
  margin: 0;
  font-size: 0.85rem;
  color: var(--text-muted);
  line-height: 1.55;
}

/* External links */
.recruiting-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}
.recruiting-link {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
}
.recruiting-link:hover { text-decoration: underline; }

/* Loading / error states */
.recruiting-loading,
.recruiting-error {
  padding: 40px 20px;
  text-align: center;
  color: var(--text-muted);
  font-size: 0.95rem;
}
.recruiting-error { color: var(--danger); }

/* Mobile touch targets (Session 4) — buttons reach the 44px tap standard.
   Placed after all recruiting rules so it wins over the base .recruiting-expand-btn. */
@media (max-width: 560px) {
  .recruiting-mark-btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .recruiting-expand-btn {
    padding: 10px 0;
  }
}

/* Onboarding welcome banner (Phase 1) — shown on the Evaluator for new athletes */
.eval-welcome-banner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--blue-light);
  border: 1px solid var(--blue-glow);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  margin-bottom: 16px;
  color: var(--text);
  font-size: 0.9rem;
}
.eval-welcome-content { flex: 1; }
.eval-welcome-title {
  font-weight: 700;
  font-size: 1rem;
  color: var(--text);
  margin-bottom: 4px;
}
.eval-welcome-sub {
  font-size: 0.85rem;
  color: var(--text-muted);
  line-height: 1.5;
}
.eval-welcome-dismiss {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 4px;
}
.eval-welcome-dismiss:hover { color: var(--text); }
