/* =========================================================
   Lups — estilos (site do produto, portal da escola, painel, app do aluno)
   ========================================================= */
:root{
  --pri:#0f5132; --pri-esc:#0a3a24; --sec:#f5b301;
  --txt:#1c2421; --txt2:#5b6661; --borda:#e3e8e5; --fundo:#f6f7f5; --card:#fff;
  --ok:#1e8449; --erro:#b42318; --aviso:#b54708; --info:#175cd3;
  --raio:12px; --sombra:0 1px 2px rgba(16,24,20,.05),0 4px 16px rgba(16,24,20,.06);
  --serif:Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--txt);background:var(--fundo);line-height:1.55;font-size:16px}
img{max-width:100%;display:block}
a{color:var(--pri)}
h1,h2,h3{line-height:1.2;margin:0 0 .5em}
.container{max-width:1180px;margin:0 auto;padding:0 16px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--txt2)} .small{font-size:.85rem} .center{text-align:center} .right{text-align:right}
.mt{margin-top:1rem} .mb{margin-bottom:1rem} .mt2{margin-top:2rem}
.flex{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap} .between{justify-content:space-between}
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ---------- Botões / formulários ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.05rem;border-radius:9px;border:1px solid transparent;
  background:var(--pri);color:#fff;font:600 .95rem var(--sans);cursor:pointer;text-decoration:none;white-space:nowrap;transition:.15s}
