/* ===================================================================================
   gestor.css — Gestor de Eventos (07/10/2026; protótipo aprovado: _docs/proto/gestor-proto.html)
   App em tela cheia por cima do sistema (#geRoot, gestor.js), na casca de vidro do
   EXEDU: usa os tokens --lb-* do styles.css (não copia).
   ISOLAMENTO: tudo aqui começa por #geRoot, e a 1ª regra zera o CSS do sistema lá
   dentro (`all:revert`, com :where para não pesar). Sem ela, classes do sistema com
   o mesmo nome vazavam (o `.ml` virava rótulo de 10px em maiúsculas). Os <svg> ficam
   de fora do revert (perderiam o traço).
   =================================================================================== */
#geRoot :where(*:not(svg,svg *)){all:revert}
#geRoot{position:fixed;inset:0;z-index:2000;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  --c2:#f8fafc;--l2:#cbd3df;--az:#0a3d8f;
  --vd:#15803d;--vds:#dcfce7;--am:#b45309;--ams:#fef3c7;--vm:#b91c1c;--vms:#fef2f2;
  --vdT:#15803d;--amT:#b45309;--vmT:#b91c1c;
  --k-ev:#15803d;--k-ck:#1e5fc1;--k-mon:#b45309;--k-org:#6d28d9;--k-reu:#0369a1;--k-fx:#64748b;--k-atr:#b91c1c;--k-pas:#be185d;
  --sh:0 1px 2px rgba(16,24,40,.05);--sh2:0 12px 32px rgba(16,24,40,.18);
  --r-s:10px;--r-m:12px;--r-l:18px;--dur:160ms;
  --t:var(--lb-txt);--m:var(--lb-muted);--l:var(--lb-stroke);--c:var(--lb-panel-bg);
  --az2:#0a6a96;--azs:rgba(14,165,233,.12);--ring:rgba(14,165,233,.45);--cy1:#38bdf8;--cy2:#0ea5e9;--ink:#04121f;
  --bar-bg:rgba(255,255,255,.86);--in-bd:#cfd7e4;--in-bg:#fff;--solid:#fff;
  color-scheme:light}
[data-theme="dark"] #geRoot{
  --c2:#172033;--l2:rgba(255,255,255,.18);--az:#2563eb;
  --vds:#052e16;--ams:#451a03;--vms:rgba(248,113,113,.10);
  --vdT:#4ade80;--amT:#fbbf24;--vmT:#fca5a5;
  --k-ev:#4ade80;--k-ck:#60a5fa;--k-mon:#fbbf24;--k-org:#a78bfa;--k-reu:#38bdf8;--k-fx:#94a3b8;--k-atr:#f87171;--k-pas:#f472b6;
  --sh:none;--sh2:0 12px 32px rgba(0,0,0,.5);
  --az2:var(--lb-cy);--bar-bg:rgba(8,14,30,.72);--in-bd:rgba(255,255,255,.30);--in-bg:rgba(255,255,255,.04);--solid:rgba(14,22,40,.96);
  color-scheme:dark}
