/* ============================================================
   Recruit.Football — Dashboard Stylesheet
   rf-dashboard.css  |  v1.0
   ============================================================ */

/* ── CSS Variables ──────────────────────────────────────────── */
:root {
  --rf-navy:      #09111f;
  --rf-navy2:     #0d1829;
  --rf-navy3:     #111f36;
  --rf-navy4:     #162540;
  --rf-accent:      #2b8fff;
  --rf-accent-light:     #74b5ff;
  --rf-accent-dim:  rgba(43,143,255,0.15);
  --rf-accent-dim2: rgba(43,143,255,0.08);
  --rf-white:     #ffffff;
  --rf-off:       #e8e4db;
  --rf-muted:     #a4b8d0;
  --rf-muted2:    #82a0bc;
  --rf-border:    rgba(255,255,255,0.07);
  --rf-border2:   rgba(43,143,255,0.25);
  --rf-success:   #2db87a;
  --rf-warn:      #e8922a;
  --rf-danger:    #e85040;
  --rf-sidebar-w: 220px;
  --rf-topbar-h:  56px;
  --rf-text:      #e8e4db;
  --rf-off-white: #e8e4db;
  --rf-card-bg:   #0d1829;
  --rf-surface2:  #111f36;
}

/* ── Reset ──────────────────────────────────────────────────── */
html, body {
  background:  var(--rf-navy) !important;
  color:       var(--rf-white);
  font-family: 'Barlow', sans-serif;
  font-size:   14px;
  line-height: 1.5;
  margin:      0;
  padding:     0;
  min-height:  100vh;
}
*, *::before, *::after { box-sizing: border-box; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
img { max-width: 100%; }

/* ── Topbar ─────────────────────────────────────────────────── */
.rf-topbar {
  height:          var(--rf-topbar-h);
  background:      var(--rf-navy2);
  border-bottom:   1px solid var(--rf-border);
  display:         flex;
  align-items:     center;
  padding:         0 20px 0 0;
  position:        fixed;
  top: 0; left: 0; right: 0;
  z-index:         200;
}
.rf-topbar-logo {
  width:         var(--rf-sidebar-w);
  padding:       0 20px;
  display:       flex;
  align-items:   center;
  gap:           8px;
  border-right:  1px solid var(--rf-border);
  height:        100%;
  flex-shrink:   0;
}
.rf-logo-img {
  height:      42px;
  width:       auto;
  max-width:   170px;
  display:     block;
  flex-shrink: 0;
  object-fit:  contain;
}
.rf-topbar-center {
  padding: 0 20px;
}
.rf-topbar-label {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--rf-muted);
}
.rf-topbar-right {
  margin-left: auto;
  display:     flex;
  align-items: center;
  align-items: center;
  gap:         12px;
}
.rf-topbar-user {
  display:     flex;
  align-items: center;
  gap:         10px;
}
.rf-avatar {
  width:         34px;
  height:        34px;
  border-radius: 50%;
  background:    var(--rf-navy4);
  border:        2px solid var(--rf-accent);
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-family:   'Oswald', sans-serif;
  font-size:     13px;
  font-weight:   600;
  color:         var(--rf-accent);
  overflow:      hidden;
  flex-shrink:   0;
}
.rf-avatar img { width: 100%; height: 100%; object-fit: cover; }
/* Kill any plugin-injected status bubble on the avatar */
.rf-avatar::before, .rf-avatar::after,
.rf-topbar .rf-avatar ~ *::before, .rf-topbar .rf-avatar ~ *::after { display: none !important; }
.rf-user-name {
  font-family:    'Barlow Condensed', sans-serif;
  font-weight:    600;
  font-size:      13px;
  letter-spacing: 0.05em;
  color:          var(--rf-white);
}
.rf-sub-badge {
  display:        inline-block;
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      9px;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--rf-accent);
  background:     var(--rf-accent-dim);
  border:         1px solid var(--rf-border2);
  padding:        2px 7px;
  border-radius:  3px;
}
.rf-hamburger {
  display:      none;
  background:   transparent !important;
  border:       1px solid var(--rf-border);
  border-radius:4px;
  padding:      6px 8px;
  color:        var(--rf-muted) !important;
  margin-left:  8px;
}
.rf-hamburger:hover { background: transparent !important; color: var(--rf-muted) !important; border-color: rgba(255,255,255,0.18); }
.rf-hamburger:focus-visible { outline: 2px solid var(--rf-accent); outline-offset: 2px; }


/* ── Layout ─────────────────────────────────────────────────── */
.rf-layout {
  display:     flex;
  padding-top: var(--rf-topbar-h);
  min-height:  100vh;
}
.rf-main {
  margin-left: var(--rf-sidebar-w);
  flex:        1;
  padding:     16px 28px 60px;
  min-width:   0;
}

/* ── Sidebar ────────────────────────────────────────────────── */
.rf-sidebar {
  width:      var(--rf-sidebar-w);
  background: var(--rf-navy2);
  border-right: 1px solid var(--rf-border);
  position:   fixed;
  top:        var(--rf-topbar-h);
  bottom:     0;
  left:       0;
  overflow-y: auto;
  display:    flex;
  flex-direction: column;
  padding:    20px 0;
  z-index:    150;
  transition: transform 0.22s ease;
}
.rf-nav-section-label {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--rf-muted2);
  padding:        14px 20px 6px;
}
.rf-nav-item {
  display:        flex;
  align-items:    center;
  gap:            10px;
  padding:        10px 20px;
  font-family:    'Barlow Condensed', sans-serif;
  font-weight:    600;
  font-size:      13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color:          var(--rf-muted);
  border-left:    2px solid transparent;
  transition:     all .15s;
}
.rf-nav-item:hover {
  color:      var(--rf-off);
  background: rgba(255,255,255,0.03);
}
.rf-nav-item.active {
  color:             var(--rf-accent);
  background:        var(--rf-accent-dim2);
  border-left-color: var(--rf-accent);
}
.rf-nav-icon {
  width:      16px;
  height:     16px;
  flex-shrink:0;
  opacity:    0.65;
}
.rf-nav-item.active .rf-nav-icon,
.rf-nav-item:hover  .rf-nav-icon { opacity: 1; }
.rf-nav-badge {
  margin-left:    auto;
  background:     var(--rf-accent);
  color:          var(--rf-navy);
  font-size:      9px;
  font-weight:    700;
  padding:        1px 6px;
  border-radius:  10px;
  font-family:    'Barlow Condensed', sans-serif;
}
.rf-sidebar-bottom {
  margin-top:  auto;
  padding:     16px;
  border-top:  1px solid var(--rf-border);
}

/* ── Page header ────────────────────────────────────────────── */
.rf-page-header {
  display:         flex;
  align-items:     flex-end;
  justify-content: space-between;
  margin-bottom:   24px;
  padding-bottom:  20px;
  border-bottom:   1px solid var(--rf-border);
  flex-wrap:       wrap;
  gap:             12px;
}
.rf-page-eyebrow {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.2em;
  color:          var(--rf-accent);
  text-transform: uppercase;
  margin-bottom:  4px;
}
.rf-page-title {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      28px;
  font-weight:    800;
  letter-spacing: 0.03em;
  line-height:    1;
  text-transform: uppercase;
  color:          var(--rf-white);
}
.rf-page-title em { font-style: italic; color: var(--rf-accent); }
.rf-header-meta {
  text-align: right;
}
.rf-header-season {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  letter-spacing: 0.1em;
  color:          var(--rf-muted);
  text-transform: uppercase;
  margin-bottom:  6px;
}

/* ── Grids ──────────────────────────────────────────────────── */
.rf-grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 20px; }
.rf-grid-2 { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; margin-bottom: 20px; }
.rf-grid-2b { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }

/* ── Cards ──────────────────────────────────────────────────── */
.rf-card {
  background:   var(--rf-navy2);
  border:       1px solid var(--rf-border);
  border-radius:8px;
  padding:      18px;
}
.rf-card-header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  margin-bottom:   14px;
}
.rf-card-title {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.18em;
  color:          var(--rf-muted);
  text-transform: uppercase;
}
.rf-card-link {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    600;
  letter-spacing: 0.1em;
  color:          var(--rf-accent);
  text-transform: uppercase;
}
.rf-card-link:hover { color: var(--rf-accent-light); }

/* ── Stat cards ─────────────────────────────────────────────── */
.rf-stat-card {
  background:    var(--rf-navy2);
  border:        1px solid var(--rf-border);
  border-radius: 8px;
  padding:       16px 18px;
  position:      relative;
  overflow:      hidden;
}
.rf-stat-card::before {
  content:    '';
  position:   absolute;
  top: 0; left: 0; right: 0;
  height:     2px;
  background: var(--rf-accent);
  opacity:    0.35;
}
.rf-stat-card.active::before { opacity: 1; }
.rf-stat-label {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.18em;
  color:          var(--rf-muted);
  text-transform: uppercase;
  margin-bottom:  6px;
}
.rf-stat-value {
  font-family: 'Oswald', sans-serif;
  font-size:   30px;
  font-weight: 700;
  line-height: 1;
  color:       var(--rf-white);
}
.rf-stat-value.gold { color: var(--rf-accent); }
.rf-stat-sub {
  font-family: 'Barlow Condensed', sans-serif;
  font-size:   11px;
  color:       var(--rf-muted);
  margin-top:  4px;
}
.rf-stat-delta {
  position:       absolute;
  top: 14px; right: 14px;
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  color:          var(--rf-success);
}

/* ── Action banner ──────────────────────────────────────────── */
.rf-action-banner {
  background:    var(--rf-accent-dim);
  border:        1px solid var(--rf-border2);
  border-radius: 8px;
  padding:       14px 18px;
  display:       flex;
  align-items:   center;
  gap:           14px;
  margin-bottom: 20px;
  flex-wrap:     wrap;
}
.rf-banner-icon {
  width:         36px;
  height:        36px;
  background:    var(--rf-accent);
  border-radius: 6px;
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-size:     16px;
  flex-shrink:   0;
}
.rf-banner-text { flex: 1; min-width: 0; }
.rf-banner-text h4 {
  font-family:   'Oswald', sans-serif;
  font-size:     14px;
  font-weight:   600;
  color:         var(--rf-accent);
  margin-bottom: 2px;
}
.rf-banner-text p { font-size: 11px; color: var(--rf-muted); }

