/* FlowZ · Painel: VISUALIZAÇÃO DO CELULAR (até 860px).
   Este é o único arquivo pra mexer no painel no celular. O index.html carrega ele
   com media="(max-width: 860px)", então nada daqui afeta o computador.
   Organização: 1) estrutura (menu, topo, barra de baixo)  2) componentes comuns
   3) uma seção por módulo (Visão geral, Financeiro, Clientes, Operação).
   Regra: toda mudança no painel é conferida aqui também (celular 390px). */

/* ── 1. Estrutura ───────────────────────────────────────── */
.p-app{grid-template-columns:minmax(0,1fr)}
.p-side{position:fixed;z-index:50;left:0;top:0;bottom:0;width:min(290px,86vw);transform:translateX(-102%);transition:transform .38s var(--ease-out);background:var(--surface);padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}
body.nav-open .p-side{transform:none}
body.nav-open .p-side-scrim{opacity:1;pointer-events:auto}
.p-side-scrim{position:fixed;inset:0;z-index:49;background:rgba(5,4,10,.6);opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}
.p-top{padding:0 12px 0 8px;min-height:56px;padding-top:env(safe-area-inset-top)}
.p-top .p-top-menu{display:inline-flex}
.p-kbd-search{min-width:0;width:44px;height:44px;padding:0;justify-content:center}
.p-kbd-search span,.p-kbd-search kbd{display:none}
.p-sync-time{display:none}
.p-sync,.p-eye,.p-lock{width:44px;min-height:44px}
.p-view{padding:18px 16px calc(96px + env(safe-area-inset-bottom))}
.p-head{margin-bottom:18px}
.p-title{font-size:30px}
.p-sub{font-size:13.5px}
.p-head-actions{width:100%}
.p-head-actions > .p-btn{flex:1 1 auto}
/* Fundo animado (painel.css · .p-aurora): no celular fica parado e sem blur, que pesa no iPhone */
.p-aurora-orb{animation:none;filter:none}
/* Nada arrasta de lado: a página tem a largura da tela do celular (iPhone dava arrasto e zoom) */
html,body{overflow-x:hidden}
@supports (overflow:clip){html,body{overflow-x:clip}}
.p-main,.p-view{min-width:0;max-width:100vw}
/* Menu lateral aberto: se a lista não couber, rola só dentro dela */
.p-side{height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* Barra de atalhos embaixo (polegar): 4 telas mais usadas + Menu */
.p-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:rgba(12,11,22,.86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line)}
.p-tabbar a,.p-tabbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;border:0;border-radius:12px;background:transparent;color:var(--text-3);font-size:10.5px;font-weight:600;text-decoration:none;cursor:pointer;transition:color .2s var(--ease),background .2s var(--ease)}
.p-tabbar a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.08)}
.p-tabbar a[aria-current="page"] svg{color:#d8b4fe}
.p-tabbar a:active,.p-tabbar button:active{transform:scale(.96)}
.p-tabbar .p-nav-count{position:absolute;top:4px;left:calc(50% + 6px);min-width:17px;height:17px;font-size:9.5px;padding:0 4px}

/* Seletor FlowZ | VoltZ Book no menu (core.js) */
.p-prod button{min-height:44px}

/* ── 2. Componentes comuns ──────────────────────────────── */
.p-grid.k3,.p-grid.k2,.p-grid.split{grid-template-columns:minmax(0,1fr)}
.p-grid{gap:12px}
.p-card{padding:16px;border-radius:16px}
.p-card.flush .p-card-head{padding:14px 16px 0}
.p-kpi{padding:14px 16px}
.p-kpi-value{font-size:clamp(20px,16cqi,34px)}
.p-toolbar{gap:8px}
.p-toolbar .p-search{min-width:0;max-width:none;flex:1 1 100%}
.p-seg{width:100%}
.p-seg button{min-height:40px}
.p-pager .p-btn.icon.sm{width:44px;min-height:44px}
.p-card-head .p-head-actions:empty{display:none}
.p-card-head .p-head-actions{width:auto}
.p-input,.p-select,.p-textarea{font-size:16px} /* 16px evita zoom automático do iPhone ao focar */
input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}
.p-cmd-input input{font-size:16px}
.p-btn{min-height:44px}
.p-btn.sm{min-height:36px}
.p-btn.icon{width:44px}
.p-btn.icon.sm{width:36px}

/* Tabelas viram lista de cartões: 1ª coluna é o título, as outras viram "rótulo: valor" */
.p-table-wrap{overflow:visible}
.p-table,.p-table tbody{display:block}
.p-table thead{display:none}
.p-table tbody tr{display:flex;flex-wrap:wrap;gap:8px 14px;padding:14px 16px;border-bottom:1px solid var(--line)}
.p-table tbody tr:last-child{border-bottom:0}
.p-table td{display:flex;flex-direction:column;gap:2px;flex:1 1 40%;min-width:0;max-width:none;padding:0;border:0;text-align:left!important}
.p-table td.p-td-main{flex:1 1 100%}
.p-table td[data-label]:not(.p-td-main)::before{content:attr(data-label);font-size:11.5px;font-weight:600;color:var(--text-3)}
.p-table td.p-m-hide{display:none}
.p-table td:empty{display:none}
.p-pager{padding:12px 16px}
.p-sortctl{display:flex;gap:8px;flex:1 1 100%}
.p-seg,.p-table-wrap,.fi-tabs,.ov-chart-ctl{overscroll-behavior-x:contain}
.p-sortctl .p-select{flex:1;min-width:0}

/* Gaveta (ficha) ocupa a tela toda e fecha pelo X no topo */
.p-drawer{width:100vw;border-left:0;height:100vh;height:100dvh}
.p-drawer-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0}
.p-drawer-head{padding:calc(14px + env(safe-area-inset-top)) 16px 12px}
.p-drawer-head h2{font-size:24px}
.p-drawer-body{padding:16px 16px 24px}
.p-drawer-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
.p-drawer-foot .p-btn{flex:1 1 auto}
/* Com ação destrutiva no rodapé: o botão principal fica sozinho na linha de cima, longe do Apagar/Recusar */
.p-drawer-foot:has(.p-btn.danger) .p-btn.primary{order:-1;flex:1 1 100%}
.p-drawer-foot:has(.p-btn.danger){row-gap:16px}
.p-dl{grid-template-columns:minmax(0,1fr)}
.p-dl dd{margin-bottom:6px}