html.ge-on,html.ge-on body{overflow:hidden}
#geRoot *{box-sizing:border-box}
#geRoot{margin:0}
#geRoot{background:var(--lb-ground);color:var(--t);font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow-x:clip;padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}
#geRoot button, #geRoot select, #geRoot input, #geRoot textarea{font-family:inherit;color:inherit}
#geRoot button, #geRoot summary, #geRoot label.sub, #geRoot .cal button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#geRoot :focus-visible{outline:3px solid var(--ring);outline-offset:2px}
#geRoot svg.i{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#geRoot h2{margin:4px 0 12px;font-size:20px;line-height:1.3;font-weight:700;letter-spacing:-.01em}
#geRoot h3{margin:24px 0 8px;font-size:13px;line-height:1.3;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--m);text-transform:uppercase;letter-spacing:.04em}
/* cabeçalho de fase que abre e fecha (checklist, 19/10/2026): botão de 44px, seta vira quando fechada */
#geRoot h3.fh{margin:16px 0 0;display:block}
#geRoot .fase{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;margin:0;padding:0 4px 0 0;background:none;border:0;border-radius:var(--r-m);color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;text-align:left;cursor:pointer}
#geRoot .fase span:first-of-type{flex:1;min-width:0}
#geRoot .fase svg.i{width:18px;height:18px}
#geRoot .fase.fech svg.i{transform:rotate(-90deg)}
#geRoot .fase.fech{margin-bottom:8px}
/* ações do balão da tarefa (adicionar · editar · excluir) e cartão de atividade excluída (19/10/2026) */
/* balão da tarefa: cabeçalho com lixeira, confirmação em texto, links antes do Salvar (19/10/2026) */
#geRoot .mo-hd{display:flex;align-items:flex-start;gap:12px}
#geRoot .mo-hd .g1{min-width:0}
#geRoot .mo-hd .del{margin-top:-4px}
#geRoot .mo .del.arm{color:#fff;background:var(--vm);border-color:var(--vm)}
#geRoot .del-conf{margin:8px 0 0;font-size:13px;line-height:1.35;font-weight:600;color:var(--vm)}
#geRoot .lnks{display:flex;flex-wrap:wrap;gap:0 20px;align-items:center;min-height:44px;margin-top:4px}
#geRoot .lnk{background:none;border:0;padding:0;min-height:44px;color:var(--az2);font-size:14px;font-weight:600;cursor:pointer}
/* ação com ícone na tarefa (WhatsApp da gráfica): ícone 44px + linha de estado; desligado = cinza com o motivo ao lado */
/* Ação da tarefa (19/10): pílulas iguais para apostila, crachás e WhatsApp; ≥44px de toque, ícone 18px, rótulo 14px */
#geRoot .acao{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:10px}
#geRoot .acb{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px 8px 12px;text-align:left;border:1px solid var(--l2);border-radius:999px;background:var(--c);color:var(--az2);font-size:14px;line-height:1.2;font-weight:700;cursor:pointer;max-width:100%}
#geRoot .acb svg.i{width:18px;height:18px;flex:none}
#geRoot .acb span{min-width:0}
#geRoot .acb.wa{color:var(--vd);border-color:color-mix(in srgb,var(--vd) 45%,transparent);background:color-mix(in srgb,var(--vd) 9%,transparent)}
#geRoot .acb.off, #geRoot .acb:disabled{color:var(--m);border-style:dashed;border-color:var(--l2);background:transparent;cursor:default}
#geRoot .ac-h{font-size:12px;line-height:1.35;color:var(--m)}
#geRoot .card.tk.del{border-style:dashed;box-shadow:none}
#geRoot small, #geRoot .m{color:var(--m);font-size:13px;line-height:1.45}
#geRoot p{margin:0}
#geRoot .dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block;background:var(--k-fx)}
#geRoot .dot.k-ev{background:var(--k-ev)}
#geRoot .dot.k-ck{background:var(--k-ck)}
#geRoot .dot.k-mon{background:var(--k-mon)}
#geRoot .dot.k-org{background:var(--k-org)}
#geRoot .dot.k-reu{background:var(--k-reu)}
#geRoot .dot.k-fx{background:var(--k-fx)}
#geRoot .dot.k-atr{background:var(--k-atr)}
#geRoot .dot.k-pas{background:var(--k-pas)}
#geRoot .num{font-variant-numeric:tabular-nums}
#geRoot .mt8{margin-top:8px}
#geRoot .mt12{margin-top:12px}
#geRoot .mb8{margin-bottom:8px}
#geRoot .btn, #geRoot .ck, #geRoot .mais, #geRoot .chip, #geRoot .evsel, #geRoot .ml, #geRoot .pills button, #geRoot .cal button, #geRoot nav button, #geRoot .hd-bk, #geRoot .hd-ic{transition:background-color var(--dur) ease-out,border-color var(--dur) ease-out,color var(--dur) ease-out,transform 90ms ease-out}
#geRoot .btn:active, #geRoot .ck:active, #geRoot .mais:active, #geRoot .chip:active, #geRoot .pills button:active, #geRoot .cal button:active, #geRoot nav button:active, #geRoot .evsel:active, #geRoot .ml:active{transform:scale(.97)}
@media(prefers-reduced-motion:reduce){
#geRoot *{transition:none!important}
#geRoot .btn:active, #geRoot .ck:active, #geRoot .mais:active, #geRoot .chip:active, #geRoot .pills button:active, #geRoot .cal button:active, #geRoot nav button:active, #geRoot .evsel:active, #geRoot .ml:active{transform:none}
}
#geRoot .hd{position:sticky;top:0;z-index:10;background:var(--c);border-bottom:1px solid var(--l);padding:env(safe-area-inset-top,0px) 8px 0}
#geRoot .hd-in{max-width:760px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;min-height:52px}
#geRoot .hd-bk{justify-self:start;display:flex;align-items:center;gap:2px;border:0;background:none;color:var(--az2);font-size:15px;font-weight:600;min-height:44px;padding:0 10px 0 4px;border-radius:var(--r-s)}
#geRoot .hd-t{font-weight:700;font-size:16px;white-space:nowrap}
#geRoot .hd-ic{justify-self:end;width:44px;height:44px;border:0;background:none;border-radius:var(--r-s);display:grid;place-items:center;color:var(--m)}
#geRoot #geApp{max-width:760px;margin:auto;padding:12px 16px 24px}
#geRoot .card{background:var(--c);border:1px solid var(--l);border-radius:var(--r-l);padding:16px;margin-bottom:12px;box-shadow:var(--sh)}
#geRoot .card.lst{padding:4px 16px}
#geRoot .btn{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--az);color:#fff;border:0;border-radius:var(--r-m);padding:12px 16px;font-size:16px;font-weight:700;width:100%;min-height:52px;margin-top:12px;line-height:1.2}
#geRoot .btn.g{background:var(--vd)}
#geRoot .btn.o{background:transparent;color:var(--az2);box-shadow:inset 0 0 0 2px currentColor}
#geRoot .btn.s{width:auto;min-height:44px;font-size:15px;padding:8px 16px;margin-top:0}
#geRoot .btn svg{width:20px;height:20px;stroke-width:2.6}
#geRoot .fg{margin-bottom:12px}
#geRoot .fg label{display:block;font-size:13px;font-weight:600;color:var(--m);margin-bottom:6px}
#geRoot input, #geRoot select, #geRoot textarea{width:100%;font-size:16px;line-height:1.4;padding:11px 12px;min-height:48px;border:1px solid var(--l2);border-radius:var(--r-s);background:var(--c);transition:border-color var(--dur),box-shadow var(--dur)}
#geRoot input:focus, #geRoot select:focus, #geRoot textarea:focus{outline:0;border-color:var(--az2);box-shadow:0 0 0 3px var(--ring)}
#geRoot textarea{min-height:76px;resize:vertical}
#geRoot .sg-t{min-height:240px;font-size:15px;line-height:1.45;white-space:pre-wrap}
#geRoot .sg-bt{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px}#geRoot .sg-bt .btn{margin-top:8px}
@media(min-width:768px){#geRoot .sg-t{min-height:320px}}
#geRoot .two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px}
#geRoot .bar{height:10px;background:var(--l);border-radius:999px;overflow:hidden;margin:8px 0}
#geRoot .bar i{display:block;height:100%;background:var(--vd);border-radius:999px}
#geRoot .prog{display:flex;justify-content:space-between;gap:8px;font-size:14px;color:var(--m)}
#geRoot .prog b{color:var(--t)}
#geRoot .big{font-size:36px;font-weight:800;line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
#geRoot .ey{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--m)}
#geRoot .meta{font-size:14px;line-height:1.5;margin:4px 0 8px}
#geRoot .ban{display:flex;gap:12px;align-items:flex-start;background:var(--vm);color:#fff;border-radius:var(--r-l);padding:14px 16px;font-weight:700;line-height:1.4;margin-bottom:12px}
#geRoot .ban>svg{margin-top:1px}
#geRoot .ban>div{flex:1;min-width:0}
#geRoot .ban.y{background:var(--am)}
#geRoot .ban.g{background:var(--vd)}
#geRoot .ban .btn{background:#fff;color:#111827;margin-top:12px;width:auto;min-height:44px;font-size:15px;padding:8px 16px}
#geRoot .ban.inf{background:var(--azs);color:var(--t);font-weight:500;border:1px solid var(--l)}
#geRoot .ban.inf>svg{color:var(--az2)}
#geRoot .ban.inf .btn{background:var(--az);color:#fff}
#geRoot .tag{display:inline-block;font-size:12px;font-weight:700;line-height:18px;padding:0 8px;border-radius:6px;color:#fff;background:#475569;margin-right:6px;vertical-align:1px;letter-spacing:.02em}
#geRoot .tag.r{background:var(--vm)}
#geRoot .tag.y{background:var(--am)}
#geRoot .tag.g{background:var(--vd)}
#geRoot .tag.b{background:var(--az)}
#geRoot .tk{border-left:5px solid var(--l2);padding:12px 12px 12px 14px}
#geRoot .tk.p1{border-left-color:var(--am)}
#geRoot .tk.p2, #geRoot .tk.p3{border-left-color:var(--vm)}
#geRoot .tk.late{background:var(--vms)}
#geRoot .rw{display:flex;gap:12px;align-items:center}
#geRoot .g1{flex:1;min-width:0}
#geRoot .tx b{font-size:15px;line-height:1.35;font-weight:600;display:block}
#geRoot .tx small{display:block;margin-top:2px}
#geRoot .ok .tx b, #geRoot .it.ok .tt{text-decoration:line-through;text-decoration-thickness:1.5px;color:var(--m)}
#geRoot .ck{width:44px;height:44px;border-radius:var(--r-m);border:2px solid var(--l2);background:var(--c);color:#fff;flex:none;display:grid;place-items:center;padding:0}
#geRoot .ck.late{border-color:var(--vm)}
#geRoot .ok .ck, #geRoot .ck.on{background:var(--vd);border-color:var(--vd)}
#geRoot .ck svg{width:26px;height:26px;stroke-width:3.2}
#geRoot .mais{width:44px;height:44px;border:1px solid var(--l);border-radius:var(--r-m);background:var(--c);flex:none;display:grid;place-items:center;color:var(--m)}
#geRoot .sub{display:flex;gap:12px;align-items:center;min-height:44px;padding-left:56px;font-size:15px;line-height:1.35}
#geRoot .sub.flat{padding-left:0}
#geRoot .sub input{width:22px;height:22px;min-height:0;margin:0;flex:none;accent-color:var(--vd)}
#geRoot .obs{display:flex;gap:6px;align-items:flex-start;margin-top:4px}
#geRoot .obs svg{width:16px;height:16px;margin-top:2px}
#geRoot .obs.prob{color:var(--vmT)}
#geRoot .cur{font-size:12px;color:var(--az2);font-weight:700;text-transform:uppercase;letter-spacing:.04em;line-height:1.4}
#geRoot .chips{display:flex;gap:8px;overflow-x:auto;padding:0 16px 12px;margin:0 -16px;scrollbar-width:none}
#geRoot .chips::-webkit-scrollbar{display:none}
#geRoot .chip{flex:none;border:1px solid var(--l2);background:var(--c);border-radius:999px;padding:0 16px;min-height:44px;font-size:14px;font-weight:600;color:var(--t)}
#geRoot .chip.on{background:var(--az);border-color:var(--az);color:#fff}
#geRoot .evsel{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--l);background:var(--c);border-radius:var(--r-m);padding:8px 12px;min-height:52px;margin-bottom:12px;text-align:left;box-shadow:var(--sh)}
#geRoot .evsel>svg:first-child{color:var(--az2)}
#geRoot .evsel span{flex:1;min-width:0;font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#geRoot .evsel small{white-space:nowrap}
#geRoot .busca{position:relative;margin-bottom:12px}
#geRoot .busca svg{position:absolute;left:12px;top:13px;color:var(--m);pointer-events:none}
#geRoot .busca input{padding-left:42px}
#geRoot .it{display:flex;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--l);font-size:15px;line-height:1.35}
#geRoot .it:first-child{border-top:0}
#geRoot .it .bul{width:44px;height:44px;flex:none;display:grid;place-items:center}
#geRoot .it .bul .dot{width:12px;height:12px}
#geRoot .it .tt{font-weight:500}
#geRoot .it.late .ck{border-color:var(--vm)}
#geRoot details.card>summary{list-style:none;min-height:48px;display:flex;align-items:center;gap:8px;font-weight:700;color:var(--vmT)}
#geRoot details.card>summary::-webkit-details-marker{display:none}
#geRoot details.card>summary::after{content:'';margin-left:auto;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px)}
#geRoot details.card[open]>summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
#geRoot .vazio{display:flex;align-items:center;gap:10px;color:var(--m);font-size:15px}
#geRoot .vazio svg{color:var(--l2)}
#geRoot .cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
#geRoot .cal .w{font-size:12px;color:var(--m);text-align:center;font-weight:700;padding:4px 0}
#geRoot .cal button{min-height:52px;border:1px solid var(--l);border-radius:var(--r-s);background:var(--c);padding:6px 2px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;font-size:14px;font-weight:600;color:var(--t);font-variant-numeric:tabular-nums}
#geRoot .cal button.fora{background:var(--c2);color:var(--m);font-weight:500}
#geRoot .cal button.hj{box-shadow:inset 0 0 0 2px var(--az2)}
#geRoot .cal button.sel{background:var(--az);border-color:var(--az);color:#fff;box-shadow:none}
#geRoot .cal .dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center;min-height:6px}
#geRoot .cal .dots .dot{width:6px;height:6px}
#geRoot .cal button.sel .dots .dot{box-shadow:0 0 0 1.5px #fff}
#geRoot .calh{display:flex;align-items:center;gap:8px;margin-bottom:8px}
#geRoot .calh b{flex:1;text-align:center;font-size:17px}
#geRoot .leg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--m);margin-top:12px}
#geRoot .leg span{display:flex;align-items:center;gap:6px}
#geRoot .leg .dot{width:8px;height:8px}
#geRoot .ml{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;border:0;border-top:1px solid var(--l);background:none;padding:8px 0;text-align:left;font-size:16px;font-weight:600;color:var(--t)}
#geRoot .ml:first-child{border-top:0}
#geRoot .ml span{flex:1;min-width:0}
#geRoot .ml small{display:block;font-weight:400}
#geRoot .ml>svg:first-child{color:var(--az2)}
#geRoot .ml>svg:last-child{color:var(--m)}
#geRoot nav{position:fixed;bottom:0;left:0;right:0;background:var(--c);border-top:1px solid var(--l);z-index:20;padding-bottom:env(safe-area-inset-bottom,0px)}
#geRoot nav .in{max-width:760px;margin:auto;display:flex}
#geRoot nav button{flex:1;border:0;background:none;min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;font-weight:500;line-height:1.2;color:var(--m)}
#geRoot nav .pi{display:grid;place-items:center;width:56px;height:30px;border-radius:999px}
#geRoot nav .on{color:var(--az2);font-weight:700}
#geRoot nav .on .pi{background:var(--azs)}
#geRoot .mo{position:fixed;inset:0;background:rgba(2,6,23,.6);display:flex;align-items:flex-end;justify-content:center;z-index:40}
#geRoot .mo>div{background:var(--c);width:100%;max-width:760px;border-radius:20px 20px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px));max-height:92dvh;overflow:auto;box-shadow:var(--sh2)}
#geRoot .mo>div::before{content:'';display:block;width:40px;height:4px;border-radius:2px;background:var(--l2);margin:0 auto 12px}
#geRoot .mo h2{margin-bottom:2px}
#geRoot .mo .acoes{display:grid;gap:0}
#geRoot .pills{display:flex;gap:8px}
#geRoot .pills button{flex:1;min-height:44px;border:1px solid var(--l2);background:var(--c);border-radius:var(--r-s);font-size:15px;font-weight:600}
#geRoot .pills .on{background:var(--az);border-color:var(--az);color:#fff}
#geRoot #toast{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:16px;right:16px;max-width:560px;margin:auto;background:var(--vm);color:#fff;padding:14px 16px;border-radius:var(--r-m);font-weight:600;line-height:1.4;z-index:50;display:none;box-shadow:var(--sh2)}
#geRoot #toast.ok{background:var(--vd)}
#geRoot [hidden]{display:none!important}
#geRoot .gd{display:flex;flex-direction:column}
#geRoot .gd>.col{display:contents}
#geRoot .o1{order:1}
#geRoot .o2{order:2}
#geRoot .o3{order:3}
#geRoot .o4{order:4}
#geRoot .o5{order:5}
#geRoot nav .dk, #geRoot .sbr{display:none}
#geRoot .voltaMais{margin:-4px 0 8px -10px}
@media(max-width:430px){
#geRoot .card.calc{padding:12px 6px}
#geRoot .cal{gap:2px}
#geRoot .calh{padding:0 6px}
#geRoot .leg{padding:0 6px}
}
@media(min-width:768px){
#geRoot #geApp{padding:20px 24px 32px}
#geRoot .chips{margin:0 -24px;padding:0 24px 12px}
}
@media(min-width:1024px){
#geRoot{padding-bottom:0}
#geRoot .shell{display:grid;grid-template-columns:256px minmax(0,1fr);align-items:start}
#geRoot .hd, #geRoot .voltaMais{display:none!important}
#geRoot nav{position:sticky;top:0;height:100dvh;border-top:0;border-right:1px solid var(--l);padding:16px 12px;overflow:auto}
#geRoot nav .in{flex-direction:column;max-width:none;gap:2px}
#geRoot nav button{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;min-height:44px;padding:0 12px;font-size:15px;border-radius:var(--r-s);color:var(--t)}
#geRoot nav .pi{width:auto;height:auto;background:none!important}
#geRoot nav .on{background:var(--azs);color:var(--az2)}
#geRoot nav .mb{display:none}
#geRoot nav .dk{display:flex}
#geRoot nav .sep{height:1px;background:var(--l);margin:12px 4px}
#geRoot .sbr{display:block;padding:0 0 12px}
#geRoot .sbr b{display:block;font-size:18px;padding:8px 12px 0;letter-spacing:-.01em}
#geRoot #geApp{max-width:1280px;margin:0;padding:24px 32px 48px}
#geRoot h2{font-size:22px}
#geRoot .gd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 24px;align-items:start}
#geRoot .gd>.col{display:block}
#geRoot .gd.ag{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
#geRoot .gd.ag>.col:last-child{position:sticky;top:24px;max-height:calc(100dvh - 48px);overflow:auto;padding-right:4px}
#geRoot #geLst{columns:2;column-gap:24px}
#geRoot #geLst .card{break-inside:avoid}
#geRoot #geLst h3{break-after:avoid;margin-top:0;padding-top:16px}
#geRoot .evg{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;align-items:start}
#geRoot .evg .card{margin:0}
#geRoot .evsel{max-width:560px}
#geRoot .busca{max-width:560px}
#geRoot .chips{margin:0;padding:0 0 16px;flex-wrap:wrap}
#geRoot .mo{align-items:center;padding:24px}
#geRoot .mo>div{max-width:560px;border-radius:20px;max-height:86dvh;padding:24px}
#geRoot .mo>div::before{display:none}
#geRoot .big{font-size:44px}
#geRoot .col>.h3c:first-child{margin-top:4px}
#geRoot .cal button{min-height:76px;font-size:15px}
#geRoot .cal .dots .dot{width:7px;height:7px}
@media(hover:hover){
#geRoot nav button:hover{background:var(--bg)}
#geRoot nav .on:hover{background:var(--azs)}
#geRoot .btn:hover{filter:brightness(1.08)}
#geRoot .btn.o:hover{background:var(--azs);filter:none}
#geRoot .chip:hover:not(.on), #geRoot .mais:hover, #geRoot .acb:hover:not(:disabled), #geRoot .pills button:hover:not(.on), #geRoot .cal button:hover:not(.sel){border-color:var(--az2)}
#geRoot .ck:hover{border-color:var(--vd)}
#geRoot .evsel:hover{border-color:var(--az2)}
#geRoot .ml:hover{color:var(--az2)}
}
}
#geRoot .card, #geRoot .evsel, #geRoot details.card{background:var(--lb-panel-bg);border:1px solid var(--lb-panel-bd);box-shadow:var(--lb-panel-shadow);
  backdrop-filter:var(--lb-blur);-webkit-backdrop-filter:var(--lb-blur)}
