/* Affiliate programme pages under /affiliates. Colours come from the --fxmd-* tokens only. */
.aff-kicker {
  font-family: var(--fxmd-font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fxmd-mint);
}
.aff-title { color: var(--fxmd-text-strong); }
.aff-body { color: var(--fxmd-text); }
.aff-muted { color: var(--fxmd-text-muted); }
.aff-panel {
  background: var(--fxmd-surface);
  border: 1px solid var(--fxmd-border);
  box-shadow: var(--fxmd-panel-shadow);
  border-radius: 1.25rem;
}
.aff-cta,
.aff-cta:hover,
.aff-cta:visited,
.aff-cta:focus-visible {
  background: var(--fxmd-cta-gradient);
  color: var(--fxmd-cta-ink) !important;
  -webkit-text-fill-color: var(--fxmd-cta-ink) !important;
  text-shadow: none !important;
  border: 0;
  cursor: pointer;
}
.aff-cta:hover { filter: brightness(1.08); }
.aff-stat-value {
  font-family: var(--fxmd-font-mono);
  color: var(--fxmd-cyan);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.1;
}
.aff-step-number {
  font-family: var(--fxmd-font-mono);
  color: var(--fxmd-cyan);
  border: 1px solid var(--fxmd-cyan);
  border-radius: var(--fxmd-radius-pill);
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
}
.aff-code {
  font-family: var(--fxmd-font-mono);
  color: var(--fxmd-mint);
  background: var(--fxmd-terminal-bg);
  border: 1px solid var(--fxmd-border);
  border-radius: var(--fxmd-radius);
  padding: 0.125rem 0.5rem;
  word-break: break-all;
}
.aff-terms li { border-bottom: 1px solid var(--fxmd-border); }
.aff-terms li:last-child { border-bottom: 0; }
.aff-field {
  width: 100%;
  border: 1px solid var(--fxmd-border);
  border-radius: 0.75rem;
  background: var(--fxmd-terminal-bg);
  color: var(--fxmd-text-strong);
  padding: 0.75rem 0.875rem;
}
.aff-field:focus-visible {
  border-color: var(--fxmd-focus-border);
  box-shadow: 0 0 0 3px var(--fxmd-focus-border);
}
.aff-secondary {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--fxmd-cyan);
  border-radius: 0.75rem;
  background: var(--fxmd-surface);
  color: var(--fxmd-text-strong);
  padding: 0.75rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
}
.aff-secondary:hover { color: var(--fxmd-cyan); }
.aff-hidden-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.aff-status-ok { color: var(--fxmd-mint); }
.aff-status-error { color: var(--fxmd-magenta); }

/* Affiliate dashboard */
.affd-kicker {
  font-family: var(--fxmd-font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fxmd-mint);
}
.affd-title { color: var(--fxmd-text-strong); }
.affd-body { color: var(--fxmd-text); }
.affd-muted { color: var(--fxmd-text-muted); }
.affd-panel {
  background: var(--fxmd-surface);
  border: 1px solid var(--fxmd-border);
  box-shadow: var(--fxmd-panel-shadow);
  border-radius: 1.25rem;
}
.affd-cta,
.affd-cta:hover,
.affd-cta:visited,
.affd-cta:focus-visible {
  background: var(--fxmd-cta-gradient);
  color: var(--fxmd-cta-ink) !important;
  -webkit-text-fill-color: var(--fxmd-cta-ink) !important;
  text-shadow: none !important;
  border: 0;
  cursor: pointer;
}
.affd-cta:hover { filter: brightness(1.08); }
.affd-value {
  font-family: var(--fxmd-font-mono);
  color: var(--fxmd-cyan);
  font-size: 1.75rem;
  font-weight: 600;
}
.affd-link {
  font-family: var(--fxmd-font-mono);
  color: var(--fxmd-mint);
  background: var(--fxmd-terminal-bg);
  border: 1px solid var(--fxmd-border);
  border-radius: var(--fxmd-radius);
  padding: 0.625rem 0.75rem;
  word-break: break-all;
}
.affd-secondary {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--fxmd-cyan);
  border-radius: 0.75rem;
  background: var(--fxmd-surface);
  color: var(--fxmd-text-strong);
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
}
.affd-table { width: 100%; border-collapse: collapse; }
.affd-table th {
  text-align: left;
  font-family: var(--fxmd-font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fxmd-text-muted);
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--fxmd-border);
}
.affd-table td {
  padding: 0.625rem 0.75rem;
  border-bottom: 1px solid var(--fxmd-border);
  color: var(--fxmd-text);
  font-size: 0.875rem;
}
.affd-table td.affd-num { font-family: var(--fxmd-font-mono); color: var(--fxmd-text-strong); }
.affd-hidden { display: none; }