/* ── Profile hero ───────────────────────────────────────────── */
.rf-profile-hero {
  background:    var(--rf-navy2);
  border:        1px solid var(--rf-border);
  border-radius: 8px;
  padding:       22px;
  margin-bottom: 20px;
  display:       flex;
  gap:           20px;
  align-items:   flex-start;
  position:      relative;
  overflow:      hidden;
}
.rf-profile-hero::after {
  content:        '';
  position:       absolute;
  top: 0; right: 0;
  width:          180px;
  height:         100%;
  background:     linear-gradient(90deg, transparent, rgba(43,143,255,0.04));
  pointer-events: none;
}
.rf-profile-photo {
  width:         72px;
  height:        72px;
  border-radius: 50%;
  background:    var(--rf-navy4);
  border:        3px solid var(--rf-accent);
  flex-shrink:   0;
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-family:   'Oswald', sans-serif;
  font-size:     24px;
  font-weight:   700;
  color:         var(--rf-accent);
  overflow:      hidden;
  position:      relative;
}
.rf-profile-photo img { width: 100%; height: 100%; object-fit: cover; }
.rf-profile-photo-badge {
  position:      absolute;
  bottom: -2px; right: -2px;
  width:         20px;
  height:        20px;
  background:    var(--rf-success);
  border-radius: 50%;
  border:        2px solid var(--rf-navy2);
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-size:     10px;
  color:         var(--rf-white);
}
.rf-profile-info { flex: 1; min-width: 0; }
.rf-profile-name {
  font-family:    'Oswald', sans-serif;
  font-size:      22px;
  font-weight:    700;
  letter-spacing: 0.03em;
  margin-bottom:  3px;
}
.rf-profile-meta {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      12px;
  color:          var(--rf-muted);
  font-weight:    500;
  letter-spacing: 0.05em;
  margin-bottom:  12px;
}
.rf-profile-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.rf-tag {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding:        3px 8px;
  border-radius:  3px;
  border:         1px solid;
}
.rf-tag-gold  { color: var(--rf-accent);    border-color: var(--rf-border2);             background: var(--rf-accent-dim2); }
.rf-tag-blue  { color: #7ab3e8;        border-color: rgba(122,179,232,0.3);       background: rgba(122,179,232,0.06); }
.rf-tag-green { color: var(--rf-success); border-color: rgba(45,184,122,0.3);        background: rgba(45,184,122,0.06); }
.rf-tag-muted { color: var(--rf-muted);   border-color: rgba(107,127,160,0.3);       background: rgba(107,127,160,0.06); }

/* Verified badge — shown on profile pages when admin has verified the athlete */
.rf-verified-badge {
  display:        inline-flex;
  align-items:    center;
  gap:            5px;
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color:          var(--rf-success);
  vertical-align: middle;
  margin-left:    8px;
  white-space:    nowrap;
}

.rf-verified-badge svg { flex-shrink: 0; }

/* ── Completeness ring ──────────────────────────────────────── */
.rf-profile-complete { flex-shrink: 0; text-align: right; }
.rf-complete-ring {
  width:    64px;
  height:   64px;
  position: relative;
  margin:   0 0 6px auto;
}
.rf-complete-ring svg { transform: rotate(-90deg); }
.rf-complete-ring circle { fill: none; }
.rf-ring-bg   { stroke: var(--rf-navy4); stroke-width: 5; }
.rf-ring-fill { stroke: var(--rf-accent);  stroke-width: 5; stroke-linecap: round; stroke-dasharray: 163; }
.rf-ring-label {
  position:        absolute;
  inset:           0;
  display:         flex;
  align-items:     center;
  justify-content: center;
  font-family:     'Oswald', sans-serif;
  font-size:       14px;
  font-weight:     700;
  color:           var(--rf-accent);
}
.rf-complete-text {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--rf-muted);
  text-align:     center;
}

/* ── Division fit bars ──────────────────────────────────────── */
.rf-fit-row { display: flex; flex-direction: column; gap: 8px; }
.rf-fit-item {
  display:     flex;
  align-items: center;
  gap:         10px;
}
.rf-fit-label {
  font-family:    'Barlow Condensed', sans-serif;
  font-weight:    700;
  font-size:      12px;
  letter-spacing: 0.06em;
  color:          var(--rf-off);
  width:          56px;
  flex-shrink:    0;
}
.rf-fit-bar-wrap {
  flex:          1;
  height:        6px;
  background:    var(--rf-navy4);
  border-radius: 3px;
  overflow:      hidden;
}
.rf-fit-bar {
  height:        100%;
  border-radius: 3px;
  transition:    width 0.5s ease;
}
.rf-fit-bar.high { background: var(--rf-accent); }
.rf-fit-bar.mid  { background: #7ab3e8; }
.rf-fit-bar.low  { background: var(--rf-muted2); }
.rf-fit-pct {
  font-family: 'Oswald', sans-serif;
  font-size:   12px;
  font-weight: 600;
  width:       36px;
  text-align:  right;
  flex-shrink: 0;
}
.rf-fit-pct.high { color: var(--rf-accent); }
.rf-fit-pct.mid  { color: #7ab3e8; }
.rf-fit-pct.low  { color: var(--rf-muted); }
.rf-fit-note {
  margin-top:    12px;
  padding-top:   12px;
  border-top:    1px solid var(--rf-border);
  font-size:     11px;
  color:         var(--rf-muted);
  line-height:   1.5;
}
.rf-fit-note strong { color: var(--rf-accent); }
.rf-fit-disclaimer {
  margin:      10px 0 0;
  font-size:   11px;
  color:       var(--rf-muted);
  font-family: 'Barlow', sans-serif;
}
.rf-fit-disclaimer em { font-style: italic; }

/* ── Fit score membership gate ───────────────────────────────── */
.rf-fit-gate-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
}
.rf-fit-gate-blur {
  filter:         blur(5px);
  user-select:    none;
  pointer-events: none;
}
.rf-fit-gate-overlay {
  position:        absolute;
  inset:           0;
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  justify-content: center;
  gap:             10px;
  background:      rgba(9,17,31,0.55);
  border-radius:   6px;
  padding:         20px;
  text-align:      center;
}
.rf-fit-gate-icon {
  display:         flex;
  align-items:     center;
  justify-content: center;
  width:           36px;
  height:          36px;
  border-radius:   50%;
  background:      rgba(201,168,76,0.15);
  color:           var(--rf-accent);
  flex-shrink:     0;
}
.rf-fit-gate-title {
  font-family:    'Oswald', sans-serif;
  font-size:      15px;
  font-weight:    600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color:          var(--rf-off);
}
.rf-fit-gate-sub {
  font-family: 'Barlow', sans-serif;
  font-size:   12px;
  color:       var(--rf-muted);
  max-width:   220px;
  line-height: 1.5;
}
.rf-fit-gate-btn {
  margin-top:  2px;
  font-size:   11px;
  padding:     6px 18px;
}

/* ── Next steps ─────────────────────────────────────────────── */
.rf-step-list { display: flex; flex-direction: column; gap: 8px; }
.rf-step-item {
  display:      flex;
  align-items:  flex-start;
  gap:          10px;
  padding:      10px 12px;
  border-radius:6px;
  border:       1px solid var(--rf-border);
  transition:   border-color .15s;
}
.rf-step-item:hover         { border-color: rgba(43,143,255,0.3); }
.rf-step-item.highlight     { border-color: rgba(43,143,255,0.35); background: var(--rf-accent-dim2); }
.rf-step-dot {
  width:         22px;
  height:        22px;
  border-radius: 50%;
  flex-shrink:   0;
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-size:     10px;
  font-family:   'Barlow Condensed', sans-serif;
  font-weight:   700;
  margin-top:    1px;
}
.rf-step-dot.done { background: rgba(45,184,122,0.15);  border: 1px solid rgba(45,184,122,0.3);  color: var(--rf-success); }
.rf-step-dot.todo { background: var(--rf-accent-dim);         border: 1px solid var(--rf-border2);        color: var(--rf-accent); }
.rf-step-dot.warn { background: rgba(232,146,42,0.15);  border: 1px solid rgba(232,146,42,0.3);  color: var(--rf-warn); }
.rf-step-body { flex: 1; min-width: 0; }
.rf-step-title { font-size: 12px; font-weight: 600; color: var(--rf-off); margin-bottom: 2px; }
.rf-step-title.gold { color: var(--rf-accent); }
.rf-step-desc  { font-size: 11px; color: var(--rf-muted); line-height: 1.3; }
.rf-step-dismiss {
  background: none;
  border: none;
  padding: 4px;
  color: var(--rf-muted);
  cursor: pointer;
  flex-shrink: 0;
  opacity: 0;
  transition: color .15s, opacity .15s;
  display: flex;
  align-items: center;
}
.rf-step-item:hover .rf-step-dismiss { opacity: 1; }
.rf-step-dismiss:hover { color: var(--rf-danger); }

/* ── Metrics grid ───────────────────────────────────────────── */
.rf-metrics-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.rf-metric-row {
  display:       flex;
  flex-direction:column;
  gap:           2px;
  padding:       10px;
  background:    var(--rf-navy3);
  border-radius: 6px;
  border:        1px solid var(--rf-border);
}
.rf-metric-key {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--rf-muted);
}
.rf-metric-val {
  font-family: 'Oswald', sans-serif;
  font-size:   18px;
  font-weight: 700;
  color:       var(--rf-white);
}
.rf-metric-val.gold    { color: var(--rf-accent); }
.rf-metric-val.success { color: var(--rf-success); }
.rf-metric-val.muted   { color: var(--rf-muted); }
.rf-metric-val.rf-metric-good,
.rf-view-val.rf-metric-good         { color: var(--rf-success); }
.rf-metric-val.rf-metric-caution,
.rf-view-val.rf-metric-caution      { color: var(--rf-warn); }
.rf-metric-val.rf-metric-needs-work,
.rf-view-val.rf-metric-needs-work   { color: var(--rf-danger); }

/* Division selector widget */
.rf-division-control {
  display:     flex;
  align-items: center;
  gap:         8px;
  margin-bottom: 10px;
}
.rf-division-label {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.14em;
  color:          var(--rf-muted);
  text-transform: uppercase;
  white-space:    nowrap;
}
.rf-division-select {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      12px;
  font-weight:    600;
  letter-spacing: 0.06em;
  background:     rgba(255,255,255,0.06);
  border:         1px solid rgba(255,255,255,0.10);
  border-radius:  4px;
  color:          var(--rf-muted);
  padding:        4px 12px;
  cursor:         pointer;
  outline:        none;
  appearance:     none;
  -webkit-appearance: none;
  min-width:      90px;
  width:          auto;
  color-scheme:   dark;
}
.rf-division-select:focus,
.rf-division-select:hover {
  border-color: rgba(43,143,255,0.35);
  color:        var(--rf-off);
  background:   rgba(255,255,255,0.08);
}