/* Modal sobe de baixo, como no iPhone */
.p-modal{align-items:end;padding:0}
.p-modal-card{max-width:none;border-radius:20px 20px 0 0;padding:20px 16px calc(16px + env(safe-area-inset-bottom));transform:translateY(24px);
  max-height:calc(100vh - env(safe-area-inset-top) - 12px);max-height:calc(100dvh - env(safe-area-inset-top) - 12px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.p-modal-actions .p-btn{flex:1 1 auto}
.p-cmd{padding:calc(12px + env(safe-area-inset-top)) 12px 12px}
.p-cmd-card{display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 24px - env(safe-area-inset-top));max-height:calc(100dvh - 24px - env(safe-area-inset-top))}
.p-cmd-list{flex:1 1 auto;min-height:0;max-height:none;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

.p-toasts{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));align-items:stretch}

@media (max-width:520px){
  .p-grid.k4{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .p-kpi{padding:13px 14px}
  .p-kpi-value{font-size:clamp(18px,16cqi,28px)}
  .p-kpi-label{font-size:9px;letter-spacing:1.1px}
  .p-title{font-size:27px}
}

/* ── 3. Módulos ─────────────────────────────────────────── */

/* ── 3a. Visão geral e Financeiro ── */
/* Visão geral e Crescimento (overview.css) */
.cg-funnel{grid-template-columns:minmax(0,1fr)}
.cg-stage-num b{font-size:36px}
.ov-stamp{display:none}
/* Topo: o atualizar do cabeçalho some (a barra de cima já tem um), economiza uma linha */
.ov-refresh{display:none}
/* Seletores do gráfico: toque de 44px e rolagem só dentro do seletor */
.ov-chart-ctl{flex-wrap:nowrap;flex-direction:column;align-items:stretch}
.ov-chart-ctl .p-seg{width:100%}
.ov-chart-ctl .p-seg button{min-height:38px;flex:1 0 auto}
.ov-chart-sum b{font-size:28px}
.ov-chart-plot .p-bars{height:150px}
/* Precisa de você: título pode quebrar em 2 linhas, ação vira só a seta */
.ov-need-item{align-items:flex-start;min-height:60px;padding:12px 10px}
.ov-need-ic{margin-top:2px}
.ov-need-copy b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ov-need-cta{align-self:center;font-size:0;gap:0;width:28px;justify-content:flex-end}
.ov-need-cta svg{width:16px;height:16px}
.ov-act-item{min-height:56px}
.ov-plans-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.ov-plan{padding:10px}
.ov-plan small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Pedidos de cadastro (Crescimento): pessoa em cima, depois status, data do pedido e primeiro acesso */
.cg-table-card .p-pager .p-btn{width:44px;min-height:44px}
.cg-steprow{min-height:44px}
/* Skeleton no celular: seletores ocupam a largura, linhas de tabela viram cartão */
.ov-sk-ctl{flex-direction:column}
.ov-sk-ctl .ov-sk-pill{width:100%!important}
.ov-sk-bars{height:150px;gap:3px}
.ov-sk-list.flush .ov-sk-row{flex-wrap:wrap;padding:14px 16px;row-gap:12px}
.ov-sk-list.cells .ov-sk-cells{flex:1 1 100%;padding-left:46px;justify-content:flex-start;gap:14px}
.ov-sk-list.cells .ov-sk-cells .p-skel:nth-child(n+3):not(:last-child){display:none}
.ov-sk-list.cells .ov-sk-cells .p-skel{flex-shrink:1;min-width:0}
@media (max-width:520px){
  .ov-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ov-strip-cell{padding:12px 14px}
  .ov-strip-cell:nth-child(n){border-left:1px solid var(--line);border-top:1px solid var(--line)}
  .ov-strip-cell:nth-child(odd){border-left:0}
  .ov-strip-cell:nth-child(-n+2){border-top:0}
  .ov-strip-cell b{font-size:24px}
  .ov-chart-plot .p-bars{gap:3px;height:150px}
  .ov-chart-plot .p-bars.dense .p-bar b{display:none}
  .ov-chart-plot .p-bars.dense .p-bar:nth-child(odd):not(:last-child) span{visibility:hidden}
  .ov-chart-plot .p-bar span{font-size:8.5px}
  .ov-sk-bar:nth-child(odd) .p-skel:last-child{visibility:hidden}
}

/* Financeiro: Comprovantes e Pagamentos (finance.css) */
/* Abas: as duas cabem lado a lado, rótulo curto */
.fi-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:-6px 0 16px}
.fi-tabs a{justify-content:center;min-height:46px;padding:0 8px}
.fi-tab-x{display:none}
/* Barra de filtros: busca em cima, seletor embaixo com toque de 44px */
.fi-bar{padding:12px;gap:8px}
.fi-bar .p-search{min-width:0;flex:1 1 100%;max-width:none}
.fi-bar .p-seg{width:100%}
.fi-bar .p-seg button{min-height:38px;flex:1 0 auto}
.fi-sum{padding:12px 16px}
.fi-list .p-pager .p-btn,.fi-paylist .p-pager .p-btn{width:44px;min-height:44px}
/* Cartão do comprovante: pagador; valor e status; produtor inteiro; quando chegou */
.fi-list .p-table td.fi-c-val{order:1}
.fi-list .p-table td.fi-c-st{order:2}
.fi-list .p-table td.fi-c-prod{order:3;flex-basis:100%}
.fi-list .p-table td.fi-c-when{order:4}
.fi-prod{max-width:none}
.fi-list .p-table td,.fi-paylist .p-table td,.cg-table .p-table td{align-items:flex-start}
/* Cartão do pagamento: produtor; valor e situação; data e forma */
.fi-paylist .p-table td.fi-c-val{order:1}
.fi-paylist .p-table td.fi-c-sit{order:2}
.fi-paylist .p-table td.fi-c-when{order:3}
.fi-paylist .p-table td.fi-c-st{order:4}
.fi-amount{font-size:19px}
/* Gaveta: resumo em 2 colunas, escolher produtor com toque grande */
.fi-hero{grid-template-columns:repeat(2,minmax(0,1fr))}
.fi-checks li{min-height:44px}
.fi-pick{min-height:56px}
.fi-mix-total b{font-size:28px}

