/* AFFILIATE · GLOBAL CORTEX — visível a todos os planos */
body.view-affiliate-active #clocks-row,
body.view-affiliate-active #gov-bar,
body.view-affiliate-active #gov-ticker {
  display: none !important;
}

body.view-affiliate-active #header {
  max-height: var(--tabnav-h);
  overflow: hidden;
}

body.view-affiliate-active #left,
body.view-affiliate-active #right,
body.view-affiliate-active #left-resize-handle,
body.view-affiliate-active #right-resize-handle {
  display: none !important;
}

body.view-affiliate-active #app {
  top: var(--tabnav-h) !important;
  bottom: var(--bottom-h) !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

body.view-affiliate-active #center {
  grid-column: 1 !important;
  min-width: 0;
  position: relative;
}

body.view-affiliate-active #center > *:not(#view-affiliate) {
  display: none !important;
}

#view-affiliate {
  position: fixed;
  top: var(--tabnav-h);
  left: 0;
  right: 0;
  bottom: var(--bottom-h);
  display: none;
  flex-direction: column;
  background: var(--inst-bg, #000);
  font-family: var(--inst-mono, var(--font-bloomberg, monospace));
  font-weight: var(--inst-fw-data, 500);
  z-index: 220;
  overflow: hidden;
  --aff-cyan: var(--inst-cyan, #00a8cc);
  --aff-border: var(--inst-border-dim, rgba(255, 255, 255, 0.06));
  --aff-panel: var(--inst-panel, #05070a);
  --aff-surface: var(--inst-surface, #080b0f);
  --aff-text: var(--inst-text, #d4dce4);
  --aff-dim: var(--inst-text-dim, #6a7884);
  --aff-faint: var(--inst-text-faint, #454f58);
  --aff-ok: var(--inst-green, #67E6C9);
  --aff-warn: var(--inst-amber-hot, #c8923a);
  --aff-fs-title: 20px;
  --aff-fs-body: 17px;
  --aff-fs-micro: 15px;
  --aff-zoom: 1.3;
}

#view-affiliate.active {
  display: flex !important;
}

.aff-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 52px;
  padding: 10px 20px;
  border-bottom: 1px solid var(--aff-border);
  background: var(--aff-panel);
  flex-shrink: 0;
  position: relative;
  z-index: 5;
}

.aff-top-title {
  font-family: var(--font-bloomberg, var(--inst-mono, monospace));
  font-size: 30px;
  font-weight: 600;
  letter-spacing: var(--inst-ls-tab, 0.12em);
  text-transform: uppercase;
  color: var(--aff-cyan);
  line-height: 1.2;
}

.aff-top-pill {
  font-family: var(--font-bloomberg, var(--inst-mono, monospace));
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--aff-dim);
  border: 1px solid var(--aff-border);
  padding: 6px 12px;
}

.aff-top-pill.ok { color: var(--aff-ok); border-color: rgba(116, 222, 198, 0.3); }

.aff-top-cta {
  appearance: none;
  border: 1px solid rgba(224, 138, 46, 0.65);
  background: transparent;
  color: #e08a2e;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  padding: 8px 16px;
  cursor: pointer;
}
.aff-top-cta:hover { background: rgba(224, 138, 46, 0.12); }

.aff-top-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.aff-shell {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.aff-subtabs {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  padding: 0 16px;
  border-bottom: 1px solid var(--aff-border);
  background: var(--aff-panel);
  flex-shrink: 0;
  position: relative;
  z-index: 5;
}

.aff-subtab {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--aff-dim);
  font-family: inherit;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: var(--inst-ls-tab, 0.12em);
  text-transform: uppercase;
  padding: 20px 24px;
  cursor: pointer;
}

.aff-subtab:hover { color: var(--aff-text); }
.aff-subtab.active {
  color: var(--aff-cyan);
  border-bottom-color: var(--aff-cyan);
}

.aff-main {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 14px 16px 24px;
  zoom: 1.75;
}

.aff-main--land,
.aff-main--dash,
.aff-main--ledger {
  zoom: 1.28;
  max-width: none;
  padding: 0;
}

.aff-main--dash {
  zoom: 1.45;
}

.aff-main--ledger {
  zoom: 1.65;
}

.aff-page {
  max-width: none;
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
}

.aff-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
}

.aff-field-full { grid-column: 1 / -1; }

.aff-section {
  grid-column: 1 / -1;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--aff-cyan);
  padding: 8px 0 4px;
  border-bottom: 1px solid rgba(0, 168, 204, 0.15);
  margin-top: 6px;
}

.aff-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.aff-label {
  font-size: 15px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--aff-dim);
}

.aff-input,
.aff-select,
.aff-textarea {
  appearance: none;
  background: var(--aff-surface);
  border: 1px solid var(--aff-border);
  color: var(--aff-text);
  font-family: inherit;
  font-size: 18px;
  padding: 12px 14px;
}

.aff-textarea { min-height: 72px; resize: vertical; }

.aff-input:focus,
.aff-select:focus,
.aff-textarea:focus {
  outline: none;
  border-color: var(--aff-cyan);
}

.aff-btn {
  appearance: none;
  border: 1px solid var(--aff-border);
  background: transparent;
  color: var(--aff-text);
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 12px 18px;
  cursor: pointer;
}

.aff-btn:hover { border-color: var(--aff-cyan); color: var(--aff-cyan); }

.aff-btn-primary {
  background: rgba(0, 168, 204, 0.12);
  border-color: rgba(0, 168, 204, 0.35);
  color: var(--aff-cyan);
}

.aff-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.aff-rules {
  border: 1px solid var(--aff-border);
  background: rgba(0, 168, 204, 0.04);
  padding: 14px 16px;
  margin-bottom: 16px;
}

.aff-rules h3 {
  margin: 0 0 10px;
  font-family: var(--font-bloomberg, var(--inst-mono, monospace));
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--aff-cyan);
}

.aff-rules ul {
  margin: 0;
  padding-left: 18px;
  color: var(--aff-text);
  font-size: 10px;
  line-height: 1.55;
}

.aff-rules li { margin-bottom: 8px; }

.aff-rules strong { color: var(--aff-ok); }

.aff-note {
  font-size: 14px;
  color: var(--aff-dim);
  line-height: 1.55;
  margin-top: 10px;
}

.aff-note-warn {
  border-left: 2px solid var(--aff-warn);
  padding-left: 10px;
  color: var(--aff-warn);
}

.aff-kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.aff-kpi {
  border: 1px solid var(--aff-border);
  padding: 12px;
  background: rgba(255, 255, 255, 0.02);
}

.aff-kpi-lbl {
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--aff-dim);
}