/* Athletic profile legend */
.rf-metric-legend {
  display:     flex;
  align-items: center;
  gap:         10px;
  flex-wrap:   wrap;
  margin-bottom: 8px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size:   11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.rf-metric-legend-item       { display: inline-flex; align-items: center; gap: 5px; }
.rf-metric-legend-item::before {
  content: '';
  display: inline-block;
  width:  7px;
  height: 7px;
  border-radius: 50%;
}
.rf-metric-legend-item.good::before       { background: var(--rf-success); }
.rf-metric-legend-item.caution::before    { background: var(--rf-warn); }
.rf-metric-legend-item.needs-work::before { background: var(--rf-danger); }
.rf-metric-legend-item.good       { color: var(--rf-success); }
.rf-metric-legend-item.caution    { color: var(--rf-warn); }
.rf-metric-legend-item.needs-work { color: var(--rf-danger); }
.rf-metric-legend-hint { color: var(--rf-muted2); margin-left: auto; font-weight: 400; text-transform: none; letter-spacing: 0; }

/* ── School list ────────────────────────────────────────────── */
.rf-school-list { display: flex; flex-direction: column; gap: 6px; }
.rf-school-item {
  display:       flex;
  align-items:   center;
  gap:           12px;
  padding:       10px 12px;
  background:    var(--rf-navy3);
  border-radius: 6px;
  border:        1px solid var(--rf-border);
  transition:    border-color .15s;
}
.rf-school-item:hover { border-color: rgba(43,143,255,0.3); }
.rf-school-logo {
  width:         32px;
  height:        32px;
  border-radius: 4px;
  background:    var(--rf-navy4);
  border:        1px solid var(--rf-border);
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-family:   'Oswald', sans-serif;
  font-size:     10px;
  font-weight:   700;
  color:         var(--rf-muted);
  flex-shrink:   0;
  overflow:      hidden;
}
.rf-school-logo img { width: 100%; height: 100%; object-fit: contain; }
.rf-school-info { flex: 1; min-width: 0; }
.rf-school-name {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      13px;
  font-weight:    600;
  letter-spacing: 0.04em;
  color:          var(--rf-off);
  white-space:    nowrap;
  overflow:       hidden;
  text-overflow:  ellipsis;
}
.rf-school-meta { font-size: 11px; color: var(--rf-muted); }
.rf-school-fit {
  font-family: 'Oswald', sans-serif;
  font-size:   14px;
  font-weight: 700;
  flex-shrink: 0;
}
.rf-school-fit.high { color: var(--rf-accent); }
.rf-school-fit.mid  { color: #7ab3e8; }
.rf-school-fit.low  { color: var(--rf-muted); }
.rf-school-actions { display: flex; gap: 6px; }
.rf-icon-btn {
  width:         26px;
  height:        26px;
  border:        1px solid var(--rf-border);
  background:    var(--rf-navy4);
  border-radius: 4px;
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-size:     12px;
  color:         var(--rf-muted);
  transition:    all .15s;
}
.rf-icon-btn:hover { border-color: var(--rf-accent); color: var(--rf-accent); }

/* ── Activity log ───────────────────────────────────────────── */
.rf-log-list { display: flex; flex-direction: column; }
.rf-log-item {
  display:      flex;
  align-items:  flex-start;
  gap:          10px;
  padding:      10px 0;
  border-bottom:1px solid var(--rf-border);
}
.rf-log-item:last-child { border-bottom: none; }
.rf-log-dot {
  width:         8px;
  height:        8px;
  border-radius: 50%;
  margin-top:    5px;
  flex-shrink:   0;
}
.rf-log-dot.sent   { background: #7ab3e8; }
.rf-log-dot.open   { background: var(--rf-success); }
.rf-log-dot.saved  { background: var(--rf-accent); }
.rf-log-dot.phone  { background: #7ab3e8; }
.rf-log-dot.x      { background: var(--rf-off); }
.rf-log-dot.manual { background: var(--rf-muted); }
.rf-log-body { flex: 1; min-width: 0; }
.rf-log-action { font-size: 12px; color: var(--rf-off); }
.rf-log-action strong { color: var(--rf-accent); font-weight: 600; }
.rf-log-link { color: inherit; text-decoration: none; }
.rf-log-link:hover { color: var(--rf-accent); }
.rf-log-time {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  color:          var(--rf-muted);
  margin-top:     2px;
  letter-spacing: 0.05em;
}
.rf-log-status {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      9px;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding:        2px 7px;
  border-radius:  3px;
  flex-shrink:    0;
  margin-top:     2px;
}
.rf-log-status.sent   { background: rgba(122,179,232,0.12); color: #7ab3e8; }
.rf-log-status.open   { background: rgba(45,184,122,0.12);  color: var(--rf-success); }
.rf-log-status.saved  { background: var(--rf-accent-dim2);        color: var(--rf-accent); }
.rf-log-status.phone  { background: rgba(122,179,232,0.12); color: #7ab3e8; }
.rf-log-status.x      { background: rgba(255,255,255,0.07); color: var(--rf-off); }
.rf-log-status.manual { background: rgba(107,127,160,0.10); color: var(--rf-muted); }

/* ── Buttons ────────────────────────────────────────────────── */
.rf-btn-primary {
  display:        inline-flex;
  align-items:    center;
  gap:            6px;
  background:     var(--rf-accent) !important;
  color:          var(--rf-navy) !important;
  font-family:    'Oswald', sans-serif;
  font-weight:    700;
  font-size:      12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding:        8px 16px;
  border-radius:  4px;
  border:         none;
  outline:        none;
  text-decoration: none;
  transition:     background .15s;
}
/* Gold bg -> darken on hover */
.rf-btn-primary:hover,
.rf-btn-primary:visited:hover { background: var(--rf-white) !important; color: var(--rf-navy) !important; }
.rf-btn-primary:visited { color: var(--rf-navy) !important; }
.rf-btn-primary:focus-visible { outline: 2px solid var(--rf-navy); outline-offset: 2px; }
.rf-btn-ghost {
  display:        inline-flex;
  align-items:    center;
  gap:            6px;
  background:     transparent !important;
  color:          var(--rf-accent) !important;
  font-family:    'Oswald', sans-serif;
  font-weight:    700;
  font-size:      12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding:        7px 14px;
  border-radius:  4px;
  border:         1px solid var(--rf-border2);
  outline:        none;
  text-decoration: none;
  transition:     background .15s, border-color .15s;
}
/* Dark bg -> subtle white lift on hover */
.rf-btn-ghost:hover,
.rf-btn-ghost:visited:hover { background: rgba(255,255,255,0.05) !important; color: var(--rf-accent) !important; border-color: rgba(43,143,255,0.4); }
.rf-btn-ghost:visited { color: var(--rf-accent) !important; }
.rf-btn-ghost:focus-visible { outline: 2px solid var(--rf-accent); outline-offset: 2px; }

/* ── Alerts ─────────────────────────────────────────────────── */
.rf-alert {
  padding:       12px 16px;
  border-radius: 6px;
  font-size:     13px;
  margin-bottom: 20px;
  border:        1px solid;
}
.rf-alert-success {
  background:    rgba(45,184,122,0.1);
  border-color:  rgba(45,184,122,0.35);
  color:         var(--rf-success);
}
.rf-alert-error {
  background:    rgba(232,80,64,0.1);
  border-color:  rgba(232,80,64,0.35);
  color:         #e87060;
}

/* ── Empty state ────────────────────────────────────────────── */
.rf-empty {
  text-align:  center;
  padding:     28px 16px;
  color:       var(--rf-muted2);
  font-size:   13px;
  font-family: 'Barlow Condensed', sans-serif;
  letter-spacing: 0.06em;
}

/* ── Profile edit form ──────────────────────────────────────── */
.rf-form-section {
  margin-bottom: 28px;
}
.rf-form-section-title {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--rf-muted);
  margin-bottom:  14px;
  padding-bottom: 8px;
  border-bottom:  1px solid var(--rf-border);
}
.rf-form-grid {
  display:               grid;
  grid-template-columns: repeat(2,1fr);
  gap:                   14px;
}
.rf-form-grid.cols-3 { grid-template-columns: repeat(3,1fr); }
.rf-form-grid.cols-1 { grid-template-columns: 1fr; }
.rf-field { display: flex; flex-direction: column; gap: 6px; }
.rf-field label {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--rf-muted);
}
.rf-layout .rf-field input,
.rf-layout .rf-field select,
.rf-layout .rf-field textarea {
  background:    var(--rf-navy3);
  border:        1px solid var(--rf-border);
  border-radius: 6px;
  padding:       9px 12px;
  color:         var(--rf-off);
  font-family:   'Barlow', sans-serif;
  font-size:     14px;
  outline:       none;
  width:         100%;
  transition:    border-color .15s;
  -webkit-appearance: none;
  appearance:    none;
}
.rf-layout .rf-field input:focus,
.rf-layout .rf-field select:focus,
.rf-layout .rf-field textarea:focus {
  border-color: rgba(43,143,255,0.5);
}
.rf-layout .rf-field input::placeholder { color: var(--rf-muted2); }
.rf-layout .rf-field select option,
.rf-layout .rf-field select optgroup { background: var(--rf-navy3); color: var(--rf-off); }
.rf-layout .rf-field textarea { resize: vertical; min-height: 100px; }
.rf-label-optional {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    400;
  letter-spacing: .05em;
  text-transform: uppercase;
  color:          var(--rf-muted2);
  margin-left:    6px;
}
.rf-field-hint {
  font-size:   11px;
  color:       var(--rf-muted2);
  font-family: 'Barlow Condensed', sans-serif;
}
.rf-char-counter {
  text-align: right;
  margin-top: 4px;
}
.rf-field-row {
  display: flex;
  gap:     10px;
}
.rf-field-row .rf-field { flex: 1; }
.rf-form-actions {
  display:      flex;
  align-items:  center;
  gap:          12px;
  padding-top:  20px;
  border-top:   1px solid var(--rf-border);
  margin-top:   8px;
}

/* ── Position-conditional fields ────────────────────────────── */
.rf-position-lineman,
.rf-position-qb { display: none; }
.rf-position-lineman.visible,
.rf-position-qb.visible         { display: block; }

/* ── Profile view sections ──────────────────────────────────── */
.rf-profile-section { margin-bottom: 20px; }
.rf-view-grid {
  display:               grid;
  grid-template-columns: repeat(3,1fr);
  gap:                   10px;
}
.rf-view-field {
  padding:       12px;
  background:    var(--rf-navy3);
  border-radius: 6px;
  border:        1px solid var(--rf-border);
}
.rf-view-key {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--rf-muted);
  margin-bottom:  4px;
}
.rf-view-val {
  font-family: 'Oswald', sans-serif;
  font-size:   20px;
  font-weight: 700;
  color:       var(--rf-white);
}
.rf-view-val.gold    { color: var(--rf-accent); }
.rf-view-val.success { color: var(--rf-success); }
.rf-view-val.muted   { color: var(--rf-muted); }

/* ── Film links ─────────────────────────────────────────────── */
.rf-film-links { display: flex; flex-direction: column; gap: 8px; }
.rf-film-link {
  display:       flex;
  align-items:   center;
  gap:           10px;
  padding:       10px 14px;
  background:    var(--rf-navy3);
  border:        1px solid var(--rf-border);
  border-radius: 6px;
  color:         var(--rf-accent);
  font-family:   'Barlow Condensed', sans-serif;
  font-size:     13px;
  font-weight:   600;
  letter-spacing:0.05em;
  transition:    border-color .15s;
  word-break:    break-all;
}
.rf-film-link:hover { border-color: var(--rf-border2); }

/* Responsive 16:9 embed wrapper */
.rf-video-embed {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 6px;
  background: #000;
  margin-bottom: 4px;
}
.rf-video-embed iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ── Wf annotation (dev only) ────────────────────────────────── */
.rf-wf-note {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    600;
  letter-spacing: 0.1em;
  color:          var(--rf-muted2);
  text-transform: uppercase;
  padding:        3px 7px;
  border-radius:  4px;
  border:         1px dashed var(--rf-muted2);
  display:        inline-block;
}

/* ── Public profile (coach view) ────────────────────────────── */
.rf-public-wrap {
  max-width: 720px;
  margin:    60px auto;
  padding:   0 20px 60px;
}
.rf-public-card {
  background:    var(--rf-navy2);
  border:        1px solid var(--rf-border);
  border-radius: 12px;
  overflow:      hidden;
}
.rf-public-header {
  background: linear-gradient(135deg, var(--rf-navy3), var(--rf-navy4));
  border-bottom: 1px solid var(--rf-border);
  padding:   32px;
  display:   flex;
  gap:       24px;
  align-items: flex-start;
}
.rf-public-photo {
  width:         88px;
  height:        88px;
  border-radius: 50%;
  background:    var(--rf-navy);
  border:        3px solid var(--rf-accent);
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-family:   'Oswald', sans-serif;
  font-size:     30px;
  font-weight:   700;
  color:         var(--rf-accent);
  flex-shrink:   0;
  overflow:      hidden;
}
.rf-public-photo img { width:100%; height:100%; object-fit:cover; }
.rf-public-name {
  font-family:    'Oswald', sans-serif;
  font-size:      28px;
  font-weight:    700;
  margin-bottom:  4px;
}
.rf-public-meta {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      13px;
  color:          var(--rf-muted);
  letter-spacing: 0.05em;
  margin-bottom:  10px;
}
.rf-public-body { padding: 28px 32px; }
.rf-public-section { margin-bottom: 28px; }
.rf-public-section-title {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--rf-muted);
  margin-bottom:  12px;
  padding-bottom: 8px;
  border-bottom:  1px solid var(--rf-border);
}
.rf-public-metrics {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 10px;
}
.rf-public-metric {
  padding:       12px;
  background:    var(--rf-navy3);
  border-radius: 6px;
  border:        1px solid var(--rf-border);
  text-align:    center;
}
.rf-public-metric-key {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--rf-muted);
  margin-bottom:  4px;
}
.rf-public-metric-val {
  font-family: 'Oswald', sans-serif;
  font-size:   22px;
  font-weight: 700;
  color:       var(--rf-white);
}
.rf-public-metric-val.gold { color: var(--rf-accent); }
.rf-public-statement {
  font-size:   14px;
  color:       var(--rf-off);
  line-height: 1.65;
}
.rf-public-brand {
  text-align:     center;
  padding:        20px;
  border-top:     1px solid var(--rf-border);
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      12px;
  letter-spacing: 0.1em;
  color:          var(--rf-muted2);
}
.rf-public-brand span { color: var(--rf-accent); }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .rf-sidebar {
    transform:  translateX(-100%);
    box-shadow: 4px 0 20px rgba(0,0,0,0.4);
    z-index:    300;
  }
  body.rf-sidebar-open .rf-sidebar { transform: translateX(0); }
  body.rf-sidebar-open::before {
    content:  '';
    position: fixed;
    inset:    0;
    background: rgba(0,0,0,0.5);
    z-index:  250;
  }
  .rf-main { margin-left: 0; }
  .rf-hamburger { display: flex; align-items: center; justify-content: center; }
  .rf-logo-img { height: 34px; max-width: 140px; }
  .rf-topbar-logo { border-right: none; }
  .rf-desktop-only { display: none !important; }
  .rf-grid-2  { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .rf-main { padding: 18px 16px 48px; }
  .rf-grid-3  { grid-template-columns: 1fr; }
  .rf-grid-2b { grid-template-columns: 1fr; }
  .rf-form-grid { grid-template-columns: 1fr; }
  .rf-form-grid.cols-3 { grid-template-columns: 1fr; }
  .rf-view-grid { grid-template-columns: repeat(2,1fr); }
  .rf-metrics-grid { grid-template-columns: repeat(2,1fr); }
  .rf-page-title { font-size: 22px; }
  .rf-profile-hero { flex-wrap: wrap; }
  .rf-profile-complete { order: -1; }
  .rf-public-header { flex-direction: column; align-items: center; text-align: center; }
  .rf-public-metrics { grid-template-columns: repeat(2,1fr); }
}

/* ============================================================
   School Search
   ============================================================ */

/* Searchable school combobox */
.rf-combo { position: relative; }
.rf-combo-list {
    position:   absolute;
    top:        calc(100% + 3px);
    left:       0;
    right:      0;
    background: var(--rf-navy3);
    border:     1px solid rgba(43,143,255,0.4);
    border-radius: 6px;
    max-height: 220px;
    overflow-y: auto;
    z-index:    200;
    margin:     0;
    padding:    4px 0;
    list-style: none;
}
.rf-combo-list li {
    padding:    8px 12px;
    font-size:  13px;
    color:      var(--rf-off);
    cursor:     pointer;
    outline:    none;
}
.rf-combo-list li:hover,
.rf-combo-list li:focus  { background: rgba(43,143,255,0.12); color: var(--rf-accent); }
.rf-combo-noresult       { color: var(--rf-muted) !important; cursor: default !important; background: none !important; }

.rf-search-filters { margin-bottom: 1.5rem; }

.rf-search-form-row {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

.rf-search-form-row .rf-field { flex: 1; min-width: 160px; }

.rf-field-action { flex: 0 0 auto; display: flex; align-items: flex-end; }
.rf-search-filters .rf-btn-primary {
    display: inline-flex;
    width: auto;
    padding: 9px 20px;
    font-size: 14px;
    margin-bottom: 0;
    text-align: unset;
}

.rf-search-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.rf-search-meta-bottom { margin-top: 1.5rem; margin-bottom: 0; }

.rf-results-count {
    color: var(--rf-off-white);
    opacity: 0.6;
    font-size: 0.85rem;
}

/* Pagination */
.rf-pagination {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

/* Prev / Next arrow buttons */
.rf-page-arrow {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 36px;
    padding: 0 14px;
    border-radius: 6px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--rf-accent);
    background: rgba(43,143,255,0.1);
    border: 1px solid rgba(43,143,255,0.25);
    transition: background .15s, border-color .15s;
    cursor: pointer;
}
.rf-page-arrow:hover { background: rgba(43,143,255,0.2) !important; color: var(--rf-accent) !important; border-color: rgba(43,143,255,0.5); }
.rf-page-arrow svg { flex-shrink: 0; }

.rf-page-prev { margin-right: 4px; }
.rf-page-next { margin-left: 4px; }

.rf-page-arrow-disabled {
    color: var(--rf-muted);
    background: transparent;
    border-color: rgba(255,255,255,0.08);
    cursor: default;
    pointer-events: none;
}
.rf-page-arrow-disabled:hover { background: transparent; border-color: rgba(255,255,255,0.08); }

/* Page number buttons */
.rf-page-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 6px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    color: var(--rf-off-white);
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    outline: none;
    transition: background .15s, color .15s, border-color .15s;
    cursor: pointer;
}
/* Dark bg -> subtle white lift */
.rf-page-num:hover {
    background: rgba(255,255,255,0.1) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,0.18);
}
.rf-page-num:focus-visible { outline: 2px solid var(--rf-accent); outline-offset: 2px; }
.rf-page-num-active {
    background: var(--rf-accent) !important;
    color: var(--rf-navy) !important;
    border-color: var(--rf-accent);
    cursor: default;
}
/* Gold bg -> darken on hover */
.rf-page-num-active:hover { background: #b8923c !important; color: var(--rf-navy) !important; border-color: #b8923c; }

.rf-page-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color: var(--rf-muted);
    font-size: 14px;
    letter-spacing: 0.05em;
}