/* ── 3a+. Visão geral: parcerias ── */
/* Visão geral: receita recorrente dividida e parcerias (celular) */
.ov-plans-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ov-plan small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-split-legend{flex-direction:column;align-items:flex-start;gap:6px}
.ov-partner{min-height:52px}
.ov-partner-val{font-size:16px}
.ov-chart-legend .ov-chart-note{margin-left:0;flex-basis:100%}
.ov-need-copy b{white-space:normal}

/* ── 3a+. Financeiro: ajuste, comprovantes, recebimento ── */
/* finance: Pagamentos (ajuste, anexos, registrar recebimento) */
.fi-segbox{width:100%}
.fi-segbox .p-seg{width:100%}
.fi-segbox .p-seg button{min-height:40px;flex:1 0 auto;padding:0 8px}
.fi-paylist .p-table td.fi-c-files{order:5}
.fi-amount small.fi-was{font-size:9.5px}
.fi-payhero{padding:14px}
.fi-payhero-val b{font-size:34px}
.fi-reg-grid{grid-template-columns:minmax(0,1fr)}
.fi-reg .p-seg{align-self:stretch}
.fi-reg .p-seg button{flex:1;min-height:44px}
.fi-reg .p-input,.fi-reg .p-select{min-height:44px;font-size:16px}
.fi-chip{flex:1 1 100%;min-height:52px}
.fi-chosen .p-btn{min-height:44px}
.fi-checkrow{min-height:52px}
.fi-proofs .p-att-add{min-height:44px;align-self:stretch;justify-content:center}
.fi-proofs .p-att-row .p-btn{width:44px;min-height:44px}
.fi-paylist .p-table td.fi-c-files:has(.fi-files.none){display:none}

/* ── 3a+. Financeiro: Recebi um Pix (pix.js, fluxo com plano e pessoa nova) ── */
/* ── 3a+. Financeiro: Recebi um Pix (pix.js) ──
   Substitui as duas seções "Recebi um Pix" de public/painel/mobile.css:
   o bloco "Financeiro: Recebi um Pix (pix.js)" e o bloco "Recebi um Pix, bloco do comprovante".
   Já dentro de max-width: 860px. Testado a 390px. */
.px-wrap{padding:4px 0 32px;gap:12px}
.px-workspace{gap:16px}
.px-card{padding:22px 16px;border-radius:16px}
.px-steps{gap:10px}
.px-step{padding-bottom:6px}
.px-step-link{gap:6px}
.px-step .px-lbl{font-size:12px}
.px-num{width:22px;height:22px;font-size:11px}
.px-customer{flex-wrap:wrap;margin:16px 0 20px}
.px-how{margin:0}
.px-stage{min-height:0}
.px-q{font-size:26px}
.px-hint{font-size:14px;margin-bottom:16px}
.px-search{min-height:52px}
.px-search input{font-size:16px;min-height:48px}
.px-person{min-height:60px;padding:12px}
.px-newbtn{min-height:50px;white-space:normal;text-align:center}
.px-prods{grid-template-columns:minmax(0,1fr);gap:10px}
.px-prod{min-height:0;padding:16px 18px;grid-template-columns:minmax(0,1fr);align-content:center}
.px-prod-n{font-size:15px}
.px-prod-p{margin-top:6px;padding-top:0}
.px-in{min-height:50px;font-size:16px}
.px-money b{font-size:20px}
.px-money .px-in{font-size:26px;min-height:54px}
.px-plans{gap:8px}
.px-plan{min-height:72px;padding:14px}
.px-plan-n{font-size:22px}
.px-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.px-chip{min-height:46px;width:100%}
.px-sum{padding:0 0 16px}
.px-sum-v{font-size:26px}
.px-sum-v.px-sum-sm{font-size:22px}
.px-foot{margin-top:20px;gap:10px;flex-wrap:nowrap}
.px-foot > :last-child{margin-left:auto}
.p-btn.px-btn{min-height:50px;padding:0 18px;font-size:15px}
.px-dl > div{grid-template-columns:minmax(0,1fr);gap:4px;padding:12px 14px}
.px-dl dt{padding-top:0}
.px-done{gap:10px}
.px-msg{font-size:13px;padding:12px 14px}
.px-acts{flex-direction:column;align-items:stretch}
.px-acts .p-btn.px-btn,.px-wa{flex:0 0 auto;width:100%;min-height:50px}
.px-again{width:100%;margin-top:4px}
.px-how{padding:16px}
.px-how li{font-size:13.5px}
/* Comprovante do passo final (lista e anexo vêm do núcleo: .p-att) */
.px-proof{padding:14px}
.px-proof-head{gap:8px}
.px-proof .p-att{gap:10px}
.px-proof .p-att-add{align-self:stretch;justify-content:center;width:100%;min-height:46px;font-size:14px}
.px-proof .p-att-hint{font-size:12.5px}
.px-proof .p-att-row{padding:6px 6px 6px 12px}
.px-proof .p-att-row .p-btn{width:44px;min-width:44px;min-height:44px}
.px-tip{font-size:13px}

/* ── 3a+. Financeiro: Enviar planos e Pix (vendas.js) ── */
.vd-grid { grid-template-columns: minmax(0, 1fr); }
.vd-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.vd-plan { padding: 12px; }
.vd-plan b { font-size: 17px; }
.vd-chip { justify-self: stretch; width: 100%; justify-content: center; display: flex; align-items: center; }
.vd-pick { padding: 12px; }
.vd-pick-name { font-size: 18px; }
.vd-actions, .vd-actions-pix > .vd-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.vd-actions > *, .vd-actions-pix > .vd-actions > * { width: 100%; min-width: 0; justify-content: center; }
.vd-wa { justify-content: center; }
.vd-msg { padding: 12px; }
.vd-msg-text { font-size: 13px; max-height: 260px; }
.vd-msg-code { word-break: break-all; font-size: 11.5px; }
.vd-res small { font-size: 12px; }
.vd-actions .p-btn { min-height: 44px; }