#geRoot .card.tk{backdrop-filter:none;-webkit-backdrop-filter:none}
#geRoot .card.tk.p0{border-left-color:var(--lb-panel-bd)}
#geRoot .tk.late{background:var(--vms)}
#geRoot .hd, #geRoot nav{background:var(--bar-bg);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-color:var(--lb-panel-bd)}
#geRoot input, #geRoot select, #geRoot textarea{background:var(--in-bg);border-color:var(--in-bd)}
#geRoot input:focus, #geRoot select:focus, #geRoot textarea:focus{border-color:var(--lb-cy)}
#geRoot .btn, #geRoot .chip.on, #geRoot .pills .on, #geRoot .cal button.sel, #geRoot .ml-on{background:linear-gradient(135deg,var(--cy1),var(--cy2));color:var(--ink);border-color:transparent;
  box-shadow:0 4px 14px -4px rgba(14,165,233,.5),inset 0 1px 0 rgba(255,255,255,.35)}
#geRoot .btn.g{background:linear-gradient(180deg,#15803d,#166534);color:#fff;box-shadow:0 6px 18px -6px rgba(21,128,61,.6),inset 0 1px 0 rgba(255,255,255,.22)}
#geRoot .btn.o{background:transparent;color:var(--az2);box-shadow:inset 0 0 0 1.5px currentColor}
#geRoot .chip{background:var(--lb-panel-bg);border-color:var(--lb-panel-bd);color:var(--lb-muted);backdrop-filter:var(--lb-blur);-webkit-backdrop-filter:var(--lb-blur)}
#geRoot .chip.on{font-weight:800}
#geRoot .pills button{background:var(--in-bg);border-color:var(--in-bd)}
#geRoot .ban{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 8px 24px -10px rgba(220,38,38,.6),inset 0 1px 0 rgba(255,255,255,.22)}
#geRoot .ban.y{background:linear-gradient(135deg,#b45309,#92400e);box-shadow:0 8px 24px -10px rgba(180,83,9,.6),inset 0 1px 0 rgba(255,255,255,.2)}
#geRoot .ban.g{background:linear-gradient(135deg,#15803d,#166534);box-shadow:0 8px 24px -10px rgba(21,128,61,.6),inset 0 1px 0 rgba(255,255,255,.2)}
#geRoot .ban.inf{background:rgba(14,165,233,.08);border:1px solid rgba(14,165,233,.28);border-left:3px solid var(--lb-cy);box-shadow:none;color:var(--lb-txt);
  backdrop-filter:var(--lb-blur);-webkit-backdrop-filter:var(--lb-blur)}
