/* Ajustes cirúrgicos da versão 81. */

/* O brilho pertence somente ao topo do portal e não acompanha a rolagem. */
.app-main:before{
  position:absolute;
  left:0;
  top:76px;
  height:330px;
  opacity:.78;
  background:radial-gradient(circle at 82% 0,rgba(40,116,172,.105),transparent 43%);
}

/* Motion: o conjunto inteiro escala junto, preservando caminho, avião e pins. */
.journey-map{
  --journey-scale:1.15;
  min-width:0;
  min-height:220px;
  overflow:hidden;
}
.journey-motion{
  position:absolute;
  left:50%;
  top:50%;
  width:320px;
  height:220px;
  transform:translate(-50%,-50%) scale(var(--journey-scale));
  transform-origin:center;
}
.journey-map .journey-route{
  inset:0;
  width:320px;
  max-width:none;
  height:220px;
}

/* Cursos: ações lado a lado e avanço direto para a próxima aula. */
.course-lesson-actions{display:flex;flex:0 0 auto;gap:10px;align-items:center}
.course-lesson-head .course-lesson-actions button{min-width:154px}
.course-lesson-head .course-lesson-actions button:disabled{
  cursor:not-allowed;
  opacity:.52;
  color:#9eacba;
  background:#101f2f;
  border-color:rgba(255,255,255,.12);
}

/* Roteiros: mesma ocupação útil da biblioteca de e-books, sem cortar capas. */
.route-library{width:100%;max-width:none;margin:0}
.route-cover-stage{height:282px;padding:14px 20px 10px}
.route-cover-stage img{
  width:auto;
  max-width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}

/* Call: ocupa a mesma largura útil das demais páginas internas. */
.call-view .ultra-live-hub{width:100%;max-width:none;margin:0}

/* Itens essenciais: fundo branco uniforme em todas as imagens. */
.product-grid img{background:#fff}

/* A busca pertence ao Início; o atributo hidden controla as demais páginas internas. */
.app-topbar .search[hidden]{display:none!important}

@media(max-width:900px){
  .journey-map{
    display:block;
    --journey-scale:.95;
    min-height:220px;
    margin-top:12px;
  }
}

@media(max-width:700px){
  .course-lesson-actions{width:100%;flex-direction:column}
  .course-lesson-head .course-lesson-actions button{width:100%;min-width:0}
}

@media(max-width:600px){
  .journey-map{
    display:block;
    --journey-scale:.78;
    min-height:185px;
    margin-top:10px;
  }
}

@media(min-width:1500px){.journey-map{--journey-scale:1.28}}
/* Evita o zoom automático do iOS ao focar cadastro/login sem bloquear o zoom acessível da página. */
@media (max-width: 768px) {
  .auth-panel input:not([type="checkbox"]):not([type="radio"]),
  .auth-panel select,
  .auth-panel textarea,
  .form-step input:not([type="checkbox"]):not([type="radio"]),
  .form-step select,
  .form-step textarea,
  #memberArea input:not([type="checkbox"]):not([type="radio"]),
  #memberArea select,
  #memberArea textarea {
    font-size: 16px !important;
  }
}