/* ── 3a+. Visão geral: Evolução ── */
/* Evolução (overview.css) e botão Evolução da Visão geral */
.ov-evo-btn{min-height:44px;flex:1 1 100%}
.ev-back{display:none}
.ev-period{width:100%}
.ev-period button{flex:1 0 auto;min-height:40px}
.ev-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ev-card{padding:12px 13px;gap:5px;border-radius:16px}
.ev-card-label{font-size:9px;letter-spacing:1px;white-space:normal;line-height:1.3}
.ev-card-label svg{display:none}
.ev-spark{display:none}
.ev-card-val{font-size:clamp(18px,15cqi,28px)}
.ev-card-sub{font-size:11px;line-height:1.35}
.ev-card-deltas{flex-direction:column;gap:5px;font-size:11px}
.ev-card-deltas span{white-space:normal;align-items:flex-start;line-height:1.35}
.ev-card-deltas i{flex-shrink:0}
.ev-charts{gap:12px}
.ev-legend{gap:6px 12px;font-size:11.5px}
.ev-svg .ev-ax{font-size:10px}
.ev-tip{min-width:150px;max-width:210px}
.ev-notes p:not(.p-section-title){font-size:11.5px}
.ev-table th,.ev-table td{padding:10px 12px}
.p-card-head .ev-since{font-size:9.5px}

/* ── 3a+. Visão geral: período, dica dos gráficos, cards ampliados (overview.js) ── */
/* Celular (até 860px) · Visão geral, Crescimento e Evolução: períodos, dicas, quem são, visão ampliada.
   Para a sessão principal juntar em public/painel/mobile.css (seção "Visão geral e Crescimento: gráficos e períodos"). */
.ov-period{flex-direction:column;align-items:stretch;gap:8px}
.ov-period .p-seg{width:100%}
.ov-period .p-seg button{flex:1 1 0;min-height:40px;justify-content:center}
.ov-period-range{white-space:normal;font-size:10px}
/* Quadro compacto de números: hero na linha de cima, contagens lado a lado embaixo */
.ov-stats{grid-template-columns:repeat(var(--ov-small),minmax(0,1fr))}
.ov-stat{padding:12px 14px;gap:6px;justify-content:space-between}
.ov-stat.hero{grid-column:1/-1;order:-1;border-left:0;border-bottom:1px solid var(--line)}
.ov-stat.hero + .ov-stat{border-left:0}
.ov-stat-label{font-size:9px;letter-spacing:1.1px;white-space:normal;line-height:1.3}
.ov-stat-num b{font-size:24px}
.ov-stat.hero .ov-stat-num b{font-size:clamp(24px,10cqi,32px)}
.ov-stat small{font-size:11.5px}
.ov-daily{margin-top:14px;padding-top:14px}
.ov-daily .p-bars{height:130px;gap:4px}
.ov-daily .p-bar span{font-size:8.5px}
.ov-tip{max-width:200px;min-width:140px;padding:9px 11px}
.ov-tip div{font-size:11.5px}
.ov-tip b{font-size:13px}
.p-bar.ov-drill{min-height:44px}
.ev-card-btn{min-height:44px}
.ev-card-more{min-height:32px;align-items:center}
.ev-card-deltas{flex-direction:column;gap:4px}
.p-drawer.ov-wide-drawer{width:100vw}
.ov-detail{gap:12px}
.ov-detail .ev-table th,.ov-detail .ev-table td{padding:10px 10px}
.ov-who-cell .p-btn{min-height:40px}
.ev-tip{max-width:210px}

/* ── 3a+. Visão geral: Monitor (monitor.js) ── */
/* ── Monitor (grupo Visão geral): celular ── */
.mn-filtros{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:12px}
.mn-filtro{flex-direction:column;align-items:flex-start;gap:6px;width:100%}
.mn-filtro .p-seg{width:100%}
.mn-filtro .p-seg button{flex:1 1 auto;min-height:40px;padding:0 10px}
.mn-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mn-kpis .p-kpi{padding:14px 14px 12px}
.mn-kpis .p-kpi-value{font-size:clamp(18px,16cqi,28px);margin-top:8px}
.mn-kpis .p-kpi-foot{font-size:12px;line-height:1.35;align-items:flex-start}
.mn-charts .p-card,.mn-wrap > .p-card{padding:16px}
.mn-legenda{flex-wrap:wrap;white-space:normal;row-gap:4px}
/* Mapa de calor: rolagem horizontal dentro do card; coluna dos dias fixa */
.mn-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin:0 -4px;padding:0 4px 8px;scrollbar-width:thin}
.mn-grid{min-width:600px}
.mn-row{grid-template-columns:44px repeat(24,minmax(0,1fr))}
.mn-corner,.mn-day{position:sticky;left:0;z-index:2;background:var(--surface);padding-right:6px}
.mn-day{font-size:12px}
.mn-cell{min-height:28px}
.mn-hr{font-size:9.5px}
.mn-aviso{font-size:13px}
.mn-nota{font-size:12px}
.mn-tip{font-size:12.5px;max-width:min(240px,calc(100% - 8px))}
.mn-cols{height:150px;gap:3px}
.mn-axis{gap:3px}
.mn-axis span{font-size:9.5px}

/* ── 3a+. Financeiro: quadro App Store, comissão da Apple (finance.js) ── */
/* App Store (comissão da Apple) no celular. Prefixo fi-store. Vai pro public/painel/mobile.css, seção "App Store". */
.fi-store{gap:16px}
.fi-store-top{display:flex;flex-direction:column;align-items:stretch;gap:16px}
.fi-store-facts{display:flex;flex-direction:column;width:100%}
.fi-store-hero b{font-size:48px}
.fi-store-hero p{font-size:12px}
.fi-store-list li{min-height:52px;padding:10px 14px}
.fi-store-list b{white-space:normal;overflow-wrap:anywhere}
.fi-store-list span{font-size:15px}

/* ── 3a+. Financeiro: período, gráfico por dia e gaveta "quem são" (finance.js, drill.js) ── */
/* Celular (até 860px) · financeiro (Comprovantes e Pagamentos) + gaveta "quem são" (drill). Sessão principal junta no mobile.css. */
.fi-period{gap:10px;margin-bottom:12px}
.fi-period .p-seg{width:100%}
.fi-period .p-seg button{flex:1 1 0;min-height:44px;padding:0 6px}
.fi-chart-plot{height:150px;gap:2px}
.fi-col-x{font-size:9px}
.fi-chart-sum b{font-size:28px}
.fi-chart-legend{gap:10px;font-size:11.5px}
.fi-tip{max-width:200px}
.fi-tip b{font-size:14px}
.fi-mix-row{min-height:44px}
.dr-list{border-radius:14px}
.dr-row{min-height:64px;padding:10px 12px;gap:10px}
.dr-row-main b{font-size:13.5px}
.dr-row-val{font-size:16px}
.dr-count b{font-size:24px}

