/* Clube do Trading — Membros · IDENTIDADE VISUAL SAFIRION
   Paleta azul-noite + Geist/Instrument Serif/Geist Mono + FX de assinatura (glass, LED, glow, sheen). */

:root{
  --bg:#060B18;
  --bg-2:#0A1426;
  --card:#111A2B;
  --card-2:#0E1627;
  --elev:#16213A;
  --border:rgba(35,137,230,.16);
  --border-soft:rgba(35,137,230,.10);
  --primary:#2389E6;
  --primary-2:#69B8FF;
  --primary-dark:#146AC7;
  --primary-deeper:#0A3461;
  --primary-ink:#FFFFFF;
  --success:#28DC64;
  --danger:#E85C5C;
  --warn:#E4B23C;
  --ink:#FFFFFF;
  --ink-soft:#D6EDF8;
  --muted:#A1B8C3;
  --faint:#6B8294;
  --sidebar-w:260px;
  --topbar-h:64px;
  --radius:14px;
  --radius-lg:18px;
  --glow: radial-gradient(circle at 18% 12%, rgba(35,137,230,.16), transparent 46%),
          radial-gradient(circle at 84% 82%, rgba(20,106,199,.12), transparent 48%);
  --sans:'Geist',Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --serif:'Instrument Serif',Georgia,serif;
  --mono:'Geist Mono','JetBrains Mono',ui-monospace,Consolas,monospace;
  color-scheme: dark;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
/* reserva o espaço da barra de rolagem SEMPRE -> sem "pulo/tremida" ao trocar
   entre páginas altas (com scroll) e baixas (sem scroll) */
html{scrollbar-gutter:stable}
body{
  background:var(--bg);
  color:#fff;
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
::selection{background:rgba(35,137,230,.32)}
.serif{font-family:var(--serif)}

/* scrollbar */
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:rgba(35,137,230,.22);border-radius:20px;border:2px solid var(--bg)}
*::-webkit-scrollbar-thumb:hover{background:rgba(35,137,230,.4)}

/* ---------- cards (navy glass — bg quase-opaco p/ evitar branco no headless) ---------- */
.cdt-card{
  background:linear-gradient(180deg,rgba(17,26,43,.92),rgba(14,22,39,.92));
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 20px 50px -28px rgba(0,0,0,.7);
  transition:border-color .18s ease, transform .16s ease, box-shadow .18s ease;
}
.cdt-card.hoverable:hover{
  border-color:rgba(35,137,230,.45);
  transform:translateY(-2px);
  box-shadow:0 12px 32px rgba(35,137,230,.28), inset 0 1px 0 rgba(255,255,255,.06);
}
.glass{
  background:linear-gradient(180deg,rgba(17,26,43,.72),rgba(14,22,39,.72));
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  border:1px solid rgba(35,137,230,.18);
}

/* FX de assinatura Safirion */
.sf-led{position:relative}
.sf-led::before{content:'';position:absolute;left:14px;right:14px;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(105,184,255,.7),transparent)}
.sf-glow{box-shadow:0 0 12px rgba(35,137,230,.5)}
.sf-led-dot{width:8px;height:8px;border-radius:50%;background:#2389E6;box-shadow:0 0 10px #2389E6;display:inline-block;animation:sfPulse 2s ease-in-out infinite}
@keyframes sfPulse{0%,100%{box-shadow:0 0 8px #2389E6;opacity:1}50%{box-shadow:0 0 16px #69B8FF;opacity:.75}}
.sf-sheen{position:relative;overflow:hidden}
.sf-sheen::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.10) 50%,transparent 65%);
  transform:translateX(-120%);animation:sfSheen 3.4s ease-in-out infinite}
@keyframes sfSheen{0%{transform:translateX(-120%)}60%,100%{transform:translateX(120%)}}
@media(prefers-reduced-motion:reduce){.sf-led-dot,.sf-sheen::after{animation:none}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:12px;font-weight:600;font-size:14px;
  padding:11px 18px;border:1px solid transparent;transition:.16s ease;white-space:nowrap;line-height:1}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;
  box-shadow:0 8px 24px rgba(35,137,230,.25)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 14px 32px rgba(35,137,230,.42)}
.btn-ghost{background:transparent;border-color:rgba(35,137,230,.25);color:var(--ink-soft)}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary-2)}
.btn-outline-primary{background:rgba(35,137,230,.08);border-color:rgba(35,137,230,.35);color:var(--primary-2)}
.btn-outline-primary:hover{background:rgba(35,137,230,.16)}
.btn-block{width:100%;justify-content:center;padding:15px}