#geRoot .ban.inf>svg{color:var(--az2)}
#geRoot .ban.inf .btn{color:var(--ink)}
#geRoot .big, #geRoot #geApp>h2, #geRoot .col>h2{background:linear-gradient(180deg,var(--lb-num-a),var(--lb-num-b));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--lb-txt)}
#geRoot #geApp>h2, #geRoot .col>h2{font-weight:800;letter-spacing:-.02em}
#geRoot .big{font-weight:900}
#geRoot .bar{background:var(--lb-stroke)}
#geRoot .bar i{background:linear-gradient(90deg,#34d399,#16a34a)}
#geRoot .ey{color:var(--lb-muted)}
#geRoot .ck{background:transparent;border-color:var(--in-bd)}
#geRoot .ok .ck, #geRoot .ck.on{background:linear-gradient(180deg,#16a34a,#15803d);border-color:#15803d;box-shadow:0 4px 12px -4px rgba(22,163,74,.6),inset 0 1px 0 rgba(255,255,255,.3)}
@keyframes geckPop{0%{transform:scale(.82)}55%{transform:scale(1.12)}100%{transform:scale(1)}}
#geRoot .ck.pop{animation:geckPop .28s cubic-bezier(.2,.75,.2,1)}
#geRoot .cal button{background:transparent;border:1px solid transparent;color:var(--lb-txt);font-weight:700}
#geRoot .cal button.fora{background:transparent;color:var(--lb-faint);font-weight:500}
#geRoot .cal button.hj{box-shadow:none;border-color:var(--lb-cy)}
#geRoot .cal button.sel{border-color:transparent}
#geRoot .cal button.sel .dots .dot{box-shadow:0 0 0 1.5px rgba(255,255,255,.9)}
#geRoot .calh button.mais{border-color:var(--lb-stroke);background:transparent;color:var(--lb-txt)}
#geRoot nav .on{color:var(--az2)}
#geRoot nav .on .pi{background:linear-gradient(135deg,var(--cy1),var(--cy2));color:var(--ink);box-shadow:0 3px 10px -3px rgba(14,165,233,.55),inset 0 1px 0 rgba(255,255,255,.35)}
#geRoot .mais{background:transparent;border-color:var(--lb-panel-bd);color:var(--lb-muted)}
#geRoot .acb{background:transparent;border-color:var(--lb-panel-bd)}
#geRoot .acb.wa{border-color:color-mix(in srgb,var(--vd) 45%,transparent);background:color-mix(in srgb,var(--vd) 9%,transparent)}
#geRoot .acb.off, #geRoot .acb:disabled{color:var(--lb-muted);border-color:var(--lb-panel-bd);background:transparent}
#geRoot .mo{background:rgba(2,6,23,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
#geRoot .mo>div{background:var(--solid);border:1px solid var(--lb-panel-bd);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
@keyframes gelbFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
#geRoot #geApp.entra .card, #geRoot #geApp.entra .ban, #geRoot #geApp.entra .evsel{animation:gelbFadeUp .42s cubic-bezier(.2,.75,.2,1) both}
@media(prefers-reduced-motion:reduce){
#geRoot #geApp.entra .card, #geRoot #geApp.entra .ban, #geRoot #geApp.entra .evsel, #geRoot .ck.pop{animation:none}
}
@media(min-width:1024px){
#geRoot nav{background:var(--bar-bg)}
#geRoot nav .on{background:linear-gradient(135deg,var(--cy1),var(--cy2));color:var(--ink);box-shadow:0 2px 10px -2px rgba(14,165,233,.45),inset 0 1px 0 rgba(255,255,255,.35)}
#geRoot nav .on .pi{background:none;box-shadow:none}
@media(hover:hover){
#geRoot nav button:hover:not(.on){background:var(--lb-tile)}
#geRoot .cal button:hover:not(.sel){background:var(--lb-tile);border-color:transparent}
#geRoot .evg .card{transition:transform .22s cubic-bezier(.2,.75,.2,1),border-color .22s,box-shadow .22s}
#geRoot .evg .card:hover{transform:translateY(-4px) scale(1.015);border-color:var(--lb-cy);box-shadow:0 16px 40px -12px rgba(14,165,233,.35)}
#geRoot .card.tk:hover{border-color:var(--lb-cy)}
#geRoot .btn:hover{filter:brightness(1.06)}
}
@media(prefers-reduced-motion:reduce){
#geRoot .evg .card:hover{transform:none}
}
}
#geRoot .btn.loading{opacity:.7;pointer-events:none;cursor:progress}
#geRoot .ban.inf .btn{background:linear-gradient(135deg,var(--cy1),var(--cy2));color:var(--ink);width:auto;padding:8px 16px;min-height:44px;font-size:15px}

/* ===================================================================================
   Tela do professor (07/10/2026) — gestor.js, bloco "Tela do professor".
   1) O CONTROLE mora no Gestor (#geRoot, geV='palco'): só peças novas aqui.
   2) A TELA DO PROJETOR é outra camada (#gpRoot), no formato do Modo TV: moldura fixa
      de 1920×1080 escalada pelo gpEscala (régua do tvEscala), tema escuro sempre (sala
      com projetor), nada abaixo de 22px a 1080p. Celular (≤880) empilha.
   =================================================================================== */
#geRoot .btn:disabled{background:transparent;color:var(--m);box-shadow:inset 0 0 0 1.5px var(--l2);cursor:not-allowed;filter:none}
#geRoot .gpv-hd{display:flex;gap:6px;flex-wrap:wrap}
#geRoot .gpv-n{font-size:18px;font-weight:700;line-height:1.3;margin-top:8px}
#geRoot .gpv .big{font-size:56px}
#geRoot .gpg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px}
#geRoot .gpp{align-items:flex-start;margin-top:12px;padding:8px 0}
#geRoot .gpp input{margin-top:1px}
#geRoot .gpp small{display:block;margin-top:2px}
#geRoot .gpq{display:flex;flex-wrap:wrap;gap:8px}
#geRoot .btn.gpEnv{width:100%;min-height:48px}
#geRoot .btn.gpRs{width:100%;margin-top:4px;color:var(--vmT)}
#geRoot .gp-ag .tt{font-weight:800}
#geRoot .gpret{min-height:48px;display:flex;align-items:center;font-size:16px;font-weight:700;line-height:1.2}
#geRoot details.gpx{border:1px solid var(--l);border-radius:var(--r-m);padding:0 12px;margin:0 0 4px}
#geRoot details.gpx>summary{list-style:none;min-height:52px;display:flex;flex-direction:column;justify-content:center;padding:8px 24px 8px 0;position:relative;line-height:1.3}
#geRoot details.gpx>summary::-webkit-details-marker{display:none}
#geRoot details.gpx>summary::after{content:'';position:absolute;right:4px;top:50%;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg)}
#geRoot details.gpx[open]>summary::after{transform:translateY(-30%) rotate(-135deg)}
#geRoot details.gpx>summary b{font-size:15px}
#geRoot details.gpx[open]{padding-bottom:4px}
@media(min-width:1024px){#geRoot .gpg{grid-template-columns:repeat(4,minmax(0,1fr))}}

#gpRoot :where(*:not(svg,svg *)){all:revert}
#gpRoot{position:fixed;inset:0;z-index:9500;background:#03060c;color:#eef3fb;font-family:'Plus Jakarta Sans','Inter',sans-serif;line-height:1.2;overflow:hidden;cursor:default;
  --bg:#070b14;--sf:#0e1524;--ln:rgba(255,255,255,.08);--ln2:rgba(255,255,255,.16);
  --tx:#eef3fb;--sb:#a4b3cc;--ft:#8190a9;--ac:#38bdf8;--ok:#4ade80;--at:#fbbf24;--er:#f87171;--vi:#a78bfa;--ink:#04121f;color-scheme:dark}
html.gp-on,html.gp-on body{overflow:hidden}
#gpRoot *{box-sizing:border-box}
#gpRoot h1, #gpRoot h2, #gpRoot ol{margin:0;padding:0}
#gpRoot .gp-cv{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform-origin:center;transform:translate(-50%,-50%);
  background:var(--bg);background-image:radial-gradient(1100px 600px at 85% -10%,rgba(56,189,248,.08),transparent 60%),radial-gradient(900px 500px at 0% 0%,rgba(99,102,241,.06),transparent 55%);
  padding:34px 48px;display:flex;flex-direction:column;gap:24px;font-variant-numeric:tabular-nums}