/* ── 3b. Clientes (produtores, assinaturas, equipes, shows) ── */
/* ── Clientes (accounts.js): produtores, assinaturas, equipes, shows e a ficha ── */

/* Barra de filtros: busca em cima, segmentado (rola só por dentro) e ordem embaixo */
.ac-toolbar .p-search{max-width:none;flex-basis:100%}
.ac-toolbar .ac-seg-slot{flex:1 1 100%}
.ac-toolbar .ac-sort-slot{display:flex;flex:1 1 100%;min-width:0}
.ac-toolbar .ac-sort-slot:empty{display:none}
.ac-seg-slot .p-seg button{min-height:38px}

/* Cartões das listas (núcleo transforma a tabela; aqui só o acabamento) */
.ac-table-card .p-table td{white-space:normal;align-items:flex-start}
.ac-table-card .p-table td.ac-col-who{min-width:0;max-width:none}
.ac-table-card .p-table tbody tr{min-height:64px}
.ac-who-row{width:100%}
.ac-who-row > .p-badge{flex-shrink:0}
.ac-sub-cell{flex-wrap:wrap;row-gap:4px}
.ac-num{font-size:20px;line-height:1.1}

/* Assinaturas: vencimento logo depois da situação (o que decide se precisa chamar) */
.ac-t-subs .p-table td.ac-c-due{order:2}
.ac-t-subs .p-table td.p-td-main{order:0}
.ac-t-subs .p-table td:nth-child(2){order:1}
.ac-t-subs .p-table td{order:3}

/* Equipes: a lista de produtores ocupa a linha toda */
.ac-t-team .p-table td.ac-c-links{flex-basis:100%}
.ac-links{max-width:none}
.ac-link{height:26px;max-width:100%}

/* Shows: quadrado da data à esquerda do nome, como no app */
.ac-t-shows .p-table td.ac-col-date{flex:0 0 auto;width:auto}
.ac-t-shows .p-table td.ac-col-show{flex:1 1 calc(100% - 80px);justify-content:center;align-self:center}
.ac-t-shows .p-table td.ac-col-show::before{display:none}
.ac-show{max-width:none}
.ac-show b{white-space:normal}
.ac-t-shows td.ac-col-show .ac-show b{font-size:16px}

/* KPIs de assinatura: 2 por linha, toque inteiro */
.ac-kpis{margin-bottom:12px}
.ac-kpis button.p-kpi{min-height:44px;text-align:left}

/* Skeleton no formato do cartão: título em cima, colunas embaixo em pares */
.ac-skel-row{flex-wrap:wrap;gap:12px 14px;padding:16px;min-height:0}
.ac-skel-txt{flex:1 1 calc(100% - 64px)}
.ac-skel-col{flex:1 1 40%}
.ac-skel-col:nth-child(n+5){display:none}
.ac-skel-col .p-skel{height:22px;border-radius:7px}