/* ── Upgrade nav item ────────────────────────────────────────── */
.rf-nav-item.rf-nav-upgrade {
  color: var(--rf-accent);
  background: rgba(43,143,255,0.06);
  border-left-color: rgba(43,143,255,0.35);
}
.rf-nav-item.rf-nav-upgrade .rf-nav-icon { opacity: 1; }
.rf-nav-item.rf-nav-upgrade:hover { background: rgba(43,143,255,0.12); }
.rf-nav-item.rf-nav-upgrade.active {
  background: var(--rf-accent-dim);
  border-left-color: var(--rf-accent);
}
.rf-upgrade-badge {
  margin-left:    auto;
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      9px;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--rf-navy);
  background:     var(--rf-accent);
  padding:        2px 6px;
  border-radius:  10px;
}

/* ── Profile gate toast ──────────────────────────────────────── */
@keyframes rf-toast-drop {
  from { opacity: 0; transform: translateY(-100%); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes rf-toast-out {
  from { opacity: 1; transform: translateY(0); }
  to   { opacity: 0; transform: translateY(-100%); }
}
.rf-gate-toast {
  position:    fixed;
  top:         0;
  left:        0;
  right:       0;
  z-index:     9999;
  background:  #b91c1c;
  color:       #fff;
  padding:     14px 24px;
  display:     flex;
  align-items: center;
  justify-content: center;
  gap:         10px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size:   14px;
  font-weight: 600;
  letter-spacing: 0.05em;
  box-shadow:  0 2px 16px rgba(0,0,0,0.5);
  animation:   rf-toast-drop 0.18s ease forwards;
}
.rf-gate-toast.hiding { animation: rf-toast-out 0.18s ease forwards; }
.rf-gate-toast svg { flex-shrink: 0; }

/* ── Billing gate card ───────────────────────────────────────── */
.rf-billing-gate {
  max-width:  520px;
  text-align: center;
  padding:    48px 40px;
}
.rf-billing-gate-icon {
  width:         48px;
  height:        48px;
  margin:        0 auto 20px;
  background:    rgba(43,143,255,0.1);
  border:        1px solid rgba(43,143,255,0.25);
  border-radius: 50%;
  display:       flex;
  align-items:   center;
  justify-content: center;
  color:         var(--rf-accent);
}
.rf-billing-gate h2 {
  font-family: 'Oswald', sans-serif;
  font-size:   22px;
  font-weight: 600;
  color:       var(--rf-white);
  margin:      0 0 10px;
}
.rf-billing-gate p {
  font-size:   14px;
  color:       var(--rf-muted);
  line-height: 1.6;
  margin:      0 0 28px;
}
.rf-billing-gate-progress {
  margin:         0 auto 28px;
  max-width:      260px;
}
.rf-billing-gate-progress-label {
  display:         flex;
  justify-content: space-between;
  font-size:       12px;
  color:           var(--rf-muted);
  margin-bottom:   6px;
}
.rf-billing-gate-progress-track {
  height:        6px;
  background:    rgba(255,255,255,0.08);
  border-radius: 3px;
  overflow:      hidden;
}
.rf-billing-gate-progress-fill {
  height:        100%;
  background:    var(--rf-accent);
  border-radius: 3px;
  transition:    width 0.4s ease;
}

/* School result grid */
.rf-school-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

.rf-school-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 8px;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rf-school-card-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rf-school-logo-thumb {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    object-fit: contain;
    background: rgba(255,255,255,0.08);
    padding: 4px;
    flex-shrink: 0;
}

.rf-school-initials {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Oswald', sans-serif;
    font-size: 1rem;
    color: #fff;
    flex-shrink: 0;
}

.rf-school-name {
    font-family: 'Oswald', sans-serif;
    font-size: 1.05rem;
    color: var(--rf-off-white);
    font-weight: 500;
    line-height: 1.3;
}

.rf-school-meta {
    font-size: 0.8rem;
    color: rgba(232,228,219,0.55);
    margin-top: 2px;
}
.rf-school-meta a { color: inherit; text-decoration: none; }
.rf-school-meta a:hover { color: var(--rf-accent); }

.rf-saved-fit-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 0;
    border-top: 1px solid rgba(255,255,255,0.06);
    margin-top: 4px;
}
.rf-saved-fit-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rf-muted);
}

