:root{
		  --bg:#f5f5f7; --surface:#ffffff; --ink:#1d1d1f; --ink2:#6e6e73; --ink3:#a1a1a6;
		  --line:rgba(0,0,0,.08); --line2:rgba(0,0,0,.05);
		  		  --brand-08:color-mix(in srgb, var(--brand) 8%, transparent);
		  --brand-12:color-mix(in srgb, var(--brand) 12%, transparent);
		  --brand-20:color-mix(in srgb, var(--brand) 22%, transparent);
		  --r-sm:10px; --r-md:14px; --r-lg:18px; --r-xl:24px;
		  --sh-md:0 8px 24px rgba(0,0,0,.07);
		  --sh-lg:0 24px 60px rgba(0,0,0,.12);
		  --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
		  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
		  --bottombar-h:60px;
		}
		*{box-sizing:border-box;margin:0;padding:0}
		html{touch-action:manipulation}/* sem zoom por duplo-toque */
		body.papp-body{font-family:var(--font)!important;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5;overflow-x:hidden}
		body.papp-body input,body.papp-body select,body.papp-body textarea,body.papp-body button{font-family:inherit!important}
		img{display:block;max-width:100%}
		button{font:inherit;border:0;cursor:pointer;background:none;color:inherit}
		a{color:inherit;text-decoration:none}
		input,select,textarea{font:inherit;color:inherit}
		:focus-visible{box-shadow:0 0 0 3px var(--brand-20);border-radius:8px}

		.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:980px;
		  padding:11px 22px;font-size:15px;font-weight:500;letter-spacing:-.01em;transition:all .15s;white-space:nowrap;text-decoration:none}
		.btn:active{transform:scale(.97)}
		.btn-primary{background:var(--brand);color:#fff}
		.btn-primary:hover{filter:brightness(1.08)}
		.btn-ghost{background:rgba(0,0,0,.05);color:var(--ink)}
		.btn-ghost:hover{background:rgba(0,0,0,.085)}
		.btn-danger{background:rgba(255,59,48,.1);color:#c0392b}
		.btn-danger:hover{background:rgba(255,59,48,.18)}
		.btn-sm{padding:8px 16px;font-size:13.5px}
		.btn:disabled{opacity:.6;cursor:default}
		/* 🔲 BOTÃO COM ARESTA (v1.4.1988) — o dono olhou uma fileira de `.btn-ghost` e disse que não
		   dava pra saber que havia botão ali. Ele estava certo: `.btn-ghost` é um cinza de 5% SEM
		   borda, e sobre o branco do cartão não sobra aresta nenhuma. Este tem anel interno e a cor
		   da marca — é o mesmo desenho do `.btn-vc`, sem a animação, que ali existe por outro motivo.
		   Some do caminho quando está desligado, em vez de ficar convidando a um clique que erra. */
		.btn-out{background:var(--brand-08);color:var(--brand);box-shadow:0 0 0 1px var(--brand-20) inset;font-weight:600}
		.btn-out:hover{background:var(--brand-12)}
		.btn-out:disabled{background:transparent;color:var(--ink3);box-shadow:0 0 0 1px var(--line) inset}
		/* O número da ordem dentro do botão: conta, não grita. Sem isto ele sai com o mesmo peso
		   do rótulo e os dois brigam pela mesma atenção. */
		.btn-out>b{font-weight:700;opacity:.55;font-variant-numeric:tabular-nums}
		/* Botão "Contato" (salvar vCard) — brilha pra ter vida e convidar ao toque */
		.btn-vc{position:relative;overflow:hidden;background:var(--brand-08);color:var(--brand);box-shadow:0 0 0 1px var(--brand-20) inset;animation:pilarVcGlow 3s ease-in-out infinite}
		.btn-vc:hover{background:var(--brand-12)}
		.btn-vc::after{content:"";position:absolute;top:0;left:-140%;width:55%;height:100%;pointer-events:none;transform:skewX(-18deg);background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);animation:pilarVcShine 3s ease-in-out infinite}
		@keyframes pilarVcShine{0%,55%{left:-140%}100%{left:160%}}
		@keyframes pilarVcGlow{0%,100%{box-shadow:0 0 0 1px var(--brand-20) inset,0 0 0 0 rgba(0,0,0,0)}50%{box-shadow:0 0 0 1px var(--brand-20) inset,0 0 13px var(--brand-20)}}
		@media (prefers-reduced-motion:reduce){.btn-vc,.btn-vc::after{animation:none}}
		/* 🚪 «Suas portas» — faixa sob o cabeçalho (fora do #pMain). Só a porta da ÁREA ATUAL se mexe
		   (.pporta-on): o brilho que passa é o MESMO do .btn-vc (pilarVcShine) e o halo é um ::before
		   INTERNO animando só a opacidade — nada de box-shadow pulsando nem reflow dos vizinhos. */
		/* 🤏 (1.4.2198) MENOR, pedido do dono: «visível, mas ocupando menos espaço». Os botões da faixa ganham
		   escala própria (menos recheio e letra um ponto menor), sem mexer no .btn-sm do resto do painel. */
		/* 🚪 (1.4.2800→2801) «Suas portas» = CARTÃO com cabeçalho, idêntico ao mockup aprovado: selo + título + subtítulo + Recolher/Abrir, e os links abaixo. Recolhe guardando a DATA (reabre no dia seguinte). */
		.pportas{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(20,12,18,.04),0 10px 24px -16px rgba(20,12,18,.12);margin:14px 16px 0;overflow:hidden}
		.pportas[hidden]{display:none}
		.pportas-toggle{width:100%;display:flex;align-items:center;gap:12px;padding:12px 15px;background:transparent;border:0;cursor:pointer;text-align:left;font:inherit;color:inherit}
		.pportas-toggle:hover{background:var(--bg)}
		.pportas-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
		.pportas-hic{width:34px;height:34px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--brand-08)}
		.pportas-htx{flex:1;min-width:0}
		.pportas-ttl{display:block;font-size:14.5px;font-weight:800;letter-spacing:-.015em;color:var(--ink)}
		.pportas-sub{display:block;font-size:11.5px;color:var(--ink3)}
		.pportas-sum{display:none;font-size:12px;color:var(--ink2)}
		.pportas-sum .pdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 5px 0 1px;vertical-align:middle;background:#1f9d55}
		.pportas-sum .pdot.off{background:var(--ink3);margin-left:9px}
		.pportas-hact{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:12px;font-weight:700;color:var(--ink3)}
		.pportas-chev{font-size:11px;line-height:1;transition:transform .2s ease}
		.pportas.pportas-col .pportas-chev{transform:rotate(-90deg)}
		.pportas.pportas-col .pportas-sub{display:none}
		.pportas.pportas-col .pportas-sum{display:block}
		.pportas-hlbl::after{content:"Recolher"}
		.pportas.pportas-col .pportas-hlbl::after{content:"Abrir"}
		.pportas-pills{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:2px 12px 13px}
		.pportas.pportas-col .pportas-pills{display:none}
		@media (prefers-reduced-motion:reduce){.pportas-chev{transition:none}}
		.pportas .btn-sm{padding:5px 11px;font-size:12.5px;gap:5px}
		.pporta{display:inline-flex;align-items:stretch;gap:2px;flex:0 1 auto;min-width:0}
		.pportas .pporta-abrir{text-decoration:none;white-space:nowrap;border-radius:980px 0 0 980px;padding-right:9px}
		.pportas .pporta-copy{border-radius:0 980px 980px 0;padding:5px 9px 5px 7px;font-size:12px;line-height:1}
		/* Só quando existe o 3º botão (Compartilhar): o Copiar deixa de ser a ponta arredondada e vira o meio. */
		.pportas .pporta-copy-mid{border-radius:0;padding:5px 7px;font-size:12px;line-height:1}
		.pportas .pporta-share{border-radius:0 980px 980px 0;padding:5px 9px 5px 7px;text-decoration:none;font-size:12px;line-height:1}
		/* 🚪 o interruptor (no ar / fora do ar): a ponta arredondada quando existe; o Compartilhar vira o meio */
		.pportas .pporta-share-mid{border-radius:0;padding:5px 7px}
		.pportas .pporta-sw{border-radius:0 980px 980px 0;padding:5px 9px 5px 7px;display:inline-flex;align-items:center;line-height:1}
		.pporta-sw-k{display:inline-block;width:24px;height:14px;border-radius:999px;background:#1f9d55;position:relative;transition:background .15s}
		.pporta-sw-k:after{content:"";position:absolute;top:2px;right:2px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25)}
		.pporta-sw:hover .pporta-sw-k{background:#178a49}
		.pporta-sw:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
		.pporta-tipo{position:relative}
		/* 🔴 (v1.4.1824) `.btn{display:inline-flex}` VENCE o [hidden] do navegador (a mesma armadilha de Metas/Panorama): sem esta linha o link vazio e o Copiar sem url apareceriam antes de gerar o link */
		.pporta-tipo .pporta-tipo-link[hidden],.pporta-tipo .pporta-copy[hidden]{display:none}
		.pporta-dd{white-space:nowrap}
		.pportas .pporta-email-solo{border-radius:980px;padding-right:11px}
		.pportas .pporta-email .pporta-dd-min{border-radius:0 980px 980px 0;padding:5px 9px 5px 7px}
		.pportas .pporta-dd-solo{border-radius:980px;padding-right:11px}
		.pportas .pporta-dd-min{border-radius:0;padding:5px 7px}
		.pporta-dd-min .pporta-dd-base,.pporta-dd-min .pporta-dd-rot{display:none}
		.pporta-dd-rot{font-weight:600;opacity:.75}
		.pporta-dd b{font-weight:700;opacity:.8}
		.pporta-menu{position:fixed;z-index:60;min-width:224px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.14);padding:6px;display:flex;flex-direction:column;gap:2px}
		.pporta-menu[hidden]{display:none}
		.pporta-item{border:0;background:transparent;text-align:left;padding:9px 12px;border-radius:10px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--ink);white-space:nowrap}
		.pporta-item:hover,.pporta-item:focus-visible,.pporta-item[aria-current="true"]{background:var(--brand-08);color:var(--brand)}
		.pporta-off{border:1px dashed var(--line);background:transparent;color:var(--ink2);white-space:nowrap;flex:0 1 auto;min-width:0}
		.pporta-off b{color:var(--brand);font-weight:700}
		.pporta-on{position:relative;overflow:hidden;background:var(--brand-08);color:var(--brand);box-shadow:0 0 0 1px var(--brand-20) inset}
		.pporta-on:hover{background:var(--brand-12)}
		.pporta-on::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 14px var(--brand-20);opacity:0;animation:pilarPortaHalo 3s ease-in-out infinite}
		.pporta-on::after{content:"";position:absolute;top:0;left:-140%;width:55%;height:100%;pointer-events:none;transform:skewX(-18deg);background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);animation:pilarVcShine 3s ease-in-out infinite}
		@keyframes pilarPortaHalo{0%,100%{opacity:0}50%{opacity:1}}
		@media (prefers-reduced-motion:reduce){.pporta-on::before,.pporta-on::after{animation:none}}
		/* 📣 (2026-09-19) ÊNFASE PRA DIVULGAR — cor PRÓPRIA (não var(--brand), que é a cor da marca de
		   cada tenant e significa "você está aqui"): esta é "vale a pena compartilhar", uma coisa fixa
		   que precisa ler igual em qualquer conta, mesmo numa cuja marca já seja laranja/amarela.
		   :not(.pporta-on) cede a vez pro brilho de "seção atual" quando os dois calham de coincidir. */
		.pporta-abrir-destaque:not(.pporta-on){background:#fff6e9;color:#8a4b00;box-shadow:0 0 0 1px rgba(138,75,0,.22) inset}
		.pporta-abrir-destaque:not(.pporta-on):hover{background:#ffefd6}
		@media (max-width:959px){
			.pportas{margin:12px 12px 0}
			.pportas-toggle{padding:11px 13px}
			.pportas-pills{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 13px 12px}
			.pportas-pills::-webkit-scrollbar{display:none}
			.pporta,.pporta-off{flex:0 0 auto}
		}
		/* 🔽 (1.4.2802) A LEGENDA sob as pílulas — explica o recolher e o que o tooltip de cada porta mostra;
		   some junto quando a faixa recolhe (recolhida é uma linha só). */
		.pportas-cap{display:block;margin:0 13px;padding:9px 2px 13px;border-top:1px solid var(--line2);font-size:11.5px;line-height:1.6;color:var(--ink3)}
		.pportas-cap b{color:var(--ink2);font-weight:700}
		.pportas.pportas-col .pportas-cap{display:none}
		/* 📣 (1.4.2802) O popup COMPARTILHAR de uma porta (QR + copiar + WhatsApp + abrir + imprimir + Link da Bio).
		   Reusa .pmodal-ov/.pmodal-card do painel; o miolo é próprio. O QR vem do servidor SÓ quando o popup abre. */
		.pshare-hd{display:flex;align-items:center;gap:11px;margin-bottom:16px}
		.pshare-hic{width:34px;height:34px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--brand-08)}
		.pshare-htx{flex:1;min-width:0}
		.pshare-htx h3{font-size:16px;font-weight:800;letter-spacing:-.015em;color:var(--ink)}
		.pshare-htx small{display:block;font-size:11.5px;color:var(--ink3);font-weight:500}
		.pshare-x{border:0;background:var(--line2);color:var(--ink2);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:19px;line-height:1;flex:none}
		.pshare-x:hover{background:var(--line);color:var(--ink)}
		.pshare-qr{width:190px;height:190px;margin:2px auto 14px;border-radius:14px;border:1px solid var(--line);padding:12px;background:#fff;box-sizing:border-box}
		.pshare-qr svg{width:100%;height:100%;display:block}
		.pshare-qr.pshare-load{display:flex;align-items:center;justify-content:center;color:var(--ink3);font-size:12px;text-align:center}
		.pshare-url{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:6px 6px 6px 13px;background:var(--bg);margin-bottom:12px}
		.pshare-url code{flex:1;min-width:0;font-size:12px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
		.pshare-acts{display:grid;grid-template-columns:1fr 1fr;gap:9px}
		.pshare-act{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:11px;font-size:12.5px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:9px;color:var(--ink);text-align:left;text-decoration:none}
		.pshare-act:hover{border-color:var(--brand-20);background:var(--brand-08)}
		.pshare-act[disabled]{opacity:.6;cursor:default}
		.pshare-ai{font-size:16px;line-height:1;flex:none}

		.field{margin-bottom:14px}
		.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink2);margin-bottom:6px}
		.field input,.field select,.field textarea,.pinput{width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
		  padding:10px 12px;font-size:14.5px}
		.field input:focus,.field select:focus,.pinput:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-12)}
		/* `.pinput` era ÓRFÃ: usada em 10 lugares do Admin (cofre de prova, boas-vindas,
		   pré-cadastro) e sem uma linha de CSS em lugar nenhum — os campos saíam com a borda
		   crua do navegador no meio de uma tela estilizada. Entra aqui, no mesmo seletor do
		   `.field`, em vez de virar uma regra gêmea que amanhã diverge. O `width:100%` é
		   neutralizado caso a caso pelos `style="width:130px"` já existentes (inline vence). */
		.pilar-check{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;color:var(--ink2)}
		.pilar-check input{margin-top:2px}
		/* swatches de cor (modal genérico, ex.: Editar empresa → Cor da marca) — mesmo visual do cadastro. */
		.swatches{display:flex;gap:10px;flex-wrap:wrap}
		.swatch{width:32px;height:32px;border-radius:50%;cursor:pointer;position:relative;transition:transform .15s}
		.swatch:hover{transform:scale(1.12)}
		.swatch.on::after{content:"";position:absolute;inset:-5px;border:2px solid var(--ink);border-radius:50%}
		.pm-imgup{display:flex;gap:12px;align-items:center;padding:8px;border:1px dashed var(--line);border-radius:12px;transition:border-color .12s,background .12s}
		.pm-imgup.pm-imgdrag{border-color:var(--brand);border-style:solid;background:color-mix(in srgb,var(--brand) 8%,transparent)}
		.pm-imgup-prev{width:58px;height:58px;border-radius:9px;flex:none;background:var(--surface2,#f1efe9);background-size:cover;background-position:center;border:1px solid var(--line)}
		.pm-imgup-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
		.pm-imgup-row{display:flex;align-items:center;gap:10px}
		.pm-imgup-hint{font-size:11.5px;color:var(--ink3,#9a9a9a)}

		/* ---------- layout raiz: mobile-first (base = mobile) ---------- */
		.papp{min-height:100vh;display:flex;flex-direction:column}
		/* ====================== O MENU (barra lateral no computador, folha no celular) ======================
		   Até aqui todo o CSS do menu vivia dentro de @media(min-width:960px), porque a barra era
		   `display:none` no celular e o menu de lá era outra coisa (a tira de abas do rodapé). Com um
		   menu só, estas regras são a BASE, e o bloco de 960px guarda apenas o que é do computador:
		   a coluna fixa de 330px. */
		.psidebar{position:fixed;inset:0;z-index:55;display:flex;flex-direction:column;
		  background:var(--surface,#fff);overflow-y:auto;overscroll-behavior:contain;
		  /* 🔴 `viewport-fit=cover` + `position:fixed;top:0` = a folha começa EMBAIXO do relógio e da
		     ilha do aparelho. Só a barra de baixo tinha área segura; a lateral nunca precisou, porque
		     no celular ela não existia. Agora existe. */
		  padding:calc(16px + env(safe-area-inset-top)) 14px calc(var(--bottombar-h) + 24px);
		  transform:translateX(-100%);visibility:hidden;
		  /* visibility com DELAY, não com duração: abrindo ela vira visible no mesmo quadro (senão a
		     folha deslizaria invisível por 220ms e o toque pareceria perdido); fechando, só some
		     depois que o deslize termina. Medido no navegador: com `visibility .22s` a folha ainda
		     lia `hidden` logo após o clique. */
		  transition:transform .22s ease,visibility 0s linear .22s}
		body.pnav-folha-on .psidebar{transform:none;visibility:visible;transition:transform .22s ease,visibility 0s}
		body.pnav-folha-on{overflow:hidden}
		@media(prefers-reduced-motion:reduce){.psidebar{transition:none}}
		.pnav-fechar{position:absolute;top:calc(12px + env(safe-area-inset-top));right:12px;width:36px;height:36px;border-radius:50%;
		  border:1px solid var(--line);background:var(--surface,#fff);color:var(--ink2);font-size:21px;line-height:1;display:grid;place-items:center;z-index:3}

		.pbrand{display:flex;align-items:center;gap:11px;padding:4px 44px 0 8px;margin-bottom:16px}
		.pbinfo{min-width:0}
		.pbinfo b{display:block;font-size:14px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
		.pbinfo span{display:block;font-size:11px;color:var(--ink3);font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

		/* 🔎 busca do menu + 👁️ atalho de organizar, lado a lado */
		.pnav-topo{display:flex;align-items:center;gap:8px;margin:0 0 4px}
		.pnav-topo .pnav-busca{flex:1;min-width:0;margin:0}
		.pnav-olho,.pnav-compactar{flex:none;width:42px;height:42px;border:1px solid var(--line);border-radius:11px;color:var(--ink3);display:grid;place-items:center;background:var(--surface,#fff)}
		.pnav-olho:hover,.pnav-compactar:hover{color:var(--ink2);background:rgba(0,0,0,.04)}
		.pnav-olho[aria-pressed="true"],.pnav-compactar[aria-pressed="true"]{color:var(--brand);border-color:var(--brand);background:var(--brand-12)}
		/* 🔡 (1.4.2616) o botão mostra a AÇÃO: compacto (padrão, não-.on) → ícone de CRESCER; ampliado
		   (.on) → ícone de ENCOLHER. `.on` = o estado não-padrão (ampliado). */
		.pnav-compactar .pc-encolher{display:none}
		.pnav-compactar.on .pc-crescer{display:none}
		.pnav-compactar.on .pc-encolher{display:block}
		.pnav-olho[aria-pressed="true"] .pnav-olho-risco{display:none}
		.pnav-busca{display:flex;align-items:center;gap:8px;margin:0 0 4px;padding:0 10px;border:1px solid var(--line);border-radius:11px;background:var(--surface,#fff);min-height:42px}
		.pnav-busca > svg{flex:none;color:var(--ink3)}
		.pnav-busca input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);padding:10px 0;
		  font-size:16px} /* 16px: abaixo disso o iOS dá zoom ao focar e a tela salta */
		.pnav-busca input:focus{outline:none}
		.pnav-busca input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}
		.pnav-busca-x{display:none;flex:none;width:26px;height:26px;border-radius:50%;color:var(--ink3);font-size:18px;line-height:1}
		body.pnav-buscando .pnav-busca-x{display:grid;place-items:center}
		.pnav-vazio{margin:10px;font-size:12.5px;color:var(--ink3)}

		/* 🗂️ (1.4.2610) CABEÇALHO DE GRUPO — uma LINHA flex com o toggle (abre/fecha) e o cadeado
		   (trava) lado a lado, cada um com o seu alvo de clique. No celular é alvo de toque, por isso
		   ícone, altura e contador. O espaço ENTRE categorias é o `margin-top` da linha. */
		.pnav-label{font-size:10.5px;font-weight:800;letter-spacing:.08em;color:var(--ink2);text-transform:uppercase;padding:0 10px;margin:14px 0 7px}
		.pnav-ghead-row{display:flex;align-items:stretch;gap:4px;margin-top:8px}
		.pnav-grupo:first-child .pnav-ghead-row{margin-top:2px}
		.pnav-ghead{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:9px;min-height:44px;border-radius:11px;background:none;transition:background .12s ease}
		.pnav-ghead:hover{background:rgba(0,0,0,.06)}
		.pnav-ghead .pnav-label{flex:1;min-width:0;margin:0;padding:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
		.pnav-gico{flex:none;color:var(--ink2);margin-left:11px}
		.pnav-gqt{display:none;min-width:22px;height:21px;padding:0 7px;border-radius:11px;background:rgba(0,0,0,.09);color:var(--ink2);font-size:11px;font-weight:800;line-height:21px;text-align:center;flex:none}
		.pnav-chev{flex:none;color:var(--ink3,#9aa1ab);margin-right:11px;transition:transform .15s ease}
		@media(prefers-reduced-motion:reduce){.pnav-chev{transition:none}}
		/* 🔒 (1.4.2610) o botão de LOCK — IRMÃO do toggle (não mais absoluto por cima dele, que fazia
		   o clique também abrir/fechar e o cadeado boiar fora de lugar). Só aparece em grupo ABERTO
		   (fecha-se pelo acordeão, depois trava-se aberto). Esmaecido (o toque alcança), forte no
		   hover, e cheio na cor da marca quando travado — aí o cadeado fica «fechado» de verdade. */
		.pnav-glock{flex:none;display:none;width:40px;border-radius:11px;align-items:center;justify-content:center;
			color:var(--ink3,#9aa1ab);opacity:.5;background:none;transition:opacity .12s ease,color .12s ease,background .12s ease}
		#pNavGrupos .pnav-grupo[data-estado="aberto"] > .pnav-ghead-row > .pnav-glock{display:flex}
		.pnav-glock:hover{background:rgba(0,0,0,.06);color:var(--ink,#1d1d1f);opacity:1}
		.pnav-glock:focus-visible{opacity:1;outline:2px solid var(--brand);outline-offset:-2px}
		.pnav-grupo:hover > .pnav-ghead-row > .pnav-glock{opacity:.8}
		.pnav-glock.on{display:flex;opacity:1;color:var(--brand);background:var(--brand-12)}
		@media(prefers-reduced-motion:reduce){.pnav-glock{transition:none}}

		.pnav{display:flex;flex-direction:column;gap:2px}
		.pnav-linha{position:relative;display:block}
		/* 🚫 (1.4.2616) o item do menu é um <a href>: o navegador deixa ARRASTAR o link pra fora (o dono
		   clicava e saía um link). `user-drag:none` barra isso no WebKit; o `dragstart` no JS cobre o
		   resto. Continua clique normal — só não arrasta. */
		.pnav-item{display:flex;flex-wrap:wrap;align-items:center;gap:5px 11px;padding:11px 10px;border-radius:10px;font-size:14.5px;font-weight:500;color:var(--ink2);width:100%;text-align:left;-webkit-user-drag:none;user-select:none}
		.pnav-item svg{flex:none;opacity:.75}
		.pnav-item:hover{background:rgba(0,0,0,.045);color:var(--ink)}
		.pnav-item.on{background:var(--brand-12);color:var(--brand);font-weight:600}
		.pnav-item.on svg{opacity:1}
		/* Módulo TRANCADO pelo plano: visível mas apagado, com cadeado — clicar abre o upgrade. */
		.pnav-item.locked{opacity:.5}
		.pnav-item.locked:hover{background:rgba(0,0,0,.03)}
		.pnav-lock{font-size:11px;opacity:.8;flex:none}
		.pnav-txt{flex:1 1 auto;min-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
		.pnav-item .pbadges{flex:none}
		.pnav-badges-wrap{display:flex;align-items:center;gap:6px;flex:none;margin-left:auto}
		.pnav-cnt{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:#e5484d;color:#fff;font-size:10.5px;font-weight:800;line-height:1;flex:none}
		.pnav-cnt-hoje{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:#0284c7;color:#fff;font-size:10.5px;font-weight:800;line-height:1;flex:none}
		.pnav-cnt-sucesso{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:#16a34a;color:#fff;font-size:10.5px;font-weight:800;line-height:1;flex:none}

		/* ---------- os DOIS estados de um grupo (1.4.2608: `auto` aposentado) ----------
		   Agora é só ABERTO ou FECHADO, igual no celular e no computador: Início e os travados abrem,
		   o resto nasce fechado, e o acordeão (JS) alterna. Dentro de um grupo fechado, os itens
		   `data-pin` NUNCA somem (📌 só Configurações desde a 1.4.2551: é a porta de entrada; esconder
		   atrás de um recolher é esconder a saída de incêndio). */
		#pNavGrupos .pnav-grupo[data-estado="fechado"] .pnav-chev{transform:rotate(-90deg)}
		#pNavGrupos .pnav-grupo[data-estado="fechado"] .pnav-gqt{display:block}
		/* 🗂️ (1.4.2551) GRUPO FECHADO fica VISUALMENTE fechado — um «chip» com fundo + contador + seta, pra não
		   passar por aberto (o dono: «às vezes não dá pra perceber que está fechado»). */
		#pNavGrupos .pnav-grupo[data-estado="fechado"] > .pnav-ghead-row > .pnav-ghead{background:rgba(0,0,0,.05)}
		#pNavGrupos .pnav-grupo[data-estado="fechado"] > .pnav-ghead-row > .pnav-ghead .pnav-gqt{background:var(--brand);color:#fff;opacity:.92}
		#pNavGrupos .pnav-grupo[data-estado="fechado"] > .pnav > .pnav-linha:not([data-pin="1"]){display:none}
		/* 🗂️ (1.4.2612) GRUPO ABERTO também fica com um fundo (sutil, mais fraco que o chip do fechado),
		   pra o cabeçalho da categoria se separar dos itens dela — pedido do dono. */
		#pNavGrupos .pnav-grupo[data-estado="aberto"] > .pnav-ghead-row > .pnav-ghead{background:rgba(0,0,0,.035)}
		#pNavGrupos .pnav-grupo[data-estado="aberto"] > .pnav-ghead-row > .pnav-ghead:hover{background:rgba(0,0,0,.06)}
		/* 📌 (1.4.2612) o pin (Configurações) ganha um respiro do grupo acima quando ele está FECHADO —
		   senão cola no chip do «Avançado». Com o grupo aberto, é só o último item e não precisa. */
		#pNavGrupos .pnav-grupo[data-estado="fechado"] > .pnav > .pnav-linha[data-pin="1"]{margin-top:7px}

		/* 🔡 (1.4.2614) MODO COMPACTO — letra e altura menores, pra caber mais no olho (pedido do dono:
		   «letras menores, como da categoria, para ficar mais reduzido»). A classe mora no <aside>, então
		   o mesmo toggle vale no computador e na folha do celular. Só encolhe; nada de esconder. */
		.psidebar.pnav-compacto .pnav-item{font-size:12.5px;padding:6px 10px;gap:4px 8px}
		.psidebar.pnav-compacto .pnav-item svg{width:16px;height:16px}
		.psidebar.pnav-compacto .pnav{gap:1px}
		.psidebar.pnav-compacto .pnav-txt{min-width:60px}
		.psidebar.pnav-compacto .pnav-ghead{min-height:36px}
		.psidebar.pnav-compacto .pnav-label{font-size:10px}
		.psidebar.pnav-compacto .pnav-ghead-row{margin-top:5px}
		.psidebar.pnav-compacto .pnav-glock{width:34px}
		.psidebar.pnav-compacto .pnav-cnt,.psidebar.pnav-compacto .pnav-cnt-hoje,.psidebar.pnav-compacto .pnav-cnt-sucesso{min-width:15px;height:15px;font-size:9.5px}
		/* item ESCONDIDO pelo dono: fica no HTML (volta pro lugar certo), invisível fora do modo de organizar */
		#pNavGrupos .pnav-linha[data-oculto="1"]{display:none}

		/* ---------- esconder no lugar ---------- */
		.pnav-x{display:none;position:absolute;top:50%;right:6px;transform:translateY(-50%);width:32px;height:32px;
		  border-radius:9px;border:1px solid var(--line);background:var(--surface,#fff);color:#b3261e;font-size:18px;line-height:1;place-items:center;z-index:2}
		.pnav-x-vol{display:none}
		.pnav-linha[data-oculto="1"] .pnav-x{color:var(--ink2)}
		.pnav-linha[data-oculto="1"] .pnav-x-esc{display:none}
		.pnav-linha[data-oculto="1"] .pnav-x-vol{display:inline}
		.puser{display:flex;align-items:center;gap:10px;margin-top:auto;padding:14px 8px 0;border-top:1px solid var(--line2)}
		.pnav-organizar{margin-top:16px;padding-top:12px;border-top:1px solid var(--line2)}
		.pnav-org-btn{display:flex;align-items:center;gap:9px;width:100%;padding:10px;border-radius:10px;font-size:13px;font-weight:600;color:var(--ink3);text-align:left}
		.pnav-org-btn:hover{background:rgba(0,0,0,.045);color:var(--ink2)}
		.pnav-org-dica{display:none;margin:7px 10px 0;font-size:11.5px;line-height:1.5;color:var(--ink3)}
		body.pnav-editando .pnav-org-dica{display:block}
		body.pnav-editando .pnav-org-btn{color:var(--brand);background:var(--brand-12)}
		body.pnav-editando .pnav-x{display:grid}
		body.pnav-editando .pnav-item{pointer-events:none;padding-right:44px} /* no modo de organizar o item não navega: o alvo é o ✕ */
		body.pnav-editando .pnav-linha[data-oculto="1"] .pnav-item{opacity:.45}
		/* 🔡 (1.4.2616) ORGANIZAR NO MINI resolvido: no modo de organizar os badges somem (não há o que
		   clicar neles enquanto se esconde, e davam ao ✕ um fundo poluído); e no compacto o ✕ encolhe
		   pra caber na linha mais baixa, com o respiro à direita menor a condizer. */
		body.pnav-editando .pnav-badges-wrap{display:none}
		.psidebar.pnav-compacto .pnav-x{width:28px;height:28px;font-size:16px}
		body.pnav-editando .psidebar.pnav-compacto .pnav-item{padding-right:36px}
		/* ⚠️ O `[data-estado]` nestes seletores NÃO é enfeite, é ARITMÉTICA. A regra que recolhe
		   acima é `#pNavGrupos .pnav-grupo[data-estado="fechado"] > .pnav > .pnav-linha:not([data-pin])`,
		   que vale (1,5,0). Sem o `[data-estado]`, estas aqui valeriam (1,4,1) — e `body` como
		   elemento NÃO compensa uma classe a menos. Resultado medido no navegador antes da
		   correção: organizar não abria os grupos fechados (o ✕ de metade do menu ficava atrás de
		   um recolher) e a busca não filtrava nada. Com `[data-estado]` sobem pra (1,6,1), e as
		   duas que ESCONDEM ganham mais um ponto pra passar à frente da que abre.
		   🔴 Mexer na regra de recolher sem recontar estas três traz o defeito de volta. */
		/* organizando, todo grupo abre — e o item escondido reaparece pra poder voltar */
		body.pnav-editando #pNavGrupos .pnav-grupo[data-estado] > .pnav > .pnav-linha{display:block}

		/* ---------- buscando: abre tudo e some o que não casa ---------- */
		body.pnav-buscando #pNavGrupos .pnav-grupo[data-estado] > .pnav > .pnav-linha{display:block}
		body.pnav-buscando #pNavGrupos .pnav-grupo[data-estado] > .pnav > .pnav-linha.pnav-fora,
		body.pnav-buscando #pNavGrupos .pnav-grupo[data-estado] > .pnav > .pnav-linha[data-oculto="1"]{display:none}
		body.pnav-buscando #pNavGrupos .pnav-grupo.pnav-fora{display:none}
		body.pnav-buscando .pnav-ghead{pointer-events:none}
		body.pnav-buscando .pnav-gqt,body.pnav-buscando .pnav-chev{visibility:hidden}
		.pmain-wrap{flex:1;display:flex;flex-direction:column;min-width:0}
		.pmain{flex:1;padding:16px 16px calc(var(--bottombar-h) + 24px)}

		/* ---------- esqueleto da troca de seção ----------
		   Antes, ao trocar de aba, o #pMain só ficava com opacity .4 até a resposta chegar:
		   o conteúdo ANTIGO continuava lá, apagado, e a tela parecia travada. O esqueleto
		   substitui na hora — o olho lê "está vindo" em vez de "não respondeu", e o layout
		   não pula quando o conteúdo real entra. Some sozinho: é trocado pelo innerHTML. */
		.psk{display:flex;flex-direction:column;gap:14px;padding-top:2px}
		.psk-l{background:linear-gradient(90deg,rgba(0,0,0,.045) 25%,rgba(0,0,0,.075) 37%,rgba(0,0,0,.045) 63%);background-size:400% 100%;border-radius:10px;animation:psk-sweep 1.1s ease-in-out infinite}
		.psk-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
		@keyframes psk-sweep{0%{background-position:100% 50%}100%{background-position:0 50%}}
		@media (prefers-reduced-motion:reduce){.psk-l{animation:none}}

		.ptopbar{position:sticky;top:0;z-index:20;background:rgba(245,245,247,.9);backdrop-filter:blur(16px) saturate(1.5);
		  border-bottom:1px solid var(--line2);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
		.ptopbar-title{display:flex;align-items:center;gap:10px;min-width:0}
		.ptopbar-titletxt{min-width:0}
		.ptopbar-title h1{font-size:19px;font-weight:700;letter-spacing:-.02em}
		.psub{font-size:12.5px;color:var(--ink2);margin-top:1px}
		.ptopbar-right{display:flex;align-items:center;gap:12px}
		@media(max-width:640px){.ptopbar .pl-ver-planos{padding:6px 9px!important;font-size:12px!important}}
		.ptopbar-actions{display:flex;gap:8px}
		.ptopbar-tut{font:inherit;font-size:13px;font-weight:600;padding:7px 13px;border:1px solid var(--line2,rgba(20,24,31,.13));border-radius:9px;background:var(--surface,#fff);color:var(--ink2,#64707e);cursor:pointer;white-space:nowrap;line-height:1;display:inline-flex;align-items:center;gap:5px}
		.ptopbar-tut:hover{border-color:var(--gold2,#c9a84c);color:var(--ink,#1d2530)}
		.pilar-tut-oculto{display:none !important}
		/* Headers "título + ações" (heroes) dos módulos empilham no celular — evita o texto espremido /
		   quebrando palavra quando os botões disputam a mesma linha. Global no painel (!important vence o CSS
		   do módulo, que é injetado depois via innerHTML). Só os headers principais flex space-between. */
		@media (max-width:600px){
			.apv-hero, .albe-hero, .gal-hero, .pilar-modhero,
			.barq-head, .caed-topo, .oarqx-head, .oengx-head{
				flex-direction:column !important;
				align-items:stretch !important;
			}
		}
		/* logo da empresa no topbar — SÓ mobile (a sidebar já mostra no desktop, ≥960px abaixo).
		   Formato escolhido em Configurações (topbar_logo_formato): 'livre' (default) mostra a
		   imagem como o dono enviou, sem crop/arredondamento — de propósito diferente do .pavatar
		   (que força quadrado 10px); 'quadrado'/'redondinha' recortam (object-fit:cover); 'lettering'
		   troca a logo pelo NOME por extenso, alinhado à direita (ver .ptopbar-brandtxt). */
		.ptopbar-logo{width:30px;height:30px;object-fit:contain;flex:none}
		.ptopbar-logo-quadrado{object-fit:cover;border-radius:8px}
		.ptopbar-logo-redondinha{object-fit:cover;border-radius:50%}
		.ptopbar-brandtxt{font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}

		.pbottombar{position:fixed;left:0;right:0;bottom:0;min-height:var(--bottombar-h);background:rgba(255,255,255,.92);
		  backdrop-filter:blur(16px) saturate(1.5);border-top:1px solid var(--line2);display:flex;z-index:56;
		  overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;
		  padding-bottom:env(safe-area-inset-bottom)}
		.pbottombar::-webkit-scrollbar{display:none}
		/* 📱 CINCO fatias que preenchem a largura: quatro atalhos e o Menu. Era uma tira de mais de
		   quarenta abas que rolava pro lado — ver o comentário da #pBottombar no HTML. Só o
		   super-dev vê mais que cinco (a Área de testes entra no fim), e aí a barra volta a rolar. */
		/* 🔴 `min-width:62px` é o CHÃO, e ele é o que impede a barra de amassar. Com `min-width:0` as
		   cinco fatias encolhiam até o ícone montar em cima do rótulo — e isso só aparecia pra quem
		   tem a Área de testes, porque as abas dev entram DEPOIS e tomam 19vw cada uma. Com o chão,
		   cinco fatias cabem até numa tela de 320px e, quando as abas dev não cabem, a barra volta a
		   rolar na horizontal (que é o comportamento certo pra um caso de super-dev). */
		.pbtab{position:relative;flex:1 1 0;min-width:56px;height:var(--bottombar-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink3);padding:0 5px}
		/* Seis fatias (cinco atalhos + Menu) em telas estreitas: 6×52=312, cabe até num aparelho de
		   320px. Abaixo disso a barra volta a rolar, que é melhor do que o ícone em cima do rótulo. */
		@media (max-width:370px){.pbtab{min-width:52px;padding:0 3px}.pbtab small{font-size:9px}}
		.pbtab-menu-x{display:none}
		body.pnav-folha-on .pbtab-menu .pbtab-menu-h{display:none}
		body.pnav-folha-on .pbtab-menu .pbtab-menu-x{display:inline}
		body.pnav-folha-on .pbtab-menu{color:var(--brand)}
		.pbtab-badges{position:absolute;top:2px;left:50%;transform:translateX(2px);display:flex;gap:3px}
		.pbtab-cnt,.pbtab-cnt-hoje,.pbtab-cnt-sucesso{min-width:15px;height:15px;padding:0 4px;border-radius:8px;color:#fff;font-size:9.5px;font-weight:800;line-height:15px;text-align:center;box-shadow:0 0 0 2px var(--surface)}
		.pbtab-cnt{background:#e5484d}
		.pbtab-cnt-hoje{background:#0284c7}
		.pbtab-cnt-sucesso{background:#16a34a}
		.pbtab svg{opacity:.8}
		/* 🔴 `max-width:100%` e não um número fixo: com SEIS fatias o rótulo de uma encostava no da
		   vizinha (Orçamentos / Configurações). Limitado à largura da própria fatia, ele corta com
		   reticências e o respiro entre dois rótulos é sempre o padding, em qualquer tela. */
		.pbtab small{font-size:10px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
		.pbtab.on{color:var(--brand)}
		.pbtab.on svg{opacity:1}

		/* ---------- avatares ---------- */
		.pavatar{border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700;overflow:hidden;flex:none}
		.pavatar img{width:100%;height:100%;object-fit:cover}
		.av-36{width:38px;height:38px;font-size:14px}
		.av-30{width:32px;height:32px;font-size:12.5px}
		.av-56{width:56px;height:56px;font-size:19px;border-radius:16px}
		.av-hero{width:76px;height:76px;font-size:26px;border-radius:50%;box-shadow:0 10px 24px -8px color-mix(in srgb, var(--brand) 55%, transparent)}
		.av-32sq{width:32px;height:32px;font-size:12px;border-radius:9px}
		/* 📸 (1.4.2824) o avatar que convida a pôr/trocar a foto (pessoa) e o logo (empresa) no próprio bloco de boas-vindas */
		.pav-edit{position:relative;display:inline-flex;flex:none}
		.pav-edit-hit{position:relative;display:block;padding:0;border:0;background:none;cursor:pointer;line-height:0;border-radius:50%}
		.pav-edit-logo .pav-edit-hit{border-radius:9px}
		.pav-edit-hit:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
		.pav-cam{position:absolute;right:-3px;bottom:-3px;width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--brand);display:grid;place-items:center;font-size:12.5px;line-height:1;box-shadow:0 3px 8px rgba(0,0,0,.18);transition:transform .15s ease}
		.pav-edit-logo .pav-cam{width:18px;height:18px;font-size:9px;right:-5px;bottom:-5px;border-width:1.5px}
		.pav-edit.is-empty .pav-cam{animation:pavJump 1.7s ease-in-out infinite}
		/* 📸 (1.4.2826, pedido do dono: «se já tem foto/logo, não precisa dos ícones») com imagem, a câmera some no repouso e
		   só reaparece ao passar o mouse ou focar — para trocar — deixando o avatar limpo quando já está pronto. */
		.pav-edit:not(.is-empty) .pav-cam{opacity:0;transform:scale(.6);pointer-events:none;transition:opacity .15s ease,transform .15s ease}
		.pav-edit:not(.is-empty) .pav-edit-hit:hover .pav-cam,.pav-edit:not(.is-empty) .pav-edit-hit:focus-visible .pav-cam{opacity:1;transform:scale(1)}
		.pav-call{position:absolute;left:50%;top:-30px;transform:translateX(-50%);white-space:nowrap;background:var(--brand);color:#fff;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;box-shadow:0 6px 16px -4px color-mix(in srgb, var(--brand) 60%, transparent);animation:pavCall 1.7s ease-in-out infinite;pointer-events:none;z-index:2}
		.pav-call::after{content:"";position:absolute;left:50%;bottom:-5px;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--brand);border-bottom:0}
		.pav-edit-logo .pav-call{top:auto;bottom:calc(100% + 7px);font-size:10.5px;padding:3px 8px}
		@keyframes pavJump{0%,55%,100%{transform:translateY(0)}72%{transform:translateY(-6px)}86%{transform:translateY(-2px)}}
		@keyframes pavCall{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-3px)}}
		@media(prefers-reduced-motion:reduce){.pav-edit.is-empty .pav-cam,.pav-call{animation:none}}

		/* ---------- header premium (Visão Geral, acima de "Sua assinatura") ---------- */
		.hpg{background:linear-gradient(135deg,color-mix(in srgb, var(--brand) 12%, #fff),color-mix(in srgb, var(--brand) 3%, #fff) 55%,#fff);
			border:1px solid color-mix(in srgb, var(--brand) 16%, transparent);border-radius:var(--r-lg);padding:20px 20px 16px}
		.hpg-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
		.hpg-heros{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
		@media(max-width:640px){.hpg-heros{flex-direction:column;align-items:stretch}.hpg-estru-bt,.hpg-rev-bt{width:100%;justify-content:flex-start}}
		.hpg-body{flex:1;min-width:180px}
		.hpg-eyebrow{font-size:12.5px;font-weight:600;color:var(--ink2);margin:0 0 2px}
		.hpg-name{display:flex;align-items:center;gap:7px;font-family:Georgia,"Iowan Old Style",Palatino,"Times New Roman",serif;
			font-size:26px;font-weight:500;margin:0 0 9px;letter-spacing:-.01em;color:var(--ink)}
		.hpg-vsel{display:inline-flex;flex:none}
		.hpg-chips{display:flex;gap:6px;flex-wrap:wrap}
		.hpg-chip{font-size:12px;font-weight:600;padding:5px 11px;border-radius:99px;background:rgba(0,0,0,.05);color:var(--ink2)}
		.hpg-stat{text-align:right;flex:none}
		.hpg-stat b{display:block;font-size:34px;font-weight:800;line-height:1;color:var(--brand);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
		.hpg-stat span{display:block;font-size:11px;font-weight:600;color:var(--ink2);line-height:1.3;margin-top:4px}
		.hpg-stat-sm b{font-size:15px;font-weight:700;color:var(--ink)}
		/* 🏷️ (1.4.2556) o convite para assinar, à direita, sob o nome do plano gratuito */
		.hpg-stat-cta{appearance:none;-webkit-appearance:none;cursor:pointer;margin-top:8px;display:inline-flex;align-items:center;gap:4px;
			font:inherit;font-size:12px;font-weight:700;color:var(--brand);background:color-mix(in srgb, var(--brand) 10%, transparent);
			border:1px solid color-mix(in srgb, var(--brand) 28%, transparent);border-radius:99px;padding:6px 12px;line-height:1;transition:background .15s ease,transform .15s ease}
		.hpg-stat-cta:hover{background:color-mix(in srgb, var(--brand) 18%, transparent);transform:translateY(-1px)}
		.hpg-stat-cta:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
		.hpg-foot{margin-top:16px;padding-top:14px;border-top:1px solid color-mix(in srgb, var(--brand) 14%, transparent);
			display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:var(--ink2)}
		@media(max-width:640px){.hpg-stat{text-align:left;width:100%;padding-top:12px;border-top:1px solid color-mix(in srgb, var(--brand) 14%, transparent)}}
		/* ⏰ (05/10) O teste/pagamento no cabeçalho — ver stat_anel_html(). O anel esvazia com os dias;
		   no alerta sai uma onda dele, no urgente duas e mais rápidas, e o ponto do convite pisca. */
		.hpg-al{--al:var(--brand);--al-tx:var(--ink2);--al-trilho:color-mix(in srgb, var(--brand) 14%, transparent);
			display:flex;align-items:center;gap:12px;flex:none;text-align:left;font:inherit;color:var(--ink)}
		.hpg-al-alerta{--al:#d97706;--al-tx:#8a4b00;--al-trilho:rgba(217,119,6,.18)}
		.hpg-al-urgente{--al:#d93025;--al-tx:#a1160e;--al-trilho:rgba(217,48,37,.16)}
		button.hpg-al{appearance:none;-webkit-appearance:none;cursor:pointer;border-radius:18px;padding:9px 16px 9px 9px;
			border:1px solid rgba(217,119,6,.35);background:#fffaf0;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:transform .15s ease,box-shadow .15s ease}
		button.hpg-al-urgente{border-color:rgba(217,48,37,.35);background:#fff5f4}
		button.hpg-al:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.08)}
		button.hpg-al:focus-visible{outline:3px solid var(--al);outline-offset:3px}
		.hpg-al-anel{position:relative;width:64px;height:64px;flex:none;display:grid;place-items:center}
		.hpg-al-anel svg{position:absolute;inset:0;transform:rotate(-90deg)}
		.hpg-al-trilho{fill:none;stroke:var(--al-trilho);stroke-width:5}
		.hpg-al-arco{fill:none;stroke:var(--al);stroke-width:5;stroke-linecap:round}
		.hpg-al-anel b{position:relative;font-size:24px;font-weight:800;line-height:1;color:var(--al);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
		.hpg-al-alerta .hpg-al-anel::before,.hpg-al-urgente .hpg-al-anel::before,.hpg-al-urgente .hpg-al-anel::after{content:'';position:absolute;inset:3px;
			border-radius:50%;border:2px solid var(--al);opacity:0;animation:hpgAlOnda 2.6s cubic-bezier(.2,.6,.3,1) infinite}
		.hpg-al-urgente .hpg-al-anel::before,.hpg-al-urgente .hpg-al-anel::after{animation-duration:1.7s}
		.hpg-al-urgente .hpg-al-anel::after{animation-delay:.85s}
		@keyframes hpgAlOnda{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.5);opacity:0}}
		.hpg-al-tx{display:flex;flex-direction:column;gap:5px;min-width:0}
		.hpg-al-rot{font-size:11.5px;font-weight:600;line-height:1.3;color:var(--al-tx)}
		.hpg-al-cta{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:var(--al);white-space:nowrap}
		.hpg-al-dot{width:8px;height:8px;border-radius:50%;background:var(--al);flex:none;animation:hpgAlPisca 2s ease-in-out infinite}
		.hpg-al-urgente .hpg-al-dot{animation-duration:1.1s}
		@keyframes hpgAlPisca{0%,100%{opacity:1}50%{opacity:.2}}
		.hpg-al-quieto .hpg-al-anel::before,.hpg-al-quieto .hpg-al-anel::after{content:none}
		/* o cartão «Sua assinatura» acende por um instante quando o alerta leva até ele */
		.hpg-alvo{animation:hpgAlvo 2.4s ease}
		@keyframes hpgAlvo{0%,55%{box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 40%, transparent)}100%{box-shadow:0 0 0 0 transparent}}
		@media(prefers-reduced-motion:reduce){.hpg-al-anel::before,.hpg-al-anel::after{content:none}.hpg-al-dot,.hpg-alvo{animation:none}button.hpg-al{transition:none}}
		@media(max-width:640px){.hpg-al{width:100%}.hpg-al-calmo{padding-top:12px;border-top:1px solid color-mix(in srgb, var(--brand) 14%, transparent)}}
		.hpg-mkt{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:99px;font-size:12px;font-weight:700;text-decoration:none;
			color:var(--brand);background:color-mix(in srgb, var(--brand) 9%, transparent)}
		.hpg-mkt:hover{background:color-mix(in srgb, var(--brand) 15%, transparent)}
		/* 🏷️ (1.4.2621) o selo de versão: rodapé discreto da Visão geral, uma linha que diz que o
		   sistema está vivo (versão, quando atualizou, ~prompts com Claude Fable). */
		.hpg-ver{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;font-size:11.5px;color:var(--ink3)}
		.hpg-ver-v{font-weight:700;color:var(--ink2);font-variant-numeric:tabular-nums}
		.hpg-ver-sep{opacity:.5}
		.hpg-ver-ai{display:inline-flex;align-items:center;gap:4px;font-weight:600;
			color:color-mix(in srgb, var(--brand) 78%, var(--ink2));
			background:color-mix(in srgb, var(--brand) 8%, transparent);padding:2px 9px;border-radius:99px}
		.hpg-ver-spark{color:var(--brand)}
		/* 🎟️ (1.4.2459) os cupons — vitrine, cabeçalho e Minha assinatura (Pilar_Voucher::css) */
		.cpx-tks{display:flex;flex-direction:column;gap:12px;filter:drop-shadow(0 8px 16px color-mix(in srgb,var(--brand) 13%,transparent))}
.cpx-tk{--stub:124px;--furo:11px;display:flex;min-width:0;background:var(--surface,#fff);border-radius:18px;
 -webkit-mask:radial-gradient(circle var(--furo) at var(--stub) 0,#0000 96%,#000 100%) top/100% 51% no-repeat,radial-gradient(circle var(--furo) at var(--stub) 100%,#0000 96%,#000 100%) bottom/100% 51% no-repeat;
 mask:radial-gradient(circle var(--furo) at var(--stub) 0,#0000 96%,#000 100%) top/100% 51% no-repeat,radial-gradient(circle var(--furo) at var(--stub) 100%,#0000 96%,#000 100%) bottom/100% 51% no-repeat}
.cpx-tk-stub{flex:0 0 var(--stub);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:16px 8px;color:#fff;text-align:center;
 background:radial-gradient(130% 90% at 0 0,color-mix(in srgb,var(--brand) 55%,#fff) 0,transparent 58%),linear-gradient(160deg,var(--brand),color-mix(in srgb,var(--brand) 60%,#000))}
.cpx-tk-num{font-size:34px;font-weight:800;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.cpx-tk-num-l{font-size:22px;letter-spacing:-.01em}
.cpx-tk-off{font-size:11px;font-weight:800;letter-spacing:.2em;opacity:.95}
.cpx-tk-dur{margin-top:7px;font-size:11px;font-weight:600;line-height:1.25;opacity:.9}
.cpx-tk-cod{margin-top:12px;max-width:100%;padding:6px 9px 7px;border-radius:9px;border:1.5px dashed rgba(255,255,255,.8);background:rgba(255,255,255,.14);
 font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;font-weight:800;letter-spacing:.08em;line-height:1.15;word-break:break-all}
.cpx-tk-cod small{display:block;margin-bottom:2px;font-family:inherit;font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.cpx-tk-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px;padding:15px 16px 15px 20px;border-left:2px dashed color-mix(in srgb,var(--brand) 26%,transparent)}
.cpx-tk-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.cpx-tk-tit{font-family:Georgia,"Iowan Old Style",Palatino,"Times New Roman",serif;font-size:18px;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.2}
.cpx-tk-desc{margin:-3px 0 0;font-size:13px;line-height:1.45;color:var(--ink2)}
.cpx-tk-bs,.cpx-minis,.hpg-cup-cart{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cpx-b{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px;font-weight:700;line-height:1.2;padding:4px 9px;border-radius:99px;
 background:color-mix(in srgb,var(--brand) 9%,transparent);color:color-mix(in srgb,var(--brand) 75%,#000)}
.cpx-b-cod{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;background:transparent;border:1.5px dashed color-mix(in srgb,var(--brand) 50%,transparent)}
.cpx-b-quente{background:#fff3e2;color:#9a4b00}
.cpx-b-ok{background:#e7f6ec;color:#1a7f37}
.cpx-b-fim{background:rgba(0,0,0,.05);color:var(--ink2)}
.cpx-prs{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:8px}
.cpx-pr{display:flex;flex-direction:column;gap:2px;padding:9px 11px;border-radius:12px;border:1px solid color-mix(in srgb,var(--brand) 14%,transparent);background:color-mix(in srgb,var(--brand) 4%,var(--surface,#fff))}
.cpx-pr-n{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--ink2)}
.cpx-pr-v{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.cpx-pr-v s{font-size:12px;color:var(--ink3,#a1a1a6)}
.cpx-pr-v b{font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.cpx-pr-v b small{font-size:11px;font-weight:600;color:var(--ink2);margin-left:1px}
.cpx-pr em{font-style:normal;font-size:11px;font-weight:700;color:#1a7f37}
.cpx-acao{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cpx-acao small{font-size:11.5px;color:var(--ink2)}
.cpx-bt{appearance:none;-webkit-appearance:none;border:0;cursor:pointer;font:inherit;font-size:13px;font-weight:800;color:#fff;padding:10px 16px;border-radius:12px;
 background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 68%,#000));box-shadow:0 8px 18px -8px color-mix(in srgb,var(--brand) 70%,transparent);transition:transform .15s ease,box-shadow .15s ease}
.cpx-bt:hover{transform:translateY(-1px);box-shadow:0 12px 22px -10px color-mix(in srgb,var(--brand) 75%,transparent)}
.cpx-bt:focus-visible,.cpx-cta:focus-visible,.cpx-mini:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent);outline-offset:2px}
.cpx-bt[disabled]{opacity:.6;cursor:default;transform:none}
.cpx-vit{margin-bottom:14px;padding:18px 18px 16px;border-radius:var(--r-lg,18px);border:1px solid color-mix(in srgb,var(--brand) 16%,transparent);
 background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 11%,#fff),color-mix(in srgb,var(--brand) 3%,#fff) 55%,#fff)}
.cpx-vit-h{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.cpx-eyebrow{margin:0 0 2px;font-size:12px;font-weight:600;color:var(--ink2)}
.cpx-vit-h h3{margin:0;font-family:Georgia,"Iowan Old Style",Palatino,"Times New Roman",serif;font-size:23px;font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.cpx-vit-pe{margin:12px 2px 0;font-size:12px;line-height:1.5;color:var(--ink2)}
.cpx-cart{margin-top:12px;padding:16px;border-radius:var(--r-md,14px);border:1px solid color-mix(in srgb,var(--brand) 16%,transparent);
 background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 7%,#fff),#fff 60%)}
.cpx-cart-h{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.cpx-cart-h b{font-size:15px;color:var(--ink)}
.cpx-nota{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink2)}
.cpx-sub{margin:16px 0 10px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.cpx-cod{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.cpx-cod input{flex:1;min-width:160px}
.cpx-mini{position:relative;display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 5px;border-radius:99px;cursor:help;outline:0;
 background:var(--surface,#fff);border:1px solid color-mix(in srgb,var(--brand) 20%,transparent);font-size:12px;font-weight:600;color:var(--ink)}
.cpx-mini-sel{padding:4px 9px;border-radius:99px;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 68%,#000))}
.cpx-mini-cod{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em}
.cpx-mini-i{width:16px;height:16px;border-radius:50%;display:inline-grid;place-items:center;font-size:10px;font-weight:800;font-style:italic;font-family:Georgia,serif;
 color:var(--ink2);border:1px solid var(--line,rgba(0,0,0,.12))}
.cpx-tip{position:absolute;left:0;top:calc(100% + 8px);z-index:40;width:max-content;max-width:280px;padding:10px 12px;border-radius:12px;background:rgba(28,28,30,.97);
 color:#fff;font-size:11.5px;font-weight:500;line-height:1.5;box-shadow:0 14px 30px rgba(0,0,0,.25);opacity:0;visibility:hidden;transform:translateY(-4px);
 transition:opacity .14s ease,transform .14s ease,visibility .14s;pointer-events:none;white-space:normal;text-align:left}
.cpx-tip b,.cpx-tip span{display:block}
.cpx-tip b{margin-bottom:3px;color:#fff}
.cpx-tip .cpx-tip-n{margin-top:5px;color:rgba(255,255,255,.72)}
.cpx-mini:hover .cpx-tip,.cpx-mini:focus .cpx-tip,.cpx-mini:focus-within .cpx-tip{opacity:1;visibility:visible;transform:none}
.hpg-cup{margin-top:16px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--brand) 14%,transparent);display:flex;flex-direction:column;gap:10px}
.hpg-cup-l{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.hpg-cup-l b{font-size:13.5px;font-weight:800;color:var(--ink)}
.hpg-cup-l span{font-size:12px;color:var(--ink2)}
.hpg-cup-ic{font-size:15px}
.cpx-conv{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border-radius:12px;border:1.5px dashed color-mix(in srgb,var(--brand) 45%,transparent);background:color-mix(in srgb,var(--brand) 6%,transparent)}
.cpx-conv-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}
.cpx-conv-t b{font-size:13.5px;font-weight:800;color:var(--ink)}
.cpx-conv-t span{font-size:12.5px;color:var(--ink2);line-height:1.45}
.hpg-cup-tks{flex-direction:row;flex-wrap:wrap}
.cpx-tk.cpx-compacto{--stub:104px;--furo:9px;flex:1 1 300px;max-width:520px}
.cpx-compacto .cpx-tk-stub{padding:12px 6px}
.cpx-compacto .cpx-tk-num{font-size:26px}
.cpx-compacto .cpx-tk-num-l{font-size:17px}
.cpx-compacto .cpx-tk-cod{font-size:10.5px;letter-spacing:.02em;padding:5px 5px;margin-top:8px;word-break:normal;overflow-wrap:anywhere}
.cpx-compacto .cpx-tk-body{padding:12px 14px 12px 16px;gap:8px}
.cpx-compacto .cpx-tk-tit{font-size:16px}
.cpx-compacto .cpx-prs{grid-template-columns:1fr}
.cpx-compacto .cpx-bt{padding:8px 14px;font-size:12.5px}
.cpx-cta{appearance:none;-webkit-appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;font-size:13px;font-weight:800;color:var(--brand);padding:6px 4px}
.cpx-cta:hover{text-decoration:underline}
@media(max-width:560px){.cpx-tk{--stub:96px;--furo:9px}.cpx-tk-num{font-size:27px}.cpx-tk-num-l{font-size:17px}.cpx-tk-body{padding:12px 12px 12px 16px}.cpx-prs{grid-template-columns:1fr 1fr}.cpx-tip{max-width:240px}}
@media(prefers-reduced-motion:reduce){.cpx-bt,.cpx-tip{transition:none}.cpx-bt:hover{transform:none}}		.embh-chip{background:linear-gradient(135deg,#1b1a17,#3a3226);color:#f3d9a4;letter-spacing:.01em}.embh-chip span{color:#e8c27a}.embh{margin-top:16px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 20px;border-radius:18px;background:radial-gradient(120% 140% at 0% 0%,#2b2620 0%,#15130f 55%,#0d0c0a 100%);color:#f5ecdc;box-shadow:0 10px 30px rgba(20,16,10,.18);position:relative;overflow:hidden}.embh:before{content:"";position:absolute;inset:0;border-radius:18px;padding:1px;background:linear-gradient(135deg,rgba(232,194,122,.7),rgba(232,194,122,.08) 40%,rgba(232,194,122,.45));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.embh-top{grid-column:1/-1;margin:0 0 -4px;font-family:Georgia,"Iowan Old Style",Palatino,serif;font-size:19px;line-height:1.3;color:#fff;letter-spacing:-.005em}.embh-top span{color:#f0d08f;margin-right:4px}.embh-lbl,.embs-cod-l{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#c9b48c}.embh-cod{display:flex;align-items:center;gap:10px;margin:6px 0 4px;flex-wrap:wrap}.embh-cod b{max-width:100%;overflow-wrap:anywhere;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:clamp(20px,6vw,28px);font-weight:800;letter-spacing:.1em;color:#fff;padding:4px 12px;border:1.5px dashed rgba(232,194,122,.65);border-radius:10px;background:rgba(232,194,122,.08)}.embh-copiar{appearance:none;border:0;border-radius:99px;padding:8px 14px;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer;background:linear-gradient(135deg,#f0d08f,#c99a4b);color:#1b140a}.embh-copiar:focus-visible,.embh-bt:focus-visible,.embh-cta:focus-visible{outline:2px solid #f0d08f;outline-offset:2px}.embh-sub{font-size:12.5px;color:#d8ccb6}.embh-num{display:flex;align-items:baseline;gap:8px}.embh-num b{font-size:30px;font-weight:800;color:#f0d08f;font-variant-numeric:tabular-nums;line-height:1}.embh-num span{font-size:13px;color:#e9dfcd;font-weight:600}.embh-bar{height:8px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;margin:8px 0 6px}.embh-bar i{display:block;height:100%;min-width:6px;border-radius:99px;background:linear-gradient(90deg,#c99a4b,#f0d08f)}.embh-prox{font-size:12px;color:#cdbfa6}.embh-breve{display:block;font-size:11.5px;color:#a8977a;margin-top:3px}.embh-hoje{display:inline-block;margin-top:6px;font-size:12px;font-weight:800;color:#1b140a;background:linear-gradient(135deg,#f0d08f,#c99a4b);padding:3px 10px;border-radius:99px}.embh-cup,.embh-prog{min-width:0}.embs-breve{margin:10px 0 0;padding:9px 12px;border-radius:10px;background:#fbf3e2;color:#6b4e1c;font-size:13px}.embs-hoje{margin:10px 0 0;font-size:13px}.embh-acoes{display:flex;flex-direction:column;gap:8px;min-width:210px}.embh-cta{display:inline-flex;justify-content:center;align-items:center;gap:6px;text-decoration:none;font-size:13px;font-weight:800;padding:10px 14px;border-radius:12px;background:#f5ecdc;color:#1b140a}.embh-bt{appearance:none;display:inline-flex;justify-content:center;align-items:center;text-decoration:none;font:inherit;font-size:12.5px;font-weight:700;padding:9px 13px;border-radius:12px;border:1px solid rgba(232,194,122,.45);background:transparent;color:#f3d9a4;cursor:pointer}.embh-bt:hover{background:rgba(232,194,122,.1)}@media(max-width:860px){.embh{grid-template-columns:1fr}.embh-acoes{min-width:0}}.embs{max-width:980px;display:flex;flex-direction:column;gap:16px}.embs-como-l{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px 22px;margin:4px 0 0}.embs-como-l>div{padding-top:12px;border-top:1px solid var(--line,rgba(0,0,0,.08))}.embs-como-l dt{font-size:13.8px;font-weight:700;color:var(--ink,#1d1d1f);margin:0 0 4px}.embs-como-l dd{margin:0;font-size:13.2px;line-height:1.6;color:var(--ink2,#6e6e73)}.embs-como-l dd b{color:var(--ink,#1d1d1f)}.embs-hero{display:flex;gap:22px;align-items:center;justify-content:space-between;padding:24px;border-radius:22px;color:#f5ecdc;background:radial-gradient(120% 160% at 0% 0%,#2b2620 0%,#15130f 55%,#0d0c0a 100%);box-shadow:0 14px 40px rgba(20,16,10,.2);flex-wrap:wrap}.embs-hero-l{flex:1;min-width:0;flex-basis:260px}.embs-sel{display:inline-flex;gap:6px;align-items:center;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#f0d08f;padding:5px 11px;border-radius:99px;border:1px solid rgba(232,194,122,.4)}.embs-tit{font-family:Georgia,"Iowan Old Style",Palatino,serif;font-weight:500;font-size:28px;margin:12px 0 6px;color:#fff;letter-spacing:-.01em}.embs-txt{font-size:14px;line-height:1.6;color:#e2d6c1;margin:0 0 14px;max-width:62ch}.embs-txt b{color:#fff}.embs-cod{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.embs-cod b{max-width:100%;overflow-wrap:anywhere;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:clamp(22px,7vw,36px);font-weight:800;letter-spacing:.12em;color:#fff;padding:6px 16px;border:2px dashed rgba(232,194,122,.7);border-radius:12px;background:rgba(232,194,122,.08)}.embs-link label{display:block;font-size:12px;font-weight:700;color:#c9b48c;margin-bottom:6px}.embs-link-l{display:flex;gap:8px;flex-wrap:wrap}.embs-link-l input{flex:1;min-width:200px;font:inherit;font-size:13px;padding:9px 12px;border-radius:10px;border:1px solid rgba(232,194,122,.35);background:rgba(255,255,255,.06);color:#f5ecdc}.embs-qr{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border-radius:16px;background:#fff;color:#3a3226;font-size:11.5px;text-align:center;max-width:200px}.embs-qr svg{width:168px;height:168px}.embs-bloco{border:1px solid var(--line,rgba(0,0,0,.09));border-radius:18px;padding:18px 20px;background:var(--surface,#fff)}.embs-bloco-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:10px}.embs-bloco-h b{font-size:16px}.embs-bloco-h span{font-size:13px;color:var(--ink2,#6e6e73)}.embs-bar{background:rgba(0,0,0,.07)}.embs-esc{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.embs-esc li{border:1px solid var(--line,rgba(0,0,0,.1));border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.embs-esc li b{font-size:15px}.embs-esc li span{font-size:13px;color:var(--ink2,#6e6e73)}.embs-esc li em{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#a07a35;min-height:14px}.embs-esc li.ok{background:linear-gradient(135deg,#fbf3e2,#fff);border-color:#e8cf9a}.embs-esc li.prox{border-color:#c99a4b;box-shadow:0 0 0 3px rgba(201,154,75,.15)}.embs-amg{display:flex;flex-direction:column;gap:6px}.embs-amg-l{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--bg,#fafafa)}.embs-amg-n{font-weight:600;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.embs-amg-s{font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:99px;background:rgba(0,0,0,.05);color:var(--ink2,#6e6e73);flex:none}.embs-amg-s.ok{background:#e8f5ec;color:#1f7a37}.embs-vazio{color:var(--ink2,#8a8a8f);font-size:14px;margin:6px 0}.embs-nota{font-size:12.5px;color:var(--ink2,#8a8a8f);margin:10px 0 0}.embs-amg-mais summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--ink2,#6e6e73);padding:8px 2px}.embs-amg-mais .embs-amg{margin-top:6px}.embs-com summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:10px;align-items:baseline}.embs-com summary span{font-size:13px;color:var(--ink2,#6e6e73)}
		/* ── Visão geral: faixa de SAÚDE DA CONTA (índice clicável) + bloco "Sua conta" ────────── */
		.pvg-saude{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 16px}
		.pvg-chip{appearance:none;font-family:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px;
			padding:12px 13px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);
			transition:border-color .15s ease,transform .15s ease}
		.pvg-chip:hover{border-color:var(--ink3);transform:translateY(-1px)}
		.pvg-chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
		.pvg-chip-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
		.pvg-chip-ic{font-size:15px;line-height:1}
		.pvg-chip-seta{font-size:12px;color:var(--ink3);opacity:0;transition:opacity .15s ease}
		.pvg-chip:hover .pvg-chip-seta{opacity:1}
		.pvg-chip-rot{font-size:11.5px;color:var(--ink2)}
		.pvg-chip-val{font-size:13.5px;font-weight:800;color:var(--ink);line-height:1.25}
		.pvg-chip.pend{border-color:#F0C98A;background:#FDF6EA}
		.pvg-chip.pend .pvg-chip-val{color:#9A5B0B}
		.pvg-chip.pend .pvg-chip-rot{color:#9A5B0B;opacity:.8}
		@media(prefers-reduced-motion:reduce){.pvg-chip,.pvg-chip-seta{transition:none}.pvg-chip:hover{transform:none}}

		/* Assinatura e convite do app dividem a linha; empilham no mobile. Os dois filhos são cards
		   inteiros de outros módulos (.pcard/.pwac) — por isso margem zerada aqui, senão dobra o gap. */
		.pvg-duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px;align-items:start}
		.pvg-duo>*{margin-bottom:0!important;min-width:0}
		.pvg-duo .pwac{margin-bottom:0!important}
		@media(max-width:860px){.pvg-duo{grid-template-columns:1fr}}
		.pvg-conta{margin:0 0 16px}
		/* Nada pendente: o bloco inteiro vira uma linha. Quem já configurou tudo vê trabalho, não manutenção. */
		.pvg-conta-ok{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
		.pvg-conta-ok>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:14px 16px}
		.pvg-conta-ok>summary::-webkit-details-marker{display:none}
		.pvg-conta-ok>summary:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:var(--r-lg)}
		.pvg-ok-ic{flex:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
			background:#E8F6EE;color:#1F7A37;font-weight:800;font-size:14px}
		.pvg-ok-txt{flex:1;min-width:0}
		.pvg-ok-txt b{display:block;font-size:14px;color:var(--ink)}
		.pvg-ok-txt span{display:block;font-size:12px;color:var(--ink2);margin-top:1px}
		.pvg-ok-mais{flex:none;font-size:12px;font-weight:700;color:var(--brand)}
		.pvg-conta-ok[open]>summary{border-bottom:1px solid var(--line)}
		.pvg-conta-in{padding:14px 16px 16px}

		.lbio-avatar-editor{display:flex;align-items:center;gap:14px}
		.lbio-avatar-filtro-preto img{filter:brightness(0)}
		.lbio-avatar-filtro-branco img{filter:brightness(0) invert(1);background:#ececec}

		.plink-handle{display:none;cursor:grab;color:var(--ink3);align-items:center;flex:none;touch-action:none}
		.plink-handle:active{cursor:grabbing}
		.plink-row.arrastando{opacity:.45}
		/* Drag-and-Drop nativo só é confiável com um ponteiro preciso (mouse/trackpad) —
		   em touch a alça some e os botões ↑/↓ seguem sempre disponíveis. */
		@media (pointer:fine){.plink-handle{display:flex}}

		/* ---------- cards / kpis (usados por Visão Geral e módulos) ---------- */
		.pkpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}
		.pkpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}
		.pkpi span{display:block;font-size:12px;color:var(--ink2);margin-bottom:8px}
		.pkpi b{display:block;font-size:24px;font-weight:700;letter-spacing:-.02em}
		.pkpi small{display:block;font-size:11px;color:var(--ink3);margin-top:4px}

		.pcard-grid{display:grid;grid-template-columns:1fr;gap:12px}
		.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px}
		.pcard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
		.pcard-head b{font-size:14.5px;font-weight:600}
		/* 📂 (2434) ÁREAS RECOLHÍVEIS — ver pilarRecolheBoot no JS do shell. Só age dentro de uma raiz
		   [data-recolhe] (Admin Master, Área de testes): o cabeçalho do cartão vira o toggle (▸ à esquerda) e,
		   fechado, o cartão é uma linha. `!important` porque o conteúdo costuma trazer display inline. */
		.pcol>.pcard-head{position:relative;padding-left:20px;cursor:pointer;user-select:none;margin-bottom:0}
		.pcol>.pcard-head::before{content:'▸';position:absolute;left:3px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--ink2);transition:transform .15s ease}
		.pcol.on>.pcard-head::before{transform:translateY(-50%) rotate(90deg)}
		.pcol.on>.pcard-head{margin-bottom:14px}
		.pcol:not(.on){padding-top:13px;padding-bottom:13px}
		.pcol:not(.on)>:not(.pcard-head){display:none!important}
				.pcol>.pcard-head:hover>b{color:var(--brand)}
				.pcol>.pcard-head:focus-visible{outline:2px solid var(--brand);outline-offset:4px;border-radius:6px}
		/* Acordeão de nível de cima (details.padm-acc fora de cartão) ganha a mesma cara de área que os cartões
		   e que as áreas da Central. `details.` na frente: a regra `.padm-acc>summary` do Admin vem DEPOIS no
		   documento e empataria em especificidade. */
		details.pcol-acc{margin-top:12px}
		details.pcol-acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);user-select:none;text-transform:none;letter-spacing:0;font-size:14.5px;font-weight:600;color:var(--ink)}
		details.pcol-acc>summary::before{content:'▸';font-size:13px;color:var(--ink2);transition:transform .15s ease}
		details.pcol-acc[open]>summary::before{transform:rotate(90deg)}
		details.pcol-acc>summary::after{display:none}
		details.pcol-acc[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}
		details.pcol-acc>summary:hover{color:var(--brand)}
		details.pcol-acc>.padm-acc-bd{border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r-lg) var(--r-lg);padding:12px 14px 14px}
		details.pcol-acc .padm-acc-tt{font-size:14.5px;font-weight:600;text-transform:none;letter-spacing:0}
		details.pcol-acc .padm-acc-tt small{font-weight:400;font-size:12px;text-transform:none;letter-spacing:0;color:var(--ink2)}
		/* 📖 A EXPLICAÇÃO (v1.4.1988) — `.phint` é a classe com que a casa inteira explica as coisas:
		   1108 usos em 60 arquivos, e UMA definição, esta. Ela era `12px` em `--ink3` (#a1a1a6), o que
		   dá **2,55:1 de contraste** sobre branco — abaixo do mínimo de 4,5:1 e abaixo até do de texto
		   grande (3:1). O dono descreveu isso como «muito clarinhas... ocultas», e estava medindo
		   certo sem precisar da conta. Em `--ink2` (#6e6e73) são **5,07:1**.
		   🔴 E faltavam as variantes: negrito dentro de um hint herdava o mesmo cinza, então GRIFAR
		   NÃO GRIFAVA NADA — o texto tinha ênfase no código e nenhuma na tela. Link idem.
		   A precedência já existia na casa e eu só a estendi: `class-pilar-auth.php` já escurecia
		   para `--ink2` na tela de entrada, e `mod-integracoes.php` já tinha o seu `b` mais escuro.

		   🔴 SÓ COR — nada de `font-size` nem `line-height` nesta regra base. Cor não é propriedade
		   de layout: restrita a ela, a mudança não pode reposicionar NADA em 1108 lugares. Tamanho
		   e entrelinha podem, e há pelo menos cinco regras que metem `.phint` dentro de uma barra
		   flex apertada (`.pcen-estado-pe`, `.pcen-atalho`, e as barras de prévia de contratos,
		   orçamentos e tarefas), onde alguns pixels de entrelinha mudam a altura da barra.
		   🔴 E se conserta `.phint`, NUNCA o token `--ink3`: ele segue fazendo trabalho legítimo
		   como tom terciário em `.pkpi small`, nos rótulos das portas e nos marcadores `▸`. O
		   defeito era a explicação ter sido classificada como terciária, não o terciário estar errado. */
		.phint{color:var(--ink2)}
		.phint b,.phint strong{color:var(--ink);font-weight:600}
		.phint a{color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:2px}

		/* 🗣️ A CAIXA DE RECADO (v1.4.1988). Dez módulos já tinham inventado a sua — `.cmp-aviso`,
		   `.pint-aviso`, `.pem-aviso`, `.prop-aviso`, `.reun-aviso`, `.lc-aviso`, `.ctb-nota`,
		   `.agcal-aviso`, `.pcb-ia`, `.ens-aviso` — todas com a MESMA receita e nome diferente.
		   Dez reinvenções da mesma coisa é a prova de que ela pertence à casca, não ao módulo.
		   ⚠️ As dez continuam de pé: unificá-las é outra entrega, com o dono decidindo. Esta é para
		   tela nova, e a cor tem significado fixo — azul informa, âmbar pede cuidado, roxo nasceu de IA. */
		.pnota{padding:11px 13px;border-radius:11px;font-size:13px;line-height:1.55;margin:0 0 12px;border:1px solid}
		.pnota-info{background:#f0f7ff;border-color:#cfe4ff;color:#20405e}
		.pnota-aviso{background:#fff7e6;border-color:#f0dca6;color:#7a5510}
		.pnota-ia{background:#f4f0ff;border-color:#e0d6fa;color:#43356e}
		.pnota b{font-weight:700}
		.pnota .phint{color:inherit;opacity:.85}

		/* 🔢 O PASSO NUMERADO (v1.4.1988). O desenho é o da aba Google & Meta, que o próprio dono
		   apontou como o que funciona. Lá ele mora em `mod-integracoes.php` atrás de uma guarda
		   `static` — não viaja para outro módulo nem para o Admin Master. Aqui viaja.
		   🔴 A bolinha usa `var(--brand)`, e não o verde cravado do original: ela tem de assumir a
		   cor da conta, senão o componente não serve aos 21 segmentos. */
		.ppasso{display:flex;align-items:flex-start;gap:11px;padding:16px 0 0;margin:0 0 14px;border-top:1px solid var(--line2)}
		.ppasso:first-of-type{border-top:0;padding-top:0}
		.ppasso-n{flex:none;width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;font-weight:800;font-size:12.5px;display:flex;align-items:center;justify-content:center;margin-top:1px}
		.ppasso-tx{flex:1;min-width:0}
		.ppasso-tx>b{display:block;font-size:14.5px;font-weight:650;letter-spacing:-.01em}
		.ppasso-tx>span{display:block;font-size:12.5px;color:var(--ink2);line-height:1.55;margin-top:2px}
		.ppasso-cp{margin-top:10px}
		.ppasso-bt{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
		/* ⏳ O passo que NÃO é da sequência: acontece depois, noutro dia, e pode nem acontecer.
		   Numerá-lo junto de 1-2-3 ensinaria a ordem errada — a bolinha fica vazada para dizer
		   «isto também é um passo, mas não agora». */
		.ppasso-depois>.ppasso-n{background:transparent;color:var(--ink2);box-shadow:0 0 0 1px var(--line) inset;font-weight:600}
		.ppasso-depois{border-top-style:dashed}

		/* ▸ A SANFONA (v1.4.1988) — instrução longa é útil na primeira vez e ruído nas outras.
		   Mesmo desenho do `.padm-acc` do Admin Master, que já resolvia isso só para ele. */
		.pacc{border:1px dashed var(--line);border-radius:10px;padding:0 12px;margin-top:10px}
		.pacc>summary{list-style:none;cursor:pointer;padding:9px 0;display:flex;align-items:center;gap:8px;user-select:none;font-size:12.5px;font-weight:600;color:var(--ink2)}
		.pacc>summary::-webkit-details-marker{display:none}
		.pacc>summary::after{content:'▸';margin-left:auto;color:var(--ink3);transition:transform .15s ease}
		.pacc[open]>summary::after{transform:rotate(90deg)}
		.pacc[open]>summary{border-bottom:1px solid var(--line2)}
		.pacc-bd{padding:10px 0 12px}

		.pcard-danger{border-color:rgba(255,59,48,.3);background:rgba(255,59,48,.04)}

		/* 💳 O cronômetro do card "Sua assinatura" (v1.4.1918) — o dono pediu que ficasse CLARO
		   pro cliente que está em falta, não enterrado numa frase. Três degraus de urgência
		   (a régua é a mesma do TOLERANCIA_DIAS: 14 dias até bloquear) e o mais grave PULSA —
		   com saída pra quem prefere menos movimento na tela. */
		.pcard-prazo{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:10px;margin:0 0 10px;font-size:13px;font-weight:700;line-height:1.35}
		.pcard-prazo-ic{font-size:15px;flex:none}
		.pcard-prazo-aviso{background:rgba(255,149,0,.12);color:#b25f00;border:1px solid rgba(255,149,0,.25)}
		.pcard-prazo-alerta{background:rgba(255,110,0,.14);color:#9a4200;border:1px solid rgba(255,110,0,.32)}
		.pcard-prazo-critico{background:rgba(255,59,48,.12);color:#b3261e;border:1px solid rgba(255,59,48,.32);animation:pcardPrazoPulso 1.6s ease-in-out infinite}
		@keyframes pcardPrazoPulso{0%,100%{box-shadow:0 0 0 0 rgba(255,59,48,.22)}50%{box-shadow:0 0 0 6px rgba(255,59,48,0)}}
		/* O CTA de pagar também pulsa nos estados que pedem ação — a mesma régua visual do
		   card_dashboard_html(): sem isso o botão fica do tamanho de qualquer outro, e é
		   justamente o que precisa ser achado primeiro numa tela cheia de outros cartões. */
		.pcard-btn-pulso{animation:pcardBtnPulso 1.9s ease-in-out infinite}
		@keyframes pcardBtnPulso{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--brand,#0071e3) 45%,transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--brand,#0071e3) 0%,transparent)}}
		@media(prefers-reduced-motion:reduce){.pcard-prazo-critico,.pcard-btn-pulso{animation:none}}
		/* 🧾 A garantia (ou o alerta) de nota fiscal — mesma análise de `cadastro_pendencias()`,
		   só que agora nomeando explicitamente o que está em jogo: sem os 4 campos, a NF desta
		   cobrança NÃO sai, e isso ficava implícito atrás de "cadastro incompleto". */
		.pcard-nf-ok{background:rgba(52,199,89,.1);color:#1f7a37;border:1px solid rgba(52,199,89,.24);border-radius:10px;padding:8px 12px;margin:0 0 10px;font-size:12px;line-height:1.45}

		.pchart{display:flex;align-items:flex-end;gap:8px;height:120px}
		.pbar{flex:1;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--brand),color-mix(in srgb,var(--brand) 55%,#fff));min-height:4px}
		.pempty-mini{font-size:13px;color:var(--ink3);text-align:center;padding:20px 8px}

		.pfeed{list-style:none;display:flex;flex-direction:column;gap:12px}
		.pfeed li{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--ink);line-height:1.4}
		.pfeed .pdot{width:6px;height:6px;border-radius:50%;background:var(--brand);margin-top:6px;flex:none}
		.pfeed time{margin-left:auto;font-size:11px;color:var(--ink3);white-space:nowrap;flex:none}

		.pquick-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}

		.pkv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line2);font-size:13.5px}
		.pkv:last-child{border-bottom:0}
		.pkv span{color:var(--ink2)}

		/* ---------- listas genéricas dos módulos ---------- */
		.plist{display:flex;flex-direction:column;gap:10px}
		.prow{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
		.prow-main{flex:1;min-width:160px}
		.prow-main b{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.01em}
		.prow-main span{display:block;font-size:12.5px;color:var(--ink2);margin-top:2px}
		.prow-valor{font-size:14.5px;font-weight:600;white-space:nowrap}
		.pbadge{display:inline-block;font-size:11px;font-weight:600;padding:4px 10px;border-radius:99px;white-space:nowrap}
		.pbadge-neutro{background:rgba(0,0,0,.06);color:var(--ink2)}
		.pbadge-azul{background:rgba(0,113,227,.12);color:#0071e3}
		.pbadge-verde{background:rgba(52,199,89,.12);color:#1f7a37}
		.pbadge-vermelho{background:rgba(255,59,48,.1);color:#b3261e}
		.pbadge-laranja{background:rgba(255,149,0,.12);color:#b25f00}
		/* Badges de IA (roxo ✦iA) / Automação (laranja ⚡) — menu lateral, editor de menu e legenda. */
		.pbadges{display:inline-flex;gap:4px;align-items:center;vertical-align:middle}
		.pbadge-ia,.pbadge-bot{display:inline-flex;align-items:center;gap:2px;font-size:9px;font-weight:800;line-height:1;letter-spacing:.02em;padding:2px 5px;border-radius:6px;white-space:nowrap}
		.pbadge-ia svg,.pbadge-bot svg{width:9px;height:9px;flex:none}
		.pbadge-ia{color:#7c3aed;background:rgba(124,58,237,.12)}
		.pbadge-bot{color:#c96a00;background:rgba(255,149,0,.16);padding:2px 4px}
		.pnav-item .pbadges{flex:none}
		.pnav-badges-wrap{display:flex;align-items:center;gap:6px;flex:none;margin-left:auto}
		.pbadge-legenda{display:flex;flex-direction:column;gap:9px;margin:14px 12px 2px;padding-top:13px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink2)}
		.pbadge-legenda .pbl-row{display:inline-flex;align-items:center;gap:6px}
		/* 🔴 (2026-08-29, varredura de botões escondidos) sem flex-wrap a linha não quebra: o que passa da largura sai do card e some — quem tem tela grande nunca vê. */
		.prow-acoes{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
		.prow-acoes select{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12.5px;background:#fff}
		.prow-acoes button{font-size:12px;color:var(--ink3);padding:4px 6px}
		.prow-acoes button:hover{color:#b3261e}
		.pprogress{width:100%;height:5px;border-radius:99px;background:rgba(0,0,0,.08);overflow:hidden;margin-top:8px}
		.pprogress i{display:block;height:100%;background:var(--brand);border-radius:99px}

		.pfilter-row{display:flex;gap:8px;margin-bottom:14px;overflow-x:auto;padding-bottom:2px}
		.pfilter{flex:none;border:1px solid var(--line);border-radius:99px;padding:6px 14px;font-size:12.5px;color:var(--ink2);background:#fff;white-space:nowrap}
		.pfilter.on{background:var(--ink);border-color:var(--ink);color:#fff}

		.pmodo-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}
		.pmodo-card{text-align:left;border:1.5px solid var(--line);border-radius:var(--r-md);padding:14px;background:#fff;transition:border-color .15s}
		.pmodo-card b{display:block;font-size:14px;font-weight:600;margin-bottom:3px}
		.pmodo-card span{display:block;font-size:12.5px;color:var(--ink2);line-height:1.4}
		.pmodo-card.on{border-color:var(--brand);background:var(--brand-08)}
		.pmodo-card.on b{color:var(--brand)}
		@media (min-width:640px){.pmodo-grid{grid-template-columns:1fr 1fr}}

		.plbio-editor-grid{display:flex;flex-direction:column;gap:14px}
		.plbio-config-col{display:flex;flex-direction:column;gap:12px;min-width:0}
		@media (min-width:960px){
			.plbio-editor-grid{flex-direction:row;align-items:flex-start;gap:20px}
			.plbio-links-card{flex:0 0 400px}
			.plbio-config-col{flex:1}
		}

		.plinklist{display:flex;flex-direction:column;gap:8px}
		.plink-row{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;flex-wrap:wrap}

		.pempty{text-align:center;padding:40px 16px;color:var(--ink3)}
		.pempty-ic{width:52px;height:52px;border-radius:50%;background:var(--brand-12);color:var(--brand);display:grid;place-items:center;margin:0 auto 16px}
		.pempty b{display:block;color:var(--ink);font-size:15px;margin:10px 0 4px}
		.pempty p{font-size:13px;max-width:320px;margin:0 auto 14px}

		/* ---------- modal (compartilhado por todos os módulos) ---------- */
		.pmodal-ov{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:100;display:none;align-items:flex-end;justify-content:center}
		.pmodal-ov.on{display:flex}
		.pmodal-card{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:480px;max-height:85vh;overflow-y:auto;padding:22px;animation:pSlideUp .25s}
		@keyframes pSlideUp{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
		.pmodal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
		.pmodal-head h3{font-size:18px;font-weight:700}
		.pmodal-head button{font-size:22px;color:var(--ink3);line-height:1}
		.pmodal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
		.pmodal-card-lg{max-width:400px}

		/* ---------- wizard "sincronizar contatos" (simulação das telas do iPhone/Android) ---------- */
		.cdwiz-tabs{display:flex;gap:6px;margin-bottom:14px}
		.cdwiz-tab{flex:1;text-align:center;padding:8px 4px;font-size:12.5px;font-weight:700;border-radius:10px;background:var(--surface,#fff);color:var(--ink3);border:1px solid var(--line2)}
		.cdwiz-tab.on{background:var(--brand);color:#fff;border-color:var(--brand)}
		.cdwiz-linkbox{display:flex;gap:8px;align-items:center;margin-bottom:14px;padding:9px 11px;background:var(--brand-08);border-radius:10px}
		.cdwiz-linkbox input{flex:1;min-width:0;background:transparent;border:0;font-size:11.5px;color:var(--ink2)}
		.cdwiz-dots{display:flex;justify-content:center;gap:6px;margin-bottom:12px}
		.cdwiz-dot{width:6px;height:6px;border-radius:50%;background:var(--line2)}
		.cdwiz-dot.on{background:var(--brand);width:16px;border-radius:4px}
		.cdwiz-txt{font-size:13px;color:var(--ink);line-height:1.5;margin-bottom:14px;text-align:center;padding:0 4px}
		.cdwiz-txt b{color:var(--brand)}
		.cdwiz-phone{background:#f2f2f7;border:8px solid #1c1c1e;border-radius:34px;overflow:hidden;max-width:260px;margin:0 auto;box-shadow:0 12px 30px rgba(0,0,0,.18)}
		.cdwiz-phone.android{border-color:#202124;border-radius:22px}
		.cdwiz-notch{height:20px;background:#1c1c1e;border-radius:0 0 12px 12px;width:100px;margin:0 auto}
		.cdwiz-phone.android .cdwiz-notch{display:none}
		.cdwiz-screen{background:#fff;min-height:250px;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",Roboto,sans-serif}
		.cdwiz-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:11.5px;font-weight:600;color:#0071e3;background:#f8f8fa;border-bottom:1px solid #e5e5ea}
		.cdwiz-bar b{color:#1c1c1e;font-weight:700;font-size:12.5px}
		.cdwiz-bar.android{background:#1a73e8;color:#fff}
		.cdwiz-bar.android b{color:#fff}
		.cdwiz-list{background:#fff}
		.cdwiz-row{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;font-size:12px;color:#1c1c1e;border-bottom:1px solid #e5e5ea}
		.cdwiz-row .chev{color:#c7c7cc;font-size:13px}
		.cdwiz-row.hl{background:#eaf3ff;position:relative}
		.cdwiz-row.hl:after{content:'';position:absolute;right:8px;top:50%;width:20px;height:20px;margin-top:-10px;border-radius:50%;background:rgba(0,113,227,.3);animation:cdwizTap 1.3s ease-in-out infinite}
		.cdwiz-phone.android .cdwiz-row.hl:after{background:rgba(26,115,232,.3)}
		@keyframes cdwizTap{0%{transform:scale(.5);opacity:1}70%{transform:scale(1.4);opacity:0}100%{opacity:0}}
		.cdwiz-hdr{padding:6px 14px;font-size:10px;font-weight:700;color:#8e8e93;letter-spacing:.03em;background:#f2f2f7}
		.cdwiz-field{padding:9px 14px;border-bottom:1px solid #e5e5ea}
		.cdwiz-field label{display:block;color:#8e8e93;font-size:10px;margin-bottom:2px}
		.cdwiz-field div{color:#1c1c1e;font-size:12px;word-break:break-all}
		.cdwiz-field.filled div{color:#0071e3;font-weight:600}
		.cdwiz-btn-blue{color:#0071e3;font-weight:600}
		.cdwiz-fab-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#1a73e8;color:#fff;font-size:18px;font-weight:700}
		.cdwiz-fab-btn.hl{box-shadow:0 0 0 6px rgba(26,115,232,.25)}

		/* ---------- card premium "instalar app" (topo da Visão Geral) ---------- */
		.pwac{display:none;gap:18px;align-items:center;padding:20px;margin-bottom:16px;border-radius:var(--r-lg);
		  background:linear-gradient(135deg,color-mix(in srgb, var(--brand) 12%, #fff),color-mix(in srgb, var(--brand) 3%, #fff) 55%,#fff);
		  border:1px solid color-mix(in srgb, var(--brand) 16%, transparent)}
		.pwac.on{display:flex;animation:pwacCardIn .4s ease both}
		.pwac-fone{width:84px;height:150px;border-radius:16px;background:#1d1d1f;padding:6px;flex:none;box-shadow:0 14px 30px -10px rgba(0,0,0,.4)}
		.pwac-tela{position:relative;width:100%;height:100%;border-radius:11px;background:var(--bg);overflow:hidden}
		.pwac-app{position:absolute;width:22%;aspect-ratio:1;border-radius:22%;background:color-mix(in srgb, var(--brand) 10%, transparent)}
		.pwac-app.a{top:10%;left:10%} .pwac-app.b{top:10%;right:10%}
		.pwac-app.c{bottom:10%;left:10%} .pwac-app.d{bottom:10%;right:10%}
		.pwac-slot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:42%;aspect-ratio:1;display:grid;place-items:center}
		.pwac-glow{position:absolute;inset:-22%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb, var(--brand) 32%, transparent),transparent 68%);opacity:0;z-index:0}
		.pwac-icone{position:relative;z-index:1;width:100%;height:100%;border-radius:22%;object-fit:cover;opacity:0;background:#fff;box-shadow:0 6px 16px -4px rgba(0,0,0,.45),0 0 0 1px rgba(0,0,0,.08)}
		.pwac-sp{position:absolute;font-size:10px;line-height:1;color:var(--brand);opacity:0}
		.pwac-sp.s1{top:-8px;left:-12px} .pwac-sp.s2{top:-12px;right:-16px} .pwac-sp.s3{bottom:-8px;right:-8px}
		.pwac.on .pwac-icone{animation:pwacPop .8s .25s cubic-bezier(.34,1.56,.64,1) both}
		.pwac.on .pwac-glow{animation:pwacGlow 2.2s .25s ease-in-out infinite}
		.pwac.on .pwac-sp.s1{animation:pwacSparkle 1.6s .55s ease-in-out infinite}
		.pwac.on .pwac-sp.s2{animation:pwacSparkle 1.6s .85s ease-in-out infinite}
		.pwac.on .pwac-sp.s3{animation:pwacSparkle 1.6s 1.15s ease-in-out infinite}
		@keyframes pwacCardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
		@keyframes pwacPop{0%{transform:scale(.2) rotate(-20deg);opacity:0}55%{transform:scale(1.15) rotate(4deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
		@keyframes pwacGlow{0%,100%{opacity:.25;transform:scale(.9)}50%{opacity:.55;transform:scale(1.1)}}
		@keyframes pwacSparkle{0%,100%{opacity:0;transform:scale(.5) translateY(2px)}50%{opacity:1;transform:scale(1) translateY(-4px)}}
		@media(prefers-reduced-motion:reduce){.pwac-icone,.pwac-glow,.pwac-sp{animation:none !important;opacity:1 !important}.pwac.on{animation:none}}
		.pwac-body{flex:1;min-width:0}
		.pwac-tt{font-size:17px;font-weight:700;color:var(--ink);margin:2px 0 6px;letter-spacing:-.01em}
		.pwac-sub{font-size:12.5px;color:var(--ink2);margin:0 0 14px;line-height:1.5}
		.pwac-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
		.pwac-ja{background:none;border:none;font-size:12.5px;font-weight:600;color:var(--ink2);cursor:pointer;padding:6px 2px;text-decoration:underline;text-underline-offset:2px}
		.pwac-ja:hover{color:var(--ink)}
		@media(max-width:560px){.pwac{flex-direction:column;text-align:center}.pwac-fone{margin:0 auto}.pwac-acts{justify-content:center}}
		.ppwa-deteccao{font-size:12px;color:var(--ink2);margin:0 0 12px}
		/* Barra flutuante de personificação ("logar como") — inequívoca, acima da bottombar. SEMPRE
		   centralizada (nunca gruda no canto direito) — era ali que ela brigava com botões flutuantes
		   por-página (Salvar, gravar áudio…) que também vivem no canto inferior direito. */
		.pimp-banner{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--bottombar-h) + 10px + env(safe-area-inset-bottom));z-index:95;
		  display:flex;align-items:center;gap:8px;max-width:calc(100vw - 24px);background:#17171c;color:#fff;
		  border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.4);padding:6px 7px 6px 11px;animation:pSlideUp .3s}
		.pimp-dot{width:7px;height:7px;border-radius:50%;background:#ff453a;flex:none;animation:pImpPulse 1.3s ease-in-out infinite}
		.pimp-txt{font-size:11px;line-height:1.25;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
		.pimp-txt b{font-weight:700}
		.pimp-sair{flex:none;background:#fff;color:#17171c;border:0;border-radius:8px;font-size:10.5px;font-weight:700;padding:5px 10px;cursor:pointer}
		.pimp-sair:hover{background:#f0f0f2}
		@keyframes pImpPulse{0%,100%{opacity:1}50%{opacity:.3}}
		@media(min-width:960px){.pimp-banner{bottom:16px}}
		.psub-banner{position:sticky;top:0;z-index:97;display:flex;align-items:center;gap:10px;padding:9px 16px;
		  background:#fff3cd;color:#7a5b00;border-bottom:1px solid #f2e3a0;font-size:12.5px;font-weight:600;line-height:1.35}
		.psub-banner .psub-ico{flex:none;width:18px;height:18px;border-radius:50%;background:#e0a800;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:12px}
		.pimp-row{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:#fff;border:1px solid var(--line2);
		  border-radius:10px;padding:9px 12px;margin-bottom:6px;cursor:pointer}
		.pimp-row:hover{border-color:var(--brand);background:var(--brand-08)}
		.pimp-row-nome{font-size:13.5px;font-weight:700;color:var(--ink)}
		.pimp-badge{display:inline-block;margin-left:6px;font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#8a5a00;background:#fff3d6;border:1px solid #f0dca6;border-radius:99px;padding:1px 7px;vertical-align:middle}
		.pimp-row-sub{font-size:11.5px;color:var(--ink2)}
		.ppwa-steps{list-style:none;display:flex;flex-direction:column;gap:12px}
		.ppwa-steps li{display:flex;align-items:flex-start;gap:12px;font-size:13.5px;color:var(--ink)}
		.ppwa-steps li i{flex:none;width:32px;height:32px;border-radius:10px;background:var(--brand-12);color:var(--brand);display:grid;place-items:center}
		.ppwa-steps li div{padding-top:5px}

		/* ---------- abas (Configurações) ---------- */
		.ptabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;margin-bottom:18px;border-bottom:1px solid var(--line2)}
		.ptab{flex:none;padding:10px 4px;font-size:14px;font-weight:600;color:var(--ink3);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
		.ptab.on{color:var(--brand);border-bottom-color:var(--brand)}
		.ptab-panel{display:none}
		.ptab-panel.on{display:block;animation:pFadeUp .3s cubic-bezier(.22,.8,.3,1)}
		@keyframes pFadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

		/* ---------- chips (seleção múltipla — áreas etc.) ---------- */
		.pchips{display:flex;flex-wrap:wrap;gap:8px}
		.pchip{border:1px solid var(--line);border-radius:99px;padding:8px 15px;font-size:13.5px;color:var(--ink2);background:#fff}
		.pchip:hover{border-color:rgba(0,0,0,.22);color:var(--ink)}
		.pchip.on{background:var(--ink);border-color:var(--ink);color:#fff}

		/* ---------- seletor de seções / prévia de menu (Pilar_Equipe) ----------
		   Mora AQUI, no CSS do shell, e não num <style> dentro de #pMain: o seletor é usado
		   tanto na aba Equipe (dentro de #pMain) quanto no overlay do wizard #pWizOv, que fica
		   FORA de #pMain — um <style> local só vestiria metade dos lugares. Mesma armadilha já
		   registrada pra modais no body. ---------- */
		.peq-fl{font-size:.85em;margin-left:4px;cursor:help}
		.peq-sel-legenda{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink2);margin-bottom:10px}
		.peq-grp{margin-bottom:14px}
		.peq-grp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid var(--line);margin-bottom:6px}
		.peq-grp-head b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2)}
		.peq-todos{border:0;background:none;padding:2px 4px;font-size:12px;color:var(--ink);cursor:pointer;text-decoration:underline}
		.peq-item{display:flex;gap:9px;align-items:flex-start;padding:7px 8px;border-radius:8px;cursor:pointer}
		.peq-item:hover{background:rgba(0,0,0,.035)}
		.peq-item input{margin-top:3px;flex:none;width:auto}
		.peq-item-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
		.peq-item-txt b{font-weight:600;font-size:14px}
		.peq-item-txt span{font-size:12px;color:var(--ink2);line-height:1.35}
		.peq-locked .peq-item-txt b{opacity:.72}
		/* Reforço por COR além do emoji: 💰/👤 são avisos de risco, 🔒 é estado de contrato.
		   Só o desenho não basta — em vários sistemas emojis distintos ficam parecidos. */
		.peq-sel-legenda .peq-fl{padding:2px 8px;border-radius:20px;font-size:11.5px}
		.peq-sel-legenda .peq-fl-val{background:#fff4e0;color:#8a5a00}
		.peq-sel-legenda .peq-fl-pii{background:#fdecec;color:#a13232}
		.peq-sel-legenda .peq-fl-lock{background:#eef1f7;color:#5a6478}
		.peq-aviso{margin-top:12px;padding:10px 12px;border-radius:9px;background:#fff7e8;border:1px solid #f0d9a8}
		.peq-aviso p{margin:0 0 6px;font-size:13px;line-height:1.45}
		.peq-aviso p:last-child{margin-bottom:0}
		.peq-ed{margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.02)}
		.peq-ed-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
		.peq-ed-head button{background:none;border:0;font-size:16px;cursor:pointer;color:var(--ink2)}
		.peq-ed-nome{display:block;margin-bottom:14px}
		.peq-ed-nome span{display:block;font-size:12px;color:var(--ink2);margin-bottom:4px}
		.peq-ed-nome input{width:100%;max-width:340px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:15px}
		.peq-ed-cols{display:grid;grid-template-columns:1fr 260px;gap:18px;align-items:start}
		@media (max-width:820px){.peq-ed-cols{grid-template-columns:1fr}}
		.peq-ed-acoes{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
		.peq-prev{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px;font-size:13px}
		.peq-ed-prev .peq-prev{position:sticky;top:8px}
		.peq-prev-head{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);margin-bottom:8px}
		.peq-prev-grp{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);opacity:.75;margin:10px 0 3px}
		.peq-prev-item{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:6px}
		.peq-prev-item svg{width:15px;height:15px;flex:none}
		.peq-prev-lock{opacity:.55}
		.peq-prev-tag{font-size:10px;background:rgba(0,0,0,.06);color:var(--ink2);padding:1px 5px;border-radius:20px;margin-left:auto}
		.peq-prev-nota{margin-top:10px;font-size:11px}

		/* ---------- wizard bespoke (criar/editar membro da equipe) — mesmo espírito
		   visual do wizard público de cadastro (steps+step-panels), só que dentro de
		   um overlay (não página cheia) e com tokens do painel. Ver padrão em
		   feedback_pilar_padrao_wizard: CRIAR algo novo = wizard, não formulário único. ---------- */
		.pwiz-ov{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:110;display:none;align-items:center;justify-content:center;padding:16px}
		.pwiz-ov.on{display:flex}
		.pwiz-card{position:relative;background:#fff;border-radius:var(--r-xl);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:26px;animation:pSlideUp .25s}
		.pwiz-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
		.pwiz-head h3{font-size:18px;font-weight:700}
		.pwiz-head button{font-size:22px;color:var(--ink3);line-height:1}
		.pwiz-steps{display:flex;gap:8px;margin-bottom:22px}
		.pwiz-stepdot{flex:1;display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink3);font-weight:500}
		.pwiz-stepdot i{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;flex:none;font-style:normal}
		.pwiz-stepdot.on{color:var(--ink)}
		.pwiz-stepdot.on i{border-color:var(--brand);background:var(--brand);color:#fff}
		.pwiz-stepdot.done i{border-color:var(--brand);background:var(--brand-12);color:var(--brand)}
		.pwiz-stepdot .bar{flex:1;height:1.5px;background:var(--line);border-radius:99px}
		.pwiz-stepdot.done .bar{background:var(--brand)}
		.pwiz-panel{display:none}
		.pwiz-panel.on{display:block;animation:pFadeUp .3s cubic-bezier(.22,.8,.3,1)}
		.pwiz-actions{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:12px}
		.pwiz-actions .spacer{flex:1}

		.plogout-link{width:100%;text-align:left;padding:8px 10px;font-size:12.5px;color:var(--ink3);margin-top:6px}
		/* Contraste medido sobre o --surface (#ffffff) da barra: #1d1d1f dá 17,4:1 no texto do
		   botão e #6e6e73 dá 5,05:1 na linha de apoio. */
		/* 🔝 (2026-08-31) Caixa do topo: trocar segmento + sair do demo, logo abaixo de .pbrand —
		   pedido do dono pra ficarem MAIS visíveis. Fundo tingido de bordô (a cor da marca da
		   conta demo) pra se destacar do resto da barra (branca), não só reposicionar. */
		.pdemo-topo{background:rgba(138,46,59,.05);border:1px solid rgba(138,46,59,.14);
		  border-radius:12px;padding:10px;margin:0 0 14px}
		.pdemo-topo .pdemo-seg{margin-bottom:8px}
		.pdemo-sair{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;
		  margin-top:0;padding:10px 14px;border:1px solid var(--line);border-radius:999px;
		  background:var(--surface);color:var(--ink);font-family:inherit;font-size:13px;font-weight:600;
		  cursor:pointer;transition:border-color .15s,background .15s,transform .15s}
		.pdemo-sair:hover{border-color:var(--ink);background:var(--bg);transform:translateY(-1px)}
		.pdemo-sair:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
		.pdemo-sair span{transition:transform .15s}
		.pdemo-sair:hover span{transform:translateX(3px)}
		.pdemo-hint{display:block;margin-top:6px;text-align:center;font-size:11.5px;color:var(--ink2)}
		@media (prefers-reduced-motion:reduce){.pdemo-sair,.pdemo-sair span{transition:none}
		 .pdemo-sair:hover{transform:none}.pdemo-sair:hover span{transform:none}}
		.plogout-link:hover{color:#b3261e}

		/* ==================== DESKTOP (mobile-first: media query ACRESCENTA) ==================== */
		@media (min-width:960px){
			.papp{flex-direction:row}
			/* 🖥️ No computador a folha vira a COLUNA de sempre: sem transform, sem visibility, sem
			   z-index de camada por cima. Só isto é do computador — o resto do CSS do menu virou base. */
			.psidebar{position:sticky;inset:auto;top:0;z-index:auto;width:330px;flex:none;height:100vh;
			  background:#fbfbfd;border-right:1px solid var(--line2);padding:20px 14px 16px;
			  transform:none;visibility:visible;transition:none}
			.pnav-fechar{display:none}
			/* 🔴 A folha trava a rolagem do corpo (body{overflow:hidden}) enquanto está aberta. Se a
			   janela alargar com ela aberta, a trava ficaria valendo num layout que não tem folha
			   nenhuma — e a página inteira pararia de rolar. Aqui ela é desfeita. */
			body.pnav-folha-on{overflow:visible}
			.psidebar{padding:20px 14px 16px} /* no computador não há área segura a respeitar */
			.pbrand{padding:6px 8px 0;margin-bottom:22px}
			.pnav-busca input{font-size:13.5px;padding:8px 0}
			.pnav-busca{min-height:38px}
			.pnav-ghead{min-height:0;margin-top:0;justify-content:space-between}
			.pnav-ghead .pnav-label{font-size:10.5px;margin:14px 0 7px}
			.pnav-gico{margin:14px 0 7px 9px}
			.pnav-item{padding:9px 10px;font-size:14px}
			/* 🔑 (1.4.2608) `auto` aposentado: no computador o padrão é o MESMO do celular — Início e
			   travados abertos, o resto fechado. Não há mais «abre tudo no desktop». */
			/* o ✕ só aparece com o ponteiro em cima da linha (no toque, o modo de organizar já o mostra) */
			@media (hover:hover) and (pointer:fine){
				body.pnav-editando .pnav-x{opacity:0;transition:opacity .12s}
				body.pnav-editando .pnav-linha:hover .pnav-x,
				body.pnav-editando .pnav-linha[data-oculto="1"] .pnav-x,
				body.pnav-editando .pnav-x:focus-visible{opacity:1}
			}

			/* ── Tooltip premium do menu: explica o uso prático de cada item ─────────────────────────
			   position:fixed (não absolute) DE PROPÓSITO: .psidebar tem overflow-y:auto, e um popover
			   absoluto que tentasse escapar pra direita da barra seria CORTADO pelo próprio scroll
			   container (overflow-x vira 'auto' implicitamente quando só overflow-y é setado — a barra
			   clipa nos dois eixos). position:fixed ignora esse clipping; JS calcula left/top a cada
			   hover (ver pilarNavColapsoAplicar() e o IIFE logo depois, no <script> do shell). */
			/* 🎈 Z-INDEX 100070 — o balão é a camada MAIS ALTA da interface, e a casa nunca escreveu
			   essa escala. Ficou em 400 desde sempre porque só nascia na barra lateral, onde nada o
			   cobria; quando um `data-tip` passou a ser chamado de DENTRO de um modal (o wizard da
			   Escola Flix, `.pflix .fx-modal` = 9000), o texto aparecia atrás dele. Os três motores
			   LOCAIS de toque longo (`.acld-tipm`, `.loja-tipm`, `.ing-tipm`) já tinham resolvido
			   isso com 99999 — só o motor de mouse do núcleo tinha ficado para trás.
			   ⚠️ Não basta passar do 9000 do caso que apareceu: `ESCOPOS` inclui raízes largas
			   (`#ingRoot`, `#comRoot`, `#pimpHub`, `[data-tab-panel="central"]`), então qualquer
			   modal futuro dentro delas repetiria o bug. 100070 fica acima do teto atual dos
			   overlays de módulo (100060, em `mod-projetos-arq.php`). Acima daqui só a barra de
			   cheats, que é 2147483000 e vive fora da escala de propósito. */
			.ptip{position:fixed;z-index:100070;max-width:272px;padding:12px 14px;border-radius:12px;
				background:linear-gradient(165deg,#1e1f25,#131317);color:#f1f1f4;
				border:1px solid rgba(255,255,255,.09);
				box-shadow:0 20px 44px -14px rgba(0,0,0,.5),0 3px 10px rgba(0,0,0,.28);
				opacity:0;transform:translateX(-6px) scale(.97);transform-origin:left center;
				transition:opacity .16s ease,transform .16s ease;pointer-events:none}
			.ptip.show{opacity:1;transform:translateX(0) scale(1)}
			.ptip-tit{display:block;font-size:12.5px;font-weight:800;letter-spacing:.005em;color:#fff;margin:0 0 4px}
			.ptip-txt{display:block;font-size:12px;line-height:1.55;font-weight:450;color:rgba(241,241,244,.82)}
			/* 🎓 Blocos do guia das abas: rótulo em versalete + filete, como no balão do Agendar.
			   O primeiro bloco não leva filete — a linha em cima dele seria uma borda dupla com o
			   fim do parágrafo de descrição. */
			.ptip-p{display:block}
			.ptip-p + .ptip-bl{margin-top:9px}
			.ptip-bl{display:block;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.10)}
			.ptip-bl:first-child{margin-top:0;padding-top:0;border-top:0}
			.ptip-lbl{display:block;font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#8ab4ff;margin-bottom:3px}
			.ptip-bl > span{display:block;font-size:12px;line-height:1.55;color:rgba(241,241,244,.82)}
			.ptip{max-width:288px}
			@media(prefers-reduced-motion:reduce){.ptip{transition:none}}
			.pbtab.locked{opacity:.55}

			.pbottombar{display:none}
			.pmain{padding:28px 32px}
			.pportas{padding:10px 32px 0}
			.ptopbar{padding:18px 32px}
			.ptopbar-title h1{font-size:22px}
			.ptopbar-logo{display:none}
			.ptopbar-brandtxt{display:none}

			.pkpi-grid{grid-template-columns:repeat(4,1fr)}
			.pcard-grid{grid-template-columns:1.3fr 1fr}
		}
:root{--pilar-casca:1}