.aff-kpi-val {
  font-size: 20px;
  font-weight: 600;
  color: var(--aff-cyan);
  margin-top: 4px;
}

.aff-kpi-val.ok { color: var(--aff-ok); }

.aff-table-wrap { overflow: auto; border: 1px solid var(--aff-border); }

.aff-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 18px;
}

.aff-table th,
.aff-table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--aff-border);
  text-align: left;
}

.aff-table th {
  color: var(--aff-dim);
  font-size: 15px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.aff-tag {
  display: inline-block;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 5px 9px;
  border-radius: 2px;
}

.aff-tag--ok { color: var(--aff-ok); background: rgba(116, 222, 198, 0.12); }
.aff-tag--pend { color: var(--aff-warn); background: rgba(200, 146, 58, 0.12); }
.aff-tag--warn { color: #e07070; background: rgba(200, 80, 80, 0.12); }
.aff-tag--method { color: #8ec5ff; background: rgba(80, 140, 255, 0.12); }

.aff-link-box {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.aff-link-box .aff-input { flex: 1; min-width: 200px; }

.aff-tier {
  border: 1px solid rgba(116, 222, 198, 0.25);
  background: rgba(116, 222, 198, 0.06);
  padding: 10px 12px;
  margin-bottom: 14px;
  font-size: 10px;
  line-height: 1.55;
}

.aff-check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
  color: var(--aff-text);
  line-height: 1.55;
}

.aff-check input { margin-top: 3px; }

.aff-page-form { max-width: 960px; margin: 0 auto; padding: 16px; }

/* Link & Materiais */
.aff-materiais {
  max-width: 920px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 8px 4px 24px;
}
.aff-materiais .aff-label {
  font-size: 16px;
  margin-bottom: 2px;
}
.aff-materiais .aff-input,
.aff-materiais .aff-textarea {
  font-size: 18px;
  padding: 14px 16px;
  line-height: 1.45;
}
.aff-materiais .aff-textarea {
  min-height: 120px;
}
.aff-materiais .aff-btn {
  font-size: 16px;
  padding: 14px 22px;
  white-space: nowrap;
}

/* Cadastro · 2 colunas · caber em uma tela */
.aff-cadastro {
  max-width: none;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 12px 18px 10px;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}
.aff-cadastro-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.aff-cadastro-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 22px;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  align-content: start;
}
.aff-cadastro-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  min-height: 0;
  overflow: auto;
  padding-right: 4px;
}
.aff-cadastro .aff-section {
  font-size: 14px;
  margin-top: 2px;
  padding: 4px 0 3px;
}
.aff-cadastro .aff-grid-2 {
  gap: 8px 12px;
}
.aff-cadastro .aff-label {
  font-size: 13px;
}
.aff-cadastro .aff-input,
.aff-cadastro .aff-textarea {
  font-size: 16px;
  padding: 8px 10px;
}
.aff-cadastro .aff-textarea {
  min-height: 52px;
  resize: vertical;
}
.aff-cadastro .aff-check {
  font-size: 14px;
  line-height: 1.4;
  gap: 10px;
}
.aff-cadastro .aff-btn {
  font-size: 14px;
  padding: 12px 22px;
}
.aff-cadastro-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 18px;
  flex: 0 0 auto;
  padding-top: 8px;
  border-top: 1px solid var(--aff-border);
}
.aff-cadastro-foot .aff-check {
  flex: 1 1 420px;
  margin: 0;
}
.aff-cadastro-foot .aff-actions {
  margin: 0;
}