/* Join, agreement, kit and dashboard additions */
.aff-page { max-width: 56rem; margin: 0 auto; }
.aff-hint { font-size: 0.8rem; color: var(--fxmd-text-muted); font-weight: 400; }
.aff-check { display: flex; gap: 0.75rem; align-items: flex-start; }
.aff-check input { margin-top: 0.25rem; width: 1.1rem; height: 1.1rem; accent-color: var(--fxmd-cyan); flex: none; }
.aff-agreement h2 { color: var(--fxmd-text-strong); font-size: 1.15rem; font-weight: 700; margin-top: 1.75rem; }
.aff-agreement h2:first-child { margin-top: 0; }
.aff-agreement ol { margin-top: 0.75rem; padding-left: 1.25rem; list-style: decimal; }
.aff-agreement li { color: var(--fxmd-text); line-height: 1.7; margin-top: 0.4rem; font-size: 0.925rem; }
.aff-scroll { max-height: 22rem; overflow-y: auto; padding-right: 0.5rem; }
.aff-copy-block {
  white-space: pre-wrap;
  font-family: var(--fxmd-font-mono);
  font-size: 0.825rem;
  line-height: 1.6;
  color: var(--fxmd-text-strong);
  background: var(--fxmd-terminal-bg);
  border: 1px solid var(--fxmd-border);
  border-radius: var(--fxmd-radius);
  padding: 0.875rem 1rem;
  word-break: break-word;
}
.aff-asset-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); }
.aff-asset {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  padding: 1rem;
  border: 1px solid var(--fxmd-border);
  border-radius: var(--fxmd-radius);
  background: var(--fxmd-terminal-bg);
  color: var(--fxmd-text);
  text-decoration: none;
  font-size: 0.875rem;
}
.aff-asset:hover, .aff-asset:focus-visible { border-color: var(--fxmd-focus-border); color: var(--fxmd-text-strong); }
.aff-asset-thumb { height: 6.5rem; display: flex; align-items: center; justify-content: center; }
.aff-asset-thumb img { max-height: 100%; max-width: 100%; object-fit: contain; }
.aff-asset-video img { width: 100%; height: 100%; object-fit: cover; border-radius: calc(var(--fxmd-radius) - 2px); }
.aff-list li { position: relative; padding-left: 1.25rem; }
.aff-list li::before { content: "›"; position: absolute; left: 0; color: var(--fxmd-cyan); font-family: var(--fxmd-font-mono); }
.aff-list-warn li::before { content: "×"; color: var(--fxmd-magenta); }
.aff-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border: 1px solid var(--fxmd-border);
  border-radius: var(--fxmd-radius-pill);
  padding: 0.125rem 0.625rem;
  font-family: var(--fxmd-font-mono);
  font-size: 0.72rem;
  color: var(--fxmd-text-muted);
}
.aff-pill-ok { border-color: var(--fxmd-mint-tint); color: var(--fxmd-chip-live-ink); }
.aff-pill-warn { color: var(--fxmd-magenta); }
.affd-checks li { display: flex; gap: 0.5rem; font-size: 0.875rem; color: var(--fxmd-text); margin-top: 0.375rem; }
.affd-checks .ok { color: var(--fxmd-mint); }
.affd-checks .fail { color: var(--fxmd-magenta); }
.affd-banner {
  border: 1px solid var(--fxmd-focus-border);
  border-radius: 1rem;
  background: var(--fxmd-cyan-tint);
  padding: 1rem 1.25rem;
}
.aff-copy-block.aff-prose-block { white-space: normal; font-family: inherit; }