.rf-school-card-footer {
    margin-top: auto;
    padding-top: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.rf-school-card-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Save button */
.rf-save-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 28px;
    padding: 0 10px;
    border-radius: 4px;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.15);
    color: rgba(232,228,219,0.55);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    outline: none;
    transition: background .15s, border-color .15s, color .15s;
    white-space: nowrap;
}
/* Dark bg -> subtle white lift */
.rf-save-btn:hover {
    background: rgba(255,255,255,0.06) !important;
    border-color: rgba(255,255,255,0.28);
    color: var(--rf-off) !important;
}
.rf-save-btn.saved {
    background: rgba(43,143,255,0.15) !important;
    border-color: var(--rf-accent);
    color: var(--rf-accent) !important;
}
/* Gold-tinted bg -> darken on hover */
.rf-save-btn.saved:hover {
    background: rgba(43,143,255,0.25) !important;
    border-color: #b8923c;
    color: var(--rf-accent) !important;
}
.rf-save-btn.saved .rf-save-icon path {
    fill: var(--rf-accent);
    stroke: var(--rf-accent);
}
.rf-save-btn:focus-visible { outline: 2px solid var(--rf-accent); outline-offset: 2px; }
.rf-save-btn:disabled {
    opacity: 0.5;
    cursor: wait;
}
.rf-save-icon { flex-shrink: 0; }

.rf-division-badge {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: rgba(43,143,255,0.15);
    color: var(--rf-accent);
    padding: 2px 8px;
    border-radius: 12px;
}

.rf-website-btn {
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 10px;
    border-radius: 4px;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.15);
    color: rgba(232,228,219,0.7);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.rf-website-btn:hover {
    background: rgba(255,255,255,0.06) !important;
    border-color: rgba(255,255,255,0.28);
    color: var(--rf-off) !important;
}

/* Search responsive */
@media (max-width: 767px) {
    .rf-search-form-row { flex-direction: column; }
    .rf-field-action { width: 100%; }
    .rf-field-action .rf-btn-primary { width: 100%; }
    .rf-school-grid { grid-template-columns: 1fr; }
}

/* ── Coach directory ────────────────────────────────────────────────────────── */

.rf-coach-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }

/* Coach avatar — initials circle */
.rf-coach-avatar {
    width:          44px;
    height:         44px;
    border-radius:  50%;
    background:     rgba(43,143,255,0.15);
    border:         1px solid rgba(43,143,255,0.3);
    display:        flex;
    align-items:    center;
    justify-content: center;
    font-family:    'Oswald', sans-serif;
    font-size:      1rem;
    font-weight:    600;
    color:          var(--rf-accent);
    flex-shrink:    0;
}

.rf-coach-avatar--logo {
    background:   var(--rf-navy3);
    border-color: rgba(255,255,255,0.08);
    padding:      4px;
}
.rf-coach-avatar img {
    width:         100%;
    height:        100%;
    object-fit:    contain;
    border-radius: 50%;
    display:       block;
}

.rf-coach-name { font-size: 0.95rem; }

/* Attribute stack: division / title / state */
.rf-coach-attrs {
    display:        flex;
    flex-direction: column;
    gap:            5px;
    margin-top:     8px;
}
.rf-coach-attr {
    display:     flex;
    align-items: baseline;
    gap:         8px;
}
.rf-coach-attr-label {
    font-family:    'Barlow Condensed', sans-serif;
    font-size:      10px;
    font-weight:    700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color:          var(--rf-muted);
    min-width:      52px;
    flex-shrink:    0;
}
.rf-coach-attr-value {
    font-family: 'Barlow', sans-serif;
    font-size:   12px;
    color:       var(--rf-off);
    line-height: 1.3;
}
.rf-coach-attr-division {
    font-family: 'Barlow Condensed', sans-serif;
    font-size:   12px;
    font-weight: 600;
    color:       var(--rf-accent);
}

/* Contact buttons */
.rf-coach-contact {
    display:        flex;
    flex-direction: column;
    gap:            6px;
    margin-top:     12px;
    padding-top:    12px;
    border-top:     1px solid rgba(255,255,255,0.07);
}

.rf-contact-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             7px;
    padding:         5px 11px;
    border-radius:   4px;
    border:          1px solid rgba(255,255,255,0.10);
    background:      rgba(255,255,255,0.03);
    color:           var(--rf-off);
    font-family:     'Barlow Condensed', sans-serif;
    font-size:       12px;
    font-weight:     600;
    letter-spacing:  0.04em;
    text-decoration: none;
    transition:      border-color .15s, color .15s, background .15s;
    white-space:     nowrap;
}

.rf-contact-btn:hover {
    border-color: rgba(43,143,255,0.5);
    color:        var(--rf-accent);
    background:   rgba(43,143,255,0.06);
}

.rf-contact-btn svg { flex-shrink: 0; color: var(--rf-muted); }

/* Blurred contact gate */
.rf-coach-contact-locked {
    position: relative;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,0.07);
}

.rf-coach-contact-blurred {
    filter:        blur(5px);
    user-select:   none;
    pointer-events: none;
    margin-top:    0;
    padding-top:   0;
    border-top:    none;
}

.rf-contact-gate-overlay {
    position:       absolute;
    inset:          0;
    display:        flex;
    align-items:    center;
    justify-content: center;
    gap:            8px;
    font-family:    'Barlow Condensed', sans-serif;
    font-size:      11px;
    font-weight:    700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color:          var(--rf-muted);
}

.rf-contact-gate-link {
    color:           var(--rf-accent);
    text-decoration: none;
    border-bottom:   1px solid rgba(43,143,255,0.4);
    transition:      color .15s, border-color .15s;
}
.rf-contact-gate-link:hover {
    color:        var(--rf-accent-light);
    border-color: var(--rf-accent-light);
}

/* Page header upgrade CTA (inline pill) */
.rf-upgrade-inline-cta {
    display:        inline-flex;
    align-items:    center;
    gap:            6px;
    font-family:    'Barlow Condensed', sans-serif;
    font-size:      11px;
    font-weight:    700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color:          var(--rf-muted);
    text-decoration: none;
    border:         1px solid rgba(255,255,255,0.1);
    border-radius:  4px;
    padding:        5px 10px;
    transition:     color .15s, border-color .15s;
}
.rf-upgrade-inline-cta:hover { color: var(--rf-accent); border-color: rgba(43,143,255,0.4); }

/* Clear filters link */
.rf-clear-filters {
    font-family:    'Barlow', sans-serif;
    font-size:      12px;
    color:          var(--rf-muted);
    text-decoration: none;
    border-bottom:  1px solid rgba(107,127,160,0.4);
    transition:     color .15s;
}
.rf-clear-filters:hover { color: var(--rf-off); }

/* ── Activity Log ────────────────────────────────────────── */

/* School search + platform tabs inline row */
.rf-activity-filter-row {
    display:       flex;
    align-items:   center;
    gap:           12px;
    flex-wrap:     wrap;
    margin-bottom: 16px;
}
.rf-activity-filter-row .rf-platform-tabs {
    margin-bottom: 0;
}
.rf-activity-school-form { flex-shrink: 0; }
.rf-activity-school-wrap {
    position:    relative;
    display:     flex;
    align-items: center;
}
.rf-activity-school-icon {
    position:       absolute;
    left:           10px;
    color:          var(--rf-muted);
    pointer-events: none;
    display:        flex;
    align-items:    center;
}
.rf-activity-school-wrap .rf-activity-school-input {
    -webkit-appearance: none;
    appearance:    none;
    background:    var(--rf-navy3);
    border:        1px solid var(--rf-border);
    border-radius: 20px;
    padding:       5px 26px 5px 32px;
    color:         var(--rf-off);
    font-family:   'Barlow Condensed', sans-serif;
    font-size:     12px;
    font-weight:   600;
    letter-spacing: 0.03em;
    width:         175px;
    outline:       none;
    transition:    border-color .15s;
}
.rf-activity-school-wrap .rf-activity-school-input::placeholder { color: var(--rf-muted2); }
.rf-activity-school-wrap .rf-activity-school-input:focus { border-color: var(--rf-border2); }
.rf-activity-school-clear {
    position:    absolute;
    right:       9px;
    color:       var(--rf-muted);
    display:     flex;
    align-items: center;
    text-decoration: none;
    line-height: 1;
}
.rf-activity-school-clear:hover { color: var(--rf-off); }