#gpRoot .gp-bts{position:absolute;right:16px;bottom:16px;display:flex;gap:8px}
#gpRoot .gp-x{width:48px;height:48px;border-radius:12px;border:1px solid var(--ln);background:transparent;color:var(--ft);display:grid;place-items:center;cursor:pointer;padding:0}
#gpRoot .gp-x:hover, #gpRoot .gp-x:focus-visible{color:var(--tx);border-color:var(--ln2)}
#gpRoot .gp-x svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
/* topo */
#gpRoot .gp-top{display:flex;align-items:center;gap:28px;flex:0 0 auto;min-height:74px}
#gpRoot .gp-marca{display:flex;align-items:center;gap:12px;font-size:34px;font-weight:800;letter-spacing:.07em;white-space:nowrap}
#gpRoot .gp-marca i{font-style:normal;color:var(--ac)}
#gpRoot .gp-marca svg{width:40px;height:40px}
#gpRoot .gp-tit{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
#gpRoot .gp-kick{font-size:22px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ac);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gpRoot .gp-tit h1{font-size:44px;font-weight:800;letter-spacing:-.01em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gpRoot .gp-top-r{display:flex;align-items:center;gap:28px;white-space:nowrap}
#gpRoot .gp-vivo{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:700;color:var(--ft)}
#gpRoot .gp-vivo i{width:14px;height:14px;border-radius:50%;background:var(--ft)}
#gpRoot .gp-vivo.on{color:var(--ok)}#gpRoot .gp-vivo.on i{background:var(--ok)}
#gpRoot .gp-clock{font-size:64px;font-weight:800;line-height:1}
#gpRoot .gp-clock small{font-size:34px;color:var(--sb);font-weight:700}
/* aviso da equipe */
#gpRoot .gp-av{flex:0 0 auto;display:flex;align-items:center;gap:32px;background:var(--at);color:#1a1204;border-radius:24px;padding:22px 36px}
#gpRoot .gp-av span{font-size:24px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;padding-right:32px;border-right:3px solid rgba(26,18,4,.35)}
#gpRoot .gp-av b{font-size:64px;font-weight:800;line-height:1.1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* corpo */
#gpRoot .gp-corpo{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:24px}
#gpRoot .gp-at{--acc:var(--ft);min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 12%,var(--sf)),var(--sf) 55%);border:1px solid var(--ln);border-top:8px solid var(--acc);border-radius:28px;padding:36px 48px}
#gpRoot .t-pal{--acc:var(--ac)}#gpRoot .t-cb{--acc:var(--at)}#gpRoot .t-alm{--acc:var(--ok)}#gpRoot .t-ci{--acc:var(--vi)}
#gpRoot .gp-chip{display:inline-block;background:var(--acc);color:var(--ink);border-radius:999px;padding:10px 30px;font-size:26px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
#gpRoot .pz .gp-chip{background:var(--at)}
#gpRoot .gp-at h2{font-size:60px;font-weight:800;line-height:1.1;margin-top:22px;letter-spacing:-.01em}
#gpRoot .gp-big{font-size:260px;font-weight:800;line-height:1;margin-top:18px;color:var(--acc);letter-spacing:-.03em}
#gpRoot .gp-big.h{font-size:210px}
#gpRoot .pz .gp-big{color:var(--sb)}
#gpRoot .a5 .gp-big{color:var(--at)}
#gpRoot .a1 .gp-big{color:var(--er)}
#gpRoot .gp-lbl{font-size:26px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sb);margin-top:6px}
#gpRoot .gp-bar{width:100%;height:16px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:30px}
#gpRoot .gp-bar i{display:block;height:100%;background:var(--acc);border-radius:999px;transition:width .3s linear}
#gpRoot .gp-alerta{margin-top:24px;border-radius:999px;padding:12px 36px;font-size:34px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:rgba(251,191,36,.14);color:var(--at)}
#gpRoot .a5 .gp-alerta{background:var(--at);color:#1a1204}
#gpRoot .a1 .gp-alerta{background:var(--er);color:#1f0505}
#gpRoot .gp-meta{display:flex;justify-content:center;gap:72px;margin-top:30px;font-size:22px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ft)}
#gpRoot .gp-meta b{display:block;font-size:40px;color:var(--tx);letter-spacing:0;margin-top:4px}
/* lado: próximo momento e programação */
#gpRoot .gp-lado{min-height:0;display:flex;flex-direction:column;gap:24px}
#gpRoot .gp-ey{font-size:22px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sb)}
#gpRoot .gp-prox{background:var(--sf);border:1px solid var(--ln);border-left:8px solid var(--ac);border-radius:24px;padding:26px 32px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 24px;align-items:end}
#gpRoot .gp-prox .gp-ey{grid-column:1/-1}
#gpRoot .gp-prox b{font-size:44px;font-weight:800;line-height:1.1;grid-column:1}
#gpRoot .gp-prox>span{font-size:30px;font-weight:700;color:var(--sb);grid-column:1}
#gpRoot .gp-cd{grid-column:2;grid-row:2/4;text-align:right;font-size:72px;font-weight:800;color:var(--ac);line-height:1}
#gpRoot .gp-cd small{display:block;font-size:22px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sb);margin-bottom:8px}
#gpRoot .gp-prog{flex:1;min-height:0;overflow:hidden;background:var(--sf);border:1px solid var(--ln);border-radius:24px;padding:24px 24px 16px}
#gpRoot .gp-prog ol{list-style:none;margin-top:12px;display:grid;gap:4px}
#gpRoot .gp-prog li{display:grid;grid-template-columns:186px minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 14px;border-radius:14px;border:2px solid transparent;font-size:28px;font-weight:600;color:var(--sb)}
#gpRoot .gp-prog li.ok{color:var(--ft)}
#gpRoot .gp-prog li.ok .gp-n{text-decoration:line-through;text-decoration-thickness:2px}
#gpRoot .gp-prog li.ag{background:var(--ac);color:var(--ink);font-weight:800}
#gpRoot .gp-prog li.px{border-color:var(--ac);border-style:dashed;color:var(--tx)}
#gpRoot .gp-prog .gp-n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gpRoot .gp-prog em{font-style:normal;font-size:20px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
#gpRoot .gp-vazio{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;font-size:48px;font-weight:800}
#gpRoot .gp-vazio small{font-size:28px;font-weight:600;color:var(--sb)}
@media(prefers-reduced-motion:reduce){#gpRoot .gp-bar i{transition:none}}
/* celular: sem moldura, empilha (como o Modo TV) */
@media(max-width:880px){
#gpRoot{overflow-y:auto;overscroll-behavior:contain}
#gpRoot .gp-cv{position:static;transform:none!important;width:auto!important;height:auto!important;min-height:100dvh;padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(80px + env(safe-area-inset-bottom,0px));gap:16px}
#gpRoot .gp-top{flex-wrap:wrap;gap:8px 16px;min-height:0}
#gpRoot .gp-marca{font-size:20px}#gpRoot .gp-marca svg{width:28px;height:28px}
#gpRoot .gp-tit{order:3;flex-basis:100%}
#gpRoot .gp-kick{font-size:13px}#gpRoot .gp-tit h1{font-size:22px;white-space:normal}
#gpRoot .gp-top-r{margin-left:auto;gap:12px}
#gpRoot .gp-vivo{font-size:13px}#gpRoot .gp-vivo i{width:10px;height:10px}
#gpRoot .gp-clock{font-size:28px}#gpRoot .gp-clock small{font-size:16px}
#gpRoot .gp-av{gap:12px;padding:14px 16px;border-radius:16px;flex-direction:column;align-items:flex-start}
#gpRoot .gp-av span{font-size:13px;padding:0;border:0}#gpRoot .gp-av b{font-size:26px}
#gpRoot .gp-corpo{grid-template-columns:minmax(0,1fr);gap:16px}
#gpRoot .gp-at{padding:24px 16px;border-radius:20px;border-top-width:6px}
#gpRoot .gp-chip{font-size:14px;padding:8px 18px}
#gpRoot .gp-at h2{font-size:26px;margin-top:14px}
#gpRoot .gp-big{font-size:min(26vw,120px)}#gpRoot .gp-big.h{font-size:min(19vw,96px)}
#gpRoot .gp-lbl{font-size:14px}
#gpRoot .gp-bar{height:10px;margin-top:18px}
#gpRoot .gp-alerta{font-size:18px;padding:8px 20px;margin-top:16px}
#gpRoot .gp-meta{gap:24px;font-size:12px;margin-top:18px}#gpRoot .gp-meta b{font-size:20px}
#gpRoot .gp-ey{font-size:13px}
#gpRoot .gp-prox{padding:16px;border-radius:16px;border-left-width:6px}
#gpRoot .gp-prox b{font-size:22px}#gpRoot .gp-prox>span{font-size:16px}
#gpRoot .gp-cd{font-size:34px}#gpRoot .gp-cd small{font-size:12px;margin-bottom:4px}
#gpRoot .gp-prog{padding:16px 12px 12px;border-radius:16px;overflow:visible}
#gpRoot .gp-prog li{grid-template-columns:112px minmax(0,1fr) auto;gap:8px;padding:8px 10px;font-size:16px;line-height:1.3;border-radius:10px}
#gpRoot .gp-prog em{font-size:11px}
#gpRoot .gp-prog .gp-n{white-space:normal}
#gpRoot .gp-vazio{font-size:24px}#gpRoot .gp-vazio small{font-size:16px}
#gpRoot .gp-bts{position:fixed}#gpRoot .gp-x{width:44px;height:44px;background:var(--sf)}
}

/* ===================================================================================
   Slides, QR, intervalo e música (09/10/2026) — gestor.js, bloco "Slides" (gs*).
   IGUAL ao apresentador aprovado (_docs/proto/apresentador-proto.html; Rafael 09/10: "tudo
   igual"): medidas, cores e textos copiados de lá. Mexeu lá, mexa aqui.
   1) CELULAR: .gs-ap dentro da Tela do professor, escuro sempre (tokens próprios).
   2) PROJETOR: camadas no #gpRoot, fora da moldura de 1080 (position:fixed, vw/vh).
   =================================================================================== */
#geRoot .gs-ap{--bg:#0d1324;--card:#161e33;--tx:#eaf1fc;--mu:#a2b2ce;--ln:rgba(255,255,255,.10);--ac:#7d9bff;--ac-tx:#0d1324;--ok:#4cd39b;--al:#ffb366;--chip:#1f2a44;
  background:var(--bg);color:var(--tx);border-radius:var(--r-l);padding:12px 12px 14px;margin-bottom:12px;display:grid;gap:12px;
  font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;color-scheme:dark}