@media (max-width: 1100px) {
  .aff-cadastro-cols { grid-template-columns: 1fr; overflow: auto; }
  .aff-cadastro { overflow: auto; }
}

/* ── Landing (print 1) ── */
.aff-land {
  --aff-orange: #e08a2e;
  --aff-teal: #4A8FA0;
  color: var(--aff-text);
  background:
    radial-gradient(ellipse 55% 48% at 78% 28%, rgba(50, 184, 176, 0.07), transparent 58%),
    radial-gradient(ellipse 40% 35% at 20% 0%, rgba(232, 180, 74, 0.04), transparent 50%),
    #05080a;
  min-height: 100%;
  padding: 28px 28px 40px;
}
.aff-land-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.88fr);
  gap: 24px 32px;
  align-items: center;
  margin-bottom: 28px;
  min-height: min(48vh, 480px);
  isolation: isolate;
}
.aff-land-copy,
.aff-calc {
  position: relative;
  z-index: 2;
}
.aff-land-kicker {
  display: block;
  color: var(--aff-teal);
  font-size: 13px;
  letter-spacing: 0.18em;
  font-weight: 700;
  margin-bottom: 12px;
}
.aff-land-copy h1 {
  margin: 0 0 14px;
  font-size: clamp(34px, 3.6vw, 48px);
  line-height: 1.15;
  font-weight: 600;
  color: #ebe5d8;
  letter-spacing: 0.01em;
  max-width: 16ch;
}
.aff-land-copy > p {
  margin: 0 0 22px;
  color: #8a97a3;
  font-size: 17px;
  line-height: 1.55;
  max-width: 52ch;
}
.aff-land-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.aff-cta-solid {
  appearance: none;
  border: 0;
  background: var(--aff-orange);
  color: #0a0a0a;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 15px 24px;
  cursor: pointer;
}
.aff-cta-solid:hover { filter: brightness(1.06); }
.aff-cta-solid:disabled { opacity: 0.45; cursor: not-allowed; }
.aff-cta-ghost {
  appearance: none;
  border: 1px solid rgba(74, 143, 160, 0.65);
  background: rgba(8, 14, 18, 0.55);
  color: #ebe5d8;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: 14px 20px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.aff-cta-ghost:hover { border-color: rgba(74, 143, 160, 0.95); }
.aff-cta-play {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 0 6px 9px;
  border-color: transparent transparent transparent var(--aff-teal);
}
.aff-cta-block { width: 100%; margin-top: 12px; }
.aff-land-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 26px;
  color: #7a8794;
  font-size: 12px;
  letter-spacing: 0.12em;
}
.aff-land-trust__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.aff-land-trust__item::before {
  content: '';
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  opacity: 0.9;
  background: var(--aff-teal);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}
