/* ===== Página inicial, sessões de estudo (revisão / prova), busca ===== */
.home{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:980px;margin:0 auto;padding:4px 2px 28px}
.h-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.h-logo{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;display:grid;place-items:center;font-weight:800;font-size:22px;box-shadow:0 8px 20px rgba(37,99,235,.35);flex:none}
.h-top h1{margin:0;font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.h-top small{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#5b6d8f;margin-top:2px}
.h-top .sp{flex:1}
.hero{border-radius:32px;padding:22px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.hero .tx{flex:1;min-width:150px}
.hero h2{margin:0;font-size:clamp(24px,5vw,34px);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.hero p{margin:6px 0 0;color:var(--mut);font-weight:600}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.chipx{display:inline-flex;align-items:center;gap:6px;background:#fff;border-radius:999px;padding:7px 13px;font-weight:800;font-size:13px;box-shadow:0 2px 8px rgba(40,70,130,.08)}
.chipx svg{flex:none}
.ring{position:relative;width:96px;height:96px;flex:none;text-align:center}
.ring svg{transform:rotate(-90deg)}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1}
.ring small{position:absolute;left:0;right:0;bottom:19px;font-size:9.5px;font-weight:800;color:#5b6d8f;letter-spacing:.08em}
.goal{display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:800;font-size:11.5px;color:#5b6d8f;letter-spacing:.08em;text-transform:uppercase}
.sec-t{margin:22px 4px 10px;font-size:11.5px;letter-spacing:.14em;font-weight:800;color:#5b6d8f;text-transform:uppercase}
.acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.act{background:#fff;border:1px solid var(--line);border-radius:26px;padding:16px;text-align:left;display:flex;flex-direction:column;gap:10px;box-shadow:0 4px 16px rgba(40,70,130,.08);min-width:0;position:relative}
.act:hover{box-shadow:0 8px 24px rgba(40,70,130,.14)}
.act .ic{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;color:#fff;flex:none}
.act b{font-size:17px;font-weight:800;letter-spacing:-.01em;display:block}
.act small{display:block;color:var(--mut);font-weight:600;font-size:13px;margin-top:2px;line-height:1.3}
.act .n{position:absolute;right:14px;top:14px;min-width:30px;height:30px;border-radius:999px;background:#fde3e8;color:#b3203f;font-weight:800;display:grid;place-items:center;padding:0 9px;font-size:14px}
.act .n.z{background:#eaeef6;color:#5b6d8f}
.act.off{opacity:.62}
.act.cont{grid-column:1/-1;flex-direction:row;align-items:center;gap:16px;background:linear-gradient(135deg,#1d4fd0,#0ea5e9);color:#fff;border:0;box-shadow:0 14px 30px rgba(37,99,235,.35)}
.act.cont small{color:rgba(255,255,255,.85)}
.act.cont .thumb{width:84px;height:84px;border-radius:20px;background:rgba(255,255,255,.95);flex:none;display:grid;place-items:center;overflow:hidden}
.act.cont .thumb img{max-width:90%;max-height:90%}
.act.cont .go{margin-left:auto;background:#fff;color:var(--brand);width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:none}
.prb{height:7px;border-radius:4px;background:rgba(120,140,180,.2);overflow:hidden;margin-top:8px}
.prb i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));border-radius:4px}
.cont .prb{background:rgba(255,255,255,.3)}.cont .prb i{background:#fff}
.books{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.book{background:#fff;border:1px solid var(--line);border-radius:26px;padding:18px;text-align:left;box-shadow:0 4px 16px rgba(40,70,130,.08);display:flex;gap:14px;align-items:center}
.book .bi{width:54px;height:54px;border-radius:18px;color:#fff;display:grid;place-items:center;flex:none}
.book b{display:block;font-size:17px;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.book small{display:block;color:var(--mut);font-weight:600;font-size:12.5px;margin-top:2px}
.book > span:nth-child(2){flex:1;min-width:0}
.book.soon{opacity:.6}
.foot{margin-top:24px;text-align:center;color:#8a97ae;font-size:12px;font-weight:600}
.foot button{color:var(--brand);font-weight:800}
.ribbon{position:fixed;top:0;left:50%;transform:translateX(-50%);background:var(--warn);color:#fff;font-weight:800;font-size:11.5px;letter-spacing:.1em;padding:4px 14px;border-radius:0 0 12px 12px;z-index:70;pointer-events:none}
@media (min-width:760px){.acts{grid-template-columns:repeat(3,minmax(0,1fr))}.act.cont{grid-column:span 3}}
@media (max-width:380px){.act{padding:13px}.act b{font-size:15.5px}.hero{padding:18px}}

/* sessão (revisão / prova) */
.sess-stage{touch-action:none}
.qp{flex:none;align-self:center;width:min(640px,100%);border-radius:30px;padding:16px 18px;margin-top:6px;max-height:48vh;max-height:48dvh;overflow:auto;position:relative;z-index:10}
.qp .cap{font-size:11px;font-weight:800;letter-spacing:.12em;color:#5b6d8f;text-transform:uppercase}
.qp h3{margin:4px 0 12px;font-size:23px;font-weight:800;letter-spacing:-.02em}
.qp h3 em{font-style:normal;color:var(--brand);background:#e6f0ff;border-radius:12px;padding:1px 12px;margin-left:6px}
.qp .opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.qp .opt{margin:0;padding:13px 14px;font-size:15px;border-radius:16px;line-height:1.25}
.qp .inp{padding:14px 16px;font-size:17px}
.qp .btn{margin-top:10px;padding:14px;font-size:16px}
.qp .fb{margin-top:10px;padding:11px 14px}
.qp .row2{display:flex;gap:8px}.qp .row2 .btn{flex:1}
.qp .skip{display:block;margin:8px auto 0;color:#5b6d8f;font-weight:700;font-size:13px;padding:6px 12px}
.opt.sel{background:#e6f0ff;border-color:var(--brand)}
@media (max-width:560px){.qp .opts{grid-template-columns:1fr}.qp{padding:14px}.qp h3{font-size:20px;margin-bottom:10px}}
@media (max-height:520px){.qp{max-height:62vh}.qp .opts{grid-template-columns:1fr 1fr}}
.tmr{font-variant-numeric:tabular-nums}.tmr.low{color:var(--err)}
.pill.star{color:#c7a008}.pill.star.on{background:#fff4c2;color:#b58900}
.estrela{margin-left:auto;width:48px;height:48px;border-radius:50%;background:#fff7d6;display:grid;place-items:center;color:#b58900;flex:none}
.estrela+.x{margin-left:8px}
.estrela.on{background:#ffe27a}
.res{max-width:640px;margin:0 auto;width:100%;overflow:auto;flex:1;min-height:0;padding:6px 2px 24px}
.res .card{background:#fff;border-radius:30px;padding:22px;box-shadow:var(--shadow);text-align:center}
.res .card h2{margin:0 0 4px;font-size:28px;font-weight:800;letter-spacing:-.02em}
.erro{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px 14px;margin-top:8px;text-align:left;width:100%}
.erro .n{width:40px;height:40px;border-radius:50%;background:var(--err);color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.erro small{display:block;font-size:11px;color:var(--mut);font-weight:700}
.erro b{font-size:15px}
.erro s{color:var(--err);font-weight:600;font-size:13px}
.cfg-l{margin:14px 2px 8px;font-size:11.5px;letter-spacing:.13em;font-weight:800;color:#5b6d8f;text-transform:uppercase}
.chs{display:flex;gap:8px;flex-wrap:wrap}
.cf{padding:10px 16px;border-radius:999px;background:#e8edf6;font-weight:700;font-size:14px;color:#4b5a78}
.cf.on{background:var(--brand);color:#fff}
.bres{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px 16px;margin-top:8px;width:100%;text-align:left}
.bres b{display:block;font-size:15.5px}.bres small{color:var(--mut);font-weight:600;font-size:12.5px}
.toast2{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#16213a;color:#fff;padding:12px 18px;border-radius:14px;font-weight:700;font-size:14px;z-index:90;box-shadow:0 10px 30px rgba(0,0,0,.3);max-width:min(92vw,420px);text-align:center}
.estrela.on svg,.pill.star.on svg{fill:currentColor}
.sess-stage .fig img{max-height:calc(100vh - 420px);max-height:calc(100dvh - 420px);min-height:140px}
@media (min-width:700px){.sess-stage .fig img{max-height:calc(100dvh - 350px)}}
@media (max-height:520px){.sess-stage .fig img{max-height:calc(100dvh - 130px);min-height:80px}}

@media (max-width:560px){.hero{flex-wrap:nowrap;gap:12px;padding:18px}.ring,.ring svg{width:78px;height:78px}.ring b{font-size:19px}.ring small{bottom:14px;font-size:8.5px}.goal{font-size:10px}}

/* ===== linhas-guia (traço fino até a estrutura) ===== */
.gl{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}
.gl polyline{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.gl{--lw:1px}
.gl .halo{stroke:rgba(255,255,255,.9);stroke-width:calc(3.2px / var(--z,1))}
.gl .core{stroke:#16213a;stroke-width:calc(1.15px / var(--z,1))}
.gl .ln.ok .core{stroke:#0b8f58}.gl .ln.err .core{stroke:#d92d52}
.gl .ln.ativo .halo{stroke-width:calc(4.2px / var(--z,1))}
.gl .ln.ativo .core{stroke:#1d4fd0;stroke-width:calc(1.8px / var(--z,1))}
.td{position:absolute;width:7px;height:7px;box-sizing:content-box;border:2px solid #fff;border-radius:50%;background:#16213a;margin:-5.5px 0 0 -5.5px;transform:scale(calc(1 / var(--z,1)));z-index:3;pointer-events:none;box-shadow:0 0 0 .5px rgba(0,0,0,.45)}
.td.ok{background:#0b8f58}.td.err{background:#d92d52}
.td.ativo{background:#1d4fd0;width:9px;height:9px;margin:-6.5px 0 0 -6.5px;z-index:5;box-shadow:0 0 0 .5px rgba(0,0,0,.45),0 0 0 6px rgba(37,99,235,.22)}
.pin.lb{border-width:1.5px;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.pin.lb.ativo{animation:none;box-shadow:0 0 0 4px rgba(37,99,235,.25),0 4px 12px rgba(37,99,235,.45)}

.fig img{max-width:min(90vw,820px)}
@media (min-width:1400px){.fig img{max-width:980px}}

/* ===== conta, planos, trava ===== */
.cp{color:var(--mut);font-weight:600;font-size:14px;line-height:1.45;margin:2px 2px 12px}
.cp.mini{font-size:12px;margin-top:14px;text-align:center}.cp a{color:var(--brand);font-weight:700}
.inp.cod{text-align:center;font-size:28px;letter-spacing:.35em;font-weight:800}
.stt{background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px 16px;margin-bottom:10px}
.stt b{display:block;font-size:16px}.stt small{display:block;color:var(--mut);font-weight:600;font-size:13px;margin-top:2px}
.stt.ok{background:#dcf7ea;border-color:#b6ebd0}.stt.ok b{color:#0b7a4b}
.menu a.row{display:flex;align-items:center;gap:14px;width:100%;background:#fff;border-radius:22px;padding:16px 18px;margin-bottom:10px;font-weight:700;text-align:left;border:1px solid var(--line);text-decoration:none;color:inherit}
.menu a.row svg{color:var(--brand);flex:none}
.banner{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:12px 14px;margin-bottom:12px;box-shadow:0 4px 14px rgba(40,70,130,.07);flex-wrap:wrap}
.banner .bi2{width:40px;height:40px;border-radius:13px;background:#e6f0ff;color:var(--brand);display:grid;place-items:center;flex:none}
.banner>span:nth-child(2){flex:1;min-width:150px}
.banner b{display:block;font-size:14.5px}.banner small{display:block;color:var(--mut);font-weight:600;font-size:12.5px}
.banner.ok{background:#e9f9f1;border-color:#bfeed7}.banner.ok .bi2{background:#c9f1de;color:var(--ok)}
.b1{padding:9px 14px;border-radius:999px;background:#e8edf6;font-weight:800;font-size:13px;color:#2c3a58}
.b1.p{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff}
.pill.logado{color:var(--ok)}
.bene{list-style:none;margin:0 0 14px;padding:0}
.bene li{display:flex;gap:10px;align-items:flex-start;font-weight:600;font-size:14px;padding:5px 2px;line-height:1.35}
.bene svg{color:var(--ok);flex:none;margin-top:1px}
.planos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.plano{background:#fff;border:1px solid var(--line);border-radius:24px;padding:16px 14px;text-align:center;position:relative;display:flex;flex-direction:column;gap:6px}
.plano.dest{border:2px solid var(--brand);box-shadow:0 10px 26px rgba(37,99,235,.2)}
.plano .sel{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--brand);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;white-space:nowrap}
.pn{font-weight:800;font-size:15px}.pp b{font-size:26px;letter-spacing:-.03em}.pp small{color:var(--mut);font-weight:700;font-size:12px}
.pd{color:var(--mut);font-size:12px;font-weight:600;line-height:1.35;flex:1}
.plano .btn{margin-top:8px;padding:12px;font-size:15px;text-decoration:none;text-align:center}
@media (max-width:560px){.planos{grid-template-columns:1fr}.plano{padding-top:20px}}
.stage.locked .fig{filter:blur(9px) saturate(.8);opacity:.55;pointer-events:none}
.stage.locked .pin,.stage.locked .td,.stage.locked .gl,.stage.locked .zoom{display:none}
.lockov{position:absolute;inset:0;display:grid;place-items:center;padding:16px;z-index:7}
.lockcard{width:min(380px,100%);border-radius:30px;padding:22px;text-align:center;background:var(--glass2)}
.lockcard .lic{width:56px;height:56px;border-radius:50%;background:#e6f0ff;color:var(--brand);display:grid;place-items:center;margin:0 auto 10px}
.lockcard h3{margin:0 0 6px;font-size:21px;letter-spacing:-.02em}.lockcard p{margin:0 0 6px;color:var(--mut);font-weight:600;font-size:14px;line-height:1.4}
.lockcard .btn{margin-top:10px;padding:14px;font-size:16px}
.lockcard .skip{display:block;margin:10px auto 0;color:#5b6d8f;font-weight:700;font-size:13px}
.fcard .lk{color:#9aa6bd;display:grid;place-items:center;margin-right:2px}
.aprow{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px 14px;margin-bottom:8px}
.aprow.atual{border-color:#b7cdf7;background:#f2f7ff}
.aprow .api{width:40px;height:40px;border-radius:13px;background:#e6f0ff;color:var(--brand);display:grid;place-items:center;flex:none}
.aprow b{display:block;font-size:14.5px}.aprow small{display:block;color:var(--mut);font-weight:600;font-size:12.5px}

/* ===== proteção do conteúdo ===== */
body{-webkit-user-select:none;user-select:none}
input,textarea{-webkit-user-select:text;user-select:text}
@media print{body *{display:none!important}html::before{content:'A impressão deste conteúdo não é permitida.';display:block;font:600 20px system-ui,sans-serif;padding:40px}}
body.prot-blur .fig{filter:blur(22px)!important}
.protwarn{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(380px,90vw);background:#fff;border-radius:26px;padding:22px;text-align:center;z-index:200;box-shadow:0 24px 60px rgba(20,30,60,.45);animation:rise .25s ease both}
.protwarn .lic{width:54px;height:54px;border-radius:50%;background:#fde3e8;color:var(--err);display:grid;place-items:center;margin:0 auto 10px}
.protwarn h3{margin:0 0 6px;font-size:19px}.protwarn p{margin:0 0 12px;color:var(--mut);font-weight:600;font-size:14px;line-height:1.4}

/* ---------- privacidade ---------- */
.pv-l{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin:14px 2px 8px}
.pv-sel{width:100%;margin-top:10px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#fff;font:inherit;font-weight:600;color:#2c3a58}
.pv-ck{display:flex;gap:12px;align-items:flex-start;padding:10px 2px;cursor:pointer}
.pv-ck input{width:20px;height:20px;margin-top:2px;accent-color:var(--brand,#3b6cf5);flex:none}
.pv-ck b{display:block;font-size:15px}.pv-ck small{display:block;color:var(--mut);font-weight:600;font-size:12.5px;margin-top:1px}
.btn.pv-danger{background:#fde3e8;color:#b3203f;box-shadow:none;margin-top:12px;width:100%}
.btn.pv-danger.conf{background:#d92d4b;color:#fff}
.btn.pv-danger:disabled{opacity:.55}
.pv-sw{display:flex;align-items:center;gap:12px}.pv-sw>span{flex:1}.pv-sw b{display:block;font-size:16px}.pv-sw small{display:block;color:var(--mut);font-weight:600;font-size:13px;margin-top:2px}
.swt{width:52px;height:30px;border-radius:999px;background:#cfd6e4;position:relative;flex:none;transition:background .2s}
.swt i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}
.swt.on{background:#22b573}.swt.on i{transform:translateX(22px)}

/* =========================================================
   Layout amplo + correções de encaixe (v9)
   ========================================================= */
/* --- barras de rolagem finas e dentro das curvas das caixas --- */
*{scrollbar-width:thin;scrollbar-color:rgba(110,130,170,.45) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent;margin:22px 0}
::-webkit-scrollbar-thumb{background:rgba(110,130,170,.42);border-radius:999px;border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:rgba(80,105,160,.65);background-clip:content-box;border:3px solid transparent}
::-webkit-scrollbar-corner{background:transparent}
.sheet,.qp,.pop{scrollbar-gutter:auto}
.sheet{overflow-x:hidden}
.sheet::-webkit-scrollbar-track{margin:30px 0}
.qp::-webkit-scrollbar-track,.pop::-webkit-scrollbar-track{margin:20px 0}
.tabs,.chs{scrollbar-width:none}.tabs::-webkit-scrollbar,.chs::-webkit-scrollbar{display:none}
.item{border-radius:30px}
.item .fstar{color:#d49a00;font-style:normal;font-size:20px;margin-left:auto;flex:none}

/* --- botão "Responder / Ver resposta": linha própria, sem cobrir a figura --- */
.ctarow{flex:none;display:flex;justify-content:center;padding:8px 0 26px;position:relative;z-index:11}
.ctarow .cta{position:static;transform:none;padding:12px 24px;font-size:15px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ctarow .cta:active{transform:scale(.97)}
@media (min-height:521px){
  .fig img{max-height:calc(100vh - 340px);max-height:calc(100dvh - 340px)}
}
@media (max-width:560px) and (min-height:521px){.fig img{max-height:calc(100vh - 350px);max-height:calc(100dvh - 350px)}.ctarow{padding:6px 0 24px}}
@media (max-height:520px){
  .ctarow{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));padding:0}
  .ctarow .cta{padding:9px 16px;font-size:13px}
}
/* a figura pode usar toda a largura disponível */
.fig img{max-width:min(96vw,1400px)}
.stage{padding:6px 0}
.top{max-width:none}

/* --- painel lateral (só em telas largas) --- */
.panel{display:none}
.pn-h b{font-size:17px;font-weight:800}.pn-h small{display:block;font-size:12px;font-weight:700;color:var(--mut);margin-top:2px}
.cta2{margin:12px 0 8px;width:100%;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-weight:800;padding:14px 16px;border-radius:999px;box-shadow:0 8px 20px rgba(37,99,235,.32);font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plist{flex:1;min-height:0;overflow:auto;margin:0 -8px;padding:2px 8px}
.prow{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--line);border-radius:22px;margin-bottom:8px;padding:4px 6px 4px 4px;transition:border-color .15s,box-shadow .15s}
.prow.on{border-color:var(--brand);box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.pr-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;text-align:left;padding:4px;border-radius:18px}
.prow .n{width:40px;height:40px;border-radius:50%;background:#eef2fa;display:grid;place-items:center;font-weight:800;font-size:16px;flex:none}
.prow .n.v{font-size:11px}
.prow.ok .n{background:var(--ok);color:#fff}.prow.err .n{background:var(--err);color:#fff}
.pr-t{min-width:0}.pr-t small{display:block;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#5b6d8f}
.pr-t b{display:block;font-size:14px;font-weight:700;line-height:1.25;overflow-wrap:anywhere}.pr-t b.oc{color:#9aa6bd;font-weight:600}
.pr-star{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#c7a008;flex:none}
.pr-star:hover{background:#fff4c2}.pr-star.on{background:#ffe27a;color:#8a6a00}.pr-star.on svg{fill:currentColor}
.pn-d{margin:8px 4px 0;font-size:12px;font-weight:600;color:var(--mut)}

@media (min-width:1100px){
  #app[data-t="atlas"]{display:grid;grid-template-columns:minmax(0,1fr) clamp(330px,24vw,440px);grid-template-rows:auto minmax(0,1fr) auto;column-gap:18px}
  #app[data-t="atlas"]>.top{grid-column:1/-1}
  #app[data-t="atlas"]>.stage{grid-column:1;grid-row:2}
  #app[data-t="atlas"]>.dock{grid-column:1;grid-row:3}
  #app[data-t="atlas"]>.ctarow{display:none}
  #app[data-t="atlas"]>.panel{display:flex;flex-direction:column;grid-column:2;grid-row:2/4;min-height:0;border-radius:30px;padding:18px 16px 14px;margin-top:6px}
  .fig img{max-height:calc(100vh - 235px);max-height:calc(100dvh - 235px)}
  /* sessões: figura de um lado, pergunta do outro */
  #app[data-t="sessao"]{display:grid;grid-template-columns:minmax(0,1fr) clamp(380px,32vw,520px);grid-template-rows:auto minmax(0,1fr);column-gap:18px}
  #app[data-t="sessao"]>.top{grid-column:1/-1}
  #app[data-t="sessao"]>.stage{grid-column:1;grid-row:2}
  #app[data-t="sessao"]>.qp{grid-column:2;grid-row:2;align-self:center;width:100%;max-height:100%;margin-top:0;padding:24px}
  #app[data-t="sessao"]>.qp .opts{grid-template-columns:1fr}
  #app[data-t="sessao"]>.qp h3{font-size:28px}
  /* início e janelas maiores */
  .home{max-width:1240px}
  .sheet{width:min(620px,100%)}.sheet.wide{width:min(920px,100%)}.sheet.q{width:min(700px,100%)}
}
@media (min-width:1700px){.home{max-width:1380px}.fig img{max-width:min(96vw,1500px)}}
@media (min-width:600px) and (max-width:1099px){.sheet{width:min(640px,100%)}.sheet.wide{width:min(760px,100%)}}
#app[data-t="atlas"]>.dock{justify-self:center}
@media (max-width:430px){
  .score{padding:0 9px;gap:6px}.score svg{display:none}
  .top{gap:6px}.top small{letter-spacing:.04em}
}
@media (min-width:1100px) and (min-height:900px){.sheet{max-height:min(92vh,980px);max-height:min(92dvh,980px)}}
.top .pill.ic.on{background:var(--brand);color:#fff;box-shadow:0 0 0 4px rgba(37,99,235,.2)}
.pn-redo{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;padding:11px;border-radius:999px;background:#e8edf6;color:#2c3a58;font-weight:800;font-size:14px}
.pn-redo:hover{background:#dbe5f6}
.toast2.undo{display:flex;align-items:center;gap:14px;padding:10px 12px 10px 18px}
.toast2.undo button{background:#fff;color:#16213a;font-weight:800;border-radius:999px;padding:7px 14px;font-size:13px}
.only-wide{display:none!important}
.pn-h{display:flex;align-items:flex-start;gap:6px}.pn-h>div:first-child{flex:1;min-width:0}
.pn-b{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:999px;background:#e8edf6;color:#2c3a58;font-weight:800;font-size:13px;flex:none}
.pn-b.ic{padding:0;width:34px;justify-content:center}.pn-b:disabled{opacity:.4}.pn-b:hover:not(:disabled){background:#dbe5f6}
.btn.refz{margin:0 0 12px;padding:12px;font-size:14px}
.toast2.undo{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 18px}
.toast2.undo button{background:#fff;color:#16213a;font-weight:800;border-radius:999px;padding:7px 14px}
@media (min-width:1100px){
  .only-wide{display:inline-flex!important}
  #app[data-t="atlas"][data-p="0"]{grid-template-columns:minmax(0,1fr)}
  #app[data-t="atlas"][data-p="0"]>.panel{display:none}
}

/* ---------- didática: lupa, apontar, prova prática ---------- */
.lupa{container-type:size;position:relative;height:230px;border-radius:22px;overflow:hidden;margin-top:12px;background:#fff;border:1px solid var(--line);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}
.lupa-in{position:absolute;left:0;top:0;width:100cqw;transform-origin:0 0}
.lupa-in img{display:block;width:100%;height:auto;pointer-events:none;user-select:none}
.lupa-t{position:absolute;left:10px;top:8px;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(22,33,58,.7);border-radius:999px;padding:4px 10px}
.apbar{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 24px));z-index:7;border-radius:26px;padding:10px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.apq{flex:1;min-width:150px}.apq small{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5b6d8f}.apq b{display:block;font-size:17px;line-height:1.2;overflow-wrap:anywhere}
.apbar .btn{margin:0;width:auto;padding:11px 20px;font-size:15px}.apbar .btn:disabled{opacity:.5}
.apbar .skip{color:#5b6d8f;font-weight:700;font-size:13px;padding:6px 8px}
#app[data-ap="1"] #fig>.gl,#app[data-ap="1"] #fig>.td,#app[data-ap="1"] #fig>.pin{display:none}
#app[data-ap="1"] .ctarow,#app[data-ap="1"] .cta2{display:none}
.apreveal{display:contents}
.apm{position:absolute;width:24px;height:24px;border-radius:50%;border:3px solid #f59e0b;background:rgba(245,158,11,.28);transform:translate(-50%,-50%) scale(calc(1 / var(--z,1)));z-index:3;pointer-events:none}
.apm.ok{border-color:var(--ok);background:rgba(34,181,115,.3)}.apm.err{border-color:var(--err);background:rgba(239,68,68,.3)}
.qbar{height:6px;border-radius:3px;background:rgba(120,140,180,.22);overflow:hidden;margin:0 0 10px}
.qbar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2))}
@media (max-width:560px){.apbar{padding:8px 12px}.apq b{font-size:15.5px}}
.apm.alvo{border-color:#14b8a6;background:rgba(20,184,166,.3);width:18px;height:18px}

/* ---------- barra de resposta compacta (resposta.js) ---------- */
#app[data-resp="1"]>.dock,#app[data-resp="1"]>.ctarow,#app[data-resp="1"] .pop,#app[data-resp="1"] .cta2{display:none!important}
.respbar{flex:none;align-self:center;width:min(760px,calc(100% - 20px));margin:6px 0 10px;padding:10px 14px 12px;border-radius:26px;position:relative;z-index:12;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;box-shadow:0 12px 30px rgba(20,30,60,.2)}
.respbar>div:first-child{order:2;margin-left:auto;display:flex;align-items:center;gap:6px}
.respbar>div:first-child .tag{display:none}
.respbar>div:first-child .x,.respbar .estrela{width:36px;height:36px}
.respbar h3{order:1;flex:1 1 auto;margin:0!important;font-size:17px!important;font-weight:800;letter-spacing:-.01em;min-width:0}
.respbar h3 em{padding:1px 10px!important;border-radius:10px!important;margin-left:6px!important}
.respbar .inp{order:3;flex:1 1 200px;width:auto;padding:11px 14px;font-size:16px;border-radius:16px}
.respbar .btn{order:4;width:auto;flex:0 0 auto;margin:0;padding:11px 20px;font-size:15px;border-radius:16px;box-shadow:0 6px 14px rgba(37,99,235,.28)}
.respbar .opt{order:3;flex:1 1 calc(50% - 6px);width:auto;margin:0;padding:11px 14px;font-size:15px;border-radius:16px;line-height:1.25}
.respbar .fb{order:5;flex:1 1 100%;margin:0;padding:9px 12px;font-size:14.5px;border-radius:14px}
.respbar .btn[onclick="continuar()"]{order:6;flex:1 1 100%;width:100%}
.respbar .skip.rep{order:7;flex:1 1 100%;margin:0;padding:2px;font-size:12px}
.respbar .opt:not(.right):not(.wrong){background:rgba(255,255,255,.75)}
@media (max-width:420px){.respbar .opt{flex-basis:100%}.respbar{padding:8px 10px 10px}}
@media (max-height:520px) and (orientation:landscape){.respbar{width:min(640px,calc(100% - 20px));padding:6px 10px 8px}.respbar .opt{padding:7px 12px;font-size:14px}}
#app[data-resp="1"] .fig img{max-height:calc(100vh - 100px - var(--rh,150px))!important;max-height:calc(100dvh - 100px - var(--rh,150px))!important;max-height:var(--imgmax,calc(100dvh - 100px - var(--rh,150px)))!important}
.stage .lupa.flut{position:absolute;left:10px;top:10px;width:190px;height:140px;border-radius:18px;z-index:13;box-shadow:0 10px 26px rgba(20,30,60,.35);border:3px solid #fff;margin:0}
html[data-tema="escuro"] .respbar .opt:not(.right):not(.wrong){background:rgba(255,255,255,.07)}
@media (min-width:1100px){#app[data-t="atlas"][data-resp="1"]>.respbar{grid-column:1;grid-row:3;justify-self:center}}
.respbar:has(.opt) h3{flex:1 1 calc(100% - 120px)}
.respbar:has(.opt)>div:first-child{flex:none}
.respbar:not(:has(.opt)) h3{flex:0 1 auto;margin-right:auto!important;white-space:nowrap}
.respbar .inp{flex:1 1 150px}

/* ---------- área do professor (prof.js) ---------- */
.pf-tabs{display:flex;gap:6px;background:rgba(120,140,180,.14);border-radius:16px;padding:4px;margin:6px 0 12px}
.pf-tabs button{flex:1;padding:10px;border-radius:12px;font-weight:800;color:#5b6d8f}
.pf-tabs button.on{background:#fff;color:var(--brand);box-shadow:0 2px 8px rgba(20,30,60,.12)}
.pf-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left}
.pf-row small{display:block;font-weight:600;color:var(--mut);font-size:12.5px;margin-top:2px}
.pf-n{margin-left:auto;font-style:normal;font-weight:800;font-size:20px;text-align:center;color:var(--brand)}.pf-n small{display:block;font-size:10.5px;margin:0}
.pf-turma .skip{padding:6px 8px;font-size:12.5px;flex:none}.pf-turma>span{flex:1;min-width:0}
.pf-nt{display:flex;gap:8px;align-items:center;margin-bottom:10px}.pf-nt .inp{flex:1;padding:12px 14px;font-size:15px}.pf-nt .btn{margin:0;width:auto;padding:12px 18px}
.pf-demo{margin-top:14px}
.pf-sel{padding:12px 14px;font-size:15px}
.pf-act{display:flex;flex-wrap:wrap;gap:4px 12px;margin:6px 0}.pf-act .skip{font-size:13px;font-weight:800;color:var(--brand);padding:6px 2px}
.pf-figs{display:grid;gap:8px;margin:6px 0;max-height:340px;overflow:auto;padding:2px}
.pf-fig{background:#fafbfd;border:1px solid var(--line);border-radius:16px}.pf-fig.on{border-color:var(--brand);background:#f0f6ff}
.pf-fh{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px}
.pf-fh span{flex:1;min-width:0}.pf-fh small{display:block;color:var(--mut);font-weight:700;font-size:11.5px}.pf-fh b{font-size:14.5px}.pf-fh em{font-style:normal;font-weight:800;color:var(--mut);font-size:13px}
.pf-ck{width:24px;height:24px;border-radius:8px;border:2px solid var(--line);display:grid;place-items:center;font-style:normal;font-weight:900;color:#fff;font-size:14px;flex:none}.pf-fig.on .pf-ck{background:var(--brand);border-color:var(--brand)}
.pf-tg{display:block;padding:0 12px 10px 46px;font-size:12.5px;font-weight:800;color:var(--brand)}
.pf-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 12px}
.pf-chips button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 10px;font-size:12.5px;font-weight:700;color:var(--mut);text-decoration:line-through}
.pf-chips button.on{color:var(--ink);text-decoration:none;border-color:var(--brand);background:#e6f0ff}
.pf-chk{display:flex;gap:10px;align-items:center;margin:14px 2px 0;font-weight:700;font-size:14.5px}.pf-chk input{width:20px;height:20px}
.pf-cod{font-size:44px;font-weight:900;letter-spacing:.2em;text-align:center;background:#e6f0ff;color:var(--brand);border-radius:22px;padding:16px 8px 16px 20px;margin:10px 0 6px;user-select:all}
.pf-kpi{margin:8px 0}.pf-kpi b{font-size:22px}
.pf-tbl{border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:8px 0;background:#fff}
.pf-th,.pf-tr{display:grid;grid-template-columns:minmax(0,1fr) 64px 92px;gap:8px;align-items:center;padding:10px 14px;width:100%;text-align:left}
.pf-th{background:#f1f4fa;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.pf-tr{border-top:1px solid var(--line)}.pf-tr:hover{background:#f7faff}.pf-tr small{display:block;color:var(--mut);font-weight:600;font-size:11.5px}
.pf-nota{font-weight:900;font-size:18px}.pf-nota.ok{color:var(--ok)}.pf-nota.err{color:var(--err)}
.pf-q{display:grid;grid-template-columns:minmax(0,1fr) 90px 44px;gap:10px;align-items:center;margin:8px 2px;font-weight:700;font-size:14px}.pf-q small{display:block;color:var(--mut);font-size:11.5px}.pf-q em{font-style:normal;font-weight:800;text-align:right}
.pf-bar{height:8px;border-radius:99px;background:#e3e8f2;overflow:hidden}.pf-bar i{display:block;height:100%;background:var(--err)}
.pf-regras{margin:12px 0 0;padding-left:20px;color:var(--mut);font-weight:600;font-size:13.5px;line-height:1.5}
.erro.okr .n{background:var(--ok);color:#fff}
@media (max-width:480px){.pf-th,.pf-tr{grid-template-columns:minmax(0,1fr) 52px 74px;padding:10px}.pf-cod{font-size:34px}}
html[data-tema="escuro"] .pf-fig,html[data-tema="escuro"] .pf-tbl,html[data-tema="escuro"] .pf-chips button{background:#1c2540}
html[data-tema="escuro"] .pf-fig.on,html[data-tema="escuro"] .pf-chips button.on,html[data-tema="escuro"] .pf-cod,html[data-tema="escuro"] .pf-tabs button.on{background:#25335c;color:#cfe0ff}
html[data-tema="escuro"] .pf-th{background:#18203a}
.pf-kpi{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:480px){.pf-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}}
.okflash{position:fixed;left:50%;bottom:max(110px,calc(env(safe-area-inset-bottom) + 100px));transform:translateX(-50%);width:54px;height:54px;border-radius:50%;background:var(--ok);display:grid;place-items:center;z-index:60;pointer-events:none;box-shadow:0 8px 22px rgba(16,160,100,.45);animation:okf .5s ease both}
@keyframes okf{0%{opacity:0;transform:translateX(-50%) scale(.6)}25%{opacity:1;transform:translateX(-50%) scale(1.05)}70%{opacity:1}100%{opacity:0;transform:translateX(-50%) scale(1)}}
html[data-mov="reduzido"] .okflash{animation:none;opacity:.95}
.papel-h{text-align:center;margin:4px 0 14px}.papel-h h2{margin:10px 0 4px;font-size:22px}.papel-h .h-logo{margin:0 auto}
.papel-b{width:100%;margin-bottom:10px;padding:16px}.papel-b small{display:block}
.cod-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cod-grid .busca-bar{margin:10px 0 0}
@media (max-width:420px){.cod-grid{grid-template-columns:1fr}}
.pf-bd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--brand);color:#fff;font-size:11.5px;margin-left:4px}
.cf.on .pf-bd{background:#fff;color:var(--brand)}
.pf-lnk{display:flex;align-items:center;gap:10px;flex:1;min-width:0;text-align:left}.pf-lnk>span{flex:1;min-width:0}
.pf-turma{flex-wrap:wrap}.pf-turma .skip{font-size:12.5px;font-weight:800;color:var(--brand);padding:4px 6px}
.pf-tag{font-style:normal;font-weight:800;font-size:12px;border-radius:99px;padding:6px 12px;flex:none;margin-left:auto}
.pf-tag.pend{background:var(--brand);color:#fff}.pf-tag.ok{background:#dff6ea;color:#0a7d4e}.pf-tag.enc{background:#ececf1;color:#667}
.pf-tarefa{border:1.5px solid var(--brand);background:#f3f8ff}
.pf-opt{padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fafbfd;margin:6px 0}
html[data-tema="escuro"] .pf-tarefa,html[data-tema="escuro"] .pf-opt{background:#1c2540}
html[data-tema="escuro"] .pf-tag.ok{background:#12352a;color:#6ee7b7}html[data-tema="escuro"] .pf-tag.enc{background:#2a3045;color:#aab}
.home .pf-row{display:flex;align-items:center;gap:12px;width:100%;background:#fff;border-radius:20px;padding:14px 16px;margin:8px 0;box-shadow:0 4px 14px rgba(30,50,100,.08);text-align:left}
.home .pf-row>span{flex:1;min-width:0;font-weight:800}
.home .pf-tarefa{border:1.5px solid var(--brand)}
html[data-tema="escuro"] .home .pf-row{background:#1c2540}

/* o contêiner da figura sempre acompanha a imagem (pins em % ficam no lugar certo) */
.fig{max-height:none!important}
.fig img{animation:none!important}   /* a imagem não 'pula' mais ao redesenhar: os pins ficam sempre no lugar */
/* atalho para o início no topo da figura */
.home-b{display:flex;align-items:center;gap:9px;flex:none;padding:2px 6px 2px 2px;border-radius:16px;color:var(--ink);font-weight:800;font-size:17px;letter-spacing:-.01em}
.home-b:hover{background:rgba(255,255,255,.7)}
.home-b .h-logo{width:38px;height:38px;border-radius:12px;font-size:19px}
.top .home-b+.ttl{margin-left:4px;padding-left:12px;border-left:1px solid rgba(120,140,180,.3);border-radius:0}
@media (max-width:899px){.home-b b{display:none}.home-b{padding:0}.home-b .h-logo{width:34px;height:34px;font-size:17px}.top .home-b+.ttl{border-left:0;padding-left:4px}}
@media (max-width:380px){.home-b .h-logo{width:30px;height:30px;font-size:15px;border-radius:10px}}
html[data-tema="escuro"] .home-b{color:#e8eefc}html[data-tema="escuro"] .home-b:hover{background:rgba(255,255,255,.08)}
/* logo Dissecta (atlas C1) */
.h-logo{background:#2563eb url(icons/icon-192.png) center/cover no-repeat!important;color:transparent!important;font-size:0!important;box-shadow:0 8px 20px rgba(37,99,235,.35)!important;overflow:hidden}
/* zoom móvel: sem alça; toque na área vazia mostra a bolinha de fechar */
.zoom{touch-action:none}.zoom button{touch-action:manipulation}
.zoom.mov{box-shadow:0 10px 30px rgba(20,40,90,.3)}
.zoom .zx{position:absolute;top:-9px;right:-9px;width:24px;height:24px;border-radius:50%;background:#fff;color:#4a5876;border:1px solid #cfd8ea;box-shadow:0 3px 10px rgba(20,40,90,.25);display:grid;place-items:center;font-size:15px;line-height:1;font-weight:800;padding:0;z-index:7}
.zoom .zx:hover{background:#eef3ff}

/* ===== Página inicial em tela larga: ocupa a tela toda ===== */
@media (min-width:1100px){
  .home.wide{max-width:min(96vw,1760px);padding:4px 28px 24px;display:flex;flex-direction:column;gap:14px}
  .home.wide>.h-top,.home.wide>.banner{margin:0}
  .home.wide .hcols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:stretch;flex:1 0 auto}
  .home.wide .hcol{display:flex;flex-direction:column;gap:14px;min-width:0}
  .home.wide .hcol>*{margin-top:0;margin-bottom:0}
  .home.wide .hcol.l .hero{flex:none}
  .home.wide .hcol.l .g-prat{flex:1 0 auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr}
  .home.wide .hcol.r .books{flex:1 0 auto;grid-template-columns:minmax(0,1fr);grid-auto-rows:1fr}
  .home.wide .hcol.r .book{height:100%}
  .home.wide .hcol .sec-t{margin:6px 4px 0}
  .home.wide>.foot{margin-top:0;padding:6px 0 0}
}
@media (min-width:1100px) and (max-height:860px){
  .home.wide{gap:10px}
  .home.wide .hcol{gap:10px}
  .home.wide .hero{padding:14px 22px}
  .home.wide .hero h2{font-size:28px}
  .home.wide .ring,.home.wide .ring svg{width:76px;height:76px}
  .home.wide .act{padding:12px 14px}
  .home.wide .g-prat .act{min-height:0}
  .home.wide .book{padding:10px 14px}
}

.gbtn{display:flex;align-items:center;justify-content:center;gap:10px;background:#fff!important;color:#1f2937!important;border:1.5px solid #d5dbe8!important;box-shadow:0 2px 8px rgba(30,50,100,.08)!important}
.ou{display:flex;align-items:center;gap:10px;margin:12px 0;color:#7a88a6;font-size:12.5px;font-weight:700}
.ou:before,.ou:after{content:"";flex:1;height:1px;background:#dbe2ef}