#geRoot .gs-ap h1, #geRoot .gs-ap h2{font-family:'Plus Jakarta Sans',Inter,sans-serif;margin:0}
#geRoot .gs-ap button{font-size:15px;line-height:1.2;cursor:pointer}
#geRoot .gs-ap button:disabled{opacity:.45;cursor:not-allowed}
#geRoot .gs-top{display:flex;align-items:center;gap:10px;min-height:44px}
#geRoot .gs-top h1{font-size:18px;line-height:1.2;flex:1}
#geRoot .gs-dot{display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:1.2;color:var(--mu)}
#geRoot .gs-dot::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--al)}
#geRoot .gs-dot.on::before{background:var(--ok)}
#geRoot .gs-card{background:var(--card);border:1px solid var(--ln);border-radius:16px;padding:12px;display:grid;gap:10px}
#geRoot .gs-card h2{font-size:13px;line-height:1.2;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.06em}
#geRoot .gs-sl{display:grid;gap:10px}
#geRoot .gs-prev{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.42fr);gap:10px;align-items:end}
#geRoot .gs-th{aspect-ratio:16/9;background:#000;border-radius:10px;overflow:hidden;display:grid;place-items:center;color:#5a6a86;font-size:13px;line-height:1.2}
#geRoot .gs-th img{width:100%;height:100%;object-fit:contain;display:block}
#geRoot .gs-th-l{font-size:12px;line-height:1.2;color:var(--mu);margin-top:4px}
#geRoot .gs-pg{font:700 15px/1.2 'Plus Jakarta Sans',sans-serif}
#geRoot .gs-nav{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:10px}
#geRoot .gs-bt{min-height:56px;border-radius:14px;border:1.5px solid currentColor;background:transparent;color:var(--tx);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px}
#geRoot .gs-bt.pri{background:var(--ac);border-color:var(--ac);color:var(--ac-tx);font-size:17px}
#geRoot .gs-bt.s{min-height:44px;font-size:14px}
#geRoot .gs-bt svg{width:20px;height:20px;flex:none}
#geRoot .gs-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
#geRoot .gs-ch{min-height:44px;border-radius:12px;border:1px solid var(--ln);background:var(--chip);color:var(--tx);font-weight:600;font-size:14px;line-height:1.2;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#geRoot .gs-ch[aria-pressed="true"]{background:var(--ac);border-color:var(--ac);color:var(--ac-tx)}
#geRoot .gs-lin{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;line-height:1.3}
#geRoot .gs-gr{flex:1;min-width:0;color:var(--mu)}
#geRoot .gs-vol{text-align:center;color:var(--tx);font-weight:600}
#geRoot .gs-big{font:800 28px/1.1 'Plus Jakarta Sans',sans-serif;font-variant-numeric:tabular-nums}
#geRoot .gs-aviso{background:color-mix(in srgb,var(--al) 16%,transparent);color:var(--tx);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.35}
#geRoot .gs-ir{display:flex;gap:8px}
#geRoot .gs-ap .gs-ir input{width:90px;min-height:44px;border-radius:12px;border:1px solid var(--ln);background:var(--card);color:var(--tx);padding:0 12px;font-size:16px}
#geRoot .gs-ir .gs-bt{min-width:56px}