.aff-land-trust__item--shield::before {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-3z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-3z'/%3E%3C/svg%3E");
}
.aff-land-trust__item--cycle::before {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M4 12a8 8 0 0 1 13-6M20 12a8 8 0 0 1-13 6'/%3E%3Cpath d='M17 3v4h-4M7 21v-4h4'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M4 12a8 8 0 0 1 13-6M20 12a8 8 0 0 1-13 6'/%3E%3Cpath d='M17 3v4h-4M7 21v-4h4'/%3E%3C/svg%3E");
}
.aff-land-trust__item--globe::before {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c3 3.5 3 14 0 18M12 3c-3 3.5-3 14 0 18'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c3 3.5 3 14 0 18M12 3c-3 3.5-3 14 0 18'/%3E%3C/svg%3E");
}

/* Hero map — fundo decorativo (não ocupa a coluna do calc / não cobre o menu) */
.aff-land-map {
  position: absolute;
  left: 22%;
  right: -2%;
  top: -6%;
  bottom: -8%;
  z-index: 0;
  pointer-events: none;
  min-height: 0;
  height: auto;
  opacity: 0.78;
}
.aff-land-map__frame {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  min-height: 100%;
  border: none;
  background: transparent;
}
.aff-land-map__world {
  position: absolute;
  inset: -2% -4%;
  background:
    linear-gradient(180deg, rgba(5, 8, 10, 0.45) 0%, rgba(5, 8, 10, 0.12) 40%, rgba(5, 8, 10, 0.62) 100%),
    url("assets/login-world-map.png?v=login-map-night1") center 42% / cover no-repeat;
  filter: contrast(1.06) saturate(0.8) brightness(0.68);
  opacity: 0.88;
}
.aff-land-map__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
  opacity: 0.55;
}
.aff-land-map__vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 65% 58% at 42% 40%, transparent 15%, rgba(5, 8, 10, 0.72) 100%),
    linear-gradient(90deg, rgba(5, 8, 10, 0.82) 0%, rgba(5, 8, 10, 0.35) 22%, transparent 48%, rgba(5, 8, 10, 0.2) 100%);
}
.aff-land-map__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
}
.aff-land-map__arcs path {
  animation: aff-map-arc 3.6s ease-in-out infinite;
}
.aff-land-map__arcs path:nth-child(2) { animation-delay: 0.35s; }
.aff-land-map__arcs path:nth-child(3) { animation-delay: 0.7s; }
.aff-land-map__arcs path:nth-child(4) { animation-delay: 1.05s; }
.aff-land-map__arcs path:nth-child(5) { animation-delay: 1.4s; }
.aff-land-map__arcs path:nth-child(6) { animation-delay: 1.75s; }
@keyframes aff-map-arc {
  0%, 100% { opacity: 0.35; stroke-dashoffset: 0; }
  50% { opacity: 0.75; stroke-dashoffset: -14; }
}
.aff-land-map__na-glow {
  animation: aff-map-na 2.8s ease-in-out infinite;
}
@keyframes aff-map-na {
  0%, 100% { opacity: 0.75; }
  50% { opacity: 1; }
}
.aff-land-map__nodes circle {
  animation: aff-map-node 2.4s ease-in-out infinite;
}
.aff-land-map__nodes circle:nth-child(odd) { animation-delay: 0.4s; }
@keyframes aff-map-node {
  0%, 100% { opacity: 0.75; }
  50% { opacity: 1; }
}