/* ---------- eyebrow / chips ---------- */
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--primary-2)}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:6px 11px;border-radius:999px;
  border:1px solid var(--border);color:var(--muted);background:rgba(35,137,230,.05)}
.chip .i{color:var(--primary-2)}
.badge-avalon{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--primary-2);text-transform:uppercase}

/* progress bar */
.progress{height:6px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}
.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:99px;box-shadow:0 0 12px rgba(35,137,230,.5)}

/* page header */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px;flex-wrap:wrap}
.page-head h1{font-size:clamp(24px,3vw,34px);font-weight:800;letter-spacing:-.02em;margin:0}
.page-head p{color:var(--muted);margin:6px 0 0;font-size:15px}

/* grids */
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-auto{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
@media(max-width:1200px){.grid-4{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}
@media(max-width:560px){.grid-2,.grid-3,.grid-4,.grid-auto{grid-template-columns:1fr}}

/* transição de página: UMA vez no container (#app), nunca por-elemento.
   Antes cada card animava de opacity:0 em cascata -> a página "apagava e reconstruia"
   a cada clique (travamento de arquitetura). Agora o conteudo ja nasce visivel
   e o #app faz um crossfade curto (sem blank). */
.reveal{opacity:1;transform:none}
#app.switching{animation:appSwap .16s ease both}
@keyframes appSwap{from{opacity:.55}to{opacity:1}}
@media(prefers-reduced-motion:reduce){#app.switching{animation:none}}

/* skeleton */
.skel{background:linear-gradient(90deg,#0e1627,#16213a,#0e1627);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px}
@keyframes sk{to{background-position:-200% 0}}

/* ============ SHELL ============ */
#shell{display:flex;min-height:100vh;position:relative;z-index:1}
.bg-glow{position:fixed;inset:0;background:var(--glow);pointer-events:none;z-index:0}

/* sidebar */
#sidebar{
  width:var(--sidebar-w);flex:0 0 var(--sidebar-w);
  background:linear-gradient(180deg,#0A1426 0%,#060B18 100%);
  border-right:1px solid var(--border-soft);display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;padding:24px 18px;overflow-y:auto;z-index:20;
}
#sidebar .brand{display:flex;align-items:center;justify-content:center;padding:6px 6px 22px}
#sidebar .brand img{width:88%;max-width:180px;height:auto}
.nav-group{margin-bottom:14px}
.nav-group .lbl{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--faint);text-transform:uppercase;padding:8px 12px 6px}
.nav-item{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:11px;color:var(--muted);
  font-size:14px;font-weight:500;transition:.15s;position:relative;cursor:pointer;border:1px solid transparent}
.nav-item svg{width:19px;height:19px;flex:0 0 19px}
.nav-item:hover{color:var(--ink-soft);background:rgba(35,137,230,.06)}
.nav-item.active{color:#fff;font-weight:600;background:linear-gradient(90deg,rgba(35,137,230,.18),rgba(35,137,230,.04));border-color:rgba(35,137,230,.14)}
.nav-item.active::before{content:"";position:absolute;left:-18px;top:8px;bottom:8px;width:3px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--primary),var(--primary-2))}
.nav-item.highlight{background:rgba(35,137,230,.05);border-color:var(--border);color:var(--ink-soft);font-weight:600;margin-bottom:8px}
.nav-item.highlight:hover{border-color:rgba(35,137,230,.4)}
.nav-item .badge{margin-left:auto;font-size:10px;font-weight:700;color:var(--primary-2)}
.nav-spacer{flex:1}
.nav-item.danger:hover{color:var(--danger)}
.nav-ver{font-size:10px;color:var(--faint);margin-left:auto}

/* topbar */
#topbar{height:var(--topbar-h);display:flex;align-items:center;justify-content:flex-end;gap:12px;
  padding:0 clamp(16px,3vw,34px);position:sticky;top:0;z-index:15;background:rgba(6,11,24,.85);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(35,137,230,.08)}
#topbar .lang{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);border:1px solid var(--border);
  padding:8px 12px;border-radius:11px;background:rgba(35,137,230,.05)}
.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;
  background:radial-gradient(circle at 30% 30%,#146AC7 0%,#0A3461 80%);border:1px solid rgba(35,137,230,.4);color:#fff}

/* main */
#main{flex:1;min-width:0;display:flex;flex-direction:column}
#app{padding:clamp(18px,3vw,30px) clamp(16px,3vw,34px) 60px;flex:1;max-width:1480px}

/* mobile */
#bottomnav{display:none}
#mobile-topbar{display:none}
@media(max-width:900px){
  #sidebar{display:none}
  #topbar{display:none}
  #mobile-topbar{display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 16px;
    position:sticky;top:0;z-index:15;background:rgba(6,11,24,.9);backdrop-filter:blur(12px);border-bottom:1px solid rgba(35,137,230,.08)}
  #mobile-topbar .brand{display:flex;align-items:center;gap:9px}
  #mobile-topbar .brand img{height:26px;width:auto}
  #app{padding:16px 15px 96px}
  #bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;height:66px;
    background:rgba(10,20,38,.94);backdrop-filter:blur(16px);border-top:1px solid var(--border);
    padding-bottom:env(safe-area-inset-bottom)}
  #bottomnav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    color:var(--faint);font-size:10.5px;font-weight:600}
  #bottomnav a svg{width:22px;height:22px}
  #bottomnav a.active{color:var(--primary-2)}
}