/* Platform filter tabs — activity log */
.rf-platform-tabs {
    display:     flex;
    gap:         6px;
    margin-bottom: 16px;
    flex-wrap:   wrap;
}
.rf-platform-tab {
    display:        inline-block;
    padding:        5px 14px;
    border-radius:  20px;
    font-family:    'Barlow Condensed', sans-serif;
    font-size:      12px;
    font-weight:    600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    color:          var(--rf-muted);
    background:     rgba(255,255,255,0.04);
    border:         1px solid rgba(255,255,255,0.08);
    transition:     background .15s, color .15s, border-color .15s;
}
.rf-platform-tab:hover {
    color:        var(--rf-off);
    background:   rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.15);
}
.rf-platform-tab.active {
    color:        var(--rf-accent);
    background:   var(--rf-accent-dim);
    border-color: rgba(43,143,255,0.35);
}

.rf-activity-log {
    display:        flex;
    flex-direction: column;
}

.rf-activity-row {
    display:        flex;
    align-items:    flex-start;
    gap:            12px;
    padding:        14px 0;
    border-bottom:  1px solid var(--rf-border);
}
.rf-activity-row:last-child { border-bottom: none; }

.rf-activity-logo {
    flex-shrink:     0;
    width:           36px;
    height:          36px;
    border-radius:   6px;
    display:         flex;
    align-items:     center;
    justify-content: center;
    overflow:        hidden;
    margin-top:      1px;
    background:      var(--rf-surface2);
}
.rf-activity-logo img {
    width:      100%;
    height:     100%;
    object-fit: contain;
    padding:    3px;
}
.rf-activity-logo--initials {
    font-family:    'Barlow Condensed', sans-serif;
    font-size:      11px;
    font-weight:    700;
    color:          var(--rf-muted);
    letter-spacing: 0.03em;
}
.rf-activity-logo--fallback::after {
    content:        attr(data-initials);
    font-family:    'Barlow Condensed', sans-serif;
    font-size:      11px;
    font-weight:    700;
    color:          var(--rf-muted);
    letter-spacing: 0.03em;
}
.rf-activity-logo--platform {
    border-radius: 50%;
}
.rf-activity-logo.rf-platform-email  { color: var(--rf-accent);  background: var(--rf-accent-dim2); }
.rf-activity-logo.rf-platform-phone  { color: #7ab3e8;      background: rgba(122,179,232,0.10); }
.rf-activity-logo.rf-platform-x      { color: var(--rf-off);   background: rgba(255,255,255,0.07); }
.rf-activity-logo.rf-platform-manual { color: var(--rf-muted); background: rgba(107,127,160,0.10); }

.rf-activity-platform-pill {
    display:        inline-block;
    font-family:    'Barlow Condensed', sans-serif;
    font-size:      10px;
    font-weight:    600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding:        1px 6px;
    border-radius:  3px;
    vertical-align: middle;
    margin-left:    2px;
}
.rf-platform-pill-email  { color: var(--rf-accent);  background: var(--rf-accent-dim2); }
.rf-platform-pill-phone  { color: #7ab3e8;      background: rgba(122,179,232,0.10); }
.rf-platform-pill-x      { color: var(--rf-off);   background: rgba(255,255,255,0.07); }
.rf-platform-pill-manual { color: var(--rf-muted); background: rgba(107,127,160,0.10); }

.rf-activity-body {
    flex:     1;
    min-width: 0;
}

.rf-activity-title {
    font-family:  'Barlow Condensed', sans-serif;
    font-size:    14px;
    font-weight:  600;
    color:        var(--rf-off);
    white-space:  normal;
    word-break:   break-word;
}

.rf-activity-unknown { color: var(--rf-muted2); font-style: italic; font-weight: 400; }
.rf-activity-link { color: inherit; text-decoration: none; }
.rf-activity-link:hover { color: var(--rf-accent); }

.rf-activity-notes {
    margin-top: 4px;
    font-size:  12px;
    color:      var(--rf-muted);
    word-break: break-word;
}

.rf-activity-date {
    flex-shrink:    0;
    font-family:    'Barlow Condensed', sans-serif;
    font-size:      11px;
    font-weight:    600;
    letter-spacing: 0.04em;
    color:          var(--rf-muted);
    text-transform: uppercase;
    padding-top:    2px;
    white-space:    nowrap;
}

/* ── Log Outreach Modal ──────────────────────────────────── */
.rf-modal-overlay {
    position:        fixed;
    inset:           0;
    background:      rgba(0,0,0,0.65);
    z-index:         1000;
    display:         flex;
    align-items:     center;
    justify-content: center;
    padding:         20px;
}

.rf-modal {
    background:    var(--rf-navy2);
    border:        1px solid var(--rf-border);
    border-radius: 10px;
    width:         100%;
    max-width:     460px;
    max-height:    90vh;
    overflow-y:    auto;
}

.rf-modal-header {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    padding:         20px 24px 0;
}

.rf-modal-title {
    font-family:  'Oswald', sans-serif;
    font-size:    18px;
    font-weight:  500;
    color:        var(--rf-off);
    margin:       0;
    letter-spacing: 0.02em;
}

.rf-modal-close {
    background:    none;
    border:        none;
    color:         var(--rf-muted);
    padding:       4px;
    display:       flex;
    align-items:   center;
    border-radius: 4px;
    transition:    color .15s;
}
.rf-modal-close:hover { color: var(--rf-off); }

.rf-modal-body {
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rf-modal-footer {
    display:         flex;
    justify-content: flex-end;
    gap:             10px;
    padding-top:     8px;
}

.rf-modal-error {
    background:    rgba(232,80,64,0.12);
    border:        1px solid rgba(232,80,64,0.35);
    border-radius: 5px;
    padding:       10px 12px;
    font-size:     13px;
    color:         #f08878;
    margin:        0;
}

.rf-field-hint {
    font-size:   11px;
    color:       var(--rf-muted2);
    font-weight: 400;
}

/* ── Billing / Pricing ──────────────────────────────────────── */

/* Flash messages (success/cancelled after Stripe redirect) */
.rf-billing-flash {
  display:       flex;
  align-items:   center;
  gap:           10px;
  padding:       12px 16px;
  border-radius: 6px;
  font-size:     13px;
  margin-bottom: 20px;
  border:        1px solid;
}
.rf-billing-flash svg { flex-shrink: 0; }
.rf-billing-flash--rf-success {
  background: rgba(45,184,122,0.1);
  border-color: rgba(45,184,122,0.3);
  color: #2db87a;
}
.rf-billing-flash--rf-warn {
  background: rgba(232,146,42,0.1);
  border-color: rgba(232,146,42,0.3);
  color: var(--rf-warn);
}

/* Current plan summary (state C) */
.rf-billing-summary {
  display:       flex;
  flex-wrap:     wrap;
  align-items:   flex-start;
  gap:           24px;
  background:    var(--rf-navy2);
  border:        1px solid var(--rf-border2);
  border-radius: 8px;
  padding:       24px 28px;
  margin-bottom: 32px;
}
.rf-billing-summary-left { flex: 1; min-width: 180px; }
.rf-billing-summary-label {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--rf-accent);
  margin-bottom:  6px;
}
.rf-billing-summary-tier {
  font-family: 'Oswald', sans-serif;
  font-size:   32px;
  font-weight: 700;
  color:       var(--rf-white);
  line-height: 1;
  margin-bottom: 6px;
}
.rf-billing-summary-since {
  font-size: 13px;
  color:     var(--rf-muted);
}
.rf-billing-summary-right { text-align: right; }
.rf-billing-summary-stat-label {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:          var(--rf-muted);
  margin-bottom:  4px;
}
.rf-billing-summary-stat-value {
  font-family: 'Oswald', sans-serif;
  font-size:   28px;
  font-weight: 700;
  color:       var(--rf-accent);
}
.rf-billing-summary-perks {
  flex-basis:  100%;
  display:     flex;
  flex-wrap:   wrap;
  gap:         8px;
  padding-top: 16px;
  border-top:  1px solid var(--rf-border);
}
.rf-billing-perk-chip {
  display:       flex;
  flex-direction: column;
  gap:           2px;
  background:    var(--rf-navy3);
  border:        1px solid var(--rf-border);
  border-radius: 5px;
  padding:       8px 12px;
}
.rf-billing-perk-name {
  font-size:   11px;
  color:       var(--rf-muted);
  white-space: nowrap;
}
.rf-billing-perk-count {
  font-family: 'Oswald', sans-serif;
  font-size:   15px;
  font-weight: 600;
  color:       var(--rf-white);
}

/* Section headers */
.rf-billing-section-header {
  display:         flex;
  align-items:     baseline;
  justify-content: space-between;
  gap:             12px;
  margin-bottom:   14px;
}
.rf-billing-section-header > span:first-child {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      14px;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--rf-off);
}
.rf-billing-section-note {
  font-size: 12px;
  color:     var(--rf-muted2);
}

/* Pricing tier grid */
.rf-pricing-grid {
  display:               grid;
  grid-template-columns: repeat(4, 1fr);
  gap:                   14px;
  margin-bottom:         32px;
}
.rf-pricing-card {
  background:     var(--rf-navy2);
  border:         1px solid var(--rf-border);
  border-radius:  8px;
  padding:        22px 18px 20px;
  display:        flex;
  flex-direction: column;
  position:       relative;
  transition:     border-color .15s;
}
.rf-pricing-card.is-popular {
  border-color: var(--rf-accent);
  box-shadow:   0 0 0 1px var(--rf-accent);
}
.rf-pricing-card.is-current {
  border-color: var(--rf-border2);
}
.rf-pricing-card.is-owned {
  opacity: 0.5;
}
.rf-pricing-badge-row {
  height:        22px;
  margin-bottom: 14px;
}
.rf-pricing-badge {
  display:        inline-flex;
  align-items:    center;
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding:        2px 8px;
  border-radius:  3px;
}
.rf-pricing-badge--popular {
  background: var(--rf-accent-dim);
  color:      var(--rf-accent);
  border:     1px solid var(--rf-border2);
}
.rf-pricing-badge--current {
  background: rgba(255,255,255,0.06);
  color:      var(--rf-off);
  border:     1px solid var(--rf-border);
}
.rf-pricing-badge--owned {
  background: transparent;
  color:      var(--rf-muted2);
  border:     1px solid rgba(255,255,255,0.08);
}
.rf-pricing-badge--empty { visibility: hidden; }
.rf-pricing-name {
  font-family:    'Oswald', sans-serif;
  font-size:      20px;
  font-weight:    700;
  color:          var(--rf-white);
  text-transform: uppercase;
  margin-bottom:  10px;
}
.rf-pricing-price {
  font-family:   'Oswald', sans-serif;
  font-size:     34px;
  font-weight:   700;
  color:         var(--rf-accent);
  line-height:   1;
  margin-bottom: 4px;
}
.rf-pricing-price-note {
  font-family:  'Barlow', sans-serif;
  font-size:    12px;
  font-weight:  400;
  color:        var(--rf-muted);
  margin-left:  4px;
}
.rf-pricing-bnpl {
  display:       flex;
  align-items:   center;
  gap:           7px;
  margin-bottom: 14px;
}
.rf-klarna-badge-btn {
  background:  none;
  border:      none;
  padding:     0;
  margin:      0;
  cursor:      pointer;
  flex-shrink: 0;
  display:     flex;
  align-items: center;
  opacity:     0.9;
  transition:  opacity 0.15s;
}
.rf-klarna-badge-btn:hover { opacity: 1; }
.rf-klarna-badge-img {
  height: 18px;
  width:  auto;
  display: block;
}
.rf-klarna-text {
  font-size:  11px;
  color:      var(--rf-muted2);
  line-height: 1.4;
}
.rf-pricing-divider {
  border:        none;
  border-top:    1px solid var(--rf-border);
  margin:        0 0 14px;
}
.rf-pricing-features {
  list-style:    none;
  margin:        0 0 20px;
  padding:       0;
  flex:          1;
}
.rf-pricing-features li {
  font-size:   12px;
  color:       var(--rf-off);
  padding:     5px 0 5px 14px;
  border-bottom: 1px solid var(--rf-border);
  position:    relative;
  line-height: 1.4;
}
.rf-pricing-features li::before {
  content:     '';
  position:    absolute;
  left:        0;
  top:         50%;
  transform:   translateY(-50%);
  width:       5px;
  height:      5px;
  background:  var(--rf-accent);
  border-radius: 50%;
}
.rf-pricing-features li:last-child { border-bottom: none; }
.rf-pricing-cta { margin-top: auto; }
.rf-pricing-btn {
  width:       100%;
  justify-content: center;
  font-size:   11px;
  padding:     9px 12px;
}
.rf-pricing-cta-inert {
  display:     block;
  text-align:  center;
  font-family: 'Barlow Condensed', sans-serif;
  font-size:   11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:       var(--rf-muted2);
  padding:     9px 0;
}

/* Add-ons grid */
.rf-addons-grid {
  display:               grid;
  grid-template-columns: repeat(2, 1fr);
  gap:                   14px;
  margin-bottom:         32px;
}
.rf-addon-card {
  background:    var(--rf-navy2);
  border:        1px solid var(--rf-border);
  border-radius: 8px;
  padding:       22px 22px 20px;
  display:       flex;
  flex-direction: column;
}
.rf-addon-header {
  display:         flex;
  align-items:     flex-start;
  justify-content: space-between;
  gap:             12px;
  margin-bottom:   10px;
}
.rf-addon-name {
  font-family: 'Oswald', sans-serif;
  font-size:   17px;
  font-weight: 700;
  color:       var(--rf-white);
  margin-bottom: 2px;
}
.rf-addon-subtitle {
  font-size: 12px;
  color:     var(--rf-muted);
}
.rf-addon-price {
  font-family:  'Oswald', sans-serif;
  font-size:    22px;
  font-weight:  700;
  color:        var(--rf-accent);
  white-space:  nowrap;
  flex-shrink:  0;
}
.rf-addon-desc {
  font-size:     13px;
  color:         var(--rf-muted);
  line-height:   1.55;
  margin:        0 0 16px;
  flex:          1;
}
.rf-addon-cta {
  display:     flex;
  align-items: center;
  gap:         12px;
}
.rf-addon-stack-note {
  font-size: 11px;
  color:     var(--rf-muted2);
}

/* Directories grid */
.rf-directory-grid {
  display:               grid;
  grid-template-columns: repeat(4, 1fr);
  gap:                   14px;
  margin-bottom:         32px;
}
.rf-directory-card {
  background:    var(--rf-navy2);
  border:        1px solid var(--rf-border);
  border-radius: 8px;
  padding:       20px 18px 18px;
  display:       flex;
  flex-direction: column;
}
.rf-directory-card.is-owned { border-color: var(--rf-border2); }
.rf-directory-sport {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:          var(--rf-muted);
  margin-bottom:  4px;
}
.rf-directory-name {
  font-family:   'Oswald', sans-serif;
  font-size:     18px;
  font-weight:   700;
  color:         var(--rf-white);
  margin-bottom: 2px;
}
.rf-directory-count {
  font-size:     11px;
  color:         var(--rf-accent);
  margin-bottom: 10px;
}
.rf-directory-desc {
  font-size:   12px;
  color:       var(--rf-muted);
  line-height: 1.5;
  margin:      0 0 14px;
  flex:        1;
}
.rf-directory-cta {
  display:     flex;
  align-items: center;
  gap:         10px;
  margin-top:  auto;
}
.rf-directory-owned-note {
  font-size: 11px;
  color:     var(--rf-accent);
}

/* Consultation banner */
.rf-consult-banner {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             20px;
  background:      var(--rf-navy3);
  border:          1px solid var(--rf-border);
  border-radius:   8px;
  padding:         20px 24px;
  margin-bottom:   32px;
  flex-wrap:       wrap;
}
.rf-consult-banner-title {
  font-family:   'Oswald', sans-serif;
  font-size:     17px;
  font-weight:   700;
  color:         var(--rf-white);
  margin-bottom: 3px;
}
.rf-consult-banner-sub {
  font-size: 13px;
  color:     var(--rf-muted);
}

/* Responsive adjustments */
@media (max-width: 1200px) {
  .rf-pricing-grid   { grid-template-columns: repeat(2, 1fr); }
  .rf-directory-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .rf-pricing-grid   { grid-template-columns: 1fr; }
  .rf-addons-grid    { grid-template-columns: 1fr; }
  .rf-directory-grid { grid-template-columns: 1fr; }
  .rf-billing-summary { flex-direction: column; }
  .rf-billing-summary-right { text-align: left; }
  .rf-consult-banner { flex-direction: column; align-items: flex-start; }
}

.rf-required { color: var(--rf-accent); }

/* ── Perks page ─────────────────────────────────────────────── */
.rf-perks-empty {
  max-width:     480px;
  text-align:    center;
  padding:       48px 32px;
}
.rf-perks-empty-icon {
  width:          52px;
  height:         52px;
  border-radius:  50%;
  background:     var(--rf-accent-dim);
  border:         1px solid var(--rf-border2);
  display:        flex;
  align-items:    center;
  justify-content: center;
  margin:         0 auto 20px;
  color:          var(--rf-accent);
}
.rf-perks-empty h2 {
  font-family:   'Oswald', sans-serif;
  font-size:     22px;
  font-weight:   700;
  color:         var(--rf-white);
  margin:        0 0 10px;
}
.rf-perks-empty p {
  font-size:     14px;
  color:         var(--rf-muted);
  line-height:   1.6;
  margin:        0 0 24px;
}

.rf-perks-grid {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   14px;
  margin-bottom:         24px;
}
.rf-perk-card {
  background:    var(--rf-navy2);
  border:        1px solid var(--rf-border);
  border-radius: 8px;
  padding:       20px 18px 16px;
  display:       flex;
  flex-direction: column;
  gap:           10px;
  transition:    border-color .15s;
}
.rf-perk-card.is-unlimited { border-color: var(--rf-border2); }
.rf-perk-card.is-exhausted { opacity: 0.55; }

.rf-perk-kind {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--rf-muted);
  line-height:    1.3;
}
.rf-perk-remaining {
  font-family: 'Oswald', sans-serif;
  font-size:   26px;
  font-weight: 700;
  color:       var(--rf-white);
  line-height: 1;
}
.rf-perk-remaining.is-unlimited { color: var(--rf-accent); }
.rf-perk-remaining.is-exhausted { color: var(--rf-danger); }