/* Calc — coluna direita do hero */
.aff-calc {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(8, 12, 16, 0.92);
  padding: 22px 20px;
  backdrop-filter: blur(6px);
}
.aff-calc h2 {
  margin: 0 0 16px;
  font-size: 15px;
  letter-spacing: 0.14em;
  color: #ebe5d8;
}
.aff-calc label {
  display: flex;
  justify-content: space-between;
  color: #8a97a3;
  font-size: 13px;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
}
.aff-calc label b { color: var(--aff-cyan); }
.aff-calc input[type="range"] { width: 100%; margin-bottom: 16px; accent-color: var(--aff-cyan); }
.aff-calc-grid {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}
.aff-calc-grid > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  font-size: 14px;
}
.aff-calc-grid span { color: #7a8794; }
.aff-calc-grid strong { color: #ebe5d8; }
.aff-calc-out {
  padding: 14px;
  border: 1px solid rgba(116, 222, 198, 0.35);
  background: rgba(116, 222, 198, 0.06);
  color: #8a97a3;
  font-size: 14px;
  letter-spacing: 0.08em;
}
.aff-calc-out b {
  display: block;
  margin-top: 6px;
  color: var(--aff-ok);
  font-size: 30px;
  letter-spacing: 0.02em;
}
.aff-land-tiers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 28px;
}
.aff-land-tiers article {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  padding: 20px 18px;
}
.aff-ico {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  margin-bottom: 12px;
  border: 1px solid rgba(224, 138, 46, 0.45);
  color: var(--aff-orange);
  font-size: 14px;
}
.aff-land-tiers h3 {
  margin: 0 0 8px;
  font-size: 16px;
  letter-spacing: 0.1em;
  color: #f2f5f7;
}
.aff-land-tiers p {
  margin: 0;
  color: #8a97a3;
  font-size: 15px;
  line-height: 1.5;
}
.aff-land-bottom {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 18px;
  margin-bottom: 24px;
}
.aff-how, .aff-land-form {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(8, 12, 16, 0.9);
  padding: 22px 20px;
}
.aff-how h2, .aff-land-form h2 {
  margin: 0 0 16px;
  font-size: 16px;
  letter-spacing: 0.14em;
  color: #ebe5d8;
}
.aff-how ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.aff-how li {
  border: 1px solid rgba(255, 255, 255, 0.06);
  padding: 14px;
}
.aff-how b {
  display: block;
  margin-bottom: 6px;
  color: var(--aff-cyan);
  font-size: 14px;
  letter-spacing: 0.08em;
}
.aff-how span { color: #8a97a3; font-size: 15px; line-height: 1.45; }
.aff-land-form { display: flex; flex-direction: column; gap: 10px; }
.aff-land-secure {
  margin: 4px 0 0;
  color: #6a7884;
  font-size: 13px;
}
.aff-land-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  color: #6a7884;
  font-size: 13px;
  letter-spacing: 0.12em;
}

/* ── Dashboard (print 2) ── */
.aff-dash {
  padding: 16px 18px 22px;
  background: #05070a;
  min-height: 100%;
  box-sizing: border-box;
}
.aff-dash-hd {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-end;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.aff-dash-hd h1 {
  margin: 0 0 4px;
  font-size: 30px;
  color: #f2f5f7;
  letter-spacing: 0.04em;
}
.aff-dash-hd p { margin: 0; color: #7a8794; font-size: 16px; }
.aff-dash-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.aff-dash .aff-btn {
  font-size: 14px;
  padding: 10px 16px;
}
.aff-camp-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.aff-camp {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  padding: 18px 16px 16px;
  min-height: 148px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}
.aff-camp-top {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
  color: #ebe5d8;
  font-size: 17px;
}
.aff-camp-meta { color: #7a8794; font-size: 14px; margin-bottom: 14px; }
.aff-spark {
  height: 48px;
  margin-top: auto;
  background: linear-gradient(90deg, transparent, rgba(0, 168, 204, 0.35), transparent);
  border-bottom: 1px solid rgba(0, 168, 204, 0.45);
  clip-path: polygon(0 80%, 12% 60%, 24% 70%, 36% 40%, 48% 55%, 60% 30%, 72% 45%, 84% 20%, 100% 35%, 100% 100%, 0 100%);
}
.aff-spark.dim { opacity: 0.35; }
.aff-pill {
  display: inline-block;
  padding: 3px 9px;
  font-size: 12px;
  letter-spacing: 0.08em;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #8a97a3;
}
.aff-pill.ok { color: var(--aff-ok); border-color: rgba(116, 222, 198, 0.35); }
.aff-pill.warn { color: var(--aff-warn); border-color: rgba(200, 146, 58, 0.4); }
.aff-dash-mid {
  display: grid;
  grid-template-columns: 1.05fr 1.2fr 0.85fr;
  gap: 12px;
  margin-bottom: 14px;
}
.aff-dash-bot {
  display: grid;
  grid-template-columns: 0.9fr 1.3fr;
  gap: 12px;
}
.aff-panel {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(8, 12, 16, 0.92);
  padding: 18px 16px;
  min-height: 280px;
  box-sizing: border-box;
}
.aff-panel h3 {
  margin: 0 0 12px;
  font-size: 16px;
  letter-spacing: 0.1em;
  color: #ebe5d8;
}
.aff-panel-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.aff-panel-hd h3 { margin: 0; }
.aff-panel-hd span { color: #6a7884; font-size: 14px; }
.aff-utm-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 10px 0;
}
.aff-dash .aff-label {
  font-size: 14px;
}
.aff-dash .aff-input {
  font-size: 15px;
  padding: 10px 12px;
}
.aff-bars {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  height: 160px;
  margin-bottom: 12px;
  padding: 0 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.aff-bars i {
  flex: 1;
  height: var(--h, 50%);
  background: linear-gradient(180deg, rgba(0, 168, 204, 0.85), rgba(0, 168, 204, 0.25));
  font-style: normal;
}
.aff-chart-kpis, .aff-pay-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.aff-chart-kpis div, .aff-pay-kpis div {
  border: 1px solid rgba(255, 255, 255, 0.06);
  padding: 10px;
}
.aff-chart-kpis span, .aff-pay-kpis span {
  display: block;
  color: #6a7884;
  font-size: 12px;
  letter-spacing: 0.08em;
  margin-bottom: 4px;
}
.aff-chart-kpis b, .aff-pay-kpis b {
  color: #ebe5d8;
  font-size: 17px;
}
.aff-pay-kpis b.ok { color: var(--aff-ok); }
.aff-pay-kpis b.warn { color: var(--aff-warn); }
.aff-geo, .aff-feed, .aff-policy {
  list-style: none;
  margin: 0;
  padding: 0;
}
.aff-geo li, .aff-feed li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 15px;
}
.aff-geo span, .aff-feed span { color: #7a8794; }
.aff-geo b, .aff-feed b { color: #ebe5d8; font-weight: 600; }
.aff-dim { color: #6a7884; }

.aff-dash .aff-table {
  font-size: 14px;
}
.aff-dash .aff-table th {
  font-size: 12px;
}
.aff-dash .aff-tag {
  font-size: 12px;
}
.aff-dash .aff-note {
  font-size: 13px;
}

/* ── Ledger (print 3) ── */
.aff-ledger {
  padding: 14px 16px 20px;
  background: #04070a;
  min-height: 100%;
  box-sizing: border-box;
}
.aff-saque-subs {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  margin: 0 -16px 12px;
  padding: 0 16px;
  border-bottom: 1px solid var(--aff-border);
  background: rgba(0, 0, 0, 0.28);
}
.aff-saque-sub {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--aff-dim);
  font-family: inherit;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: var(--inst-ls-tab, 0.12em);
  text-transform: uppercase;
  padding: 12px 18px;
  cursor: pointer;
}
.aff-saque-sub:hover { color: var(--aff-text); }
.aff-saque-sub.active {
  color: var(--aff-cyan);
  border-bottom-color: var(--aff-cyan);
}
.aff-saque-body > .aff-page {
  padding: 4px 0 0;
}
.aff-ledger-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  font-size: 15px;
  color: #8a97a3;
}
.aff-ledger-top b { color: var(--aff-cyan); font-size: 16px; }
.aff-ledger-sum {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.aff-ledger-sum > div {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  padding: 14px;
}
.aff-ledger-sum span {
  display: block;
  color: #6a7884;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.aff-ledger-sum b {
  display: block;
  color: #ebe5d8;
  font-size: 20px;
  margin-bottom: 4px;
}
.aff-ledger-sum b.ok { color: var(--aff-ok); }
.aff-ledger-sum b.warn { color: var(--aff-warn); }
.aff-ledger-sum b.cyan { color: var(--aff-cyan); }
.aff-ledger-sum em {
  color: #6a7884;
  font-style: normal;
  font-size: 14px;
}
.aff-ledger-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.7fr);
  gap: 12px;
  margin-bottom: 12px;
}
.aff-ledger-bot {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 12px;
}
.aff-ledger .aff-panel h3 {
  font-size: 17px;
}
.aff-ledger .aff-table {
  font-size: 15px;
}
.aff-ledger .aff-table th {
  font-size: 13px;
}
.aff-ledger .aff-tag {
  font-size: 13px;
}
.aff-ledger .aff-btn {
  font-size: 14px;
  padding: 10px 14px;
}
.aff-ledger .aff-input {
  font-size: 15px;
}
.aff-ledger .aff-label {
  font-size: 14px;
}
.aff-ledger .aff-cta-solid {
  font-size: 15px;
}
.aff-ledger .aff-note {
  font-size: 14px;
}
.aff-search { max-width: 240px; }
.aff-linkish { color: var(--aff-cyan); }
.aff-settle-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 15px;
}
.aff-settle-row span { color: #7a8794; }
.aff-settle-row b { color: #ebe5d8; }
.aff-settle-row b.ok { color: var(--aff-ok); }
.aff-settle-row b.warn { color: var(--aff-warn); }
.aff-pix-box {
  margin: 12px 0;
  padding: 12px;
  border: 1px solid rgba(0, 168, 204, 0.25);
  background: rgba(0, 168, 204, 0.05);
}
.aff-pix-box code {
  display: block;
  margin: 6px 0;
  color: var(--aff-cyan);
  word-break: break-all;
  font-size: 14px;
}
.aff-pix-box small { color: #6a7884; font-size: 13px; }
.aff-settle-form { margin-top: 8px; }
.aff-policy li {
  margin-bottom: 12px;
  color: #c8d0d8;
  font-size: 15px;
  line-height: 1.5;
}
.aff-kpi-val.ok, .ok { color: var(--aff-ok); }
.warn { color: var(--aff-warn); }

@media (max-width: 1100px) {
  .aff-land-hero,
  .aff-land-bottom,
  .aff-dash-mid,
  .aff-dash-bot,
  .aff-ledger-grid,
  .aff-ledger-bot { grid-template-columns: 1fr; }
  .aff-land-hero { min-height: 0; }
  .aff-land-map {
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    height: 42%;
    opacity: 0.45;
  }
  .aff-land-tiers,
  .aff-camp-row,
  .aff-ledger-sum { grid-template-columns: 1fr; }
  .aff-how ol { grid-template-columns: 1fr; }
  .aff-chart-kpis, .aff-pay-kpis { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .aff-grid-2 { grid-template-columns: 1fr; }
}
