  :root{
    --bg:#F8F7FC; --surface:#FFFFFF; --surface-2:#F2EFFB; --border:#E7E3F5;
    --gold:#6242E8; --gold-dim:#D9CFFC; --on-gold:#FFFFFF;
    --text:#221D35; --text-dim:#5C5570; --text-faint:#736890;
    --red:#E2564F; --green:#2E8B3D;
    --glass:rgba(255,255,255,.85); --glass-strong:rgba(255,255,255,.95);
    --display:'Space Grotesk',sans-serif; --sans:'Manrope',sans-serif; --mono:'IBM Plex Mono',monospace;
    /* Icones usados em ::before, onde nao da' pra por SVG inline. Entram como mascara, entao a cor
       vem do background de quem os usa - e acompanha o tema, ao contrario do emoji que estava aqui
       antes. Os demais icones ficam em ICONES/icone() no core.js. */
    --ico-check:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='m4.5 12.5 5 5 10-11'/></svg>");
    --ico-lupa:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='10.75' cy='10.75' r='6.25'/><path d='m15.4 15.4 4.6 4.6'/></svg>");
  }
  [data-theme="dark"]{
    --bg:#0F1114; --surface:#16191E; --surface-2:#1D2127; --border:#2A2F37;
    --glass:rgba(15,17,20,.85); --glass-strong:rgba(15,17,20,.95);
    --gold:#C9A96A; --gold-dim:#A8894F; --on-gold:#1a1408;
    --text:#EDEDEA; --text-dim:#A8ADB5; --text-faint:#8B909A;
    --red:#C97A6A; --green:#8FBE84; color-scheme:dark;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--bg); color:var(--text); font-family:var(--sans); line-height:1.6; overflow-x:hidden;}
  a{color:inherit; text-decoration:none;}
  button, input, select, textarea{font-family:var(--sans);}
  .wrap{max-width:1120px; margin:0 auto; padding:0 32px;}

  .bg-grid{
    position:fixed; inset:0; z-index:0; opacity:.32; pointer-events:none;
    background-image:linear-gradient(var(--border) 1px, transparent 1px),linear-gradient(90deg, var(--border) 1px, transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(ellipse 80% 50% at 50% 0%, black 10%, transparent 70%);
  }

  /* ===== Botoes e base ===== */
  .btn{display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:11px 20px; border-radius:11px; font-size:14px; font-weight:700;
    cursor:pointer; border:1px solid transparent; transition:all .15s ease;}
  .btn-gold{background:var(--gold); color:#FFFFFF;}
  .btn-gold:hover{background:#6A46F5;}
  .btn-line{background:none; border-color:var(--border); color:var(--text-dim);}
  .btn-line:hover{border-color:var(--gold-dim); color:var(--text);}
  .btn-perigo{background:var(--red); color:#FFFFFF;}
  .btn-perigo:hover{filter:brightness(1.08);}
  .btn-sm{padding:8px 14px; font-size:12.5px;}
  .btn-full{width:100%;}
  .btn:disabled{opacity:.65; cursor:not-allowed; pointer-events:none;}
  .btn-spinner{width:14px; height:14px; border-radius:50%; border:2px solid rgba(0,0,0,.25); border-top-color:currentColor;
    animation:btn-spin .7s linear infinite; display:inline-block;}
  @keyframes btn-spin{to{transform:rotate(360deg);}}
  .btn[disabled]{opacity:.55; cursor:default;}
  .btn-ghost{color:var(--text-dim); font-size:14px; cursor:pointer; background:none; border:none;}
  .btn-ghost:hover{color:var(--text);}

  .tag{font-family:var(--mono); font-size:10.5px; padding:3px 9px; border-radius:7px;
    background:var(--surface-2); border:1px solid var(--border); color:var(--text-dim); display:inline-block;}
  .tag.gold{color:var(--gold); border-color:var(--gold-dim);}
  .tag.red{color:var(--red); border-color:var(--red);}

  .card{background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:22px;
    box-shadow:0 4px 18px rgba(0,0,0,.22); transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;}
  .card:hover{border-color:var(--gold-dim); box-shadow:0 10px 26px rgba(0,0,0,.16);}

  .field{margin-bottom:16px;}
  .field label{display:block; font-size:12.5px; color:var(--text-faint); margin-bottom:7px; font-weight:600;}
  input[type="text"], input[type="email"], input[type="password"], input[type="number"],
  input[type="url"], input[type="tel"], input[type="search"], input[type="date"], input:not([type]), select, textarea{
    background:var(--surface-2); border:1px solid var(--border); border-radius:11px;
    padding:12px 14px; color:var(--text); font-size:14px; transition:border-color .15s ease;}
  input[type="text"]:focus, input[type="email"]:focus, input[type="password"]:focus, input[type="number"]:focus,
  input[type="url"]:focus, input[type="tel"]:focus, input[type="search"]:focus, input[type="date"]:focus, input:not([type]):focus, select:focus, textarea:focus{
    outline:none; border-color:var(--gold-dim);}
  input::placeholder, textarea::placeholder{color:var(--text-faint);}
  .field input, .field select, .field textarea{width:100%;}
  .field textarea{resize:vertical; min-height:84px;}

  .progress{height:6px; border-radius:99px; background:var(--surface-2); overflow:hidden; margin:12px 0 8px;}
  .progress-fill{height:100%; background:var(--gold); border-radius:99px; width:0; transition:width .9s ease;}
  .progress-label{font-family:var(--mono); font-size:11px; color:var(--text-faint);}
  .fin-bar{background:var(--gold-dim); border-radius:3px 3px 0 0; min-height:2px; transition:background .15s ease; cursor:default;}
  .fin-bar:hover{background:var(--gold);}

  .toast{position:fixed; bottom:26px; right:26px; background:var(--surface-2); border:1px solid var(--gold-dim);
    color:var(--text); padding:13px 20px; border-radius:10px; font-size:13.5px; max-width:340px;
    opacity:0; transform:translateY(10px); transition:all .3s ease; pointer-events:none; z-index:99;}
  .toast.show{opacity:1; transform:none;}

  /* ===== Icones (SVG inline - ver ICONES/icone() em core.js) =====
     Substituem os emoji que havia antes. Emoji e' desenhado pela FONTE DO SISTEMA: muda de forma e
     de cor em cada aparelho, ignora o tema claro/escuro e nao alinha bem com o texto ao lado. Estes
     herdam a cor de quem os contem (currentColor) e escalam junto com o font-size. */
  .ico{width:1.15em; height:1.15em; display:inline-block; vertical-align:-.19em; flex-shrink:0;
    fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
  .ico-cheio{fill:currentColor; stroke:currentColor; stroke-width:1.1;}
  /* Botao que so' tem icone (sem texto): um pouco maior e centrado, sem deslocar a linha de base. */
  .tb-icon-btn .ico, .theme-toggle .ico, .password-toggle .ico{width:1.25em; height:1.25em; vertical-align:middle;}

  .stars{color:var(--gold); font-size:13px; display:inline-flex; align-items:center; gap:2px;}
  .stars .off{color:var(--border);}
  .stars .ico{width:14px; height:14px; vertical-align:middle;}

  /* ===== NAV (landing) ===== */
  nav{position:sticky; top:0; z-index:50; background:var(--glass); backdrop-filter:blur(10px); border-bottom:1px solid var(--border);
    transition:background .25s ease, box-shadow .25s ease;}
  nav .wrap{display:flex; align-items:center; justify-content:space-between; height:72px; transition:height .25s ease;}
  nav.nav-scrolled{background:var(--glass-strong); box-shadow:0 8px 24px rgba(0,0,0,.08);}
  nav.nav-scrolled .wrap{height:60px;}
  .logo{display:flex; align-items:center; gap:2px;}
  .logo img{display:block; height:26px; width:auto;}
  .logo.logo-icon img{height:32px;}
  .nav-links{display:flex; gap:32px; font-size:14px; color:var(--text-dim); font-weight:600;}
  .nav-links a{position:relative; padding-bottom:4px; transition:color .15s ease;}
  .nav-links a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--gold); transition:width .2s ease;}
  .nav-links a:hover{color:var(--text);}
  .nav-links a.active{color:var(--text);}
  .nav-links a.active::after{width:100%;}
  .nav-cta{display:flex; align-items:center; gap:18px;}

  /* ===== Barra de progresso de leitura ===== */
  .scroll-progress{position:fixed; top:0; left:0; height:3px; width:0%; background:linear-gradient(90deg, var(--gold-dim), var(--gold));
    z-index:80; transition:width .1s linear;}

  /* ===== Botao voltar ao topo ===== */
  .back-to-top{position:fixed; right:26px; bottom:26px; width:46px; height:46px; border-radius:50%; background:var(--surface);
    border:1px solid var(--gold-dim); color:var(--gold); display:flex; align-items:center; justify-content:center;
    cursor:pointer; z-index:60; opacity:0; transform:translateY(12px) scale(.9); pointer-events:none;
    transition:opacity .25s ease, transform .25s ease, border-color .15s ease; font-size:18px;}
  .back-to-top.visible{opacity:1; transform:none; pointer-events:auto;}
  .back-to-top:hover{border-color:var(--gold);}

  /* ===== Parallax sutil do grid de fundo ===== */
  .bg-grid{will-change:transform;}

  /* ===== HERO ===== */
  header.hero{position:relative; z-index:1; padding:92px 0 64px; text-align:center;}
  .eyebrow{font-family:var(--mono); font-size:12px; color:var(--gold); text-transform:uppercase; letter-spacing:.14em; margin-bottom:20px;}
  .hero h1{font-family:var(--display); font-weight:700; font-size:56px; line-height:1.06; letter-spacing:-0.02em; max-width:760px; margin:0 auto 20px;}
  .hero h1 em{font-style:normal; color:var(--gold);}
  .hero-sub{font-size:17px; color:var(--text-dim); max-width:560px; margin:0 auto 36px;}
  .search-box{max-width:640px; margin:0 auto 18px; display:flex; background:var(--surface); border:1px solid var(--border); border-radius:12px; overflow:hidden; transition:border-color .15s ease;}
  .search-box:focus-within{border-color:var(--gold-dim);}
  .search-box input{flex:1; background:none; border:none; padding:17px 20px; color:var(--text); font-size:15px;}
  .search-box input:focus{outline:none;}
  .search-box button{border:none; background:var(--gold); color:#FFFFFF; font-weight:800; padding:0 26px; cursor:pointer; font-size:14px;}
  .search-box button:hover{background:#6A46F5;}
  .hero-chips{display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-bottom:44px;}
  .chip{font-size:12.5px; font-weight:600; padding:8px 16px; border-radius:999px; background:transparent;
    border:1px solid var(--border); color:var(--text-dim); cursor:pointer; transition:all .18s ease;}
  .chip:hover{border-color:var(--text-faint); color:var(--text);}
  .chip.active{background:var(--gold); border-color:var(--gold); color:var(--bg); font-weight:700;}
  .hero-stats{display:flex; gap:52px; justify-content:center; padding-top:34px; border-top:1px solid var(--border); max-width:640px; margin:0 auto;}
  .stat-num{font-family:var(--display); font-weight:700; font-size:30px; color:var(--gold);}
  .stat-label{font-size:12.5px; color:var(--text-faint); margin-top:2px;}

  /* ===== Secoes landing ===== */
  section{position:relative; z-index:1; padding:84px 0;}
  .section-head{max-width:640px; margin-bottom:44px;}
  .section-eyebrow{font-family:var(--mono); font-size:12px; color:var(--gold); text-transform:uppercase; letter-spacing:.1em; margin-bottom:14px;}
  h2{font-family:var(--display); font-weight:700; font-size:32px; line-height:1.15; margin-bottom:12px; letter-spacing:-0.01em;}
  .section-sub{color:var(--text-dim); font-size:15.5px;}

  .curso-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  .depoimentos-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  .depoimento-card{padding:22px;}
  .depoimento-card .stars{color:var(--gold); font-size:14px; margin-bottom:12px;}
  .depoimento-card .stars .off{color:var(--border);}
  .depoimento-texto{font-size:14px; line-height:1.55; color:var(--text-dim); margin-bottom:14px;}
  .depoimento-autor{font-size:13px; font-weight:700; color:var(--text);}
  .depoimento-curso{font-weight:400; color:var(--text-faint);}
  .curso-card{background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:24px;
    display:flex; flex-direction:column; transition:border-color .15s ease, transform .15s ease;}
  .curso-card:hover{border-color:var(--gold-dim); transform:translateY(-3px);}
  .curso-card[data-id]{cursor:pointer;}
  .curso-card .c-cat{margin-bottom:14px;}
  .curso-card .c-nome{font-family:var(--display); font-weight:600; font-size:17px; line-height:1.3; margin-bottom:8px;}
  .curso-card .c-desc{font-size:13px; color:var(--text-faint); margin-bottom:14px; flex-grow:1;}
  .curso-card .c-autor{font-size:12.5px; color:var(--text-dim); margin-bottom:12px;}
  .curso-card .c-autor a{color:var(--gold); cursor:pointer; font-weight:600;}
  .curso-card .c-autor a:hover{text-decoration:underline;}
  .curso-card .c-meta{display:flex; align-items:center; justify-content:space-between; font-size:12px; color:var(--text-faint); border-top:1px solid var(--border); padding-top:14px; margin-bottom:14px;}
  .curso-card .c-preco{font-family:var(--display); font-weight:700; font-size:22px; color:var(--text);}
  .curso-card .c-preco-bloco{display:flex; flex-direction:column; line-height:1.25; white-space:nowrap;}
  .curso-card .c-preco-parcelado{font-family:var(--display); font-weight:700; font-size:20px; color:var(--text);}
  .curso-card .c-preco-integral{font-size:11px; color:var(--text-faint);}
  .curso-card .c-footer{display:flex; flex-direction:column; gap:10px;}
  .curso-card .c-footer-botoes{display:flex; align-items:center; justify-content:flex-end; gap:8px;}
  .vazio{color:var(--text-faint); font-size:13.5px; padding:26px; text-align:center; border:1px dashed var(--border); border-radius:12px; grid-column:1 / -1;}

  /* Fileira de aulas do curso, estilo "canal" (miniatura + progresso assistido, titulo, resumo) */
  .aula-carrossel-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:2px;}
  .aula-assistir-tudo{display:flex; align-items:center; gap:8px; background:none; border:none; cursor:pointer; color:var(--text); font-family:var(--display); font-weight:600; font-size:15px; padding:0;}
  .aula-assistir-tudo .play{width:0; height:0; border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:11px solid var(--gold);}
  .aula-carrossel-wrap{position:relative;}
  .aula-grid{display:flex; overflow-x:auto; scroll-behavior:smooth; gap:14px; padding:4px 2px 10px; scrollbar-width:thin;}
  .aula-nav{position:absolute; top:0; bottom:10px; width:36px; display:flex; align-items:center; justify-content:center;
    background:var(--surface); border:1px solid var(--border); border-radius:50%; height:36px; margin:auto 0; cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,.15); z-index:2;}
  .aula-nav.prev{left:-6px;} .aula-nav.next{right:-6px;}
  .aula-nav.oculto{display:none;}
  .aula-card{cursor:pointer; flex:0 0 200px; scroll-snap-align:start;}
  .aula-thumb{position:relative; aspect-ratio:16/9; border-radius:12px; overflow:hidden; background:var(--surface-2) center/cover no-repeat;
    display:flex; align-items:center; justify-content:center; font-size:26px; color:var(--text-faint); border:1px solid var(--border);}
  .aula-card:hover .aula-thumb{border-color:var(--gold-dim);}
  .aula-card.ativa .aula-thumb{border-color:var(--gold); border-width:2px;}
  .aula-card.bloqueada{cursor:not-allowed;}
  .aula-card.bloqueada .aula-thumb{filter:grayscale(.6); opacity:.75;}
  .aula-cadeado{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.35); color:#fff;}
  .aula-cadeado .ico{width:22px; height:22px;}
  .aula-numero{position:absolute; top:6px; left:6px; background:rgba(0,0,0,.65); color:#fff; font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:20px;}
  .aula-thumb .aula-progresso-trilha{position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(0,0,0,.35);}
  .aula-thumb .aula-progresso-barra{position:absolute; left:0; bottom:0; height:3px; background:var(--gold); width:0%;}
  .aula-thumb .aula-assistida-tag{position:absolute; top:6px; right:6px; background:rgba(0,0,0,.65); color:#fff; font-size:10.5px; padding:2px 7px; border-radius:20px;}
  .aula-thumb .aula-duracao{position:absolute; bottom:6px; right:6px; background:rgba(0,0,0,.75); color:#fff; font-size:10.5px; padding:1px 5px; border-radius:4px; font-family:var(--mono);}
  .aula-titulo{font-family:var(--display); font-weight:600; font-size:13.5px; line-height:1.35; margin-top:9px;}
  .aula-legenda{font-size:12px; color:var(--text-faint); margin-top:3px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}

  /* Pagina de detalhe/vitrine de um curso: resumo + indice de aulas + cartao do professor do lado */
  .curso-detalhe-layout{display:grid; grid-template-columns:1fr 260px; gap:32px; align-items:start;}
  .curso-detalhe-side{position:sticky; top:20px;}
  .cd-compra-card{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin:20px 0 30px;}
  .cd-prof-card{cursor:pointer; text-align:center; transition:border-color .15s ease;}
  .cd-prof-card:hover{border-color:var(--gold-dim);}
  .cd-prof-avatar{width:88px; height:88px; border-radius:50%; margin:0 auto 12px; background:var(--surface-2) center/cover no-repeat;
    border:1px solid var(--gold-dim); display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:26px; color:var(--gold);}
  @media (max-width:820px){
    .curso-detalhe-layout{grid-template-columns:1fr;}
    .curso-detalhe-side{position:static;}
  }

  /* Prova/quiz respondivel: alternativas de multipla escolha, com destaque verde/vermelho apos corrigir */
  .prova-pergunta{margin-bottom:16px;}
  .prova-alt{display:flex; align-items:center; gap:8px; padding:9px 12px; border:1px solid var(--border); border-radius:9px; margin-top:6px; cursor:pointer; font-size:13.5px; transition:border-color .15s ease;}
  .prova-alt:hover{border-color:var(--gold-dim);}
  .prova-alt input{margin:0;}
  .prova-alt.correta{border-color:#4caf50; background:rgba(76,175,80,.08); color:#4caf50; font-weight:600;}
  .prova-alt.errada{border-color:var(--red); background:rgba(201,122,106,.08); color:var(--red); font-weight:600;}

  .cat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
  .cat-card{background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:26px 24px; cursor:pointer;
    transition:border-color .15s ease, transform .15s ease;}
  .cat-card:hover{border-color:var(--gold-dim); transform:translateY(-3px);}
  .cat-card .cat-dot{width:10px; height:10px; border-radius:3px; background:var(--gold); margin-bottom:18px;}
  .cat-card .cat-nome{font-family:var(--display); font-weight:600; font-size:16.5px; margin-bottom:6px;}
  .cat-card .cat-desc{font-size:12.5px; color:var(--text-faint);}

  .how-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:14px; overflow:hidden;}
  .how-step{background:var(--bg); padding:32px 28px;}
  .how-num{font-family:var(--mono); color:var(--text-faint); font-size:13px; margin-bottom:16px;}
  .how-title{font-family:var(--display); font-size:17px; font-weight:600; margin-bottom:8px;}
  .how-desc{font-size:13.5px; color:var(--text-dim);}

  .prof-section{background:linear-gradient(180deg, var(--surface) 0%, var(--bg) 100%); border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
  .prof-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;}
  .prof-list{list-style:none;}
  .prof-list li{padding:16px 0; border-bottom:1px solid var(--border); display:flex; gap:14px; align-items:flex-start;}
  /* Marca de item: SVG em mascara em vez do caractere '✓', que dependia da fonte do sistema. */
  .prof-list li::before{content:''; flex-shrink:0; width:16px; height:16px; margin-top:2px; background:var(--gold);
    -webkit-mask:var(--ico-check) center/contain no-repeat; mask:var(--ico-check) center/contain no-repeat;}
  .prof-list .pl-t{font-weight:700; font-size:15px;}
  .prof-list .pl-d{font-size:13px; color:var(--text-dim);}
  .taxa-box{background:var(--surface-2); border:1px solid var(--gold-dim); border-radius:16px; padding:30px 28px; text-align:left;}
  .taxa-box .tx-num{font-family:var(--display); font-weight:700; font-size:44px; color:var(--gold); line-height:1; text-align:center;}
  .taxa-box .tx-lbl{font-size:12.5px; color:var(--text-faint); margin:8px 0 20px; text-align:center;}
  .taxa-tabela{display:flex; flex-direction:column; gap:0; margin-bottom:22px;}
  .taxa-tabela .tx-row{display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--border); font-size:13px;}
  .taxa-tabela .tx-row:last-child{border-bottom:none;}
  .taxa-tabela .tx-row span:first-child{color:var(--text-dim);}
  .taxa-tabela .tx-row span:last-child{color:var(--text); font-weight:700; text-align:right;}

  .faq-list{max-width:720px;}
  .faq-item{border-bottom:1px solid var(--border);}
  .faq-item summary{padding:22px 4px; font-size:15.5px; font-weight:600; cursor:pointer; display:flex; justify-content:space-between; align-items:center; list-style:none;}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{content:'+'; font-family:var(--mono); color:var(--gold); font-size:20px; margin-left:20px;}
  .faq-item[open] summary::after{content:'−';}
  .faq-answer{padding:0 4px 22px; font-size:14px; color:var(--text-dim); max-width:640px;}

  .final-cta{text-align:center; padding:96px 0;}
  .final-cta h2{max-width:620px; margin:0 auto 26px;}

  .lead-secao{padding:0 0 80px;}
  /* O aviso de cookies (z-index:550) cobriria o botao flutuante de contato no canto - sobe o botao
     enquanto o aviso estiver visivel, pra nao ficar escondido atras dele na primeira visita. */
  #contato-flutuante-btn.acima-do-banner{bottom:110px !important;}
  .lead-card{background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:36px 40px;
    display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;}
  .lead-form{display:flex; gap:10px; flex-shrink:0;}
  .lead-form input{padding:12px 16px; border:1px solid var(--border); border-radius:10px; background:var(--bg);
    color:var(--text); font-size:14px; min-width:240px; font-family:inherit;}
  .lead-msg{text-align:center; margin-top:14px; font-size:13px; color:var(--text-dim); min-height:18px;}
  @media (max-width:640px){
    .lead-card{flex-direction:column; align-items:stretch; text-align:center;}
    .lead-form{flex-direction:column;}
    .lead-form input{min-width:0;}
  }

  footer{border-top:1px solid var(--border); padding:48px 0 36px; position:relative; z-index:1;}
  .footer-grid{display:flex; justify-content:space-between; align-items:flex-start; gap:40px; margin-bottom:36px; flex-wrap:wrap;}
  .footer-col-title{font-family:var(--mono); font-size:12px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.08em; margin-bottom:14px;}
  .footer-col a{display:block; font-size:14px; color:var(--text-dim); margin-bottom:10px;}
  .footer-col a:hover{color:var(--text);}
  .footer-bottom{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12.5px; color:var(--text-faint); border-top:1px solid var(--border); padding-top:22px;}

  .reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; transition-delay:var(--reveal-delay, 0s);}
  .reveal.visible{opacity:1; transform:none;}

  /* ===== Plataforma (login, cadastro, apps) ===== */
  .login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:26px; position:relative; overflow:hidden;
    background:var(--bg);}
  .login-wrap::before, .login-wrap::after{content:''; position:absolute; border-radius:50%; filter:blur(60px); z-index:0; pointer-events:none;}
  .login-wrap::before{width:420px; height:420px; background:#D9CFFC; opacity:.55; top:-120px; left:-100px;}
  .login-wrap::after{width:380px; height:380px; background:#FFD9EC; opacity:.5; bottom:-100px; right:-80px;}
  .auth-tabs{display:flex; gap:6px; background:var(--surface-2); border-radius:12px; padding:5px; margin-bottom:26px; position:relative; z-index:1;}
  .auth-tab{flex:1; border:none; background:none; padding:9px 8px; border-radius:9px; font-size:12.5px; font-weight:700; color:var(--text-dim); cursor:pointer; transition:all .15s ease;}
  .auth-tab.active{background:var(--surface); color:var(--gold); box-shadow:0 2px 8px rgba(0,0,0,.06);}
  .login-card{width:100%; max-width:440px; background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:38px 34px; position:relative; z-index:1;
    box-shadow:0 20px 50px rgba(0,0,0,.35);}
  .login-logo{margin-bottom:22px; display:flex; gap:2px;}
  .login-logo img{height:34px; width:auto; display:block;}
  .login-title{font-family:var(--display); font-size:24px; font-weight:700; margin-bottom:6px;}
  .login-sub{font-size:13.5px; color:var(--text-dim); margin-bottom:24px;}
  .login-error{display:none; background:rgba(201,122,106,.1); border:1px solid var(--red); color:var(--red);
    font-size:13px; border-radius:11px; padding:11px 14px; margin-bottom:16px;}
  .login-error.show{display:block;}
  .auth-divider{position:relative; text-align:center; margin:2px 0 18px; height:1px; background:var(--border);}
  .auth-divider span{position:relative; top:-10px; background:var(--surface); padding:0 12px; font-size:12px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.03em;}
  .mini-link{font-size:12.5px; color:var(--text-faint); display:inline-block; margin-bottom:14px; cursor:pointer; transition:color .15s ease;}
  .mini-link:hover{color:var(--gold);}
  .theme-toggle{width:38px; height:38px; border-radius:10px; border:1px solid var(--border); background:var(--surface-2);
    font-size:16px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:border-color .15s ease, transform .15s ease;}
  .theme-toggle:hover{border-color:var(--gold-dim); transform:scale(1.05);}

  .password-wrap{position:relative;}
  .password-wrap input{padding-right:44px !important; width:100%;}
  .password-toggle{position:absolute; right:4px; top:50%; transform:translateY(-50%); background:none; border:none;
    width:34px; height:34px; border-radius:9px; font-size:15px; cursor:pointer; opacity:.55; transition:opacity .15s ease, background .15s ease;}
  .password-toggle:hover{opacity:1; background:var(--surface-2);}
  .password-toggle.ativo{opacity:1;}

  .tipo-toggle{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:18px;}
  .legal-card{max-width:720px; margin-bottom:60px;}
  .legal-content{margin-top:24px; padding-top:20px; border-top:1px solid var(--border);}
  .legal-content h3{font-family:var(--display); font-size:16px; font-weight:700; margin:26px 0 10px; color:var(--text);}
  .legal-content h3:first-child{margin-top:0;}
  .legal-content p{font-size:14px; color:var(--text-dim); line-height:1.7; margin-bottom:12px;}
  .legal-content ul{margin:0 0 14px 20px; padding:0;}
  .legal-content li{font-size:14px; color:var(--text-dim); line-height:1.7; margin-bottom:6px;}
  .legal-content a{color:var(--gold);}
  .tipo-btn{padding:12px; border-radius:12px; background:var(--surface-2); border:1px solid var(--border);
    color:var(--text-dim); font-weight:700; font-size:13.5px; cursor:pointer; transition:all .15s ease;}
  .tipo-btn.active{background:var(--gold); border-color:var(--gold); color:#FFFFFF;}

  .modal-overlay{position:fixed; inset:0; background:rgba(10,11,13,.75); backdrop-filter:blur(3px);
    display:flex; align-items:center; justify-content:center; z-index:500; padding:20px;}
  .modal-box{background:var(--surface); border:1px solid var(--gold-dim); border-radius:20px; padding:30px;
    max-width:440px; width:100%; box-shadow:0 24px 60px rgba(0,0,0,.5);}
  .modal-tipo{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold); margin-bottom:10px;}
  .modal-titulo{font-family:var(--display); font-weight:700; font-size:20px; margin-bottom:12px;}
  .modal-mensagem{font-size:14px; color:var(--text-dim); line-height:1.6; margin-bottom:22px; white-space:pre-wrap;}
  .chk-resumo{background:var(--surface-2); border:1px solid var(--gold-dim); border-radius:10px; padding:16px 18px; margin-bottom:20px;}
  .chk-resumo .cr-nome{font-family:var(--display); font-weight:600; font-size:15.5px;}
  .chk-resumo .cr-info{font-size:12.5px; color:var(--text-dim); margin-top:3px;}
  .chk-resumo .cr-preco{font-family:var(--display); font-weight:700; font-size:24px; color:var(--gold); margin-top:8px;}

  .app{display:none;}
  .app.active{display:block;}
  .topbar{position:sticky; top:0; z-index:50; height:64px; background:var(--glass-strong); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; padding:0 26px;}
  .topbar-label{font-family:var(--mono); font-size:11px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.1em; margin-left:14px; padding-left:14px; border-left:1px solid var(--border);}
  .topbar-right{display:flex; align-items:center; gap:10px;}
  .user-chip{display:flex; align-items:center; gap:11px;}
  .user-chip .avatar{width:36px; height:36px; border-radius:50%; background:var(--surface-2) center/cover no-repeat; border:1px solid var(--gold-dim);
    display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:13px; color:var(--gold);}
  .user-chip .uname{font-size:13.5px; font-weight:700;}
  .user-chip .uplan{font-family:var(--mono); font-size:10.5px; color:var(--gold);}

  .topbar-search{flex:1; max-width:420px; margin:0 24px; position:relative;}
  .topbar-search input{width:100%; background:var(--surface); border:1px solid var(--border); border-radius:999px;
    padding:9px 16px 9px 38px; font-size:13.5px; color:var(--text);}
  .topbar-search input::placeholder{color:var(--text-faint);}
  .topbar-search input:focus{outline:none; border-color:var(--gold-dim);}
  .topbar-search::before{content:''; position:absolute; left:14px; top:50%; transform:translateY(-50%); width:14px; height:14px;
    background:var(--text-faint); -webkit-mask:var(--ico-lupa) center/contain no-repeat; mask:var(--ico-lupa) center/contain no-repeat; pointer-events:none;}
  .topbar-search-drop{position:absolute; top:calc(100% + 8px); left:0; right:0; background:var(--surface); border:1px solid var(--border);
    border-radius:14px; padding:8px; box-shadow:0 16px 40px rgba(0,0,0,.45); z-index:60; max-height:340px; overflow-y:auto;}
  .tb-icon-btn{position:relative; width:38px; height:38px; border-radius:50%; border:1px solid transparent; background:none;
    color:var(--text-dim); font-size:16px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .15s ease;}
  .tb-icon-btn:hover{background:var(--surface-2); color:var(--text); border-color:var(--border);}
  .tb-icon-btn.active{color:var(--gold); background:var(--surface-2); border-color:var(--gold-dim);}
  .tb-badge{position:absolute; top:-2px; right:-2px; background:var(--gold); color:#FFFFFF; font-size:9.5px; font-weight:700;
    border-radius:999px; min-width:15px; height:15px; display:flex; align-items:center; justify-content:center; padding:0 3px; font-family:var(--mono);}
  .tb-dropdown{position:absolute; top:calc(100% + 10px); right:0; width:300px; background:var(--surface); border:1px solid var(--border);
    border-radius:14px; padding:8px; box-shadow:0 16px 40px rgba(0,0,0,.45); z-index:60;}
  .tb-dropdown-title{font-family:var(--display); font-weight:700; font-size:13px; padding:8px 10px 10px;}
  .msgs-wrap{display:grid; grid-template-columns:280px 1fr; border:1px solid var(--border); border-radius:16px; overflow:hidden; height:calc(100vh - 260px); min-height:440px;}
  .msgs-lista-col{border-right:1px solid var(--border); overflow-y:auto; padding:8px;}
  .msgs-conv-item{position:relative; cursor:pointer; border-radius:12px; padding:9px 10px;}
  .msgs-conv-item.active{background:var(--surface-2); border:1px solid var(--gold-dim);}
  .msgs-conv-prev{font-size:12px; color:var(--text-faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:150px;}
  .msgs-conv-badge{position:absolute; top:9px; right:10px; background:var(--gold); color:#fff; font-size:10px; font-weight:700;
    border-radius:999px; min-width:16px; height:16px; display:flex; align-items:center; justify-content:center; padding:0 4px; font-family:var(--mono);}
  .msgs-thread-col{display:flex; flex-direction:column; height:100%; min-width:0;}
  .msgs-vazio-thread{display:flex; align-items:center; justify-content:center; height:100%; color:var(--text-faint); font-size:13.5px; text-align:center; padding:20px;}
  .msgs-thread-head{padding:12px 18px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:10px; flex-shrink:0;}
  .msgs-voltar-mobile{display:none;}
  .msgs-mensagens{flex-grow:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:8px;}
  .msg-bolha{max-width:70%; padding:8px 13px; border-radius:14px; font-size:13.5px; line-height:1.42; word-wrap:break-word;}
  /* --on-gold e' o texto legivel em cima de --gold em cada tema (branco no roxo escuro do tema claro,
     escuro no dourado claro do tema escuro) - antes usava sempre o mesmo tom escuro fixo, que no tema
     claro ficava com contraste abaixo do minimo (~3:1, precisa de 4.5:1 pra texto desse tamanho). */
  .msg-bolha.minha{align-self:flex-end; background:var(--gold); color:var(--on-gold); border-bottom-right-radius:4px;}
  .msg-bolha.outra{align-self:flex-start; background:var(--surface-2); border-bottom-left-radius:4px;}
  .msg-hora{font-size:9.5px; opacity:.65; margin-top:3px; font-family:var(--mono);}
  .msgs-input-row{display:flex; gap:10px; padding:12px 18px; border-top:1px solid var(--border); flex-shrink:0;}
  .msgs-input-row input{flex-grow:1;}
  @media (max-width:760px){
    .msgs-wrap{grid-template-columns:1fr; height:calc(100vh - 300px);}
    .msgs-thread-col{display:none;}
    .msgs-voltar-mobile{display:flex;}
    .msgs-wrap.msgs-mostrar-thread .msgs-lista-col{display:none;}
    .msgs-wrap.msgs-mostrar-thread .msgs-thread-col{display:flex;}
  }
  .layout{display:grid; grid-template-columns:232px 1fr; min-height:calc(100vh - 64px);}
  aside{border-right:1px solid var(--border); padding:24px 14px;}
  .side-item{display:flex; align-items:center; gap:11px; padding:11px 14px; border-radius:12px;
    font-size:14px; font-weight:600; color:var(--text-dim); cursor:pointer; margin-bottom:4px;
    border:1px solid transparent; transition:all .15s ease; background:none; width:100%; text-align:left;}
  .side-item:hover{color:var(--text); background:var(--surface);}
  .side-item.active{color:var(--text); background:var(--surface-2); border-color:var(--border);}
  .side-item .dot{width:7px; height:7px; border-radius:2px; background:var(--text-faint); flex-shrink:0; transition:background .15s ease;}
  .side-item.active .dot{background:var(--gold);}
  .side-badge{margin-left:auto; background:#E2564F; color:#fff; font-size:10.5px; font-weight:700;
    border-radius:20px; padding:1px 7px; line-height:1.5;}
  main{padding:34px 38px 64px; max-width:1180px;}
  /* Espaco extra embaixo so' nos apps que mostram o botao flutuante "Sugestoes" (aluno/professor) -
     sem isso, dependendo de quantos itens uma lista tem, o botao fixo no canto podia acabar em cima
     do botao de acao do ultimo card (ex: "Comecar" do ultimo curso em Meus cursos). */
  #app-aluno main, #app-afiliado main{padding-bottom:96px;}
  .panel{display:none; padding:0;}
  .panel.active{display:block; animation:fadeIn .35s ease;}
  @keyframes fadeIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
  .page-eyebrow{font-family:var(--mono); font-size:11.5px; color:var(--gold); text-transform:uppercase; letter-spacing:.1em; margin-bottom:10px;}
  .app h1{font-family:var(--display); font-weight:700; font-size:28px; margin-bottom:8px; letter-spacing:-0.01em;}
  .page-sub{color:var(--text-dim); font-size:14.5px; margin-bottom:30px; max-width:620px;}
  h2.block-title{font-family:var(--display); font-weight:700; font-size:18px; margin:32px 0 16px;}
  h2.block-title:first-of-type{margin-top:0;}
  .grid-2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
  .quick-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:6px;}
  .qstat .num{font-family:var(--display); font-weight:700; font-size:26px; color:var(--gold);}
  .qstat .lbl{font-size:12px; color:var(--text-faint); margin-top:2px;}
  .fin-hero{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
  .fin-hero-card{background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:18px 20px;}
  .fin-hero-lbl{font-size:12px; color:var(--text-faint); margin-bottom:8px;}
  .fin-hero-num{font-family:var(--display); font-weight:700; font-size:24px; color:var(--text);}
  .fin-hero-det{font-size:11.5px; color:var(--text-faint); margin-top:6px; line-height:1.4;}
  .fin-hero-alerta{border-color:var(--red); background:var(--surface-2);}
  .fin-hero-alerta .fin-hero-num{color:var(--red);}
  .fin-hero-gold{border-color:var(--gold-dim); background:var(--surface-2);}
  .fin-hero-gold .fin-hero-num{color:var(--gold);}
  .fin-prolabore-resultado{display:flex; align-items:center; justify-content:space-between; gap:12px;
    background:var(--surface-2); border:1px solid var(--gold-dim); border-radius:12px; padding:14px 18px; margin-top:4px;}
  .fin-prolabore-resultado span{font-size:13px; color:var(--text-dim);}
  .fin-prolabore-resultado strong{font-family:var(--display); font-size:22px; color:var(--gold);}
  @media (max-width:820px){ .fin-hero{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:520px){ .fin-hero{grid-template-columns:1fr;} .fin-prolabore-resultado{flex-direction:column; align-items:flex-start;} }
  .row-list{display:flex; flex-direction:column; gap:12px;}
  .row{display:flex; align-items:center; gap:16px;}
  .row .info{flex-grow:1; min-width:0;}
  .row .r-nome{font-weight:700; font-size:14.5px;}
  .row .r-det{font-family:var(--mono); font-size:11px; color:var(--text-faint); margin-top:3px;}
  .search-line{display:flex; gap:10px; margin-bottom:16px;}
  .search-line input{flex:1; background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:12px 16px; color:var(--text); font-size:14px;}
  .search-line input:focus{outline:none; border-color:var(--gold-dim);}
  .chips-line{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:22px;}
  .rate{display:inline-flex; gap:4px; cursor:pointer; font-size:16px;}
  .rate .st{color:var(--border); transition:color .1s ease; display:inline-flex;}
  .rate .st .ico{width:19px; height:19px;}
  .rate .st.on, .rate .st:hover, .rate .st:hover ~ .st{color:var(--gold);}
  .rate{flex-direction:row-reverse;}
  .switch{width:42px; height:24px; border-radius:99px; background:var(--surface-2); border:1px solid var(--border); position:relative; cursor:pointer; transition:background .2s ease; flex-shrink:0;}
  .switch::after{content:''; position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:var(--text-faint); transition:all .2s ease;}
  .switch.on{background:var(--gold);}
  .switch.on::after{left:20px; background:#FFFFFF;}
  /* Nome/headline/bio do perfil publico (aluno, professor e o card do professor na pagina do curso) -
     o wrapper real e' .prof-head-public (so' em volta do banner/avatar), esses textos ficam fora dele
     como irmaos, entao os seletores nao podem depender de um ancestral .prof-head (que nunca existiu
     no HTML - antes disso deixava esse texto sem nenhum estilo, so' a fonte padrao do navegador). */
  .ph-nome{font-family:var(--display); font-weight:700; font-size:21px;}
  .ph-headline{font-size:13.5px; color:var(--gold); margin-top:2px; font-weight:600;}
  .ph-bio{font-size:13px; color:var(--text-dim); margin-top:8px; max-width:560px;}
  .cert-card{display:flex; flex-direction:column;}
  .cert-card .cert-course{font-family:var(--display); font-weight:600; font-size:15px; margin:12px 0 4px;}
  .cert-card .cert-date{font-size:12.5px; color:var(--text-faint); margin-bottom:6px;}
  .cert-card .cert-code{font-family:var(--mono); font-size:11px; color:var(--text-faint); margin-bottom:16px;}

  /* Editor de banner + foto de perfil, estilo LinkedIn */
  .banner-editor{position:relative; margin-bottom:64px;}
  .banner-box{width:100%; height:220px; border-radius:14px; background:var(--surface-2) center/cover no-repeat;
    border:1px solid var(--border); cursor:pointer; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center;}
  .banner-box:hover{border-color:var(--gold-dim);}
  .banner-box .banner-empty{color:var(--text-faint); font-size:13px; text-align:center;}
  .banner-box .banner-hint{position:absolute; inset:0; background:rgba(15,17,20,.45); display:flex; align-items:center; justify-content:center;
    opacity:0; transition:opacity .15s ease; font-size:13px; color:var(--text); font-weight:600;}
  .banner-box:hover .banner-hint{opacity:1;}
  .avatar-editor{position:absolute; left:32px; bottom:-46px; width:112px; height:112px; border-radius:50%;
    border:4px solid var(--bg); background:var(--surface-2) center/cover no-repeat; cursor:pointer;
    display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:30px; color:var(--gold);}
  .avatar-editor .avatar-hint{position:absolute; inset:0; border-radius:50%; background:rgba(15,17,20,.5); display:flex; align-items:center; justify-content:center;
    opacity:0; transition:opacity .15s ease; font-size:10.5px; color:var(--text); text-align:center; padding:4px;}
  .avatar-editor:hover .avatar-hint{opacity:1;}
  .media-menu{position:absolute; z-index:30; background:var(--surface); border:1px solid var(--border); border-radius:10px;
    padding:6px; min-width:160px; box-shadow:0 10px 30px rgba(0,0,0,.4);}
  .media-menu button{display:block; width:100%; text-align:left; padding:9px 12px; border-radius:7px; border:none; background:none;
    color:var(--text-dim); font-size:13px; cursor:pointer; font-family:inherit;}
  .media-menu button:hover{background:var(--surface-2); color:var(--text);}
  .media-menu button.danger:hover{color:#e08787;}
  .prof-head-public{position:relative; margin-bottom:64px;}
  .prof-head-public .banner-box{cursor:default;}
  .prof-head-public .avatar-editor{cursor:default;}
  .prof-head-public .banner-hint, .prof-head-public .avatar-hint{display:none;}

  /* Seletor de arquivo customizado (substitui o input file padrão do navegador) */
  .file-picker{display:flex; align-items:center; gap:10px; background:var(--surface-2); border:1px solid var(--border);
    border-radius:12px; padding:9px 12px; cursor:pointer; transition:border-color .15s ease;}
  .file-picker:hover{border-color:var(--gold-dim);}
  .file-picker .file-picker-btn{flex-shrink:0; background:var(--gold); color:#FFFFFF; border:none; border-radius:6px;
    padding:6px 12px; font-size:12px; font-weight:700; cursor:pointer; font-family:inherit;}
  .file-picker .file-picker-name{font-size:12.5px; color:var(--text-faint); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .file-picker.has-file .file-picker-name{color:var(--text-dim);}
  .file-picker input[type="file"]{display:none;}

  /* ===== Feed / rede social do aluno ===== */
  .avatar-mini{width:40px; height:40px; border-radius:50%; background:var(--surface-2) center/cover no-repeat; border:1px solid var(--gold-dim);
    display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:14px; color:var(--gold); flex-shrink:0;}
  .post-card{display:flex; flex-direction:column; gap:10px; position:relative;}
  .post-head{display:flex; align-items:center; gap:12px; padding-right:28px;}
  .post-head .r-nome{display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-weight:700;}
  .post-menu-btn{position:absolute; top:20px; right:20px; background:none; border:none; color:var(--text-faint); font-size:18px;
    cursor:pointer; line-height:1; padding:4px 6px; border-radius:8px; font-family:var(--mono);}
  .post-menu-btn:hover{background:var(--surface-2); color:var(--text);}
  .post-texto{font-size:14px; color:var(--text-dim); line-height:1.55; white-space:pre-wrap;}
  .post-curso-chip{display:inline-flex; align-items:center; gap:6px; background:var(--surface-2); border:1px solid var(--gold-dim);
    border-radius:12px; padding:8px 12px; font-size:13px; color:var(--gold); font-weight:600; width:fit-content;}
  .post-anexo-texto{display:flex; flex-direction:column; gap:8px; background:var(--surface-2); border:1px solid var(--border);
    border-radius:12px; padding:10px 14px;}
  .post-anexo-texto > span{font-size:13px; color:var(--text-dim); font-weight:600;}
  .post-anexo-conteudo{font-size:12.5px; color:var(--text-faint); white-space:pre-wrap; max-height:220px; overflow-y:auto;
    background:var(--bg); border-radius:9px; padding:10px 12px; font-family:var(--mono);}
  .post-repost-box{border:1px solid var(--border); border-radius:14px; padding:14px; background:var(--bg);}
  .post-acoes{display:flex; border-top:1px solid var(--border); padding-top:6px; margin-top:2px;}
  .post-acao-btn{flex:1; background:none; border:none; color:var(--text-faint); font-size:13px; font-weight:600; cursor:pointer; font-family:inherit;
    display:flex; align-items:center; justify-content:center; gap:7px; padding:9px 0; border-radius:9px;}
  .post-acao-btn:hover{color:var(--text); background:var(--surface-2);}
  .post-acao-btn.ativo{color:var(--gold);}
  .post-comentarios{display:none; border-top:1px solid var(--border); padding-top:12px; margin-top:2px;}
  .post-comentarios.aberto{display:flex; flex-direction:column; gap:10px;}
  .post-comentario-item{display:flex; gap:10px; font-size:13px;}
  .post-comentario-item .txt{background:var(--surface-2); border-radius:10px; padding:8px 12px; color:var(--text-dim);}
  .post-comentario-form{display:flex; gap:8px;}
  .post-comentario-form input{flex:1;}
  .rede-item{display:flex; align-items:center; gap:12px;}

  /* ===== Home + Rede: layout de duas colunas ===== */
  .home-grid-3{display:grid; grid-template-columns:230px 1fr 280px; gap:20px; align-items:start;}
  .home-left, .home-side{display:flex; flex-direction:column; gap:16px; position:sticky; top:18px; max-height:calc(100vh - 36px); overflow-y:auto;}
  .home-main{min-width:0;}
  .home-side-card{padding:16px;}
  .side-card-title{font-family:var(--display); font-weight:700; font-size:13.5px; margin-bottom:10px;}
  .home-side-card input[type="text"]{width:100%; margin-bottom:8px;}
  .home-left .row-list.compact, .home-side .row-list.compact{gap:8px;}
  .home-left .rede-item, .home-side .rede-item{padding:9px 10px; gap:9px;}
  .home-left .rede-item .avatar-mini, .home-side .rede-item .avatar-mini{width:30px; height:30px; font-size:11.5px;}
  .home-left .rede-item .r-nome, .home-side .rede-item .r-nome{font-size:12.5px;}
  .home-left .rede-item .r-det, .home-side .rede-item .r-det{font-size:11px;}
  .home-left .btn-sm, .home-side .btn-sm{padding:6px 10px; font-size:11px;}

  /* Cartao de perfil resumido, estilo Facebook, no topo da coluna esquerda */
  .home-profile-card{padding:0 0 16px; text-align:center; overflow:hidden;}
  .hp-banner{height:64px; background:var(--surface-2) center/cover no-repeat;}
  .hp-avatar{width:64px; height:64px; border-radius:50%; background:var(--surface-2) center/cover no-repeat; border:3px solid var(--surface);
    margin:-34px auto 8px; font-family:var(--display); font-weight:700; font-size:20px; color:var(--gold); display:flex; align-items:center; justify-content:center;}
  .hp-nome{font-family:var(--display); font-weight:700; font-size:14.5px; padding:0 12px;}
  .hp-headline{font-size:11.5px; color:var(--gold); padding:2px 12px 0; min-height:14px;}
  .hp-stats{display:flex; justify-content:space-around; margin-top:14px; padding-top:12px; border-top:1px solid var(--border);}
  .hp-stats div{display:flex; flex-direction:column; align-items:center; font-size:10.5px; color:var(--text-faint);}
  .hp-stats strong{font-family:var(--display); font-size:15px; color:var(--text); font-weight:700;}

  .home-nav-card{padding:8px; display:flex; flex-direction:column; gap:2px;}
  .home-nav-link{display:flex; align-items:center; gap:11px; text-align:left; background:none; border:none; color:var(--text-dim);
    font-family:inherit; font-size:13.5px; font-weight:600; padding:11px 12px; border-radius:11px; cursor:pointer; transition:all .15s ease;}
  .home-nav-link span{font-size:15px;}
  .home-nav-link:hover{background:var(--surface-2); color:var(--text);}

  /* Composer estilo Facebook: anexar (imagem/documento/video) + publicar alinhado a direita */
  .composer-anexar-linha{display:flex; gap:6px; border-top:1px solid var(--border); padding-top:12px; margin-bottom:2px;}
  .composer-anexar-btn{flex:1; display:flex; align-items:center; justify-content:center; gap:7px; padding:9px 10px; border-radius:11px;
    font-size:12.5px; font-weight:600; color:var(--text-dim); cursor:pointer; transition:background .15s ease;}
  .composer-anexar-btn:hover{background:var(--surface-2); color:var(--text);}
  .composer-publicar-linha{display:flex; justify-content:flex-end; margin-top:10px;}

  @media (max-width:1300px){
    .home-grid-3{grid-template-columns:210px 1fr;}
    .home-side{position:static; max-height:none; flex-direction:row; flex-wrap:wrap; grid-column:1 / -1;}
    .home-side > .card{flex:1; min-width:230px;}
  }
  @media (max-width:1100px){
    .home-grid-3{grid-template-columns:1fr;}
    .home-left{position:static; max-height:none; flex-direction:row; flex-wrap:wrap;}
    .home-left > .card{flex:1; min-width:220px;}
  }
  @media (max-width:560px){
    .composer-anexar-btn span{display:none;}
  }

  .nav-hamburger{display:none;}
  @media (max-width:880px){
    .nav-links{display:none;}
    .nav-links.mobile-open{
      display:flex; flex-direction:column; gap:2px; position:absolute; top:100%; left:0; right:0;
      background:var(--bg); border-bottom:1px solid var(--border); padding:10px 20px 18px; box-shadow:0 12px 24px rgba(0,0,0,.08);
    }
    .nav-links.mobile-open a{padding:12px 4px; border-bottom:1px solid var(--border);}
    .nav-links.mobile-open a:last-child{border-bottom:none;}
    .nav-hamburger{display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:9px;
      border:1px solid var(--border); background:none; cursor:pointer; flex-direction:column; gap:4px;}
    .nav-hamburger span{display:block; width:16px; height:2px; background:var(--text); border-radius:2px; transition:all .2s ease;}
    .nav-hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
    .nav-hamburger.open span:nth-child(2){opacity:0;}
    .nav-hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
    #landing-nav .wrap{position:relative;}
    .nav-cta .btn-ghost, .nav-cta .btn.btn-gold{padding:8px 12px; font-size:12.5px;}
    .hero h1{font-size:38px;}
    .curso-grid, .cat-grid, .grid-2, .grid-3, .depoimentos-grid{grid-template-columns:1fr;}
    .quick-stats{grid-template-columns:repeat(2,1fr) !important; gap:10px;}
    .how-grid{grid-template-columns:1fr;}
    .prof-grid{grid-template-columns:1fr;}
    .hero-stats{gap:28px;}
    .layout{grid-template-columns:1fr;}
    aside{border-right:none; border-bottom:1px solid var(--border); padding:12px; display:flex; overflow-x:auto; gap:6px;}
    .side-item{white-space:nowrap; margin-bottom:0;}
    main{padding:24px 18px 56px;}
    .footer-grid{flex-direction:column;}
    .prof-head{flex-direction:column; align-items:flex-start;}
  }
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1; transform:none; transition:none;}
    .panel.active{animation:none;}
    .progress-fill{transition:none;}
  }

  /* ===== Compartilhe sua conquista (moldura estilo post, aparece ao concluir curso / nota maxima / streak 30 dias) ===== */
  .conquista-box{max-width:360px; position:relative; padding:26px 22px 22px;}
  .conquista-x{position:absolute; top:14px; right:14px; width:30px; height:30px; border-radius:999px; border:1px solid var(--border);
    background:var(--surface-2); color:var(--text-dim); font-size:18px; line-height:1; cursor:pointer;}
  .conquista-x:hover{color:var(--text);}
  .conquista-frame{border:1px solid var(--border); border-radius:16px; overflow:hidden; background:var(--surface-2);}
  .conquista-ig-topo{display:flex; align-items:center; gap:8px; padding:10px 12px; font-size:13.5px;}
  .conquista-ig-avatar{width:22px; height:22px; border-radius:999px; flex:none;
    background:linear-gradient(135deg, var(--gold), var(--gold-dim));}
  .conquista-ig-foto{position:relative; aspect-ratio:4/5; background:linear-gradient(160deg, var(--gold-dim), var(--surface-2) 70%); overflow:hidden;}
  .conquista-ig-foto video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scaleX(-1);}
  .conquista-camera-off{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:20px;}
  .conquista-dica-sm{font-size:12px; color:var(--text-faint); max-width:200px;}
  .conquista-selo{position:absolute; left:10px; right:10px; bottom:10px; background:rgba(10,11,13,.72); color:#fff;
    font-family:var(--display); font-weight:700; font-size:14px; text-align:center; padding:10px 12px; border-radius:10px; line-height:1.35;}
  .conquista-ig-acoes{padding:10px 12px 2px; font-size:16px; color:var(--text-dim); letter-spacing:2px;}
  .conquista-ig-legenda{padding:2px 12px 14px; font-size:13px; color:var(--text-dim); line-height:1.5;}

  /* ===== Bump de ebook no checkout ===== */
  .chk-bump{display:flex; align-items:flex-start; gap:10px; background:var(--surface-2); border:1px dashed var(--gold);
    border-radius:12px; padding:12px 14px; margin:14px 0; cursor:pointer; font-size:13.5px; line-height:1.5; color:var(--text-dim);}
  .chk-bump input{margin-top:3px; flex:none; accent-color:var(--gold); width:16px; height:16px; cursor:pointer;}
  .chk-bump strong{color:var(--text);}