/* ── Ficha (gaveta em tela cheia) ── */
.ac-drawer .p-drawer-body{padding-bottom:28px}
.ac-sheet{gap:20px}
.ac-stat{padding:12px}
.ac-stat span{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-stat-sub{white-space:normal}
.ac-row{min-height:60px}
.ac-row-a .p-btn.sm{min-height:44px}
.ac-row-a .p-btn.icon.sm{width:44px}
.ac-box{padding:14px}
.ac-box .p-dl{grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:10px 14px;align-items:baseline}
.ac-box .p-dl dd{margin-bottom:0}
.ac-actions .p-btn{min-height:44px}
.ac-quick .ac-pix-main{display:none} /* Lançar pagamento fica na barra de baixo */
.ac-quick{grid-template-columns:minmax(0,1fr) minmax(0,auto);padding:12px 14px 14px}
.ac-row-stack .ac-row-a{padding-left:0;margin-left:-8px}
.ac-quick .p-btn,.ac-quick .ac-wa-btn{min-height:44px}
.ac-plats{padding:4px 14px}
.ac-plat-line{flex-wrap:wrap;align-items:flex-start}
.ac-plat-txt{flex-basis:100%}
.ac-plat-txt b{font-size:20px}
.ac-stat{padding:12px 14px}
.ac-stats.four{grid-template-columns:repeat(2,minmax(0,1fr))}
.ac-stats.four .ac-stat:nth-child(3){border-left:0}
.ac-stats.four .ac-stat:nth-child(n+3){border-top:1px solid var(--line)}
.ac-attn{padding:4px 14px}
.ac-attn-item{flex-wrap:wrap;row-gap:2px;padding:8px 0}
.ac-attn-btn{min-height:44px}
.ac-crew-item{flex-wrap:wrap;row-gap:4px}
.ac-crew-seen{order:3;flex-basis:100%;flex-direction:row;align-items:center;gap:10px;padding-left:44px;text-align:left}
.ac-crew-item .p-btn{min-height:44px;width:44px}
.ac-fold-card{padding:0 14px}
.ac-drawer::after{width:520px;height:420px;left:-200px;bottom:-260px}
.ac-see{min-height:44px}
.ac-team-item{min-height:48px}
.p-list-item{min-height:56px}

/* Barra do polegar: fechar, WhatsApp e Lançar pagamento ao alcance do dedo */
.ac-drawer .p-drawer-foot.ac-thumb{display:flex;flex-wrap:nowrap;gap:8px;background:rgba(10,15,29,.92)}
.ac-drawer .p-drawer-foot.ac-thumb .p-btn{flex:0 0 auto;min-height:48px}
.ac-drawer .p-drawer-foot.ac-thumb .p-btn.icon{width:48px}
.ac-drawer .p-drawer-foot.ac-thumb .p-btn.primary{flex:1 1 auto;min-width:0}
.ac-drawer .p-drawer-foot.ac-thumb .ac-wa{padding:0 14px}

@media (max-width:560px){
  .ac-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ac-actions .p-btn:not(.primary) svg{display:none}
  .ac-two,.ac-team{grid-template-columns:minmax(0,1fr)}
  .ac-stat b{font-size:22px}
  .ac-row{flex-wrap:wrap;row-gap:2px;padding-top:10px}
  .ac-row-k{width:100%}
  .ac-row-a{margin-left:auto}
  .ac-row-a .ac-wa{width:44px;padding:0}
  .ac-row-a .ac-wa span{display:none}
  .ac-pw-acts{flex-direction:column;align-items:stretch}
  .ac-pw-acts > *{justify-content:center;min-height:44px}
  .ac-pw-pass .p-btn.icon.sm{width:44px;min-height:44px}
}
@media (max-width:380px){
  .ac-drawer .p-drawer-foot.ac-thumb .ac-wa span{display:none}
  .ac-drawer .p-drawer-foot.ac-thumb .ac-wa{width:48px;padding:0}
}

/* ── 3b+. Clientes: parceria e pagamentos na ficha ── */
/* Clientes: parceria e pagamentos da ficha (ajuste de valor e comprovantes) */
.ac-partner-acts{flex-wrap:wrap}
.ac-partner-acts .p-btn{min-height:44px}
.ac-partner-acts .ac-partner-reg{flex:1 1 100%}
.ac-partner-acts .p-btn:not(.ac-partner-reg){flex:1 1 100%}
.ac-partner-val b{font-size:20px}
.ac-pay-why{margin-left:0}
.ac-pay-acts{margin-left:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.ac-pay-acts .p-btn{min-height:44px;justify-content:center;border:1px solid var(--line)}
.ac-pay-files{margin-left:0;padding:10px}
.ac-pay-files .p-att-add,.ac-pay-files .p-att-row .p-btn{min-height:44px}
.ac-pay-files .p-att-row .p-btn{min-width:44px}

/* ── 3b+. Clientes: origem, equipes e zona de perigo na ficha ── */
/* Clientes · ficha (celular): origem, equipes, shows e zona de perigo. */
.ac-sec-head{min-height:44px}
.ac-sec-head .p-btn{min-height:40px}
.ac-origin-top{align-items:flex-start}
.ac-origin-txt b{font-size:14.5px}
.ac-link-item{flex-wrap:wrap;align-items:flex-start}
.ac-link-main{flex:1 1 180px}
.ac-link-acts{width:100%;justify-content:flex-end;padding-top:6px;border-top:1px solid var(--line)}
.ac-link-acts .p-btn,.ac-link-acts .p-btn.icon{min-height:40px;min-width:40px}
.ac-showrow{align-items:flex-start}
.ac-showrow .p-btn.icon{min-width:44px;min-height:44px;flex-shrink:0}
.ac-showrow-txt b,.ac-showrow-txt small{white-space:normal;overflow-wrap:anywhere}
.ac-danger-zone{padding:14px;gap:10px}
.ac-dz-group > summary{min-height:48px}
.ac-dz-items{padding:0 12px 10px}
.ac-dz-row{flex-wrap:wrap;align-items:flex-start;gap:8px 10px}
.ac-dz-txt{flex:1 1 200px}
.ac-dz-row > .p-btn{min-height:44px;width:100%;justify-content:center}
.ac-dz-txt b,.ac-dz-txt small{white-space:normal;overflow-wrap:anywhere}
.ac-danger-zone > .p-btn,.ac-danger-zone > .p-btn.danger{min-height:44px}
.ac-typed .p-input{min-height:44px;font-size:16px}
.ac-col-act{width:auto}
.ac-table-card .p-table td.ac-col-act{text-align:right}

/* ── 3b+. Clientes: contato no WhatsApp (botão Avisar, faixa do teste vencido, ficha) ── */
.ac-t-subs .p-table td.ac-c-contact{order:2;flex-basis:100%}
.ac-t-producers .p-table td.ac-c-contact{flex-basis:100%}
.ac-contact{width:100%;align-items:stretch}
.ac-contact .ac-wa-btn:not(.icon){width:100%;justify-content:center;min-height:44px;font-size:14px}
.ac-contact .ac-wa-btn.icon{width:44px;height:44px}
.ac-avisado{font-size:11px}
.ac-notice{padding:14px}
.ac-notice>.p-btn{width:100%;min-height:44px;justify-content:center}
.ac-notify .ac-wa-btn{width:100%;min-height:48px;justify-content:center}
.ac-notify-hint{flex-basis:100%}

/* ── VoltZ Book · Clientes (book.js) no celular ───────────── */
.bk-kpis .p-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bk-kpi{padding:14px}
.bk-kpi .p-kpi-label{font-size:9.5px;letter-spacing:1px;line-height:1.3}
.bk-kpi .p-kpi-value{font-size:clamp(20px,16cqi,34px)}
.bk-kpi:nth-child(4) .p-kpi-value{font-size:clamp(18px,13cqi,23px)}
.bk-kpi .p-kpi-foot{font-size:11.5px}
.bk-toolbar{flex-direction:column;align-items:stretch;gap:10px}
.bk-toolbar .p-search{flex:1 1 auto;max-width:none}
.bk-seg-slot{width:100%}
.bk-seg-slot .p-seg{display:flex;width:100%;overflow-x:auto}
.bk-seg-slot .p-seg button{flex:1 0 auto;min-height:40px;padding:0 10px}
.bk-notice{padding:14px}
.bk-notice>.p-btn{width:100%;min-height:44px}
.bk-table-card .p-table tbody tr{padding:16px}
.bk-table-card .p-table td.bk-c-sit{flex:0 0 auto}
.bk-table-card .p-table td.bk-c-due{flex:1 1 auto}
.bk-table-card .p-table td.bk-c-val{order:3}
.bk-table-card .p-table td.bk-c-vagas{order:3;flex:1 1 auto}
.bk-table-card .p-table td.bk-c-contact{order:4;flex-basis:100%}
.bk-table-card .p-table td.bk-c-since{order:5;flex-basis:100%}
.bk-contact{width:100%}
.bk-contact .bk-wa-btn:not(.icon){width:100%;min-height:44px;justify-content:center;font-size:14px}
.bk-contact .bk-wa-btn.icon{width:44px;height:44px}
.bk-dl>div{flex-direction:column;gap:4px}
.bk-dl dd{text-align:left}
.bk-msg{font-size:13px}

/* ── 3b+. Clientes: Enviar planos e Enviar Pix na ficha ── */
.ac-vendas-btns{grid-template-columns:minmax(0,1fr)}
.ac-vendas-btns .p-btn{width:100%;min-height:44px}
.ac-vendas-hint{font-size:12.5px}

/* ── 3b+. Clientes: comprovantes de cada pagamento ── */
.ac-pay-proof{margin-left:0}
.ac-proof-bar{gap:10px}
.ac-proof-tag{min-height:28px}
.p-btn.sm.ac-proof-add{min-height:44px;justify-content:center;flex:1 1 auto}

/* ── 3b+. Clientes: Jornada na ficha (de onde veio e o que fez) ── */
.ac-journey{padding:14px}
.ac-jr-item{grid-template-columns:30px minmax(0,1fr);gap:2px 12px}
.ac-jr-body{padding-top:5px}
.ac-jr-body b{font-size:14px}
.ac-jr-when{grid-column:2;text-align:left;padding-top:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.ac-jr-when span,.ac-jr-when small{display:inline}
.ac-jr-when span{font-size:12px}
.ac-jr-when small{font-size:10.5px}
.ac-jr-list::before{left:15px}
.ac-jr-more{padding-left:42px}
.ac-jr-more .p-btn{min-height:44px}

/* ── 3b+. Clientes: resumo de cadastros em Produtores (cadastros.js) e quem entrou pelo convite (ops.js) ── */
.cd-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cd-kpis > :last-child{grid-column:1 / -1}

/* Convites: nome da conta com área de toque de 44px */
.ops-inv-who{min-height:44px;display:flex;align-items:center;white-space:normal;overflow-wrap:anywhere;line-height:1.3}

/* ── 3c. Operação (convites, alertas, pesquisa, publicidade, erros, auditoria, configurações) ── */
/* ── Operação (ops.js): convites, alertas, pesquisa, publicidade, erros, auditoria, configurações ──
   As tabelas usam o cartão do núcleo (seção 2). Aqui ficam só os ajustes da Operação. */
.ops-tab{padding:0 6px;font-size:13px}
.ops-secs-grid .ops-check{gap:9px;padding:9px}
.ops-area-h{flex-wrap:wrap}
.ops-allc{margin-left:30px}
.ops-card-tools{padding:0 16px 12px}
.ops-card-tools .p-search{min-width:0;max-width:none;flex:1 1 100%}
.ops-chan-3{grid-template-columns:minmax(0,1fr);gap:14px}
.ops-inline-field{flex:1 1 100%;min-width:0}

/* Cartão da tabela: a coluna "primary" vira o título mesmo quando não é a 1ª (Auditoria) */
.ops-table .p-table td.p-td-main{order:-1}
.ops-table .p-table td{align-items:flex-start}
.ops-table .p-table td:has(> .p-badge){flex-direction:row;flex-wrap:wrap;gap:6px}
.ops-table .p-table td:has(> .p-badge)::before{flex-basis:100%;margin-bottom:-2px}
.ops-table .p-badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ops-mono-input{font-size:16px!important}
.ops-table .p-table td.num[data-label]{flex:1 1 26%}        /* números: 3 por linha */
.ops-table .p-table td.mono{flex-basis:100%}                 /* valor JSON, detalhe: linha inteira */
.ops-table .p-table td:not([data-label]):not(.p-td-main){flex-basis:100%} /* ações: linha própria */
.ops-table .ops-acts{justify-content:flex-start;gap:4px;margin-left:-10px}
.ops-table .ops-acts .p-btn.icon.sm{width:44px;min-height:44px}
.ops-table .ops-trunc,.ops-table .ops-err{max-width:none}
.ops-table .ops-cell b{white-space:normal;overflow-wrap:anywhere}

/* Listas (alertas, pesquisa): ação embaixo, larga, no alcance do polegar */
.ops-item{padding:14px 16px;flex-wrap:wrap;gap:12px}
.ops-item-sub{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ops-item-side{width:100%;justify-content:flex-start;padding-left:48px}
.ops-fb .ops-item-side{padding-left:64px}
.ops-item-side .ops-acts{flex:1;min-width:0;gap:8px}
.ops-item-side .p-btn.sm{min-height:44px;flex:1 1 auto}
.ops-item-side .p-btn.icon.sm{width:44px;flex:0 0 44px}

/* Gavetas */
.ops-rkpi .p-kpi-value{font-size:clamp(20px,16cqi,30px)}
.ops-result-acts .p-btn{flex:1 1 auto}
.ops-secret{min-height:44px}
.ops-json{min-height:180px}

/* Skeleton no formato do cartão do celular */
.ops-sk-row{flex-wrap:wrap;align-items:flex-start;gap:12px 14px;padding:14px 16px}
.ops-sk-main{flex:1 1 100%}
.ops-sk-cell{flex:1 1 40%;flex-direction:column;align-items:flex-start;gap:6px}
.ops-sk-cell.num{flex:1 1 26%;justify-content:flex-start}
.ops-sk-cell.wide{flex-basis:100%}
.ops-sk-lbl{display:block}
.ops-sk-acts{flex-basis:100%;gap:4px}
.ops-sk-acts .p-skel{width:40px;height:40px;border-radius:10px}
.ops-sk-btn{flex:1;width:auto;height:44px}

@media (max-width:380px){
  .ops-mini{gap:8px}
  .ops-mini > div{padding:10px 11px}
  .ops-mini b{font-size:24px}
}

/* ── 3c+. Operação: Robô Financeiro (robo.js) ── */
/* ── Robô Financeiro (celular, até 860px). Seletores .rb-* / .fi-* só deste módulo. ── */
.rb-page{gap:14px}
.rb-page .p-card{padding:18px}
.rb-stack{gap:14px}
.rb-lead{font-size:15px}
.rb-steps{gap:10px;margin-bottom:14px}
.rb-steps li{font-size:14.5px}
.rb-steps li::before{width:28px;height:28px}
.rb-form{gap:12px}
.rb-form .p-input{min-height:48px;font-size:16px}
.rb-acts{gap:10px;width:100%}
.rb-acts .p-btn{min-height:46px;flex:1 1 100%;width:100%}
.rb-acts .p-btn.ghost{flex:1 1 100%}
.rb-off{flex-direction:column;align-items:stretch;gap:10px}
.rb-off p{font-size:13.5px}
.rb-off .p-btn{width:100%;min-height:46px}
.rb-who{gap:8px}
.rb-user{font-size:22px}
.rb-status small{font-size:13px}
.rb-kpis{grid-template-columns:minmax(0,1fr);gap:10px}
.rb-kpis .p-kpi{padding:16px}
.rb-danger{flex-direction:column;align-items:stretch;gap:12px;padding-top:14px}
.rb-danger p{max-width:none;font-size:13.5px}
.rb-danger .p-btn{width:100%;min-height:46px}
.rb-how{font-size:14.5px;gap:12px;padding-left:18px}
.rb-grid{gap:14px}
.rb-src{margin-bottom:12px}
.rb-linked{padding:12px}
.rb-linked .p-btn{min-height:44px;width:100%;align-self:stretch;margin-top:8px}

/* ── 3d. Busca em tudo (search.js) ── */
/* ── Busca (celular) ───────────────────────────────────── */
.sr-bar{gap:8px;margin-bottom:12px}
.sr-input{height:52px;padding-left:46px;font-size:16px;border-radius:14px}
.sr-ico{left:15px}
.sr-clear{width:44px;height:52px;border-radius:14px}
.sr-chips{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -16px 14px;padding:2px 16px}
.sr-chips::-webkit-scrollbar{display:none}
.sr-chip{flex:0 0 auto;height:42px;padding:0 14px}
.sr-chips-skel{overflow:hidden}
.sr-chips-skel i{flex:0 0 auto;height:42px;width:92px}
.sr-group{border-radius:16px;margin-bottom:12px}
.sr-group-head{padding:12px 14px 6px 16px}
.sr-group-head .p-btn{min-height:40px}
.sr-item{grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 14px;min-height:60px}
.sr-item > svg{display:none}
.sr-title{font-size:15px}
.sr-sub{font-size:12.5px}
.sr-meta{justify-content:flex-start;max-width:none;font-size:12.5px}
.sr-money{font-size:13px}
.sr-skel-row{margin:0 14px 1px;height:60px}
.sr-skel-head{margin:14px 16px 12px}

/* ── 3a+. Vendas: Novo cliente (novo.js) ── */
/* Campos, chips, planos e resumo usam as regras do Recebi um Pix (px-). Aqui só o que é do Novo cliente. */
.nc-foot{flex-direction:column-reverse;align-items:stretch;flex-wrap:nowrap;gap:10px}
.nc-foot > :last-child{margin-left:0}
.nc-foot > .p-btn.px-btn{width:100%;min-height:50px}
.nc-hint{font-size:12.5px}
.nc-area{min-height:104px}
.nc-mode-top{gap:6px}
.nc-alert{padding:14px}
.nc-alert-t{font-size:22px}
.nc-alert-acts{flex-direction:column;align-items:stretch}
.nc-alert-acts .p-btn.px-btn{flex:0 0 auto;width:100%;min-height:50px}
.nc-check li{padding:12px 14px}
.nc-tx b{font-size:14.5px}
.nc-tx small{font-size:12.5px}

/* ── Bloqueio (lock.js) ── */
.lk-wrap{padding:max(28px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom))}
.lk-stage{--w:min(520px,76vw);margin:0 0 40px}
.lk-floor{filter:blur(8px)}
.lk-clock b{font-size:24px}
.lk-form{margin-top:22px}
.lk-cfg-acts > .p-btn{flex:1 1 auto}
.lk-cfg-idle .p-seg{align-self:stretch}
.lk-cfg-idle .p-seg button{flex:1}
/* Celular deitado (tela baixa): mesmo ajuste do lock.css, repetido aqui porque este arquivo carrega depois dele */
@media (max-height:620px){
  .lk-stage{--w:min(420px,60vw);margin-bottom:24px}
  .lk-form{margin-top:16px}
}

/* ── 3x. Explicações dos botões (explica.js) ── */
/* Barra de cima: o caminho "PAINEL / tela" some (o título da página já aparece logo abaixo) e os botões ficam à direita, com o botão de ajuda novo. */
.p-top{gap:8px}
.p-crumbs{display:none}
.p-top .p-top-menu{margin-right:auto}
.p-top .p-explica{width:44px;min-height:44px}
/* Balão: largura da tela menos 16px, botão "Não mostrar nesta tela" com alvo de 44px */
.p-tip{max-width:calc(100vw - 16px);padding:12px 14px}
.p-tip b{font-size:14px}
.p-tip span{font-size:13.5px}
.p-tip-off{min-height:44px;margin-top:10px;font-size:13.5px}
/* Gaveta de ajustes: alvos de 44px+ e nada vaza da largura */
.ex-drawer .p-drawer-body{padding:16px}
.ex-row{min-height:56px;padding:12px}
.ex-tx b{font-size:15px}
.ex-all{align-self:stretch;width:100%;min-height:48px}

/* ── 3x. Seções que abrem e fecham (ui.fold) ── */
/* Cabeçalho com alvo de 48px. Se o resumo não cabe ao lado do título, quebra pra linha de baixo.
   A seta fica presa no canto de cima (na linha do título), e o texto para antes dela. */
.p-fold{max-width:100%}
.p-fold-head{position:relative;flex-wrap:wrap;row-gap:4px;min-height:48px;padding:12px 28px 12px 0}
.p-fold-t{max-width:100%;overflow-wrap:anywhere}
.p-fold-r{flex:1 1 auto;white-space:normal;overflow-wrap:anywhere;font-size:13px;line-height:1.35}
.p-fold-head > svg{position:absolute;right:0;top:12px}
.p-fold-body{overflow-wrap:anywhere;padding-bottom:20px}
.p-del-hint{font-size:12.5px}

/* ── 3x. Tela de carregamento (fundo aurora em movimento) ── */
/* No resto do painel o desfoque fica desligado no celular; aqui volta, porque a tela dura só alguns segundos e sem ele aparece a borda das manchas */
.p-aurora-load .p-aurora-orb{filter:blur(44px)}

/* Ordenação automática das tabelas (core.js ui.table): seletor "Ordenar" em cima da lista virada cartão */
.p-table-wrap > .p-autosort{padding:12px 12px 4px}