#gpRoot [hidden]{display:none!important}
#gpRoot .gs-cv{position:fixed;inset:0;width:100%;height:100%;background:#000;display:block;z-index:1}
/* sem slide ainda: espera / pede o PDF (o projetor só mostra slides, Rafael 09/10) */
#gpRoot .gs-vazio{position:fixed;inset:0;z-index:1;display:grid;place-content:center;justify-items:center;gap:2vh;text-align:center;padding:4vh;color:#fff;
  font-family:'Plus Jakarta Sans',Inter,sans-serif;background:radial-gradient(120% 90% at 50% 0%,#1d2b5c 0%,#0b1020 60%)}
#gpRoot .gs-vazio b{font-size:5vh;font-weight:800;line-height:1.15}
#gpRoot .gs-vazio small{font:500 2.6vh/1.3 Inter,sans-serif;color:#a2b2ce}
/* QR por cima do slide */
#gpRoot .gs-qr{position:fixed;right:2.2vw;bottom:2.2vw;z-index:3;background:#fff;color:#10162c;border-radius:1.4vw;padding:1.2vw;display:grid;justify-items:center;gap:.6vw;box-shadow:0 1vw 3vw rgba(0,0,0,.45);transition:opacity .4s}
#gpRoot .gs-qi{width:15vw;height:15vw}
#gpRoot .gs-qi img, #gpRoot .gs-qi canvas{width:100%!important;height:100%!important;display:block}
#gpRoot .gs-qr b{font-size:1.5vw;line-height:1.1;font-weight:700}
#gpRoot .gs-qr small{font:500 1vw/1.2 Inter,sans-serif;color:#5a6a86}
#gpRoot .gs-qr.g{inset:0;right:0;bottom:0;border-radius:0;align-content:center;background:radial-gradient(120% 90% at 50% 0%,#1d2b5c 0%,#0b1020 60%);color:#fff;box-shadow:none} /* tela inteira: o azul do intervalo (Rafael 09/10) */
#gpRoot .gs-qr.g .gs-qi{background:#fff;padding:2.4vh;border-radius:2vh;box-sizing:content-box}
#gpRoot .gs-qr.g small{color:#a2b2ce}
#gpRoot .gs-qr.g .gs-qi{width:62vh;height:62vh}
#gpRoot .gs-qr.g b{font-size:5vh}
#gpRoot .gs-qr.g small{font-size:2.6vh}
/* Intervalo */
#gpRoot .gs-iv{position:fixed;inset:0;z-index:4;display:grid;place-content:center;justify-items:center;gap:2vh;text-align:center;color:#fff;font-family:'Plus Jakarta Sans',Inter,sans-serif;
  background:radial-gradient(120% 90% at 50% 0%,#1d2b5c 0%,#0b1020 60%)}
#gpRoot .gs-t1{font-size:4vh;font-weight:600;color:#a2b2ce;letter-spacing:.3em;text-transform:uppercase}
#gpRoot .gs-t2{font-size:26vh;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
#gpRoot .gs-t3{font-size:4.4vh;color:#dbe4f7}
#gpRoot .gs-eq{display:flex;gap:.8vh;align-items:flex-end;height:5vh;margin-top:2vh}
#gpRoot .gs-eq i{width:1.2vh;background:#7d9bff;border-radius:.6vh;height:30%}
#gpRoot .gs-iv.toca .gs-eq i{animation:gsEq 1.2s ease-in-out infinite}
#gpRoot .gs-eq i:nth-child(2){animation-delay:-.3s}#gpRoot .gs-eq i:nth-child(3){animation-delay:-.7s}#gpRoot .gs-eq i:nth-child(4){animation-delay:-.5s}
@keyframes gsEq{0%,100%{height:25%}50%{height:100%}}
@media(prefers-reduced-motion:reduce){#gpRoot .gs-iv.toca .gs-eq i{animation:none;height:70%}}
#gpRoot .gs-bk{position:fixed;inset:0;background:#000;z-index:6}
#gpRoot .gs-som{position:fixed;left:50%;top:3vh;transform:translateX(-50%);z-index:7;background:#ffb366;color:#10162c;padding:1vh 2vh;border-radius:1vh;font:600 2vh/1.2 Inter,sans-serif;white-space:nowrap}
#gpRoot .gp-bts{z-index:8}
#geRoot .gs-cur{display:grid;gap:6px;font-size:13px;line-height:1.2;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.06em}
#geRoot .gs-ap .gs-cur select{min-height:44px;border-radius:12px;border:1px solid var(--ln);background:var(--chip);color:var(--tx);padding:0 12px;font-size:16px;font-weight:600;text-transform:none;letter-spacing:0;width:100%}
#geRoot .gs-up{width:100%;cursor:pointer}
#geRoot .gs-up.loading{opacity:.6;pointer-events:none}

/* --- Vídeo (celular e computador) --- */
#geRoot .gs-vid{display:flex;gap:8px;flex-wrap:wrap}
#geRoot .gs-vid .gs-ch{flex:0 1 auto;padding:0 12px;max-width:100%;display:inline-flex;align-items:center;justify-content:center}
#geRoot .gs-ch.add{border-style:dashed;background:transparent;color:var(--mu);cursor:pointer}
#geRoot .gs-ch.add.loading{opacity:.6;pointer-events:none}
#geRoot .gs-vform{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
#geRoot .gs-ap .gs-vform input{min-height:44px;border-radius:12px;border:1px solid var(--ln);background:var(--chip);color:var(--tx);padding:0 12px;font-size:16px}
#geRoot .gs-vctl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#geRoot .gs-vctl #gsVPa{grid-column:1/-1} /* celular: Passar em linha própria; pausa/parar/lixeira embaixo */
#geRoot .gs-pc .gs-vctl #gsVPa{grid-column:auto}
#geRoot .gs-vctl .gs-ch, #geRoot .gs-mu .gs-ch{display:inline-flex;align-items:center;justify-content:center;padding:0}
#geRoot .gs-vctl svg, #geRoot .gs-mu svg{width:18px;height:18px}
#geRoot .gs-mu{display:grid;grid-template-columns:minmax(0,1fr) 52px 52px;gap:8px}
#geRoot .gs-mu .gs-ch{font-size:20px}
#geRoot .gs-ap button.gs-ch:disabled{opacity:.45}

/* --- Computador: modo do apresentador (≥ 1024 px), por cima do Gestor, tela cheia ---
   _docs/proto/apresentador-pc-proto.html (aprovado pelo Rafael em 09/10). */
#geRoot .gs-ap.gs-pc{position:fixed;inset:0;z-index:30;margin:0;border-radius:0;padding:14px 20px 16px;display:flex;flex-direction:column;gap:12px;overflow:hidden}
#geRoot .gs-pctop{display:flex;align-items:center;gap:14px;min-height:44px;flex:none}
#geRoot .gs-volta{display:inline-flex;align-items:center;gap:4px;background:none;border:0;color:var(--mu);font-weight:600;min-height:44px;padding:0 6px;white-space:nowrap}
#geRoot .gs-volta svg{width:18px;height:18px}
#geRoot .gs-pctop h1{font-size:18px;white-space:nowrap}
#geRoot .gs-ap .gs-pcsel{min-height:40px;border-radius:10px;border:1px solid var(--ln);background:var(--chip);color:var(--tx);padding:0 12px;font-size:14px;font-weight:600;width:320px;min-width:0}
#geRoot .gs-pcpdf{display:flex;gap:6px;align-items:center;min-width:0}
#geRoot .gs-pcpdf .gs-chips{display:flex;gap:6px}
#geRoot .gs-pcpdf .gs-ch, #geRoot .gs-pcpdf .gs-up{min-height:40px;padding:0 12px;width:auto;font-size:14px;white-space:nowrap}
#geRoot .gs-pcpdf .gs-th-l{margin:0;max-width:220px}
#geRoot .gs-ap .gs-abre{min-height:40px;padding:0 12px;flex:none;white-space:nowrap;overflow:visible}
#geRoot .gs-pctop .gs-dot{white-space:nowrap}
#geRoot .gs-rel{text-align:right;white-space:nowrap}
#geRoot .gs-rel b{display:block;font:800 26px/1 'Plus Jakarta Sans',sans-serif;font-variant-numeric:tabular-nums}
#geRoot .gs-rel small{display:block;font-size:12px;color:var(--mu);font-weight:600;margin-top:3px}
#geRoot .gs-palco{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px}
#geRoot .gs-atual{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;min-height:0}
#geRoot .gs-rot{font-size:12px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:8px;min-height:20px}
#geRoot .gs-tag{font-size:11px;font-weight:800;letter-spacing:.06em;border-radius:6px;padding:3px 7px;background:var(--ac);color:var(--ac-tx)}
#geRoot .gs-mold{min-height:0;position:relative;display:flex;align-items:center;justify-content:center;background:#000;border-radius:14px;border:1px solid var(--ln);overflow:hidden}
#geRoot .gs-mold canvas{max-width:100%;max-height:100%;display:block}
#geRoot .gs-mold{container-type:size}
#geRoot .gs-prox{aspect-ratio:16/9;flex:none;border-radius:10px}
#geRoot .gs-prox span{position:absolute;color:var(--mu);font-size:13px}
#geRoot .gs-pcsob{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center;background:rgba(3,6,12,.72);color:#fff;padding:16px}
#geRoot .gs-pcsob b{font:800 28px/1.15 'Plus Jakarta Sans',sans-serif}
#geRoot .gs-pcsob small{font-size:14px;color:var(--mu)}
#geRoot .gs-pcnav{display:grid;grid-template-columns:200px minmax(0,1fr) 260px;gap:12px;align-items:center}
#geRoot .gs-cont{display:flex;align-items:center;justify-content:center;gap:12px}
#geRoot .gs-n{font:800 22px/1 'Plus Jakarta Sans',sans-serif;white-space:nowrap}
#geRoot .gs-ap .gs-cont input{width:110px;min-height:44px;border-radius:12px;border:1px solid var(--ln);background:var(--card);color:var(--tx);padding:0 12px;font-size:15px}
#geRoot .gs-tsl{font-size:13px;color:var(--mu);white-space:nowrap}
#geRoot .gs-tsl b{color:var(--tx);font-variant-numeric:tabular-nums}
#geRoot .gs-lado{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}
#geRoot .gs-est{display:grid;gap:8px;font-size:14px;line-height:1.3}
#geRoot .gs-est div{display:flex;justify-content:space-between;gap:10px}
#geRoot .gs-est span{color:var(--mu);flex:none}
#geRoot .gs-est b{font-weight:600;text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#geRoot .gs-atalhos{font-size:12.5px;line-height:1.5;color:var(--mu)}
#geRoot .gs-atalhos b{color:var(--tx);margin-right:4px}
#geRoot .gs-pcbase{display:grid;gap:12px;flex:none}
#geRoot .gs-cmd{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,1fr) minmax(270px,1fr) minmax(420px,1.3fr);gap:12px;align-items:start}
#geRoot .gs-pc #gsMu{white-space:nowrap}
/* notebook menor (≤ 1380 px): as 4 colunas ficam, mais compactas; o topo enxuga */
@media(max-width:1380px){
#geRoot .gs-cmd{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.45fr);gap:10px}
#geRoot .gs-pc .gs-card{padding:10px}
#geRoot .gs-pc .gs-cmd .gs-ch{font-size:13px;padding:0 4px}
#geRoot .gs-pc .gs-mu{grid-template-columns:minmax(0,1fr) 44px 44px}
#geRoot .gs-pc .gs-vctl{grid-template-columns:minmax(0,1fr) 44px 44px 44px 44px;gap:6px}
#geRoot .gs-pc #gsVPa, #geRoot .gs-pc #gsMu{font-size:13px;padding:0 8px}
#geRoot .gs-pctop{gap:10px}
#geRoot .gs-pctop h1{display:none}
#geRoot .gs-ap .gs-pcsel{width:230px}
#geRoot .gs-pctop .gs-dot{font-size:0;gap:0} /* só a bolinha; o texto fica no title */
#geRoot .gs-palco{grid-template-columns:minmax(0,1fr) 300px;gap:14px}
#geRoot .gs-pcnav{grid-template-columns:150px minmax(0,1fr) 200px}
}
#geRoot .gs-pc #gsVPa{white-space:nowrap}
#geRoot .gs-pc .gs-vid{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
#geRoot .gs-pc .gs-vid .gs-ch{flex:none;max-width:180px;overflow:hidden;text-overflow:ellipsis}
/* computador: o "+ Adicionar" abre um balão acima do cartão (não empurra o slide) */
#geRoot .gs-pc .gs-vcard{position:relative}
#geRoot .gs-pc .gs-vform{position:absolute;right:0;bottom:calc(100% + 8px);width:460px;z-index:5;background:var(--card);border:1px solid var(--ln);border-radius:14px;padding:12px;
  box-shadow:0 14px 40px rgba(0,0,0,.55);grid-template-columns:minmax(0,1fr) auto}
#geRoot .gs-pc .gs-vform #gsVfU, #geRoot .gs-pc .gs-vform .gs-varq, #geRoot .gs-pc .gs-vform .gs-fx{grid-column:1/-1}
#geRoot .gs-fila{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
#geRoot .gs-fila button{flex:none;width:132px;aspect-ratio:16/9;padding:0;border:2px solid transparent;border-radius:8px;background:#000;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
#geRoot .gs-fila button.on{border-color:var(--ac)}
#geRoot .gs-fila canvas{max-width:100%;max-height:100%;display:block}
#geRoot .gs-fila em{position:absolute;left:5px;bottom:4px;font:700 11px/1 Inter,sans-serif;color:#fff;background:rgba(0,0,0,.6);padding:2px 5px;border-radius:4px;font-style:normal}
@media(max-height:820px){#geRoot .gs-fila button{width:110px}#geRoot .gs-lado .gs-atalhos{display:none}}
/* vídeo no projetor: por cima do slide, abaixo do QR/intervalo/tela apagada */
#gpRoot .gs-vd{position:fixed;inset:0;z-index:2;background:#000}
#gpRoot .gs-vd iframe, #gpRoot .gs-vd video{width:100%;height:100%;border:0;display:block;object-fit:contain;background:#000}

/* --- Espelho do projetor no computador (Rafael 09/10: "exatamente igual ao que está sendo projetado").
   Cópia das camadas do #gpRoot com cqw/cqh (o .gs-esp é o "projetor" em miniatura, no formato da tela
   dele via --ar). Mexeu nas camadas do projetor, mexa aqui. --- */
#geRoot .gs-esp{--ar:1.7778;position:relative;flex:none;width:min(100cqw,calc(100cqh * var(--ar)));height:min(100cqh,calc(100cqw / var(--ar)));
  container-type:size;overflow:hidden;background:#000;font-family:'Plus Jakarta Sans',Inter,sans-serif;color:#fff;line-height:1.2}
#geRoot .gs-esp>canvas{position:absolute;inset:0;margin:auto;max-width:100%;max-height:100%}
#geRoot .gs-esp>[hidden]{display:none!important}
#geRoot .gs-esp .gs-vazio{position:absolute;inset:0;z-index:1;display:grid;place-content:center;justify-items:center;gap:2cqh;text-align:center;padding:4cqh;background:radial-gradient(120% 90% at 50% 0%,#1d2b5c 0%,#0b1020 60%)}
#geRoot .gs-esp .gs-vazio b{font-size:5cqh;font-weight:800;line-height:1.15}
#geRoot .gs-esp .gs-vazio small{font:500 2.6cqh/1.3 Inter,sans-serif;color:#a2b2ce}
#geRoot .gs-esp .gs-vd{position:absolute;inset:0;z-index:2;background:#000}
#geRoot .gs-esp .gs-vd iframe, #geRoot .gs-esp .gs-vd video{width:100%;height:100%;border:0;display:block;object-fit:contain;background:#000;pointer-events:none}
#geRoot .gs-esp .gs-qr{position:absolute;right:2.2cqw;bottom:2.2cqw;z-index:3;background:#fff;color:#10162c;border-radius:1.4cqw;padding:1.2cqw;display:grid;justify-items:center;gap:.6cqw;box-shadow:0 1cqw 3cqw rgba(0,0,0,.45)}
#geRoot .gs-esp .gs-qi{width:15cqw;height:15cqw}
#geRoot .gs-esp .gs-qi img, #geRoot .gs-esp .gs-qi canvas{width:100%!important;height:100%!important;display:block}
#geRoot .gs-esp .gs-qr b{font-size:1.5cqw;line-height:1.1;font-weight:700}
#geRoot .gs-esp .gs-qr small{font:500 1cqw/1.2 Inter,sans-serif;color:#5a6a86}
#geRoot .gs-esp .gs-qr.g{inset:0;border-radius:0;align-content:center;background:radial-gradient(120% 90% at 50% 0%,#1d2b5c 0%,#0b1020 60%);color:#fff;box-shadow:none}
#geRoot .gs-esp .gs-qr.g .gs-qi{background:#fff;padding:2.4cqh;border-radius:2cqh;box-sizing:content-box}
#geRoot .gs-esp .gs-qr.g small{color:#a2b2ce}
#geRoot .gs-esp .gs-qr.g .gs-qi{width:62cqh;height:62cqh}
#geRoot .gs-esp .gs-qr.g b{font-size:5cqh}
#geRoot .gs-esp .gs-qr.g small{font-size:2.6cqh}
#geRoot .gs-esp .gs-iv{position:absolute;inset:0;z-index:4;display:grid;place-content:center;justify-items:center;gap:2cqh;text-align:center;background:radial-gradient(120% 90% at 50% 0%,#1d2b5c 0%,#0b1020 60%)}
#geRoot .gs-esp .gs-t1{font-size:4cqh;font-weight:600;color:#a2b2ce;letter-spacing:.3em;text-transform:uppercase}
#geRoot .gs-esp .gs-t2{font-size:26cqh;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
#geRoot .gs-esp .gs-t3{font-size:4.4cqh;color:#dbe4f7}
#geRoot .gs-esp .gs-eq{display:flex;gap:.8cqh;align-items:flex-end;height:5cqh;margin-top:2cqh}
#geRoot .gs-esp .gs-eq i{width:1.2cqh;background:#7d9bff;border-radius:.6cqh;height:30%}
#geRoot .gs-esp .gs-iv.toca .gs-eq i{animation:gsEq 1.2s ease-in-out infinite}
#geRoot .gs-esp .gs-eq i:nth-child(2){animation-delay:-.3s}#geRoot .gs-esp .gs-eq i:nth-child(3){animation-delay:-.7s}#geRoot .gs-esp .gs-eq i:nth-child(4){animation-delay:-.5s}
@media(prefers-reduced-motion:reduce){#geRoot .gs-esp .gs-iv.toca .gs-eq i{animation:none;height:70%}}
#geRoot .gs-esp .gs-bk{position:absolute;inset:0;z-index:6;background:#000}
#geRoot .gs-vctl .gs-loop{grid-column:1/-1;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px} /* celular: linha própria com texto */
#geRoot .gs-loop svg{width:18px;height:18px;flex:none}
#geRoot .gs-pc .gs-vctl{grid-template-columns:minmax(0,1fr) 48px 48px 48px 48px}
#geRoot .gs-pc .gs-vctl .gs-loop{grid-column:auto;padding:0} /* computador: só o ícone, na mesma fileira */
#geRoot .gs-pc .gs-vctl .gs-loop span{display:none}

/* vídeos fixos (todos os cursos) e o formulário de adicionar */
#geRoot .gs-ch.fixo{gap:6px}
#geRoot .gs-ch.fixo svg{width:15px;height:15px;flex:none}
#geRoot .gs-varq{cursor:pointer;width:100%}
#geRoot .gs-varq.loading{opacity:.6;pointer-events:none}
#geRoot .gs-fx{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px;line-height:1.3;cursor:pointer}
#geRoot .gs-ap .gs-fx input{width:24px;height:24px;min-height:0;margin:0;flex:none;accent-color:var(--ac);padding:0}
#geRoot .gs-fx small{color:var(--mu);font-size:12px}

/* --- celular: ações rápidas (4 botões grandes no topo, cada um com o estado) --- */
#geRoot .gs-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#geRoot .gs-tile{min-height:96px;border-radius:16px;border:1px solid var(--ln);background:var(--card);color:var(--tx);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:6px;padding:12px;text-align:left;font-size:15px;line-height:1.2}
#geRoot .gs-tile svg{width:26px;height:26px;color:var(--ac)}
#geRoot .gs-tile b{font-size:16px;font-weight:700}
#geRoot .gs-tile small{font-size:12px;line-height:1.3;color:var(--mu);min-height:16px}
#geRoot .gs-tile[aria-pressed="true"]{background:var(--ac);border-color:var(--ac);color:var(--ac-tx)}
#geRoot .gs-tile[aria-pressed="true"] svg, #geRoot .gs-tile[aria-pressed="true"] small{color:var(--ac-tx)}
#geRoot .gs-tile:disabled{opacity:.45}
#geRoot .gs-mu.so{grid-template-columns:minmax(0,1fr) 52px 52px;align-items:center}
#geRoot .gs-mu.so .gs-gr{font-size:14px;color:var(--mu)}
#geRoot .gs-mu.so b{color:var(--tx)}
#geRoot .gs-cur-l{padding:0 2px}
/* Início do Gestor, dia do evento: o controle a um toque */
#geRoot .btn.ge-ctlp{flex-direction:column;gap:2px;min-height:64px;margin:0 0 12px}
#geRoot .btn.ge-ctlp svg{width:22px;height:22px}
#geRoot .btn.ge-ctlp small{color:inherit;opacity:.85;font-size:13px;font-weight:600}
#geRoot .gs-dot.rc::before{background:var(--al);animation:gsPisca 1s ease-in-out infinite}
@keyframes gsPisca{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){#geRoot .gs-dot.rc::before{animation:none}}
#geRoot .gs-pcsob .gs-abrep{margin-top:10px;min-height:52px;padding:0 22px;width:auto}
#geRoot .gs-pcsob small{max-width:520px;line-height:1.45}

/* ===== Escala mobile, Lote 4 (desenho Etapa 14 A2/A3, 20/10/2026): lista de eventos e fases do painel no celular
   (gestor.js, geEventosCel / geFasesCard — só existem abaixo de 880px) ===== */
#geRoot .ge-ev-n{margin-left:4px;font-weight:800}
#geRoot .card.ge-ev{padding:0;overflow:hidden}
#geRoot .ge-ev-ab{display:flex;flex-direction:column;align-items:stretch;gap:4px;box-sizing:border-box;width:100%;margin:0;padding:16px 16px 12px;border:0;background:transparent;
  color:var(--t);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
#geRoot .ge-ev-ab:focus-visible{outline:0;box-shadow:inset 0 0 0 3px var(--ring)}
#geRoot .ge-ev-q{font-size:13px;line-height:1.35;font-weight:700;color:var(--m)}
#geRoot .ge-ev-q.urg{color:var(--vmT)}
#geRoot .ge-ev-t{font-size:16px;line-height:1.3;font-weight:800;overflow-wrap:anywhere}
#geRoot .ge-ev-m{font-size:13px;line-height:1.4;font-weight:500;color:var(--m)}
#geRoot .ge-ev-f{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:14px;line-height:1.3;font-weight:600}
#geRoot .ge-ev-p{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums}
#geRoot .ge-ev-ab .bar{height:6px;margin:4px 0 0}
#geRoot .ge-ev-tag{margin:0 16px 8px}
#geRoot .btn.ge-ev-dd{box-sizing:border-box;width:calc(100% - 32px);margin:0 16px 16px}
#geRoot .card.ge-fs{padding:8px 8px 4px}
#geRoot .ge-fs-t{display:block;padding:8px 8px 6px;font-size:16px;line-height:1.3;font-weight:800}
#geRoot .ge-fs-l{display:flex;align-items:center;gap:10px;box-sizing:border-box;width:100%;min-height:48px;margin:0;padding:0 8px;border:0;border-top:1px solid var(--l);border-radius:0;
  background:transparent;color:var(--t);font:inherit;font-size:15px;line-height:1.3;text-align:left;cursor:pointer}
#geRoot .ge-fs-l:focus-visible{outline:0;box-shadow:inset 0 0 0 3px var(--ring)}
#geRoot .ge-fs-n{flex:1;min-width:0;font-weight:600}
#geRoot .ge-fs-c{font-weight:800;font-variant-numeric:tabular-nums;color:var(--m)}
#geRoot .ge-fs-c.ok{color:var(--vdT)}
#geRoot .ge-fs-l .tag{margin-right:0}
/* Balões de salgados e gráfica no celular (Etapa 14 A4/A5): quadros de número e rodapé fixo Cancelar (1fr) + primário (1.6fr) */
#geRoot .ge-sg-tl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 6px}
#geRoot .ge-sg-ti{min-width:0;padding:10px 12px;border-radius:16px;background:var(--c2);border:1px solid var(--l)}
#geRoot .ge-sg-ti span{display:block;font-size:12px;line-height:1.35;font-weight:600;color:var(--m)}
#geRoot .ge-sg-ti b{display:block;margin-top:2px;font-size:20px;line-height:1.2;font-weight:800;font-variant-numeric:tabular-nums}
#geRoot .ge-sg-per{margin:0 0 12px;font-size:13px;line-height:1.4;font-weight:600;color:var(--m)}
#geRoot .btn.ge-sg-cp{margin:4px 0 0}
#geRoot .ge-gf-ax{display:flex;align-items:center;gap:10px;min-height:48px;margin:4px 0 8px;padding:0 12px;border:1px solid var(--l);border-radius:12px;background:var(--c2);font-size:14px;font-weight:600}
#geRoot .ge-gf-ax span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#geRoot .ge-gf-ax small{font-size:12px;font-weight:700;color:var(--m)}
#geRoot .ge-gf-nota{margin:0;font-size:13px;line-height:1.4;color:var(--m)}
#geRoot .ge-mo-pe{position:sticky;bottom:calc(-16px - env(safe-area-inset-bottom,0px));z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:8px;
  margin:16px -16px calc(-16px - env(safe-area-inset-bottom,0px));padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--c);border-top:1px solid var(--l)}
#geRoot .ge-mo-pe .btn{min-height:52px;margin:0;width:auto}
