/* ==========================================================================
   PROGRAMA DE AFILIADOS — a página do site (/affiliates) e a área do afiliado
   no painel (/affiliates, /affiliates/marketing, /affiliates/finance).
   Só tokens do tema: nada aqui escolhe cor própria para o claro ou o escuro.
   ========================================================================== */

/* ------------------------------------------------------------------ site */
.ps-aff-free{ display:flex; align-items:center; gap:.5rem; margin:1rem 0 0; font-size:.9rem; color:var(--ps-ink-3); }
.ps-aff-free svg{ width:16px; height:16px; flex:none; color:var(--ps-in); }

.ps-aff-net .ps-mock-head{ margin-bottom:.1rem; }
.ps-aff-net .ps-mock-txt b{ font-weight:600; }
.ps-aff-ava{ width:32px; height:32px; flex:none; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  font:600 .82rem/1 var(--ps-font-display); background:var(--ps-bg-2); color:var(--ps-ink); border:1px solid var(--ps-border); }
.ps-aff-ava.is-you{ background:var(--ps-navy); color:#fff; border-color:transparent; box-shadow:0 0 0 3px rgba(var(--ps-accent-rgb),.55); }
[data-bs-theme="dark"] .ps-aff-ava.is-you{ background:var(--ps-accent); color:#111117; box-shadow:0 0 0 3px rgba(var(--ps-accent-rgb),.25); }
.ps-aff-l2{ padding-left:1.4rem !important; position:relative; }
.ps-aff-l2::before{ content:''; position:absolute; left:.55rem; top:0; bottom:50%; width:.6rem;
  border-left:1px solid var(--ps-border-strong); border-bottom:1px solid var(--ps-border-strong); border-bottom-left-radius:6px; }
.ps-aff-pix{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; margin-top:.8rem; padding-top:.75rem;
  border-top:1px solid var(--ps-border); }

.ps-aff-steps{ list-style:none; counter-reset:affs; margin:0; padding:0; display:grid; gap:0 2rem; grid-template-columns:1fr;
  border-top:1px solid var(--ps-ink); }
@media (min-width:768px){ .ps-aff-steps{ grid-template-columns:repeat(2, 1fr); } }
@media (min-width:1200px){ .ps-aff-steps{ grid-template-columns:repeat(4, 1fr); } }
.ps-aff-steps li{ counter-increment:affs; padding:1.4rem 0; border-bottom:1px solid var(--ps-border); }
@media (min-width:1200px){ .ps-aff-steps li{ border-bottom:0; } }
.ps-aff-steps li::before{ content:counter(affs, decimal-leading-zero); display:block; margin-bottom:.8rem;
  font:600 .82rem/1 var(--ps-font-display); letter-spacing:.06em; color:var(--ps-accent-deep); }
[data-bs-theme="dark"] .ps-aff-steps li::before{ color:var(--ps-accent); }
.ps-aff-steps h3{ font-size:1.1rem; font-weight:600; letter-spacing:-.015em; margin:0 0 .45rem; }
.ps-aff-steps p{ margin:0; color:var(--ps-ink-2); line-height:1.65; font-size:.95rem; }

.ps-aff-calc{ background:var(--ps-surface); border:1px solid var(--ps-border); border-radius:var(--ps-r-lg);
  padding:clamp(1.2rem, 3vw, 1.8rem); box-shadow:var(--ps-shadow); }
.ps-aff-calc-in{ display:grid; gap:1.1rem; }
.ps-aff-field{ display:block; margin:0; }
.ps-aff-field-k{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin-bottom:.45rem;
  font-size:.88rem; font-weight:500; color:var(--ps-ink-2); }
.ps-aff-field-k output{ font:600 1rem/1 var(--ps-font-display); color:var(--ps-ink); font-variant-numeric:tabular-nums; }
/* O controle deslizante do Bootstrap vem azul: aqui ele segue o tema. */
.ps-aff-calc .form-range::-webkit-slider-thumb{ background:var(--ps-mid); }
.ps-aff-calc .form-range::-webkit-slider-thumb:active{ background:var(--ps-mid); filter:brightness(1.15); }
.ps-aff-calc .form-range::-moz-range-thumb{ background:var(--ps-mid); }
.ps-aff-calc .form-range::-moz-range-thumb:active{ background:var(--ps-mid); }
.ps-aff-calc .form-range::-webkit-slider-runnable-track{ background:var(--ps-border); }
.ps-aff-calc .form-range::-moz-range-track{ background:var(--ps-border); }
.ps-aff-calc .form-range:focus::-webkit-slider-thumb{ box-shadow:0 0 0 2px var(--ps-surface), 0 0 0 5px rgba(var(--ps-accent-rgb),.45); }
.ps-aff-calc .form-range:focus::-moz-range-thumb{ box-shadow:0 0 0 2px var(--ps-surface), 0 0 0 5px rgba(var(--ps-accent-rgb),.45); }
.ps-aff-calc .ps-input{ max-width:14rem; font-variant-numeric:tabular-nums; }
.ps-aff-calc-out{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.4rem; padding-top:1.2rem; border-top:1px solid var(--ps-border); }
.ps-aff-calc-k{ margin:0 0 .3rem; font-size:.78rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--ps-ink-3); }
.ps-aff-calc-v{ margin:0; font:600 clamp(1.5rem, 3.4vw, 2.1rem)/1.1 var(--ps-font-display); letter-spacing:-.03em; color:var(--ps-ink);
  font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.ps-aff-calc-v.is-soft{ color:var(--ps-ink-2); }
.ps-aff-calc-note{ margin:1rem 0 0; font-size:.8rem; line-height:1.55; color:var(--ps-ink-3); }

.ps-aff-big{ margin:0 0 .6rem; font:600 clamp(2.2rem, 5vw, 3rem)/1 var(--ps-font-display); letter-spacing:-.04em; color:var(--ps-ink); }
.ps-aff-out svg{ color:var(--ps-ink-3); }

/* ----------------------------------------------------------------- painel */
.ps-af-money{ font-size:clamp(1.15rem, 2.2vw, 1.45rem); overflow-wrap:anywhere; }
.ps-af-link .ps-segredo{ margin-bottom:.6rem; }
.ps-af-steps{ margin:0 0 .9rem; padding-left:1.2rem; display:grid; gap:.45rem; color:var(--ps-ink-2); line-height:1.55; font-size:.92rem; }
.ps-af-steps li::marker{ color:var(--ps-ink-3); font-weight:600; }
.ps-af-text{ margin:0 0 .8rem; padding:.85rem 1rem; border-radius:var(--ps-r); background:var(--ps-surface-2);
  border:1px dashed var(--ps-border-strong); color:var(--ps-ink-2); font-size:.92rem; line-height:1.6; white-space:pre-line; }
.ps-af-qr{ display:block; margin:.4rem auto .8rem; width:220px; max-width:100%; height:auto; border-radius:var(--ps-r);
  border:1px solid var(--ps-border); background:#fff; padding:6px; }

/* ------------------------------------------------------------------ admin */
.ps-input-suffix{ position:relative; display:flex; align-items:center; }
.ps-input-suffix .ps-input{ padding-right:2.2rem; }
.ps-input-suffix > span{ position:absolute; right:.85rem; color:var(--ps-ink-3); font-size:.9rem; pointer-events:none; }