/* modal / bottom-sheet */
.overlay{position:fixed;inset:0;background:rgba(3,6,14,.7);backdrop-filter:blur(3px);z-index:60;
  display:grid;place-items:center;padding:20px;opacity:0;animation:fade .2s forwards}
@keyframes fade{to{opacity:1}}
.modal{width:100%;max-width:520px;background:linear-gradient(180deg,#111A2B,#0E1627);border:1px solid var(--border);border-radius:18px;
  padding:22px;box-shadow:0 30px 80px -30px rgba(0,0,0,.8);animation:pop .25s cubic-bezier(.2,.8,.3,1)}
@keyframes pop{from{transform:scale(.96) translateY(8px);opacity:.6}to{transform:none;opacity:1}}
.modal .m-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.modal .x{margin-left:auto;color:var(--muted);background:none;border:none;font-size:20px;line-height:1}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:60;background:linear-gradient(180deg,#111A2B,#0A1426);border-top:1px solid var(--border);
  border-radius:20px 20px 0 0;padding:14px 16px calc(20px + env(safe-area-inset-bottom));max-height:88vh;overflow-y:auto;
  animation:up .28s cubic-bezier(.2,.8,.3,1)}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}
.sheet .handle{width:40px;height:4px;border-radius:99px;background:rgba(35,137,230,.3);margin:0 auto 14px}

/* svg sizing */
svg{display:inline-block;vertical-align:middle}
.btn svg,.chip svg,.cdt-card svg{width:18px;height:18px}
.w-4{width:16px;height:16px}
.w-5{width:20px;height:20px}
.w-6{width:24px;height:24px}

/* forms */
.form-label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin:0 0 7px}
.form-input{width:100%;background:rgba(6,11,24,.6);border:1px solid rgba(35,137,230,.2);border-radius:11px;padding:12px 14px;
  color:#fff;font-size:14.5px;font-family:inherit;outline:none;transition:.15s}
.form-input:focus{border-color:rgba(35,137,230,.65);box-shadow:0 0 0 3px rgba(35,137,230,.14);background:rgba(6,11,24,.9)}
.form-input:disabled{opacity:.6;cursor:not-allowed}
.form-input::placeholder{color:var(--faint)}
.card-section-head{display:flex;align-items:center;gap:11px;margin-bottom:18px}
.card-section-head .ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(35,137,230,.12);color:var(--primary-2)}
.card-section-head h3{margin:0;font-size:16.5px;font-weight:700}
.dropzone{border:1.5px dashed rgba(35,137,230,.25);border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;transition:.15s;cursor:pointer}
.dropzone:hover{border-color:var(--primary);color:var(--ink-soft)}
.dropzone b{color:var(--primary-2)}

/* thumb com candles azuis (lives/cursos) */
.thumb-candles{background:
  repeating-linear-gradient(90deg,transparent 0 16px, rgba(35,137,230,.30) 16px 20px, transparent 20px 40px),
  linear-gradient(160deg,#0f1b30,#060B18);}

/* helpers */
.text-muted{color:var(--muted)}
.text-primary{color:var(--primary-2)}
.stack{display:flex;flex-direction:column;gap:18px}
.row{display:flex;align-items:center;gap:12px}
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
