/* Dash JogueiCerto — acabamento "iHub" (14/10), carregado POR ÚLTIMO (includes/dash-tema.php).
   Referência: shop.ihubaffiliates.com.br/assets/shop.css. Copia a ESCALA de texto (tamanho/peso/espaçamento por papel)
   e o RITMO das animações (entrada .45s, atraso máx. ~.3s, nada esperando). Cores continuam as da JogueiCerto. Só aparência. */

/* ---------- texto: Inter sem aperto geral (o iHub usa espaçamento normal; só títulos e números apertam) */
html body.jc-hub{letter-spacing:normal;font-feature-settings:normal}
html body.jc-hub .content{font-size:13.5px}

/* menu lateral: itens 14.5px peso 500 cinza, ativo 600 branco; títulos de grupo 10px 700 espaçados */
html body.jc-hub .admin-sidebar a.nav-item,html body.jc-hub .admin-sidebar a.nav-item span{font-size:14.5px!important;font-weight:500!important;letter-spacing:normal!important}
html body.jc-hub .admin-sidebar a.nav-item.active,html body.jc-hub .admin-sidebar a.nav-item.active span{font-weight:600!important;color:#fff!important}
html body.jc-hub .admin-sidebar .jc-grupo-tit,html body.jc-hub .admin-sidebar .jc-grupo-tit span{font-size:10px!important;font-weight:700!important;letter-spacing:1.2px!important}

/* título da aba: 28px 800 -0.5px; subtítulo 14.5px */
html body.jc-hub .content :is(.header h1,.page-title,.jc-cabeca h1,.jc-cabeca h2){font-size:28px!important;font-weight:800!important;letter-spacing:-.5px!important;line-height:1.1!important}
html body.jc-hub .content :is(.header p,.jc-cabeca p){font-size:14.5px!important;font-weight:400!important}

/* títulos de bloco 17px 700; descrição 12.5px */
html body.jc-hub .content :is(.ins-barra h2,.section-title,.panel-title,.card-header h2,.card-header h3){font-size:17px!important;font-weight:700!important;letter-spacing:normal!important}
html body.jc-hub .content .ins-cab h3{font-size:15px!important;font-weight:700!important;letter-spacing:normal!important}

/* cartões de número: rótulo 12px 600 maiúsculo, valor grande 800 apertado */
html body.jc-hub .content .ins-tile .rot,html body.jc-hub .content .ins-tile .rot span,html body.jc-hub .content .stat-card h3{font-size:12px!important;font-weight:600!important;letter-spacing:.5px!important;text-transform:uppercase}
html body.jc-hub .content :is(.ins-tile .val,.stat-card p,.sum-value){font-size:clamp(22px,2.15vw,33px)!important;font-weight:800!important;letter-spacing:-.8px!important;line-height:1.05!important;font-variant-numeric:tabular-nums}

/* tabelas: cabeçalho 11px 700 .7px maiúsculo; células 13.5px; números com largura fixa */
html body.jc-hub .content .table thead th{font-size:11px!important;font-weight:700!important;letter-spacing:.7px!important;text-transform:uppercase}
html body.jc-hub .content .table tbody td{font-size:13.5px!important}
html body.jc-hub .content .table tbody td :is(strong,b),html body[data-jc-pg] .content .table tbody td:first-child{font-weight:600!important}
html body[data-jc-pg] .content :is(.amount-positive,.amount-negative){font-weight:700!important;font-size:13.5px!important}

/* selos, botões, campos */
html body.jc-hub .content :is(.badge,.pill,.status-badge){font-size:11px!important;font-weight:600!important;letter-spacing:normal!important;border-radius:999px!important}
html body.jc-hub .content :is(.btn,button,[class^="btn-"],[class*=" btn-"]):not(.ins-per button):not(.jc-mut){font-size:13px;font-weight:600;letter-spacing:normal}
html body.jc-hub .content :is(input,select,textarea){font-size:13.5px}
html body.jc-hub .content label{font-size:11.5px;font-weight:600}

/* ---------- ritmo das animações (igual ao iHub) */
@keyframes jcRise{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
/* troca de aba: saída e entrada curtas (antes .18s + .32s) */
::view-transition-old(root){animation:.12s ease-in both jcHubSai!important}
::view-transition-new(root){animation:.26s cubic-bezier(.22,.9,.3,1) both jcHubEntra!important}
/* miolo entra em cascata curta, bloco a bloco (o menu fica parado) */
@media (prefers-reduced-motion:no-preference){
  html body.jc-pro :is(.admin-content,.main-content){animation:none!important}
  html body.jc-hub .content>:not(.modal-overlay):not(.modal):not(script):not(style){animation:jcRise .45s cubic-bezier(.22,.9,.3,1) backwards}
  html body.jc-hub .content>:nth-child(2){animation-delay:.05s}
  html body.jc-hub .content>:nth-child(3){animation-delay:.1s}
  html body.jc-hub .content>:nth-child(4){animation-delay:.16s}
  html body.jc-hub .content>:nth-child(5){animation-delay:.22s}
  html body.jc-hub .content>:nth-child(n+6){animation-delay:.28s}
  /* cartões de número: .06s entre eles (antes .07s sem teto) */
  html body.jc-pro .jc-stat{animation-duration:.5s!important;animation-delay:calc(min(var(--i,0),5) * 60ms)!important}
  /* linhas da tabela: aparecem em ~.3s no total (antes até 1s) */
  html body[data-jc-pg] .table tbody tr{animation-duration:.4s!important;animation-delay:calc(min(var(--r,0),12) * 22ms)!important}
  /* hover dos itens do menu e dos botões, como no iHub */
  html body.jc-hub .admin-sidebar a.nav-item{transition:all .2s!important}
  html body.jc-hub .admin-sidebar a.nav-item:hover{transform:translateX(4px)}
  html body.jc-hub .content :is(.btn,[class^="btn-"],[class*=" btn-"]):hover{transform:translateY(-1px);filter:brightness(1.1)}
}
html body.jc-hub .admin-sidebar a.nav-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* ---------- cliente nas listas (14/10): selfie facial (ou iniciais) + nome completo + @usuário/selos. Vale em toda aba (includes/dash-cliente.php) */
.jc-cli{display:inline-flex;align-items:center;gap:11px;min-width:0;vertical-align:middle;text-align:left}
.jc-av{flex:0 0 auto;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;overflow:hidden;font:700 13px "Inter",sans-serif;color:#fff;
  background:linear-gradient(135deg,hsl(var(--hue,0) 70% 46%),hsl(calc(var(--hue,0) + 40) 70% 32%));box-shadow:0 0 0 2px rgba(255,255,255,.08),0 6px 14px -6px rgba(0,0,0,.8)}
.jc-av img{width:100%;height:100%;object-fit:cover;display:block}
.jc-av.foto{cursor:zoom-in;background:#1c1d29;transition:transform .25s cubic-bezier(.2,.9,.3,1.3),box-shadow .2s}
/* 15/10 iPhone: Safari só gera "clique" em foto (que não é link/botão) com cursor de mãozinha; com zoom-in o toque não abria a selfie */
@media (hover:none),(pointer:coarse){.jc-av.foto,.jc-lb{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}}
/* 15/10 app do iPhone: selfie aberta sem "vazar" o arrasto para trás e sem o desfoque pesado (travava a tela) */
.jc-lb{overscroll-behavior:contain;touch-action:pinch-zoom}
@media (hover:none),(pointer:coarse){
  .jc-lb,.jc-lb.on{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .jc-av.foto:hover{transform:none;box-shadow:none}
  .jc-lb-fig img{max-height:70vh}
}
.jc-lb-x{position:fixed;top:max(14px,env(safe-area-inset-top));right:14px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(20,20,30,.85);color:#fff;font-size:18px;display:grid;place-items:center;cursor:pointer}
.jc-av.foto:hover{transform:scale(1.12);box-shadow:0 0 0 2px rgba(210,13,13,.7),0 10px 22px -8px rgba(210,13,13,.6)}
.jc-cli-txt{display:inline-flex;flex-wrap:wrap;align-items:center;column-gap:6px;row-gap:3px;line-height:1.2;max-width:280px;min-width:0}
.jc-cli-nome{flex:0 0 100%;font-size:13.5px!important;font-weight:600!important;color:#fff!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jc-cli-user{order:1;font-size:11.5px!important;font-weight:500;color:#8b8da3!important;white-space:nowrap}
.jc-cli-txt>:not(.jc-cli-nome):not(.jc-cli-user):not(.jc-cli-extra){order:2;display:inline-flex!important;margin:0!important;font-size:9.5px!important;padding:1px 6px!important;line-height:1.5!important;position:static!important;float:none!important;transform:none!important}
.jc-cli-extra{order:3;flex:0 0 100%;font-size:11.5px!important;font-weight:500;color:#8b8da3!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body .table td.jc-cliente{white-space:nowrap}
html body .table td.jc-cliente::before{display:none!important}
/* selfie grande */
.jc-lb{position:fixed;inset:0;z-index:10060;display:grid;place-items:center;padding:24px;background:rgba(4,4,8,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);cursor:zoom-out;transition:background .25s,backdrop-filter .25s}
.jc-lb.on{background:rgba(4,4,8,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.jc-lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0;transform:scale(.94) translateY(10px);transition:opacity .25s,transform .35s cubic-bezier(.22,.9,.3,1)}
.jc-lb.on .jc-lb-fig{opacity:1;transform:none}
.jc-lb-fig img{max-width:min(420px,88vw);max-height:76vh;border-radius:18px;box-shadow:0 30px 80px -20px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.08)}
.jc-lb-fig figcaption{font:600 13px "Inter",sans-serif;color:#d6d7e3;background:rgba(18,19,32,.85);padding:7px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.08)}
.jc-av{position:relative}
.jc-av>b{font-weight:700}
.jc-av>img{position:absolute;inset:0;opacity:0;transition:opacity .25s}
.jc-av.foto>img{opacity:1}
.jc-av.foto>b{visibility:hidden}

/* ---------- abas irmãs no topo (dash-abas.js): pílulas de vidro, a atual em vermelho (iHub) */
.jc-abas{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px;padding:5px;width:max-content;max-width:100%;border-radius:14px;
  background:rgba(18,19,32,.72);border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 30px -18px rgba(0,0,0,.9)}
.jc-aba{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:10px;color:#a9abbf!important;text-decoration:none!important;
  font:600 13px "Inter",sans-serif;white-space:nowrap;transition:background .2s,color .2s,transform .25s cubic-bezier(.2,.9,.3,1.3)}
.jc-aba i{font-size:12px;opacity:.85}
.jc-aba:hover{color:#fff!important;background:rgba(255,255,255,.06)}
.jc-aba:active{transform:scale(.96)}
.jc-aba.on{color:#fff!important;background:linear-gradient(135deg,#e01414,#9d0a0a);box-shadow:0 8px 20px -10px rgba(224,20,20,.9),inset 0 1px 0 rgba(255,255,255,.18)}
@media(max-width:768px){.jc-abas{width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.jc-abas::-webkit-scrollbar{display:none}}

/* ---------- Configurações (14/10): cartão liga/desliga, explicação e taxa */
.cfg-ajuda{font-size:12px!important;font-weight:400!important;color:#8b8da3!important;line-height:1.45;margin-top:4px;text-transform:none!important;letter-spacing:normal!important}
.setting-card.cfg-bool{display:flex!important;align-items:center;justify-content:space-between;gap:14px;cursor:default!important}
.cfg-bool .cfg-txt{min-width:0}
.cfg-form{margin:0;flex:0 0 auto}
.cfg-switch{position:relative;width:48px;height:28px;border-radius:999px;border:0;padding:0;cursor:pointer;background:#3a3b4d;transition:background .3s}
.cfg-switch span{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.4);transition:transform .35s cubic-bezier(.2,.9,.3,1.3)}
.cfg-bool.on .cfg-switch{background:linear-gradient(135deg,#22c55e,#15803d)}
.cfg-bool.on .cfg-switch span{transform:translateX(20px)}
.cfg-switch:disabled{opacity:.6;cursor:progress}
.cfg-switch:focus-visible{outline:2px solid #22c55e;outline-offset:2px}
.cfg-cadeado{flex:0 0 auto;width:48px;height:28px;border-radius:999px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#22c55e,#15803d);font-size:12px}
.cfg-fee{display:flex;gap:8px;margin-top:10px}
.cfg-fee input{width:90px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(5,5,12,.6);color:#fff;padding:0 12px;font:600 14px "Inter",sans-serif}

/* 16/10 etiquetas de afiliado (AFILIADO / SUB DE / VEIO DE) e hora do cadastro na célula do cliente — includes/dash-afiliado-tags.php */
.af-selo{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.3px;padding:2px 7px;border-radius:6px;margin:2px 0 0 6px;vertical-align:middle;white-space:nowrap;-webkit-user-select:none;user-select:none;max-width:min(190px,100%);box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}.af-selo i{font-size:9px;margin-right:3px}.af-af{background:rgba(59,130,246,.15);color:#7cb4ff;border:1px solid rgba(59,130,246,.42)}.af-afp{background:rgba(245,158,11,.15);color:#fbbf24;border:1px solid rgba(245,158,11,.45)}.af-afb{background:rgba(148,150,170,.14);color:#a7a9bd;border:1px solid rgba(148,150,170,.3)}.af-sub{background:rgba(168,85,247,.15);color:#c99bff;border:1px solid rgba(168,85,247,.42)}.af-ref{background:rgba(20,184,166,.13);color:#5eead4;border:1px solid rgba(20,184,166,.4)}.af-refj{background:rgba(148,150,170,.1);color:#b8bacb;border:1px solid rgba(148,150,170,.26)}.jc-cli-txt>.jc-cli-cad{display:block!important;font-size:11px!important;color:#8b8ea3!important;margin-top:1px;max-width:100%}.jc-cli-cad i{font-size:10px;margin-right:4px;opacity:.8}
.us-lista td.dp-meta span.us-cad{white-space:normal}
body .dp-lista td.jc-cliente .jc-cli-cad+.af-selo{margin-left:0}

/* 16/10 dono: nada pode ficar por cima de nada no celular. O cartão do cliente (.jc-cli) era inline-flex do tamanho
   do conteúdo e passava da coluna; a etiqueta "VEIO DE @..." entrava por baixo do selo de status (ex.: ESPERANDO PAGAR).
   Agora o cartão nunca passa da célula e as etiquetas cortam com "…" no limite da coluna. */
td.jc-cliente .jc-cli,.jc-cli{max-width:100%;min-width:0;box-sizing:border-box}
td.jc-cliente .jc-cli-txt{min-width:0;max-width:100%}