/* v87 — refinamento exclusivo do portal em telas pequenas. */
@media (max-width: 700px) {
  /* O convite de upgrade aparece somente ao tentar abrir conteúdo bloqueado. */
  .app-topbar .premium-pill{display:none!important}
  .app-topbar:has(.search[hidden]){display:none!important}
  .app-topbar{grid-template-columns:minmax(0,1fr);padding:10px 12px;min-height:0}
  .app-topbar .search{max-width:none;padding:11px 13px}

  /* Leitor de PDF: conteúdo ganha prioridade sobre metadados no celular. */
  #contentModal{padding:8px;align-items:stretch}
  #contentModal .pdf-modal{
    height:calc(100dvh - 16px);
    max-height:calc(100dvh - 16px);
    padding:8px;
    border-radius:15px;
  }
  #contentModal .pdf-header,
  #contentModal .pdf-modal>.modal-close,
  #contentModal .pdf-progress,
  #contentModal .pdf-scroll-page small{display:none!important}
  #contentModal .pdf-shell{border-radius:10px}
  #contentModal .pdf-scroll{padding:4px;gap:9px}
  #contentModal .pdf-page-surface{max-width:100%;zoom:var(--pdf-zoom)}
  #contentModal .pdf-footer{padding:9px 4px 2px;gap:7px}
  #contentModal .pdf-footer-actions{display:grid;grid-template-columns:auto minmax(118px,1fr) auto;gap:7px}
  #contentModal .pdf-download-button{padding:9px 10px}
  #contentModal .pdf-zoom-controls{justify-content:space-between;gap:3px}
  #contentModal .pdf-zoom-controls button{width:32px;height:32px}
  #contentModal .pdf-footer .text-button{white-space:nowrap;font-size:10px}

  /* Capas completas e títulos compactos nas bibliotecas. */
  .library-cover-stage,
  .route-cover-stage{
    height:clamp(250px,76vw,320px);
    padding:22px 26px 18px;
    overflow:visible;
  }
  .library-cover-stage img,
  .route-cover-stage img{
    width:100%;
    height:100%;
    max-width:100%;
    max-height:100%;
    object-fit:contain!important;
    object-position:center!important;
  }
  .library-product-card .course-body h3{
    display:block;
    height:auto;
    min-height:0;
    margin-bottom:9px;
    overflow:hidden;
    font-size:clamp(15px,4.25vw,18px);
    line-height:1.2;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  /* Menu Mais: mesma linguagem de ícones lineares do menu principal. */
  .more-menu-card{padding:28px 20px}
  .more-menu-card h2{margin-bottom:16px;font-size:30px}
  .more-menu-grid{gap:8px}
  .more-menu-grid button{min-height:58px;padding:11px 14px;border-radius:12px;background:#fbfcfd}
  .more-menu-grid button>span{
    flex:0 0 36px;
    width:36px;
    height:36px;
    color:#173b60;
    background:#fff8e7;
    border:1px solid rgba(216,168,78,.34);
    border-radius:10px;
    box-shadow:none;
  }
  .more-menu-grid button>span svg{width:19px;height:19px}
  .more-menu-grid [data-more-upgrade]>span{
    color:transparent;
    background:#fff8e7 url('/assets/ui/favicon-passaporte.svg?v=92') center/25px 25px no-repeat;
  }

  /* O bloqueio usa a marca do Passaporte, sem o ícone genérico. */
  .plan-gate-icon{
    width:64px;
    height:64px;
    color:transparent;
    border-radius:14px;
    background:transparent url('/assets/ui/favicon-passaporte.svg?v=92') center/contain no-repeat;
    box-shadow:none;
  }

  /* Ações da aula lado a lado e explicação do desbloqueio logo abaixo. */
  .course-lesson-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:8px;
  }
  .course-lesson-head .course-lesson-actions button{
    width:100%;
    min-width:0;
    padding:11px 7px;
    font-size:10px;
    line-height:1.25;
  }
  .course-lesson-actions:after{
    content:'A próxima aula é liberada depois que esta aula for concluída.';
    grid-column:1/-1;
    color:#93a3b2;
    font:500 9px/1.5 var(--sans);
  }

  /* Parceiros: logo e chamada juntas, descrição e ação sem espaços vazios. */
  .benefit-grid{gap:12px}
  .benefit-grid article{
    display:grid;
    grid-template-columns:62px minmax(0,1fr);
    grid-template-rows:auto auto auto auto;
    column-gap:14px;
    padding:18px;
  }
  .benefit-grid article>span.partner-logo{
    grid-column:1;
    grid-row:1/3;
    width:62px;
    height:62px;
    margin:0;
  }
  .benefit-grid small{grid-column:2;grid-row:1;align-self:end}
  .benefit-grid h3{
    grid-column:2;
    grid-row:2;
    min-height:0;
    margin:4px 0 0;
    font-size:18px;
    line-height:1.18;
  }
  .benefit-grid p{
    grid-column:1/-1;
    grid-row:3;
    min-height:0;
    margin:14px 0 12px;
    font-size:11px;
  }
  .benefit-grid a{grid-column:1/-1;grid-row:4;margin:0}
}

@media (max-width: 390px) {
  #contentModal .pdf-footer-actions{grid-template-columns:auto minmax(106px,1fr) auto}
  #contentModal .pdf-download-button{font-size:9px}
  #contentModal .pdf-zoom-controls output{font-size:9px}
  .course-lesson-head .course-lesson-actions button{font-size:9px}
}
