/* Executar no PJe-Calc: janela no estilo do PJe-Calc Cidadão + temas de vidro (Vidro e Vidro escuro).
   Carregado depois do calc.css; não altera nada das outras telas nos temas antigos. */
.pje-janela { border:1px solid #9fb3cc; border-radius:10px; overflow:hidden; background:#fff; color:#1d2733; box-shadow:0 12px 32px rgba(20,40,70,.18); font-family:Arial, Helvetica, sans-serif; font-size:13px; }
.pje-cabeca { display:flex; align-items:center; gap:18px; padding:10px 18px; color:#fff; flex-wrap:wrap;
  background:linear-gradient(100deg,#1d3f6d 0%,#2a5a92 45%,#3d77b6 75%,#9cc2e4 100%); border-bottom:3px solid #b8d2ec; }
.pje-logo { font:700 26px/1 "Arial Narrow", "Roboto Condensed", Arial, sans-serif; letter-spacing:.3px; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.pje-logo span { font-weight:400; }
.pje-logo small { display:block; font:400 11px Arial, sans-serif; opacity:.85; margin-top:3px; letter-spacing:0; }
.pje-versao { margin-left:auto; font-size:11px; font-weight:700; color:#0f2a4d; background:rgba(255,255,255,.75); padding:3px 10px; border-radius:10px; }
.pje-status, .pje-situacao { display:flex; align-items:center; gap:8px; font-size:12.5px; background:rgba(255,255,255,.14); padding:6px 12px; border-radius:16px; border:1px solid rgba(255,255,255,.3); }
.pje-status i { width:10px; height:10px; border-radius:50%; background:#d9534f; box-shadow:0 0 0 3px rgba(217,83,79,.3); }
.pje-status.ligado i { background:#3ddc84; box-shadow:0 0 0 3px rgba(61,220,132,.35); animation:pjePulso 1.8s infinite; }
.pje-situacao svg { width:16px; height:16px; }
.pje-situacao.executando svg { animation:pjeGira 1.2s linear infinite; }
.pje-situacao.concluido { background:#2e9e5b; }
.pje-situacao.erro { background:#c0392b; }
@keyframes pjePulso { 50% { box-shadow:0 0 0 7px rgba(61,220,132,0); } }
@keyframes pjeGira { to { transform:rotate(360deg); } }
.pje-corpo { display:grid; grid-template-columns:230px 1fr; min-height:520px; }
.pje-menu { background:#f4f6f9; border-right:1px solid #c9d4e3; padding-bottom:12px; }
.pje-menu-titulo { background:linear-gradient(180deg,#eef2f7,#d7e0eb); border-bottom:1px solid #b9c7d8; border-top:1px solid #fff; padding:6px 12px; font-weight:700; color:#1b3f6e; }
.pje-menu a, .pje-menu .pje-et, .pje-vazio { display:flex; align-items:center; gap:8px; padding:7px 12px; color:#1d2733 !important; text-decoration:none; font-size:13px; }
.pje-menu a:hover, .pje-menu a.ativo { background:#dde8f5; }
.pje-menu a.ativo { font-weight:700; border-left:3px solid #2a5a92; padding-left:9px; }
.pje-menu svg { width:17px; height:17px; color:#2a5a92; flex:none; }
.pje-vazio { color:#7a8796 !important; font-style:italic; }
.pje-exec.concluido svg, .pje-et.feita svg { color:#2e9e5b; }
.pje-exec.erro svg, .pje-et.erro svg { color:#c0392b; }
.pje-exec.executando svg, .pje-et.executando svg { color:#e08a00; animation:pjeGira 1.2s linear infinite; }
.pje-et.executando { font-weight:700; background:#fff6e0; }
.pje-rec { padding:8px 12px 2px; font-size:11px; font-weight:700; color:#5b6b7e; text-transform:uppercase; letter-spacing:.4px; }
.pje-conteudo { padding:0 16px 16px; min-width:0; }
.pje-trilha { display:flex; align-items:center; gap:8px; margin:0 -16px 12px; padding:9px 16px; background:linear-gradient(180deg,#f7f9fb,#e9eef4); border-bottom:1px solid #d3dce7; color:#2a3a4d; }
.pje-trilha svg { width:18px; height:18px; color:#2a5a92; }
.pje-aviso { padding:9px 12px; border-radius:4px; margin-bottom:10px; border:1px solid #b9d3ee; background:#eef6ff; color:#1d3f6d; }
.pje-aviso.ok { background:#e9f8ee; border-color:#9bd5ae; color:#1e6b3a; font-weight:700; }
.pje-aviso.erro { background:#fdecea; border-color:#f1b0a9; color:#8c2a1f; }
.pje-grupo { border:1px solid #c9d4e3; border-radius:3px; padding:10px 12px 12px; margin:0 0 12px; background:#fff; }
.pje-grupo legend { font-weight:700; color:#111; padding:0 6px; font-size:13px; }
.pje-linha { display:flex; flex-wrap:wrap; gap:10px 14px; }
.pje-campo { display:flex; flex-direction:column; gap:3px; font-weight:700; font-size:12px; color:#1d2733 !important; min-width:150px; flex:1 1 150px; }
.pje-campo.largo { flex:2 1 260px; }
.pje-campo small { color:#8a97a8; font-weight:400; }
.pje-janela input, .pje-janela select { height:26px; border:1px solid #9fb6d1 !important; background:#eaf2fb !important; color:#1d2733 !important; border-radius:2px; padding:0 6px; font:13px Arial, sans-serif; }
.pje-janela input[readonly] { background:#f3f5f8 !important; color:#4a5868 !important; }
.pje-janela input[type=checkbox] { height:16px; width:16px; accent-color:#2a5a92; }
.pje-dica { font-size:12px; color:#5b6b7e; margin:8px 0 0; }
#avisoFichas { color:#8c2a1f; font-weight:700; }
.pje-abas { display:flex; flex-wrap:wrap; gap:2px; border-bottom:1px solid #b9c7d8; margin:4px 0 10px; }
.pje-abas a { padding:6px 14px; background:#dfe9f6; border:1px solid #b9c7d8; border-bottom:none; border-radius:4px 4px 0 0; color:#1b3f6e !important; text-decoration:none; font-size:12.5px; }
.pje-abas a.ativo { background:#fff; font-weight:700; position:relative; top:1px; }
.pje-tabela-rolagem { max-height:420px; overflow:auto; border:1px solid #c9d4e3; }
.pje-tabela { width:100%; border-collapse:collapse; font-size:12.5px; }
.pje-tabela th { position:sticky; top:0; background:#e6edf5 !important; color:#1b3f6e !important; font-weight:700; padding:6px; border:1px solid #c9d4e3; }
.pje-tabela th small { display:block; color:#8a97a8; font-weight:400; }
.pje-tabela td { padding:4px 6px; border:1px solid #e1e7ef; color:#1d2733 !important; background:#fff; }
.pje-tabela tr:nth-child(even) td { background:#f6f9fc; }
.pje-tabela td.marca { display:table-cell; text-align:center; padding:4px 6px; }   /* o .marca do calc.css é o logotipo (flex) */
.pje-tabela td.num { color:#7a8796 !important; text-align:right; }
.pje-etapas { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:6px 14px; }
.pje-etapa { display:flex; align-items:center; gap:8px; font-size:13px; color:#1d2733 !important; }
.pje-botoes { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:14px; }
.pje-botao { display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 22px; border-radius:5px; border:1px solid #1b3f6e; cursor:pointer;
  background:linear-gradient(180deg,#4a7bb6,#26508a); color:#fff !important; font:700 13px Arial, sans-serif; text-decoration:none; box-shadow:0 2px 3px rgba(0,0,0,.25); }
.pje-botao:hover { filter:brightness(1.08); }
.pje-botao svg { width:16px; height:16px; }
.pje-botao.iniciar { height:44px; padding:0 34px; font-size:16px; border-color:#1e6b3a; background:linear-gradient(180deg,#43c172,#23874a); box-shadow:0 4px 14px rgba(35,135,74,.35); }
.pje-botao.iniciar:disabled { filter:grayscale(1); opacity:.6; cursor:not-allowed; }
.pje-botao.enviando { pointer-events:none; opacity:.8; }
.pje-botao.enviando svg { animation:pjeGira 1s linear infinite; }
.pje-numeros { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin-bottom:12px; }
.pje-numeros div { border:1px solid #c9d4e3; border-radius:4px; padding:8px 10px; background:linear-gradient(180deg,#fff,#f3f6fa); }
.pje-numeros small { display:block; color:#5b6b7e; font-size:11px; }
.pje-numeros b { font-size:16px; color:#1b3f6e; }
.pje-console { margin:0; max-height:380px; overflow:auto; background:#0f1b2b; color:#cfe3ff; padding:12px; border-radius:4px; font:12px/1.5 Consolas, "Courier New", monospace; white-space:pre-wrap; }
.pje-arquivos { display:flex; flex-wrap:wrap; gap:10px; }
/* Cálculos (lista e cálculo) na mesma janela */
.pje-menu .pje-futuro { color:#8a97a8 !important; cursor:default; }
.pje-menu .pje-futuro svg { color:#a9b5c4; }
.pje-futuro small { margin-left:auto; flex:none; white-space:nowrap; font-size:10px; background:#e3e9f1; color:#5b6b7e; padding:1px 7px; border-radius:8px; }
.pje-menu .pje-botao svg { color:#fff; }
.pje-novo { display:flex; flex-direction:column; gap:6px; padding:10px 12px; border-bottom:1px solid #dfe6ef; }
.pje-novo .pje-campo { min-width:0; flex:none; }
.pje-novo .pje-botao { justify-content:center; }
.pje-campo.estreito { flex:0 1 70px; min-width:70px; }
.pje-marca { display:flex; align-items:center; gap:6px; height:26px; font-weight:400; }
.pje-botao.pequeno { height:26px; padding:0 12px; font-size:12px; box-shadow:none; }
.pje-botao.claro { background:linear-gradient(180deg,#fff,#e6edf5); color:#1b3f6e !important; border-color:#9fb6d1; }
.pje-tabela-rolagem.alta { max-height:620px; }
.pje-tabela a { color:#1b4f8f !important; }
.pje-tabela td.pje-vazio { text-align:center; padding:14px; }
.pje-dica-topo { margin:0 0 8px; }
@media (max-width:820px) { .pje-corpo { grid-template-columns:1fr; } .pje-menu { border-right:none; border-bottom:1px solid #c9d4e3; } .pje-versao { display:none; }
  .pje-menu .pje-futuro { display:none; } }

/* ---------- Temas de vidro: "Vidro" (painéis foscos claros sobre fundo quente, destaque laranja, como o Glassy Dashboard)
   e "Vidro escuro" (vidro escuro com dourado, como o Login form V7). Escolha no seletor de cores do topo. ---------- */
html.tema-vidro { --fundo:#e9dccb; color-scheme:light;
  --fundo-pagina:radial-gradient(1100px 700px at 12% 8%,rgba(255,240,220,.95),transparent 60%),radial-gradient(900px 650px at 88% 18%,rgba(222,178,128,.6),transparent 62%),
    radial-gradient(1000px 800px at 55% 105%,rgba(160,112,78,.55),transparent 60%),linear-gradient(135deg,#f1e6d6,#dcc6aa 55%,#bb9b7c);
  --superficie:rgba(255,255,255,.55); --texto:#2b2420; --texto2:#4a3f37; --cinza:#6e625a; --linha:rgba(255,255,255,.7); --linha2:rgba(110,80,50,.14);
  --azul:#e4692f; --azul2:#c9561f; --azul3:#a64416; --ouro:#e4692f; --ouro2:#f2985a; --ouro-claro:rgba(255,236,220,.75);
  --topo-fundo:rgba(255,255,255,.38); --topo-linha:rgba(255,255,255,.75); --lateral-fundo:rgba(52,38,30,.55); --cabeca-tabela:rgba(255,255,255,.5); }
html.tema-vidro-escuro { --fundo:#0c0c0e; color-scheme:dark;
  --fundo-pagina:radial-gradient(900px 520px at 82% 6%,rgba(214,158,62,.38),transparent 60%),radial-gradient(760px 480px at 8% 92%,rgba(160,104,38,.32),transparent 62%),
    linear-gradient(160deg,#151517,#0b0b0c 60%,#18120b);
  --superficie:rgba(30,30,34,.58); --texto:#f4efe6; --texto2:#ddd4c6; --cinza:#a89f91; --linha:rgba(255,255,255,.13); --linha2:rgba(255,255,255,.07);
  --azul:#f2c230; --azul2:#dcaa16; --azul3:#f6d469; --ouro:#f2c230; --ouro2:#f7d867; --ouro-claro:rgba(242,194,48,.16);
  --topo-fundo:rgba(18,18,20,.55); --topo-linha:rgba(242,194,48,.35); --topo-texto:#f4efe6; --lateral-fundo:rgba(10,10,12,.62); --cabeca-tabela:rgba(255,255,255,.06); }
html.tema-vidro body, html.tema-vidro-escuro body { background-attachment:fixed; }
html.tema-vidro :is(.card, .g-card, .g-numero, .indicador, .proc, .cand, .modo, .vaga-card, .gaveta, .multi, .paleta, .topo, .lateral),
html.tema-vidro-escuro :is(.card, .g-card, .g-numero, .indicador, .proc, .cand, .modo, .vaga-card, .gaveta, .multi, .paleta, .topo, .lateral) {
  -webkit-backdrop-filter:blur(18px) saturate(150%); backdrop-filter:blur(18px) saturate(150%); }
html.tema-vidro :is(.card, .g-card, .g-numero, .indicador, .proc, .cand, .modo, .vaga-card) {
  border:1px solid var(--linha) !important; border-radius:18px; box-shadow:0 12px 32px rgba(40,25,10,.16), inset 0 1px 0 rgba(255,255,255,.4); }
html.tema-vidro-escuro :is(.card, .g-card, .g-numero, .indicador, .proc, .cand, .modo, .vaga-card) {
  border:1px solid var(--linha) !important; border-radius:18px; box-shadow:0 14px 36px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06); }
html.tema-vidro :is(.botao:not(.leve):not(.perigo), .btn-acao) { background:linear-gradient(180deg,#f08a4f,#e0622a) !important; border-color:#c9561f !important; color:#fff !important; }
html.tema-vidro-escuro :is(.botao:not(.leve):not(.perigo), .btn-acao) { background:linear-gradient(180deg,#f7d867,#f0bb22) !important; border-color:#d9a91c !important; color:#1a1406 !important; }
/* Vidro: menu lateral de vidro claro com texto escuro, como a barra do Glassy Dashboard */
html.tema-vidro { --lateral-fundo:rgba(255,255,255,.4); }
html.tema-vidro .lateral :is(.item, .marca-calc, .conta-card, .usuario .quem b) { color:#3b2f27; }
html.tema-vidro .lateral .item:hover { background:rgba(255,255,255,.5); color:#2b2420; }
html.tema-vidro .lateral .item.ativo { background:rgba(255,255,255,.78); color:#2b2420; box-shadow:0 4px 14px rgba(110,70,40,.12); }
html.tema-vidro .lateral .item svg { color:#7a6252; } html.tema-vidro .lateral .item.ativo svg { color:var(--azul); }
html.tema-vidro .lateral :is(.grupo-titulo, .conta-card small, .usuario .quem a) { color:#8a7466; }
html.tema-vidro .lateral .marca-calc small { color:var(--azul2); }
html.tema-vidro .lateral .conta-card { background:rgba(255,255,255,.45); border-color:rgba(255,255,255,.75); }
html.tema-vidro .lateral .rodape-lateral { border-top-color:rgba(110,80,50,.15); }
html.tema-vidro .pje-janela, html.tema-vidro-escuro .pje-janela { border-radius:16px; box-shadow:0 18px 44px rgba(0,0,0,.28); }

/* ========== Temas de vidro completos: ondas no fundo, entrada no estilo Login V7, barras flutuantes e anéis como no
   Glassy Dashboard, janela do PJe-Calc de vidro (mantém faixa, menu, abas e campos). Só nos temas Vidro e Vidro escuro. ========== */
/* feixes de luz em TODOS os temas (pedido de 01/11/2026), cada um nas cores do seu tema: as variáveis --fx-* abaixo.
   a = feixes dourados (classes f*), b = feixes da segunda cor (classes p*), superfície = brilho largo por baixo;
   raio-a/raio-b = rastro dos raios, ponta = ponta do raio; dado/mouse = caracteres do rastro "0 1 $" (tela de entrada).
   Temas claros: ponta e caracteres escuros com contorno claro; temas escuros: o contrário. */
.fundo-ondas { display:block; position:fixed; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.fundo-ondas .camada { position:absolute; inset:0; width:100%; height:100%; overflow:visible; will-change:transform; }
html { --fx-a:#f2c230; --fx-a1:#d39a2e; --fx-a1o:.9; --fx-a2:#fff1c2; --fx-a2o:1; --fx-b:#c9ccd6; --fx-b1:#8d929e; --fx-b1o:.75;
  --fx-b2:#ffffff; --fx-b2o:.95; --fx-sup:#1e1e23; --fx-supo:.9; --fx-dentro:.5; --fx-raio-a:#f2c230; --fx-raio-b:#cfd6e6;
  --fx-ponta:#ffffff; --fx-dado-a:#fff6d5; --fx-dado-a-borda:rgba(60,38,0,.6); --fx-dado-b:#ffffff; --fx-dado-b-borda:rgba(16,20,30,.6);
  --fx-cifrao:#ffe58a; --fx-mouse:#ffd76a; --fx-mouse-cifrao:#fff1b0;
  --fx-mouse-brilho:0 0 6px rgba(242,194,48,.85), 0 0 16px rgba(242,194,48,.45); }   /* = Vidro escuro */
html.tema-vidro { --fx-a:#f2985a; --fx-a1:#f2985a; --fx-a1o:.75; --fx-a2:#fff7ee; --fx-a2o:1; --fx-b:#ffffff; --fx-b1:#ffffff; --fx-b1o:.7;
  --fx-b2:#ffffff; --fx-b2o:1; --fx-sup:#ffffff; --fx-supo:.3; --fx-raio-a:#e4692f; --fx-raio-b:#ffffff; --fx-ponta:#ffffff;
  --fx-mouse:#c9561f; --fx-mouse-cifrao:#a64416; --fx-mouse-brilho:0 0 6px rgba(255,255,255,.9); }
html.tema-champanhe { --fx-a:#b8892a; --fx-a1:#c99a3a; --fx-a1o:.55; --fx-a2:#fffaf0; --fx-a2o:.95; --fx-b:#2f7a58; --fx-b1:#2f7a58;
  --fx-b1o:.32; --fx-b2:#9ad6b8; --fx-b2o:.6; --fx-sup:#ffffff; --fx-supo:.5; --fx-dentro:.6; --fx-raio-a:#b8892a; --fx-raio-b:#2f7a58;
  --fx-ponta:#5b3d07; --fx-dado-a:#6b4a12; --fx-dado-a-borda:rgba(255,250,235,.9); --fx-dado-b:#1f4d3a; --fx-dado-b-borda:rgba(255,255,255,.9);
  --fx-cifrao:#8a5d10; --fx-mouse:#8a5d10; --fx-mouse-cifrao:#6b4a12; --fx-mouse-brilho:0 0 6px rgba(255,255,255,.95), 0 0 14px rgba(226,191,108,.7); }
html:is(.tema-safira, .tema-safira2) { --fx-a:#c9a227; --fx-a1:#c9a227; --fx-a1o:.5; --fx-a2:#fffdf2; --fx-a2o:.95; --fx-b:#2a5fa8; --fx-b1:#2a5fa8;
  --fx-b1o:.32; --fx-b2:#a9c6ee; --fx-b2o:.65; --fx-sup:#ffffff; --fx-supo:.55; --fx-dentro:.6; --fx-raio-a:#c9a227; --fx-raio-b:#2a5fa8;
  --fx-ponta:#16345f; --fx-dado-a:#6e5410; --fx-dado-a-borda:rgba(255,255,255,.9); --fx-dado-b:#16345f; --fx-dado-b-borda:rgba(255,255,255,.9);
  --fx-cifrao:#7a5a0c; --fx-mouse:#16345f; --fx-mouse-cifrao:#7a5a0c; --fx-mouse-brilho:0 0 6px rgba(255,255,255,.95), 0 0 14px rgba(42,95,168,.35); }
html.tema-verde { --fx-a:#d9a94e; --fx-a1:#d9a94e; --fx-a1o:.85; --fx-a2:#fff0c8; --fx-a2o:1; --fx-b:#2f9a77; --fx-b1:#2f9a77; --fx-b1o:.7;
  --fx-b2:#b8f5dc; --fx-b2o:.9; --fx-sup:#103329; --fx-supo:.9; --fx-raio-a:#d9a94e; --fx-raio-b:#69dfbd; --fx-ponta:#ffffff;
  --fx-dado-a:#fff4d6; --fx-dado-a-borda:rgba(20,30,10,.65); --fx-dado-b:#e6fff5; --fx-dado-b-borda:rgba(0,30,20,.65); --fx-mouse:#f0c77a;
  --fx-mouse-brilho:0 0 6px rgba(217,169,78,.85), 0 0 16px rgba(105,223,189,.35); }
html.tema-marinho { --fx-a:#d9a94e; --fx-a1:#d9a94e; --fx-a1o:.85; --fx-a2:#fff0c8; --fx-a2o:1; --fx-b:#2f6fc0; --fx-b1:#2f6fc0; --fx-b1o:.7;
  --fx-b2:#cfe6ff; --fx-b2o:.9; --fx-sup:#0f2646; --fx-supo:.9; --fx-raio-a:#d9a94e; --fx-raio-b:#8cc4ff; --fx-ponta:#ffffff;
  --fx-dado-a:#fff4d6; --fx-dado-a-borda:rgba(20,25,10,.65); --fx-dado-b:#eaf4ff; --fx-dado-b-borda:rgba(5,15,35,.65); --fx-mouse:#f0c77a;
  --fx-mouse-brilho:0 0 6px rgba(217,169,78,.85), 0 0 16px rgba(140,196,255,.4); }
.fundo-ondas .f0 { stop-color:var(--fx-a); stop-opacity:0; }
.fundo-ondas .f1 { stop-color:var(--fx-a1); stop-opacity:var(--fx-a1o); }
.fundo-ondas .f2 { stop-color:var(--fx-a2); stop-opacity:var(--fx-a2o); }
.fundo-ondas .p0 { stop-color:var(--fx-b); stop-opacity:0; }
.fundo-ondas .p1 { stop-color:var(--fx-b1); stop-opacity:var(--fx-b1o); }
.fundo-ondas .p2 { stop-color:var(--fx-b2); stop-opacity:var(--fx-b2o); }
.fundo-ondas .superficie { stroke:var(--fx-sup); opacity:var(--fx-supo); }
.fundo-ondas .rc-ouro { stop-color:var(--fx-raio-a); } .fundo-ondas .rc-prata { stop-color:var(--fx-raio-b); } .fundo-ondas .rp { stop-color:var(--fx-ponta); }
body:not(.tela-entrar-calc) .fundo-ondas { opacity:var(--fx-dentro); }   /* telas internas: mais discretas */
/* movimento: os feixes da camada "direita" deslizam para a direita e os da "esquerda" para a esquerda, indo e voltando
   (só deslocamento da camada inteira: leve para o computador); um raio de luz corre ao longo de cada feixe (no _fundo_ondas) */
.fundo-ondas .camada.direita { animation:feixesDireita 13s ease-in-out infinite alternate; }
.fundo-ondas .camada.esquerda { animation:feixesEsquerda 16s ease-in-out infinite alternate; }
@keyframes feixesDireita { from { transform:translateX(-45px); } to { transform:translateX(55px); } }
@keyframes feixesEsquerda { from { transform:translateX(45px); } to { transform:translateX(-55px); } }
/* raio de luz: fio fino e afiado com um brilho estreito em volta (o degradê animado faz a ponta e o rastro) */
.fundo-ondas .raio .brilho { opacity:.28; }
.fundo-ondas .raio .fio { opacity:1; }
@media (prefers-reduced-motion: reduce) { .fundo-ondas .camada { animation:none; } .fundo-ondas .pulsos { display:none; } }
/* rastro de dados (tela de entrada): "0 1 0 1 0 1 $ $ 01 01 $$" deixado pela ponta de cada raio e pelo mouse;
   cada caractere acende, sobe um pouco, encolhe e some (o script remove quando a animação acaba) */
.fundo-ondas .rastro .dado { font:700 17px "Cascadia Mono", Consolas, "Courier New", monospace; paint-order:stroke; stroke-width:2.6px;
  stroke-linejoin:round; transform-box:fill-box; transform-origin:center; animation:rastroDado 1.15s ease-out forwards; }
.fundo-ondas .rastro .dado.ouro { fill:var(--fx-dado-a); stroke:var(--fx-dado-a-borda); }   /* contorno contrastante: lê até sobre o feixe */
.fundo-ondas .rastro .dado.prata { fill:var(--fx-dado-b); stroke:var(--fx-dado-b-borda); }
.fundo-ondas .rastro .dado.cifrao { font-size:20px; fill:var(--fx-cifrao); stroke:var(--fx-dado-a-borda); }
@keyframes rastroDado { 0% { opacity:0; transform:scale(1.35); } 12% { opacity:1; transform:scale(1); }
  100% { opacity:0; transform:translateY(-16px) scale(.55); } }
.rastro-mouse { position:fixed; left:0; top:0; z-index:0; pointer-events:none; user-select:none; color:var(--fx-mouse);
  font:700 15px "Cascadia Mono", Consolas, "Courier New", monospace; text-shadow:var(--fx-mouse-brilho);
  animation:rastroMouse .95s ease-out forwards; }
.rastro-mouse.cifrao { font-size:18px; color:var(--fx-mouse-cifrao); }
@keyframes rastroMouse { 0% { opacity:0; transform:translate(calc(var(--x) - 50%), calc(var(--y) - 50%)) scale(1.4); }
  15% { opacity:1; transform:translate(calc(var(--x) - 50%), calc(var(--y) - 50%)) scale(1); }
  100% { opacity:0; transform:translate(calc(var(--x) - 50% + var(--dx)), calc(var(--y) - 50% - 22px)) scale(.5); } }

/* tela de entrada: título, ícones nos campos e "ver senha" só aparecem nos temas de vidro */
.titulo-vidro, .campo-icone, .ver-senha { display:none; }
.campo-vidro { display:block; position:relative; }
html:is(.tema-vidro, .tema-vidro-escuro) .cartao-entrar { position:relative; z-index:1; width:min(440px,100%); padding:34px 34px 30px;
  -webkit-backdrop-filter:blur(12px) saturate(160%); backdrop-filter:blur(12px) saturate(160%); }   /* o feixe aparece atrás do vidro */
html:is(.tema-vidro, .tema-vidro-escuro) .titulo-vidro { display:block; margin:4px 0 0; font-size:30px; font-weight:700; letter-spacing:-.01em; color:var(--texto); }
html:is(.tema-vidro, .tema-vidro-escuro) .titulo-vidro span { color:var(--ouro); }
html:is(.tema-vidro, .tema-vidro-escuro) .campo-icone { display:block; position:absolute; left:14px; top:50%; transform:translateY(-50%);
  width:18px; height:18px; color:var(--cinza); pointer-events:none; }
html:is(.tema-vidro, .tema-vidro-escuro) .campo-vidro input { padding-left:44px; }
html:is(.tema-vidro, .tema-vidro-escuro) .campo-vidro input[name=senha] { padding-right:50px; }
html:is(.tema-vidro, .tema-vidro-escuro) .ver-senha { display:grid; place-items:center; position:absolute; right:6px; top:50%; transform:translateY(-50%);
  width:38px; height:38px; border:0; border-radius:9px; background:none; color:var(--cinza); cursor:pointer; }
html:is(.tema-vidro, .tema-vidro-escuro) .ver-senha:is(:hover, .ativo) { color:var(--ouro); }
html.tema-vidro .cartao-entrar { background:rgba(255,255,255,.28) !important; border:1px solid rgba(255,255,255,.75) !important; }
html.tema-vidro .cartao-entrar input { background:rgba(255,255,255,.55) !important; border-color:rgba(255,255,255,.8) !important; }
/* Vidro escuro: cartão de vidro translúcido com dois cantos cortados e filetes dourados (Login V7) */
html.tema-vidro-escuro .cartao-entrar { background:rgba(24,24,27,.42) !important; border:1px solid rgba(255,255,255,.16) !important; border-radius:16px;
  clip-path:polygon(72px 0, 100% 0, 100% calc(100% - 72px), calc(100% - 72px) 100%, 0 100%, 0 72px); text-align:left; box-shadow:none; }
/* borda clara do vidro também nos dois cortes */
html.tema-vidro-escuro .cartao-entrar::before, html.tema-vidro-escuro .cartao-entrar::after { content:""; position:absolute; width:72px; height:72px; pointer-events:none; }
html.tema-vidro-escuro .cartao-entrar::before { top:0; left:0;
  background:linear-gradient(135deg, transparent calc(50% - 1px), rgba(255,255,255,.35) calc(50% - 1px), rgba(255,255,255,.35) calc(50% + 1.5px), transparent calc(50% + 1.5px)); }
html.tema-vidro-escuro .cartao-entrar::after { right:0; bottom:0;
  background:linear-gradient(135deg, transparent calc(50% - 1.5px), rgba(255,255,255,.35) calc(50% - 1.5px), rgba(255,255,255,.35) calc(50% + 1px), transparent calc(50% + 1px)); }
/* pedaços de vidro soltos encaixados nos cortes, com uma fresta (a moldura só existe no Vidro escuro) */
.moldura-vidro { display:contents; } .canto-vidro { display:none; }
html.tema-vidro-escuro .moldura-vidro { display:block; position:relative; width:min(440px,100%); }
html.tema-vidro-escuro .moldura-vidro .cartao-entrar { width:100%; margin:0; }
html.tema-vidro-escuro .canto-vidro { display:block; position:absolute; z-index:2; width:60px; height:60px; pointer-events:none;
  filter:drop-shadow(0 0 .6px rgba(255,255,255,.75)) drop-shadow(0 6px 14px rgba(0,0,0,.45)); }
html.tema-vidro-escuro .canto-vidro i { position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,255,255,.26), rgba(255,255,255,.07) 60%, rgba(255,255,255,.12)); }
html.tema-vidro-escuro .canto-vidro.um { top:0; left:0; } html.tema-vidro-escuro .canto-vidro.um i { border-radius:16px 0 0 0; clip-path:polygon(0 0, 100% 0, 0 100%); }
html.tema-vidro-escuro .canto-vidro.dois { right:0; bottom:0; } html.tema-vidro-escuro .canto-vidro.dois i { border-radius:0 0 16px 0; clip-path:polygon(100% 0, 100% 100%, 0 100%); }
html.tema-vidro-escuro .cartao-entrar .marca-calc.grande { justify-content:flex-start; }
html.tema-vidro-escuro .cartao-entrar label { color:#ddd4c6; font-size:13.5px; }
html.tema-vidro-escuro .cartao-entrar input { background:rgba(255,255,255,.035) !important; border-color:rgba(255,255,255,.12) !important; color:#f4efe6 !important; }
html.tema-vidro-escuro .cartao-entrar input:focus { border-color:#f2c230 !important; box-shadow:0 0 0 3px rgba(242,194,48,.16); }
html:is(.tema-vidro, .tema-vidro-escuro) .cartao-entrar .botao { height:50px; font-size:16px; border-radius:11px; }
html.tema-vidro-escuro .cartao-entrar .botao { box-shadow:0 8px 26px rgba(242,194,48,.28); }
html.tema-vidro .cartao-entrar .botao { box-shadow:0 8px 26px rgba(228,105,47,.3); }

/* menu lateral e barra do topo flutuando como vidro (computador) */
@media (min-width:861px) {
  html:is(.tema-vidro, .tema-vidro-escuro) .lateral { top:14px; height:calc(100vh - 28px); margin:14px 0 14px 14px; border-radius:24px;
    border:1px solid var(--linha); box-shadow:0 16px 40px rgba(0,0,0,.18); }
  html:is(.tema-vidro, .tema-vidro-escuro) .topo { top:14px; margin:14px 22px 0; border-radius:20px; border:1px solid var(--topo-linha) !important;
    box-shadow:0 10px 30px rgba(0,0,0,.12); }
}
@media (min-width:1101px) { html:is(.tema-vidro, .tema-vidro-escuro) { --lateral:290px; } }

/* Painel da migração: progresso de cada bloco em anel (como os 74%, 64%… do Glassy Dashboard); --p vem do inicio.html */
html:is(.tema-vidro, .tema-vidro-escuro) .bloco-calc { position:relative; padding-right:126px; min-height:150px; }
html:is(.tema-vidro, .tema-vidro-escuro) .bloco-calc .barra-prog { position:absolute; top:24px; right:24px; width:80px; height:80px; margin:0;
  border-radius:50%; background:conic-gradient(var(--azul) calc(var(--p, 0) * 1%), var(--anel-fundo) 0);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 9px), #000 calc(100% - 8px));
  mask:radial-gradient(farthest-side, transparent calc(100% - 9px), #000 calc(100% - 8px)); }
html:is(.tema-vidro, .tema-vidro-escuro) .bloco-calc .barra-prog span { display:none; }
html:is(.tema-vidro, .tema-vidro-escuro) .bloco-calc::after { counter-reset:pct var(--p, 0); content:counter(pct) "%"; position:absolute; top:24px;
  right:24px; width:80px; height:80px; display:grid; place-items:center; font-weight:800; font-size:18px; color:var(--texto); }
html.tema-vidro { --anel-fundo:rgba(110,80,50,.16); } html.tema-vidro-escuro { --anel-fundo:rgba(255,255,255,.1); }

/* janela do PJe-Calc de vidro */
html:is(.tema-vidro, .tema-vidro-escuro) .pje-janela { -webkit-backdrop-filter:blur(20px) saturate(150%); backdrop-filter:blur(20px) saturate(150%); }
html.tema-vidro .pje-janela { background:rgba(255,255,255,.4); border-color:rgba(255,255,255,.75); }
html.tema-vidro .pje-cabeca { background:linear-gradient(100deg,rgba(29,63,109,.88),rgba(42,90,146,.8) 45%,rgba(61,119,182,.7) 75%,rgba(156,194,228,.5));
  border-bottom-color:rgba(255,255,255,.6); }
html.tema-vidro .pje-menu { background:rgba(255,255,255,.28); border-right-color:rgba(255,255,255,.6); }
html.tema-vidro .pje-menu-titulo { background:rgba(255,255,255,.45); border-color:rgba(255,255,255,.7); }
html.tema-vidro .pje-menu :is(a:hover, a.ativo, a.aberto) { background:rgba(255,255,255,.68); }
html.tema-vidro .pje-trilha { background:rgba(255,255,255,.38); border-bottom-color:rgba(255,255,255,.7); }
html.tema-vidro :is(.pje-grupo, .pje-numeros div) { background:rgba(255,255,255,.45); border-color:rgba(255,255,255,.8); border-radius:12px; }
html.tema-vidro .pje-janela :is(input, select) { background:rgba(255,255,255,.68) !important; border-color:rgba(150,110,80,.28) !important; border-radius:6px; }
html.tema-vidro .pje-abas a { background:rgba(255,255,255,.35); border-color:rgba(255,255,255,.75); }
html.tema-vidro .pje-abas a.ativo { background:rgba(255,255,255,.85); }
html.tema-vidro .pje-tabela-rolagem { border-color:rgba(255,255,255,.75); border-radius:8px; }
html.tema-vidro .pje-tabela th { background:rgba(255,255,255,.88) !important; }
html.tema-vidro .pje-tabela td { background:rgba(255,255,255,.42); }
html.tema-vidro .pje-tabela tr:nth-child(even) td { background:rgba(255,255,255,.58); }
html.tema-vidro .pje-aviso { background:rgba(238,246,255,.7); }
html.tema-vidro .pje-soltar { background:rgba(255,255,255,.5); }
/* Vidro escuro: janela escura translúcida com detalhes dourados */
html.tema-vidro-escuro .pje-janela { background:rgba(22,22,26,.52); border-color:rgba(242,194,48,.22); color:#f4efe6;
  box-shadow:0 18px 44px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06); }
html.tema-vidro-escuro .pje-cabeca { background:linear-gradient(100deg,rgba(16,16,20,.88),rgba(38,30,16,.82) 60%,rgba(120,90,20,.55));
  border-bottom:1px solid rgba(242,194,48,.45); }
html.tema-vidro-escuro .pje-logo span { color:#f2c230; }
html.tema-vidro-escuro .pje-versao { background:rgba(242,194,48,.14); color:#f7d867; border:1px solid rgba(242,194,48,.35); }
html.tema-vidro-escuro .pje-menu { background:rgba(255,255,255,.025); border-right-color:rgba(255,255,255,.08); }
html.tema-vidro-escuro .pje-menu-titulo { background:rgba(255,255,255,.045); border-color:rgba(255,255,255,.06); color:#f2c230; }
html.tema-vidro-escuro :is(.pje-menu a, .pje-menu .pje-et, .pje-vazio) { color:#ddd4c6 !important; }
html.tema-vidro-escuro .pje-menu svg { color:#cdb57a; }
html.tema-vidro-escuro .pje-menu :is(a:hover, a.ativo, a.aberto) { background:rgba(242,194,48,.1); }
html.tema-vidro-escuro .pje-menu a.ativo { border-left-color:#f2c230; color:#fff !important; }
html.tema-vidro-escuro .pje-menu .pje-futuro { color:#7d7468 !important; }
html.tema-vidro-escuro .pje-futuro small { background:rgba(255,255,255,.06); color:#a89f91; }
html.tema-vidro-escuro .pje-rec { color:#a89f91; }
html.tema-vidro-escuro .pje-et.executando { background:rgba(242,194,48,.1); }
html.tema-vidro-escuro .pje-trilha { background:rgba(255,255,255,.035); border-bottom-color:rgba(255,255,255,.08); color:#ddd4c6; }
html.tema-vidro-escuro .pje-trilha b { color:#fff; } html.tema-vidro-escuro .pje-trilha svg { color:#f2c230; }
html.tema-vidro-escuro :is(.pje-grupo, .pje-numeros div) { background:rgba(255,255,255,.03); border-color:rgba(255,255,255,.09); border-radius:12px; }
html.tema-vidro-escuro .pje-grupo legend { color:#f4efe6; }
html.tema-vidro-escuro .pje-numeros small { color:#a89f91; } html.tema-vidro-escuro .pje-numeros b { color:#f7d867; }
html.tema-vidro-escuro :is(.pje-campo, .pje-etapa) { color:#ddd4c6 !important; }
html.tema-vidro-escuro :is(.pje-campo small, .pje-dica) { color:#a89f91; }
html.tema-vidro-escuro .pje-janela :is(input, select) { background:rgba(255,255,255,.05) !important; border-color:rgba(255,255,255,.14) !important;
  color:#f4efe6 !important; border-radius:6px; color-scheme:dark; }
html.tema-vidro-escuro .pje-janela :is(input, select):focus { border-color:#f2c230 !important; box-shadow:0 0 0 3px rgba(242,194,48,.16); outline:none; }
html.tema-vidro-escuro .pje-janela input[readonly] { background:rgba(255,255,255,.02) !important; color:#a89f91 !important; }
html.tema-vidro-escuro .pje-janela select option { background:#1b1b1f; color:#f4efe6; }
html.tema-vidro-escuro .pje-janela input[type=checkbox] { accent-color:#f2c230; }
html.tema-vidro-escuro .pje-abas { border-bottom-color:rgba(255,255,255,.1); }
html.tema-vidro-escuro .pje-abas a { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.1); color:#ddd4c6 !important; }
html.tema-vidro-escuro .pje-abas a.ativo { background:rgba(242,194,48,.14); color:#f7d867 !important; }
html.tema-vidro-escuro .pje-tabela-rolagem { border-color:rgba(255,255,255,.1); border-radius:8px; }
html.tema-vidro-escuro .pje-tabela th { background:#1d1c1f !important; color:#f2c230 !important; border-color:rgba(255,255,255,.08) !important; }
html.tema-vidro-escuro .pje-tabela td { background:rgba(255,255,255,.02); color:#ddd4c6 !important; border-color:rgba(255,255,255,.06); }
html.tema-vidro-escuro .pje-tabela tr:nth-child(even) td { background:rgba(255,255,255,.045); }
html.tema-vidro-escuro .pje-tabela a { color:#f7d867 !important; }
html.tema-vidro-escuro .pje-botao:not(.iniciar) { background:linear-gradient(180deg,#f7d867,#f0bb22); border-color:#d9a91c; color:#1a1406 !important; }
html.tema-vidro-escuro .pje-botao.claro { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.18); color:#f4efe6 !important; }
html.tema-vidro-escuro .pje-aviso { background:rgba(242,194,48,.07); border-color:rgba(242,194,48,.25); color:#f3e3b5; }
html.tema-vidro-escuro .pje-aviso.ok { background:rgba(46,158,91,.14); border-color:rgba(46,158,91,.4); color:#9be3b6; }
html.tema-vidro-escuro .pje-aviso.erro { background:rgba(192,57,43,.14); border-color:rgba(192,57,43,.45); color:#ffb4a8; }
html.tema-vidro-escuro .pje-soltar { background:rgba(255,255,255,.04); border-color:rgba(242,194,48,.45); color:#f3e3b5; }
html.tema-vidro-escuro .pje-soltar:hover { background:rgba(242,194,48,.08); border-color:#f2c230; }
html.tema-vidro-escuro .pje-soltar svg { color:#f2c230; }
html.tema-vidro-escuro #tabelaReclamantes .ok { color:#86dca6; } html.tema-vidro-escuro #tabelaReclamantes .falta { color:#ff9f8e; }
html.tema-vidro-escuro #tabelaReclamantes tr.sem-fichas td { color:#8d8579 !important; }

/* menu lateral: grupos recolhíveis ("Migração da planilha" e "Sistema"), fechados por padrão; o script do base.html fecha
   sozinho 30 s depois do último clique dentro do grupo. Grupo fechado com a tela atual dentro: título em destaque. */
.grupo-botao { display:flex; align-items:center; justify-content:space-between; width:100%; border:0; background:none; cursor:pointer;
  font-family:inherit; text-align:left; border-radius:8px; }
.grupo-botao:hover { background:rgba(255,255,255,.07); }
.grupo-botao svg { width:15px; height:15px; transition:transform .25s ease; }
.grupo-recolhivel.aberto .grupo-botao svg { transform:rotate(180deg); }
.grupo-recolhivel.tem-ativo:not(.aberto) .grupo-botao { color:var(--ouro2); }
.grupo-itens { overflow:hidden; max-height:0; opacity:0; margin-left:-14px; padding-left:14px; transition:max-height .3s ease, opacity .2s ease; }
.grupo-recolhivel.aberto .grupo-itens { max-height:340px; opacity:1; }
@media (prefers-reduced-motion: reduce) { .grupo-itens, .grupo-botao svg { transition:none; } }
/* Cálculos (Capa): seta à direita do item mostra os subitens (Tabelas e índices e Importar FC e FF), recolhidos por padrão */
.item-com-seta { position:relative; }
.item-com-seta > .item { padding-right:44px; }
.seta-sub { position:absolute; right:6px; top:50%; transform:translateY(-50%); width:32px; height:32px; padding:0; justify-content:center;
  color:inherit; border-radius:9px; }
.seta-sub svg { width:17px; height:17px; }
html.tema-vidro .lateral .seta-sub { color:#7a6252; }
.grupo-itens .subitem { padding-left:34px; font-size:14.5px; }

/* grupo Cálculos: um contorno luminoso único em volta dos nomes (pedido de 02/11/2026). Borda de vidro como a do cartão do
   logo, mais clara no alto à esquerda, e um brilho na cor dos raios do tema (--fx-raio-a) que percorre a borda devagar.
   A borda é um anel recortado com máscara; o brilho fica num elemento próprio (.contorno-luz) para o drop-shadow não ser
   recortado junto. */
@property --giro-luz { syntax:"<angle>"; inherits:false; initial-value:0deg; }
.bloco-luz { --luz-forte:rgba(255,255,255,.42); --luz-fraca:rgba(255,255,255,.07); --luz-fim:rgba(255,255,255,.2);
  position:relative; margin:4px -6px 8px; padding:5px; border-radius:16px;
  background:linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.015) 45%, rgba(255,255,255,.04));
  box-shadow:0 10px 26px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.06); }
.bloco-luz::before, .contorno-luz::before { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite:exclude; }
.bloco-luz::before { padding:1px; background:linear-gradient(150deg, var(--luz-forte), var(--luz-fraca) 38%, var(--luz-fraca) 68%, var(--luz-fim)); }
.contorno-luz { position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  filter:drop-shadow(0 0 2px var(--fx-raio-a)) drop-shadow(0 0 7px var(--fx-raio-a)); }
.contorno-luz::before { padding:1.5px; animation:giroLuz 8s linear infinite;
  background:conic-gradient(from var(--giro-luz), transparent 0deg 280deg, var(--fx-raio-a) 338deg, #fff 353deg, transparent 356deg); }
@keyframes giroLuz { to { --giro-luz:360deg; } }
.bloco-luz .item.ativo::before { left:-4px; top:10px; bottom:10px; }   /* o traço da tela atual fica dentro do contorno */
html.tema-vidro .bloco-luz { --luz-forte:rgba(255,255,255,.95); --luz-fraca:rgba(255,255,255,.5); --luz-fim:rgba(255,255,255,.75);
  background:rgba(255,255,255,.22); box-shadow:0 10px 26px rgba(110,70,40,.12); }
/* o mesmo contorno no cartão do logo (JP Calc by Jarques); o brilho dele anda meia volta defasado do grupo Cálculos */
.marca-calc.bloco-luz { padding:10px 12px; margin:0 -6px 14px; }
.marca-calc.bloco-luz .contorno-luz::before { animation-delay:-4s; }
@media (prefers-reduced-motion: reduce) { .contorno-luz::before { animation:none; --giro-luz:300deg; } }

/* Painel da migração: os cards viram em onda e formam uma tela só, como os recursos do site do HÉRCULES V (pedido de
   02/11/2026). Numa rodada o vídeo da automação do PJe-Calc, na outra a árvore com a frase digitada por cima. A tela só
   aparece dentro dos cards: a máscara com o desenho de cada card é montada pelo script do inicio.html. */
.mosaico-calc { position:relative; }
.mosaico-calc .card { transition:rotate .32s ease-in, transform .12s, box-shadow .12s; }
.mosaico-calc .card.girando { rotate:y 90deg; }
.mosaico-calc .card.virado > *, .mosaico-calc .card.virado::after { visibility:hidden; }
.mosaico-tela { position:absolute; inset:0; z-index:3; overflow:hidden; pointer-events:none; opacity:0; transition:opacity .5s;
  background:#0b0b0d; -webkit-mask-size:100% 100%; mask-size:100% 100%; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; }
.mosaico-calc.mostrando .mosaico-tela { opacity:1; }
.mosaico-tela :is(video, .mosaico-arvore) { position:absolute; inset:0; width:100%; height:100%; }
.mosaico-tela video { display:none; object-fit:cover; object-position:center top; }
.mosaico-calc.modo-video .mosaico-tela video { display:block; }
.mosaico-calc.modo-video :is(.mosaico-arvore, .mosaico-frase) { display:none; }
.mosaico-arvore { background:url("campo-arvore.jpg") center / cover; transition:transform 9s ease-out; }
.mosaico-calc.mostrando .mosaico-arvore { transform:scale(1.09); }
.mosaico-frase { position:absolute; inset:0; z-index:4; display:flex; align-items:center; justify-content:center; padding:20px;
  text-align:center; pointer-events:none; opacity:0; transition:opacity .5s; }
.mosaico-calc.mostrando .mosaico-frase { opacity:1; }
.mosaico-frase b { max-width:900px; font-size:clamp(28px, 4.2vw, 56px); line-height:1.15; color:#fff; min-height:1.2em;
  text-shadow:0 4px 26px rgba(0,0,0,.65), 0 1px 3px rgba(0,0,0,.8); }
.mosaico-frase b::after { content:"|"; margin-left:4px; animation:cursorPisca .8s steps(2) infinite; }
@keyframes cursorPisca { 50% { opacity:0; } }

/* ========== Central de Ajustes, lotes e versões (02/11/2026). Só as cores-base do sistema (var(--…)): vale nos 7 temas.
   Padrão + exceção: o que muda em relação à planilha fica dourado e pede o motivo; o resumo fica fixo ao lado. ========== */
[hidden] { display:none !important; }   /* o que o script esconde fica escondido, mesmo com display:flex/grid na classe */
.aj-grade { display:grid; grid-template-columns:minmax(0, 1fr) 360px; gap:20px; align-items:start; }
.aj-coluna { display:grid; gap:0; min-width:0; }
.aj-bloco { display:grid; grid-template-columns:minmax(0, 1fr); gap:14px; min-width:0; }
.aj-bloco > * { min-width:0; }   /* tabela larga (quadro de rubricas) rola dentro do cartão em vez de alargá-lo */
.aj-cab h2 { margin:0 0 4px; font-size:19px; } .aj-cab p { margin:0; color:var(--cinza); font-size:14px; max-width:70ch; }
.aj-grupo { margin:6px 0 0; font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--azul3); }
.aj-grupo small { font-weight:600; letter-spacing:0; text-transform:none; color:var(--cinza); margin-left:6px; }
.aj-banner { display:flex; gap:12px; align-items:flex-start; padding:14px 16px; margin-bottom:20px; border-radius:14px;
  border:1px solid var(--ouro); background:var(--ouro-claro); color:var(--texto); font-size:14.5px; }
.aj-banner svg { flex:none; width:22px; height:22px; color:var(--ouro); }
.aj-linha { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:flex-end; }
.aj-campo { display:grid; gap:5px; flex:1 1 200px; min-width:0; font-size:13.5px; font-weight:700; color:var(--texto2); }
.aj-campo.largo { flex-basis:100%; } .aj-campo small { font-weight:500; color:var(--cinza); }
.aj-campo input, .aj-campo select, .aj-campo textarea, .aj-linha > input { padding:9px 11px; font-size:14.5px; border-radius:9px; }
.aj-ferramentas input[type=search] { flex:1 1 220px; }
.aj-chaves { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:10px; }
.aj-chave { display:grid; gap:7px; align-content:start; padding:11px 12px; border-radius:12px; border:1px solid var(--linha);
  background:var(--superficie); transition:border-color .2s, background .2s; }
.aj-chave.alterado { border-color:var(--ouro); background:var(--ouro-claro); }
.aj-chave.nova { border-style:dashed; }
.aj-chave-linha { display:flex; gap:10px; align-items:center; cursor:pointer; }
.aj-chave .nome { font-weight:650; font-size:14.5px; line-height:1.3; }
.aj-chave .padrao { margin-left:auto; flex:none; font-size:11.5px; color:var(--cinza); white-space:nowrap; }
.aj-chave .ajuda { font-size:12.5px; color:var(--cinza); }
.aj-chave input[type=checkbox][role=switch] { appearance:none; -webkit-appearance:none; flex:none; width:38px; height:22px; margin:0;
  border-radius:999px; background:var(--linha); position:relative; cursor:pointer; transition:background .2s; border:0; padding:0; }
.aj-chave input[type=checkbox][role=switch]::after { content:""; position:absolute; top:3px; left:3px; width:16px; height:16px;
  border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3); transition:transform .2s; }
.aj-chave input[type=checkbox][role=switch]:checked { background:var(--azul3); }
.aj-chave input[type=checkbox][role=switch]:checked::after { transform:translateX(16px); }
.aj-chave input[type=checkbox][role=switch]:focus-visible { outline:2px solid var(--ouro); outline-offset:2px; }
.aj-chave select { padding:7px 9px; font-size:14px; border-radius:8px; }
.aj-motivo { padding:8px 10px !important; font-size:13.5px !important; border-radius:8px !important; border:1px solid var(--ouro) !important; }
.aj-motivo:placeholder-shown { border-color:var(--aviso) !important; }
.aj-seg { display:inline-flex; flex-wrap:wrap; gap:4px; padding:3px; border-radius:10px; border:1px solid var(--linha); background:var(--linha2); }
.aj-seg label { display:inline-flex; gap:6px; align-items:center; padding:6px 10px; border-radius:8px; cursor:pointer; font-size:13.5px;
  font-weight:600; color:var(--texto2); }
.aj-seg input { width:auto; margin:0; accent-color:var(--azul3); }
.aj-seg label:has(input:checked) { background:var(--superficie); color:var(--texto); box-shadow:0 1px 3px rgba(0,0,0,.12); }
.aj-seg.pequeno label { padding:4px 8px; font-size:12.5px; }
.aj-sub { display:grid; gap:10px; padding-top:6px; border-top:1px dashed var(--linha); }
.aj-check { display:flex; gap:8px; align-items:center; font-size:14px; } .aj-check input { width:auto; margin:0; }
.aj-reclamantes { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:8px; max-height:340px; overflow:auto; padding:2px; }
.aj-reclamante { display:grid; grid-template-columns:auto auto minmax(0, 1fr); gap:2px 8px; align-items:center; padding:8px 10px;
  border-radius:10px; border:1px solid var(--linha); background:var(--superficie); cursor:pointer; font-size:14px; }
.aj-reclamante input { width:auto; margin:0; grid-row:span 2; accent-color:var(--azul3); }
.aj-reclamante .num { grid-row:span 2; font-weight:800; color:var(--cinza); font-variant-numeric:tabular-nums; }
.aj-reclamante b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .aj-reclamante small { color:var(--cinza); grid-column:3; }
.aj-reclamante:has(input:checked) { border-color:var(--azul3); background:var(--ouro-claro); }
.aj-reclamante.sem { opacity:.55; cursor:not-allowed; }
.aj-arquivo { display:flex; gap:12px; align-items:center; padding:16px; border:2px dashed var(--linha); border-radius:12px; cursor:pointer; }
.aj-arquivo input { flex:1 1 200px; }
.aj-botoes-novo { display:flex; flex-wrap:wrap; gap:8px; }
.aj-form { display:grid; gap:12px; padding:16px; border-radius:12px; border:1px solid var(--ouro); background:var(--ouro-claro); }
.aj-form h3 { margin:0; font-size:16px; }
.aj-erro { margin:0; color:var(--erro); font-weight:700; font-size:14px; }
.aj-lancamentos { display:grid; gap:8px; }
.aj-lancamento { display:grid; grid-template-columns:auto minmax(0, 1fr) auto; gap:12px; align-items:start; padding:11px 13px;
  border-radius:12px; border:1px solid var(--ouro); background:var(--ouro-claro); }
.aj-lancamento .aj-ic { width:32px; height:32px; border-radius:9px; display:grid; place-items:center; font-weight:800;
  background:linear-gradient(135deg, var(--ouro2), var(--ouro)); color:#1b1606; }
.aj-lancamento b { display:block; } .aj-lancamento span, .aj-lancamento small { display:block; font-size:13px; color:var(--texto2); }
.aj-tirar { border:0; background:none; color:var(--cinza); cursor:pointer; padding:4px 7px; border-radius:7px; font-size:14px; }
.aj-tirar:hover { color:var(--erro); background:var(--erro-fundo); }
.aj-resumo { position:sticky; top:16px; display:grid; gap:0; min-width:0; }
.aj-numeros { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:8px; }
.aj-numeros div { padding:10px 8px; border-radius:10px; border:1px solid var(--linha); text-align:center; background:var(--fundo); }
.aj-numeros b { display:block; font-size:21px; font-variant-numeric:tabular-nums; color:var(--azul3); }
.aj-numeros small { color:var(--cinza); font-size:11.5px; }
.aj-plano { margin:0; font-size:13.5px; color:var(--texto2); } .aj-plano:empty { display:none; }
.aj-mudancas { margin:0; padding:0; list-style:none; display:grid; gap:7px; max-height:340px; overflow:auto; }
.aj-mudancas li { padding:8px 10px; border-radius:9px; background:var(--fundo); border-left:3px solid var(--ouro); font-size:13.5px; }
.aj-mudancas li.falta { border-left-color:var(--aviso); } .aj-mudancas li.neutro { border-left-color:var(--linha); }
.aj-mudancas li em { display:block; font-style:normal; font-size:12px; color:var(--cinza); }
.aj-mudancas li.falta em { color:var(--aviso); font-weight:700; }
.aj-falta { margin:0; }
.aj-conferencia { cursor:default; }
.aj-modelos { display:flex; flex-wrap:wrap; gap:6px; }
.aj-modelo { display:inline-flex; align-items:center; border:1px solid var(--linha); border-radius:999px; background:var(--superficie); }
.aj-modelo button:first-child { border:0; background:none; padding:6px 4px 6px 12px; cursor:pointer; font:inherit; font-size:13.5px; color:var(--texto); }
.aj-lotes { margin:0; padding:0; list-style:none; display:grid; gap:8px; font-size:13.5px; }
.aj-lotes li { display:flex; flex-wrap:wrap; gap:4px 8px; align-items:center; }
.aj-sit { display:inline-block; padding:2px 9px; border-radius:999px; font-size:12px; font-weight:700; background:var(--fundo); color:var(--texto2); }
.aj-sit.concluido { background:var(--ok-fundo); color:var(--ok); } .aj-sit.erro, .aj-sit.cancelado { background:var(--erro-fundo); color:var(--erro); }
.aj-sit.conferencia { background:var(--aviso-fundo); color:var(--aviso); } .aj-sit.executando { background:var(--info-fundo); color:var(--info); }
.aj-conferir { border-color:var(--ouro) !important; } .aj-conferir.devolvido { border-color:var(--erro) !important; }
.aj-diario { margin:0; padding:0; list-style:none; display:grid; gap:8px; }
.aj-diario li { display:grid; grid-template-columns:150px minmax(0, 1fr); gap:10px; font-size:13.5px; padding-bottom:8px; border-bottom:1px solid var(--linha2); }
.aj-diario time { color:var(--cinza); font-size:12.5px; font-variant-numeric:tabular-nums; }
.aj-diario em { display:block; font-style:normal; color:var(--cinza); font-size:12.5px; }
.aj-dif.mais { color:var(--ok); font-weight:700; } .aj-dif.menos { color:var(--erro); font-weight:700; }
.aj-mudou input, .aj-mudou select { border-color:var(--ouro) !important; background:var(--ouro-claro) !important; }
.aj-rubricas-rolagem { max-height:380px; max-width:100%; overflow:auto; }
#planilha .aj-campo { flex-basis:150px; }
.aj-rubricas { font-size:13px; } .aj-rubricas th { position:sticky; top:0; z-index:1; font-size:11.5px; white-space:nowrap; }
.aj-rubricas td { padding:5px 8px; } .aj-rubricas td:first-child { white-space:nowrap; font-weight:600; }
.aj-rubricas td:not(:first-child) { text-align:center; } .aj-rubricas input { width:auto; margin:0; accent-color:var(--azul3); }
.aj-rubricas td.alterado { background:var(--ouro-claro); box-shadow:inset 0 0 0 1px var(--ouro); }
@media (max-width:1100px) { .aj-grade { grid-template-columns:minmax(0, 1fr); } .aj-resumo { position:static; } }
@media (max-width:640px) { .aj-diario li { grid-template-columns:minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .aj-chave, .aj-chave input::after { transition:none; } }

/* Tela de entrada (02/11/2026): vídeo da automação atrás, escurecido; à esquerda a frase e os cards das qualidades que
   viram (script do entrar.html); o quadro de login à direita. Em tela estreita: só o login, no meio, com o vídeo atrás. */
.video-entrada { position:fixed; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center top;
  filter:brightness(.38) saturate(.85) blur(1.5px); transform:scale(1.03); pointer-events:none; }
.tela-entrar-calc.com-video { background:#060607; }
.com-video .fundo-ondas { opacity:.7; }
.com-video::before { content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;   /* sombra atrás da frase e dos cards */
  background:linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.25) 55%, transparent 80%); }
.vitrine { display:none; }
@media (min-width:1000px) {
  .tela-entrar-calc.com-video { grid-template-columns:minmax(0, 640px) auto; justify-content:space-between; align-items:center;
    gap:5vw; padding:40px 6vw; }
  .com-video .vitrine { display:block; color:#f4efe6; }
  .com-video :is(.moldura-vidro, .cartao-entrar) { justify-self:end; }
  .com-video .moldura-vidro .cartao-entrar { justify-self:auto; }
}
.vitrine-titulo { margin:0; color:#fff !important; font-size:clamp(34px, 3.6vw, 54px);   /* !important: os temas pintam todo h2 */ line-height:1.08; font-weight:800; letter-spacing:-.02em;
  text-shadow:0 4px 24px rgba(0,0,0,.6); }
.vitrine-titulo span { color:var(--fx-raio-a); }
.vitrine-sub { margin:14px 0 26px; font-size:15px; color:#cfc6b6; text-shadow:0 2px 10px rgba(0,0,0,.6); }
.qualidades { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
:is(.qualidade, .frente).bloco-luz { margin:0; padding:18px 18px 16px; min-height:138px; border-radius:16px; color:#f4efe6;
  background:linear-gradient(160deg, rgba(30,30,34,.62), rgba(14,14,16,.5)); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  box-shadow:0 14px 34px rgba(0,0,0,.45); transition:rotate .32s ease-in; }
.qualidade.girando { rotate:y 90deg; }
.qualidade .contorno-luz::before { animation-delay:var(--atraso, 0s); }
.qualidade-conteudo { display:grid; gap:6px; }
.qualidade-icone { display:grid; place-items:center; width:38px; height:38px; margin-bottom:4px; border-radius:11px;
  background:linear-gradient(135deg, var(--ouro2, #f7d867), var(--ouro, #f2c230)); color:#1a1406; }
.qualidade-icone svg { width:20px; height:20px; }
.qualidade b { font-size:16.5px; line-height:1.25; }
.qualidade small { font-size:13.5px; line-height:1.4; color:#cfc6b6; }
@media (prefers-reduced-motion: reduce) { .qualidade, .frente { transition:none; } }

/* Tela de entrada em tela grande (pedido de 02/11/2026): além das 4 qualidades, as 8 frentes do sistema — as mesmas do
   Painel, sem números (esta tela é pública) e com um ícone no anel. A cada 30 s os cards viram em onda e formam a árvore com
   a frase (script do entrar.html; mesmo efeito do Painel, .mosaico-*). Em tela menor, só as 4 qualidades, como antes. */
.frentes { display:none; }
.frente.bloco-luz { min-height:0; padding:16px 18px; display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:8px 14px; align-content:start; }
.frente.girando { rotate:y 90deg; }
.mosaico-entrada :is(.qualidade, .frente).virado > * { visibility:hidden; }
.frentes .frente b { align-self:center; font-size:15.5px; line-height:1.25; }   /* .frentes: não pega o .marca-face.frente do calc.css */
.frentes .frente small { display:none; grid-column:1 / -1; font-size:13.5px; line-height:1.4; color:#cfc6b6; }
.frente-anel { position:relative; display:grid; place-items:center; width:46px; height:46px; border-radius:50%; color:var(--fx-raio-a); }
.frente-anel::before { content:""; position:absolute; inset:0; border-radius:50%;
  background:conic-gradient(from 200deg, var(--fx-raio-a), rgba(255,255,255,.1) 55%, var(--fx-raio-a));
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px));
  mask:radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px)); }
.frente-anel svg { width:20px; height:20px; }
@media (min-width:1440px) and (min-height:700px) {
  .tela-entrar-calc.com-video { grid-template-columns:minmax(0, 1180px) auto; gap:3vw; padding:32px 4vw; }
  .com-video .qualidades { grid-template-columns:repeat(4, minmax(0, 1fr)); }
  .com-video .frentes { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:16px; margin-top:16px; }
}
@media (min-width:1440px) and (min-height:700px) and (max-height:859px) {   /* notebook: título menor para caber sem rolar */
  .vitrine-titulo { font-size:42px; } .vitrine-sub { margin:10px 0 18px; }
}
@media (min-width:1760px) and (min-height:860px) {   /* tela grande: as frentes com a descrição, como no Painel */
  .frentes .frente small { display:block; } .frente-anel { width:56px; height:56px; } .frente-anel svg { width:24px; height:24px; }
}

/* Notas (02/11/2026): observações do projeto agrupadas por assunto; o texto simples vira parágrafos e listas (notas.py).
   Mesma grade da Central de Ajustes: as notas à esquerda e o quadro "Nova nota" fixo ao lado. */
.notas-indice { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px; }
.notas-indice a { display:inline-flex; gap:7px; align-items:center; padding:6px 13px; border-radius:999px; border:1px solid var(--linha);
  background:var(--superficie); color:var(--texto); font-size:13.5px; font-weight:650; text-decoration:none; }
.notas-indice a:hover { border-color:var(--azul3); }
.notas-indice a small { color:var(--cinza); font-weight:800; font-variant-numeric:tabular-nums; }
.notas-indice a.nova { border-color:var(--ouro); background:var(--ouro-claro); }
.notas-indice svg { width:15px; height:15px; }
.nota-grupo { margin:4px 0 10px; scroll-margin-top:16px; }
.nota { scroll-margin-top:16px; }
.nota:target { border-color:var(--ouro); }
.nota-texto { font-size:15px; line-height:1.6; color:var(--texto); }
.nota-texto p { margin:0 0 8px; }
.nota-texto :is(ul, ol) { margin:0 0 8px; padding-left:22px; display:grid; gap:6px; }
.nota-texto ol li::marker { font-weight:800; color:var(--azul3); }
.nota-texto > :last-child { margin-bottom:0; }
.nota-rodape { margin:0; font-size:12.5px; }
.nota-editar summary { display:inline-flex; gap:6px; align-items:center; cursor:pointer; font-size:13.5px; font-weight:700; color:var(--azul3); }
.nota-editar summary svg { width:15px; height:15px; }
.nota-editar[open] summary { margin-bottom:12px; }
.nota-form { display:grid; gap:12px; }