.btn:hover{background:var(--pri-esc)}
.btn-sec{background:#fff;color:var(--txt);border-color:var(--borda)} .btn-sec:hover{background:#f0f2f1}
.btn-ouro{background:var(--sec);color:#2b2100} .btn-ouro:hover{filter:brightness(.95);background:var(--sec)}
.btn-perigo{background:var(--erro)} .btn-perigo:hover{background:#8f1c13}
.btn-peq{padding:.35rem .7rem;font-size:.85rem} .btn-gde{padding:.85rem 1.4rem;font-size:1.05rem}
.btn-bloco{width:100%}
.btn-link{background:none;border:0;color:var(--pri);padding:0;font:inherit;cursor:pointer;text-decoration:underline}
label{display:block;font-weight:600;font-size:.9rem;margin:.75rem 0 .3rem}
input:not([type]),input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=datetime-local],input[type=search],input[type=url],input[type=tel],select,textarea{
  width:100%;padding:.65rem .8rem;border:1px solid #cdd5d0;border-radius:9px;font:inherit;background:#fff;color:var(--txt)}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--pri) 40%,transparent);border-color:var(--pri)}
textarea{min-height:120px;resize:vertical}
input[type=color]{width:56px;height:40px;border:1px solid #cdd5d0;border-radius:8px;padding:2px;background:#fff}
.dica{font-size:.82rem;color:var(--txt2);margin-top:.25rem}
.check{display:flex;gap:.5rem;align-items:center;font-weight:500}
.check input{width:auto}
.form-acoes{display:flex;gap:.6rem;margin-top:1.25rem;flex-wrap:wrap}

/* ---------- Alertas / etiquetas ---------- */
.alerta{padding:.8rem 1rem;border-radius:10px;margin-bottom:.75rem;border:1px solid}
.alerta-ok{background:#ecfdf3;border-color:#abefc6;color:#05603a}
.alerta-erro{background:#fef3f2;border-color:#fecdca;color:#912018}
.alerta-aviso{background:#fffaeb;border-color:#fedf89;color:#93370d}
.alerta-info{background:#eff8ff;border-color:#b2ddff;color:#175cd3}
.tag{display:inline-block;padding:.15rem .55rem;border-radius:99px;font-size:.75rem;font-weight:700;background:#eef2f0;color:var(--txt2)}
.tag-ok{background:#dcfae6;color:#067647} .tag-erro{background:#fee4e2;color:#b42318}
.tag-aviso{background:#fef0c7;color:#93370d} .tag-info{background:#d1e9ff;color:#175cd3}

/* ---------- Cartões / tabelas ---------- */
.card{background:var(--card);border:1px solid var(--borda);border-radius:var(--raio);padding:1.25rem;box-shadow:var(--sombra)}
.card h2{font-size:1.15rem}
.tabela-wrap{overflow-x:auto;background:#fff;border:1px solid var(--borda);border-radius:var(--raio)}
table{width:100%;border-collapse:collapse;font-size:.93rem}
th,td{padding:.65rem .8rem;text-align:left;border-bottom:1px solid var(--borda);vertical-align:middle}
th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--txt2);background:#fafbfa}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fafcfb}
.vazio{text-align:center;padding:2.5rem 1rem;color:var(--txt2)}
.paginacao{display:flex;gap:.35rem;justify-content:center;margin:1.25rem 0;flex-wrap:wrap}
.paginacao a,.paginacao span{padding:.4rem .75rem;border-radius:8px;border:1px solid var(--borda);background:#fff;text-decoration:none;color:var(--txt)}
.paginacao .atual{background:var(--pri);color:#fff;border-color:var(--pri)}

/* =================== PORTAL PÚBLICO (jornal) =================== */
.topo-faixa{background:var(--pri-esc);color:#d7e6dd;font-size:.82rem}
.topo-faixa .container{display:flex;justify-content:space-between;gap:1rem;padding-top:.4rem;padding-bottom:.4rem;flex-wrap:wrap}
.topo-faixa a{color:#fff;text-decoration:none}
.cabecalho{background:#fff;border-bottom:1px solid var(--borda)}
.cabecalho .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;padding-bottom:1rem}
.marca{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--txt)}
.marca img{width:54px;height:54px;object-fit:contain}
.marca .selo{width:54px;height:54px;border-radius:14px;background:var(--pri);color:var(--sec);display:grid;place-items:center;font:700 1.35rem var(--serif)}
.marca b{display:block;font:700 1.45rem/1.1 var(--serif);letter-spacing:-.01em}
.marca span{font-size:.8rem;color:var(--txt2);text-transform:uppercase;letter-spacing:.08em}
.busca-topo{display:flex;max-width:300px;flex:1}
.busca-topo input{border-radius:9px 0 0 9px}
.busca-topo button{border-radius:0 9px 9px 0}
.menu{background:var(--pri);position:sticky;top:0;z-index:20;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.menu .container{display:flex;align-items:center;gap:.15rem;overflow-x:auto;scrollbar-width:none}
.menu .container::-webkit-scrollbar{display:none}
.menu a{color:#e8f1ec;text-decoration:none;padding:.85rem .85rem;font-weight:600;font-size:.92rem;white-space:nowrap;border-bottom:3px solid transparent}
.menu a:hover,.menu a.ativo{color:#fff;border-bottom-color:var(--sec)}
.menu .dir{margin-left:auto}
.aviso-faixa{background:var(--sec);color:#2b2100;font-weight:600;font-size:.92rem}
.aviso-faixa .container{padding-top:.5rem;padding-bottom:.5rem}
.aviso-faixa a{color:#2b2100}
main.portal{padding:1.5rem 0 3rem}

.secao-titulo{display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--txt);margin:2rem 0 1rem;padding-bottom:.35rem}
.secao-titulo h2{font:700 1.35rem var(--serif);margin:0;text-transform:uppercase;letter-spacing:.02em}
.secao-titulo a{font-size:.88rem;font-weight:600;text-decoration:none}

.manchete{display:grid;grid-template-columns:1.6fr 1fr;gap:1.25rem}
@media(max-width:860px){.manchete{grid-template-columns:1fr}}
.destaque-principal{position:relative;border-radius:var(--raio);overflow:hidden;min-height:400px;background:var(--pri-esc);display:flex;align-items:flex-end;color:#fff;text-decoration:none}
.destaque-principal img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.destaque-principal::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(0,0,0,.82))}
.destaque-principal .txt{position:relative;z-index:1;padding:1.5rem}
.destaque-principal h1{font:700 2rem/1.15 var(--serif);margin:.4rem 0}
.destaque-principal p{margin:0;opacity:.9}
.lista-lateral{display:flex;flex-direction:column;gap:1rem}
.mini{display:grid;grid-template-columns:120px 1fr;gap:.8rem;text-decoration:none;color:var(--txt);background:#fff;border-radius:var(--raio);overflow:hidden;border:1px solid var(--borda)}
.mini img,.mini .sem-img{width:120px;height:100%;min-height:96px;object-fit:cover}
.mini div{padding:.6rem .6rem .6rem 0}
.mini h3{font:700 1rem/1.25 var(--serif);margin:.25rem 0 0}
.chapeu{display:inline-block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--cor,var(--pri))}
.destaque-principal .chapeu{background:var(--cor,var(--sec));color:#fff;padding:.2rem .55rem;border-radius:4px}
.sem-img{background:linear-gradient(135deg,var(--pri),var(--pri-esc));display:grid;place-items:center;color:rgba(255,255,255,.55);font:700 1.6rem var(--serif)}

.noticia-card{background:#fff;border-radius:var(--raio);overflow:hidden;border:1px solid var(--borda);text-decoration:none;color:var(--txt);display:flex;flex-direction:column;transition:.15s}
.noticia-card:hover{transform:translateY(-2px);box-shadow:var(--sombra)}
.noticia-card img,.noticia-card .sem-img{aspect-ratio:16/9;width:100%;object-fit:cover}
.noticia-card .corpo{padding:1rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.noticia-card h3{font:700 1.12rem/1.3 var(--serif);margin:0}
.noticia-card p{margin:0;color:var(--txt2);font-size:.92rem}
.noticia-card time{margin-top:auto;font-size:.8rem;color:var(--txt2)}

.duas-col{display:grid;grid-template-columns:1fr 340px;gap:2rem}
@media(max-width:960px){.duas-col{grid-template-columns:1fr}}
.lateral .card{margin-bottom:1rem}
.evento-item{display:flex;gap:.8rem;text-decoration:none;color:var(--txt);padding:.6rem 0;border-bottom:1px solid var(--borda)}
.evento-item:last-child{border-bottom:0}
.data-bloco{flex:0 0 56px;height:60px;border-radius:10px;background:var(--pri);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.data-bloco b{font-size:1.45rem} .data-bloco span{font-size:.7rem;font-weight:700;color:var(--sec);margin-top:2px}
.evento-item h4{margin:0 0 .15rem;font-size:.97rem}
.top-leitor{display:flex;align-items:center;gap:.7rem;padding:.45rem 0}
.pos{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:#eef2f0;font-size:.85rem;flex:0 0 30px}
.pos.p1{background:#f5c518;color:#3d2f00}.pos.p2{background:#cfd8dc}.pos.p3{background:#e0a46b;color:#3d1f00}

.artigo{background:#fff;border-radius:var(--raio);padding:2rem;border:1px solid var(--borda)}
@media(max-width:600px){.artigo{padding:1.1rem}}
.artigo h1{font:700 2.2rem/1.15 var(--serif);margin:.4rem 0 .6rem}
@media(max-width:600px){.artigo h1{font-size:1.65rem}}
.artigo .linha-fina{font-size:1.15rem;color:var(--txt2);margin:0 0 1rem}
.artigo .meta{font-size:.85rem;color:var(--txt2);border-top:1px solid var(--borda);border-bottom:1px solid var(--borda);padding:.6rem 0;margin-bottom:1.25rem}
.artigo .capa{border-radius:10px;margin-bottom:1.25rem;width:100%}
.texto{font-size:1.08rem;line-height:1.75}
.texto h2{font:700 1.45rem var(--serif);margin:1.6rem 0 .6rem}.texto h3{font-size:1.15rem;margin:1.3rem 0 .5rem}
.texto img{border-radius:10px;margin:1rem 0}
.texto figure{margin:1.25rem 0}.texto figcaption{font-size:.85rem;color:var(--txt2);text-align:center}
.texto blockquote{border-left:4px solid var(--sec);margin:1.25rem 0;padding:.4rem 1rem;font:italic 1.15rem var(--serif);color:#3a4540;background:#fffbea}
.video{position:relative;aspect-ratio:16/9;margin:1.25rem 0}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:10px}
.compartilhar{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.5rem}

.hero-bib{background:linear-gradient(120deg,var(--pri-esc),var(--pri));color:#fff;border-radius:var(--raio);padding:2rem;display:grid;grid-template-columns:1.3fr 1fr;gap:1.5rem;align-items:center}
@media(max-width:760px){.hero-bib{grid-template-columns:1fr}}
.hero-bib h1{font:700 2rem var(--serif)} .hero-bib p{opacity:.9}
.hero-bib .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.hero-bib .stats div{background:rgba(255,255,255,.1);border-radius:10px;padding:.8rem;text-align:center}
.hero-bib .stats b{display:block;font-size:1.6rem;color:var(--sec)}

.rodape{background:#0b1426;color:#a9b6cc;padding:2.5rem 0 1.5rem;font-size:.9rem}
.rodape a{color:#e6efe9;text-decoration:none}
.rodape .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
@media(max-width:760px){.rodape .cols{grid-template-columns:1fr}}
.rodape h4{color:#fff;margin:0 0 .6rem}
.rodape ul{list-style:none;padding:0;margin:0}.rodape li{margin:.3rem 0}
.rodape .copy{border-top:1px solid #1e2c47;margin-top:2rem;padding-top:1rem;font-size:.8rem}

/* Catálogo / quiosque */
.catalogo-busca{display:flex;gap:.5rem;margin-bottom:1.25rem}
.catalogo-busca input{font-size:1.15rem;padding:.9rem 1rem}
.obra-card{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:1rem;display:flex;gap:1rem;text-decoration:none;color:var(--txt)}
.obra-capa{flex:0 0 70px;height:100px;border-radius:6px;background:linear-gradient(160deg,var(--pri),var(--pri-esc));color:var(--sec);display:grid;place-items:center;font:700 1.4rem var(--serif);overflow:hidden}
.obra-capa img{width:100%;height:100%;object-fit:cover}
.obra-card h3{margin:0 0 .2rem;font-size:1.05rem}
body.quiosque .menu,body.quiosque .topo-faixa,body.quiosque .rodape,body.quiosque .busca-topo{display:none}
body.quiosque{font-size:18px}
.quiosque-aviso{position:fixed;bottom:16px;right:16px;background:#000c;color:#fff;padding:.5rem .9rem;border-radius:99px;font-size:.85rem;display:none}

/* Ranking */
.podio{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:1rem;align-items:end;margin:1rem 0 2rem}
.podio .lugar{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);text-align:center;padding:1.2rem .8rem}
.podio .l1{padding-top:2rem;border-color:#f5c518;box-shadow:0 8px 24px rgba(245,197,24,.25)}
.podio .medalha{font-size:2.4rem}
.podio b{display:block;font-size:1.05rem}
.avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;margin:0 auto .5rem;background:var(--pri);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.3rem}

/* =================== PAINEL =================== */
.painel{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.lateral-painel{background:#0b1c3d;color:#b9c6de;padding:1rem .75rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.lateral-painel .marca-p{display:flex;gap:.6rem;align-items:center;color:#fff;text-decoration:none;padding:.3rem .5rem 1rem}
.lateral-painel .marca-p .selo{width:38px;height:38px;border-radius:10px;background:var(--sec);color:#fff;display:grid;place-items:center;font:800 1rem var(--serif)}
.lateral-painel .marca-p b{font-size:.95rem;line-height:1.2}
.nav-grupo{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#7d8fb3;margin:1rem .6rem .35rem}
.lateral-painel a.item{display:flex;gap:.6rem;align-items:center;color:#d3dcee;text-decoration:none;padding:.5rem .65rem;border-radius:8px;font-size:.92rem}
.lateral-painel a.item:hover{background:#16305e;color:#fff}
.lateral-painel a.item.ativo{background:var(--pri);color:#fff}
.lateral-painel .ic{width:20px;text-align:center}
.conteudo-painel{min-width:0}
.barra-topo{background:#fff;border-bottom:1px solid var(--borda);padding:.7rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;position:sticky;top:0;z-index:10}
.barra-topo .menu-btn{display:none}
.area{padding:1.5rem;max-width:1280px}
.cab-pagina{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}
.cab-pagina h1{font-size:1.55rem;margin:0}
.cab-pagina p{margin:.2rem 0 0;color:var(--txt2)}
.kpi{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:1rem 1.1rem}
.kpi span{font-size:.8rem;color:var(--txt2);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.kpi b{display:block;font-size:1.9rem;line-height:1.1;margin-top:.2rem}
.kpi.alerta-k b{color:var(--erro)}
.filtros{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;align-items:flex-end}
.filtros > *{flex:0 1 auto}
.filtros input[type=search]{min-width:220px}
.filtros select,.filtros input{width:auto}
@media(max-width:860px){
  .painel{grid-template-columns:1fr}
  .lateral-painel{position:fixed;left:-270px;width:260px;z-index:50;transition:.2s}
  .lateral-painel.aberta{left:0;box-shadow:0 0 0 100vmax rgba(0,0,0,.4)}
  .barra-topo .menu-btn{display:inline-flex}
  .area{padding:1rem}
}

/* Balcão */
.balcao{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
@media(max-width:900px){.balcao{grid-template-columns:1fr}}
.campo-scanner{display:flex;gap:.5rem}
.campo-scanner input{font-size:1.3rem;padding:.8rem 1rem;font-family:ui-monospace,monospace;letter-spacing:.04em}
.leitor-box{display:flex;gap:1rem;align-items:center;padding:1rem;border-radius:var(--raio);border:2px solid var(--borda);margin-top:1rem}
.leitor-box.ok{border-color:#47cd89;background:#f6fef9}
.leitor-box.bloq{border-color:#f97066;background:#fffbfa}
.leitor-box img,.leitor-box .avatar{width:72px;height:72px;border-radius:12px;object-fit:cover;margin:0}
.semaforo{font-size:1.1rem;font-weight:800}
.semaforo.ok{color:var(--ok)}.semaforo.bloq{color:var(--erro)}
.resultado{margin-top:.75rem}
.scanner-video{width:100%;max-width:420px;border-radius:10px;overflow:hidden;margin-top:.75rem}

/* Importação */
.mapa-tabela select{min-width:150px;font-size:.85rem;padding:.4rem}
.mapa-tabela td,.mapa-tabela th{white-space:nowrap}
.linha-erro td{background:#fef3f2}
.linha-ignorada td{opacity:.4;text-decoration:line-through}
.passos{display:flex;gap:.5rem;margin-bottom:1.25rem;flex-wrap:wrap}
.passos span{padding:.35rem .8rem;border-radius:99px;background:#eef2f0;font-size:.85rem;font-weight:600;color:var(--txt2)}
.passos span.at{background:var(--pri);color:#fff}
.zona-arquivo{border:2px dashed #b9c6bf;border-radius:var(--raio);padding:2rem;text-align:center;background:#fafcfb;cursor:pointer}
.zona-arquivo.sobre{border-color:var(--pri);background:#eef7f2}

/* Editor de texto */
.editor-barra{display:flex;gap:.25rem;flex-wrap:wrap;border:1px solid #cdd5d0;border-bottom:0;border-radius:9px 9px 0 0;padding:.35rem;background:#fafbfa}
.editor-barra button{border:1px solid transparent;background:none;padding:.3rem .55rem;border-radius:6px;cursor:pointer;font-weight:700;font-size:.85rem}
.editor-barra button:hover{background:#e9eeeb;border-color:var(--borda)}
.editor-texto{border-radius:0 0 9px 9px!important;min-height:340px;font-family:ui-monospace,Menlo,monospace;font-size:.93rem}
.previa{border:1px dashed var(--borda);border-radius:9px;padding:1rem;background:#fff;max-height:500px;overflow:auto}

/* =================== APP DO ALUNO =================== */
.app{max-width:640px;margin:0 auto;padding:0 0 90px;min-height:100vh;background:var(--fundo)}
.app-topo{background:linear-gradient(135deg,var(--pri),var(--pri-esc));color:#fff;padding:1.2rem 1.1rem 4.5rem;border-radius:0 0 26px 26px}
.app-topo .flex{justify-content:space-between}
.app-corpo{padding:0 1rem;margin-top:-3.6rem}
.perfil-card{background:#fff;border-radius:18px;padding:1.1rem;box-shadow:var(--sombra);display:flex;gap:1rem;align-items:center}
.perfil-card .foto{width:76px;height:76px;border-radius:16px;object-fit:cover;background:var(--pri);color:#fff;display:grid;place-items:center;font-size:1.6rem;font-weight:800;flex:0 0 76px}
.nivel-barra{height:10px;background:#eef2f0;border-radius:99px;overflow:hidden;margin:.35rem 0}
.nivel-barra i{display:block;height:100%;background:linear-gradient(90deg,var(--sec),#ff8a00);border-radius:99px}
.app-sec{margin-top:1.2rem}
.app-sec h2{font-size:1.02rem;margin-bottom:.5rem}
.livro-item{background:#fff;border-radius:14px;padding:.85rem 1rem;border:1px solid var(--borda);margin-bottom:.6rem}
.livro-item.atrasado{border-color:#fda29b;background:#fffbfa}
.medalhas{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.medalha{background:#fff;border:1px solid var(--borda);border-radius:14px;padding:.7rem .4rem;text-align:center;font-size:.75rem}
.medalha i{font-style:normal;font-size:1.8rem;display:block}
.medalha.off{opacity:.35;filter:grayscale(1)}
.app-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--borda);display:flex;justify-content:space-around;padding:.45rem 0 calc(.45rem + env(safe-area-inset-bottom));z-index:30}
.app-nav a{display:flex;flex-direction:column;align-items:center;font-size:.72rem;color:var(--txt2);text-decoration:none;gap:.1rem;padding:0 .6rem}
.app-nav a i{font-style:normal;font-size:1.35rem}
.app-nav a.ativo{color:var(--pri);font-weight:700}

/* Login */
.tela-login{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(135deg,var(--pri-esc),var(--pri))}
.tela-login .card{width:100%;max-width:400px;padding:2rem}
.tela-login .selo-g{width:64px;height:64px;border-radius:16px;background:var(--sec);color:var(--pri-esc);display:grid;place-items:center;font:800 1.6rem var(--serif);margin:0 auto 1rem}

/* =================== CARTEIRINHA =================== */
.carteirinhas{display:flex;flex-wrap:wrap;gap:6mm;justify-content:flex-start}
.carteirinha{width:85.6mm;height:54mm;border-radius:3.5mm;overflow:hidden;position:relative;background:#fff;border:.3mm solid #cfd8d3;
  display:flex;flex-direction:column;font-family:var(--sans);break-inside:avoid;page-break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.carteirinha .ct-topo{background:var(--pri);color:#fff;padding:2mm 5mm 2mm 3mm;display:flex;justify-content:space-between;align-items:center}
.carteirinha .ct-topo b{font-size:3.2mm;line-height:1.1}
.carteirinha .ct-topo span{font-size:2.3mm;color:var(--sec);font-weight:800;letter-spacing:.3mm}
.carteirinha .ct-corpo{display:flex;gap:3mm;padding:2.5mm 5mm 1mm 3mm;flex:1}
.carteirinha .ct-foto{width:20mm;height:25mm;border-radius:1.5mm;object-fit:cover;background:#e8eeea;display:grid;place-items:center;color:#7d8c84;font-weight:800;font-size:5mm;flex:0 0 20mm}
.carteirinha .ct-dados{font-size:2.6mm;line-height:1.35;min-width:0}
.carteirinha .ct-dados .nome{font-size:3.3mm;font-weight:800;line-height:1.15;margin-bottom:1mm}
.carteirinha .ct-dados small{display:block;color:#6a7871;font-size:2mm;text-transform:uppercase;letter-spacing:.2mm}
.carteirinha .ct-barra{padding:0 3mm 1.5mm;text-align:center}
.carteirinha .ct-barra svg{height:9mm;width:auto;max-width:100%}
.carteirinha .faixa{position:absolute;right:0;bottom:0;width:3mm;height:100%;background:var(--sec)}

/* =================== ETIQUETAS =================== */
.folha-etiquetas{background:#fff;margin:0 auto 10mm;box-shadow:0 0 0 1px #ddd;display:grid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.etiqueta{display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;text-align:center;padding:1mm}
.etiqueta .esc{font-size:2.2mm;font-weight:700;text-transform:uppercase;letter-spacing:.2mm;white-space:nowrap;overflow:hidden;max-width:100%}
.etiqueta svg{max-width:100%;height:auto}
.mostrar-bordas .etiqueta{outline:.2mm dashed #bbb}

/* =================== IMPRESSÃO =================== */
.so-impressao{display:none}
@media print{
  @page{margin:10mm}
  body{background:#fff}
  .nao-imprimir,.lateral-painel,.barra-topo,.menu,.topo-faixa,.rodape,.app-nav,.cabecalho{display:none!important}
  .painel{display:block}.area{padding:0;max-width:none}
  .so-impressao{display:block}
  .card,.tabela-wrap{box-shadow:none;border-color:#999}
  .quebra{page-break-before:always}
  body.so-resultado .area > *:not(#resultado){display:none!important}
  a{color:inherit;text-decoration:none}
}
@media(max-width:600px){
  .busca-topo{display:none}
  .marca b{font-size:1.2rem} .marca span{font-size:.7rem}
  .topo-faixa .container > span:first-child{display:none}
  .destaque-principal{min-height:300px} .destaque-principal h1{font-size:1.5rem}
}

/* =================== SITE DO PRODUTO (lups.com.br) ===================
   Paleta da marca: azul-marinho #0b2e66 · marinho profundo #061a3f · verde-azulado #06a09b · laranja #ff7001 */
body.lp{--lp-marinho:#0b2e66;--lp-fundo:#061a3f;--lp-teal:#06a09b;--lp-laranja:#ff7001;background:#fff}
.lp-topo{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid #e6ebf3}
.lp-topo .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.7rem;padding-bottom:.7rem}
.lp-marca{text-decoration:none;color:var(--lp-marinho)}
.lp-nav{display:flex;align-items:center;gap:1.2rem}
.lp-nav a{color:#24324d;text-decoration:none;font-weight:600;font-size:.93rem}
.lp-nav a:hover{color:var(--lp-teal)}
.lp-nav .lp-btn-entrar{color:#fff;background:var(--lp-marinho)}
@media(max-width:760px){.lp-nav a:not(.lp-btn-entrar):not(.lp-btn-instalar){display:none}}
.lp-hero{background:radial-gradient(1100px 500px at 75% 10%,rgba(6,160,155,.35),transparent 60%),linear-gradient(160deg,var(--lp-fundo),var(--lp-marinho) 70%);color:#fff;padding:4.5rem 0 4rem;overflow:hidden}
.lp-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center}
@media(max-width:900px){.lp-hero-grid{grid-template-columns:1fr}.lp-mock{display:none}}
.lp-selo{display:inline-block;background:rgba(6,160,155,.2);border:1px solid rgba(6,160,155,.55);color:#9fe7e3;padding:.3rem .8rem;border-radius:99px;font-size:.8rem;font-weight:700;letter-spacing:.02em}
.lp-hero h1{font:900 clamp(2.1rem,4.6vw,3.4rem)/1.08 var(--sans);letter-spacing:-.02em;margin:1rem 0}
.lp-hero h1 em{font-style:normal;color:var(--lp-laranja)}
.lp-sub{font-size:1.15rem;color:#c9d6ea;max-width:36rem}
.lp-cta{background:var(--lp-laranja)!important;color:#fff!important;border-color:transparent}
.lp-cta:hover{filter:brightness(1.06)}
.lp-hero .btn-sec{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.lp-hero .btn-sec:hover{background:rgba(255,255,255,.08)}
.lp-numeros{display:flex;gap:2rem;margin-top:2.2rem;flex-wrap:wrap}
.lp-numeros b{display:block;font-size:1.9rem;color:#fff;line-height:1}
.lp-numeros span{font-size:.82rem;color:#9fb3d1}
.lp-mock{position:relative;display:flex;justify-content:center}
.lp-tel{width:290px;background:#f4f7fb;border-radius:34px;padding:12px;box-shadow:0 30px 80px rgba(0,0,0,.45),0 0 0 8px #0d1d3f;color:var(--txt);transform:rotate(2deg)}
.lp-tel-topo{background:linear-gradient(135deg,var(--lp-marinho),var(--lp-fundo));color:#fff;border-radius:24px 24px 16px 16px;padding:1rem 1rem 2.2rem}
.lp-tel-topo small{display:block;opacity:.7;font-size:.7rem}
.lp-tel-card{background:#fff;border-radius:14px;margin:-1.6rem .4rem 0;padding:.7rem;display:flex;gap:.6rem;align-items:center;box-shadow:var(--sombra);font-size:.85rem}
.lp-tel-card small{display:block;color:var(--txt2);font-size:.72rem}
.lp-tel-card .nivel-barra{height:7px}
.lp-avatar{width:44px;height:44px;border-radius:12px;background:var(--lp-teal);color:#fff;display:grid;place-items:center;font-weight:800;flex:0 0 44px}
.lp-tel-ok{margin:.6rem .4rem 0;background:#ecfdf3;color:#05603a;border-radius:10px;padding:.45rem .6rem;font-size:.75rem;font-weight:600}
.lp-tel-livro{margin:.5rem .4rem 0;background:#fff;border-radius:10px;padding:.55rem .6rem;font-size:.8rem;display:flex;flex-direction:column;gap:.3rem;border:1px solid var(--borda)}
.lp-tel-livro .tag{align-self:flex-start}
.lp-tel-meds{display:flex;justify-content:space-between;margin:.6rem .4rem 0;font-size:1.35rem}
.lp-tel-meds .off{filter:grayscale(1);opacity:.3}
.lp-tel-rank{margin:.6rem .4rem .3rem;text-align:center;font-size:.78rem;font-weight:700;color:var(--lp-marinho)}
.lp-etq{position:absolute;left:-10px;bottom:-14px;background:#fff;border-radius:8px;padding:6px 10px;width:150px;box-shadow:0 12px 30px rgba(0,0,0,.35);transform:rotate(-7deg)}
.lp-sec{padding:4.5rem 0}
.lp-sec-alt{background:#f3f6fb}
.lp-h2{font:900 clamp(1.6rem,3vw,2.2rem)/1.15 var(--sans);text-align:center;color:var(--lp-marinho);letter-spacing:-.01em;margin-bottom:.6rem}
.lp-card{background:#fff;border:1px solid #e3e9f3;border-radius:16px;padding:1.5rem;transition:.18s}
.lp-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(11,46,102,.1);border-color:rgba(6,160,155,.45)}
.lp-card h3{color:var(--lp-marinho);font-size:1.12rem;margin:.6rem 0 .35rem}
.lp-card p{color:#4f5d75;margin:0;font-size:.95rem}
.lp-ic{width:48px;height:48px;border-radius:12px;background:rgba(6,160,155,.12);display:grid;place-items:center;font-size:1.5rem}
.lp-passos > div{background:#fff;border-radius:16px;padding:1.5rem;border:1px solid #e3e9f3}
.lp-passos span{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--lp-laranja);color:#fff;font-weight:900}
.lp-passos h3{color:var(--lp-marinho);margin:.7rem 0 .3rem}
.lp-passos p{color:#4f5d75;margin:0}
.lp-lgpd{display:grid;grid-template-columns:1.6fr 1fr;gap:2rem;align-items:center}
.lp-lgpd p{color:#4f5d75;font-size:1.05rem}
.lp-escudo{font-size:9rem;text-align:center;filter:drop-shadow(0 18px 30px rgba(11,46,102,.25))}
@media(max-width:760px){.lp-lgpd{grid-template-columns:1fr}.lp-escudo{display:none}}
.lp-lista{padding-left:0;list-style:none}
.lp-lista li{padding:.35rem 0 .35rem 1.8rem;position:relative;color:#2f3b52}
.lp-lista li::before{content:"✓";position:absolute;left:0;top:.3rem;width:1.3rem;height:1.3rem;border-radius:50%;background:rgba(6,160,155,.15);color:var(--lp-teal);display:grid;place-items:center;font-weight:900;font-size:.8rem}
.lp-busca{max-width:520px;display:block;margin:1.25rem auto 0;font-size:1.05rem;padding:.85rem 1rem}
.lp-escola{background:#fff;border:1px solid #e3e9f3;border-radius:14px;padding:1rem;display:flex;gap:.8rem;align-items:flex-start}
.lp-escola img,.lp-escola-ini{width:52px;height:52px;border-radius:12px;object-fit:contain;flex:0 0 52px}
.lp-escola-ini{background:var(--lp-marinho);color:#fff;display:grid;place-items:center;font-weight:800}
.lp-escola b{display:block;color:var(--lp-marinho)}
.lp-escola small{color:var(--txt2)}
.lp-escola .btn{background:var(--lp-marinho)}
.lp-escola .btn-sec{background:#fff;color:var(--lp-marinho)}
.lp-contato{display:grid;grid-template-columns:1fr 1.1fr;gap:2.5rem;align-items:start}
@media(max-width:860px){.lp-contato{grid-template-columns:1fr}}
.lp-contato p{color:#4f5d75;font-size:1.05rem}
.lp-mel{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lp-rodape{background:var(--lp-fundo);color:#9fb3d1;padding:3rem 0 1.5rem}
.lp-rodape .lups-logo{color:#fff}
.lp-rod-cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
@media(max-width:700px){.lp-rod-cols{grid-template-columns:1fr}}
.lp-rod-cols b{display:block;color:#fff;margin-bottom:.5rem}
.lp-rod-cols a{display:block;color:#c9d6ea;text-decoration:none;padding:.18rem 0;font-size:.92rem}
.lp-rod-cols a:hover{color:#fff}
.lp-copy{border-top:1px solid #16305e;margin-top:2rem;padding-top:1rem}
.lp-doc{max-width:820px;margin:0 auto;padding:3rem 16px}
.lp-doc h1{color:var(--lp-marinho)}.lp-doc h2{color:var(--lp-marinho);font-size:1.2rem;margin-top:1.8rem}
.lp-doc p,.lp-doc li{color:#2f3b52}

/* Filtro por tipo de livro (catálogo / quiosque) */
.filtro-tipos{display:flex;gap:.45rem;flex-wrap:wrap;margin:-.25rem 0 1.25rem}
.chip{--c:var(--pri);padding:.45rem .9rem;border-radius:99px;border:1.5px solid color-mix(in srgb,var(--c) 45%,transparent);color:var(--c);text-decoration:none;font-weight:700;font-size:.9rem;background:#fff}
.chip:hover{background:color-mix(in srgb,var(--c) 10%,#fff)}
.chip.at{background:var(--c);color:#fff;border-color:var(--c)}
body.quiosque .chip{font-size:1.05rem;padding:.6rem 1.1rem}

/* Vitrine da biblioteca (página da escola sem jornal) */
.vit-hero{background:linear-gradient(135deg,var(--pri-esc),var(--pri));color:#fff;border-radius:var(--raio);padding:2rem;display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center}
@media(max-width:860px){.vit-hero{grid-template-columns:1fr;padding:1.4rem}}
.vit-selo{display:inline-block;background:rgba(255,255,255,.14);padding:.25rem .7rem;border-radius:99px;font-size:.8rem;font-weight:700}
.vit-hero h1{font:800 clamp(1.7rem,3.6vw,2.5rem)/1.1 var(--sans);margin:.7rem 0 .4rem}
.vit-hero p{opacity:.88;margin:0 0 1rem}
.vit-busca{display:flex;gap:.5rem;max-width:560px}
.vit-busca input{font-size:1.05rem;padding:.85rem 1rem;border:0}
.vit-busca .btn{background:var(--sec);color:#fff}
.vit-hero .chip{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.3)}
.vit-hero .chip small{opacity:.7;margin-left:.2rem}
.vit-numeros{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.vit-numeros div{background:rgba(255,255,255,.1);border-radius:12px;padding:1rem}
.vit-numeros b{display:block;font-size:1.8rem;line-height:1.1}
.vit-numeros span{font-size:.82rem;opacity:.8}
.vit-app{background:var(--pri);color:#fff;border:0}
.vit-app .btn-ouro{background:var(--sec);color:#fff}

/* Barra inferior do painel no celular (app da equipe) */
.painel-nav-cel{display:none}
@media(max-width:860px){
  .painel-nav-cel{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--borda);justify-content:space-around;padding:.4rem 0 calc(.4rem + env(safe-area-inset-bottom,0px))}
  .painel-nav-cel a{display:flex;flex-direction:column;align-items:center;font-size:.7rem;color:var(--txt2);text-decoration:none;gap:.1rem;position:relative;min-width:56px}
  .painel-nav-cel a i{font-style:normal;font-size:1.3rem}
  .painel-nav-cel a.ativo{color:var(--pri);font-weight:700}
  .painel .area{padding-bottom:5.5rem}
  .campo-scanner input{font-size:1.1rem}
}
.bolinha{position:absolute;top:-2px;right:8px;background:var(--erro);color:#fff;border-radius:99px;font-size:.65rem;padding:0 .35rem}

/* Convite para ativar notificações */
.push-convite{position:fixed;right:16px;bottom:16px;z-index:45;max-width:340px;background:#fff;border:1px solid var(--borda);border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.15);padding:1rem;display:flex;flex-direction:column;gap:.6rem}
.push-convite p{margin:0;font-size:.92rem}
@media(max-width:860px){.push-convite{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));max-width:none}}
@media(max-width:860px){
  .barra-topo{padding:.55rem .8rem}
  .barra-topo > .small.muted{display:none}
  .barra-topo .flex > .small{font-size:.78rem;max-width:150px;line-height:1.2}
}

/* ---------- Ranking por ciclos e galeria ---------- */
.abas{display:flex;gap:.3rem;background:#eef2f8;border-radius:12px;padding:.25rem}
.abas a{flex:1;text-align:center;padding:.5rem .6rem;border-radius:9px;color:var(--txt);text-decoration:none;font-weight:600;font-size:.92rem}
.abas a.ativa{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.08);color:var(--pri)}
.tag-ouro{background:#fff3c4;color:#8a6400}
.galeria{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.galeria.compacta{grid-template-columns:1fr}
.gal-ciclo{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:1rem 1.1rem}
.gal-ciclo.anual{border-color:#f5c518;background:linear-gradient(180deg,#fffbea,#fff 60%);box-shadow:0 6px 20px rgba(245,197,24,.18)}
.gal-ciclo header h3{margin:.35rem 0 .1rem;font-size:1.1rem}
.gal-podio{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.8rem}
.gal-lugar{text-align:center;border-radius:12px;padding:.6rem .3rem;background:#f6f8fc}
.gal-lugar i{font-style:normal;font-size:1.9rem;display:block;line-height:1.1}
.gal-lugar small{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--txt2);font-weight:700}
.gal-lugar b{display:block;font-size:.92rem;margin:.15rem 0;word-break:break-word}
.gal-lugar span{font-size:.75rem;color:var(--txt2)}
.gal-lugar.p1{background:#fff3c4}.gal-lugar.p2{background:#eef1f5}.gal-lugar.p3{background:#fbe9dc}
.gal-turmas{margin-top:.7rem;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.gal-turma{background:#e6f7f6;color:#055f5c;border-radius:20px;padding:.2rem .6rem;font-size:.85rem;font-weight:600}
.gal-turma small{font-weight:400;opacity:.8}
.trofeus{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.3rem}
.trofeu{flex:0 0 auto;min-width:110px;text-align:center;background:#fff;border:1px solid var(--borda);border-radius:12px;padding:.6rem}
.trofeu i{font-style:normal;font-size:2rem;display:block}.trofeu b{display:block}.trofeu span{font-size:.75rem;color:var(--txt2)}
.trofeu.t1{border-color:#f5c518;background:#fffbea}
.alerta-didatico{border-left:4px solid #6b4fbb;background:#f1edfb;color:#3d2a7a}
.credito-dev{opacity:.85}.credito-dev::before{content:"· "}
.rodape-painel{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--borda);text-align:center}
.credito-app{margin:1.5rem 0 .5rem;font-size:.75rem}
.passo-novo-ano{border:1px solid var(--borda);border-radius:10px;padding:.8rem 1rem;margin-top:.8rem;background:#fafbfc}
.passos li{margin:.45rem 0}
.oc-linha{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;padding:.75rem .9rem;border-radius:10px;margin-bottom:.5rem;border:1px solid var(--borda)}
.oc-linha.aberta{background:#fffaeb;border-color:#fedf89}
.oc-linha.resolvida{background:#fafbfc}
.resolver-oc{min-width:120px}.resolver-oc[open]{min-width:320px}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.rel-card{display:flex;flex-direction:column;gap:.35rem;background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:1.1rem 1.2rem;text-decoration:none;color:var(--txt);transition:.15s}
.rel-card:hover{border-color:var(--pri);box-shadow:var(--sombra)}
.rel-card i{font-style:normal;font-size:1.6rem}.rel-card b{font-size:1.05rem}.rel-card span{font-size:.9rem;color:var(--txt2)}
.rel-card em{font-style:normal;font-size:.82rem;font-weight:700;color:#93370d;margin-top:auto}
.rel-card.destaque{border-color:#fedf89;background:#fffcf2}
/* ---------- Engajamento (gráficos do painel) ---------- */
.eng{margin-top:.8rem}
.eng-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.eng-tile{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.15rem}
.eng-tile span{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--txt2);font-weight:700}
.eng-tile b{font-size:2.1rem;line-height:1.1;color:#14213d;font-variant-numeric:tabular-nums}
.eng-tile small{font-size:.82rem;color:var(--txt2)}.eng-tile small.sobe{color:#067647;font-weight:700}.eng-tile small.desce{color:#b42318;font-weight:700}
.eng-graficos{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1rem}
.eng-card{margin:0;background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:1rem 1.1rem}
.eng-card.larga{grid-column:1/-1}
.eng-card figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem 1rem;align-items:baseline;margin-bottom:.4rem}
.eng-card svg{width:100%;height:auto;display:block}
.eng-card details{margin-top:.3rem}.eng-card details table{margin-top:.4rem}
.eng-legenda{font-size:.82rem;color:var(--txt2);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.eng-legenda i{display:inline-block;width:12px;height:12px;border-radius:3px}.eng-legenda i.linha{height:3px;width:16px;border-radius:2px;margin-left:.6rem}
.eng-hit:hover rect[fill="transparent"]{fill:rgba(31,78,156,.06)}
@media(max-width:860px){.eng-tiles{grid-template-columns:repeat(2,1fr)}.eng-graficos{grid-template-columns:1fr}}
.cam-box{width:100%;max-width:420px;margin:.5rem auto 0;border-radius:12px;overflow:hidden;background:#000}
.cam-box:empty{display:none}
.livro-item.conferido{border-color:#47cd89;background:#f6fef9}
.lido{padding:.35rem .5rem;border-radius:8px;margin:.2rem 0}.lido.ok{background:#dcfae6;color:#067647}.lido.erro{background:#fee4e2;color:#b42318}
.turmas-check{display:flex;flex-wrap:wrap;gap:.25rem .9rem;max-height:220px;overflow:auto}
.turmas-check .check{margin:0}
.etapa-banner{border-left:4px solid #e8701a}
.var-aluno{padding:.55rem .2rem;border-bottom:1px solid var(--borda)}.var-aluno:last-child{border-bottom:0}
.var-aluno.tem-erro{background:#fff6f5}.var-nome{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.avatar-perfil{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.3rem;background:#e8eefb;color:#0b2e66}
.ficha-sec{margin-top:1.2rem;padding-top:.8rem;border-top:1px solid var(--borda)}
.ficha-sec h3{font-size:.95rem;margin:0 0 .3rem}
.status-ctr{font-weight:700}
.codigos-rec{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.4rem;margin:.6rem 0}
.codigos-rec code{background:#fff;border:1px dashed #b54708;border-radius:8px;padding:.4rem;text-align:center;font-size:1rem;letter-spacing:.05em}
.tf-setup{display:grid;grid-template-columns:220px 1fr;gap:1.2rem;align-items:start}
.qr-2fa{width:220px;height:220px;background:#fff;border:1px solid var(--borda);border-radius:12px;padding:6px}
.qr-2fa svg{width:100%;height:100%}
.segredo{word-break:break-all;font-size:.95rem}
.banner-2fa{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
@media(max-width:640px){.tf-setup{grid-template-columns:1fr}.qr-2fa{margin:0 auto}}
.verif-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.6rem}
.verif{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem .7rem;border-radius:10px;border:1px solid var(--borda)}
.verif-ic{font-size:1.1rem;line-height:1.4}
.verif-erro{background:#fef3f2;border-color:#fecdca}.verif-aviso{background:#fffaeb;border-color:#fedf89}
.turno-linhas{display:flex;flex-wrap:wrap;gap:.3rem}
.turno-linha{font-size:.82rem;padding:.2rem .5rem;border-radius:999px;background:#eef2f8}.turno-linha.intervalo{background:#fff4e5;color:#93370d}
.linha-aula{display:grid;grid-template-columns:110px 1fr 1fr auto;gap:.4rem;margin:.3rem 0}
.turmas-turno{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.4rem .8rem}
.turmas-turno label{display:flex;align-items:center;gap:.4rem;margin:0}.turmas-turno label span{min-width:52px;font-weight:700}
.grade-res{min-width:640px}.grade-res td{vertical-align:top;min-width:120px;font-size:.82rem}
.grade-res th.hoje,.grade-res td.hoje{background:#f0f6ff}
.grade-res tr.intervalo td{background:#fff8ec;color:#93370d;text-align:center;font-size:.78rem;padding:.25rem}
.grade-res td.passou{background:#f7f7f8;color:#98a2b3}
.res-item{background:#e8eefb;border-radius:8px;padding:.3rem .4rem;margin-bottom:.25rem;line-height:1.25}
.res-livre{display:block;text-align:center;border:1px dashed #b2c4e8;border-radius:8px;padding:.35rem;text-decoration:none;color:#1f4e9c;font-weight:600}
.res-livre:hover{background:#f0f6ff}
.aulas-check{display:flex;flex-wrap:wrap;gap:.3rem .9rem}.aula-op{margin:.2rem 0}.aula-op.ocupada{color:#98a2b3}
.recursos-abas{flex-wrap:wrap}
.hor-nav{flex-wrap:wrap}
.passos-hor{padding-left:1.1rem;line-height:2}
.carga-turma{display:block;padding:.35rem .5rem;border-radius:8px;background:#f2f4f7;text-decoration:none;color:inherit}
.carga-turma.cheia{background:#dcfae6}.carga-turma.excede{background:#fee4e2}
.barra-carga{height:8px;background:#eef2f8;border-radius:99px;overflow:hidden;margin:.4rem 0}.barra-carga div{height:100%;background:#1f4e9c}.barra-carga .cheia{background:#17b26a}.barra-carga .excede{background:#d92d20}
.sigla-cor{display:inline-block;min-width:3.4em;text-align:center;font-size:.75rem;font-weight:800;padding:.15rem .35rem;border-radius:6px}
.carga-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;align-items:end}
.cf-sug{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}
.grade-disp td{text-align:center;padding:.2rem}.grade-disp th{font-size:.82rem}
.disp{width:100%;min-width:44px;border:1px solid var(--borda);border-radius:8px;padding:.35rem;background:#ecfdf3;color:#067647;font-weight:800;cursor:pointer}
.disp.disp-nao{background:#fef3f2;color:#b42318}.disp.disp-prefere{background:#fffaeb;color:#b54708}
.disp-leg{padding:.1rem .45rem;border-radius:6px;background:#ecfdf3}.disp-leg.disp-nao{background:#fef3f2}.disp-leg.disp-prefere{background:#fffaeb}
.link-dia{background:none;border:0;font:inherit;font-weight:700;cursor:pointer;color:inherit}
.hor-editor{display:grid;grid-template-columns:1fr 300px;gap:1rem;align-items:start}
@media(max-width:980px){.hor-editor{grid-template-columns:1fr}}
.grade-hor td{padding:.2rem;min-width:96px}.grade-hor th.hoje,.grade-hor td.hoje{background:#f0f6ff}
.grade-hor tr.intervalo td{background:#fff8ec;color:#93370d;text-align:center;font-size:.75rem;padding:.15rem}
.cel{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:46px;border:1px dashed #cfd8e6;border-radius:8px;background:#fff;cursor:pointer;font:inherit;font-size:.8rem;line-height:1.15;position:relative}
.cel.cheia{border-style:solid;background:#e8eefb}.cel b{font-size:.85rem}.cel i{position:absolute;top:2px;right:4px;font-style:normal;font-size:.7rem}
div.cel{cursor:default}
.pop-hor{position:absolute;z-index:60;width:290px;max-height:60vh;overflow:auto;background:#fff;border:1px solid var(--borda);border-radius:12px;box-shadow:0 12px 32px rgba(16,24,40,.18);padding:.5rem}
.pop-hor .op{display:block;width:100%;text-align:left;border:0;background:none;padding:.45rem .5rem;border-radius:8px;cursor:pointer;font:inherit}
.pop-hor .op:hover{background:#f0f6ff}.pop-hor .op.nao{opacity:.55}
.pend-linha{padding:.2rem 0;border-bottom:1px solid #f2f4f7}.pend-linha.ok{color:#067647}
.recursos-abas .falta{color:#b42318;font-weight:800}
.dia-hor.hoje{border:2px solid #1f4e9c}.aula-linha{padding:.3rem 0;border-bottom:1px solid #f2f4f7}.aula-linha:last-child{border-bottom:0}
.planos-hero{padding-bottom:1.5rem}
.promo-faixa{display:inline-block;margin:1rem auto 0;background:#fff4e5;border:1px solid #fedf89;color:#93370d;border-radius:999px;padding:.5rem 1rem}
.ciclo-toggle{display:inline-flex;background:#eef2f8;border-radius:999px;padding:.25rem;margin-top:1.2rem}
.ciclo-toggle button{border:0;background:none;padding:.5rem 1.1rem;border-radius:999px;font:inherit;font-weight:700;cursor:pointer;color:inherit}
.ciclo-toggle button.ativo{background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.15)}
.planos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem;align-items:stretch}
.plano-card{position:relative;background:#fff;border:1px solid var(--borda);border-radius:18px;padding:1.6rem 1.4rem;display:flex;flex-direction:column}
.plano-card.destaque{border:2px solid #ff7001;box-shadow:0 18px 40px rgba(255,112,1,.15)}
.plano-card h2{margin:0;font-size:1.35rem}
.plano-selo{position:absolute;top:-.75rem;left:50%;transform:translateX(-50%);background:#ff7001;color:#fff;font-size:.75rem;font-weight:800;padding:.25rem .8rem;border-radius:999px}
.plano-preco{margin:1rem 0}.plano-preco b{font-size:2rem;color:#0b2e66}
.plano-recursos{padding-left:1.1rem;flex:1;line-height:1.7}
.faixas td{padding:.2rem .4rem}.faixas{margin-top:.4rem}
.sim-res{position:sticky;top:1rem}.sim-tab{width:100%}.sim-tab td{padding:.3rem 0;border-bottom:1px solid #f2f4f7}.sim-tab td:last-child{text-align:right;white-space:nowrap}
.sim-total{font-size:2rem;font-weight:800;color:#0b2e66;margin-top:.6rem}.sim-total span{font-size:1rem;font-weight:600;color:var(--txt2)}
.sim-desc{color:#067647;font-weight:600}
.mods .check{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.linha-faixa{display:grid;grid-template-columns:auto 110px auto 1fr;gap:.4rem;align-items:center;margin:.3rem 0}
.planos-sub{max-width:620px;margin:.5rem auto 0;color:#475467;font-size:1.05rem}
.barra-lote{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;background:#0b2e66;color:#fff;padding:.6rem .8rem;border-radius:12px;margin-bottom:.6rem}
.barra-lote select{width:auto}
.chk-turmas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.25rem .8rem;margin:.3rem 0}
.carga-form .cf-turmas,.carga-form .cf-info,.carga-form .cf-pers,.carga-form>label.check{grid-column:1/-1}
.carga-form select.cf-d{min-width:280px}
.lista-alertas{margin:.4rem 0;padding-left:1.1rem}.lista-alertas li{margin:.25rem 0}.lista-alertas li.erro{color:var(--erro)}
.conf-ger ul{margin:.3rem 0;padding-left:1rem}.conf-ger li{margin:.15rem 0}
.disp-prof>summary{cursor:pointer;list-style:none}.disp-prof>summary::-webkit-details-marker{display:none}
.dias-vem{display:flex;flex-wrap:wrap;gap:.3rem .9rem;align-items:center;margin-bottom:.4rem}
/* Patrimônio */
.tab-pat .mini-foto{width:52px}.tab-pat .mini-foto img{width:44px;height:44px;object-fit:cover;border-radius:8px;display:block}.tab-pat .mini-foto span{font-size:1.5rem}
tr.linha-link{cursor:pointer}tr.linha-link:hover td{background:#f6f8fc}
.est-otimo{background:#dcfce7;color:#166534}.est-bom{background:#e0f2fe;color:#075985}.est-regular{background:#fef3c7;color:#92400e}.est-ruim{background:#fee2e2;color:#991b1b}
.pat-topo{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:1rem;align-items:start}.pat-capa{padding:.5rem}.pat-capa img{width:100%;border-radius:10px;display:block}
@media (max-width:760px){.pat-topo{grid-template-columns:1fr}}
.ficha-dl{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0}.ficha-dl dt{color:var(--muted,#64748b);font-size:.88rem}.ficha-dl dd{margin:0}
.galeria-pat{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.7rem}.galeria-pat figure{margin:0}.galeria-pat img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;display:block}
.hist-pat{list-style:none;padding:0;margin:0}.hist-pat li{padding:.35rem 0;border-bottom:1px solid #eef0f4}
.lista-conf{list-style:none;padding:0;margin:0}.lista-conf li{padding:.35rem .2rem;border-bottom:1px solid #eef0f4}.lista-conf li.ok{background:#f0fdf4}.lista-conf li.falta{background:#fef2f2}
.mod-on{background:#dcfce7!important;border-color:#86efac!important}
.txt-erro{color:var(--erro,#b91c1c)}
.card input[type=time]{width:100%;min-width:7.5rem}.tab-limp{width:100%}.tab-limp td{padding:.4rem .3rem;border-bottom:1px solid #eef0f4}
/* Merenda */
.barra-mer{height:8px;background:#eef2f8;border-radius:6px;overflow:hidden;margin:.2rem 0}.barra-mer>div{height:100%;background:#06a09b}.barra-mer>div.cheia{background:#16a34a}.barra-mer>div.excede{background:#dc2626}
.mer-proc{padding:.6rem 0;border-bottom:1px solid #eef0f4}.mer-item{display:grid;grid-template-columns:minmax(110px,30%) 1fr;gap:.6rem;align-items:center;padding:.25rem 0}
.mer-rec{display:block;padding:.45rem 0;border-bottom:1px solid #eef0f4;color:inherit;text-decoration:none}.mer-rec.cancelado,tr.cancelado{opacity:.55}
.mer-card{display:block;color:inherit;text-decoration:none}.mer-card:hover{box-shadow:0 2px 10px #0001}
.rec-item{border:1px solid #e5e7eb;border-radius:12px;padding:.7rem;margin:.6rem 0}.rec-cab{margin-bottom:.3rem}
@media (max-width:600px){.mer-item{grid-template-columns:1fr}}
/* ===== Landing (2026) ===== */
@font-face{font-family:"Bricolage";src:url(../fonts/bricolage-grotesque-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Bricolage";src:url(../fonts/bricolage-grotesque-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}
body.lp{--l2-noite:#071d42;--l2-marinho:#0b2e66;--l2-papel:#f4f7fc;--l2-tinta:#15233d;--l2-linha:#d9e1ee;--l2-laranja:#ff7001;--l2-teal:#06a09b;--disp:"Bricolage",var(--sans)}
body.lp .t-bib{--c:#06a09b}body.lp .t-res{--c:#8b5cf6}body.lp .t-hor{--c:#2563eb}body.lp .t-mer{--c:#16a34a}body.lp .t-pat{--c:#ea580c}body.lp .t-lim{--c:#0891b2}body.lp .t-app{--c:#db2777}body.lp .t-did{--c:#7c3aed}
.lp-btn-instalar{white-space:nowrap}
.l2-hero{background:var(--l2-noite);color:#fff;padding:4.2rem 0 2.2rem;overflow:hidden}
.l2-hero-grid{display:grid;grid-template-columns:1fr minmax(0,31rem);gap:3rem;align-items:center}
.l2-hero h1{font:800 clamp(2.2rem,5vw,3.8rem)/1.02 var(--disp);letter-spacing:-.03em;margin:0 0 1.1rem;max-width:14ch}
.l2-sub{font-size:1.14rem;line-height:1.6;color:#c6d3ea;max-width:34rem;margin:0}
.l2-ctas{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.l2-cta{background:var(--l2-laranja)!important;color:#fff!important;border-color:transparent!important}
.l2-cta:hover{filter:brightness(1.07)}
.l2-cta-sec{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.l2-cta-sec:hover{background:rgba(255,255,255,.08);color:#fff}
.l2-aluno{margin:1.2rem 0 0;color:#9fb3d1;font-size:.95rem}.l2-aluno a{color:#fff}
.l2-quadro{margin:0;background:#fbfcfe;color:var(--l2-tinta);border-radius:6px 6px 18px 18px;padding:1.1rem 1.1rem .6rem;box-shadow:0 24px 60px rgba(0,0,0,.45);border-top:10px solid #8a5a2b}
.l2-quadro figcaption{font:600 .95rem var(--disp);color:var(--l2-marinho);padding:0 .2rem .6rem;border-bottom:2px solid var(--l2-linha)}
.l2-dia{list-style:none;margin:0;padding:0}
.l2-hora{display:grid;grid-template-columns:3.3rem 1fr;gap:.7rem;padding:.55rem .2rem;border-bottom:1px solid #e8edf5;align-items:start}
.l2-hora time{font:800 .95rem var(--disp);font-variant-numeric:tabular-nums;color:var(--l2-marinho);padding-top:.05rem}
.l2-hora div{border-left:4px solid var(--c);padding-left:.65rem}
.l2-hora b{display:block;font-size:.9rem;line-height:1.3}
.l2-hora span{display:block;font-size:.85rem;line-height:1.4;color:#4a5872}
.l2-intervalo{text-align:center;font-size:.78rem;color:#7a879e;padding:.25rem 0;background:repeating-linear-gradient(135deg,#f1f4f9 0 8px,#fbfcfe 8px 16px);border-bottom:1px solid #e8edf5}
.l2-hora:last-child{border-bottom:0}
@media (prefers-reduced-motion:no-preference){.l2-dia>li{animation:l2-entra .45s ease-out both;animation-delay:calc(.35s + var(--i) * .14s)}}
@keyframes l2-entra{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.l2-numeros{display:flex;flex-wrap:wrap;gap:.6rem 2.6rem;margin-top:2.8rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.14)}
.l2-numeros p{margin:0;color:#9fb3d1;font-size:.92rem}.l2-numeros b{font:800 1.5rem var(--disp);color:#fff;margin-right:.35rem}
.l2-sec{padding:4.6rem 0}.l2-sec-alt{background:var(--l2-papel)}
.l2-sec-escuro{background:var(--l2-marinho);color:#fff}.l2-sec-escuro .l2-h2{color:#fff}.l2-sec-escuro a{color:#ffd2b0}.l2-sec-escuro .l2-lista li{color:#d8e2f2}
.l2-h2{font:800 clamp(1.7rem,3.2vw,2.5rem)/1.1 var(--disp);letter-spacing:-.02em;color:var(--l2-marinho);margin:0 0 .7rem}
.l2-intro{max-width:44rem;color:#4a5872;font-size:1.05rem;margin:0 0 2.2rem}
.l2-areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:2.4rem 2.6rem}
.l2-area{border-top:5px solid var(--c);padding-top:1rem}
.l2-area h3{font:800 1.3rem var(--disp);color:var(--l2-tinta);margin:0 0 .8rem}
.l2-area dl{margin:0}.l2-area dt{font-weight:700;color:var(--l2-tinta);margin-top:.8rem}.l2-area dd{margin:.15rem 0 0;color:#4a5872;line-height:1.55;font-size:.96rem}
.l2-papeis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1.6rem 2.4rem;margin-top:1.6rem}
.l2-papel h3{font:800 1.12rem var(--disp);color:var(--l2-marinho);margin:0 0 .3rem}.l2-papel p{margin:0;color:#4a5872;line-height:1.55}
.l2-instalar{background:#e6f6f5}
.l2-instalar-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.l2-instalar p{max-width:36rem;line-height:1.6;color:#2b3a55}
.l2-inst-acoes{margin:1.2rem 0}.l2-inst-ok{font-weight:700;color:#05603a}
.l2-inst-passos details{background:#fff;border:1px solid #bfe5e2;border-radius:12px;padding:.8rem 1rem;margin-bottom:.7rem}
.l2-inst-passos summary{font:600 1.05rem var(--disp);color:var(--l2-marinho);cursor:pointer}
.l2-inst-passos ol{margin:.6rem 0 0;padding-left:1.2rem;line-height:1.7}
.l2-seg{display:grid;grid-template-columns:minmax(0,.9fr) 1.1fr;gap:3rem;align-items:start}
.l2-seg p{color:#4a5872;line-height:1.6;max-width:30rem}
.l2-lista{list-style:none;margin:0;padding:0}
.l2-lista li{padding:.55rem 0 .55rem 1.6rem;border-bottom:1px solid var(--l2-linha);position:relative;line-height:1.5}
.l2-lista li::before{content:"";position:absolute;left:.15rem;top:.95rem;width:.6rem;height:.6rem;border-radius:2px;background:var(--l2-teal)}
.l2-sec-escuro .l2-lista li{border-color:rgba(255,255,255,.15)}
.l2-passos{list-style:none;counter-reset:passo;margin:1.8rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem}
.l2-passos li{counter-increment:passo;border-top:2px solid var(--l2-linha);padding-top:1rem}
.l2-passos li::before{content:counter(passo);font:800 2.2rem/1 var(--disp);color:var(--l2-laranja);display:block;margin-bottom:.4rem}
.l2-passos h3{font:800 1.1rem var(--disp);color:var(--l2-tinta);margin:0 0 .3rem}.l2-passos p{margin:0;color:#4a5872;line-height:1.55;font-size:.96rem}
.l2-faq{max-width:52rem}
.l2-faq details{border-bottom:1px solid var(--l2-linha);padding:.9rem 0}
.l2-faq summary{font:600 1.08rem var(--disp);color:var(--l2-tinta);cursor:pointer}
.l2-faq p{margin:.5rem 0 0;color:#4a5872;line-height:1.6}
body.lp a:focus-visible,body.lp button:focus-visible,body.lp summary:focus-visible{outline:3px solid var(--l2-laranja);outline-offset:2px}
@media(max-width:960px){.l2-hero-grid,.l2-instalar-grid,.l2-seg{grid-template-columns:1fr}.l2-passos{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.l2-hero{padding-top:2.6rem}.l2-passos{grid-template-columns:1fr}.l2-sec{padding:3.2rem 0}.l2-hora{grid-template-columns:2.9rem 1fr}}
.l2-sec-escuro .lp-contato > div > p{color:#d8e2f2}.l2-sec-escuro form.card{color:var(--txt)}.l2-sec-escuro form.card a{color:var(--pri)}
.app-sec-topo{margin-top:0}.app-sec-topo>h2{color:#fff;font-size:1.15rem}.app-sec-topo>p.small{color:#dbe6f7!important}
/* Landing: vendas */
.l2-wa{background:#1f9d55!important}
.lp-nav .lp-btn-wa{background:#1f9d55;color:#fff}
@media(max-width:760px){.lp-nav .lp-btn-wa{display:none}}
.wa-flutuante{position:fixed;right:16px;bottom:16px;z-index:40;display:flex;align-items:center;gap:.45rem;background:#1f9d55;color:#fff;text-decoration:none;font-weight:700;border-radius:99px;padding:.55rem 1rem .55rem .65rem;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.wa-flutuante:hover{filter:brightness(1.07)}
@media(max-width:560px){.wa-flutuante span{display:none}.wa-flutuante{padding:.7rem}}
.l2-confianca{display:flex;flex-wrap:wrap;gap:.8rem 2.6rem;margin-top:2.8rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.14)}
.l2-confianca p{margin:0;color:#9fb3d1;font-size:.95rem}.l2-confianca b{display:block;font:800 1.1rem var(--disp);color:#fff}
.l2-galeria{display:grid;grid-template-columns:1.6fr 1fr 1fr;grid-template-areas:"larga cel1 cel2" "merenda cel1 cel2";gap:1.6rem;align-items:start}
.l2-tela{margin:0}.l2-tela img{width:100%;height:auto;border-radius:12px;border:1px solid var(--l2-linha);box-shadow:0 14px 34px rgba(11,46,102,.12);background:#fff}
.l2-tela figcaption{margin-top:.7rem;color:#4a5872;font-size:.95rem;line-height:1.5}.l2-tela figcaption b{color:var(--l2-tinta)}
.l2-galeria .l2-tela-larga{grid-area:larga}.l2-galeria .l2-tela-cel:nth-of-type(2){grid-area:cel1}.l2-galeria .l2-tela-cel:nth-of-type(3){grid-area:cel2}.l2-galeria .l2-tela:nth-of-type(4){grid-area:merenda}
.l2-tela-cel img{max-height:560px;object-fit:cover;object-position:top}
@media(max-width:960px){.l2-galeria{grid-template-columns:1fr 1fr;grid-template-areas:"larga larga" "cel1 cel2" "merenda merenda"}}
@media(max-width:560px){.l2-galeria{grid-template-columns:1fr;grid-template-areas:"larga" "cel1" "cel2" "merenda"}}
.l2-contratar{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem 2rem}
.l2-contratar h3{font:800 1.12rem var(--disp);color:var(--l2-marinho);margin:0 0 .35rem;padding-top:.8rem;border-top:3px solid var(--l2-teal)}
.l2-contratar p{margin:0;color:#4a5872;line-height:1.55}
.l2-contratar-cta{margin-top:2rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
@media(max-width:960px){.l2-contratar{grid-template-columns:1fr 1fr}}@media(max-width:560px){.l2-contratar{grid-template-columns:1fr}}
.l2-quem{display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:start;max-width:56rem}
.l2-quem p{color:#2b3a55;line-height:1.65;max-width:42rem}
.l2-quem-sig{width:96px;height:96px;border-radius:50%;background:var(--l2-marinho);color:#fff;display:grid;place-items:center;font:800 2rem var(--disp);border:4px solid #fff;box-shadow:0 0 0 3px var(--l2-teal)}
@media(max-width:560px){.l2-quem{grid-template-columns:1fr}}

/* ===== Site do produto: logos, vídeo, números e depoimentos (landing) ===== */
.l2-logos{background:#fff;border-bottom:1px solid var(--l2-linha);padding:1.4rem 0}
.l2-logos-tit{margin:0 0 .8rem;text-align:center;font:600 .78rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#6a7690}
.l2-logos-lista{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.2rem 2.6rem}
.l2-logos-lista img{display:block;max-height:52px;max-width:150px;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .2s,opacity .2s}
.l2-logos-lista a:hover img,.l2-logos-lista img:hover{filter:none;opacity:1}
.l2-logos-lista span{font:700 1rem var(--disp);color:var(--l2-marinho)}
.l2-logos-lista a{text-decoration:none}
.l2-video{max-width:880px;margin:0 auto 2.4rem}
.l2-video-pe{max-width:360px}
.l2-video-tit{font:800 1.2rem var(--disp);color:var(--l2-tinta);margin:0 0 .7rem;text-align:center}
.l2-video-play,.l2-video iframe,.l2-video video{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:14px;background:#000;box-shadow:0 18px 40px rgba(7,29,66,.25)}
.l2-video-pe .l2-video-play,.l2-video-pe iframe,.l2-video-pe video{aspect-ratio:9/16}
.l2-video-play{position:relative;padding:0;cursor:pointer;overflow:hidden}
.l2-video-play img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.l2-video-play:hover img{transform:scale(1.03)}
.l2-video-btn{position:absolute;left:50%;top:50%;width:78px;height:78px;margin:-39px 0 0 -39px;border-radius:50%;background:var(--l2-laranja);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.l2-video-btn::after{content:"";position:absolute;left:31px;top:23px;border-style:solid;border-width:16px 0 16px 26px;border-color:transparent transparent transparent #fff}
.l2-video-play:focus-visible{outline:3px solid var(--l2-laranja);outline-offset:3px}
.l2-numeros{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.6rem 0 0}
.l2-numeros.n1{grid-template-columns:1fr;max-width:340px}.l2-numeros.n2{grid-template-columns:repeat(2,1fr);max-width:700px}.l2-numeros.n3{grid-template-columns:repeat(3,1fr)}
.l2-numeros>div{background:#fff;border:1px solid var(--l2-linha);border-top:4px solid var(--l2-teal);border-radius:10px;padding:1.1rem 1.2rem;display:flex;flex-direction:column-reverse}
.l2-numeros dd{margin:0;font:800 clamp(2rem,4vw,2.8rem)/1 var(--disp);color:var(--l2-marinho);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.l2-numeros dt{margin:.45rem 0 0;color:#4a5872;line-height:1.4}
.l2-depoimentos{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem;margin-top:2.2rem}
.l2-depoimentos.um{max-width:760px}
.l2-dep{margin:0;background:#fff;border:1px solid var(--l2-linha);border-radius:12px;padding:1.4rem 1.5rem;display:flex;flex-direction:column;justify-content:space-between;gap:1rem}
.l2-dep blockquote{margin:0}
.l2-dep blockquote p{margin:0;font-size:1.08rem;line-height:1.6;color:var(--l2-tinta)}
.l2-dep blockquote p::before{content:"“";font:800 2.6rem/0 var(--disp);color:var(--l2-laranja);vertical-align:-.9rem;margin-right:.15rem}
.l2-dep figcaption{display:flex;align-items:center;gap:.8rem}
.l2-dep figcaption img,.l2-dep-ini{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none}
.l2-dep-ini{display:grid;place-items:center;background:var(--l2-marinho);color:#fff;font:800 1.3rem var(--disp)}
.l2-dep figcaption b{display:block;color:var(--l2-tinta)}.l2-dep figcaption span{font-size:.9rem;color:#5a6680}
@media (max-width:760px){.l2-numeros,.l2-numeros.n3{grid-template-columns:repeat(2,1fr)}.l2-numeros.n1{grid-template-columns:1fr}.l2-logos-lista{gap:1rem 1.6rem}.l2-logos-lista img{max-height:40px;max-width:110px}}

/* Painel: Site do produto */
.site-abas{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem}
.site-abas a{padding:.4rem .8rem;border-radius:999px;background:var(--fundo-2,#eef2f8);text-decoration:none;font-size:.92rem}
.site-sec{scroll-margin-top:5rem}
.site-sec-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.8rem}
.site-sec-cab h2{margin:0 0 .2rem}
.site-on{background:#0a7d4f!important;border-color:#0a7d4f!important;color:#fff!important}
.site-tipo{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin-bottom:.6rem}
.site-sugs{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;padding:.8rem;border:1px dashed var(--borda,#cfd8e6);border-radius:10px}
.site-sugs p{flex-basis:100%;margin:0 0 .2rem}
.site-sug{border:1px solid var(--borda,#cfd8e6);background:#fff;border-radius:8px;padding:.35rem .6rem;cursor:pointer;font-size:.9rem;color:inherit}
.site-sug:hover{border-color:#06a09b}.site-sug.usado{opacity:.5}
.site-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:.6rem}
.site-num input+input{margin-top:.35rem}
.site-num-v{font-weight:800;font-size:1.2rem}
.site-mini-foto{width:40px;height:40px;border-radius:50%;object-fit:cover}
.linha-off{opacity:.55}
.site-logos-adm{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem}
.site-logo-item{border:1px solid var(--borda,#cfd8e6);border-radius:10px;padding:.7rem;display:flex;flex-direction:column;gap:.35rem}
.site-logo-img{height:64px;display:grid;place-items:center;background:#f6f8fb;border-radius:6px}
.site-logo-img img{max-height:56px;max-width:90%;object-fit:contain}
.site-form-dep{border-top:1px solid var(--borda,#cfd8e6);padding-top:.8rem}
@media (max-width:760px){.site-nums{grid-template-columns:1fr 1fr}.site-sec-cab{flex-direction:column}}

/* ===== Visão geral (início do painel) ===== */
.vg{--disp:"Bricolage",var(--sans);max-width:1280px}
.vg-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin:.2rem 0 1.4rem}
.vg-cab h1{font:800 clamp(1.6rem,3vw,2.1rem)/1.1 var(--disp);letter-spacing:-.02em;margin:0}
.vg-cab p{margin:.25rem 0 0;color:var(--txt2)}
.vg-acoes{display:flex;gap:.5rem;flex-wrap:wrap}
.vg-voltar{display:inline-block;font-size:.88rem;color:var(--txt2);text-decoration:none;margin-bottom:.2rem}
.vg-voltar:hover{color:var(--txt)}
.vg-atencao{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:1rem 1.2rem;margin-bottom:1.4rem}
.vg-atencao.vazia{padding:.75rem 1.2rem}
.vg-atencao h2{font:600 1rem var(--sans);margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}
.vg-cont{background:var(--erro);color:#fff;border-radius:999px;font-size:.75rem;padding:.05rem .5rem;font-weight:700}
.vg-emdia{margin:0;color:var(--ok);font-weight:600}
.vg-lista-at{list-style:none;margin:0;padding:0}
.vg-lista-at li{border-top:1px solid var(--borda)}
.vg-lista-at li:first-child{border-top:0}
.vg-lista-at a{display:flex;align-items:center;gap:.8rem;padding:.6rem .2rem;color:var(--txt);text-decoration:none}
.vg-lista-at a:hover .vg-msg{text-decoration:underline}
.vg-lista-at .nv-erro .vg-msg::before{content:"";display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--erro);margin-right:.5rem;vertical-align:.1rem}
.vg-tag{flex:none;width:9.5rem;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--c)}
.vg-msg{flex:1}
.vg-ir{color:var(--txt2)}
.vg-mais summary{cursor:pointer;color:var(--txt2);font-size:.9rem;padding:.4rem .2rem 0}
.vg-mais .vg-lista-at li:first-child{border-top:1px solid var(--borda);margin-top:.4rem}
.vg-corpo{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.4rem;align-items:start}
.vg-corpo.sem-ativ{grid-template-columns:1fr}
.vg-areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:1rem}
.vg-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:1.05rem 1.15rem 1rem;color:var(--txt);text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;overflow:hidden}
.vg-card::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--c)}
.vg-card:hover{border-color:color-mix(in srgb,var(--c) 45%,var(--borda));box-shadow:var(--sombra);transform:translateY(-1px)}
.vg-card:focus-visible{outline:3px solid var(--c);outline-offset:2px}
.vg-card-area{font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--c)}
.vg-num{font:800 2.2rem/1 var(--disp);letter-spacing:-.02em;margin-top:.7rem;font-variant-numeric:tabular-nums}
.vg-rot{color:var(--txt2);font-size:.92rem;margin-top:.3rem}
.vg-barra{display:block;height:5px;border-radius:3px;background:var(--borda);margin-top:.7rem;overflow:hidden}
.vg-barra i{display:block;height:100%;background:var(--c);border-radius:3px}
.vg-extras{display:flex;flex-direction:column;gap:.15rem;margin-top:.85rem;padding-top:.7rem;border-top:1px solid var(--borda);font-size:.86rem;color:var(--txt2)}
.vg-extras b{color:var(--txt);font-variant-numeric:tabular-nums}
.vg-extras .vg-alerta,.vg-extras .vg-alerta b{color:var(--aviso)}
.vg-abrir{position:absolute;top:.85rem;right:1rem;color:var(--txt2);transition:transform .15s,color .15s}
.vg-card:hover .vg-abrir{transform:translateX(3px);color:var(--c)}
.vg-ativ{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:1rem 1.1rem}
.vg-ativ h2{font:600 1rem var(--sans);margin:0 0 .6rem}
.vg-ativ ol{list-style:none;margin:0;padding:0}
.vg-ativ li{position:relative;padding:.5rem 0 .5rem .95rem;border-top:1px solid var(--borda);font-size:.9rem;line-height:1.4}
.vg-ativ li:first-child{border-top:0}
.vg-ativ li::before{content:"";position:absolute;left:0;top:.95rem;width:.42rem;height:.42rem;border-radius:50%;background:var(--c)}
.vg-ativ li a{color:var(--txt);text-decoration:none;display:block}
.vg-ativ li a:hover{text-decoration:underline}
.vg-ativ time{display:block;font-size:.78rem;color:var(--txt2);margin-top:.1rem}
.vg-ativ-mais{display:inline-block;margin-top:.5rem;font-size:.86rem}
.vg-ferramentas{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.7rem;margin-bottom:1.4rem}
.vg-ferramentas a{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:.85rem 1rem;text-decoration:none;color:var(--txt)}
.vg-ferramentas a:hover{border-color:var(--pri)}
.vg-ferramentas b{display:block}.vg-ferramentas span{font-size:.85rem;color:var(--txt2)}
@media (max-width:1000px){.vg-corpo{grid-template-columns:1fr}}
@media (max-width:600px){.vg-tag{width:auto}.vg-lista-at a{flex-wrap:wrap;gap:.1rem .6rem}.vg-msg{flex-basis:100%;order:2}.vg-ir{display:none}.vg-areas{grid-template-columns:1fr 1fr;gap:.7rem}.vg-num{font-size:1.7rem}.vg-card{padding:.9rem}}
@media (max-width:400px){.vg-areas{grid-template-columns:1fr}}

/* Turnos: formulário da coluna lateral */
#form-turno{min-width:0}
.duas-col.turnos-col{grid-template-columns:minmax(0,1fr) 400px}
@media(max-width:1100px){.duas-col.turnos-col{grid-template-columns:minmax(0,1fr) 360px}}
@media(max-width:960px){.duas-col.turnos-col{grid-template-columns:1fr}}
.tur-dias{display:flex;flex-wrap:wrap;gap:.3rem 1rem}
.tur-rapido{display:grid;grid-template-columns:1fr 1fr;gap:.2rem .8rem;align-items:end}
.tur-rapido>div{min-width:0}
.tur-rapido label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tur-rapido input{width:100%;min-width:0}
.tur-rapido-btn .btn{width:100%;margin-top:.4rem}
.linha-aula{grid-template-columns:minmax(0,84px) minmax(0,1fr) minmax(0,1fr) auto;gap:.3rem;align-items:center}
.linha-aula>*{min-width:0;width:100%}
.linha-aula input[type=time],.linha-aula select{padding-left:.4rem;padding-right:.25rem;font-size:.95rem}
.linha-aula input[type=time]{overflow:hidden}
.linha-aula input[type=time]::-webkit-calendar-picker-indicator{display:none}
.tur-rapido label{font-size:.9rem}
.linha-aula .remover{width:auto}
.hor-nav{flex-wrap:wrap}
@media (max-width:420px){.tur-rapido{grid-template-columns:1fr}.linha-aula{grid-template-columns:1fr 1fr auto}.linha-aula select{grid-column:1/-1}}

/* Leitor de câmera (código de barras e QR) */
#camera-box{position:fixed;inset:0;background:#000e;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:16px}
.cam-video-wrap{position:relative;width:100%;max-width:560px;border-radius:12px;overflow:hidden;background:#000}
#camera-video{width:100%}
#camera-video video{display:block;width:100%!important;height:auto!important}
.cam-mira{position:absolute;left:50%;top:50%;width:58%;aspect-ratio:1;max-height:80%;transform:translate(-50%,-50%);border:3px solid #fff9;border-radius:14px;box-shadow:0 0 0 2000px #0003;pointer-events:none}
.cam-zoom{display:flex;align-items:center;gap:.5rem;width:100%;max-width:560px}
.cam-zoom input{flex:1}
.cam-zoom .btn{min-width:2.6rem;font-size:1.2rem;padding:.3rem .6rem}
.cam-dica{color:#fff;text-align:center;margin:0;line-height:1.4}
.cam-dica small{color:#c9d3e0}
.cam-botoes{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}

/* Login do app Lups Aluno */
.login-app-icone{display:block;margin:0 auto .6rem;border-radius:18px;box-shadow:0 6px 18px rgba(6,160,155,.3)}
.escolha-escola{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;background:#fff;border:1px solid var(--borda);border-radius:10px;padding:.8rem 1rem;margin:.5rem 0;cursor:pointer;font:inherit;color:var(--txt)}
.escolha-escola:hover{border-color:#06a09b;box-shadow:var(--sombra)}
.escolha-escola span{font-size:.88rem;color:var(--txt2)}

/* Instalar aplicativo (Lups Aluno / Lups Equipe) */
.inst-sec{padding-top:3rem}
.inst-menu,.inst-pagina{max-width:860px}
.inst-apps{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem;margin:1.6rem 0}
.inst-app{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid var(--l2-linha);border-top:5px solid var(--c);border-radius:14px;padding:1.3rem;text-decoration:none;color:var(--l2-tinta);transition:box-shadow .15s,transform .15s}
.inst-app:hover{box-shadow:0 12px 30px rgba(7,29,66,.12);transform:translateY(-2px)}
.inst-app img{border-radius:20px;flex:none}
.inst-app h2,.inst-app h3{font:800 1.35rem var(--disp);margin:0;color:var(--c)}
.inst-app p{margin:.35rem 0 0;color:#4a5872;line-height:1.5;font-size:.95rem}
.inst-app .inst-para{color:var(--l2-tinta);font-weight:600;margin-top:.15rem}
.inst-btn{background:var(--c)!important;border-color:var(--c)!important;color:#fff!important;margin-top:.9rem}
.inst-voltar{display:inline-block;margin-bottom:1rem;color:#4a5872;text-decoration:none;font-size:.92rem}
.inst-cab{display:flex;gap:1rem;align-items:center;margin-bottom:.8rem}
.inst-cab img{border-radius:22px;box-shadow:0 8px 22px rgba(7,29,66,.18)}
.inst-cab h1{font:800 clamp(1.8rem,4vw,2.4rem)/1.05 var(--disp);color:var(--c);margin:0}
.inst-pagina .inst-para{margin:.3rem 0 0;font-weight:600}
.inst-acao{margin:1.2rem 0}
.inst-passos details{background:#fff;border:1px solid var(--l2-linha);border-radius:10px;padding:.8rem 1rem;margin:.6rem 0}
.inst-passos summary{font:600 1.05rem var(--disp);cursor:pointer;color:var(--l2-tinta)}
.inst-passos ol{margin:.6rem 0 0;padding-left:1.3rem;line-height:1.7}
@media (max-width:520px){.inst-app{flex-direction:column}.inst-app img{width:64px;height:64px}}
.btn-excluir{color:var(--erro)!important;border-color:color-mix(in srgb,var(--erro) 35%,var(--borda))!important}
.btn-excluir:hover:not(:disabled){background:color-mix(in srgb,var(--erro) 8%,#fff)!important}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* Fotos que vão ser enviadas (miniaturas com remover) */
.prev-fotos{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.foto-mini{position:relative;display:inline-block}
.foto-mini img{height:72px;width:72px;object-fit:cover;border-radius:8px;border:1px solid var(--borda);display:block}
.foto-mini button{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;border:0;background:var(--erro);color:#fff;font-size:.75rem;line-height:24px;padding:0;cursor:pointer;box-shadow:0 1px 3px #0004}
.foto-cont{flex-basis:100%;color:var(--txt2)}