.rf-perk-bar {
  height:        5px;
  background:    rgba(255,255,255,0.08);
  border-radius: 3px;
  overflow:      hidden;
}
.rf-perk-bar-fill {
  height:        100%;
  background:    var(--rf-accent);
  border-radius: 3px;
  transition:    width .3s;
}
.rf-perk-bar-fill.is-exhausted { background: var(--rf-danger); }

.rf-perk-usage {
  font-size: 11px;
  color:     var(--rf-muted2);
}

.rf-perks-footnote {
  font-size:   12px;
  color:       var(--rf-muted2);
  line-height: 1.6;
  margin-top:  4px;
}
.rf-perks-footnote a { color: var(--rf-accent); text-decoration: underline; }

@media (max-width: 1024px) {
  .rf-perks-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .rf-perks-grid { grid-template-columns: 1fr; }
}

/* ── Directory listing page (/dashboard/directory/) ─────────── */
.rf-directory-intro {
  font-size:     14px;
  color:         var(--rf-muted);
  line-height:   1.65;
  margin:        0 0 24px;
  max-width:     640px;
}

.rf-directory-listing {
  display:        flex;
  flex-direction: column;
  gap:            12px;
  margin-bottom:  32px;
}

.rf-dir-row {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             24px;
  background:      var(--rf-navy2);
  border:          1px solid var(--rf-border);
  border-radius:   8px;
  padding:         20px 22px;
  flex-wrap:       wrap;
}
.rf-dir-row.is-owned {
  border-color: var(--rf-border2);
}

.rf-dir-info { flex: 1; min-width: 220px; }

.rf-dir-header {
  display:     flex;
  align-items: center;
  gap:         8px;
  flex-wrap:   wrap;
  margin-bottom: 6px;
}
.rf-dir-sport {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:          var(--rf-muted);
}
.rf-dir-tags {
  font-size:      11px;
  color:          var(--rf-muted2);
  padding:        2px 7px;
  border:         1px solid var(--rf-border);
  border-radius:  3px;
  white-space:    nowrap;
}
.rf-dir-badge {
  font-family:    'Barlow Condensed', sans-serif;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--rf-accent);
  background:     rgba(43,143,255,0.12);
  padding:        2px 8px;
  border-radius:  3px;
}
.rf-dir-name {
  font-family:   'Oswald', sans-serif;
  font-size:     19px;
  font-weight:   700;
  color:         var(--rf-white);
  margin-bottom: 4px;
}
.rf-dir-desc {
  font-size:   13px;
  color:       var(--rf-muted);
  line-height: 1.55;
  margin:      0 0 6px;
}
.rf-dir-updated {
  font-size: 11px;
  color:     var(--rf-muted2);
}
.rf-dir-updated--pending {
  color:       var(--rf-accent);
  font-style:  italic;
}

.rf-dir-cta {
  display:        flex;
  flex-direction: column;
  align-items:    flex-end;
  gap:            8px;
  flex-shrink:    0;
}
.rf-dir-price {
  font-family: 'Oswald', sans-serif;
  font-size:   22px;
  font-weight: 700;
  color:       var(--rf-white);
}
.rf-dir-download-btn {
  display:     inline-flex;
  align-items: center;
  gap:         7px;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .rf-dir-row      { flex-direction: column; align-items: flex-start; }
  .rf-dir-cta      { align-items: flex-start; width: 100%; }
  .rf-dir-download-btn,
  .rf-dir-cta .rf-btn-ghost { width: 100%; justify-content: center; }
}

/* ── Consultation page (/dashboard/consultation/) ───────────── */
.rf-consult-gate {
  max-width:      480px;
  text-align:     center;
  padding:        40px 32px 36px;
}
.rf-consult-gate-icon {
  width:           52px;
  height:          52px;
  border-radius:   50%;
  background:      var(--rf-accent-dim);
  border:          1px solid var(--rf-border2);
  display:         flex;
  align-items:     center;
  justify-content: center;
  margin:          0 auto 20px;
  color:           var(--rf-accent);
}
.rf-consult-gate h2 {
  font-family:   'Oswald', sans-serif;
  font-size:     22px;
  font-weight:   700;
  color:         var(--rf-white);
  margin:        0 0 10px;
}
.rf-consult-gate p {
  font-size:     14px;
  color:         var(--rf-muted);
  line-height:   1.65;
  margin:        0 0 24px;
}

.rf-consult-gate-progress { margin-bottom: 28px; }
.rf-consult-gate-progress-label {
  display:         flex;
  justify-content: space-between;
  font-size:       12px;
  color:           var(--rf-muted);
  margin-bottom:   7px;
}
.rf-consult-gate-progress-track {
  height:        7px;
  background:    rgba(255,255,255,0.08);
  border-radius: 4px;
  overflow:      hidden;
  margin-bottom: 6px;
}
.rf-consult-gate-progress-fill {
  height:        100%;
  background:    var(--rf-accent);
  border-radius: 4px;
  transition:    width .4s;
}
.rf-consult-gate-progress-hint {
  font-size: 11px;
  color:     var(--rf-muted2);
}

.rf-consult-intro {
  font-size:   14px;
  color:       var(--rf-muted);
  line-height: 1.65;
  margin:      0 0 28px;
  max-width:   600px;
}

.rf-consult-section {
  background:    var(--rf-navy2);
  border:        1px solid var(--rf-border);
  border-radius: 8px;
  padding:       28px 28px 24px;
  margin-bottom: 18px;
}
.rf-consult-section-title {
  font-family:   'Oswald', sans-serif;
  font-size:     18px;
  font-weight:   700;
  color:         var(--rf-white);
  margin:        0 0 18px;
}

.rf-calendly-wrap .calendly-inline-widget {
  min-width: 320px;
  height:    700px;
}

.rf-consult-placeholder {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            14px;
  padding:        36px 0;
  color:          var(--rf-muted);
  text-align:     center;
}
.rf-consult-placeholder p {
  font-size:   14px;
  margin:      0;
  max-width:   320px;
  line-height: 1.6;
}

.rf-glance-section { margin-bottom: 32px; }
.rf-glance-desc {
  font-size:   13px;
  color:       var(--rf-muted);
  line-height: 1.6;
  margin:      0 0 18px;
}
.rf-glance-btn {
  display:     inline-flex;
  align-items: center;
  gap:         7px;
}
.rf-glance-waiting {
  display:     flex;
  align-items: center;
  gap:         8px;
  font-size:   14px;
  color:       var(--rf-muted);
  padding:     14px 16px;
  background:  rgba(255,255,255,0.04);
  border:      1px solid var(--rf-border);
  border-radius: 6px;
  max-width:   420px;
}

@media (max-width: 767px) {
  .rf-consult-section { padding: 20px 16px; }
  .rf-calendly-wrap .calendly-inline-widget { height: 580px; }
}

/* ── Admin: drawer header with actions ──────────────────────────────────── */
.rf-admin-drawer-header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             10px;
}
.rf-drawer-header-actions {
  display:     flex;
  align-items: center;
  gap:         8px;
  flex-shrink: 0;
}

/* ── Admin: entitlements drawer tab ─────────────────────────────────────── */
.rf-ent-list { display: flex; flex-direction: column; gap: 8px; padding: 4px 0; }
.rf-ent-row {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             12px;
  padding:         10px 12px;
  background:      rgba(255,255,255,0.04);
  border:          1px solid var(--rf-border);
  border-radius:   6px;
}
.rf-ent-info    { flex: 1; min-width: 0; }
.rf-ent-label   { font-size: 13px; font-weight: 600; color: var(--rf-text); margin-bottom: 4px; }
.rf-ent-meta    { display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; color: var(--rf-muted); }
.rf-ent-unlimited { color: var(--rf-accent); font-weight: 600; }
.rf-ent-progress  { color: var(--rf-muted); }
.rf-ent-remaining { color: var(--rf-accent); font-size: 11px; }
.rf-ent-since     { color: var(--rf-muted); }
.rf-ent-actions   { flex-shrink: 0; }

.rf-ent-history { margin-top: 16px; }
.rf-ent-history-title {
  font-size:    11px;
  font-weight:  600;
  color:        var(--rf-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding:      0 0 8px;
  border-bottom: 1px solid var(--rf-border);
  margin-bottom: 8px;
}

/* ── Admin: Services / Reviews tables ───────────────────────────────────── */
.rf-tier-badge {
  display:       inline-block;
  padding:       2px 8px;
  border-radius: 4px;
  font-size:     11px;
  font-weight:   600;
  background:    rgba(255,255,255,0.08);
  color:         var(--rf-text);
}
.rf-tier-badge.prospect   { background: rgba(100,160,255,0.15); color: #64a0ff; }
.rf-tier-badge.premier    { background: rgba(255,200,70,0.15);  color: #ffc846; }
.rf-tier-badge.playmaker  { background: rgba(255,140,60,0.15);  color: #ff8c3c; }
.rf-tier-badge.all_access { background: rgba(180,120,255,0.15); color: #b478ff; }

.rf-review-event-badge {
  display:       inline-block;
  padding:       2px 8px;
  border-radius: 4px;
  font-size:     11px;
  font-weight:   600;
  background:    rgba(255,80,80,0.15);
  color:         #ff5050;
}

/* ── Admin: Settings panel ──────────────────────────────────────────────── */
.rf-admin-settings-wrap { max-width: 600px; padding: 8px 0; }
.rf-settings-section {
  background:    var(--rf-card-bg);
  border:        1px solid var(--rf-border);
  border-radius: 8px;
  padding:       20px 24px;
  margin-bottom: 16px;
}
.rf-settings-heading {
  font-size:     13px;
  font-weight:   700;
  color:         var(--rf-accent);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin:        0 0 16px;
}
.rf-settings-field { margin-bottom: 16px; }
.rf-settings-field:last-child { margin-bottom: 0; }
.rf-settings-label {
  display:       block;
  font-size:     12px;
  font-weight:   600;
  color:         var(--rf-muted);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.rf-settings-input {
  width:         100%;
  padding:       9px 12px;
  background:    rgba(255,255,255,0.06);
  border:        1px solid var(--rf-border);
  border-radius: 6px;
  color:         var(--rf-text);
  font-size:     14px;
  box-sizing:    border-box;
}
.rf-settings-input:focus {
  outline: none;
  border-color: var(--rf-accent);
}
.rf-settings-hint {
  font-size:   11px;
  color:       var(--rf-muted);
  margin-top:  5px;
}
.rf-settings-actions {
  display:     flex;
  align-items: center;
  gap:         12px;
  padding-top: 4px;
}
.rf-settings-msg {
  font-size:   13px;
  color:       var(--rf-muted);
}
.rf-settings-msg.success { color: #4caf82; }
.rf-settings-msg.error   { color: #f05252; }

.rf-stripe-badge {
  display:       inline-block;
  padding:       4px 10px;
  border-radius: 4px;
  font-size:     12px;
  font-weight:   600;
}
.rf-stripe-badge.live          { background: rgba(76,175,130,0.15); color: #4caf82; }
.rf-stripe-badge.test          { background: rgba(255,200,70,0.15);  color: #ffc846; }
.rf-stripe-badge.unconfigured  { background: rgba(255,82,82,0.15);   color: #f05252; }

/* ── Admin: Modals ──────────────────────────────────────────────────────── */
.rf-modal {
  display:  none;
  position: fixed;
  inset:    0;
  z-index:  1100;
  align-items:     center;
  justify-content: center;
}
.rf-modal.is-open { display: flex; }

.rf-modal-backdrop {
  position:   absolute;
  inset:      0;
  background: rgba(0,0,0,0.6);
  cursor:     pointer;
}

.rf-modal-dialog {
  position:      relative;
  background:    var(--rf-card-bg);
  border:        1px solid var(--rf-border);
  border-radius: 10px;
  width:         100%;
  max-width:     480px;
  margin:        16px;
  box-shadow:    0 20px 60px rgba(0,0,0,0.5);
}

.rf-modal-header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         16px 20px;
  border-bottom:   1px solid var(--rf-border);
}
.rf-modal-title {
  font-size:   15px;
  font-weight: 700;
  color:       var(--rf-text);
}
.rf-modal-close-btn {
  background: none;
  border:     none;
  color:      var(--rf-muted);
  font-size:  20px;
  line-height: 1;
  cursor:     pointer;
  padding:    0 4px;
}
.rf-modal-close-btn:hover { color: var(--rf-text); }

.rf-modal-body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.rf-modal-field { display: flex; flex-direction: column; gap: 5px; }
.rf-modal-label {
  font-size:     12px;
  font-weight:   600;
  color:         var(--rf-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.rf-modal-value-text { font-size: 14px; color: var(--rf-text); font-weight: 500; }
.rf-modal-hint       { font-size: 11px; color: var(--rf-muted); margin-top: 3px; }

.rf-modal-textarea,
.rf-modal-input,
.rf-modal-select {
  padding:       9px 12px;
  background:    rgba(255,255,255,0.06);
  border:        1px solid var(--rf-border);
  border-radius: 6px;
  color:         var(--rf-text);
  font-size:     14px;
  width:         100%;
  box-sizing:    border-box;
}
.rf-modal-textarea  { resize: vertical; min-height: 72px; font-family: inherit; }
.rf-modal-select    { appearance: auto; }
.rf-modal-textarea:focus,
.rf-modal-input:focus,
.rf-modal-select:focus {
  outline:      none;
  border-color: var(--rf-accent);
}

.rf-modal-footer {
  display:         flex;
  align-items:     center;
  justify-content: flex-end;
  gap:             10px;
  padding:         14px 20px;
  border-top:      1px solid var(--rf-border);
}

@media (max-width: 767px) {
  .rf-modal-dialog { max-width: 100%; margin: 0; border-radius: 10px 10px 0 0; position: absolute; bottom: 0; }
  .rf-modal-footer { flex-direction: column-reverse; }
  .rf-modal-footer button { width: 100%; justify-content: center; }
}
