/* PraxStack · Admin e página do cliente — sistema visual único (tokens + componentes). Tema claro padrão, escuro opcional. */
@font-face{font-family:'Urbanist';font-style:normal;font-weight:300 800;font-display:swap;src:url("fonts/urbanist-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Urbanist';font-style:normal;font-weight:300 800;font-display:swap;src:url("fonts/urbanist-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- tokens: tema claro (padrão) ---------- */
:root{
  --bg:#e9eaee; --bg2:#f3f3f6; --surface:#fbfbfc; --surface2:#f2f2f5; --surface3:#e6e6ec; --raised:#ffffff;
  --glass:rgba(255,255,255,.55); --glass-line:rgba(255,255,255,.7);
  --fg:#1b1c20; --fg2:#3b3d45; --mut:#6c6e78; --mut2:#989aa4;
  --line:#e4e4ea; --line2:#d5d5dd;
  --ink:#1d1e22; --ink-fg:#ffffff; --ink-hover:#000000;
  --acc:#1f62ff; --acc-strong:#1a50d6; --acc-soft:rgba(31,98,255,.1); --acc-fg:#ffffff;
  --lime:#d8ee7a; --lime-soft:#eef6cf; --lime-ink:#3e5a00;
  --lav:#bdb5f6; --lav-soft:#e9e6fc; --lav-ink:#3d2f9e;
  --ok:#2f7d32; --ok-soft:#e5f3c9;
  --warn:#a86400; --warn-soft:#fdefd3;
  --bad:#c93c3c; --bad-soft:#fbe3e1;
  --info:#3d2f9e; --info-soft:#e9e6fc;
  --r-xl:32px; --r-lg:26px; --r:18px; --r-sm:12px;
  --shadow:0 1px 2px rgba(24,24,40,.04), 0 10px 30px rgba(24,24,40,.06);
  --shadow-lg:0 30px 80px rgba(24,24,40,.18);
  --focus:0 0 0 3px rgba(31,98,255,.3);
  --page:radial-gradient(900px 640px at -10% 105%, rgba(189,181,246,.55), transparent 62%), radial-gradient(700px 500px at 110% -10%, rgba(255,255,255,.9), transparent 60%), #e9eaee;
  color-scheme:light;
}
/* tema escuro (botão lua/sol; a escolha fica no navegador) */
:root[data-theme=dark]{
  --bg:#0e0f13; --bg2:#15161b; --surface:#17181e; --surface2:#1e1f26; --surface3:#272832; --raised:#1f2028;
  --glass:rgba(30,31,38,.6); --glass-line:rgba(255,255,255,.06);
  --fg:#f1f1f4; --fg2:#c8c9d1; --mut:#9091a0; --mut2:#6d6e7c;
  --line:#25262f; --line2:#33343f;
  --ink:#f1f1f4; --ink-fg:#121317; --ink-hover:#ffffff;
  --acc:#4d9bff; --acc-strong:#7ab4ff; --acc-soft:rgba(77,155,255,.14); --acc-fg:#0e0f13;
  --lime:#d8ee7a; --lime-soft:rgba(216,238,122,.14); --lime-ink:#d8ee7a;
  --lav:#bdb5f6; --lav-soft:rgba(189,181,246,.16); --lav-ink:#cfc9ff;
  --ok:#a6d96a; --ok-soft:rgba(166,217,106,.14);
  --warn:#f5b84b; --warn-soft:rgba(245,184,75,.14);
  --bad:#ff7b72; --bad-soft:rgba(255,123,114,.14);
  --info:#cfc9ff; --info-soft:rgba(189,181,246,.16);
  --shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 10px 30px rgba(0,0,0,.3);
  --shadow-lg:0 30px 80px rgba(0,0,0,.55);
  --focus:0 0 0 3px rgba(111,155,255,.4);
  --page:radial-gradient(900px 640px at -10% 105%, rgba(110,96,220,.22), transparent 62%), #0e0f13;
  color-scheme:dark;
}
/* página do cliente: sempre clara (não segue o tema do admin) */
body.portal{
  --bg:#f3f3f6; --bg2:#ffffff; --surface:#ffffff; --surface2:#f4f4f7; --surface3:#e9e9ef; --raised:#ffffff;
  --fg:#1b1c20; --fg2:#3b3d45; --mut:#62646e; --mut2:#8d8f99;
  --line:#e6e6ec; --line2:#d6d6de;
  --ink:#1d1e22; --ink-fg:#ffffff; --ink-hover:#000000;
  --acc:#1f62ff; --acc-strong:#1a50d6; --acc-soft:rgba(31,98,255,.09); --acc-fg:#ffffff;
  --lime:#d8ee7a; --lime-soft:#eef6cf; --lime-ink:#3e5a00;
  --lav:#bdb5f6; --lav-soft:#e9e6fc; --lav-ink:#3d2f9e;
  --ok:#2f7d32; --ok-soft:#e5f3c9;
  --warn:#a86400; --warn-soft:#fdefd3;
  --bad:#c93c3c; --bad-soft:#fbe3e1;
  --info:#3d2f9e; --info-soft:#e9e6fc;
  --shadow:0 1px 2px rgba(24,24,40,.04), 0 10px 30px rgba(24,24,40,.06);
  --focus:0 0 0 3px rgba(31,98,255,.3);
  --page:#f3f3f6;
  color-scheme:light;
}

:root[data-theme=dark] body.portal{
  --bg:#0e0f13; --bg2:#15161b; --surface:#17181e; --surface2:#1e1f26; --surface3:#272832; --raised:#17181e;
  --fg:#f1f1f4; --fg2:#c8c9d1; --mut:#9091a0; --mut2:#6d6e7c;
  --line:#25262f; --line2:#33343f;
  --ink:#f1f1f4; --ink-fg:#121317; --ink-hover:#ffffff;
  --acc:#4d9bff; --acc-strong:#7ab4ff; --acc-soft:rgba(77,155,255,.14); --acc-fg:#0e0f13;
  --lime-soft:rgba(216,238,122,.14); --lime-ink:#d8ee7a; --lav-soft:rgba(189,181,246,.16); --lav-ink:#cfc9ff;
  --ok:#a6d96a; --ok-soft:rgba(166,217,106,.14); --warn:#f5b84b; --warn-soft:rgba(245,184,75,.14);
  --bad:#ff7b72; --bad-soft:rgba(255,123,114,.14); --info:#cfc9ff; --info-soft:rgba(189,181,246,.16);
  --shadow:0 10px 30px rgba(0,0,0,.35); --focus:0 0 0 3px rgba(111,155,255,.4);
  --page:#0e0f13;
  color-scheme:dark;
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
/* Tamanho do texto (Ajustes → Acessibilidade, por aparelho; theme.js põe data-fs no <html>) */
:root{--fs:1}:root[data-fs=p]{--fs:.9}:root[data-fs=g]{--fs:1.12}:root[data-fs=gg]{--fs:1.25}:root[data-fs=xg]{--fs:1.4}
body{margin:0;min-height:100vh;background:var(--page);background-attachment:fixed;color:var(--fg);font-family:'Urbanist',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:calc(15px*var(--fs));line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--acc);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--acc-strong)}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:10px}
[hidden]{display:none!important}
h1,h2,h3{margin:0;letter-spacing:-.02em;line-height:1.2;color:var(--fg)}
h1{font-size:calc(30px*var(--fs));font-weight:700}
h2{font-size:calc(18px*var(--fs));font-weight:650}
h3{font-size:calc(14px*var(--fs));font-weight:650}
p{margin:0}
svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mut{color:var(--mut)}
.small{font-size:calc(13px*var(--fs))}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:calc(12.5px*var(--fs))}
.nowrap{white-space:nowrap}
.ok{color:var(--ok)} .bad{color:var(--bad)} .warn{color:var(--warn)}
.section{margin-top:18px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.row-between{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start}

/* ---------- estrutura do admin: trilho de ícones + topo ---------- */
.shell{display:grid;grid-template-columns:96px minmax(0,1fr);min-height:100vh}
.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;gap:22px;padding:22px 0 24px;z-index:20}
.rail-logo{display:grid;place-items:center;width:52px;height:52px;border-radius:50%}
.rail-logo img{width:36px;height:36px;border-radius:12px}
.nav{display:flex;flex-direction:column;align-items:center;gap:10px;flex:1;padding:4px 10px;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
@media (max-height:820px) and (min-width:961px){.nav{gap:6px}.nav a{width:42px;height:42px}}
.nav .nav-title{width:22px;height:1px;background:var(--line2);margin:6px 0;font-size:0;overflow:hidden}
.nav .nav-title:first-child{display:none}
.nav a,.rail .btn.icon{position:relative;display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:50%;background:var(--glass);border:1px solid var(--glass-line);color:var(--fg2);text-decoration:none;box-shadow:0 1px 2px rgba(24,24,40,.04);transition:background .15s,color .15s,transform .15s}
.nav a:hover{background:var(--raised);color:var(--fg)}
.nav a[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--ink-fg)}
.nav a svg{width:20px;height:20px}
/* rótulo do ícone: aparece ao passar o mouse ou com foco (e é o nome lido por leitores de tela) */
.nav a span{position:fixed;left:0;top:0;transform:translateY(-50%);padding:6px 12px;border-radius:999px;background:var(--ink);color:var(--ink-fg);font-size:calc(13px*var(--fs));font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s;z-index:30}
.nav a:hover span,.nav a:focus-visible span{opacity:1}
/* grupos do menu (admin.js → NAV_GROUPS): botão redondo como os ícones; o submenu abre ao lado (recolhido) ou em lista (expandido) */
.nav-grp{display:flex;flex-direction:column;align-items:center;flex:none}
.nav-gbtn,.nav-toggle{position:relative;display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:50%;background:var(--glass);border:1px solid var(--glass-line);color:var(--fg2);cursor:pointer;font:inherit;box-shadow:0 1px 2px rgba(24,24,40,.04);transition:background .15s,color .15s}
.nav-gbtn:hover,.nav-toggle:hover,.nav-gbtn[aria-expanded=true]{background:var(--raised);color:var(--fg)}
.nav-gbtn[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--ink-fg)}
.nav-gbtn svg,.nav-toggle svg{width:20px;height:20px}
.nav-gbtn > span{position:fixed;left:0;top:0;transform:translateY(-50%);padding:6px 12px;border-radius:999px;background:var(--ink);color:var(--ink-fg);font-size:calc(13px*var(--fs));font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s;z-index:30}
.nav-gbtn:hover > span,.nav-gbtn:focus-visible > span{opacity:1}
.nav-gbtn[aria-expanded=true] > span{opacity:0}
.nav-gbtn .nav-caret{display:none}
.nav-gbtn,.nav > a{transition:background .18s,color .18s,transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s}
.nav-gbtn:hover,.nav > a:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(24,24,40,.10)}
/* grupo com submenu: 3 pontinhos sob o ícone, que se abrem em leque quando o submenu está aberto */
.nav-gbtn::after{content:"";position:absolute;left:50%;bottom:6px;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5;
  box-shadow:-5px 0 0 currentColor,5px 0 0 currentColor;transform:translateX(-50%);transition:box-shadow .2s,opacity .2s}
.nav-gbtn[aria-expanded=true]::after{opacity:.8;box-shadow:-7px 0 0 currentColor,7px 0 0 currentColor}
.nav-fly{position:fixed;z-index:46;min-width:236px;padding:8px;border-radius:18px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:2px;
  transform-origin:left center;animation:nav-fly-in .2s cubic-bezier(.2,.8,.2,1)}
.nav-fly[hidden]{display:none}
.nav-fly a{animation:nav-item-in .26s cubic-bezier(.2,.8,.2,1) backwards}
.nav-fly a:nth-of-type(2){animation-delay:.03s}.nav-fly a:nth-of-type(3){animation-delay:.06s}.nav-fly a:nth-of-type(4){animation-delay:.09s}
.nav-fly a:nth-of-type(5){animation-delay:.12s}.nav-fly a:nth-of-type(n+6){animation-delay:.15s}
@keyframes nav-fly-in{from{opacity:0;transform:translateX(-10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes nav-item-in{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
/* botão de expandir: 3 traços que viram um X */
.nav-toggle .nav-burger{position:relative;width:18px;height:12px}
.nav-toggle .nav-burger i{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s,top .28s cubic-bezier(.2,.8,.2,1)}
.nav-toggle .nav-burger i:nth-child(1){top:0}.nav-toggle .nav-burger i:nth-child(2){top:5px;right:5px}.nav-toggle .nav-burger i:nth-child(3){top:10px}
.nav-toggle:hover .nav-burger i:nth-child(2){right:0}
body.nav-wide .nav-toggle .nav-burger i:nth-child(1){top:5px;transform:rotate(45deg)}
body.nav-wide .nav-toggle .nav-burger i:nth-child(2){opacity:0;transform:translateX(-6px)}
body.nav-wide .nav-toggle .nav-burger i:nth-child(3){top:5px;transform:rotate(-45deg)}
.nav-fly-h{margin:0;padding:6px 10px 6px;font-size:calc(11.5px*var(--fs));font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}
.nav .nav-fly a{width:auto;height:40px;border-radius:12px;display:flex;align-items:center;gap:10px;padding:0 12px;justify-content:flex-start;background:none;border:0;box-shadow:none;color:var(--fg2)}
.nav .nav-fly a:hover{background:var(--surface2);color:var(--fg)}
.nav .nav-fly a[aria-current=page]{background:var(--ink);color:var(--ink-fg)}
.nav .nav-fly a svg{width:18px;height:18px;flex:none}
.nav .nav-fly a span{position:static;transform:none;padding:0;background:none;color:inherit;font-size:calc(14px*var(--fs));font-weight:600;opacity:1;pointer-events:auto}
.nav-toggle{margin-top:-8px}
.nav-scrim{position:fixed;inset:0;z-index:44;background:rgba(10,14,25,.28)}
.nav-scrim[hidden]{display:none}
/* expandido: o trilho fica largo por cima do conteúdo, com os nomes; escolher uma opção recolhe */
@media (min-width:961px){
  body.nav-wide .rail{position:fixed;left:0;top:0;bottom:0;width:264px;align-items:stretch;padding:22px 14px 24px;background:var(--bg);box-shadow:var(--shadow-lg);z-index:45;overflow:hidden;animation:nav-wide-in .28s cubic-bezier(.2,.8,.2,1)}
  body.nav-wide.nav-closing .rail{animation:nav-wide-out .2s cubic-bezier(.4,0,.6,1) forwards}
  body.nav-wide .nav > a span,body.nav-wide .nav-gbtn > span,body.nav-wide .nav-toggle::after,body.nav-wide .rail .btn.icon::after{animation:nav-lbl-in .3s .06s cubic-bezier(.2,.8,.2,1) backwards}
  body.nav-wide.nav-closing .nav > a span,body.nav-wide.nav-closing .nav-gbtn > span{opacity:0;transition:opacity .1s}
  @keyframes nav-wide-in{from{width:96px;box-shadow:none}to{width:264px}}
  @keyframes nav-wide-out{from{width:264px}to{width:96px;box-shadow:none}}
  @keyframes nav-lbl-in{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
  body.nav-wide .rail-logo{align-self:flex-start;margin-left:4px}
  body.nav-wide .nav{align-items:stretch;padding:4px 0}
  body.nav-wide .nav > a,body.nav-wide .nav-gbtn,body.nav-wide .nav-toggle,body.nav-wide .rail .btn.icon{width:auto;height:44px;border-radius:14px;display:flex;align-items:center;gap:12px;padding:0 14px;justify-content:flex-start}
  body.nav-wide .nav > a span,body.nav-wide .nav-gbtn > span{position:static;transform:none;padding:0;background:none;color:inherit;font-size:calc(14px*var(--fs));font-weight:600;opacity:1;pointer-events:auto;flex:1;text-align:left}
  body.nav-wide .nav-grp{align-items:stretch}
  body.nav-wide .nav-gbtn::after{display:none}
  body.nav-wide .nav-gbtn:hover,body.nav-wide .nav > a:hover{transform:none;box-shadow:none}
  body.nav-wide .nav-gbtn .nav-caret{display:block;width:16px;height:16px;transition:transform .2s}
  body.nav-wide .nav-gbtn[aria-expanded=true] .nav-caret{transform:rotate(90deg)}
  body.nav-wide .nav-fly{position:static;min-width:0;padding:2px 0 6px 18px;border:0;border-radius:0;background:none;box-shadow:none;animation:none}
  body.nav-wide .nav-fly-h{display:none}
  body.nav-wide .nav-toggle{margin-top:0}
  body.nav-wide .rail .btn.icon::after{content:"Sair";font-size:calc(14px*var(--fs));font-weight:600}
  body.nav-wide .nav-toggle::after{content:"Recolher o menu";font-size:calc(14px*var(--fs));font-weight:600}
}
.main-wrap{min-width:0;display:flex;flex-direction:column}
/* telas largas: espaço igual ao do menu à direita, para o conteúdo ficar no centro da tela */
@media (min-width:1400px){.main-wrap{padding-right:96px}}
.topbar{display:flex;align-items:center;gap:16px;padding:22px 40px 0;width:100%;max-width:1560px;margin:0 auto}
.topbar .brand{padding:0;font-size:calc(22px*var(--fs));font-weight:600;letter-spacing:-.02em}
.topbar .brand small{display:inline;font-size:calc(14px*var(--fs));font-weight:500;color:var(--mut);margin-left:8px}
.theme-toggle{display:inline-flex;gap:4px;padding:5px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);margin:0 auto}
.theme-toggle button{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:0;background:transparent;color:var(--mut);cursor:pointer}
.theme-toggle button[aria-pressed=true]{background:var(--raised);color:var(--fg);box-shadow:var(--shadow)}
.a11y-quick{position:relative;display:inline-flex}
.a11y-qbtn{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--glass-line);background:var(--glass);color:var(--fg2);cursor:pointer}
.a11y-qbtn:hover,.a11y-qbtn[aria-expanded=true]{background:var(--raised);color:var(--fg)}
.a11y-qbtn:focus-visible,.a11y-qsizes button:focus-visible{box-shadow:var(--focus);outline:0}
.a11y-qbtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.a11y-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:264px;display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:var(--r-lg);background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--fg);text-align:left}
.a11y-pop[hidden]{display:none}
.a11y-pop strong{font-size:calc(14px*var(--fs))}
.a11y-pop small{color:var(--mut);font-size:calc(12px*var(--fs))}
.a11y-pop a{font-size:calc(13px*var(--fs));font-weight:600}
.a11y-qsizes{display:flex;align-items:flex-end;gap:6px}
.a11y-qsizes button{flex:1;height:44px;display:grid;place-items:end center;padding-bottom:6px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--fg2);font-family:inherit;font-weight:700;cursor:pointer;line-height:1}
.a11y-qsizes button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--ink-fg)}
.a11y-q0{font-size:calc(13px*var(--fs))}.a11y-q1{font-size:calc(15.5px*var(--fs))}.a11y-q2{font-size:calc(18px*var(--fs))}.a11y-q3{font-size:calc(20.5px*var(--fs))}.a11y-q4{font-size:calc(23px*var(--fs))}
.hub-top .a11y-qbtn{width:38px;height:38px}
.me{display:flex;align-items:center;gap:12px;font-size:calc(13px*var(--fs))}
.me .avatar{width:48px;height:48px;border-radius:50%;background:var(--lav);color:var(--lav-ink);display:grid;place-items:center;font-weight:700;font-size:calc(15px*var(--fs));flex:none;box-shadow:0 0 0 3px var(--glass-line)}
:root[data-theme=dark] .me .avatar{color:#2a1f7a}
.me strong{display:block;font-size:calc(14px*var(--fs));line-height:1.2}
.me .who{text-align:right}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:calc(16px*var(--fs));letter-spacing:-.01em}
.brand img{width:30px;height:30px}
.brand small{display:block;font-weight:500;font-size:calc(12px*var(--fs));color:var(--mut)}
.main{padding:26px 40px 64px;min-width:0;max-width:1560px;width:100%;margin:0 auto}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 18px;margin-bottom:24px}
.head > div:first-child{min-width:0}
.head .actions{display:flex;flex-wrap:wrap;gap:8px}
.page-sub{color:var(--mut);margin-top:6px;font-size:calc(15.5px*var(--fs))}
.crumb{display:inline-flex;align-items:center;gap:6px;font-size:calc(13px*var(--fs));color:var(--mut);text-decoration:none;margin-bottom:10px}
.crumb:hover{color:var(--fg)}
/* painel: saudação e números em destaque */
.hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;margin:10px 0 30px}
.hero h1{font-size:calc(clamp(32px,3.6vw,52px)*var(--fs));font-weight:700;letter-spacing:-.035em;line-height:1.05}
.hero .page-sub{font-size:calc(18px*var(--fs));margin-top:12px}
.hero-stats{display:flex;flex-wrap:wrap;align-items:flex-end;gap:24px 40px}
.hero-stat .label{font-size:calc(15px*var(--fs));color:var(--mut);font-weight:500}
.hero-stat .value{font-size:calc(clamp(30px,3vw,46px)*var(--fs));font-weight:600;letter-spacing:-.04em;line-height:1.05;font-variant-numeric:tabular-nums;margin-top:4px;display:flex;align-items:flex-start;gap:6px}
.hero-stat .delta{font-size:calc(14px*var(--fs));letter-spacing:0;margin-top:6px}
.btn.cta{min-height:58px;padding:0 28px;font-size:calc(16px*var(--fs))}
.btn.cta svg{width:18px;height:18px}
@media (max-width:960px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .rail{min-width:0;position:sticky;top:0;height:auto;flex-direction:row;padding:10px 12px;gap:10px;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--glass-line)}
  .rail-logo{width:40px;height:40px}
  .nav{flex-direction:row;min-width:0;overflow-x:auto;overflow-y:hidden;padding:2px 4px;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav .nav-title{width:1px;height:22px;margin:0 2px}
  .nav a,.rail .btn.icon{width:42px;height:42px}
  .nav a span{display:none}
  .nav-gbtn,.nav-toggle{width:42px;height:42px}
  .nav-gbtn > span{display:none}
  .nav-toggle{display:none}
  .nav-grp{flex-direction:row}
  .topbar{padding:16px 16px 0}
  .topbar .brand small,.me .who{display:none}
  .theme-toggle{margin:0 0 0 auto}
  .me .avatar{width:40px;height:40px}
  .main{padding:20px 16px 48px}
  .grid.kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.two,.grid.three{grid-template-columns:minmax(0,1fr)}
  .kpi .value{font-size:calc(22px*var(--fs))}
  .hero{margin-bottom:22px}
  .hero-stats{gap:18px 28px}
  .hero-stats .cta{width:100%}
  .head .actions{width:100%}
  .card{padding:18px;border-radius:var(--r-lg)}
}
@media (max-width:520px){
  .topbar{gap:8px}
  .topbar .theme-toggle{padding:3px}
  .topbar .theme-toggle button{width:32px;height:32px}
  .topbar .a11y-qbtn,.topbar .bell .btn.icon{width:36px;height:36px}
  .topbar .brand img{width:118px;height:auto}
}

/* ---------- cards ---------- */
.card{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-xl);padding:24px;box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.card .card,.card .table-wrap,.card .rm-scroll{background:var(--raised)}
.card + .card{margin-top:16px}
.grid > .card + .card{margin-top:0}
.card > .head{margin-bottom:16px;align-items:center}
.card h2 + .page-sub,.card .head .page-sub{margin-top:4px;font-size:calc(13.5px*var(--fs))}
.grid{display:grid;gap:18px}
/* Campos lado a lado no PC (um por linha no celular); .span-all ocupa a linha toda. */
.form-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:0 16px}
.form-cols .span-all{grid-column:1/-1}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}
.grid.kpi{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}
.kpi .card{padding:18px 20px;box-shadow:none;background:var(--raised);border-color:transparent;border-radius:var(--r-lg);backdrop-filter:none}
.kpi .label{font-size:calc(13.5px*var(--fs));color:var(--mut);font-weight:550}
.kpi .value{font-size:calc(28px*var(--fs));font-weight:650;letter-spacing:-.03em;margin-top:6px;font-variant-numeric:tabular-nums}
.kpi .hint{font-size:calc(12.5px*var(--fs));color:var(--mut);margin-top:2px}
.value.ok{color:var(--ok)}
.empty{padding:36px 20px;text-align:center;color:var(--mut)}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:var(--raised);color:var(--fg);font:inherit;font-size:calc(14px*var(--fs));font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.btn:hover{border-color:var(--line2);color:var(--fg);background:var(--surface2)}
.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--ink-fg)}
.btn.primary:hover{background:var(--ink-hover);border-color:var(--ink-hover);color:var(--ink-fg)}
.btn.icon{width:44px;min-height:44px;padding:0;border-radius:50%}
.btn.icon.small{width:34px;min-height:34px}
.btn.danger{background:transparent;border-color:transparent;color:var(--bad)}
.btn.danger:hover{background:var(--bad-soft)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.small{min-height:34px;padding:0 14px;font-size:calc(13px*var(--fs));border-radius:999px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* ---------- formulários ---------- */
label{display:block;font-size:calc(13px*var(--fs));color:var(--fg2);margin-bottom:6px;font-weight:600}
input,select,textarea{width:100%;background:var(--surface2);color:var(--fg);border:1px solid var(--line);border-radius:14px;padding:11px 14px;font:inherit;font-size:calc(14.5px*var(--fs));transition:border-color .15s,box-shadow .15s}
/* Rádio e caixa de seleção nunca herdam a largura total e o recheio dos campos de texto. */
input[type=radio],input[type=checkbox]{width:auto;padding:0;accent-color:var(--acc)}
textarea{min-height:88px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--acc);box-shadow:var(--focus);outline:none}
input[readonly]{color:var(--mut)}
.field{margin-bottom:14px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.row > .field{flex:1 1 170px;margin-bottom:0}
.filters{margin-bottom:16px}
.check{display:flex;align-items:center;gap:9px;color:var(--fg2);font-weight:500;margin:0}
.check input{width:auto;accent-color:var(--acc)}
.inline-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.inline-form > .field{margin:0;flex:1 1 170px}
.copy{display:flex;gap:8px}
.copy input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:calc(12.5px*var(--fs))}

/* ---------- tabelas ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised)}
table{width:100%;border-collapse:collapse;font-size:calc(14px*var(--fs))}
th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:calc(12.5px*var(--fs));font-weight:600;color:var(--mut);background:transparent}
tr:last-child td{border-bottom:0}
tbody tr.link{cursor:pointer}
tbody tr.link:hover td{background:var(--surface2)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pager{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:12px;font-size:calc(13px*var(--fs));color:var(--mut)}

/* ---------- selos e mensagens ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:calc(12px*var(--fs));font-weight:650;background:var(--surface3);color:var(--fg2);white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.badge.ok{background:var(--ok-soft);color:var(--ok)}
.badge.bad{background:var(--bad-soft);color:var(--bad)}
.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.info{background:var(--info-soft);color:var(--info)}
.msg{display:block;padding:12px 16px;border-radius:16px;font-size:calc(14px*var(--fs));margin-bottom:12px;border:1px solid transparent}
.msg.err{background:var(--bad-soft);color:var(--bad)}
.msg.ok{background:var(--ok-soft);color:var(--ok)}
.msg.warn{background:var(--warn-soft);color:var(--warn)}

/* ---------- listas ---------- */
.dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;font-size:calc(14px*var(--fs))}
.dl dt{color:var(--mut)}
.dl dd{margin:0;word-break:break-word}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{padding:11px 0;border-bottom:1px solid var(--line)}
.timeline li:last-child{border-bottom:0}
.timeline .meta{font-size:calc(12.5px*var(--fs));color:var(--mut);margin-bottom:2px}
.note-body{white-space:pre-wrap;margin-top:3px}
.filelist{list-style:none;margin:0;padding:0}
.filelist li{padding:9px 0;border-bottom:1px solid var(--line);word-break:break-word}
.filelist li:last-child{border-bottom:0}
.checks{list-style:none;margin:8px 0 0;padding:0;font-size:calc(14px*var(--fs))}
.checks li{padding:4px 0}

/* ---------- gráficos simples ---------- */
.bars{display:flex;flex-direction:column;gap:8px}
.bar{display:grid;grid-template-columns:90px 1fr 120px;gap:12px;align-items:center;font-size:calc(13px*var(--fs))}
.bar .track{display:block;height:10px;border-radius:999px;background:var(--surface3);overflow:hidden}
.bar .fill{display:block;height:100%;width:0;background:var(--lav);border-radius:999px}
.bar .val{text-align:right;font-variant-numeric:tabular-nums}
.progress{height:8px;border-radius:999px;background:var(--surface3);overflow:hidden}
.progress span{display:block;height:100%;width:0;background:var(--lime)}
pre.log{background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:12px;max-height:380px;overflow:auto;white-space:pre-wrap;font-size:calc(12px*var(--fs));margin:12px 0 0}

/* ---------- abas ---------- */
.tabs{display:flex;gap:4px;padding:5px;margin:6px 0 22px;overflow-x:auto;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);width:max-content;max-width:100%;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button,.tabs a{text-decoration:none;background:none;border:0;border-radius:999px;color:var(--mut);font:inherit;font-weight:600;font-size:calc(14.5px*var(--fs));padding:9px 16px;cursor:pointer;white-space:nowrap;display:inline-flex;gap:8px;align-items:center;transition:background .15s,color .15s}
.tabs button:hover,.tabs a:hover{color:var(--fg)}
.tabs button[aria-selected=true],.tabs a[aria-selected=true]{color:var(--fg);background:var(--raised);box-shadow:var(--shadow)}
.tabs .count{font-size:calc(12px*var(--fs));background:var(--surface3);color:var(--fg2);border-radius:999px;padding:1px 7px}

/* ---------- faixa de resumo do projeto ---------- */
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:10px}
.summary > div{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-lg);padding:16px 20px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.summary .label{font-size:calc(13px*var(--fs));color:var(--mut);font-weight:550}
.summary .value{font-size:calc(20px*var(--fs));font-weight:650;margin-top:4px;font-variant-numeric:tabular-nums}
.summary .hint{font-size:calc(12.5px*var(--fs));color:var(--mut)}

/* ---------- gestão: quadro por etapa ---------- */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}
.board .col{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-xl);padding:12px;min-height:140px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.board .col h3{font-size:calc(14px*var(--fs));font-weight:650;color:var(--fg);padding:8px 10px 14px;display:flex;justify-content:space-between}
.pm-card{display:block;background:var(--raised);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;margin-bottom:8px;color:var(--fg);text-decoration:none;transition:border-color .15s,transform .15s}
.pm-card:hover{border-color:var(--line2);color:var(--fg);transform:translateY(-2px);box-shadow:var(--shadow)}
.pm-card strong{display:block;font-size:calc(14.5px*var(--fs))}
.pm-card .small{display:block;margin-top:2px}
.act-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.act-row:last-child{border-bottom:0}
.act-row input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--ok)}
.act-row.done .act-title strong{text-decoration:line-through;color:var(--mut)}
.comp{border:1px dashed var(--line2);border-radius:var(--r-lg);padding:14px;margin-bottom:10px}
.cell-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

/* ---------- arquivos, cobranças ---------- */
.drop{border:1.5px dashed var(--line2);border-radius:var(--r-lg);padding:18px;text-align:center;color:var(--mut);font-size:calc(14px*var(--fs));margin-top:12px;transition:border-color .15s,background .15s}
.drop.drag,label.drop:hover{border-color:var(--acc);color:var(--fg);background:var(--acc-soft)}
label.drop{display:block;cursor:pointer;font-weight:500}
label.btn input[type=file]{display:none}
.req-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin-top:12px;background:var(--raised)}
.req-card ul{margin:8px 0;padding-left:20px}
.plan{display:grid;gap:8px}
.plan-row{display:grid;grid-template-columns:1fr 130px 1fr auto;gap:8px;align-items:center}
@media (max-width:640px){.plan-row{grid-template-columns:1fr 1fr}}
.pay-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pay-side{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.pay-amount{font-weight:700;font-variant-numeric:tabular-nums}

/* ---------- diálogo ---------- */
dialog{background:var(--raised);color:var(--fg);border:1px solid var(--line);border-radius:var(--r-xl);padding:0;width:min(660px,calc(100vw - 32px));max-height:calc(100vh - 40px);box-shadow:var(--shadow-lg)}
dialog::backdrop{background:rgba(20,20,32,.35);backdrop-filter:blur(6px)}
dialog form{padding:28px}
dialog .foot{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}

/* ---------- login ---------- */
.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.login .card{width:min(420px,100%);padding:36px}
.login .brand{padding:0;margin-bottom:28px;font-size:calc(20px*var(--fs))}
.login .brand img{width:38px;height:38px;border-radius:12px}
.login .btn{width:100%;min-height:52px;margin-top:8px;font-size:calc(15.5px*var(--fs))}
.login-theme{position:fixed;top:20px;right:20px}

/* ---------- página do cliente ---------- */
body.portal{font-size:calc(15.5px*var(--fs))}
.portal-head{background:#0d1526;color:#fff}
.portal-head .portal-wrap{display:flex;align-items:center;justify-content:space-between;gap:12px}
.portal-head .brand{padding:16px 0;color:#fff}
.portal-head .brand img{border-radius:10px}
.portal-head .brand small{color:#9aa6bf}
.portal-wrap{max-width:860px;margin:0 auto;padding:0 16px}
.portal-head .theme-toggle{margin:0;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}
.portal-head .theme-toggle button{width:34px;height:34px;color:#9aa6bf}
.portal-head .theme-toggle button[aria-pressed=true]{background:rgba(255,255,255,.16);color:#fff;box-shadow:none}
/* faixa azul atrás do topo: os cartões começam sobre ela */
.portal-hero{background:radial-gradient(900px 360px at 85% -20%,rgba(189,181,246,.28),transparent 60%),linear-gradient(180deg,#0d1526 0,#16213b 100%);color:#fff;padding:26px 0 76px}
.portal-hero h1{color:#fff;font-size:calc(clamp(28px,4.5vw,38px)*var(--fs));letter-spacing:-.03em;margin-top:4px}
.portal-hero .mut{color:#a8b3c9}
.portal-hero .chip{display:inline-flex;align-items:center;gap:8px;margin-top:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);padding:6px 13px;border-radius:999px;font-weight:600;font-size:calc(13.5px*var(--fs));color:#fff}
.portal-hero .chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lime)}
main.portal-wrap{padding-top:0;padding-bottom:48px;margin-top:-52px;position:relative}
body.portal .card{background:var(--raised);border-color:var(--line);border-radius:var(--r-xl);backdrop-filter:none;-webkit-backdrop-filter:none}
body.portal .card h2{font-size:calc(18px*var(--fs))}
.portal-empty{text-align:center;padding:40px 20px;margin-top:60px}
.portal-foot{text-align:center;margin-top:28px}
.label{margin-bottom:2px}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.steps li{display:flex;flex-direction:column;gap:8px;color:var(--mut);font-size:calc(13px*var(--fs));font-weight:600;position:relative}
.steps .dot{height:6px;border-radius:999px;background:var(--surface3)}
.steps li.done{color:var(--fg2)}
.steps li.done .dot{background:var(--ok)}
.steps li.now{color:var(--fg)}
.steps li.now .dot{background:var(--acc)}
@media (max-width:560px){.steps{grid-template-columns:1fr}.steps li{flex-direction:row;align-items:center}.steps .dot{width:28px;height:6px;flex:none}}
.steps.section{margin-top:22px}
.portal-hero .portal-wrap{padding-top:4px}

/* ---------- painel: gráficos ---------- */
:root{--s1:#3987e5;--s2:#d95926;--s3:#199e70}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:calc(13px*var(--fs));color:var(--fg2);margin-bottom:8px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.legend .sw{margin-right:0}
.sw.s1{background:var(--s1)} .sw.s2{background:var(--s2)} .sw.s3{background:var(--s3)}
.chart{position:relative;width:100%}
.chart svg{display:block;width:100%;height:auto;overflow:visible;stroke:none;fill:none}
.chart svg text{stroke:none}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .axis{stroke:var(--line2);stroke-width:1}
.chart .ytick,.chart .xtick{fill:var(--mut);font-size:calc(11px*var(--fs));font-family:inherit}
.chart .bar-s1{fill:var(--s1)} .chart .bar-s2{fill:var(--s2)} .chart .bar-s3{fill:var(--s3)}
.chart .hit{fill:transparent;cursor:default}
.chart .hit.on{fill:var(--acc-soft)}
.tip{position:absolute;z-index:2;min-width:180px;background:var(--raised);border:1px solid var(--line);border-radius:14px;padding:10px 14px;font-size:calc(12.5px*var(--fs));box-shadow:var(--shadow-lg);pointer-events:none}
.tip strong{display:block;margin-bottom:6px;font-size:calc(13px*var(--fs))}
.tip .row-between{gap:16px;padding:2px 0;color:var(--fg2)}
.tip .tot{border-top:1px solid var(--line2);margin-top:4px;padding-top:6px;color:var(--fg);font-weight:600}
.data-table{margin-top:10px;font-size:calc(13px*var(--fs))}
.data-table summary{cursor:pointer;color:var(--mut)}
.data-table summary:hover{color:var(--fg)}
.delta{font-weight:700;font-size:calc(12.5px*var(--fs))}
.delta.up{color:var(--ok)} .delta.down{color:var(--bad)}
#dash-f input[type=date]{width:auto;padding:5px 9px;font-size:calc(13px*var(--fs))}

/* ---------- roadmap das atividades ---------- */
.rm-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:calc(12.5px*var(--fs));color:var(--fg2);margin-bottom:12px}
.rm-legend > span{display:inline-flex;align-items:center;gap:7px}
.rm-dot{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}
.rm-dia{display:inline-block;width:9px;height:9px;transform:rotate(45deg);background:var(--fg2);border-radius:2px}
.rm-today-key{display:inline-block;width:2px;height:12px;background:var(--fg)}
.rm-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised)}
.rm{position:relative}
.rm-head,.rm-row{display:grid;grid-template-columns:240px 1fr}
.rm-head{border-bottom:1px solid var(--line);background:var(--surface2);position:sticky;top:0;z-index:2}
.rm-label{padding:10px 14px;border-right:1px solid var(--line);position:sticky;left:0;background:inherit;z-index:1;min-width:0}
.rm-row .rm-label{background:var(--raised)}
.rm-corner{font-size:calc(11.5px*var(--fs));font-weight:650;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);display:flex;align-items:flex-end}
.rm-label strong{display:block;font-size:calc(13.5px*var(--fs));font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-meta{display:flex;align-items:center;gap:6px;font-size:calc(12px*var(--fs));color:var(--mut);margin-top:2px}
.rm-meta .rm-dot{width:8px;height:8px;border-radius:50%}
.rm-track{position:relative;min-height:52px}
.rm-scale{height:46px;min-height:46px}
.rm-month{position:absolute;top:6px;font-size:calc(12px*var(--fs));font-weight:700;color:var(--fg2);text-transform:capitalize;padding-left:6px;border-left:1px solid var(--line2)}
.rm-week{position:absolute;bottom:6px;font-size:calc(11px*var(--fs));color:var(--mut);padding-left:5px;font-variant-numeric:tabular-nums}
.rm-body{position:relative}
.rm-gridlayer{position:absolute;top:0;bottom:0;left:240px;right:0;pointer-events:none}
.rm-grid{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.rm-today{position:absolute;top:0;bottom:0;width:2px;background:var(--fg);opacity:.85;z-index:1}
.rm-today::before{content:"";position:absolute;top:-1px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--fg)}
.rm-today b{position:absolute;top:2px;left:8px;font-size:calc(10.5px*var(--fs));font-weight:700;color:var(--fg);white-space:nowrap}
.rm-row{border-bottom:1px solid var(--line);position:relative}
.rm-row:last-child{border-bottom:0}
.rm-row.rm-click{cursor:pointer}
.rm-row.rm-click:hover .rm-label{background:var(--surface2)}
.rm-bar{position:absolute;top:50%;transform:translateY(-50%);height:28px;border-radius:10px;display:flex;align-items:center;overflow:hidden;z-index:1;min-width:8px}
.rm-bar span{font-size:calc(12px*var(--fs));font-weight:600;padding:0 10px;white-space:nowrap;color:#1b1c20}
.rm-milestone{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;transform:rotate(45deg);border-radius:3px;z-index:1;box-shadow:0 0 0 3px var(--surface)}
.rm-todo{background:#dcdde4} .rm-doing{background:var(--lav)} .rm-done{background:var(--lime)} .rm-late{background:#ffb3a7}
:root[data-theme=dark] body:not(.portal) .rm-todo{background:#4a4b57}
:root[data-theme=dark] body:not(.portal) .rm-bar.rm-todo span{color:#f1f1f4}
.rm-undated{margin-top:14px}
.rm-undated ul{margin:6px 0 0;padding-left:18px;font-size:calc(14px*var(--fs))}
.view-toggle{display:inline-flex;gap:3px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface2)}
.view-toggle button{white-space:nowrap;background:none;border:0;border-radius:999px;color:var(--mut);font:inherit;font-weight:600;font-size:calc(13px*var(--fs));padding:7px 14px;cursor:pointer}
.view-toggle button[aria-pressed=true]{background:var(--raised);color:var(--fg);box-shadow:var(--shadow)}
@media (max-width:640px){.rm-head,.rm-row{grid-template-columns:150px 1fr}.rm-gridlayer{left:150px}}
.acts tr.done td strong{text-decoration:line-through;color:var(--mut)}
.acts td input[type=checkbox]{width:17px;height:17px;accent-color:var(--ok)}
.pub-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.pub-opt{border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;background:var(--raised);display:flex;flex-direction:column;gap:8px}
.pub-opt .btn{align-self:flex-start;margin-top:auto}
.pub-lock{border:1px solid var(--warn-soft);background:var(--warn-soft);border-radius:var(--r-lg);padding:16px}
.pub-steps{padding-left:18px}
.pub-steps li{margin-bottom:4px}
.bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px 18px;margin-bottom:10px;border:0;border-radius:999px;background:var(--ink);color:var(--ink-fg);font-size:calc(13.5px*var(--fs))}
.acts td .btn + .btn{margin-left:6px}
.tpl-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;max-height:300px;overflow:auto}
.tpl{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:16px;padding:10px 12px;cursor:pointer;margin:0;font-weight:400;color:var(--fg)}
.tpl:has(input:checked){border-color:var(--acc);background:var(--acc-soft)}
.tpl input{width:auto;margin-top:3px;accent-color:var(--acc)}
.tpl > span{display:flex;flex-direction:column;gap:3px}
.tpl-acts{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:16px;padding:6px 12px}
.tpl-phase{font-size:calc(11.5px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);margin:10px 0 4px}
.tpl-act{padding:3px 0;font-size:calc(13.5px*var(--fs))}
dialog{width:min(760px,calc(100vw - 32px))}
.tpl-act{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}
.tpl-date{margin-left:auto;color:var(--acc);font-variant-numeric:tabular-nums;white-space:nowrap}
.rm-hint{margin:-4px 0 10px}
.rm-edit .rm-bar,.rm-edit .rm-milestone{cursor:grab;touch-action:none;user-select:none}
.rm-edit .rm-dragging{cursor:grabbing;box-shadow:0 0 0 2px var(--fg2);z-index:3}
.rm-h{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize;opacity:0;transition:opacity .12s;background:rgba(255,255,255,.35)}
.rm-h-l{left:0;border-radius:7px 0 0 7px}
.rm-h-r{right:0;border-radius:0 7px 7px 0}
.rm-edit .rm-bar:hover .rm-h,.rm-edit .rm-dragging .rm-h{opacity:1}
/* Atividades agrupadas por fase (tabela e roadmap) */
.caret{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid currentColor;margin-right:8px;vertical-align:middle;transition:transform .15s}
[aria-expanded=false] .caret{transform:rotate(-90deg)}
.rm-tools{display:flex;justify-content:flex-end;margin-bottom:8px}
.grp-tools{display:inline-flex;gap:6px}
.acts tbody + tbody{border-top:0}
.acts .grp-row td{background:var(--surface2);border-top:1px solid var(--line2);padding-top:9px;padding-bottom:9px}
.grp-toggle{background:none;border:0;color:var(--fg);font:inherit;font-size:calc(14px*var(--fs));cursor:pointer;padding:0;display:inline-flex;align-items:center}
.grp-toggle:focus-visible,.rm-group:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.grp-meta{display:inline-flex;align-items:center;gap:10px;margin-left:14px;flex-wrap:wrap}
.grp-bar{display:inline-block;width:90px;height:6px;border-radius:99px;background:var(--surface3);overflow:hidden;vertical-align:middle}
.grp-bar .rm-fill{display:block;height:100%;background:var(--lime);border-radius:99px}
.acts tr[data-gk] td:nth-child(3){padding-left:22px}
.rm-row[hidden]{display:none}
.rm-group{cursor:pointer;background:var(--surface2)}
.rm-group .rm-label{background:var(--surface2)}
.rm-group .rm-label strong{display:flex;align-items:center;font-weight:700}
.rm-group:hover .rm-label{background:var(--surface3)}
.rm-child .rm-label{padding-left:30px}
.rm-span{position:absolute;top:50%;transform:translateY(-50%);height:10px;border-radius:5px;background:var(--surface3);border:1px solid var(--line2);overflow:hidden;z-index:1;min-width:8px}
.rm-span .rm-fill{position:absolute;left:0;top:0;bottom:0;background:var(--lav)}
.rm-span-done .rm-fill{background:var(--lime)}
.rm-span-late .rm-fill{background:#ffb3a7}
/* Página do cliente em abas */
.portal-tabs{margin:22px 0 14px}
body.portal .tabs button{font-size:calc(15px*var(--fs))}
.portal-tabs .count.alert{background:var(--warn);color:#fff}
.fin-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fin-sum > div{border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 18px;background:var(--raised)}
.fin-sum .label{font-size:calc(13px*var(--fs));color:var(--mut);font-weight:550}
.fin-sum .value{font-size:calc(20px*var(--fs));font-weight:700;margin-top:4px}
@media (max-width:640px){.fin-sum{grid-template-columns:1fr}.grp-meta{margin-left:0;margin-top:4px;display:flex}}
/* Círculo de conclusão do projeto */
.ring{position:relative;flex:none;display:inline-grid;place-items:center}
.ring svg{width:100%;height:100%;stroke-linecap:round}
.ring-bg{fill:none;stroke:var(--surface3);stroke-width:3.2}
.ring-fg{fill:none;stroke:var(--lav);stroke-width:3.2}
.ring-full .ring-fg{stroke:var(--lime)}
.ring-v{position:absolute;font-weight:750;font-variant-numeric:tabular-nums;color:var(--fg);line-height:1}
.ring-v small{font-size:.55em;font-weight:700;margin-left:1px;color:var(--mut)}
.ring-lg{width:104px;height:104px}
.ring-lg .ring-v{font-size:calc(26px*var(--fs))}
.ring-sm{width:42px;height:42px}
.ring-sm .ring-v{display:none}
.stage-head{display:flex;align-items:center;justify-content:space-between;gap:24px}
.stage-text{min-width:0;flex:1}
.stage-ring{display:flex;align-items:center;gap:14px}
.ring-cap{display:flex;flex-direction:column;gap:2px;font-size:calc(13px*var(--fs));color:var(--mut)}
.ring-cap strong{color:var(--fg);font-size:calc(14px*var(--fs))}
.summary > .sum-ring{display:flex;align-items:center;justify-content:space-between;gap:12px}
@media (max-width:640px){.stage-head{flex-direction:column;align-items:flex-start;gap:16px}.ring-lg{width:84px;height:84px}.ring-lg .ring-v{font-size:calc(21px*var(--fs))}}
/* Processando: spinner no botão clicado e barra no topo (busy.js) */
.is-busy{cursor:progress!important;opacity:.85}
.is-busy::before{content:"";display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-2px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:px-spin .7s linear infinite;flex:none}
.view-toggle .is-busy::before,.tabs .is-busy::before{width:10px;height:10px;margin-right:6px}
.px-busy-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:1000;overflow:hidden;background:var(--acc-soft);pointer-events:none}
.px-busy-bar[hidden]{display:none}
.px-busy-bar span{position:absolute;top:0;bottom:0;width:35%;background:var(--acc);border-radius:2px;animation:px-slide 1.1s ease-in-out infinite}
@keyframes px-spin{to{transform:rotate(360deg)}}
@keyframes px-slide{0%{left:-35%}100%{left:100%}}
@media (prefers-reduced-motion:reduce){.is-busy::before{animation-duration:2s}.px-busy-bar span{animation-duration:2.5s}}
/* Exclusão de projeto */
.danger-zone{border-color:var(--bad-soft)}
.danger-zone h2{color:var(--bad)}
.danger-zone .btn.danger,#dlg .btn.danger[data-ok]{background:var(--bad);color:#fff;border-color:var(--bad)}
.danger-zone .btn.danger:hover,#dlg .btn.danger[data-ok]:hover{filter:brightness(1.08)}
#dlg fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
#dlg legend{font-size:calc(13px*var(--fs));font-weight:600;color:var(--fg2);margin-bottom:6px;padding:0}
/* Vitrine (pré-venda) */
.badge.vitrine{background:var(--lime-soft);color:var(--lime-ink);vertical-align:middle;font-size:calc(11.5px*var(--fs))}
.offer-card{border-color:var(--lime)}
.offer-card.done{border-color:var(--ok-soft)}
.offer-price{font-size:calc(22px*var(--fs));font-weight:750;color:var(--fg);letter-spacing:-.02em}
/* Página do cliente: vitrine (oferta comercial) */
body.portal-offer .portal-hero{background:radial-gradient(1200px 400px at 85% -10%,rgba(77,141,255,.35),transparent 60%),linear-gradient(180deg,#0d1526 0,#162447 100%)}
body.portal-offer .portal-hero h1{font-size:calc(34px*var(--fs));line-height:1.15;max-width:640px}
.hero-sub{font-size:calc(17px*var(--fs));margin-top:8px;max-width:560px}
body.portal-offer .portal-hero .chip::before{background:#f5b84b}
.offer-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,1fr);gap:24px;align-items:start}
.browser{border:1px solid var(--line2);border-radius:14px;overflow:hidden;background:var(--surface2)}
.browser-bar{display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--surface3);border-bottom:1px solid var(--line)}
.browser-bar i{width:10px;height:10px;border-radius:50%;background:#d6dce8}
.browser-bar span{margin-left:8px;flex:1;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:3px 12px;font-size:calc(12.5px*var(--fs));color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.browser-body{padding:34px 26px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;min-height:220px;justify-content:center;
  background:linear-gradient(160deg,rgba(47,109,246,.08),transparent 60%)}
.browser-title{font-size:calc(21px*var(--fs));font-weight:750;color:var(--fg);letter-spacing:-.02em;margin:0}
.offer-note{margin:16px 0 0;padding:14px 16px;border-left:3px solid var(--acc);background:var(--surface2);border-radius:0 10px 10px 0;font-size:calc(15px*var(--fs));color:var(--fg2)}
.offer-note cite{display:block;margin-top:6px;font-size:calc(12.5px*var(--fs));font-style:normal;color:var(--mut)}
.offer-box{border:1px solid var(--line2);border-radius:16px;padding:20px;background:var(--surface);box-shadow:var(--shadow)}
.offer-box .label{font-size:calc(12px*var(--fs));font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--acc);margin:0}
.offer-big{font-size:calc(32px*var(--fs));font-weight:800;letter-spacing:-.03em;color:var(--fg);margin:4px 0 2px;line-height:1.1}
.perks{list-style:none;margin:16px 0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:calc(14.5px*var(--fs))}
.perks li{position:relative;padding-left:26px}
.perks li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;background:var(--ok-soft);box-shadow:inset 0 0 0 1px rgba(20,160,107,.35)}
.perks li::after{content:"";position:absolute;left:5px;top:6px;width:6px;height:9px;border:solid var(--ok);border-width:0 2px 2px 0;transform:rotate(45deg)}
.offer-cta{width:100%;justify-content:center;font-size:calc(16px*var(--fs));padding:13px 18px}
.offer-wa{width:100%;justify-content:center;margin-top:8px}
.offer-safe,.offer-after{text-align:center;margin-top:8px}
.gift-card{display:flex;gap:18px;align-items:flex-start;border-color:rgba(194,124,14,.3);background:linear-gradient(120deg,rgba(194,124,14,.07),transparent 60%),var(--surface)}
.gift-icon{flex:none;width:52px;height:52px;border-radius:14px;background:var(--warn-soft);display:grid;place-items:center;color:var(--warn)}
.gift-icon svg{width:28px;height:28px}
.how{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;counter-reset:how}
.how li{counter-increment:how;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface2);display:flex;flex-direction:column;gap:4px;font-size:calc(14px*var(--fs))}
.how li::before{content:counter(how);width:26px;height:26px;border-radius:50%;background:var(--acc);color:#fff;display:grid;place-items:center;font-weight:700;font-size:calc(13px*var(--fs));margin-bottom:4px}
.how li span{color:var(--mut)}
.faq details{border-bottom:1px solid var(--line);padding:12px 0}
.faq summary{cursor:pointer;font-weight:650;color:var(--fg)}
.faq p{margin:8px 0 0;color:var(--fg2);font-size:calc(14.5px*var(--fs))}
.offer-more{margin-top:28px}
@media (max-width:720px){.offer-grid,.how{grid-template-columns:1fr}body.portal-offer .portal-hero h1{font-size:calc(27px*var(--fs))}}
/* Prospecção */
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filters input[name=q]{flex:1 1 220px}
.filters select{flex:0 1 auto;max-width:240px}
.prospects td{vertical-align:top}
.prospects td .btn + .btn,.prospects td .btn + a.btn,.prospects td a.btn + .btn{margin-left:6px}
.prospects select{min-width:130px}
.prospect-note{margin-top:4px;padding:8px 12px;border-radius:12px;background:var(--surface2);color:var(--fg2);max-width:420px}
.pr-sum{cursor:pointer;display:flex;gap:10px;align-items:center}
/* Gestão de projetos: quadro com todas as etapas, lista e linha do tempo */
.pm-kpi{margin-bottom:4px}
.pm-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.pm-filters input[type=search]{width:min(280px,100%);border-radius:999px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;border:1px solid var(--glass-line);background:var(--glass);color:var(--fg2);font:inherit;font-size:calc(13.5px*var(--fs));font-weight:600;cursor:pointer}
.chip b{font-weight:700;color:var(--mut)}
.chip:hover{background:var(--raised)}
.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--ink-fg)}
.chip[aria-pressed=true] b{color:inherit;opacity:.7}
.chip:disabled{opacity:.45;cursor:default}
.board h3 .count,.pm-list .count{font-size:calc(12px*var(--fs));font-weight:700;background:var(--surface3);color:var(--fg2);border-radius:999px;padding:1px 9px}
.pm-board .col{min-height:calc(100vh - 430px)}
.pm-board .empty-col{opacity:.7}
.pm-card{display:flex;flex-direction:column;gap:4px}
.pm-card strong{font-size:calc(14px*var(--fs));line-height:1.3}
.pm-card .small{margin-top:0}
.pm-card .pm-meta{display:flex;flex-direction:column;gap:1px;margin-top:4px}
.pm-prog{display:flex;align-items:center;gap:8px;margin-top:6px}
.pm-prog-bar{flex:1;min-width:60px;height:6px;border-radius:999px;background:var(--surface3);overflow:hidden}
.pm-prog-bar .fill{display:block;height:100%;width:0;background:var(--lime);border-radius:999px}
:root[data-theme=dark] .pm-prog-bar .fill{background:var(--lime)}
.pm-list .grp-row td{background:var(--surface2);padding-top:9px;padding-bottom:9px}
.pm-list .pm-prog{margin-top:0;min-width:140px}
@media (min-width:1200px){
  .pm-board{grid-auto-flow:row;grid-template-columns:var(--cols-tpl);overflow-x:visible;gap:10px}
  .pm-board .empty-col h3{flex-direction:column;align-items:flex-start}
  .pm-board .col{padding:10px 8px;border-radius:var(--r-lg)}
  .pm-board .col h3{font-size:calc(13px*var(--fs));padding:6px 6px 12px;gap:6px}
  .pm-board .pm-card{padding:12px;border-radius:var(--r)}
}
@media (max-width:960px){.pm-filters input[type=search]{width:100%}}
/* uma etapa filtrada: cartões em grade */
.pm-board[data-cols="1"]{grid-auto-flow:row;grid-template-columns:minmax(0,1fr)}
.pm-board[data-cols="1"] .col{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;align-content:start;min-height:0}
.pm-board[data-cols="1"] .col h3{grid-column:1/-1;padding-bottom:4px}
.pm-board[data-cols="1"] .pm-card{margin-bottom:0}
.msg.archived-bar{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
a.chip{text-decoration:none}
/* Agenda: semana com horários, reuniões (lilás) e compromissos do Google (cinza listrado) */
.ag-range{margin-left:6px;font-size:calc(15px*var(--fs));white-space:nowrap}
.view-toggle a{text-decoration:none;border:0}
.view-toggle a[aria-pressed=true]{background:var(--raised);color:var(--fg);box-shadow:var(--shadow)}
.cal{padding:0;overflow:hidden}
.cal-head,.cal-body{display:grid;grid-template-columns:60px repeat(7,minmax(0,1fr))}
.cal-head{border-bottom:1px solid var(--line);background:var(--raised)}
.cal-day{padding:10px 8px;display:flex;flex-direction:column;gap:4px;min-width:0;border-left:1px solid var(--line)}
.cal-day span{font-size:calc(12.5px*var(--fs));color:var(--mut);text-transform:capitalize}
.cal-day b{font-size:calc(22px*var(--fs));font-weight:650;line-height:1}
.cal-day.today b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--ink-fg);font-size:calc(17px*var(--fs))}
.cal-allday{font-style:normal;font-size:calc(11.5px*var(--fs));padding:2px 8px;border-radius:999px;background:var(--surface3);color:var(--fg2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-body{max-height:640px;overflow-y:auto;background:var(--raised)}
.cal-hours span{display:block;height:52px;font-size:calc(11.5px*var(--fs));color:var(--mut2);text-align:right;padding:2px 8px 0}
.cal-col{position:relative;border-left:1px solid var(--line)}
.cal-col.today{background:var(--acc-soft)}
.cal-slot{display:block;width:100%;height:52px;border:0;border-top:1px solid var(--line);background:none;cursor:pointer;padding:0;border-radius:0}
.cal-slot:hover{background:var(--surface2)}
.cal-open{position:absolute;left:0;right:0;background:var(--ok-soft);border-left:3px solid var(--ok);pointer-events:none;z-index:0}
.cal-open.avulso{border-left-style:dashed}
.cal-col:has(.cal-open){isolation:isolate}
.cal.freeing .cal-slot{cursor:copy}
.cal.freeing .cal-slot:hover{background:var(--ok-soft);box-shadow:inset 0 0 0 2px var(--ok)}
.cal.freeing .cal-ev{opacity:.55}
.ag-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.ag-legend.on{color:var(--fg2)}
.ag-sw{display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--ok-soft);border-left:3px solid var(--ok)}
#ag-free[aria-pressed=true]{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}
.av-grid{display:grid;grid-template-columns:90px 1fr;gap:8px 12px;align-items:center;margin-top:10px}
.av-grid label{margin:0;font-weight:600}
.cal-ev{position:absolute;display:flex;flex-direction:column;gap:1px;padding:5px 8px;border:0;border-radius:10px;text-align:left;font:inherit;font-size:calc(12px*var(--fs));overflow:hidden;cursor:pointer;color:#1b1c20;z-index:1}
.cal-ev b{font-size:calc(12.5px*var(--fs));font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-ev span{opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-meeting{background:var(--lav)}
.cal-mine{background:#cfe4ff}
.cal-busy{background:repeating-linear-gradient(135deg,#e2e3ea 0 6px,#ececf1 6px 12px);color:#3b3d45}
:root[data-theme=dark] .cal-busy{background:repeating-linear-gradient(135deg,#34353f 0 6px,#2c2d36 6px 12px);color:#e6e6ec}
.cal-ev:hover{filter:brightness(.97);box-shadow:var(--shadow)}
.ag-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.ag-item{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;width:100%;padding:12px 14px;border:0;border-radius:16px;text-align:left;font:inherit;cursor:pointer;color:#1b1c20}
.ag-item b{display:block}
.ag-item .mut{color:rgba(27,28,32,.65)}
.ag-time{font-size:calc(13px*var(--fs));font-weight:650;font-variant-numeric:tabular-nums}
.ag-day h2{text-transform:capitalize}
.linklike{border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.linklike:hover strong{text-decoration:underline}
#dlg .chips .chip{cursor:pointer;margin:0}
#dlg .chip input{width:auto;margin:0;accent-color:var(--ink)}
@media (max-width:900px){.cal-head,.cal-body{grid-template-columns:44px repeat(7,minmax(70px,1fr))}.cal{overflow-x:auto}}
.cal-ev.short{flex-direction:row;align-items:center;gap:6px;padding:0 8px}
.cal-ev.short span{order:-1;flex:none;opacity:.7}
.cal-ev.short span::after{content:""}
/* Logo oficial (kit da marca): versão para fundo claro ou escuro conforme o tema */
.brand .logo-dark{display:none}
:root[data-theme=dark] .brand .logo-light{display:none}
:root[data-theme=dark] .brand .logo-dark{display:block}
.topbar .brand img{height:30px;width:auto}
.topbar .brand small{margin-left:4px}
.brand-stack{flex-direction:column;align-items:flex-start;gap:6px}
.login .brand.brand-stack img{width:auto;height:38px;border-radius:0}
.portal-head .brand.brand-stack img{height:28px;width:auto;border-radius:0}
.rail-logo img{width:40px;height:40px;border-radius:0}
.av-rules{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
/* Roadmap: alternar Fases / Detalhado */
.rm-views{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface2);margin-bottom:14px}
.rm-views .btn{border:0}
.rm-views .btn[aria-pressed=true]{background:var(--raised);box-shadow:var(--shadow);color:var(--fg)}
/* Roadmap por fases: blocos grandes e coloridos na linha das semanas, com a linha de hoje */
.ph-scroll{overflow-x:auto;padding:18px 18px 8px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised)}
.ph{position:relative}
.ph-head{position:relative;height:44px;border-bottom:1.5px dashed var(--line2);margin-bottom:14px}
.ph-week{position:absolute;top:0;display:flex;flex-direction:column;line-height:1.15}
.ph-week b{font-size:calc(14px*var(--fs));font-weight:650;color:var(--mut)}
.ph-week small{font-size:calc(11px*var(--fs));color:var(--mut2);font-variant-numeric:tabular-nums}
.ph-body{position:relative;display:flex;flex-direction:column;gap:12px;padding-bottom:10px}
.ph-today{position:absolute;top:-21px;bottom:0;width:2px;margin-left:-1px;background:var(--fg);z-index:2;pointer-events:none}
.ph-today::before{content:"";position:absolute;top:-5px;left:-5px;width:12px;height:12px;border-radius:50%;background:var(--fg)}
.ph-row{position:relative;min-height:84px}
.ph-card{position:absolute;top:0;min-width:230px;min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px 16px 20px;border:0;border-radius:20px;text-align:left;font:inherit;color:#14151a;cursor:pointer;overflow:hidden;transition:transform .12s,box-shadow .12s}
.ph-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(20,21,26,.12)}
.ph-card:focus-visible{outline:none;box-shadow:0 0 0 3px var(--fg)}
.ph-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.ph-txt b{font-size:calc(16.5px*var(--fs));font-weight:650;line-height:1.25}
.ph-txt small{font-size:calc(13px*var(--fs));color:rgba(20,21,26,.62)}
.ph-txt em{font-style:normal;font-weight:650;color:#b42318}
.ph-num{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.6);font-weight:700;font-size:calc(15px*var(--fs))}
.ph-prog{position:absolute;left:0;right:0;bottom:0;height:5px;background:rgba(20,21,26,.08)}
.ph-prog i{display:block;height:100%;background:rgba(20,21,26,.45)}
.ph-c0{background:#e2ee8c} .ph-c1{background:#c3bbf4} .ph-c2{background:#d6e4fb} .ph-c3{background:#e4e5ec} .ph-c4{background:#ffd9b6} .ph-c5{background:#c8eed8}
.ph-done .ph-num{background:#14151a;color:#fff}
.ph-late{box-shadow:inset 0 0 0 2px #e5484d}
.ph-card[aria-expanded=true]{box-shadow:0 0 0 2px var(--fg)}
.ph-acts{list-style:none;margin:-4px 0 6px;padding:8px;border-radius:16px;background:var(--surface2);display:grid;gap:4px;position:relative;z-index:3}
.ph-acts[hidden]{display:none}
.ph-act{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--raised);font-size:calc(13.5px*var(--fs))}
.ph-act .rm-dot{width:9px;height:9px;border-radius:50%}
.ph-act-t{font-weight:600;min-width:0}
.ph-act-m{font-size:calc(12px*var(--fs));color:var(--mut);white-space:nowrap}
.ph-act.rm-click{cursor:pointer}
.ph-act.rm-click:hover{background:var(--surface3)}
.ph-hint{margin-top:8px}
@media (max-width:620px){.ph-card{min-width:200px}.ph-txt b{font-size:calc(15px*var(--fs))}.ph-act{grid-template-columns:auto 1fr}.ph-act-m{grid-column:2;white-space:normal}}
/* WhatsApp nativo: configurações do número */
.wa-cfg-row{display:grid;grid-template-columns:1fr 130px 40px;gap:8px;align-items:start;margin-bottom:8px}
.wa-cfg-row.q{grid-template-columns:minmax(0,1fr) 40px}
.wa-cfg-row.q > :first-child{grid-column:1/-1}
.nav-count{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--bad);color:#fff;font-size:calc(11px*var(--fs));font-weight:700;display:grid;place-items:center;box-shadow:0 0 0 2px var(--bg)}
.nav-count[hidden]{display:none}
/* Financeiro da IA: conta da Anthropic */
.anth .anth-low{border-color:var(--bad)}
.anth-days{display:flex;align-items:flex-end;gap:2px;height:72px;padding:6px 0 0;border-bottom:1px solid var(--line)}
.anth-days span{flex:1;height:100%;display:flex;align-items:flex-end;min-width:3px}
.anth-days i{display:block;width:100%;border-radius:4px 4px 0 0;background:var(--lav, #6b7cff);opacity:.85;transition:opacity .15s}
.anth-days span:hover i{opacity:1}
/* interruptor (liga/desliga) */
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;margin:0}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch>span:first-of-type{position:relative;width:40px;height:24px;border-radius:999px;background:var(--surface3);border:1px solid var(--line2);transition:background .15s;flex:none}
.switch>span:first-of-type::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--raised);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.switch input:checked+span{background:var(--ok);border-color:var(--ok)}
.switch input:checked+span::after{transform:translateX(16px)}
.switch input:focus-visible+span{box-shadow:var(--focus)}
.switch input:disabled+span{opacity:.5}
.switch.sm>span:first-of-type{width:34px;height:20px}
.switch.sm>span:first-of-type::after{width:14px;height:14px}
.switch.sm input:checked+span::after{transform:translateX(14px)}

/* Caixa de entrada (wainbox.js) */
.wai{display:flex;flex-direction:column;gap:12px}
.wai-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.wai-filters{display:flex;gap:4px;flex-wrap:wrap}
.wai-filters button{background:var(--glass);border:1px solid var(--glass-line);border-radius:999px;color:var(--mut);font:inherit;font-weight:600;font-size:calc(13.5px*var(--fs));padding:7px 13px;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.wai-filters button[aria-selected=true]{background:var(--ink);color:var(--ink-fg);border-color:var(--ink)}
.wai-filters .count{font-size:calc(11.5px*var(--fs));background:var(--surface3);color:var(--fg2);border-radius:999px;padding:0 7px}
.wai-filters .count.hot{background:var(--bad);color:#fff}
.wai-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.wai-q{width:220px;min-height:38px}
.wai-body{display:grid;grid-template-columns:320px minmax(0,1fr) 270px;height:calc(100vh - 290px);min-height:520px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.wai-list{overflow-y:auto;border-right:1px solid var(--line);background:var(--surface)}
.wai-item{display:flex;gap:10px;width:100%;text-align:left;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--fg);font:inherit;cursor:pointer}
.wai-item:hover{background:var(--surface2)}
.wai-item.on{background:var(--acc-soft)}
.wai-item.unread strong{font-weight:800}
.wai-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;font-weight:700;font-size:calc(13px*var(--fs));background:var(--surface3);color:var(--fg2)}
.wai-av.s-novo{background:var(--warn-soft);color:var(--warn)}
.wai-av.s-atendimento{background:var(--info-soft);color:var(--info)}
.wai-av.s-resolvida{background:var(--ok-soft);color:var(--ok)}
.wai-it{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.wai-it-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.wai-it-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(14px*var(--fs))}
.wai-it-top small{color:var(--mut);font-size:calc(11.5px*var(--fs));flex:none}
.wai-it-mid{color:var(--mut);font-size:calc(13px*var(--fs));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wai-it-bot{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:calc(12px*var(--fs))}
.wai-it-bot .badge{font-size:calc(11px*var(--fs));padding:2px 8px}
.wai-unread{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--ok);color:#fff;font-size:calc(11px*var(--fs));font-weight:700;display:grid;place-items:center}
.wai-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:calc(11.5px*var(--fs));font-weight:650;background:var(--surface3);color:var(--fg2)}
.wai-tag.t-azul{background:var(--acc-soft);color:var(--acc)}
.wai-tag.t-verde{background:var(--ok-soft);color:var(--ok)}
.wai-tag.t-amarelo{background:var(--warn-soft);color:var(--warn)}
.wai-tag.t-vermelho{background:var(--bad-soft);color:var(--bad)}
.wai-tag.t-roxo{background:var(--lav-soft);color:var(--lav-ink)}
.wai-tag.off{opacity:.45}
.wai-empty{padding:28px 18px;text-align:center;color:var(--mut);font-size:calc(14px*var(--fs));list-style:none}
.wai-hello{display:flex;flex-direction:column;gap:8px;justify-content:center;height:100%;max-width:380px;margin:0 auto}
.wai-hello strong{color:var(--fg);font-size:calc(16px*var(--fs))}
.wai-chat{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg2)}
.wai-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap}
.wai-back{display:none}
.wai-who{display:flex;flex-direction:column;min-width:0;margin-right:auto}
.wai-who strong{font-size:calc(15px*var(--fs));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wai-ctl{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.wai-ctl select{min-height:34px;padding:0 10px;font-size:calc(13px*var(--fs));width:auto}
.wai-msgs{flex:1;overflow-y:auto;list-style:none;margin:0;padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.wai-day{align-self:center;margin:8px 0;list-style:none}
.wai-day span{font-size:calc(11.5px*var(--fs));font-weight:650;color:var(--mut);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:3px 10px;text-transform:capitalize}
.wai-call{align-self:center;margin:6px 0;list-style:none}
.wai-call span{display:inline-block;font-size:calc(12.5px*var(--fs));font-weight:600;color:var(--ok);background:var(--ok-soft);border-radius:999px;padding:5px 12px}
.wai-call.missed span{color:var(--bad);background:var(--bad-soft)}
.wai-msg{max-width:72%;padding:8px 12px 6px;border-radius:16px;font-size:calc(14px*var(--fs));line-height:1.4;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}
.wai-msg.in{align-self:flex-start;background:var(--raised);border-bottom-left-radius:6px}
.wai-msg.agent{align-self:flex-end;background:var(--acc);color:var(--acc-fg);border-bottom-right-radius:6px}
.wai-msg.agent a{color:inherit}
.wai-msg.bot{align-self:flex-end;background:var(--surface3);color:var(--fg2);border-bottom-right-radius:6px}
.wai-text{white-space:pre-wrap;overflow-wrap:anywhere}
.wai-author{font-size:calc(11px*var(--fs));font-weight:700;opacity:.8}
.wai-meta{font-size:calc(11px*var(--fs));opacity:.7;align-self:flex-end;display:inline-flex;gap:4px;align-items:center}
.wai-tick{font-size:calc(11px*var(--fs));letter-spacing:-2px}
.wai-tick.read{color:#53bdeb;opacity:1}
.wai-msg.agent .wai-tick.read{color:#bfe9ff}
.wai-tick.bad{color:var(--bad);font-weight:800;letter-spacing:0}
.wai-img{display:block;max-width:min(260px,100%);max-height:300px;border-radius:12px;object-fit:cover}
.wai-msg{min-width:0}
.wai-msg.agent .btn,.wai-msg.bot .btn{background:rgba(255,255,255,.18);color:inherit;border-color:rgba(255,255,255,.45)}
.wai-msg.bot .btn{background:var(--raised);color:var(--fg);border-color:var(--line2)}
.wai-msg audio{width:240px;max-width:100%}
.wai-msg video{max-width:260px;border-radius:12px}
.wai-compose{position:relative;padding:10px 14px 8px;border-top:1px solid var(--line);background:var(--surface)}
.wai-row{display:flex;gap:8px;align-items:flex-end}
.wai-row textarea{flex:1;resize:none;min-height:44px;max-height:160px;border-radius:22px;padding:11px 16px;line-height:1.35}
.wai-hint{display:block;margin:6px 6px 0;font-size:calc(12px*var(--fs))}
.wai-closed{padding:10px 12px;border-radius:14px;background:var(--warn-soft);color:var(--warn);font-size:calc(13.5px*var(--fs))}
.wai-closed .actions{margin-top:8px}
.wai-tpl{display:grid;gap:6px}
.wai-tpl select,.wai-tpl input{width:100%}
.wai-tpl-prev{margin:4px 0 0;padding:8px 10px;border-radius:10px;background:var(--raised);white-space:pre-wrap;max-height:120px;overflow:auto}
.wai-quick{position:absolute;left:14px;right:14px;bottom:calc(100% - 4px);max-height:260px;overflow-y:auto;background:var(--raised);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:6px;z-index:5}
.wai-quick button{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;border:0;background:none;border-radius:10px;padding:8px 10px;color:var(--fg);font:inherit;cursor:pointer}
.wai-quick button:hover,.wai-quick button:focus-visible{background:var(--surface2)}
.wai-quick button span{font-size:calc(12.5px*var(--fs));color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wai-side{overflow-y:auto;border-left:1px solid var(--line);padding:14px 16px;display:flex;flex-direction:column;gap:18px;background:var(--surface)}
.wai-side h3{font-size:calc(13px*var(--fs));text-transform:uppercase;letter-spacing:.04em;color:var(--mut);margin:0 0 8px}
.wai-tags{display:flex;flex-wrap:wrap;gap:6px}
.wai-tags button{border:0;background:none;padding:0;cursor:pointer;font:inherit}
.wai-dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:0 0 10px;font-size:calc(13px*var(--fs))}
.wai-dl dt{color:var(--mut)}
.wai-dl dd{margin:0;overflow-wrap:anywhere}
.wai-notes{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.wai-notes li{background:var(--warn-soft);border-radius:12px;padding:8px 10px;font-size:calc(13px*var(--fs));display:flex;flex-direction:column;gap:3px}
.wai-notes li span{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--fg)}
.wai-side form{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.wai-side textarea{width:100%}
.wai:fullscreen{background:var(--bg);padding:14px;overflow:auto}
.wai:fullscreen .wai-body{height:calc(100vh - 92px)}
.wai:fullscreen .wai-board{max-height:calc(100vh - 92px)}
.wai-board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.wai-col{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-lg);padding:12px;min-height:300px;transition:background .15s}
.wai-col.drop{background:var(--acc-soft)}
.wai-col h3{display:flex;gap:8px;align-items:center;margin:0 0 10px;font-size:calc(14px*var(--fs))}
.wai-col-list{display:flex;flex-direction:column;gap:8px}
.wai-card{background:var(--raised);border:1px solid var(--line);border-radius:14px;padding:10px 12px;cursor:grab;display:flex;flex-direction:column;gap:6px}
.wai-card:hover{border-color:var(--line2)}
.wai-card p{margin:0;font-size:calc(13px*var(--fs));color:var(--mut);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.wai-err{margin:0}
@media (max-width:1280px){.wai-body{grid-template-columns:300px minmax(0,1fr)}.wai-side{display:none}}
@media (max-width:720px){
  .wai-body{grid-template-columns:1fr;height:calc(100vh - 220px)}
  .wai-body .wai-chat{display:none}
  .wai-body.has-chat .wai-list{display:none}
  .wai-body.has-chat .wai-chat{display:flex}
  .wai-back{display:grid}
  .wai-msg{max-width:88%}
  .wai-q{width:100%}
  .wai-board{grid-template-columns:repeat(4,80vw)}
}

/* Celular simulador (usado pelo editor do fluxo, waflow.js) */
.wab-phone{border-radius:34px;border:8px solid var(--ink);background:var(--bg2);overflow:hidden;display:flex;flex-direction:column;height:min(640px,calc(100vh - 140px));box-shadow:var(--shadow-lg)}
.wab-ph-head{display:flex;gap:10px;align-items:center;padding:12px 12px 12px 14px;background:#075e54;color:#fff}
.wab-ph-head div{display:flex;flex-direction:column;margin-right:auto;min-width:0}
.wab-ph-head small{opacity:.8;font-size:calc(11px*var(--fs))}
.wab-ph-head .btn{color:#fff;min-height:30px;padding:0 10px}
.wab-ph-head .btn:hover{background:rgba(255,255,255,.15)}
.wab-ph-av{width:34px;height:34px;border-radius:50%;background:#fff;color:#075e54;display:grid;place-items:center;font-weight:800}
.wab-ph-msgs{flex:1;overflow-y:auto;list-style:none;margin:0;padding:12px;display:flex;flex-direction:column;gap:6px;background:#efeae2}
:root[data-theme=dark] .wab-ph-msgs{background:#0b141a}
.wab-b{max-width:85%;display:flex;flex-direction:column;gap:6px}
.wab-b>span{padding:7px 10px;border-radius:10px;font-size:calc(13.5px*var(--fs));line-height:1.38;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 1px .5px rgba(0,0,0,.13)}
.wab-b.bot{align-self:flex-start}
.wab-b.bot>span{background:#fff;color:#111b21;border-top-left-radius:2px}
.wab-b.me{align-self:flex-end}
.wab-b.me>span{background:#d9fdd3;color:#111b21;border-top-right-radius:2px}
:root[data-theme=dark] .wab-b.bot>span{background:#202c33;color:#e9edef}
:root[data-theme=dark] .wab-b.me>span{background:#005c4b;color:#e9edef}
.wab-b a{color:#027eb5}
.wab-opts{display:flex;flex-direction:column;gap:4px}
.wab-opts button,.wab-opts summary{border:0;border-radius:10px;background:#fff;color:#027eb5;font:inherit;font-size:calc(13.5px*var(--fs));font-weight:600;padding:8px 10px;cursor:pointer;text-align:center;box-shadow:0 1px .5px rgba(0,0,0,.13);list-style:none}
:root[data-theme=dark] .wab-opts button,:root[data-theme=dark] .wab-opts summary{background:#202c33;color:#53bdeb}
.wab-opts summary::-webkit-details-marker{display:none}
.wab-opts details[open] summary{margin-bottom:4px}
.wab-opts details button{display:flex;flex-direction:column;width:100%;text-align:left;margin-top:3px;color:#111b21}
:root[data-theme=dark] .wab-opts details button{color:#e9edef}
.wab-opts details button small{color:#667781;font-weight:400;font-size:calc(12px*var(--fs))}
.wab-sys{align-self:center;font-size:calc(12px*var(--fs));color:#54656f;background:#ffeecd;border-radius:8px;padding:5px 10px;text-align:center;max-width:92%}
:root[data-theme=dark] .wab-sys{background:#182229;color:#ffd279}
.wab-ph-input{display:flex;gap:6px;padding:8px;background:var(--surface)}
.wab-ph-input input{flex:1;border-radius:999px;min-height:40px}
.wab-ph-input .btn.icon{width:40px;min-height:40px}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--surface2)}
/* Portal do cliente: login (cliente-entrar.html) e app (cliente.html) */
.login-title{font-size:calc(22px*var(--fs));margin:0 0 4px}
.login form>.mut{margin:0 0 18px}
.login-links{display:flex;justify-content:center;margin:16px 0 0;font-size:calc(14px*var(--fs))}
.login-links a[hidden]{display:none}
.login [hidden]{display:none}


.cl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.cl-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--surface2)}
.cl-list a{text-decoration:none;color:var(--fg)}
.cli-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.cli-bar{height:8px;border-radius:999px;background:var(--surface3);overflow:hidden}
.cli-bar span{display:block;height:100%;border-radius:999px;background:var(--ok)}
#cl-f .field{flex:1;max-width:560px}
/* Portal do cliente = Hub de Soluções: trilho escuro das soluções (cor da marca do cliente em --rail/--brand, ver
   cliente.js → brand), painel com as telas da solução aberta, topo e conteúdo. Movimento: pílula que desliza no trilho,
   painel que abre e fecha, telas e cartões entrando em cascata (desligado com "reduzir movimento"). */
body.cli{background:var(--page)}
.hub-shell{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:100vh}
.hub-side{position:sticky;top:0;height:100vh;display:flex;z-index:40}
.hub-rail{width:84px;display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 0 14px;background:var(--rail,#0b1222);color:#c9d2e4;transition:background .4s}
.hub-logo{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;flex:none;transition:transform .2s}
.hub-logo:hover{transform:scale(1.06)}
.hub-logo img{width:40px;height:40px;border-radius:12px;object-fit:contain}
.hub-logo.custom{background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.hub-logo.custom img{width:38px;height:38px;border-radius:8px}
.hub-mods{position:relative;flex:1;min-height:0;width:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 0}
.hub-mods::-webkit-scrollbar{display:none}
.hub-mods a{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:4px;width:68px;padding:9px 0 7px;border-radius:16px;color:#aeb8cc;text-decoration:none;font-size:calc(11px*var(--fs));font-weight:650;letter-spacing:.01em;transition:color .2s,background .2s}
.hub-mods a svg{width:21px;height:21px;transition:transform .25s cubic-bezier(.3,1.4,.5,1)}
.hub-mods a:hover{color:#fff;background:rgba(255,255,255,.07)}
.hub-mods a:hover svg{transform:translateY(-1px) scale(1.08)}
.hub-mods a[aria-current=page]{color:var(--brand-fg,#fff);background:transparent}
.hub-mods a.soon::after{content:"";position:absolute;top:8px;right:15px;width:7px;height:7px;border-radius:50%;background:#f5b84b;box-shadow:0 0 0 2px var(--rail,#0b1222)}
.hub-pill{position:absolute;top:0;left:8px;width:68px;border-radius:16px;background:var(--brand,#1f62ff);box-shadow:0 8px 22px rgba(0,0,0,.28);transition:transform .45s cubic-bezier(.3,1.25,.45,1),height .3s;z-index:0}
/* trilho só com ícones (computador): o nome vira dica ao passar o mouse; o botão do topo mostra os nomes por cima do painel */
@media (min-width:961px){
  .hub-mods a{width:56px;padding:12px 0;gap:0}
  .hub-mods a > span{position:fixed;left:0;top:0;transform:translateY(-50%);padding:6px 12px;border-radius:999px;background:#0b1222;color:#fff;font-size:calc(13px*var(--fs));font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s;z-index:60;box-shadow:0 6px 18px rgba(0,0,0,.25)}
  .hub-mods a:hover > span,.hub-mods a:focus-visible > span{opacity:1}
  .hub-pill{left:14px;width:56px}
  .hub-shell.rail-wide .hub-side{padding-left:84px}
  .hub-shell.rail-wide .hub-rail{position:absolute;left:0;top:0;bottom:0;width:240px;z-index:6;align-items:stretch;padding-left:12px;padding-right:12px;box-shadow:12px 0 32px rgba(0,0,0,.28)}
  .hub-shell.rail-wide .hub-logo,.hub-shell.rail-wide .hub-by{align-self:center}
  .hub-shell.rail-wide .hub-mods{align-items:stretch}
  .hub-shell.rail-wide .hub-mods a{flex-direction:row;justify-content:flex-start;width:auto;gap:12px;padding:11px 14px;font-size:calc(14px*var(--fs))}
  .hub-shell.rail-wide .hub-mods a > span{position:static;transform:none;padding:0;background:none;color:inherit;font-size:calc(14px*var(--fs));opacity:1;box-shadow:none}
  .hub-shell.rail-wide .hub-pill{left:0;width:100%}
  .hub-shell.rail-wide .hub-sep{width:auto;margin:8px 10px}
  .hub-shell.rail-wide .hub-rail-toggle{width:auto;border-radius:14px;display:flex;align-items:center;gap:10px;padding:0 14px;justify-content:flex-start;font:inherit;font-size:calc(14px*var(--fs));font-weight:600}
  .hub-shell.rail-wide .hub-rail-toggle::after{content:"Recolher o menu"}
  .hub-shell.rail-wide .hub-mods a.soon::after{right:auto;left:30px}
}
.hub-rail-toggle{display:grid;place-items:center;width:44px;height:36px;flex:none;border-radius:12px;border:0;background:rgba(255,255,255,.06);color:#aeb8cc;cursor:pointer}
.hub-rail-toggle:hover{background:rgba(255,255,255,.12);color:#fff}
.hub-rail-toggle svg{width:19px;height:19px}
@media (max-width:960px){.hub-rail-toggle{display:none}}
.hub-sep{width:28px;height:1px;background:rgba(255,255,255,.12);margin:8px 0;flex:none}
.hub-dot{position:absolute;top:4px;right:10px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e5484d;color:#fff;font-size:calc(10.5px*var(--fs));display:grid;place-items:center;box-shadow:0 0 0 2px var(--rail,#0b1222)}
.hub-by{display:flex;flex-direction:column;align-items:center;gap:3px;color:#7f8aa6;text-decoration:none;font-size:calc(9.5px*var(--fs));font-weight:650;letter-spacing:.04em;opacity:.75;transition:opacity .2s}
.hub-by:hover{opacity:1;color:#c9d2e4}
.hub-by img{width:18px;height:18px}
.hub-panel{width:248px;display:flex;flex-direction:column;gap:12px;padding:22px 14px 16px;background:var(--surface);border-right:1px solid var(--line);overflow:hidden;transition:width .32s cubic-bezier(.2,.8,.2,1),padding .32s,opacity .25s}
.hub-shell.no-panel .hub-panel,.hub-shell.panel-off .hub-panel{width:0;padding-left:0;padding-right:0;opacity:0;border-right-width:0}
.hub-panel-head{display:flex;flex-direction:column;gap:2px;padding:0 8px;white-space:nowrap}
.hub-panel-head small{color:var(--mut);font-size:calc(12.5px*var(--fs));overflow:hidden;text-overflow:ellipsis}
.hub-panel-head strong{font-size:calc(20px*var(--fs));font-weight:700;letter-spacing:-.02em}
.hub-panel select{min-height:40px;font-size:calc(13px*var(--fs));min-width:220px}
.cli-nav{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;display:flex;flex-direction:column;gap:2px;min-width:220px}
.cli-nav a{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;color:var(--fg2);text-decoration:none;font-size:calc(14.5px*var(--fs));font-weight:550;transition:background .15s,color .15s}
.cli-nav a:hover{background:var(--surface2);color:var(--fg)}
.cli-nav a[aria-current=page]{background:var(--acc-soft);color:var(--acc);font-weight:650}
.cli-nav a[aria-current=page]::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--acc);animation:hub-grow .3s cubic-bezier(.2,.8,.2,1)}
.cli-nav a svg{width:18px;height:18px;flex:none}
.cli-nav a .lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cli-nav a.sub{padding-left:24px;font-size:calc(13.5px*var(--fs))}
.cli-nav a.sub svg{width:15px;height:15px}
.cli-nav a.locked{color:var(--mut)}
.cli-lock svg{width:14px;height:14px;color:var(--warn)}
.cli-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e5484d;color:#fff;font-size:calc(11px*var(--fs));display:grid;place-items:center}
.cli-badge.soft{background:var(--surface3);color:var(--fg2)}
.cli-badge[hidden]{display:none}
.hub-main{min-width:0;display:flex;flex-direction:column}
.hub-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:12px 32px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.hub-menu{display:none}
.hub-title{display:flex;flex-direction:column;min-width:0;margin-right:auto}
.hub-title small{color:var(--mut);font-size:calc(12px*var(--fs));font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hub-title strong{font-size:calc(16px*var(--fs));font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hub-top-actions{display:flex;align-items:center;gap:10px}
.hub-top .theme-toggle{margin:0;padding:3px}
.hub-top .theme-toggle button{width:32px;height:32px}
.hub-clock{padding:7px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:calc(12.5px*var(--fs));font-weight:650;color:var(--fg2);font-variant-numeric:tabular-nums;white-space:nowrap}
.hub-queue{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;background:var(--bad-soft);color:var(--bad);font-size:calc(13px*var(--fs));font-weight:650;text-decoration:none;animation:hub-pop .3s cubic-bezier(.2,.8,.2,1)}
.hub-live{width:8px;height:8px;border-radius:50%;background:currentColor;animation:hub-pulse 1.6s infinite}
.hub-user{position:relative}
.hub-user-btn{display:flex;align-items:center;gap:9px;padding:4px 12px 4px 4px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:inherit;cursor:pointer;transition:border-color .15s}
.hub-user-btn:hover{border-color:var(--line2)}
.hub-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--acc);color:var(--acc-fg);font-size:calc(12.5px*var(--fs));font-weight:750}
.hub-user-txt{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;max-width:150px}
.hub-user-txt strong{font-size:calc(13px*var(--fs));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hub-user-txt small{font-size:calc(11.5px*var(--fs));color:var(--mut)}
.hub-user-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:190px;display:flex;flex-direction:column;padding:6px;border-radius:16px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:hub-pop .18s cubic-bezier(.2,.8,.2,1);z-index:50}
.hub-user-menu a,.hub-user-menu button{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:10px;border:0;background:none;color:var(--fg);font:inherit;font-size:calc(14px*var(--fs));text-decoration:none;cursor:pointer}
.hub-user-menu a:hover,.hub-user-menu button:hover{background:var(--surface2)}
.hub-user-menu button{color:var(--bad)}
body.cli main{padding:28px 32px 56px;max-width:1920px;width:100%;margin:0 auto} /* PC: ocupa a largura toda (só centraliza em monitor muito largo) */
body.cli .wai-body{height:calc(100vh - 190px)}
.cli-scrim{position:fixed;inset:0;background:rgba(10,14,25,.5);z-index:35;animation:hub-fade .2s}
.cli-scrim[hidden]{display:none}
/* Início */
.hub-hello h1{font-size:calc(32px*var(--fs))}
.hub-date{color:var(--mut);font-size:calc(14px*var(--fs));font-weight:600;margin-bottom:2px}
.hub-date::first-letter{text-transform:uppercase}
.hub-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.hub-kpi{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-radius:var(--r-lg);background:var(--raised);border:1px solid var(--line);color:var(--fg);text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.hub-kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line2);color:var(--fg)}
.hub-kpi-top{display:flex;align-items:center;gap:10px;font-size:calc(13.5px*var(--fs));font-weight:600;color:var(--fg2)}
.hub-kpi strong{font-size:calc(34px*var(--fs));font-weight:700;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}
.hub-kpi small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.hub-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--acc-soft);color:var(--acc);flex:none}
.hub-ic svg{width:18px;height:18px}
.hub-ic.big{width:46px;height:46px;border-radius:14px}
.hub-ic.big svg{width:24px;height:24px}
.hub-ic.huge{width:84px;height:84px;border-radius:24px}
.hub-ic.huge svg{width:42px;height:42px;stroke-width:1.6}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.hub-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:20px;border-radius:var(--r-lg);background:var(--raised);border:1px solid var(--line);color:var(--fg);text-decoration:none;overflow:hidden;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s}
.hub-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--acc);color:var(--fg)}
.hub-card.on{border-color:color-mix(in srgb,var(--acc) 45%,var(--line))}
.hub-card.on::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--acc)}
.hub-card h3{font-size:calc(17px*var(--fs));margin-top:4px}
.hub-card-top{display:flex;justify-content:space-between;align-items:flex-start}
.hub-chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:calc(11.5px*var(--fs));font-weight:700;background:var(--surface3);color:var(--fg2)}
.hub-chip.on{background:var(--ok-soft);color:var(--ok)}
.hub-chip.soon{background:var(--warn-soft);color:var(--warn)}
.hub-links{display:flex;align-items:center;gap:6px;margin-top:auto;padding-top:8px;font-size:calc(12.5px*var(--fs));color:var(--mut)}
.hub-links svg{width:14px;height:14px}
/* Solução "em breve" */
.hub-mod-hero{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(300px,380px);gap:28px 48px;align-items:start;padding:36px}
/* Página da solução: descrição à esquerda; preço, situação e botões num painel ao lado (no tablet/celular fica embaixo). */
.hub-mod-side{display:flex;flex-direction:column;gap:14px;padding:22px;border-radius:var(--r-lg, 18px);background:var(--surface2);border:1px solid var(--line)}
.hub-mod-side > :empty{display:none}
.hub-mod-side .hub-prices,.hub-mod-side .hub-launch{margin:0;flex-direction:column}
.hub-mod-side .actions{margin:0;flex-direction:column;align-items:stretch}
.hub-mod-side .actions .btn{width:100%;justify-content:center}
.hub-mod-side .actions p{margin:0;text-align:center}
@media (max-width:1180px){.hub-mod-hero{grid-template-columns:auto minmax(0,1fr)}.hub-mod-side{grid-column:2}}
.hub-mod-hero h1{margin:10px 0 4px}
.hub-checks{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.hub-checks li{display:flex;gap:10px;align-items:flex-start}
.hub-checks svg{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--ok-soft);color:var(--ok);stroke-width:2.6;flex:none}
.hub-link-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.hub-link-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;background:var(--surface2);border:1px solid var(--line);color:var(--fg);font-size:calc(13.5px*var(--fs));font-weight:600;text-decoration:none;transition:border-color .15s}
.hub-link-chip:hover{border-color:var(--acc);color:var(--fg)}
.hub-link-chip svg{width:15px;height:15px;color:var(--acc)}
.hub-launch{display:flex;flex-wrap:wrap;gap:12px}
.hub-launch div{display:flex;flex-direction:column;padding:12px 16px;border-radius:16px;background:var(--acc-soft)}
.hub-launch strong{color:var(--acc);font-size:calc(16px*var(--fs))}
.hub-launch small{color:var(--fg2);font-size:calc(12.5px*var(--fs))}
/* Minha marca */
.hub-brand .card{margin:0}
.hub-brand-logo{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.hub-logo-tile{display:grid;place-items:center;width:84px;height:84px;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.hub-logo-tile img{width:66px;height:66px;object-fit:contain;border-radius:10px}
.hub-file{position:relative;overflow:hidden}
.hub-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.hub-swatches{display:flex;flex-wrap:wrap;gap:10px}
.hub-swatch{position:relative;width:38px;height:38px;border-radius:50%;border:2px solid var(--raised);box-shadow:0 0 0 1px var(--line2);cursor:pointer;padding:0;transition:transform .15s,box-shadow .15s}
.hub-swatch:hover{transform:scale(1.1)}
.hub-swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--fg);transform:scale(1.08)}
.hub-swatch.custom{background:conic-gradient(#f43f5e,#f59e0b,#84cc16,#06b6d4,#6366f1,#d946ef,#f43f5e);overflow:hidden}
.hub-swatch.custom input{position:absolute;inset:-6px;width:auto;height:auto;opacity:0;cursor:pointer;padding:0;border:0}
/* Pagamentos */
.pay-logo{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:#fff;font-weight:800;font-size:calc(14px*var(--fs));letter-spacing:.02em;flex:none;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.pay-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.pay-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border-radius:var(--r);border:1px solid var(--line);background:var(--raised);color:var(--fg);font:inherit;text-align:left;cursor:pointer;transition:transform .2s cubic-bezier(.2,.8,.2,1),border-color .2s,box-shadow .2s}
.pay-tile:hover:not(:disabled){transform:translateY(-2px);border-color:var(--acc);box-shadow:var(--shadow)}
.pay-tile strong{font-size:calc(14.5px*var(--fs))}
.pay-tile small{color:var(--mut);font-size:calc(12px*var(--fs))}
.pay-tile:disabled{cursor:default}
.pay-tile.soon{opacity:.55}
.pay-tile.soon .pay-logo{filter:grayscale(.6)}
.pay-tile.on{border-color:color-mix(in srgb,var(--ok) 50%,var(--line))}
.pay-free{position:absolute;top:12px;right:12px;padding:2px 8px;border-radius:999px;background:var(--ok-soft);color:var(--ok);font-size:calc(11px*var(--fs));font-weight:750}
.pay-conns{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.pay-conn{display:flex;gap:14px;margin:0}
.pay-conn-main{flex:1;min-width:0}
.pay-conn h3{font-size:calc(16px*var(--fs))}
.pay-method{display:inline-block;margin:0 6px 4px 0;padding:3px 10px;border-radius:999px;background:var(--acc-soft);color:var(--acc);font-size:calc(12px*var(--fs));font-weight:650}
.pay-empty{display:flex;gap:16px;align-items:center}
.pay-empty>svg{width:40px;height:40px;color:var(--acc)}
.pay-dlg-head{display:flex;gap:14px;align-items:flex-start}
.pay-where{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--surface2);margin-bottom:14px}
.pay-where svg{margin-top:2px;color:var(--acc)}
.pay-kinds{display:flex;flex-wrap:wrap;gap:8px}
.pay-kind{display:inline-flex;align-items:center;gap:8px;margin:0;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface2);cursor:pointer;font-weight:600}
.pay-kind:has(input:checked){border-color:var(--acc);background:var(--acc-soft);color:var(--acc)}
.pay-kind input{width:auto;accent-color:var(--acc)}
.lbl-like{display:block;font-size:calc(13px*var(--fs));color:var(--fg2);margin-bottom:6px;font-weight:600}
.pay-qr{display:grid;place-items:center;padding:12px;border-radius:18px;background:#fff;width:max-content;margin:0 auto;box-shadow:var(--shadow)}
.pay-qr img{display:block;width:240px;height:240px}
details summary{cursor:pointer;font-weight:600;color:var(--fg2)}
/* movimento */
@keyframes hub-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes hub-pop{from{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}
@keyframes hub-fade{from{opacity:0}to{opacity:1}}
@keyframes hub-grow{from{transform:scaleY(0)}to{transform:none}}
@keyframes hub-pulse{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.hub-rise{animation:hub-rise .5s cubic-bezier(.2,.8,.2,1) both}
body.hub dialog[open]{animation:hub-pop .24s cubic-bezier(.2,.8,.2,1)}
body.hub dialog[open]::backdrop{animation:hub-fade .24s}
body.hub .cli-bar span{transition:width 1s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){
  body.hub *,body.hub *::before,body.hub *::after{animation:none!important;transition:none!important}
}
.cli-hero h1{margin:4px 0}
.cli-hero .chip{display:inline-block;margin-top:6px;padding:4px 12px;border-radius:999px;background:var(--acc-soft);color:var(--acc);font-weight:650;font-size:calc(13px*var(--fs))}
.cli-hero{margin-bottom:18px}
.cli-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.cli-project{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-decoration:none;color:var(--fg);transition:border-color .15s,transform .15s}
.cli-project:hover{border-color:var(--acc);transform:translateY(-1px)}
.cli-project h2{font-size:calc(18px*var(--fs));margin:0}
.cli-project .cli-bar{width:100%}
.cli-more{margin-top:auto;padding-top:8px;color:var(--acc);font-weight:650;font-size:calc(14px*var(--fs))}
.cli-bar{height:8px;border-radius:999px;background:var(--surface3);overflow:hidden}
.cli-bar span{display:block;height:100%;border-radius:999px;background:var(--ok)}
.cli-offers{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.cli-offer{display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:var(--fg);padding:18px}
.cli-offer:hover{border-color:var(--acc)}
.cli-offer h3{margin:0 0 4px;font-size:calc(16px*var(--fs))}
.cli-art{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;flex:none;background:var(--acc-soft);color:var(--acc)}
.cli-art svg{width:30px;height:30px;stroke-width:2.2}
.cli-price{font-size:calc(18px*var(--fs));font-weight:750}
.cli-from{text-decoration:line-through;color:var(--mut);font-size:calc(14px*var(--fs))}
.cli-promo{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--bad);color:#fff;font-size:calc(11.5px*var(--fs));font-weight:700;transform:rotate(-3deg)}
.cli-offer-page{display:flex;gap:24px;align-items:flex-start;max-width:860px}
.cli-offer-page .cli-art{width:84px;height:84px;border-radius:24px}
.cli-offer-page .cli-art svg{width:48px;height:48px}
.cli-offer-page h1{margin:10px 0 4px}
.cli-tagline{font-size:calc(17px*var(--fs));color:var(--fg2);margin:0}
.cli-bullets{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
@media (max-width:960px){
  .hub-shell{grid-template-columns:minmax(0,1fr)}
  .hub-side{position:fixed;left:0;top:0;bottom:0;height:auto;transform:translateX(-102%);transition:transform .3s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-lg)}
  .hub-side.open{transform:none}
  .hub-shell.panel-off:not(.no-panel) .hub-panel{width:248px;padding:22px 14px 16px;opacity:1;border-right-width:1px}
  .hub-panel{max-width:calc(100vw - 100px)}
  .hub-menu{display:inline-flex}
  .hub-collapse,.hub-clock,.hub-user-txt{display:none}
  .hub-top{padding:10px 16px}
  .hub-user-btn{padding:3px}
  body.cli main{padding:18px 16px 48px}
  body.cli .wai-body{height:calc(100vh - 150px)}
  .cli-offer-page{flex-direction:column}
  .hub-mod-hero{padding:22px;grid-template-columns:minmax(0,1fr);gap:20px}
  .hub-mod-side{grid-column:auto}
  .hub-hello h1{font-size:calc(26px*var(--fs))}
}
@media (max-width:520px){
  .hub-top .theme-toggle{display:none}
  .hub-kpis{grid-template-columns:1fr 1fr}
  .hub-kpi{padding:14px}
  .hub-kpi strong{font-size:calc(28px*var(--fs))}
}
.cli-projects>.card,.cli-offers>.card{margin:0}
/* Sininho do admin */
.bell{position:relative}
.bell .btn.icon{background:var(--glass);border-color:var(--glass-line)}
.bell-count{position:absolute;top:-3px;right:-3px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--bad);color:#fff;font-size:calc(11px*var(--fs));font-weight:700;display:grid;place-items:center;box-shadow:0 0 0 2px var(--bg)}
.bell-count[hidden]{display:none}
.bell-panel{position:absolute;right:0;top:calc(100% + 10px);width:min(380px,calc(100vw - 32px));max-height:min(520px,70vh);overflow-y:auto;background:var(--raised);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);padding:8px;z-index:60}
.bell-panel[hidden]{display:none}
.bell-head{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.bell-panel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.bell-panel li>a,.bell-panel li>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:14px;color:var(--fg);text-decoration:none}
.bell-panel li>a:hover{background:var(--surface2)}
.bell-panel li.new>a,.bell-panel li.new>div{background:var(--acc-soft)}
.bell-panel li span{font-size:calc(13px*var(--fs));color:var(--fg2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bell-panel li small{font-size:calc(11.5px*var(--fs));color:var(--mut)}
.bell-panel>p{padding:12px}
@media (max-width:960px){.bell-panel{position:fixed;left:16px;right:16px;top:132px;width:auto}}

/* Editor visual do fluxo do WhatsApp (waflow.js) */
.wf{display:flex;flex-direction:column;gap:10px}
.wf:fullscreen{background:var(--bg);padding:14px}
.wf-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:var(--r-lg);background:var(--glass);border:1px solid var(--glass-line)}
.wf-sp{flex:1}
.wf-tools{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.wf-tools select{width:auto;min-height:34px;font-size:calc(13px*var(--fs))}
.wf-zoom{min-width:46px;text-align:center;font-size:calc(13px*var(--fs));color:var(--mut)}
.wf-msg .msg{margin:0}
.wf-main{display:flex;gap:10px;height:calc(100vh - 300px);min-height:560px}
.wf:fullscreen .wf-main{height:calc(100vh - 90px)}
.wf-pal{width:170px;flex:none;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.wf-pal p{margin:8px 6px 2px;font-size:calc(11px*var(--fs));font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.wf-pal-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:10px;border:1px solid transparent;background:none;color:var(--fg);font:inherit;font-size:calc(13px*var(--fs));text-align:left;cursor:grab}
.wf-pal-item:hover{background:var(--surface2);border-color:var(--line)}
.wf-pal-item svg{width:16px;height:16px;flex:none;color:var(--tc)}
.wf-canvas{position:relative;flex:1;min-width:0;overflow:hidden;border-radius:var(--r);border:1px solid var(--line);cursor:grab;touch-action:none;outline:none;
  background-color:var(--surface2);background-image:radial-gradient(var(--line2) 1px,transparent 1px);background-size:22px 22px}
.wf-canvas:active{cursor:grabbing}
.wf-canvas:focus-visible{box-shadow:var(--focus)}
.wf-layer{position:absolute;left:0;top:0;transform-origin:0 0}
.wf-edges{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}
.wf-edges path{fill:none}
.wf-e{stroke:var(--mut2);stroke-width:2.2}
.wf-e.sel{stroke:var(--acc);stroke-width:3}
.wf-e.hot{stroke:var(--ok);stroke-width:3.2}
.wf-e.temp{stroke:var(--acc);stroke-dasharray:6 5}
.wf-e-hit{stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}
.wf-edges marker path{fill:var(--mut2);stroke:none}
.wf-node{--tc:var(--acc);position:absolute;left:0;top:0;width:250px;border-radius:16px;background:var(--raised);border:1.5px solid var(--line2);box-shadow:var(--shadow);cursor:pointer;user-select:none}
.wf-node:hover{border-color:var(--tc)}
.wf-node.sel{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft),var(--shadow)}
.wf-node.hot{border-color:var(--ok)}
.wf-node.now{box-shadow:0 0 0 4px rgba(47,125,50,.25),var(--shadow);border-color:var(--ok)}
.wf-node header{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:14px 14px 0 0;background:color-mix(in srgb,var(--tc) 12%,transparent);font-size:calc(13px*var(--fs))}
.wf-node header svg{width:16px;height:16px;color:var(--tc);flex:none}
.wf-node header b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wf-iss{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:calc(12px*var(--fs));font-weight:800;color:#fff;background:var(--warn)}
.wf-iss.error{background:var(--bad)}
.wf-sum{padding:8px 12px 10px;font-size:calc(12.5px*var(--fs));line-height:1.4;color:var(--fg2);overflow-wrap:anywhere;max-height:96px;overflow:hidden}
.wf-sum em{color:var(--mut)}
.wf-save{color:var(--acc);font-weight:600}
.wf-var{color:var(--acc);font-weight:600}
.wf-outs{border-top:1px solid var(--line);padding:4px 0}
.wf-out{position:relative;display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:3px 12px 3px 12px;font-size:calc(12px*var(--fs));color:var(--mut);min-height:22px}
.wf-out span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wf-dot{position:absolute;right:-8px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--raised);border:2.5px solid var(--tc);cursor:crosshair}
.wf-out.on .wf-dot{background:var(--tc)}
.wf-dot:hover{transform:scale(1.25)}
.wf-in{position:absolute;left:-7px;top:15px;width:12px;height:12px;border-radius:50%;background:var(--raised);border:2.5px solid var(--mut2)}
.t-start{--tc:#1f62ff}.t-text{--tc:#1f62ff}.t-media{--tc:#0891b2}.t-menu{--tc:#7c3aed}.t-ask{--tc:#db2777}.t-faq{--tc:#7c3aed}
.t-condition{--tc:#d97706}.t-http{--tc:#0f766e}.t-tag,.t-contact,.t-email{--tc:#4b5563}.t-payment{--tc:#16a34a}.t-review{--tc:#ca8a04}
.t-human{--tc:#dc2626}.t-end{--tc:#6b7280}
:root[data-theme=dark] .wf-pal-item svg,:root[data-theme=dark] .wf-node header svg{filter:brightness(1.35)}
.wf-mini{position:absolute;right:12px;bottom:12px;width:180px;height:120px;border-radius:12px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer}
.wf-mini rect{fill:var(--tc);opacity:.55}
.wf-mini .wf-mini-view{fill:var(--acc-soft);stroke:var(--acc);stroke-width:12;opacity:1}
.wf-hint{position:absolute;left:12px;bottom:8px;margin:0;font-size:calc(11.5px*var(--fs));color:var(--mut);pointer-events:none}
.wf-edge-del{position:absolute;z-index:5}
.wf-edge-del[hidden]{display:none}
.wf-quick{position:absolute;z-index:6;width:220px;max-height:300px;overflow-y:auto;background:var(--raised);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:6px}
.wf-quick p{margin:4px 8px 6px;font-size:calc(12px*var(--fs));color:var(--mut)}
.wf-quick button{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;padding:7px 8px;border-radius:9px;color:var(--fg);font:inherit;font-size:calc(13px*var(--fs));cursor:pointer;text-align:left}
.wf-quick button:hover{background:var(--surface2)}
.wf-quick svg{width:15px;height:15px}
.wf-panel{width:340px;flex:none;overflow-y:auto;padding:14px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.wf-panel[hidden]{display:none}
.wf-ph{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.wf-ph>svg{width:22px;height:22px;color:var(--acc);flex:none;margin-top:2px}
.wf-ph div{flex:1;display:flex;flex-direction:column;gap:2px}
.wf-panel .field{margin-bottom:10px}
.wf-panel .msg{margin:0 0 8px;padding:8px 10px;font-size:calc(12.5px*var(--fs))}
.wf-vars{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 10px}
.wf-vars .mut{width:100%}
.wf-vars button{border:1px solid var(--line);background:var(--surface2);color:var(--acc);border-radius:8px;padding:2px 7px;font:inherit;font-size:calc(12px*var(--fs));cursor:pointer}
.wf-rows{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.wf-row{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:start;padding:6px;border-radius:10px;background:var(--surface2)}
.wf-rows[data-rows=headers] .wf-row{grid-template-columns:1fr 1fr auto auto}
.wf-row textarea{grid-column:1/3}
.wf-row input,.wf-row textarea{min-height:34px;font-size:calc(13px*var(--fs))}
.wf-checks{display:flex;flex-wrap:wrap;gap:4px 14px}
.wf-hours{display:grid;grid-template-columns:70px 1fr 1fr;gap:6px;align-items:center;margin-bottom:8px}
.wf-hours input{min-height:34px}
.wf-file{margin:0 0 6px}
.wf-pre{max-height:160px;overflow:auto;font-size:calc(11.5px*var(--fs));background:var(--surface2);border-radius:10px;padding:8px;white-space:pre-wrap;overflow-wrap:anywhere}
.wf-sim{width:330px;flex:none;display:flex;flex-direction:column;gap:6px}
.wf-sim[hidden]{display:none}
.wf-sim .wab-phone{height:100%;min-height:0;flex:1}
.wf-simhttp{margin:0;font-size:calc(12px*var(--fs))}
.wf-simimg{max-width:200px;border-radius:8px;display:block}
.wf-sim video{max-width:200px}
@media (max-width:1280px){.wf-sim{position:absolute;right:24px;width:310px;height:min(560px,70vh);z-index:8}.wf-main{position:relative}}
@media (max-width:900px){.wf-pal{display:none}.wf-panel{position:absolute;right:0;top:0;bottom:0;width:min(340px,92vw);z-index:9;box-shadow:var(--shadow-lg)}.wf-main{position:relative;height:calc(100vh - 220px)}}
.wf-rule{margin:-4px 0 10px;padding:8px 10px;border-radius:10px;background:var(--info-soft);color:var(--info);font-size:calc(12.5px*var(--fs))}
.wf-auth .row{margin-top:6px;gap:6px}
.wf-auth select{margin-bottom:2px}
.t-switch{--tc:#d97706}
.t-set{--tc:#0d9488}
/* Condição com várias regras (E/OU, cada uma pode ser invertida), cartão Definir variável, árvore da resposta da API e Variáveis do fluxo */
.wf-rb{border:1px solid var(--line);border-radius:12px;padding:10px 10px 2px;margin-bottom:10px;background:var(--raised)}
.wf-rb.not{border-color:var(--warn);box-shadow:inset 3px 0 0 var(--warn)}
.wf-rb-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:calc(13px*var(--fs))}
.wf-rb .row{gap:6px}
.wf-rb .row .field{flex:1;min-width:0}
.wf-rb select,.wf-vrow select{max-width:100%}
.wf-row:has(>select) input[data-c=value]{grid-column:1/3}
.wf-tree{margin:6px 0 10px;padding:8px 10px;border-radius:10px;background:var(--surface2);max-height:320px;overflow:auto}
.wf-tree ul{list-style:none;margin:0;padding:0 0 0 14px}
.wf-tree>ul{padding:0}
.wf-tree li{margin:3px 0}
.wf-tree code{font-size:calc(12px*var(--fs))}
.wf-vlist{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.wf-vrow{padding:8px 10px;border-radius:12px;background:var(--surface2)}
.wf-vrow .row{gap:6px}
.wf-vrow .row .field{flex:1;min-width:0}
.wf-vrow .actions{gap:6px;flex-wrap:wrap}
/* Tela cheia: o celular fica no tamanho real e centralizado na coluna dele */
.wf:fullscreen .wf-sim{justify-content:center;align-items:center;width:390px}
.wf:fullscreen .wf-sim .wab-phone{flex:none;width:360px;height:min(740px,calc(100vh - 150px))}
.t-agent{--tc:#9333ea}
.t-crmagent{--tc:#7c3aed}
/* Modelos de atendimento do robô (botão Modelos) e o status do agente de vendas no cartão */
.wf-models{max-width:640px;width:calc(100vw - 32px);border:0;border-radius:var(--r-lg);padding:22px;background:var(--raised);color:var(--fg);box-shadow:var(--shadow-lg)}
.wf-models::backdrop{background:rgba(10,14,25,.45)}
.wf-mlist{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.wf-model{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:inherit;cursor:pointer}
.wf-model:hover,.wf-model:focus-visible{border-color:var(--acc);outline:none}
.wf-model span{font-size:calc(13.5px*var(--fs));color:var(--fg2)}
.wf-model small{font-size:calc(12px*var(--fs));color:var(--mut)}
.wf-crmst{margin-top:8px}
.wf-crmst .msg{margin-bottom:6px}
.ai-plan{padding:14px;margin-bottom:10px}
.cli-bar span.s-alerta{background:var(--warn)}
.cli-bar span.s-esgotado{background:var(--bad)}
.cli-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.cli-ai-agents{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.cli-ai-agents li{display:grid;grid-template-columns:minmax(120px,240px) 1fr 50px;gap:12px;align-items:center;font-size:calc(14px*var(--fs))}
.cli-ai-agents strong{text-align:right}
.cli-ai-plan .btn{margin-top:4px}
.cli-price small{font-size:calc(13px*var(--fs));font-weight:600;color:var(--mut)}

/* Modelos de mensagem (portal e admin) */
.tpl-body{white-space:pre-wrap;min-width:260px;max-width:520px}
.tpl-vars{display:grid;gap:8px;margin-top:8px}
.tpl-preview{padding:10px 12px;border-radius:12px;background:var(--raised);white-space:pre-wrap;min-height:44px}
/* Conectar WhatsApp (Cadastro Incorporado) */
.cli-connect{max-width:760px}
.cli-connect ol{margin:12px 0 0;padding-left:20px;display:grid;gap:6px}
/* ---------- CRM do Hub (public/assets/crm.js) ---------- */
.msg.info{background:var(--acc-soft);color:var(--acc)}
.badge.info{background:var(--acc-soft);color:var(--acc)}
.hub-chip.free{background:var(--acc-soft);color:var(--acc)}
.hub-chip.bad{background:var(--bad-soft);color:var(--bad)}
.hub-prices{display:flex;flex-wrap:wrap;gap:12px}
.hub-prices>div{display:flex;flex-direction:column;padding:14px 18px;border-radius:16px;border:1px solid var(--line);background:var(--surface2);min-width:200px}
.hub-prices>div.best{border-color:var(--acc);background:var(--acc-soft)}
.hub-prices small{color:var(--fg2);font-weight:600}
.hub-prices strong{font-size:calc(24px*var(--fs));letter-spacing:-.02em}
.hub-prices strong span{font-size:calc(13px*var(--fs));color:var(--mut);font-weight:600}
.btn.ok-solid{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.ok-solid:hover{filter:brightness(1.08);color:#fff}
.btn.danger-solid{background:var(--bad);border-color:var(--bad);color:#fff}
.crm-head{align-items:flex-end}
.crm-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}
.crm-bar select{width:auto;min-width:180px}
.crm-bar .tabs{margin:0}
.crm-tabs{margin-bottom:16px}
.crm-search{position:relative;flex:1 1 240px;max-width:380px;margin:0}
.crm-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--mut)}
.crm-search input{padding-left:40px}
/* quadro */
.crm-board{display:flex;gap:14px;overflow-x:auto;padding-bottom:12px;align-items:flex-start;min-height:60vh;scroll-snap-type:x proximity}
.crm-col{flex:0 0 288px;display:flex;flex-direction:column;max-height:calc(100vh - 250px);border-radius:var(--r-lg);background:var(--surface2);border:1px solid var(--line);scroll-snap-align:start}
.crm-col header{position:relative;padding:14px 16px 12px}
.crm-col header div{display:flex;align-items:center;justify-content:space-between;gap:8px}
.crm-col header strong{font-size:calc(14.5px*var(--fs))}
.crm-col header small{color:var(--mut);font-size:calc(12.5px*var(--fs));font-weight:600}
.crm-col-line{position:absolute;left:16px;right:16px;bottom:0;height:3px;border-radius:3px;background:var(--acc);opacity:.85}
.crm-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--surface3);color:var(--fg2);font-size:calc(12px*var(--fs));font-weight:700}
.crm-cards{flex:1;min-height:60px;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}
.crm-card{background:var(--raised);border:1px solid var(--line);border-radius:16px;padding:12px 13px;cursor:grab;box-shadow:0 1px 2px rgba(24,24,40,.04);transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s,border-color .18s,opacity .18s;user-select:none}
.crm-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line2)}
.crm-card:active{cursor:grabbing}
.crm-card.dragging{opacity:.35;transform:rotate(2deg) scale(.98)}
.crm-card.rot{border-left:3px solid var(--bad)}
.crm-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.crm-card-top strong{font-size:calc(14px*var(--fs));line-height:1.3}
.crm-card-contact{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:calc(12.5px*var(--fs));color:var(--fg2)}
.crm-card-contact svg{width:13px;height:13px;color:var(--mut)}
.crm-wa svg{color:#1fa855}
.crm-card-foot{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:calc(12px*var(--fs))}
.crm-card-foot b{font-size:calc(13.5px*var(--fs));margin-right:auto}
.crm-due{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--surface2);color:var(--fg2);font-weight:600}
.crm-due svg{width:12px;height:12px}
.crm-due.late{background:var(--bad-soft);color:var(--bad)}
.crm-due.none{background:var(--warn-soft);color:var(--warn)}
.crm-age{color:var(--mut);font-weight:600}
.crm-age.rot{color:var(--bad)}
.crm-av{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--acc-soft);color:var(--acc);font-size:calc(10.5px*var(--fs));font-weight:800;flex:none}
.crm-av.none{background:var(--surface3);color:var(--mut)}
.crm-av.co{border-radius:9px}
.crm-av svg{width:14px;height:14px}
.crm-av.big{width:56px;height:56px;font-size:calc(18px*var(--fs));border-radius:18px}
.crm-av.big svg{width:26px;height:26px}
.crm-ph{border:2px dashed var(--acc);border-radius:16px;background:var(--acc-soft);flex:none;animation:hub-fade .15s}
.crm-add{display:flex;align-items:center;gap:6px;margin:0 10px 10px;padding:9px 12px;border-radius:12px;border:1px dashed var(--line2);background:transparent;color:var(--mut);font:inherit;font-size:calc(13px*var(--fs));font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.crm-add:hover{background:var(--raised);color:var(--fg);border-color:var(--acc)}
.crm-add svg{width:15px;height:15px}
.crm-in{animation:hub-rise .45s cubic-bezier(.2,.8,.2,1) both}
.crm-dropbar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:12px;z-index:60;animation:hub-pop .2s cubic-bezier(.2,.8,.2,1)}
.crm-dropbar div{display:flex;align-items:center;gap:8px;padding:16px 34px;border-radius:18px;font-weight:700;box-shadow:var(--shadow-lg);border:2px dashed transparent;transition:transform .15s}
.crm-dropbar [data-close=ganho]{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}
.crm-dropbar [data-close=perdido]{background:var(--bad-soft);color:var(--bad);border-color:var(--bad)}
.crm-dropbar div.over{transform:scale(1.08)}
/* gaveta do negócio */
.crm-scrim{position:fixed;inset:0;background:rgba(10,14,25,.3);z-index:70;animation:hub-fade .2s}
.crm-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:71;overflow-y:auto;transform:translateX(104%);transition:transform .32s cubic-bezier(.2,.8,.2,1)}
.crm-drawer.open{transform:none}
.crm-drawer-in{padding:22px 24px 40px}
.crm-dhead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.crm-dhead h2{font-size:calc(22px*var(--fs));margin-top:8px;outline:none;border-radius:8px;padding:2px 4px;margin-left:-4px}
.crm-dhead h2[contenteditable=true]:hover,.crm-dhead h2:focus{background:var(--surface2)}
.crm-stagebar{display:flex;gap:4px;margin:16px 0 12px}
.crm-stagebar button{flex:1;min-width:0;height:34px;border:0;background:var(--surface3);color:var(--mut);font:inherit;font-size:calc(11.5px*var(--fs));font-weight:650;cursor:pointer;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%,8px 50%);padding:0 12px;transition:background .2s,color .2s}
.crm-stagebar button:first-child{clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%);border-radius:8px 0 0 8px}
.crm-stagebar button span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-stagebar button.past{background:color-mix(in srgb,var(--acc) 30%,var(--surface3));color:var(--fg)}
.crm-stagebar button.on{background:var(--acc);color:var(--acc-fg)}
.crm-stagebar button:hover:not(.on):not(:disabled){background:color-mix(in srgb,var(--acc) 45%,var(--surface3));color:var(--fg)}
.crm-stagebar.off{opacity:.55}
.crm-dactions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.crm-del{margin-left:auto}
.crm-dgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:18px}
.crm-dgrid label{margin:0;font-size:calc(12px*var(--fs));color:var(--mut)}
.crm-dgrid input,.crm-dgrid select{margin-top:4px;padding:9px 12px;font-size:calc(14px*var(--fs))}
.crm-dcontact{display:block;margin-top:4px;padding:9px 0;font-size:calc(14px*var(--fs));font-weight:600}
.crm-dmeta{margin-top:12px}
.crm-composer{margin-top:18px;border:1px solid var(--line);border-radius:18px;background:var(--raised);padding:10px}
.crm-ckinds{display:flex;gap:4px;margin-bottom:10px;overflow-x:auto}
.crm-ckinds button{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:0;background:transparent;color:var(--mut);font:inherit;font-size:calc(13px*var(--fs));font-weight:650;cursor:pointer;white-space:nowrap}
.crm-ckinds button svg{width:15px;height:15px}
.crm-ckinds button[aria-selected=true]{background:var(--acc-soft);color:var(--acc)}
.crm-composer textarea,.crm-composer input{margin-bottom:8px}
.crm-crow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crm-crow input,.crm-crow select{flex:1 1 160px;width:auto;margin:0}
.crm-tl{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.crm-act{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:14px;background:var(--raised);border:1px solid var(--line);animation:hub-rise .35s cubic-bezier(.2,.8,.2,1) both}
.crm-act>div{flex:1;min-width:0}
.crm-act p{margin:0 0 2px;overflow-wrap:anywhere}
.crm-act.done strong{text-decoration:line-through;color:var(--mut)}
.crm-act-ic{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--surface2);color:var(--fg2);flex:none}
.crm-act-ic svg{width:15px;height:15px}
.crm-act-del{opacity:0;transition:opacity .15s}
.crm-act:hover .crm-act-del{opacity:1}
.crm-chk{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid var(--line2);background:transparent;color:transparent;cursor:pointer;flex:none;padding:0;transition:background .2s,border-color .2s,color .2s,transform .2s}
.crm-chk svg{width:15px;height:15px;stroke-width:3}
.crm-chk:hover{border-color:var(--ok);color:var(--ok)}
.done .crm-chk,.crm-chk[data-v="0"]{background:var(--ok);border-color:var(--ok);color:#fff}
.crm-sys{display:flex;align-items:center;gap:8px;font-size:calc(12.5px*var(--fs));color:var(--mut);padding:0 6px}
.crm-sys svg{width:8px;height:8px;fill:currentColor}
.crm-sys span{flex:1}
.crm-wamsg{display:flex}
.crm-wamsg>div{max-width:82%;padding:9px 12px;border-radius:14px;background:var(--surface2);font-size:calc(14px*var(--fs))}
.crm-wamsg.out{justify-content:flex-end}
.crm-wamsg.out>div{background:color-mix(in srgb,#25d366 16%,var(--raised))}
.crm-wamsg p{margin:0 0 4px;white-space:pre-wrap;overflow-wrap:anywhere}
.crm-wamsg small{display:flex;align-items:center;gap:4px;color:var(--mut);font-size:calc(11.5px*var(--fs))}
.crm-wamsg small svg{width:12px;height:12px;color:#1fa855}
/* busca de contato nos diálogos */
.crm-picker{position:relative}
.crm-picker.picked input{border-color:var(--ok);background:var(--ok-soft)}
.crm-results{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.crm-results button{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;border:0;background:var(--surface2);color:var(--fg);font:inherit;text-align:left;cursor:pointer}
.crm-results button:hover{background:var(--acc-soft)}
.crm-results small{display:block;color:var(--mut);font-size:calc(12px*var(--fs))}
.crm-reasons{display:flex;flex-direction:column;gap:6px}
.crm-reason{display:flex;align-items:center;gap:8px;margin:0;padding:9px 12px;border-radius:12px;background:var(--surface2);font-weight:550;cursor:pointer}
.crm-reason input{width:auto;accent-color:var(--bad)}
.crm-kind{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.crm-kind label{display:inline-flex;align-items:center;gap:8px;margin:0;padding:9px 14px;border-radius:12px;border:1px solid var(--line);cursor:pointer}
.crm-kind label:has(input:checked){border-color:var(--acc);background:var(--acc-soft);color:var(--acc)}
.crm-kind input{width:auto}
/* tabelas e contato */
.crm-table tbody tr{cursor:pointer;transition:background .15s}
.crm-table tbody tr:hover{background:var(--surface2)}
.crm-cname{display:flex;align-items:center;gap:10px}
.crm-cname small{display:block}
.crm-tag{display:inline-block;margin:0 4px 4px 0;padding:2px 9px;border-radius:999px;background:var(--lav-soft);color:var(--lav-ink);font-size:calc(12px*var(--fs));font-weight:650}
.crm-contact{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;align-items:start}
.crm-cside{margin:0;position:sticky;top:84px}
.crm-chead{display:flex;gap:14px;align-items:center}
.crm-chead h1{font-size:calc(22px*var(--fs))}
.crm-info{margin-top:14px;line-height:1.8}
.crm-info svg{width:13px;height:13px;vertical-align:-2px;margin-right:4px}
.crm-people,.crm-cdeals{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.crm-cdeals button{display:flex;width:100%;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface2);color:var(--fg);font:inherit;text-align:left;cursor:pointer}
.crm-cdeals button:hover{border-color:var(--acc)}
.crm-cdeals small{display:block}
.crm-cmain .crm-composer{margin-top:0}
/* tarefas */
.crm-tgroup{margin-bottom:18px}
.crm-tgroup h3{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.crm-tgroup.late h3{color:var(--bad)}
.crm-tlist{padding:6px;margin:0}
.crm-trow{display:flex;gap:12px;align-items:center;padding:10px;border-radius:12px;transition:background .15s,opacity .25s,transform .25s}
.crm-trow:hover{background:var(--surface2)}
.crm-trow>div{flex:1;min-width:0}
.crm-trow small{display:block}
.crm-trow.leaving{opacity:0;transform:translateX(16px)}
.crm-trow.done strong{text-decoration:line-through;color:var(--mut)}
/* painel */
.crm-kpi strong{font-size:calc(28px*var(--fs))}
.crm-kpi strong small{font-size:calc(18px*var(--fs))}
.crm-kpi.warn strong{color:var(--warn)}
.crm-dgrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.crm-dgrid2 .card{margin:0}
.crm-dgrid2 .crm-wide{grid-column:1/-1}
.crm-bars{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.crm-brow{display:grid;grid-template-columns:minmax(90px,150px) 1fr auto;gap:10px;align-items:center;font-size:calc(13px*var(--fs));border-radius:8px;padding:2px 4px;transition:background .15s}
.crm-brow:hover{background:var(--surface2)}
.crm-blabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg2);font-weight:600}
.crm-btrack{height:12px;border-radius:0 4px 4px 0;background:transparent}
.crm-bfill{display:block;height:100%;border-radius:0 4px 4px 0;background:var(--acc);transition:width .9s cubic-bezier(.2,.8,.2,1)}
.crm-brow:hover .crm-bfill{filter:brightness(1.12)}
.crm-bval{font-variant-numeric:tabular-nums;color:var(--fg);font-weight:650;white-space:nowrap}
.crm-cols{display:flex;align-items:flex-end;gap:2px;height:180px;margin-top:16px;border-bottom:1px solid var(--line)}
.crm-ccol{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;border-radius:6px;transition:background .15s}
.crm-ccol:hover{background:var(--surface2)}
.crm-cbar{display:block;width:min(70%,28px);border-radius:4px 4px 0 0;background:var(--acc);transition:height .9s cubic-bezier(.2,.8,.2,1)}
.crm-ccol small{font-size:calc(10.5px*var(--fs));color:var(--mut);white-space:nowrap;transform:translateY(20px);height:0}
.crm-cols+*{margin-top:24px}
/* ajustes */
.crm-srow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px;border-radius:14px;background:var(--surface2);margin-bottom:8px}
.crm-srow [data-sn]{flex:1 1 160px;width:auto}
.crm-srow [data-st]{flex:2 1 220px;width:auto}
.crm-smove{display:flex;flex-direction:column}
.crm-smove .btn.icon.small{width:26px;min-height:22px}
.crm-sp{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:calc(12.5px*var(--fs));color:var(--mut);white-space:nowrap}
.crm-sp input{width:68px;padding:8px}
.crm-cfrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.crm-cfrow input,.crm-cfrow select{flex:1 1 150px;width:auto}
.crm-moveto,[data-moveto]{width:auto;min-width:200px}
.crm-confetti{position:fixed;inset:0;pointer-events:none;z-index:90;overflow:hidden}
.crm-confetti i{position:absolute;top:-12px;width:9px;height:14px;border-radius:2px;animation:crm-fall 1.4s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes crm-fall{to{top:105%;opacity:.2;transform:translateX(40px) rotate(540deg)}}
@media (max-width:960px){
  .crm-contact{grid-template-columns:1fr}
  .crm-cside{position:static}
  .crm-dgrid2{grid-template-columns:minmax(0,1fr)}
  .crm-col{flex-basis:min(82vw,320px);max-height:none}
  .crm-dgrid{grid-template-columns:1fr}
  .crm-drawer-in{padding:18px 16px 40px}
}
@media (prefers-reduced-motion:reduce){
  .crm-card,.crm-drawer,.crm-bfill,.crm-cbar,.crm-trow{transition:none!important}
  .crm-in,.crm-act,.crm-dropbar,.crm-ph{animation:none!important}
}

/* CRM: grade de negócios, itens e orçamentos, catálogo e agentes de IA */
.crm-dlg fieldset,.crm-sales fieldset,.crm-terms fieldset,[data-salescard] fieldset,.crm-agform fieldset{border:0;padding:0;margin:0;min-width:0}
.crm-dlg legend,.crm-terms legend,[data-salescard] legend,.crm-agform legend{font-size:calc(13px*var(--fs));font-weight:700;color:var(--fg2);padding:0;margin-bottom:8px}
.crm-gcolsw{position:relative}
.crm-bar:has(.crm-gcolsw){position:relative;z-index:6} /* a animação de entrada (transform) isola a camada: o menu precisa ficar acima da tabela */
.crm-gcolmenu{position:absolute;left:0;top:calc(100% + 6px);z-index:20;display:flex;flex-direction:column;gap:2px;min-width:220px;max-height:340px;overflow:auto;padding:10px;border-radius:16px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow-lg)}
.crm-gcolmenu .check{margin:0;padding:5px 6px;border-radius:8px;font-size:calc(13.5px*var(--fs))}
.crm-gcolmenu .check:hover{background:var(--surface2)}
.crm-gbulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:-4px 0 14px;padding:10px 14px;border-radius:16px;background:var(--acc-soft);border:1px solid var(--acc)}
.crm-gbulk select{width:auto;padding:7px 10px;font-size:calc(13.5px*var(--fs))}
.crm-gbulk strong{color:var(--acc);margin-right:4px}
.crm-gwrap{max-height:calc(100vh - 290px);overflow:auto}
.crm-grid{font-size:calc(13.5px*var(--fs))}
.crm-grid thead th{position:sticky;top:0;z-index:2;background:var(--surface)}
.crm-grid tbody tr{cursor:default}
.crm-grid tbody tr.sel{background:var(--acc-soft)}
.crm-grid td{vertical-align:middle;padding-top:8px;padding-bottom:8px}
.crm-grid input,.crm-grid select{padding:6px 9px;font-size:calc(13px*var(--fs));border-radius:10px;min-width:0}
.crm-grid select{min-width:140px;max-width:190px}
.crm-grid td:nth-child(2){min-width:170px}
.crm-grid input[data-gval]{width:110px}
.crm-grid input[type=date]{width:150px}
.crm-gchk{width:34px}
.crm-gchk input,.crm-gagent input{width:auto;accent-color:var(--acc)}
.crm-gsort{all:unset;cursor:pointer;font:inherit;font-weight:700;white-space:nowrap}
.crm-gsort.on{color:var(--acc)}
.crm-gsort:focus-visible{box-shadow:var(--focus);border-radius:6px}
.crm-glink{all:unset;cursor:pointer;font-weight:700;color:var(--fg)}
.crm-glink:hover,.crm-glink:focus-visible{color:var(--acc);text-decoration:underline}
.crm-gpct{display:inline-flex;align-items:center;gap:4px;margin:0;font-size:calc(13px*var(--fs));white-space:nowrap}
.crm-gpct input{width:72px}
.crm-gagent{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:calc(13px*var(--fs));white-space:nowrap;cursor:pointer}
.crm-gitems{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.crm-gitems svg{width:14px;height:14px;color:var(--mut)}
.crm-gfoot{margin-top:10px}
/* gaveta: itens, orçamentos, condições */
.crm-sales{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--raised)}
.crm-sales h3,.crm-terms summary span{display:inline-flex;align-items:center;gap:8px;font-size:calc(15px*var(--fs));margin:0}
.crm-sales h3 svg,.crm-terms summary svg{width:17px;height:17px;color:var(--acc)}
.crm-sales>.row-between{margin-bottom:10px;gap:8px;flex-wrap:wrap}
.crm-items{font-size:calc(13px*var(--fs))}
.crm-items th{font-size:calc(12px*var(--fs))}
.crm-items td{padding:5px 4px;vertical-align:middle}
.crm-items input{padding:6px 8px;font-size:calc(13px*var(--fs));border-radius:9px}
.crm-items input[data-l=qty]{width:64px}
.crm-items input[data-l=unitPrice]{width:90px}
.crm-items input[data-l=discount]{width:58px}
.crm-items td small{display:block}
.crm-itot{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:14px;margin:8px 0;font-size:calc(13.5px*var(--fs))}
.crm-itot strong{font-size:calc(16px*var(--fs))}
.crm-quotes{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.crm-quote{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:9px 12px;border-radius:14px;background:var(--surface2)}
.crm-quote small{display:block;margin-top:2px}
.crm-quote .actions{gap:2px}
.crm-quote .btn.ok{color:var(--ok)}
.crm-terms{margin-top:12px;border:1px solid var(--line);border-radius:18px;background:var(--raised)}
.crm-terms summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;padding:12px 14px;cursor:pointer;list-style:none}
.crm-terms summary::-webkit-details-marker{display:none}
.crm-terms-in{padding:0 14px 14px}
.crm-terms .crm-dgrid{margin-top:8px}
.crm-terms .wide{grid-column:1/-1}
.crm-pays{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px}
.crm-pays legend{width:100%}
.crm-pays .check{margin:0;font-size:calc(13.5px*var(--fs))}
.crm-tnotes{display:block;margin:12px 0 8px;font-size:calc(12px*var(--fs));color:var(--mut)}
.crm-tnotes textarea{margin-top:4px;min-height:60px;font-size:calc(14px*var(--fs))}
.crm-pick{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow:auto}
.crm-pick button{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);cursor:pointer}
.crm-pick button:hover,.crm-pick button:focus-visible{border-color:var(--acc);background:var(--acc-soft)}
.crm-pick span{display:flex;align-items:center;gap:8px;min-width:0}
.crm-pick span svg{width:16px;height:16px;flex:none;color:var(--mut)}
.crm-pick small{display:block}
.crm-pick strong{white-space:nowrap}
.crm-qsum{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-radius:14px;background:var(--surface2)}
.crm-qsum strong{font-size:calc(20px*var(--fs))}
.crm-qlink{display:flex;gap:8px}
.crm-qlink input{flex:1;min-width:0}
/* catálogo */
.crm-fiscal{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:16px;border:1px dashed var(--acc);background:var(--acc-soft)}
.crm-fiscal>div{flex:1 1 320px}
.crm-fiscal h2{margin:0 0 4px;font-size:calc(16px*var(--fs))}
.crm-fiscal p{margin:4px 0}
.crm-fiscal-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--raised);color:var(--acc);flex:none}
.crm-hint{margin:-6px 0 14px}
.crm-cat tr.off td{opacity:.6}
.crm-ineg,.crm-iprod{padding:12px 14px!important;border-radius:14px!important;background:var(--surface2)}
.crm-ineg .field,.crm-iprod .field{margin-bottom:6px}
.crm-dlg .grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
/* agentes */
.crm-agintro p{max-width:900px}
.crm-agintro .msg{display:block}
.crm-agflow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.crm-agflow em{color:var(--mut);font-style:normal}
.crm-agstep{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface2);min-width:140px}
.crm-agstep span svg{width:18px;height:18px;color:var(--mut)}
.crm-agstep small{color:var(--mut);font-size:calc(12px*var(--fs))}
.crm-agstep.on{border-color:var(--ok);background:var(--ok-soft)}
.crm-agstep.on span svg{color:var(--ok)}
.crm-agcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;margin-top:14px}
.crm-agcard{display:flex;flex-direction:column;margin:0}
.crm-agcard header{display:flex;gap:12px;align-items:center;margin-bottom:6px}
.crm-agcard h2{font-size:calc(16px*var(--fs));margin:0 0 4px}
.crm-agcard .actions{margin-top:auto;padding-top:8px}
.crm-agav{display:block;width:64px;height:64px;flex:none}
.crm-agav.sm{width:40px;height:40px;margin-bottom:4px}
.crm-agav .ai-photo img{box-shadow:0 0 0 2px var(--raised),0 0 0 3px var(--acc-soft)}
.crm-agcard.off .crm-agav{filter:grayscale(.85);opacity:.75}
.crm-agstep:not(.on) .crm-agav{filter:grayscale(.85);opacity:.75}
.crm-agrole{margin:0 0 6px}
.crm-agwho{display:flex;gap:12px;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed var(--line2)}
.crm-agwho p{margin:0}
.crm-agic{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--acc-soft);color:var(--acc);flex:none}
.crm-agedit{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);gap:16px;align-items:start}
.crm-agform,.crm-agsim{margin:0;min-width:0}
.crm-agform select{max-width:100%}
.crm-agform .row-between label{flex:1;margin:0}
.crm-agon{display:flex;align-items:flex-start;gap:10px}
.crm-agon input{width:auto;margin-top:3px}
.crm-agsim{position:sticky;top:84px;display:flex;flex-direction:column}
.crm-agsim h2{display:inline-flex;align-items:center;gap:8px;margin:0}
.crm-agstages{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.crm-agstages small{width:100%}
.chip-check{display:inline-flex;margin:0;cursor:pointer}
.chip-check input{position:absolute;opacity:0;width:1px;height:1px}
.chip-check span{padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:calc(13px*var(--fs));font-weight:600}
.chip-check input:checked+span{border-color:var(--acc);background:var(--acc-soft);color:var(--acc)}
.chip-check input:focus-visible+span{box-shadow:var(--focus)}
#ag-p{min-height:300px;font-size:calc(14px*var(--fs));line-height:1.5}
.crm-agtips{margin-top:8px}
.crm-agtips summary{cursor:pointer;font-size:calc(13px*var(--fs));color:var(--acc);font-weight:650}
.crm-agtips ul{margin:8px 0 0;padding-left:18px;line-height:1.6}
.crm-aglim small{display:block;margin-top:4px}
.crm-agpre{white-space:pre-wrap;max-height:46vh;overflow:auto;padding:12px 14px;border-radius:12px;background:var(--surface2);font-size:calc(12.5px*var(--fs));line-height:1.5}
.crm-simchat{display:flex;flex-direction:column;gap:8px;min-height:300px;max-height:52vh;overflow-y:auto;margin:8px 0;padding:14px;border-radius:16px;background:var(--surface2)}
.crm-simmsg{display:flex}
.crm-simmsg p{margin:0;max-width:85%;padding:9px 13px;border-radius:16px;font-size:calc(14px*var(--fs));line-height:1.45;overflow-wrap:anywhere}
.crm-simmsg.in{justify-content:flex-end}
.crm-simmsg.in p{background:var(--acc);color:var(--acc-fg);border-bottom-right-radius:5px}
.crm-simmsg.out p{background:var(--raised);border:1px solid var(--line);border-bottom-left-radius:5px}
.crm-simmsg.typing span{display:inline-block;width:6px;height:6px;margin:0 2px;border-radius:50%;background:var(--mut);animation:crm-typing 1s infinite}
.crm-simmsg.typing span:nth-child(2){animation-delay:.15s}
.crm-simmsg.typing span:nth-child(3){animation-delay:.3s}
@keyframes crm-typing{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.crm-simacts{list-style:none;margin:2px 0;padding:8px 12px;border-radius:12px;border:1px dashed var(--line2);font-size:calc(12.5px*var(--fs));color:var(--fg2);display:flex;flex-direction:column;gap:3px}
.crm-simacts li.bad{color:var(--bad)}
.crm-simend{margin:2px auto;font-size:calc(12.5px*var(--fs));color:var(--mut)}
.crm-simin{display:flex;gap:8px}
.crm-simin input{flex:1;min-width:0}
.crm-simin .btn svg{width:18px;height:18px}
/* Portal: solicitar novo projeto (chat com o assistente da PraxStack) */
.cli-req{max-width:760px}
/* Pendências: no PC um aviso compacto à direita, abaixo do topo; no celular ocupa a largura. */
.hub-sign-dlg{max-width:480px}
.ai-tier h3{margin:0}
.ai-tier .ai-plans{margin-top:8px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.priv-list{margin:8px 0;padding-left:20px;display:grid;gap:4px;font-size:calc(15px*var(--fs))}
.hub-setup-opt{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface2);cursor:pointer}
.hub-setup-opt input{margin-top:3px;flex:none;width:18px;height:18px}.hub-setup-opt small{display:block;color:var(--mut);font-size:calc(13px*var(--fs));margin-top:2px}
.hub-regret{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:14px;background:var(--warn-soft);font-size:calc(14.5px*var(--fs));line-height:1.5}
.hub-sign-opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;margin-top:8px;border:1px solid var(--line);border-radius:14px;cursor:pointer}
.hub-sign-opt:has(input:checked){border-color:var(--acc);background:var(--acc-soft, var(--surface2))}
.hub-sign-opt input{width:auto;height:auto;flex:none;margin-top:3px}
.hub-sign-opt span{flex:1;display:flex;flex-direction:column;gap:2px;text-align:left}
.hub-sign-opt small{color:var(--fg2)}
/* ---------- Portal no celular (fase 2): barra de atalhos embaixo, conversa em tela cheia, funil por abas, tabelas em cartões ---------- */
.cli-tabbar,.crm-stagetabs{display:none}
@media (max-width:760px){
  body.cli.has-tabbar .cli-tabbar:not([hidden]){display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;
    padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(10,14,25,.06)}
  .cli-tabbar a,.cli-tabbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:50px;padding:4px 2px;border:0;border-radius:14px;
    background:none;color:var(--mut);font:inherit;font-size:calc(11px*var(--fs));font-weight:650;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .cli-tabbar svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .cli-tabbar [aria-current=page]{color:var(--acc);background:var(--acc-soft,var(--surface2))}
  .cli-tab-badge{position:absolute;top:3px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--bad);color:#fff;font-size:calc(11px*var(--fs));line-height:18px;text-align:center}
  body.cli.has-tabbar main{padding-bottom:calc(150px + env(safe-area-inset-bottom))} /* barra de baixo + botão do mascote */
  body.cli.has-tabbar .hub-menu{display:none}
  body.cli.has-tabbar .pxg-fab-wrap{bottom:calc(84px + env(safe-area-inset-bottom));right:14px}
  body.cli.has-tabbar .pxg-fab{width:52px;height:52px}
  /* Atendimento: filtros numa linha que rola; sem a visão em quadro; a conversa abre em tela cheia, com a resposta fixa embaixo */
  body.cli .wai-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}
  body.cli .wai-filters::-webkit-scrollbar{display:none}
  body.cli .wai-filters button{flex:none}
  body.cli .wai-tools .view-toggle{display:none}
  body.cli .wai-tools .wai-q{flex:1 1 100%}
  body.cli .wai-body{height:auto;min-height:0;border:0;background:none;overflow:visible}
  body.cli .wai-body .wai-list{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);overflow:hidden}
  body.cli .wai-body.has-chat .wai-chat{position:fixed;inset:0;z-index:70;height:100dvh;border-radius:0}
  body.cli .wai-body.has-chat .wai-compose{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  body.cli:has(.wai-body.has-chat){overflow:hidden}
  body.cli:has(.wai-body.has-chat) .cli-tabbar,body.cli:has(.wai-body.has-chat) .pxg-fab-wrap{display:none!important}
  /* Funil: uma etapa por vez, com as abas das etapas no topo (tocar leva até ela); na gaveta, as etapas mudam o negócio de etapa */
  .crm-stagetabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:4px -16px 10px;padding:0 16px;position:sticky;top:0;z-index:5}
  .crm-stagetabs::-webkit-scrollbar{display:none}
  .crm-stagetabs button{flex:none;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--fg2);font:inherit;font-size:calc(13px*var(--fs));font-weight:650;cursor:pointer}
  .crm-stagetabs button[aria-selected=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
  .crm-stagetabs .crm-count{font-size:calc(11px*var(--fs));opacity:.8}
  .crm-board{scroll-snap-type:x mandatory;gap:10px;margin:0 -16px;padding:0 16px 12px;scroll-padding:0 16px;min-height:0}
  .crm-col{flex-basis:calc(100vw - 32px);scroll-snap-align:start}
  .crm-bar{flex-wrap:wrap}
  .crm-bar .crm-search{flex:1 1 100%}
  /* Tabelas viram cartões (rótulo da coluna em cada linha: cardTables em cliente.js) */
  table.m-cards thead{display:none}
  table.m-cards,table.m-cards tbody{display:block}
  table.m-cards tr{display:block;padding:12px 14px;border-bottom:1px solid var(--line)}
  table.m-cards td{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px 12px;padding:4px 0;border:0;text-align:right;max-width:none}
  table.m-cards td[data-label]::before{margin-right:auto;content:attr(data-label);color:var(--mut);font-size:calc(12.5px*var(--fs));text-align:left;flex:none;max-width:45%}
  table.m-cards td:first-child{display:block;text-align:left;font-size:calc(15px*var(--fs));padding-bottom:6px}
  table.m-cards td:first-child::before{display:none}
  table.m-cards td:empty{display:none}
  .table-wrap:has(table.m-cards){overflow:visible}
  /* Janelas em tela cheia, com os botões fixos embaixo */
  body.cli dialog[open]{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;border:0;display:flex;flex-direction:column}
  body.cli dialog[open] > form{flex:1;overflow-y:auto;padding:20px 16px 0;display:flex;flex-direction:column}
  body.cli dialog[open] .foot{position:sticky;bottom:0;margin:auto -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--raised)}
  body.cli dialog[open] .foot .btn{flex:1}
}
.cli-buy-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 14px;border-radius:14px;background:var(--surface2)}
.cli-buy-line strong{font-size:calc(18px*var(--fs));font-variant-numeric:tabular-nums}
.hub-sign-dlg h3{font-size:calc(15px*var(--fs));margin:0}
.px-rec td{vertical-align:middle}
.px-rec td.small{max-width:300px;color:var(--fg2)}
.cli-req-top{display:flex;align-items:center;gap:12px}
.cli-req-top > div{flex:1;min-width:0}
.cli-req-top p{margin:0}
.cli-req-chat{min-height:340px;max-height:56vh}
.cli-req-hint{margin:10px 0 0}
.cli-req-wa{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px;padding:14px 16px;border-radius:16px;background:var(--acc-soft, var(--surface2));animation:cli-req-in .35s cubic-bezier(.2,.8,.2,1)}
.cli-req-wa > div{flex:1;min-width:200px}
.cli-req-wa p{margin:2px 0 0}
.cli-req-wa .btn svg{width:18px;height:18px}
.head .actions .btn svg{width:16px;height:16px}
@keyframes cli-req-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cli-req-wa{animation:none}}
@media (max-width:640px){.cli-req-chat{min-height:46vh}.cli-req-wa .btn{width:100%;justify-content:center}}
@media (max-width:1099px){
  .crm-agedit{grid-template-columns:minmax(0,1fr)}
  .crm-agsim{position:static}
}
@media (max-width:640px){
  .crm-dlg .grid.three{grid-template-columns:1fr}
  .crm-gbulk select,.crm-gbulk .btn{flex:1 1 auto}
  .crm-gwrap{max-height:none}
  .crm-itot{justify-content:space-between}
}
@media (prefers-reduced-motion:reduce){ .crm-simmsg.typing span{animation:none} }
/* Admin → Recebimentos */
.rc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.rc-kpis > .card,.rc-cols > .card{margin:0}
.rc-kpi{display:flex;flex-direction:column;gap:4px}.rc-kpi strong{font-size:calc(26px*var(--fs));font-weight:800}
.rc-cols{align-items:start}
.rc-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.rc-chk{display:flex;gap:10px;align-items:flex-start}
.rc-chk > span{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-weight:800;font-size:calc(13px*var(--fs))}
.rc-chk.ok > span{background:var(--ok-soft);color:var(--ok)}.rc-chk.bad > span{background:var(--bad-soft);color:var(--bad)}
.rc-chk p{margin:2px 0 0}
/* página do cartão (/pagar/<id>, assets/pagar.js): contrato de adesão + Bricks do Mercado Pago */
body.px-pay{--oq-brand:#1f62ff}
.oq-kicker{margin:0 0 6px;color:var(--mut);font-size:calc(12px*var(--fs));text-transform:uppercase;letter-spacing:.08em;font-weight:650}
.px-pay-price{margin:6px 0 4px;font-size:calc(16px*var(--fs))}
.px-pay-price strong{font-size:calc(26px*var(--fs));font-weight:800}
.px-pay-facts{margin:6px 0 0;padding-left:18px}
.px-pay-steps{display:flex;gap:10px;list-style:none;padding:0;margin:20px 0 4px;counter-reset:st}
.px-pay-steps li{counter-increment:st;display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;background:var(--surface2);color:var(--mut);font-size:calc(13.5px*var(--fs));font-weight:600}
.px-pay-steps li::before{content:counter(st);display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface3);font-size:calc(12px*var(--fs))}
.px-pay-steps li.now{background:color-mix(in srgb,#1f62ff 14%,var(--surface2));color:var(--fg)}.px-pay-steps li.now::before{background:#1f62ff;color:#fff}
.px-pay-steps li.done{color:var(--ok)}.px-pay-steps li.done::before{content:"✓";background:var(--ok-soft);color:var(--ok)}
.px-pay-form{row-gap:0;align-items:end}
.px-pay-wide{grid-column:1 / -1}
.px-pay-accept{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface2);font-size:calc(14px*var(--fs));line-height:1.5}
.px-pay-accept input{margin-top:4px;flex:none;width:18px;height:18px}
.px-pay-brick{min-height:120px}
@media (max-width:640px){ .px-pay-form{grid-template-columns:minmax(0,1fr)} .px-pay-steps{flex-wrap:wrap} }
/* página pública do orçamento (/orcamento/<token>) */
body.oq{--oq-brand:var(--acc);margin:0;min-height:100vh;background:var(--bg);color:var(--fg);padding:32px 16px 24px;box-sizing:border-box}
.oq-wrap{max-width:760px;margin:0 auto}
.oq-card{background:var(--raised);border:1px solid var(--line);border-top:6px solid var(--oq-brand);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:28px}
.oq-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.oq-logo{max-height:56px;max-width:200px;object-fit:contain}
.oq-company{font-size:calc(20px*var(--fs))}
.oq-num{text-align:right}
.oq-num small{display:block;color:var(--mut);font-size:calc(12px*var(--fs));text-transform:uppercase;letter-spacing:.06em}
.oq-num strong{font-size:calc(22px*var(--fs))}
.oq-card h1{font-size:calc(24px*var(--fs));margin:0 0 4px}
.oq-state{display:inline-block;margin:14px 0;padding:6px 14px;border-radius:999px;font-weight:650;font-size:calc(13.5px*var(--fs));background:var(--info-soft);color:var(--info)}
.oq-state.ok{background:var(--ok-soft);color:var(--ok)}
.oq-state.bad{background:var(--bad-soft);color:var(--bad)}
.oq-state.warn{background:var(--warn-soft);color:var(--warn)}
.oq-items{width:100%;border-collapse:collapse;margin-top:8px;font-size:calc(14.5px*var(--fs))}
.oq-items th{text-align:left;font-size:calc(12px*var(--fs));color:var(--mut);font-weight:650;padding:8px 6px;border-bottom:1px solid var(--line)}
.oq-items td{padding:10px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.oq-items .num{text-align:right;white-space:nowrap}
.oq-sum{margin:14px 0 0;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.oq-sum div{display:flex;gap:18px}
.oq-sum dt{color:var(--mut)}
.oq-sum dd{margin:0;min-width:110px;text-align:right}
.oq-total dt,.oq-total dd{font-size:calc(20px*var(--fs));font-weight:800;color:var(--fg)}
.oq-terms{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:calc(14px*var(--fs));line-height:1.55}
.oq-terms p{margin:4px 0}
.oq-note{padding:10px 12px;border-radius:12px;background:var(--surface2)}
.oq-pay{display:flex;justify-content:center;margin-top:18px}
.oq-answer{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.oq-answer label{font-size:calc(13px*var(--fs));color:var(--mut)}
.oq-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.oc-pix{display:flex;gap:22px;align-items:flex-start;margin-top:8px;padding:18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface2)}
.oc-qr{width:220px;height:220px;flex:none;border-radius:12px;background:#fff;padding:8px;box-sizing:border-box}
.oc-pix-side{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.oc-pix-side p{margin:0}
.oc-steps{margin:0;padding-left:18px;font-size:calc(14px*var(--fs));line-height:1.6;color:var(--mut)}
.oc-code{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:calc(12px*var(--fs));word-break:break-all;resize:none}
.oc-center{text-align:center}
.oq-foot{max-width:760px;margin:18px auto 0;text-align:center;font-size:calc(12px*var(--fs));color:var(--mut)}
.oq-foot a{color:inherit}
@media (max-width:640px){
  body.oq{padding:16px 16px 20px}
  .oq-card{padding:20px 16px}
  .oq-items th:nth-child(3),.oq-items td:nth-child(3){display:none}
  .oq-actions .btn{flex:1}
  .oc-pix{flex-direction:column;align-items:center}
  .oc-pix-side{width:100%}
  .oc-pix-side .btn{width:100%}
}

/* CRM da PraxStack (admin): projeto ligado ao negócio */
.crm-proj .row-between{gap:8px;flex-wrap:wrap}
.crm-projcard{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:var(--surface2)}
.crm-projcard>div:first-child{flex:1;min-width:160px}
.crm-projbar{width:90px;height:6px;border-radius:6px;background:var(--line);overflow:hidden}
.crm-projbar span{display:block;height:100%;background:var(--acc)}
.crm-plist{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto}
.crm-pick{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--raised);color:var(--fg);font:inherit;cursor:pointer}
.crm-pick:hover{border-color:var(--acc)}
/* Gestão de projetos do Hub (assets/projects.js) e a página do cliente final (acompanhar.html) */
.gp-bar{height:5px;margin-top:10px;border-radius:5px;background:var(--line);overflow:hidden}
.gp-bar span{display:block;height:100%;background:var(--acc);border-radius:5px}
.gp-board .crm-cards.over{background:var(--acc-soft);border-radius:12px}
.gp-card{cursor:pointer}
.gp-stage select{min-height:42px;border-radius:999px}
.gp-addact{padding:12px}
.gp-actrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.gp-actrow input:not([type=checkbox]){flex:1 1 140px;min-width:0;min-height:42px}
.gp-actrow input[data-t],.gp-actrow input[data-l]{flex:3 1 240px}
.gp-acts select{min-width:130px}
.gp-acts input.late{border-color:var(--bad);color:var(--bad)}
.gp-up{cursor:pointer}
.gp-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gp-kpis .card{margin:0;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.gp-kpis strong{font-size:calc(22px*var(--fs))}
@media (max-width:640px){.gp-kpis{grid-template-columns:1fr}}
.ac-steps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:14px 0;padding:0}
.ac-steps li{padding:6px 12px;border-radius:999px;background:var(--surface2);color:var(--mut);font-size:calc(13px*var(--fs));font-weight:600}
.ac-steps li.past{background:var(--ok-soft);color:var(--ok)}
.ac-steps li.on{background:var(--oq-brand,var(--acc));color:#fff}
.ac-sec{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.ac-sec h2{font-size:calc(17px*var(--fs));margin:0 0 10px}
.ac-pay{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;background:var(--surface2);margin-bottom:8px}
.ac-acts,.ac-files,.ac-tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ac-acts li{display:flex;gap:10px;align-items:flex-start}
.ac-dot{flex:none;width:12px;height:12px;margin-top:4px;border-radius:50%;border:2px solid var(--line2)}
.ac-acts li.doing .ac-dot{border-color:var(--warn);background:var(--warn-soft)}
.ac-acts li.done .ac-dot{border-color:var(--ok);background:var(--ok)}
.ac-acts li.done strong{text-decoration:line-through;color:var(--mut)}
.ac-up{margin-top:10px;cursor:pointer}
/* Agentes de IA (assets/aiagents.js): saldo de créditos da empresa, indicadores por agente e economia */
.ai-wallet .row-between{align-items:flex-start;gap:12px}
.ai-big{margin:6px 0 4px;font-size:calc(15px*var(--fs))}
.ai-big strong{font-size:calc(30px*var(--fs));letter-spacing:-.02em;margin-right:6px}
.ai-bar{height:12px;border-radius:999px;background:var(--surface2);overflow:hidden;margin:12px 0 8px}
.ai-bar span{display:block;height:100%;border-radius:999px;background:var(--ok);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.ai-bar.warn span{background:var(--warn)}
.ai-bar.bad span{background:var(--bad)}
.ai-hist{display:flex;align-items:flex-end;gap:14px;height:150px;margin-top:12px}
.ai-hist > div{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}
.ai-col{flex:1;width:100%;max-width:46px;display:flex;align-items:flex-end;border-radius:10px;background:var(--surface2);overflow:hidden}
.ai-col span{display:block;width:100%;background:var(--acc);border-radius:10px 10px 0 0}
.ai-dlg{max-width:860px;width:calc(100vw - 32px);border:0;border-radius:var(--r-lg);padding:22px;background:var(--raised);color:var(--fg);box-shadow:var(--shadow-lg)}
.ai-dlg::backdrop{background:rgba(10,14,25,.45)}
/* Equipe digital (aiagents.js): cada funcionário é uma pessoa, um crachá com o rosto em caricatura (SVG), nome, função e os números do mês. */
.ai-face{display:block;width:100%;height:100%;stroke:none}
.ai-face-bg{fill:var(--acc-soft)}
.ai-photo{position:relative;display:block;width:100%;height:100%}
.ai-photo img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;background:var(--acc-soft);box-shadow:0 0 0 3px var(--raised),0 0 0 5px var(--acc-soft)}
.ai-photo .ai-pin{position:absolute;right:2%;bottom:4%;width:26%;height:26%;stroke:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}
.ai-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;max-height:260px;overflow-y:auto;padding:4px}
.ai-ph{position:relative;cursor:pointer;display:block}
.ai-ph input{position:absolute;opacity:0;width:1px;height:1px}
.ai-ph img{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:50%;object-fit:cover;border:3px solid transparent;transition:border-color .15s,transform .15s}
.ai-ph:hover img{transform:scale(1.04)}
.ai-ph input:checked + img{border-color:var(--acc)}
.ai-ph input:focus-visible + img{outline:2px solid var(--acc);outline-offset:2px}
.ai-ill{display:flex;flex-direction:column;gap:12px}
.ai-ill[hidden],.ai-fs[hidden]{display:none}
.ai-person .badge.ok::before{animation:ai-pulse 1.8s ease-in-out infinite}
@keyframes ai-pulse{50%{opacity:.35}}
.ai-persona-grid{display:grid;grid-template-columns:220px 1fr;gap:22px;margin-top:12px}
.ai-persona-prev{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;position:sticky;top:0;align-self:start}
.ai-persona-prev [data-pv]{width:200px;height:200px}
.ai-persona-prev strong{font-size:calc(20px*var(--fs))}
.ai-persona-fields{display:flex;flex-direction:column;gap:12px;min-width:0}
.ai-fs{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ai-fs legend{font-weight:600;font-size:calc(13px*var(--fs));margin-bottom:6px;padding:0}
.ai-chips,.ai-sws{display:flex;flex-wrap:wrap;gap:8px}
.ai-chip{position:relative;cursor:pointer}
.ai-chip input,.ai-sw input{position:absolute;opacity:0;width:1px;height:1px}
.ai-chip span{display:inline-block;padding:7px 12px;border-radius:999px;border:1px solid var(--line2);font-size:calc(13px*var(--fs));background:var(--surface)}
.ai-chip input:checked + span{border-color:var(--acc);background:var(--acc-soft);color:var(--fg);font-weight:600}
.ai-chip input:focus-visible + span,.ai-sw input:focus-visible + svg{outline:2px solid var(--acc);outline-offset:2px}
.ai-sw{cursor:pointer;display:inline-flex}
.ai-sw svg{stroke:none;width:32px;height:32px;border-radius:50%;border:2px solid transparent;padding:2px;transition:border-color .15s}
.ai-sw circle{stroke:rgba(0,0,0,.12);stroke-width:1}
.ai-sw input:checked + svg{border-color:var(--acc)}
@media (max-width:760px){
  .ai-persona-grid{grid-template-columns:1fr;gap:12px}
  .ai-persona-prev{position:static;display:grid;grid-template-columns:88px 1fr;align-items:center;text-align:left;column-gap:12px;row-gap:0}
  .ai-persona-prev [data-pv]{width:88px;height:88px;grid-row:span 2}
  .ai-persona .actions{position:sticky;bottom:-22px;background:var(--raised);padding:10px 0;margin-bottom:-10px}
}
@media (prefers-reduced-motion:reduce){.ai-ph img{transition:none}.ai-ph:hover img{transform:none}.ai-person .badge.ok::before{animation:none}.ai-person{transition:none}.ai-person:hover{transform:none}}
.ai-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px}
.ai-plans .ai-plan{margin:0;display:flex;flex-direction:column;gap:6px;padding:16px}
.ai-plans .ai-plan.on{border-color:var(--ok)}
.ai-plans .ai-plan .btn,.ai-plans .ai-plan .badge{margin-top:auto;align-self:flex-start}
/* Instrutor das soluções (public/assets/guide.js): mascote em SVG (flutua, pisca, fala, acena, aponta, comemora), balão com
   destaque no elemento da tela, dicas dentro das janelas, botão de ajuda no canto, comemoração e "Primeiros passos". */
.pxg-m{display:block;width:100%;height:auto;overflow:visible}
.pxg-bod{animation:pxg-bob 3.2s ease-in-out infinite}
.pxg-shadow{fill:rgba(0,0,0,.18);transform-box:fill-box;transform-origin:center;animation:pxg-shadow 3.2s ease-in-out infinite}
.pxg-eyes{transform-box:fill-box;transform-origin:center;animation:pxg-blink 4.6s infinite}
.pxg-mouth{transform-box:fill-box;transform-origin:center top}
.pxg-m.talk .pxg-mouth{animation:pxg-talk .2s ease-in-out infinite alternate}
.pxg-ant{animation:pxg-ant 2.4s ease-in-out infinite}
.pxg-m.talk .pxg-ant{animation-duration:.6s}
.pxg-arm{transition:transform .4s cubic-bezier(.3,1.4,.5,1)}
.pxg-arm-l{transform-origin:37px 100px}
.pxg-arm-r{transform-origin:83px 100px}
.pxg-m.wave .pxg-arm-r{animation:pxg-wave 1.6s ease-in-out 1}
.pxg-m.point .pxg-arm-r{transform:rotate(-78deg)}
.pxg-m.cheer .pxg-arm-l{transform:rotate(118deg)}
.pxg-m.cheer .pxg-arm-r{transform:rotate(-118deg)}
.pxg-m.cheer .pxg-bod{animation:pxg-jump .55s ease-in-out 3}
.pxg-m.think .pxg-bod{transform-box:fill-box;transform-origin:center bottom;transform:rotate(-6deg);animation:none}
@keyframes pxg-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes pxg-shadow{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.86);opacity:.7}}
@keyframes pxg-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.12)}}
@keyframes pxg-talk{from{transform:scaleY(.5)}to{transform:scaleY(2.1)}}
@keyframes pxg-ant{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes pxg-wave{0%,100%{transform:rotate(0)}18%,50%,82%{transform:rotate(-128deg)}34%,66%{transform:rotate(-96deg)}}
@keyframes pxg-jump{0%,100%{transform:translateY(0)}40%{transform:translateY(-12px)}}

.pxg-layer{position:fixed;inset:0;z-index:95;pointer-events:none;opacity:0;transition:opacity .2s}
.pxg-layer.on{opacity:1}
.pxg-layer.off{opacity:0}
.pxg-shade{position:fixed;inset:0;background:rgba(8,12,24,.55);display:none;pointer-events:auto}
.pxg-layer.center .pxg-shade{display:block;animation:hub-fade .25s}
.pxg-spot{position:fixed;border-radius:16px;box-shadow:0 0 0 9999px rgba(8,12,24,.55);transition:left .38s cubic-bezier(.3,1,.4,1),top .38s cubic-bezier(.3,1,.4,1),width .38s cubic-bezier(.3,1,.4,1),height .38s cubic-bezier(.3,1,.4,1)}
.pxg-spot::after{content:"";position:absolute;inset:-2px;border-radius:18px;border:2px solid var(--acc);animation:pxg-ring 1.6s ease-out infinite}
.pxg-layer.center .pxg-spot,.pxg-layer.center .pxg-blk,.pxg-layer.center .pxg-cover{display:none}
.pxg-blk,.pxg-cover{position:fixed;pointer-events:auto}
.pxg-layer.act .pxg-cover,.pxg-layer.free .pxg-cover,.pxg-layer.free .pxg-blk{pointer-events:none}
.pxg-layer.free .pxg-spot{box-shadow:0 0 0 9999px rgba(8,12,24,.25)}
@keyframes pxg-ring{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.06)}}
.pxg-bub{position:fixed;left:50%;top:50%;display:flex;align-items:flex-end;gap:6px;width:min(470px,calc(100vw - 24px));pointer-events:auto;transition:left .38s cubic-bezier(.3,1,.4,1),top .38s cubic-bezier(.3,1,.4,1)}
.pxg-bub.pop .pxg-card{animation:hub-pop .3s cubic-bezier(.2,.8,.2,1)}
.pxg-layer.center .pxg-bub{width:min(600px,calc(100vw - 24px))}
.pxg-bub-m{flex:none;width:92px;margin-bottom:-6px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.25))}
.pxg-layer.center .pxg-bub-m{width:132px}
.pxg-card{position:relative;flex:1;min-width:0;padding:16px 18px 14px;border-radius:22px 22px 22px 6px;background:var(--raised);color:var(--fg);border:1px solid var(--line);box-shadow:var(--shadow-lg)}
.pxg-card h3{margin:0 26px 6px 0;font-size:calc(17px*var(--fs));line-height:1.3}
.pxg-who{margin:0 0 2px;font-size:calc(11.5px*var(--fs));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--acc)}
.pxg-txt{margin:0;font-size:calc(14.5px*var(--fs));line-height:1.55}
.pxg-txt b{color:var(--fg)}
.pxg-w{opacity:0;animation:pxg-w .32s ease-out forwards}
.pxg-txt.all .pxg-w{opacity:1;animation:none}
@keyframes pxg-w{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:none}}
.pxg-why{margin:10px 0 0;padding:9px 12px;border-radius:12px;background:var(--acc-soft);font-size:calc(13px*var(--fs));line-height:1.5}
.pxg-why b{color:var(--acc)}
.pxg-do{margin:10px 0 0;font-size:calc(13px*var(--fs));font-weight:650;color:var(--acc);animation:pxg-nudge 1.4s ease-in-out infinite}
@keyframes pxg-nudge{0%,100%{transform:none}50%{transform:translateX(4px)}}
.pxg-x{position:absolute;top:8px;right:8px;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:var(--mut);font-size:calc(20px*var(--fs));line-height:1;cursor:pointer}
.pxg-x:hover{background:var(--acc-soft);color:var(--fg)}
.pxg-foot{display:flex;align-items:center;gap:6px;margin-top:14px}
.pxg-dots{display:flex;gap:5px;margin-right:auto}
.pxg-dots i{width:7px;height:7px;border-radius:999px;background:var(--line);transition:width .3s,background .3s}
.pxg-dots i.past{background:color-mix(in srgb,var(--acc) 45%,transparent)}
.pxg-dots i.on{width:20px;background:var(--acc)}
.pxg-dots small{color:var(--mut)}
.pxg-art{margin:10px 0 8px}
.pxg-bub.dock-top,.pxg-bub.dock-bottom{width:calc(100vw - 16px)}
@media (max-width:640px){
  .pxg-bub-m,.pxg-layer.center .pxg-bub-m{width:64px}
  .pxg-card{padding:14px 14px 12px}
  .pxg-txt{font-size:calc(14px*var(--fs))}
}

.pxg-coach{display:flex;align-items:flex-start;gap:10px;margin:12px 0 4px;padding:10px 10px 10px 12px;border-radius:16px;background:var(--acc-soft);border:1px solid color-mix(in srgb,var(--acc) 28%,transparent);animation:hub-pop .3s cubic-bezier(.2,.8,.2,1)}
.pxg-coach-m{flex:none;width:46px}
.pxg-coach-b{flex:1;min-width:0;font-size:calc(13.5px*var(--fs));line-height:1.5}
.pxg-coach-b .pxg-txt{font-size:calc(13.5px*var(--fs))}
.pxg-coach-b em{display:block;margin-top:3px;font-style:normal;color:var(--mut)}
.pxg-coach-nav{display:flex;align-items:center;gap:2px;flex:none}
.pxg-coach-nav small{margin-right:4px;color:var(--mut);font-variant-numeric:tabular-nums}
.pxg-coach-nav .btn.icon{width:30px;min-height:30px;font-size:calc(18px*var(--fs))}
.pxg-again{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;padding:4px 12px 4px 4px;border:1px solid var(--line);border-radius:999px;background:var(--raised);color:var(--acc);font:inherit;font-size:calc(12.5px*var(--fs));font-weight:650;cursor:pointer}
.pxg-again-m{width:24px}
.pxg-hl{position:relative;border-radius:12px;outline:2px solid var(--acc);outline-offset:5px;animation:pxg-hl 1.6s ease-in-out infinite}
@keyframes pxg-hl{0%,100%{outline-color:var(--acc)}50%{outline-color:color-mix(in srgb,var(--acc) 35%,transparent)}}

.pxg-fab-wrap{position:fixed;right:20px;bottom:20px;z-index:80}
.pxg-fab-wrap.enter .pxg-fab{animation:pxg-fab-in .8s cubic-bezier(.3,1.5,.5,1)}
@keyframes pxg-fab-in{0%{transform:translateY(40px) scale(.4);opacity:0}100%{transform:none;opacity:1}}
.pxg-fab{position:relative;display:grid;place-items:center;width:62px;height:62px;padding:7px 7px 5px;border-radius:50%;border:1px solid var(--line);background:var(--raised);box-shadow:var(--shadow-lg);cursor:pointer;transition:transform .2s}
.pxg-fab:hover{transform:translateY(-3px) scale(1.04)}
.pxg-fab:focus-visible{outline:3px solid var(--focus,var(--acc));outline-offset:3px}
.pxg-fab-badge{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e5484d;color:#fff;font-size:calc(11px*var(--fs));font-weight:700;display:grid;place-items:center;box-shadow:0 0 0 2px var(--raised)}
.pxg-fab-tip{position:absolute;right:72px;bottom:18px;white-space:nowrap;padding:6px 12px;border-radius:999px;background:var(--ink);color:var(--ink-fg);font-size:calc(12.5px*var(--fs));font-weight:600;opacity:0;transform:translateX(6px);transition:opacity .2s,transform .2s;pointer-events:none}
.pxg-fab-wrap:hover .pxg-fab-tip{opacity:1;transform:none}
.pxg-fab[aria-expanded=true]+.pxg-fab-tip{opacity:0}
.pxg-menu{position:absolute;right:0;bottom:76px;width:min(380px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 120px));overflow-y:auto;padding:8px;border-radius:20px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:hub-pop .22s cubic-bezier(.2,.8,.2,1);transform-origin:bottom right}
.pxg-menu-h{display:flex;align-items:center;gap:10px;padding:6px 8px 10px}
.pxg-menu-h div{display:flex;flex-direction:column}
.pxg-menu-m{width:54px;flex:none}
.pxg-menu>button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:10px 12px;border:0;border-radius:12px;background:transparent;color:var(--fg);font:inherit;font-size:calc(14px*var(--fs));text-align:left;cursor:pointer}
.pxg-menu>button:hover,.pxg-menu>button:focus-visible{background:var(--acc-soft)}
.pxg-menu>button small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.pxg-menu-x{padding:6px 8px;border-top:1px solid var(--line);margin-top:4px}
.pxg-menu-x .check{font-size:calc(13px*var(--fs))}
.pxg-toast{position:fixed;right:20px;bottom:96px;z-index:81;display:flex;align-items:center;gap:10px;width:min(360px,calc(100vw - 32px));padding:12px 40px 12px 10px;border-radius:20px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:hub-pop .3s cubic-bezier(.2,.8,.2,1);transition:opacity .25s,transform .25s}
.pxg-toast.off{opacity:0;transform:translateY(8px)}
.pxg-toast-m{width:64px;flex:none}
.pxg-toast p{font-size:calc(14px*var(--fs))}
@media (max-width:640px){
  .pxg-fab-wrap{right:12px;bottom:12px}
  .pxg-fab{width:54px;height:54px}
  .pxg-fab-tip{display:none}
  .pxg-toast{right:12px;bottom:76px}
}

.pxg-cl-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pxg-cl-h>span:first-child{margin-right:auto}
.pxg-cl-bar{display:block;flex:1 1 140px;max-width:260px;height:8px;border-radius:999px;background:var(--line);overflow:hidden}
.pxg-cl-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3fd8f5,var(--acc));transition:width .9s cubic-bezier(.2,.8,.2,1)}
.pxg-cl ol{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px}
.pxg-cl li{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:12px}
.pxg-cl li:not(.done):hover{background:var(--acc-soft)}
.pxg-cl-ck{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;border:2px solid var(--line);font-size:calc(12px*var(--fs));font-weight:700;color:var(--mut)}
.pxg-cl li.done .pxg-cl-ck{border-color:var(--ok);background:var(--ok);color:#fff}
.pxg-cl-t{flex:1;min-width:0;display:flex;flex-direction:column;font-size:calc(14px*var(--fs))}
.pxg-cl-t small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.pxg-cl li.done .pxg-cl-t b{text-decoration:line-through;color:var(--mut);font-weight:500}
.pxg-steps{display:flex;gap:16px;align-items:flex-start;margin-bottom:16px;animation:hub-pop .35s cubic-bezier(.2,.8,.2,1)}
.pxg-steps-m{width:86px;flex:none}
.pxg-steps-b{flex:1;min-width:0}
.pxg-steps-b>p{margin:0 0 8px}
.pxg-steps.min .pxg-cl ol,.pxg-steps.min .pxg-steps-b>p{display:none}
.pxg-steps.min .pxg-steps-m{width:44px}
.pxg-steps.min{align-items:center;padding-top:12px;padding-bottom:12px}
.pxg-next{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 0 0}
.pxg-next .btn{margin-left:auto}
body[data-mod] .pxg-cl-bar span{background:linear-gradient(90deg,color-mix(in srgb,var(--mod) 55%,var(--surface)),var(--mod))}
body[data-mod] .pxg-cl li:not(.done):hover{background:var(--mod-soft)}
body[data-mod] .crm-bfill{background:var(--mod)}
.pxg-steps-acts{display:flex;gap:4px;flex:none}
@media (min-width:1100px){.pxg-steps .pxg-cl ol{grid-template-columns:1fr 1fr;column-gap:12px}}
@media (max-width:640px){
  .pxg-steps{position:relative}
  .pxg-steps-m{display:none}
  .pxg-steps-b>p,.pxg-cl-h{padding-right:70px}
  .pxg-steps-acts{position:absolute;top:12px;right:10px}
  .pxg-cl li{flex-wrap:wrap}
  .pxg-cl-t{flex:1 1 calc(100% - 40px)}
  .pxg-cl li .btn{margin-left:36px}
}

/* Ilustrações dos roteiros do CRM: as 4 peças e a história de um negócio andando no funil. */
.pxg-pieces{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.pxg-pieces span{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 10px;min-width:86px;border-radius:14px;background:var(--acc-soft);font-size:calc(12px*var(--fs));color:var(--mut);text-align:center;opacity:0;animation:hub-pop .4s cubic-bezier(.3,1.4,.5,1) forwards}
.pxg-pieces span b{font-size:calc(14px*var(--fs));color:var(--fg)}
.pxg-pieces span i{font-style:normal;font-size:calc(20px*var(--fs))}
.pxg-pieces em{font-style:normal;color:var(--acc);font-weight:700;opacity:0;animation:hub-fade .3s forwards}
.pxg-pieces>:nth-child(2){animation-delay:.25s}.pxg-pieces>:nth-child(3){animation-delay:.4s}.pxg-pieces>:nth-child(4){animation-delay:.55s}
.pxg-pieces>:nth-child(5){animation-delay:.7s}.pxg-pieces>:nth-child(6){animation-delay:.85s}.pxg-pieces>:nth-child(7){animation-delay:1s}
.pxg-story{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;height:104px}
.pxg-story>div{border-radius:12px;background:var(--acc-soft);padding:6px;font-size:calc(11px*var(--fs));font-weight:650;color:var(--mut);text-align:center}
.pxg-story>div:last-of-type{background:var(--ok-soft);color:var(--ok)}
.pxg-story-card{position:absolute;left:0;top:30px;width:calc(25% - 4.5px);padding:7px 8px;border-radius:10px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow);font-size:calc(11.5px*var(--fs));line-height:1.3;animation:pxg-story 6s cubic-bezier(.5,0,.3,1) infinite}
.pxg-story-card b{display:block;font-size:calc(12px*var(--fs))}
@keyframes pxg-story{0%,14%{transform:translateX(0)}26%,40%{transform:translateX(calc(100% + 6px))}52%,66%{transform:translateX(calc(200% + 12px))}78%,100%{transform:translateX(calc(300% + 18px))}}
.pxg-drag{display:flex;gap:8px;align-items:center;font-size:calc(12.5px*var(--fs));color:var(--mut)}
.pxg-drag span{padding:6px 10px;border-radius:10px;background:var(--acc-soft)}
.pxg-drag span:first-child{animation:pxg-dragx 2.2s ease-in-out infinite;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--fg)}
@keyframes pxg-dragx{0%,20%{transform:none}60%,80%{transform:translateX(calc(100% + 14px)) rotate(3deg)}100%{transform:none}}
@media (prefers-reduced-motion:reduce){
  .pxg-m *,.pxg-layer,.pxg-layer *,.pxg-coach,.pxg-hl,.pxg-fab-wrap *,.pxg-menu,.pxg-toast,.pxg-steps,.pxg-art *{animation:none!important;transition:none!important}
  .pxg-pieces span,.pxg-pieces em,.pxg-w{opacity:1}
}

@media (prefers-reduced-motion:reduce){
  .nav-fly,.nav-fly a,body.nav-wide .rail,body.nav-wide .nav > a span,body.nav-wide .nav-gbtn > span,body.nav-wide .nav-toggle::after,body.nav-wide .rail .btn.icon::after{animation:none!important}
  .nav-toggle .nav-burger i{transition:none}
  .nav-gbtn:hover,.nav > a:hover{transform:none}
}

/* Ligações pelo WhatsApp (calls.js): o cartão da ligação fica por cima de tudo, no canto de baixo (portal e admin). */
.pxc{position:fixed;right:20px;bottom:20px;z-index:2147483000;display:flex;flex-direction:column;gap:10px;align-items:flex-end;pointer-events:none;max-width:calc(100vw - 32px)}
.pxc-card,.pxc-note{pointer-events:auto}
.pxc-card{display:flex;align-items:center;gap:12px;width:380px;max-width:100%;padding:14px 14px 14px 16px;border-radius:20px;background:var(--raised);color:var(--fg);
  border:1px solid var(--line2);box-shadow:0 18px 50px rgba(10,14,25,.28)}
.pxc-card.ring{border-color:var(--ok);animation:pxc-in .25s ease-out}
.pxc-card.on{border-color:var(--acc)}
.pxc-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;flex:none;background:var(--ok-soft);color:var(--ok)}
.pxc-card.on .pxc-ic{background:var(--acc-soft);color:var(--acc)}
.pxc-card.ring .pxc-ic{animation:pxc-pulse 1.2s ease-in-out infinite}
.pxc-ic svg{width:22px;height:22px}
.pxc-who{display:flex;flex-direction:column;min-width:0;flex:1}
.pxc-who b{font-size:calc(15px*var(--fs));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pxc-who small{color:var(--mut);font-size:calc(12px*var(--fs));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pxc-who em{font-style:normal;font-size:calc(13px*var(--fs));color:var(--fg2);margin-top:2px;font-variant-numeric:tabular-nums}
.pxc-act{display:flex;gap:8px;flex:none}
.pxc-b{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--line2);background:var(--surface);color:var(--fg);cursor:pointer;padding:0}
.pxc-b svg{width:20px;height:20px}
.pxc-b:hover{background:var(--surface2)}
.pxc-b.sel{background:var(--warn-soft,var(--surface2));color:var(--warn)}
.pxc-b.go{background:var(--ok);border-color:var(--ok);color:#fff}
.pxc-b.end{background:var(--bad);border-color:var(--bad);color:#fff}
.pxc-b:disabled{opacity:.4;cursor:not-allowed}
.pxc-b:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.pxc-note{margin:0;padding:10px 14px;border-radius:14px;background:var(--fg);color:var(--raised);font-size:calc(13px*var(--fs));max-width:380px;box-shadow:0 10px 30px rgba(10,14,25,.2)}
@keyframes pxc-in{from{transform:translateY(16px);opacity:0}}
@keyframes pxc-pulse{50%{transform:scale(1.12)}}
@media (max-width:760px){.pxc{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));align-items:stretch}.pxc-card,.pxc-note{width:auto;max-width:none}}
@media (prefers-reduced-motion:reduce){.pxc-card.ring,.pxc-card.ring .pxc-ic{animation:none}}

/* Anexo na conversa (wainbox.js): o arquivo escolhido aparece acima da resposta; arrastar um arquivo destaca a conversa. */
.wai-file{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-bottom:8px;border:1px solid var(--line2);border-radius:14px;background:var(--surface)}
.wai-file[hidden]{display:none}
.wai-file img{width:48px;height:48px;object-fit:cover;border-radius:10px;flex:none}
.wai-file-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:var(--acc-soft);font-size:calc(20px*var(--fs));flex:none}
.wai-file-name{display:flex;flex-direction:column;min-width:0;flex:1}
.wai-file-name b{font-size:calc(13px*var(--fs));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wai-clip{cursor:pointer}
.wai-drop{outline:2px dashed var(--acc);outline-offset:-6px}
.wai-call-btn{color:var(--ok);border-color:var(--ok-soft);background:var(--ok-soft);flex:none}
.wai-call-btn:hover{background:var(--ok);color:#fff}

/* Perfis e permissões: matriz área × nenhum/ver/editar */
.perm-grid td,.perm-grid th{text-align:center}
.perm-grid td:first-child,.perm-grid th:first-child{text-align:left}
.perm-grid .perm-group td{background:var(--surface2,var(--glass));font-weight:700;font-size:calc(13px*var(--fs));color:var(--fg2);text-transform:uppercase;letter-spacing:.04em}
.perm-grid input[type=radio]{width:18px;height:18px;accent-color:var(--acc)}

/* PraxSign (assets/sign.js, assinar.js, verificar.js) */
.ps-dhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ps-dhead h2{margin:0 0 4px}
.ps-note{margin:12px 0;padding:12px 14px;background:var(--surface2);border-radius:12px;white-space:pre-wrap}
.ps-events{list-style:none;padding:0;margin:8px 0;display:grid;gap:6px;font-size:calc(14px*var(--fs))}
.ps-signer{display:grid;grid-template-columns:1.2fr 1.4fr 1fr auto;gap:10px;align-items:end}
.ps-signer .field{margin:0}
.ps-src{border:0;padding:0;margin:0 0 12px;display:flex;gap:18px;flex-wrap:wrap}
.ps-src legend{font-weight:650;margin-bottom:8px}
.ps-text{max-height:58vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:18px 20px;background:var(--surface);font-size:calc(15px*var(--fs));line-height:1.6}
.ps-text h3{font-size:calc(15.5px*var(--fs));margin:18px 0 6px}
.ps-text p{margin:0 0 10px}
.ps-frame{width:100%;height:70vh;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ps-doc .actions{margin:10px 0 4px}
.ps-who{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}
.ps-who li{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.ps-sign{border-top:1px solid var(--line);padding-top:18px}
.ps-code{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.ps-page .mono,.ps-doc .mono{word-break:break-all}
@media (max-width:760px){
  .ps-signer{grid-template-columns:1fr;border-bottom:1px solid var(--line);padding-bottom:10px}
  .ps-frame{display:none}
}

/* Verificação em duas etapas (Minha conta e a tela obrigatória sem menu) */
body.mfa-setup #nav,body.mfa-setup #nav-toggle{display:none}
.mfa-steps{padding-left:20px;display:grid;gap:14px}
.mfa-qr{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:10px}
.mfa-qr img{background:#fff;border-radius:12px;padding:8px}
.mfa-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;list-style:none;padding:0;margin:10px 0}
.mfa-codes li{background:var(--surface2);border-radius:10px;padding:8px 10px;text-align:center}

/* Financeiro (assets/finance.js) */
.fin-tabs{max-width:100%}
.fin-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.fin-kpi{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.fin-kpi small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.fin-kpi strong{font-size:calc(22px*var(--fs))}
.fin-kpi.ok strong,.pos{color:var(--ok)}
.fin-kpi.bad strong,.neg{color:var(--bad)}
.fin-kpi.warn strong{color:var(--warn)}
.fin-list{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}
.fin-list li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:6px}
.fin-tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:10px}
.fin-tpl{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer}
.fin-tpl:has(input:checked){border-color:var(--acc,var(--lime));background:var(--surface2)}
.fin-tpl{margin:0;font-weight:550;color:var(--fg);min-height:52px}
.fin-tpl input[type=radio]{width:18px;height:18px;flex:none;padding:0;margin:0;border-radius:50%;accent-color:var(--acc,var(--lime))}
.fin-tpl span{min-width:0;line-height:1.3}
.fin-g{border:1px solid var(--line);border-radius:12px;padding:10px;margin:10px 0;display:grid;gap:8px}
.fin-g-h{display:grid;grid-template-columns:1.4fr .8fr 1.6fr auto;gap:8px;align-items:center}
.fin-g textarea{width:100%;box-sizing:border-box}
.fin-kind{display:flex;gap:16px;margin-bottom:10px}
.fin-chips{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.fin-chips button{border:1px solid var(--line2);background:var(--surface);color:var(--fg);border-radius:999px;padding:6px 12px;font:inherit;font-size:calc(13px*var(--fs));line-height:1.3;cursor:pointer}
.fin-chips button:hover{background:var(--surface2)}
.fin-chips button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
/* Plano de contas (2026-11-07): grade compacta de grupos, contas em linhas, busca e grupos recolhíveis (finance.js planView). */
.fpl-bar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-top:16px}
.fpl-search{flex:1 1 260px;max-width:420px;display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--raised);cursor:text}
.fpl-search:focus-within{border-color:var(--mod,var(--acc));box-shadow:var(--focus)}
.fpl-search svg{width:16px;height:16px;flex:none;fill:none;stroke:var(--mut);stroke-width:2;stroke-linecap:round}
.fpl-search input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;box-shadow:none;font:inherit;font-size:calc(14.5px*var(--fs));color:var(--fg)}
.fpl-off{margin:0;font-size:calc(13.5px*var(--fs))}
.fpl-sum{font-size:calc(13px*var(--fs));color:var(--mut)}
.fpl-act{display:flex;gap:8px;margin-left:auto}
.fpl-sec{margin-top:20px}
.fpl-sh{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:calc(12.5px*var(--fs));font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg2)}
.fpl-sh::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok)}
.fpl-sh.fpl-despesa::before{background:var(--bad)}
.fpl-sh small{font-size:calc(12px*var(--fs));font-weight:500;letter-spacing:0;text-transform:none;color:var(--mut)}
.fpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;align-items:start}
.fpl-g{border:1px solid var(--line);border-radius:12px;background:var(--raised);overflow:hidden}
.fpl-gh{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 6px;border-bottom:1px solid var(--line);background:var(--surface)}
.fpl-g.closed .fpl-gh{border-bottom:0}
.fpl-gt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.fpl-gt strong{font-size:calc(14.5px*var(--fs));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fpl-dre{font-size:calc(12px*var(--fs));color:var(--mut)}
.fpl-n{display:grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;background:var(--surface2);font-size:calc(12px*var(--fs));font-weight:700;color:var(--fg2);font-variant-numeric:tabular-nums}
.fpl-ic{display:grid;place-items:center;flex:none;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:none;color:var(--mut);cursor:pointer}
.fpl-ic:hover{background:var(--surface2);color:var(--fg)}
.fpl-ic svg,.fpl-pen{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fpl-tog svg{transition:transform .15s}
.fpl-g.closed .fpl-tog svg{transform:rotate(-90deg)}
.fpl-g.closed .fpl-list{display:none}
.fpl-list{list-style:none;margin:0;padding:4px 0}
.fpl-c{display:flex;align-items:center;gap:8px;width:100%;min-height:34px;padding:5px 12px;border:0;background:none;font:inherit;font-size:calc(14px*var(--fs));color:var(--fg);text-align:left;cursor:pointer}
.fpl-c:hover,.fpl-c:focus-visible{background:var(--surface2)}
.fpl-cn{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fpl-u{font-size:calc(12px*var(--fs));color:var(--mut);font-variant-numeric:tabular-nums;white-space:nowrap}
.fpl-pen{width:14px;height:14px;flex:none;color:var(--mut);opacity:0;transition:opacity .15s}
.fpl-c:hover .fpl-pen,.fpl-c:focus-visible .fpl-pen{opacity:1}
.fpl-row.off .fpl-cn{color:var(--mut);text-decoration:line-through}
.fpl-tag{padding:1px 7px;border-radius:999px;background:var(--surface2);font-size:calc(11px*var(--fs));color:var(--mut)}
.fpl-none{padding:6px 12px;font-size:calc(13px*var(--fs));color:var(--mut)}
.fpl-add{padding:6px 12px 8px;border:0;background:none;font:inherit;font-size:calc(13px*var(--fs));font-weight:600;color:var(--mod-ink,var(--acc));cursor:pointer}
.fpl-add:hover{text-decoration:underline}
.fpl-g mark{padding:0 1px;border-radius:3px;background:color-mix(in srgb,var(--mod,#e3a72f) 28%,transparent);color:inherit}
@media (max-width:760px){.fpl-act{margin-left:0}.fpl-search{max-width:none}.fpl-grid{grid-template-columns:1fr}.fpl-pen{opacity:1}}
@media (prefers-reduced-motion:reduce){.fpl-tog svg,.fpl-pen{transition:none}}
.fin-rep td,.fin-rep th{white-space:nowrap}
.fin-rep .fin-sec td{font-weight:700;background:var(--surface2)}
.fin-rep .fin-res td{font-weight:800;border-top:2px solid var(--line)}
.fin-rep .fin-ind{padding-left:22px;color:var(--fg2)}
.fin-chat{display:flex;flex-direction:column;gap:10px}
.fin-msgs{max-height:58vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px}
.fin-msg{max-width:78%;padding:10px 14px;border-radius:16px;background:var(--surface2)}
.fin-msg p{margin:0}
.fin-msg.me{align-self:flex-end;background:var(--acc-soft,var(--info-soft))}
.fin-done{list-style:none;padding:0;margin:8px 0 0;font-size:calc(13.5px*var(--fs));display:grid;gap:4px}
.fx-prop{margin-top:10px;padding:12px 14px;border-radius:14px;background:var(--raised);border:1px solid var(--line2);display:flex;flex-direction:column;gap:6px}
.fx-prop p{margin:0}
.fx-prop-st{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fx-adv-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.fin-in{display:flex;gap:8px;align-items:flex-end}
/* Anexos na conversa com o assessor (acoes.js attach): clipe, chips acima da caixa e nas mensagens, área de soltar. */
.pxf-clip{flex:none;align-self:flex-end;cursor:pointer;font-size:calc(16px*var(--fs));padding-inline:10px}
.pxf-bar,.pxf-msg{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}
.pxf-bar[hidden]{display:none}
.pxf-chip{display:inline-flex;align-items:center;gap:7px;max-width:260px;padding:5px 8px;border-radius:10px;background:var(--surface2);border:1px solid var(--line);font-size:calc(12.5px*var(--fs))}
.pxf-chip img{width:28px;height:28px;border-radius:6px;object-fit:cover;flex:none}
.pxf-chip > span{display:flex;flex-direction:column;min-width:0}
.pxf-chip strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.pxf-chip small{color:var(--mut)}
.pxf-chip.busy{opacity:.7}
.pxf-ic{font-size:calc(16px*var(--fs))}
.pxf-x{border:0;background:none;color:var(--mut);cursor:pointer;font-size:calc(16px*var(--fs));padding:0 2px;line-height:1}
.fin-chat.pxf-drop{outline:2px dashed var(--mod,var(--acc));outline-offset:-6px}
.fin-in textarea{flex:1}
.px-dock{position:fixed;right:20px;bottom:92px;z-index:950;width:min(420px,calc(100vw - 32px));height:min(600px,calc(100vh - 120px));display:flex;flex-direction:column;
  background:var(--raised);border:1px solid var(--line2);border-radius:18px;box-shadow:0 18px 48px rgba(16,18,32,.22);overflow:hidden}
.px-dock.min{height:auto}
.px-dock.min .px-dock-c{display:none}
.px-dock.drag{opacity:.92;user-select:none}
.px-dock-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 10px 10px 16px;border-bottom:1px solid var(--line);cursor:move;touch-action:none;background:var(--surface2)}
.px-dock-h strong{font-size:calc(14px*var(--fs))}
.px-dock-b{display:flex;gap:4px}
.px-dock-b button{width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--fg);font:inherit;font-size:calc(18px*var(--fs));line-height:1;cursor:pointer}
.px-dock-b button:hover{background:var(--surface3)}
.px-dock-b button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.px-dock-c{flex:1;min-height:0;display:flex}
.px-dock .fin-chat{flex:1;min-height:0;margin:0;border:0;border-radius:0;box-shadow:none;background:transparent;padding:12px}
.px-dock .fin-msgs{flex:1;min-height:0;max-height:none}
.px-dock .fin-msg{max-width:88%}
@media (max-width:640px){.px-dock{left:8px !important;right:8px !important;top:auto !important;bottom:8px !important;width:auto;height:min(70vh,560px)}.px-dock-h{cursor:default}}
@media (max-width:760px){ .fin-g-h{grid-template-columns:1fr} .fin-msg{max-width:92%} }
/* Fiscal (assets/fiscal.js): reaproveita os .fin-* do Financeiro. */
.fx-fs{border:0;padding:0;margin:0;min-width:0}
.fx-cnpj{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.fx-cnpj .field{flex:0 1 260px;margin:0}
.fx-month{margin:0 0 12px}
.fx-month input{width:auto;max-width:220px}
.fx-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fx-filters > select,.fx-filters > input{width:auto;flex:0 1 200px;min-width:0}
.fx-filters > input[name=q]{flex:1 1 240px}
.fx-parties{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.fx-parties p{margin:4px 0 0}
.fx-total{font-size:calc(20px*var(--fs))}
.fx-chave{word-break:break-all;margin-top:10px}
.fx-taxes{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.fx-taxes li{border:1px solid var(--line);border-radius:10px;padding:6px 10px;display:flex;flex-direction:column;background:var(--raised)}
.fx-taxes small{color:var(--mut);font-size:calc(12px*var(--fs))}
.fx-info{white-space:pre-line;color:var(--fg2)}
.fx-opts{display:grid;gap:6px;max-height:280px;overflow-y:auto}
.fx-res li{align-items:flex-start}
.fx-sub{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}
.fx-sub button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 14px;font:inherit;font-size:calc(13.5px*var(--fs));cursor:pointer;color:var(--fg)}
.fx-sub button[aria-selected=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.fx-rq{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.fx-rq li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;background:var(--raised)}
.fx-rq li .mut{grid-column:1}
.fx-rq li .badge{grid-column:2;grid-row:1 / span 2}
.fx-thread{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.fx-thread .fin-msg p + p{margin-top:4px}
/* Minhas empresas (portal): um login, várias empresas */
.cli-cos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.cli-co.on{border-color:var(--acc,var(--lime))}
.cli-co h2{margin:0;font-size:calc(17px*var(--fs))}
.cli-co-l{list-style:none;padding:0;margin:10px 0;display:grid;gap:4px;font-size:calc(14px*var(--fs))}
.cli-co-l .warn{color:var(--warn);font-weight:600}
.cli-co-l .bad{color:var(--bad);font-weight:600}
.fx-checks{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}
.fx-checks li.ok span{color:var(--ok);font-weight:700}
.fx-checks li.no span{color:var(--bad);font-weight:700}
.fx-embar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 8px}
.fx-acts{white-space:nowrap}
.fx-rstate{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}
.fx-rstate > div:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;flex:1 1 320px}
.fx-rkpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.fx-ropts{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px 24px;padding-top:10px;border-top:1px solid var(--line)}
.fx-ropts .switch{font-size:calc(13.5px*var(--fs))}
button.fin-kpi{font:inherit;color:inherit;text-align:left;cursor:pointer}
button.fin-kpi:hover{border-color:var(--line2)}
button.fin-kpi:focus-visible{box-shadow:var(--focus);outline:0}
.fx-recv td:first-child{width:1%}
.fx-acts .btn{margin:2px}
.fx-tk{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;font:inherit;cursor:pointer;color:var(--fg)}
.fo-x{display:flex;gap:6px;align-items:center}
.fo-x input{width:80px}
.fx-items input{width:100%;min-width:0;padding:6px 8px}
.fx-items td{padding:4px 6px}
.fx-items .fx-w4{max-width:60px}.fx-items .fx-w6{max-width:80px}.fx-items .fx-w8{max-width:110px}
.fx-sum{margin-left:auto}
.fx-tips{margin:0}

/* ---------- PDV: frente de caixa em tela cheia (/pdv, assets/pdv-app.js) ---------- */
body.pdv-body{min-height:100vh;margin:0;display:flex;flex-direction:column;background:var(--page);color:var(--fg)}
.pdv-top{display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--raised);border-bottom:1px solid var(--line);flex-wrap:wrap}
.pdv-brand{display:flex;align-items:center;gap:10px;min-width:0}
.pdv-brand div{display:flex;flex-direction:column;min-width:0}
.pdv-brand strong{font-size:calc(16px*var(--fs));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdv-brand small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.pdv-status{flex:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:calc(13px*var(--fs));color:var(--fg2);min-width:0}
.pdv-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;background:var(--ok)}
.pdv-dot.off{background:var(--warn)}
.pdv-chip{border:1px solid var(--line);background:var(--surface2);color:var(--fg);border-radius:999px;padding:3px 10px;font:inherit;font-size:calc(12.5px*var(--fs));cursor:pointer}
.pdv-chip.err{border-color:var(--bad);color:var(--bad);background:var(--bad-soft)}
.pdv-topacts{display:flex;gap:6px;flex-wrap:wrap}
.pdv-main{flex:1;display:flex;flex-direction:column;min-height:0}
.pdv-pad{padding:24px}
.pdv-center{max-width:520px;width:calc(100% - 32px);margin:40px auto;box-sizing:border-box}
.pdv-center h1{margin:0 0 4px;font-size:calc(24px*var(--fs))}
.pdv-center .btn.big{min-height:52px;font-size:calc(16px*var(--fs));padding:0 28px}
.pdv-terms{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}
.pdv-term{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--raised);color:var(--fg);font:inherit;cursor:pointer;text-align:left}
.pdv-term:hover,.pdv-term:focus-visible{border-color:var(--acc);box-shadow:var(--focus);outline:none}
.pdv-term small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.pdv-terms>p{grid-column:1/-1;margin:0}
.pdv-sell{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;padding:16px;min-height:0}
.pdv-left{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}
.pdv-search{position:relative}
.pdv-search input{font-size:calc(18px*var(--fs));padding:14px 18px;min-height:56px;background:var(--raised)}
.pdv-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;background:var(--raised);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);overflow:hidden}
.pdv-results button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 16px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--fg);font:inherit;text-align:left;cursor:pointer}
.pdv-results button:last-child{border-bottom:0}
.pdv-results button:hover,.pdv-results button:focus{background:var(--acc-soft);outline:none}
.pdv-results small,.pdv-items small{display:block;color:var(--mut);font-size:calc(12px*var(--fs));font-weight:400}
.pdv-cart{flex:1;overflow:auto;background:var(--raised);border:1px solid var(--line);border-radius:var(--r);min-height:200px}
.pdv-items{width:100%;border-collapse:collapse;font-size:calc(15px*var(--fs))}
.pdv-items th{position:sticky;top:0;background:var(--surface2);text-align:left;font-size:calc(12.5px*var(--fs));color:var(--mut);font-weight:600;padding:8px 10px}
.pdv-items td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:middle}
.pdv-items .num,.pdv-close .num{text-align:right;white-space:nowrap}
.pdv-items tbody tr:first-child{background:var(--acc-soft)}
.pdv-qty{width:76px;text-align:right;padding:6px 8px;border-radius:10px}
.pdv-empty{display:grid;place-items:center;height:100%;min-height:200px;color:var(--mut);text-align:center;padding:20px}
.pdv-right{display:flex;flex-direction:column;gap:10px;min-width:0}
.pdv-sum{background:var(--raised);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.pdv-line{display:flex;justify-content:space-between;gap:10px;padding:3px 0;color:var(--fg2);font-size:calc(14.5px*var(--fs))}
.pdv-total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}
.pdv-total strong{font-size:calc(34px*var(--fs));letter-spacing:-.02em}
.pdv-total strong.ok{color:var(--ok)}
.pdv-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pdv-pay{min-height:64px;font-size:calc(19px*var(--fs))}
kbd{display:inline-block;font:inherit;font-size:calc(11px*var(--fs));font-weight:700;padding:1px 6px;border-radius:6px;border:1px solid currentColor;opacity:.6}
.pdv-flash{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:1000;background:var(--ink);color:var(--ink-fg);padding:12px 20px;border-radius:999px;box-shadow:var(--shadow-lg);font-weight:600;max-width:calc(100% - 32px)}
.pdv-dlg{width:min(560px,calc(100% - 32px))}
.pdv-paydlg{width:min(820px,calc(100% - 32px))}
.pdv-paygrid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}
.pdv-methods{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.pdv-m{display:flex;align-items:center;gap:8px;min-height:50px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--raised);color:var(--fg);font:inherit;font-weight:600;cursor:pointer;text-align:left}
.pdv-m[aria-pressed=true]{border-color:var(--acc);background:var(--acc-soft);color:var(--acc)}
.pdv-paid{background:var(--surface2);border-radius:var(--r);padding:14px}
.pdv-pays{list-style:none;margin:0;padding:0}
.pdv-pays li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0}
.pdv-nfce{margin-top:12px;font-weight:500}
.pdv-pix{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.pdv-pixpayer{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:4px 12px;margin:8px 0}.pdv-pixpayer>p{grid-column:1/-1;margin:0}
.pdv-pix img{border-radius:12px;background:#fff;padding:6px}
.pdv-change{display:flex;justify-content:space-between;align-items:baseline;background:var(--ok-soft);color:var(--ok);border-radius:var(--r);padding:14px 18px;margin-bottom:10px}
.pdv-change strong{font-size:calc(32px*var(--fs))}
.pdv-qlist{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.pdv-qlist li{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:var(--r-sm)}
.pdv-slist{display:grid;gap:6px;max-height:60vh;overflow:auto}
.pdv-srow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm)}
.pdv-srow small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdv-srow.off{opacity:.6}
.pdv-close{width:100%;border-collapse:collapse;margin:10px 0}
.pdv-close th,.pdv-close td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left}
.pdv-close input{width:120px;text-align:right;padding:7px 10px}
.pdv-keys{list-style:none;padding:0;display:grid;gap:6px}
.pdv-print{display:none}
@media (max-width:900px){ .pdv-sell{grid-template-columns:1fr;padding:10px} .pdv-cart{min-height:160px} .pdv-paygrid{grid-template-columns:1fr} }
@media (max-width:560px){ .pdv-top{padding:8px 10px} .pdv-topacts .btn{min-height:36px;padding:0 10px;font-size:calc(13px*var(--fs))} .pdv-total strong{font-size:calc(28px*var(--fs))} .pdv-items{font-size:calc(14px*var(--fs))} }
/* Cupom: só ele sai na impressora (bobina de 80 mm; 58 mm também cabe). */
@media print{
  @page{size:80mm auto;margin:3mm}
  body.pdv-body>*:not(.pdv-print),body.pdv-body dialog{display:none!important}
  body.pdv-body{background:#fff;color:#000}
  .pdv-print{display:block!important;font:11px/1.35 ui-monospace,Menlo,Consolas,monospace;color:#000;width:74mm}
  .pdv-print p{margin:0 0 6px}
  .pdv-print .c{text-align:center}
  .pdv-print .r,.pdv-print td.r{text-align:right}
  .pdv-print table{width:100%;border-collapse:collapse;margin-bottom:6px;font:inherit}
  .pdv-print td{padding:0;vertical-align:top}
  .pdv-print .k{word-break:break-all}
}
.fx-methods{display:flex;flex-wrap:wrap;gap:6px 22px;margin:6px 0 10px}
.pdv-acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap}
.pdv-point{display:flex;gap:14px;align-items:center;background:var(--acc-soft);border-radius:var(--r);padding:14px}
.pdv-spin{width:28px;height:28px;flex:none;border-radius:50%;border:3px solid var(--line2);border-top-color:var(--acc);animation:pdvspin 0.9s linear infinite}
@keyframes pdvspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){ .pdv-spin{animation:none;border-top-color:var(--line2)} }
/* Acessibilidade (portal, Ajustes): tamanho do texto. Cada "A" mostra o próprio tamanho, fixo (não acompanha o --fs). */
.a11y-sizes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:6px}
.a11y-size{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;min-height:112px;padding:12px 6px;border-radius:var(--r-lg,14px);border:1.5px solid var(--line);background:var(--surface);color:var(--fg);font:inherit;cursor:pointer;text-align:center}
.a11y-size span{font-weight:700;line-height:1;color:var(--fg)}
.a11y-s0 span{font-size:20px}.a11y-s1 span{font-size:26px}.a11y-s2 span{font-size:32px}.a11y-s3 span{font-size:38px}.a11y-s4 span{font-size:46px}
.a11y-size strong{font-size:calc(13.5px*var(--fs));margin-top:8px}
.a11y-size small{font-size:calc(12px*var(--fs));color:var(--mut)}
.a11y-size:hover{border-color:var(--acc,#1F62FF)}
.a11y-size[aria-pressed=true]{border-color:var(--acc,#1F62FF);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc,#1F62FF) 22%,transparent)}
.a11y-size:focus-visible{outline:2px solid var(--acc,#1F62FF);outline-offset:2px}
.a11y-prev{padding:14px 16px;border-radius:var(--r-lg,14px);background:var(--surface);border:1px dashed var(--line)}
.a11y-prev p{margin:0 0 6px}
@media (max-width:560px){.a11y-sizes{grid-template-columns:repeat(3,minmax(0,1fr))}.a11y-size{min-height:96px}}

/* Revisão das telas (2026-11-03) */
.ai-dlg .actions{position:sticky;bottom:-22px;margin:16px -22px -22px;padding:12px 22px;background:var(--raised);border-top:1px solid var(--line);z-index:2}
.empty .actions{justify-content:center}
@media (max-width:960px){ .hub-mods a span{text-align:center} }
@media (max-width:900px){
  .crm-agflow{flex-direction:column;align-items:stretch}
  .crm-agflow em{align-self:center;transform:rotate(90deg);line-height:1}
  .crm-agstep{min-width:0}
}
@media (max-width:560px){
  .pdv-items th:first-child,.pdv-items td:first-child{display:none}
  .pdv-items td,.pdv-items th{padding:6px}
  .pdv-items input{width:56px}
  .pdv-srow{grid-template-columns:minmax(0,1fr) auto}
  .pdv-srow > :nth-child(n+3){grid-column:1/-1;justify-self:end}
}
/* Abas da tela no celular: rolam de lado; a borda esmaece para mostrar que há mais. */
@media (max-width:760px){ .tabs{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent);scroll-snap-type:x proximity} .tabs button,.tabs a{scroll-snap-align:start} }
.a11y-themes{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
/* Admin (revisão 2026-11-03) */
.msg > * + *{margin-top:4px}.msg > p{margin:0}
.filters > .row{flex:1 1 100%}
#wa-cfg > .actions{grid-column:1/-1}
@media (max-width:960px){
  .shell{grid-template-rows:auto 1fr;align-content:start}
  .nav .nav-fly a span{display:inline}
}
.hub-prices input{min-width:110px}
.audit-detail{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip .nocal{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--warn);margin-left:2px;vertical-align:middle}
.au-go{align-self:flex-end;flex:none}
/* Assessor de uma solução ainda não contratado (Financeiro, Fiscal, Gestão de projetos): convite para Funcionários digitais. */
.hire-card{display:flex;gap:18px;align-items:flex-start;max-width:760px}
.hire-card h2{margin:0 0 6px}
.hire-ic{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:calc(24px*var(--fs));background:var(--acc-soft, var(--surface2))}
@media (max-width:560px){.hire-card{flex-direction:column}}
/* Gestão de projetos (portal): resumo com o anel de progresso, próximos passos, atividades por fase e a revisão das sugestões. */
.gp-alert a{font-weight:600}
.gp-sum{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.gp-sum-kpis{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr));gap:14px 22px;margin:0}
.gp-sum-kpis dt{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.gp-sum-kpis dd{margin:2px 0 0;font-weight:700;font-size:calc(16px*var(--fs))}
.gp-sum-kpis dd.neg,.gp-h.neg,.gp-phase .neg{color:var(--bad, #d64545)}
.gp-h{font-size:calc(13px*var(--fs));margin:14px 0 4px}
.gp-next{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.gp-next li{display:flex;gap:10px;align-items:flex-start}
.gp-dot{flex:none;width:10px;height:10px;border-radius:50%;margin-top:6px;background:var(--line)}
.gp-dot.doing{background:var(--acc)}.gp-dot.done{background:var(--ok, #1f9d55)}.gp-dot.late{background:var(--bad, #d64545)}
.gp-acthead{gap:12px}
.gp-phase td{background:var(--surface2);padding-top:10px;padding-bottom:10px}
.gp-acts td.nowrap input[type=date]{width:auto;display:inline-block}
.gp-prev{display:flex;flex-direction:column;gap:6px;max-height:min(46vh,420px);overflow:auto;margin-top:12px;padding:4px}
.gp-prev-row{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:12px;cursor:pointer}
.gp-prev-row:has(input:not(:checked)){opacity:.55}
.gp-prev-row span{display:flex;flex-direction:column;gap:2px}
@media (max-width:760px){.gp-sum{gap:16px;flex-direction:column;align-items:stretch}.gp-sum-ring{align-self:center}.gp-acthead{flex-direction:column;align-items:stretch}
  table.m-cards tr.gp-phase{background:var(--surface2);border:0}table.m-cards tr.gp-phase td{justify-content:flex-start;background:none}}
/* Página do cliente da Gestão (/p/<token>): progresso, números, próximos passos e o cronograma por fase. */
.ac-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.ac-hero .ring-fg{stroke:var(--oq-brand,var(--acc))}
.ac-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:10px;margin:14px 0 0}
.ac-kpis div{padding:10px 14px;border-radius:14px;background:var(--surface2)}
.ac-kpis dt{color:var(--mut);font-size:calc(12px*var(--fs))}
.ac-kpis dd{margin:2px 0 0;font-weight:700}
.ac-acts li.late .ac-dot{border-color:var(--bad, #d64545);background:var(--bad-soft, #fde8e8)}
.ac-rm{margin:6px 0 14px;overflow-x:auto}
.ac-phase{border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin-top:8px}
.ac-phase summary{cursor:pointer;list-style:none;display:flex;gap:8px;align-items:center}
.ac-phase summary::-webkit-details-marker{display:none}
.ac-phase summary::before{content:"›";display:inline-block;transition:transform .2s;color:var(--mut)}
.ac-phase[open] summary::before{transform:rotate(90deg)}
.ac-phase .ac-acts{margin-top:10px}
@media (max-width:560px){.ac-hero{flex-direction:column-reverse}}
/* ---------- Funcionários digitais (#ia): cores por grupo, carrossel da equipe e a escolha do plano ---------- */
.ai-page{--g-atendimento:#1f62ff;--g-vendas:#7c4dff;--g-assessores:#0aa58f;--k-blue:#1f62ff;--k-green:#14a05a;--k-amber:#e08a00;--k-violet:#7c4dff}
.ai-wallet{position:relative;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,#3fd8f5 12%,var(--raised)) 0%,var(--raised) 45%,color-mix(in srgb,#1f62ff 10%,var(--raised)) 100%);border-color:color-mix(in srgb,#1f62ff 22%,var(--line))}
.ai-wallet::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,#3fd8f5,#1f62ff)}
.ai-wallet .ai-big strong{background:linear-gradient(90deg,#1f62ff,#0bb3d9);-webkit-background-clip:text;background-clip:text;color:transparent}
.ai-wallet .ai-bar span{background:linear-gradient(90deg,#3fd8f5,#1f62ff)}
.ai-wallet .ai-bar.warn span{background:var(--warn)}.ai-wallet .ai-bar.bad span{background:var(--bad)}
.ai-page .btn.primary{background:#1f62ff;border-color:#1f62ff;color:#fff}
.ai-page .btn.primary:hover{background:#174fd6;border-color:#174fd6}
.ai-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:1100px){.ai-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ai-kpis .card{margin:0;padding:16px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:12px;row-gap:2px;align-items:center}
.ai-kpis .card > small{grid-column:2}.ai-kpis .card > strong{grid-column:2;font-size:calc(26px*var(--fs));letter-spacing:-.02em;line-height:1.1}.ai-kpis .card > span.small{grid-column:1/-1;margin-top:4px}
.ai-kic{grid-row:1/3;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:var(--k);background:color-mix(in srgb,var(--k) 14%,transparent)}
.ai-kic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ai-kpis .k-blue{--k:var(--k-blue)}.ai-kpis .k-green{--k:var(--k-green)}.ai-kpis .k-amber{--k:var(--k-amber)}.ai-kpis .k-violet{--k:var(--k-violet)}
.ai-eco .ai-big strong{color:var(--k-green)}
.ai-col span{background:linear-gradient(180deg,#3fd8f5,#1f62ff)}
/* equipe em carrossel (todos os tamanhos de tela) */
.ai-team-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.ai-team-head h2{margin:0}.ai-team-head p{margin:4px 0 0}
.ai-car-nav{display:flex;gap:8px}
.ai-car-nav[hidden]{display:none}
.ai-car-nav .btn{width:40px;height:40px;border-radius:50%}
.ai-car-nav .btn:disabled{opacity:.35}
.ai-team-filter{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.ai-team-filter button{border:1px solid var(--line);background:var(--raised);color:var(--fg2);border-radius:999px;padding:7px 14px;font:inherit;font-size:calc(13px*var(--fs));font-weight:600;cursor:pointer}
.ai-team-filter button span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--surface2);font-size:calc(11.5px*var(--fs))}
.ai-team-filter button[aria-pressed=true]{background:#1f62ff;border-color:#1f62ff;color:#fff}
.ai-team-filter button[aria-pressed=true] span{background:rgba(255,255,255,.22)}
.ai-team{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:4px;padding:10px 4px 18px;margin:0 -4px;scrollbar-width:thin;overscroll-behavior-x:contain}
.ai-team:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:var(--r-lg, 18px)}
.ai-person{--g:var(--g-atendimento);flex:0 0 clamp(250px,calc((100% - 48px)/4),300px);scroll-snap-align:start;margin:0;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:16px 16px 18px;overflow:hidden;border-color:color-mix(in srgb,var(--g) 18%,var(--line));transition:transform .2s ease,box-shadow .2s ease}
.ai-person[hidden]{display:none}
.ai-person.g-vendas{--g:var(--g-vendas)}.ai-person.g-assessores{--g:var(--g-assessores)}
.ai-person::before{content:"";position:absolute;inset:0 0 auto 0;height:96px;background:linear-gradient(160deg,color-mix(in srgb,var(--g) 22%,transparent),color-mix(in srgb,var(--g) 6%,transparent));z-index:0}
.ai-person > *{position:relative;z-index:1}
.ai-person:hover{transform:translateY(-3px);box-shadow:0 14px 32px color-mix(in srgb,var(--g) 20%,transparent)}
.ai-person-top{display:flex;justify-content:space-between;align-items:center;width:100%;gap:8px}
.ai-person-grp{font-size:calc(11.5px*var(--fs));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--g)}
.ai-person-face{width:112px;height:112px;flex:none}
.ai-person-face .ai-photo img{box-shadow:0 0 0 4px var(--raised),0 0 0 6px color-mix(in srgb,var(--g) 45%,transparent)}
.ai-person.off .ai-person-face .ai-photo img{box-shadow:0 0 0 4px var(--raised),0 0 0 6px var(--line2)}
.ai-person.off .ai-person-face{opacity:.82}
.ai-person-body{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;flex:1}
.ai-person-body h3{margin:0;font-size:calc(20px*var(--fs));letter-spacing:-.01em}
.ai-person-role{margin:0;font-weight:600;color:var(--g);font-size:calc(13.5px*var(--fs))}
.ai-person-hint{margin:2px 0 0;color:var(--mut);font-size:calc(13px*var(--fs));line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(3*1.45em)}
.ai-person-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%;margin:auto 0 0;padding:12px 0 0;border-top:1px dashed var(--line2)}
.ai-person-stats div{display:flex;flex-direction:column;justify-content:space-between;gap:2px}
.ai-person-stats dt{font-size:calc(11px*var(--fs));color:var(--mut)}
.ai-person-stats dd{margin:0;font-weight:700;font-size:calc(17px*var(--fs))}
.ai-person-act{display:flex;flex-direction:column;gap:8px;width:100%;padding-top:8px}
.ai-person-act > .btn{width:100%;justify-content:center}
.ai-person-sub{display:flex;justify-content:center;gap:18px;min-height:22px}
.ai-link{border:0;background:none;padding:2px 0;font:inherit;font-size:calc(13px*var(--fs));font-weight:600;color:var(--fg2);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:3px}
.ai-link:hover{color:var(--g)}
.ai-link[data-on="0"]:hover{color:var(--bad)}
.ai-dots{display:flex;justify-content:center;gap:6px;min-height:8px}
.ai-dots span{width:8px;height:8px;border-radius:999px;background:var(--line2);transition:width .2s,background .2s}
.ai-dots span.on{width:22px;background:#1f62ff}
@media (max-width:560px){.ai-person{flex-basis:84%}.ai-car-nav{display:none}
  .ai-team-filter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}.ai-team-filter button{flex:none}
  .ai-kpis .card{padding:12px;column-gap:10px}.ai-kic{width:34px;height:34px;border-radius:11px}.ai-kic svg{width:18px;height:18px}.ai-kpis .card > strong{font-size:calc(22px*var(--fs))}}
@media (prefers-reduced-motion:reduce){.ai-person,.ai-dots span{transition:none}.ai-person:hover{transform:none}}
/* modal dos planos: abas por tipo e cartões que se ajustam à tela */
.ai-plans-dlg{max-width:920px}
.ai-pd-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ai-pd-head h2{margin:0 0 4px}
.ai-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:8px;margin:16px 0 6px;padding:5px;border-radius:18px;background:var(--surface2)}
.ai-tiers button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;border:0;border-radius:14px;background:none;font:inherit;color:var(--fg2);cursor:pointer;text-align:left}
.ai-tiers button strong{font-size:calc(14.5px*var(--fs))}
.ai-tiers button small{font-size:calc(12px*var(--fs));color:var(--mut)}
.ai-tiers button[aria-selected=true]{background:var(--raised);color:var(--fg);box-shadow:var(--shadow)}
.ai-tiers button[aria-selected=true] strong{color:#1f62ff}
.ai-tier-pane[hidden]{display:none}
.ai-tier-tip{margin:10px 2px 12px;color:var(--fg2);font-size:calc(13.5px*var(--fs))}
.ai-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(190px,100%),1fr));gap:12px}
.ai-pick-card{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 16px 16px;border:1px solid var(--line);border-radius:18px;background:var(--raised);transition:border-color .15s,box-shadow .15s}
.ai-pick-card:hover{border-color:color-mix(in srgb,#1f62ff 45%,var(--line));box-shadow:0 10px 24px color-mix(in srgb,#1f62ff 14%,transparent)}
.ai-pick-card.on{border-color:var(--ok);box-shadow:0 0 0 2px color-mix(in srgb,var(--ok) 35%,transparent)}
.ai-pick-badge{position:absolute;top:12px;right:12px}
.ai-pick-size{margin:0;color:var(--fg2);font-size:calc(13px*var(--fs))}
.ai-pick-size strong{display:block;font-size:calc(22px*var(--fs));color:var(--fg);letter-spacing:-.01em}
.ai-pick-price{margin:8px 0 0;display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 4px}
.ai-pick-price strong{font-size:calc(24px*var(--fs));letter-spacing:-.02em;color:#1f62ff}
.ai-pick-price span{color:var(--mut);font-size:calc(13px*var(--fs))}
.ai-pick-per,.ai-pick-top{margin:0;color:var(--mut);font-size:calc(12.5px*var(--fs))}
.ai-pick-card .btn{margin-top:auto;width:100%;justify-content:center}
.ai-pick-card > .btn{margin-top:12px}
.ai-pd-foot{margin:16px 0 0}
@media (max-width:560px){.ai-pick{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ai-pick-card{padding:14px 12px}.ai-pick-size strong{font-size:calc(19px*var(--fs))}.ai-pick-price strong{font-size:calc(20px*var(--fs))}.ai-pick-badge{position:static;align-self:flex-start;margin-bottom:4px}}
.ai-team > .ai-person{margin:0}
.ai-plans-dlg .btn.primary{background:#1f62ff;border-color:#1f62ff;color:#fff}
.ai-plans-dlg .btn.primary:hover{background:#174fd6;border-color:#174fd6}
@media (max-width:560px){.ai-tiers{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px}.ai-tiers button{padding:8px;align-items:center;text-align:center}.ai-tiers button strong{font-size:calc(12.5px*var(--fs))}.ai-tiers button small{display:none}}
/* PDV · frente de loja: entrada por PIN, modos do aparelho, promoções no carrinho, consulta de preço/verificador e devolução. */
.pdv-modes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:14px}
.pdv-modes p{width:100%;margin:0}
.pdv-staff{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}
.pdv-pin{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:10px}
.pdv-pin input{max-width:220px;text-align:center;font-size:calc(28px*var(--fs));letter-spacing:.5em;font-weight:700}
.pdv-pad{display:grid;grid-template-columns:repeat(3,72px);gap:8px}
.pdv-pad .btn{height:56px;font-size:calc(20px*var(--fs));justify-content:center}
.pdv-promo{display:block;color:var(--ok);font-weight:600}
.pdv-pc{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:16px;background:var(--surface2);margin:10px 0}
.pdv-pc-name{font-size:calc(18px*var(--fs))}
.pdv-pc-price{margin:6px 0 0;font-size:calc(34px*var(--fs));font-weight:800;letter-spacing:-.02em;color:#1f62ff}
.pdv-pc-price small{font-size:calc(14px*var(--fs));color:var(--mut);font-weight:600;margin-left:4px}
.pdv-pc-promo{margin:0;font-weight:700;color:var(--ok)}
.pdv-pc-inst{margin:0;font-weight:600}
.pdv-verif{max-width:720px;margin:6vh auto;text-align:center;display:flex;flex-direction:column;gap:16px;padding:0 16px}
.pdv-verif h1{font-size:calc(40px*var(--fs));margin:0}
.pdv-verif input{font-size:calc(22px*var(--fs));text-align:center}
.pdv-verif .pdv-pc{text-align:left;padding:24px}
.pdv-verif .pdv-pc-price{font-size:calc(56px*var(--fs))}
.pdv-verif-res{min-height:220px}
.pdv-refund{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.pdv-refund legend{font-weight:600;margin-bottom:6px}
#pdv-print .pc-big{display:block;font-size:24px;letter-spacing:.08em}
.pdv-rule{border:1px solid var(--line);border-radius:16px;padding:12px 14px 14px;margin:0;display:flex;flex-direction:column;gap:6px}
.pdv-rule legend{font-weight:700;padding:0 6px}

/* ---------- Identidade de cada solução (2026-11-04) ----------
   body[data-mod] (cliente.js route / admin.js router) = a solução aberta. Cor média (--mod), texto (--mod-ink) e o fundo suave
   (--mod-t1 → --mod-t2) valem para o trilho, o menu da solução, a faixa do topo da tela, as abas e o Tino. Tons suaves de propósito. */
[data-mod]{--mod-soft:color-mix(in srgb,var(--mod) 13%,var(--surface));--mod-t1:color-mix(in srgb,var(--mod) 9%,var(--surface));--mod-t2:color-mix(in srgb,var(--mod) 22%,var(--surface))}
[data-mod=whatsapp]{--mod:#34b27b;--mod-ink:#1f7a52;--mod-on:#fff}
[data-mod=crm]{--mod:#8b6fe0;--mod-ink:#5a43b0;--mod-on:#fff}
[data-mod=pdv]{--mod:#f08a4b;--mod-ink:#b4541c;--mod-on:#fff}
[data-mod=financeiro]{--mod:#2f9e8f;--mod-ink:#1d6b61;--mod-on:#fff}
[data-mod=fiscal]{--mod:#e3a72f;--mod-ink:#8a5d00;--mod-on:#3d2600}
[data-mod=gestao]{--mod:#6b78e5;--mod-ink:#3c47b5;--mod-on:#fff}
[data-mod=sign]{--mod:#e06a8c;--mod-ink:#a8395a;--mod-on:#fff}
[data-mod=ia]{--mod:#2f7cf6;--mod-ink:#1a50d6;--mod-on:#fff}
[data-mod=loja]{--mod:#2fa9c7;--mod-ink:#1b6f86;--mod-on:#fff}
[data-mod=agenda]{--mod:#e2615a;--mod-ink:#a8352f;--mod-on:#fff}
[data-mod=juridico],[data-mod=juridico-parceiro]{--mod:#8a9a3c;--mod-ink:#56621f;--mod-on:#fff}
[data-mod=contabil]{--mod:#4f8fbf;--mod-ink:#2c5f86;--mod-on:#fff}
[data-mod=consultoria]{--mod:#c0803a;--mod-ink:#7f4f1a;--mod-on:#fff}
[data-mod=remoto]{--mod:#b45fd0;--mod-ink:#7d3399;--mod-on:#fff}
:root[data-theme=dark] [data-mod=whatsapp]{--mod-ink:#5fd19d}
:root[data-theme=dark] [data-mod=crm]{--mod-ink:#a993f0}
:root[data-theme=dark] [data-mod=pdv]{--mod-ink:#f7a774}
:root[data-theme=dark] [data-mod=financeiro]{--mod-ink:#6cc9bb}
:root[data-theme=dark] [data-mod=fiscal]{--mod-ink:#efc062}
:root[data-theme=dark] [data-mod=gestao]{--mod-ink:#949ff0}
:root[data-theme=dark] [data-mod=sign]{--mod-ink:#ef93ad}
:root[data-theme=dark] [data-mod=ia]{--mod:#4d8ff8;--mod-ink:#8fb8ff}
:root[data-theme=dark] [data-mod=loja]{--mod-ink:#7fd0e3}
:root[data-theme=dark] [data-mod=agenda]{--mod-ink:#f19590}
:root[data-theme=dark] [data-mod=juridico],:root[data-theme=dark] [data-mod=juridico-parceiro]{--mod-ink:#c5d47a}
:root[data-theme=dark] [data-mod=contabil]{--mod-ink:#9cc8ea}
:root[data-theme=dark] [data-mod=consultoria]{--mod-ink:#e8b77c}
:root[data-theme=dark] [data-mod=remoto]{--mod-ink:#d59be6}

/* Trilho: cada solução com o ícone na cor dela (versão clara, sobre o escuro); a aberta vira um bloco na cor média. */
.hub-mods a[data-mod=whatsapp]{--ic:#5fd19d}.hub-mods a[data-mod=crm]{--ic:#a993f0}.hub-mods a[data-mod=pdv]{--ic:#f7a774}
.hub-mods a[data-mod=financeiro]{--ic:#6cc9bb}.hub-mods a[data-mod=fiscal]{--ic:#efc062}.hub-mods a[data-mod=gestao]{--ic:#949ff0}
.hub-mods a[data-mod=sign]{--ic:#ef93ad}.hub-mods a[data-mod=loja]{--ic:#7fd0e3}.hub-mods a[data-mod=agenda]{--ic:#f19590}.hub-mods a[data-mod=juridico],.hub-mods a[data-mod=juridico-parceiro]{--ic:#c5d47a}.hub-mods a[data-mod=contabil]{--ic:#9cc8ea}.hub-mods a[data-mod=consultoria]{--ic:#e8b77c}.hub-mods a[data-mod=ia]{--ic:#8fe9fb}
.hub-mods a[data-mod] svg{color:var(--ic,currentColor)}
body[data-mod] .hub-mods a[aria-current=page] svg{color:var(--mod-on)}
body[data-mod] .hub-mods a[aria-current=page]{color:var(--mod-on)}
body[data-mod] .hub-pill{background:var(--mod);box-shadow:0 8px 22px color-mix(in srgb,var(--mod) 45%,transparent)}
/* Admin: os mesmos ícones coloridos nos itens das soluções do menu. */
.nav a[data-nav=fin] svg{color:#2f9e8f}.nav a[data-nav=fiscal] svg{color:#d19a26}.nav a[data-nav=pdv] svg{color:#f08a4b}
.nav a[data-nav=crm] svg{color:#8b6fe0}.nav a[data-nav=sign] svg{color:#e06a8c}.nav a[data-nav=whatsapp] svg{color:#34b27b}.nav a[data-nav=loja] svg{color:#2fa9c7}

/* Menu da solução: ícone da solução no topo e o item aberto na cor dela. */
.hub-panel-head{flex-direction:row;align-items:center;gap:12px}
.hub-panel-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.hub-panel-txt strong{overflow:hidden;text-overflow:ellipsis}
.hub-mod-ic{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:13px;background:linear-gradient(135deg,var(--mod-t1),var(--mod-t2));color:var(--mod-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mod) 25%,transparent)}
.hub-mod-ic[hidden]{display:none}
.hub-mod-ic svg{width:22px;height:22px}
body[data-mod] .cli-nav a[aria-current=page]{background:var(--mod-soft);color:var(--mod-ink)}
body[data-mod] .cli-nav a[aria-current=page]::before{background:var(--mod)}
/* Menu da solução: contador do que espera (sugestões), botão da frente de caixa, assessor no pé (com as sugestões do dia) e a assinatura por último. */
.cli-badge.mod{background:var(--mod,var(--acc));color:var(--mod-on,#fff)}
.cli-nav a.hub-panel-cta{justify-content:center;margin:0 0 8px;color:#fff;font-weight:700}
.cli-nav a.hub-panel-cta svg{width:17px;height:17px}
.hub-nav-gap{flex:1 0 12px}
.hub-nav-foot{display:flex;flex-direction:column;gap:2px;margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
.hub-adv{display:flex;flex-direction:column;gap:8px;animation:mod-up .45s cubic-bezier(.2,.8,.2,1) both}
.hub-adv-card{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:16px;border:1px solid color-mix(in srgb,var(--mod,var(--acc)) 25%,transparent);
  background:linear-gradient(135deg,var(--mod-t1,var(--surface2)),var(--mod-t2,var(--surface2)));color:var(--fg);font:inherit;text-align:left;cursor:pointer;transition:transform .2s,box-shadow .2s}
.hub-adv-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.hub-adv-card.here{box-shadow:0 0 0 2px var(--mod,var(--acc))}
.hub-adv-card:focus-visible{outline:0;box-shadow:var(--focus)}
.hub-adv-card img,.hub-adv-tino{width:40px;height:40px;flex:none;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--raised),0 0 0 4px color-mix(in srgb,var(--mod,var(--acc)) 55%,transparent)}
.hub-adv-tino{display:grid;place-items:center;background:var(--raised);overflow:hidden}.hub-adv-tino svg{width:32px;height:32px}
.hub-adv-t{flex:1;min-width:0;display:flex;flex-direction:column}
.hub-adv-card strong{font-size:calc(13.5px*var(--fs));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hub-adv-card strong i{font-style:normal;font-weight:500;color:var(--mut)}
.hub-adv-card small{color:var(--mod-ink,var(--mut));font-size:calc(12.5px*var(--fs));font-weight:650}
.hub-adv-n{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--mod,var(--acc));color:var(--mod-on,#fff);font-size:calc(12px*var(--fs))}
.hub-adv-card.urgent .hub-adv-n{animation:mod-pulse 2.4s ease-out infinite}
.hub-adv-pop{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:16px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow);animation:mod-up .25s ease-out both}
.hub-adv-pop[hidden]{display:none}
.hub-adv-h{margin:0 0 4px;padding:0 4px;color:var(--mut);font-size:calc(12px*var(--fs));font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.cli-nav a.hub-adv-item{align-items:flex-start;gap:9px;padding:8px;border-radius:12px;white-space:normal;font-size:calc(13px*var(--fs))}
.hub-adv-item > b{display:grid;place-items:center;flex:none;min-width:26px;height:26px;padding:0 5px;border-radius:9px;background:var(--mod-soft,var(--surface2));color:var(--mod-ink,var(--fg));font-size:calc(12.5px*var(--fs))}
.hub-adv-item.urgent > b{background:var(--mod,var(--acc));color:var(--mod-on,#fff)}
.hub-adv-item > span{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;color:var(--fg);font-weight:600;line-height:1.3}
.hub-adv-item small{color:var(--mut);font-weight:500}
.hub-adv-item em{display:block;margin-top:3px;font-style:normal;color:var(--mod-ink,var(--acc));font-weight:700;font-size:calc(12px*var(--fs))}
.pxa-pbtn{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pxa-err{color:var(--bad,#c62828)}
/* Proposta pronta da equipe digital no cartão do assessor (cliente.js propRow): motivo + Confirmar / Agora não. */
.hub-adv-prop{display:flex;flex-direction:column;gap:7px;padding:9px 10px;border-radius:12px;background:var(--mod-t1,var(--surface2));border:1px solid color-mix(in srgb,var(--mod,var(--acc)) 30%,transparent)}
.hub-adv-prop > span{display:flex;flex-direction:column;gap:2px;line-height:1.3}
.hub-adv-prop strong{font-size:calc(13px*var(--fs))}
.hub-adv-prop small{color:var(--mut);font-size:calc(12px*var(--fs))}
.hub-adv-prop .badge{align-self:flex-start;margin-top:3px;font-style:normal}
.hub-adv-pbtn{display:flex;gap:6px;flex-wrap:wrap}
.hub-adv-perr{color:var(--bad,#c62828);font-size:calc(12px*var(--fs))}
.hub-adv-card.pend{border-color:color-mix(in srgb,var(--warn,#e0a100) 55%,transparent)}
.hub-adv-card.pend .hub-adv-n,.hub-adv-item.pend > b{background:var(--warn,#e0a100);color:#1b1300}
.hub-adv-card.pend small{color:var(--warn-ink,#8a5d00)}
:root[data-theme=dark] .hub-adv-card.pend small{color:#f3c969}
/* Aviso de pendência em balão (cliente.js pendAlert): some sozinho, uma vez por dia; nunca fica fixo na tela. */
.pend-toast{position:fixed;right:24px;bottom:100px;z-index:60;display:flex;align-items:flex-start;gap:12px;width:min(400px,calc(100vw - 32px));padding:14px 14px 14px 16px;border-radius:20px;
  background:var(--raised);color:var(--fg);border:1px solid color-mix(in srgb,var(--warn,#e0a100) 55%,var(--line));box-shadow:0 18px 48px rgba(10,14,30,.22);animation:pend-in .4s cubic-bezier(.2,.8,.2,1) both}
.pend-toast.info{border-color:color-mix(in srgb,var(--info,#1f62ff) 45%,var(--line))}
.pend-toast.out{animation:pend-out .3s ease-in both}
.pend-toast > img,.pend-toast > .hub-adv-tino{width:44px;height:44px;flex:none;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--raised),0 0 0 4px color-mix(in srgb,var(--warn,#e0a100) 70%,transparent)}
.pend-toast > div{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.pend-toast strong{font-size:calc(14px*var(--fs))}.pend-toast strong i{font-style:normal;font-weight:500;color:var(--mut)}
.pend-toast p{margin:0;font-size:calc(14px*var(--fs));line-height:1.4}
.pend-toast small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.pend-toast .btn{margin-top:4px}
.pend-toast-x{width:30px;height:30px;flex:none;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mut);font-size:calc(20px*var(--fs));line-height:1;cursor:pointer}
.pend-toast-x:hover{background:var(--surface2)}
@keyframes pend-in{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
@keyframes pend-out{to{opacity:0;transform:translateY(12px)}}
@media (max-width:760px){.pend-toast{left:16px;right:16px;width:auto;bottom:156px}}
@media (prefers-reduced-motion:reduce){.pend-toast,.pend-toast.out{animation:none}}
.cli-nav a.hub-adv-talk{justify-content:center;padding:8px;margin-top:2px;color:var(--mod-ink,var(--acc));font-weight:700;font-size:calc(13px*var(--fs))}

/* Um menu só: com o menu da solução à vista (computador), as abas repetidas dentro da tela somem.
   No celular, ou com o menu recolhido, elas voltam. No admin (sem o menu da solução) continuam. */
@media (min-width:961px){body.hub .hub-shell:not(.panel-off) .mod-tabs{display:none}}
body[data-mod] .tabs button[aria-selected=true],body[data-mod] .tabs a[aria-selected=true]{color:var(--mod-ink);box-shadow:var(--shadow),inset 0 -2px 0 var(--mod)}

/* Faixa do topo da tela: fundo suave na cor da solução, com a solução em cima do título da tela. */
body[data-mod] #view > .head:first-child,body[data-mod] #view > :first-child > .head:first-child{position:relative;overflow:hidden;padding:22px 26px;border-radius:22px;
  background:linear-gradient(120deg,var(--mod-t1),var(--mod-t2));border:1px solid color-mix(in srgb,var(--mod) 18%,transparent);animation:mod-in .45s cubic-bezier(.2,.8,.2,1)}
body[data-mod] #view > .head:first-child::after,body[data-mod] #view > :first-child > .head:first-child::after{content:"";position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--mod) 28%,transparent),transparent 70%);pointer-events:none;animation:mod-float 9s ease-in-out infinite}
body[data-mod] #view .head h1{color:var(--mod-ink)}
body[data-mod] #view .head > div,body[data-mod] #view .head .actions{position:relative;z-index:1}
.mod-eyebrow{display:block;margin-bottom:2px;color:var(--mut);font-size:calc(12.5px*var(--fs));font-weight:700;letter-spacing:.06em;text-transform:uppercase}
body[data-mod] .mod-eyebrow{color:color-mix(in srgb,var(--mod-ink) 75%,var(--mut))}

/* Números e cartões: entram subindo, em cascata, com a cor da solução no detalhe. */
body[data-mod] .fin-kpi{position:relative;overflow:hidden;animation:mod-up .5s cubic-bezier(.2,.8,.2,1) both}
body[data-mod] .fin-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--mod);opacity:.7;transform-origin:top;animation:mod-grow .6s .15s cubic-bezier(.2,.8,.2,1) both}
body[data-mod] .fin-kpi:nth-child(2){animation-delay:.05s}body[data-mod] .fin-kpi:nth-child(3){animation-delay:.1s}
body[data-mod] .fin-kpi:nth-child(4){animation-delay:.15s}body[data-mod] .fin-kpi:nth-child(5){animation-delay:.2s}body[data-mod] .fin-kpi:nth-child(n+6){animation-delay:.25s}

/* Tino na cor da solução: anel no botão do canto e o nome no balão. */
body[data-mod] .pxg-fab{border-color:transparent;box-shadow:var(--shadow-lg),0 0 0 3px color-mix(in srgb,var(--mod) 55%,transparent)}
/* Botão do Tino em pílula (desenho aprovado): rosto num círculo na cor da solução + o nome. No celular, só o rosto. */
.pxg-fab-name{display:none}
body[data-mod] .pxg-fab{display:flex;align-items:center;gap:10px;width:auto;height:58px;padding:5px 20px 5px 5px;border-radius:999px}
body[data-mod] .pxg-fab-face{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:color-mix(in srgb,var(--mod) 16%,var(--raised));overflow:hidden}
body[data-mod] .pxg-fab-face svg{width:42px;height:42px}
body[data-mod] .pxg-fab-name{display:block;color:var(--fg);font-weight:800;font-size:calc(15px*var(--fs))}
body[data-mod] .pxg-fab::after{border-radius:999px}
body[data-mod] .pxg-fab-tip{right:calc(100% + 10px)}
@media (max-width:760px){body[data-mod] .pxg-fab{padding:5px;height:58px}body[data-mod] .pxg-fab-name{display:none}}
body[data-mod] .pxg-fab::after{content:"";position:absolute;inset:-3px;border-radius:50%;box-shadow:0 0 0 0 color-mix(in srgb,var(--mod) 40%,transparent);animation:mod-pulse 2.8s ease-out infinite;pointer-events:none}
body[data-mod] .pxg-who{color:var(--mod-ink)}
body[data-mod] .pxg-menu-h{background:linear-gradient(120deg,var(--mod-t1),var(--mod-t2));border-radius:12px;margin-bottom:6px}

@keyframes mod-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes mod-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes mod-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes mod-float{0%,100%{transform:translate(0,0)}50%{transform:translate(-18px,14px)}}
@keyframes mod-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--mod) 40%,transparent)}70%,100%{box-shadow:0 0 0 14px transparent}}

/* Busca geral do topo do portal (Ctrl K). Resultados por grupo, com a cor de cada solução. */
.hub-search{position:relative;flex:1 1 300px;max-width:560px;margin:0 12px;display:flex;align-items:center;gap:8px;height:44px;padding:0 10px 0 14px;border-radius:999px;
  background:var(--raised);border:1px solid var(--line);transition:border-color .2s,box-shadow .2s}
.hub-search:focus-within{border-color:var(--mod,var(--acc));box-shadow:0 0 0 4px color-mix(in srgb,var(--mod,var(--acc)) 15%,transparent)}
.hub-search > svg{width:18px;height:18px;flex:none;color:var(--mut)}
.hub-search input{flex:1;min-width:0;height:100%;border:0;background:none;padding:0;color:var(--fg);font:inherit;font-size:calc(14px*var(--fs));outline:0;box-shadow:none}
.hub-search kbd{flex:none;padding:3px 8px;border-radius:8px;background:var(--surface2);border:1px solid var(--line);color:var(--mut);font:inherit;font-size:calc(11.5px*var(--fs));font-weight:700}
.hub-sres{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:70;max-height:min(70vh,520px);overflow-y:auto;padding:8px;border-radius:18px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:mod-up .2s ease-out both}
.hub-sres[hidden]{display:none}
.hub-sgrp{margin:8px 8px 4px;color:var(--mod-ink,var(--mut));font-size:calc(11.5px*var(--fs));font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.hub-sgrp:first-child{margin-top:2px}
.hub-sres a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;color:var(--fg);text-decoration:none}
.hub-sres a:hover,.hub-sres a.on{background:var(--mod-soft,var(--surface2))}
.hub-sres a i{width:8px;height:8px;flex:none;border-radius:50%;background:var(--mod,var(--acc))}
.hub-sres a span{min-width:0;display:flex;flex-direction:column}
.hub-sres strong{font-size:calc(14px*var(--fs));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-sres small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.hub-sempty{margin:10px;color:var(--mut)}
@media (max-width:960px){.hub-search kbd{display:none}}
@media (max-width:760px){.hub-search{display:none}}

/* ---------- Telas das soluções no padrão do desenho (2026-11-04) ----------
   Faixa do topo com o desenho da solução (PxArt), "Esperando você" (PxAssist, sugestões do dia), caixas do PDV, vencimentos com o dia em destaque. */
body[data-mod] #view .head .mod-art{position:relative;z-index:1;margin-left:auto;width:170px;height:96px;flex:none;align-self:center}
body[data-mod] #view .head .mod-art svg{width:100%;height:100%;fill:none;stroke:none;animation:hx-floaty 6s ease-in-out infinite}
.mod-art:empty{display:none}
body:not([data-mod]) .mod-art{display:none}
@media (max-width:960px){body[data-mod] #view .head .mod-art{display:none}}
.ch-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ch-head h2{margin:0}
.ch-head .linkish{border:0;background:none;padding:0;color:var(--mod-ink,var(--acc));font:inherit;font-weight:700;font-size:calc(13.5px*var(--fs));cursor:pointer}
.ch-head .linkish:hover{text-decoration:underline}
.ch-peak{padding:3px 10px;border-radius:999px;background:var(--mod-soft,var(--surface2));color:var(--mod-ink,var(--fg));font-size:calc(12.5px*var(--fs));font-weight:700}
.pxa{display:flex;flex-direction:column;gap:12px;border:1px solid color-mix(in srgb,var(--mod) 22%,var(--line));background:linear-gradient(180deg,var(--mod-t1),var(--raised) 60%);animation:mod-up .45s cubic-bezier(.2,.8,.2,1) both}
.pxa-head{display:flex;align-items:center;gap:12px}
.pxa-head img,.pxa-tino{width:44px;height:44px;flex:none;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--raised),0 0 0 4px color-mix(in srgb,var(--mod) 55%,transparent)}
.pxa-tino{display:grid;place-items:center;background:var(--raised);overflow:hidden}.pxa-tino svg{width:36px;height:36px}
.pxa-head h2{margin:0}
.pxa-head p{margin:2px 0 0}
.pxa-list{display:flex;flex-direction:column;gap:8px}
.pxa-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;background:var(--raised);border:1px solid var(--line);animation:mod-up .4s cubic-bezier(.2,.8,.2,1) both}
.pxa-row:nth-child(2){animation-delay:.05s}.pxa-row:nth-child(3){animation-delay:.1s}.pxa-row:nth-child(4){animation-delay:.15s}.pxa-row:nth-child(n+5){animation-delay:.2s}
.pxa-n{display:grid;place-items:center;flex:none;min-width:40px;height:40px;padding:0 8px;border-radius:13px;background:var(--mod-soft);color:var(--mod-ink);font-size:calc(17px*var(--fs));font-weight:800}
.pxa-row.urgent .pxa-n{background:var(--mod);color:var(--mod-on)}
.pxa-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pxa-t strong{font-size:calc(14.5px*var(--fs))}.pxa-t small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.pxa-talk{align-self:flex-start;font-weight:700;font-size:calc(13.5px*var(--fs));color:var(--mod-ink)}
@media (max-width:760px){.pxa-row{flex-wrap:wrap}.pxa-row .btn{margin-left:52px}}
.fx-dash-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start}
.fx-dash-top > [data-assist]:empty{display:none}
@media (max-width:1100px){.fx-dash-top{grid-template-columns:minmax(0,1fr)}}
.pdv-boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.pdv-box{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:20px;background:var(--raised);border:1px solid var(--line);color:var(--fg);text-decoration:none;transition:transform .2s,box-shadow .2s}
.pdv-box:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.pdv-box.on{border-color:color-mix(in srgb,var(--mod) 45%,var(--line));background:linear-gradient(135deg,var(--mod-t1),var(--raised))}
.pdv-box-st{display:inline-flex;align-items:center;gap:8px;color:var(--mut);font-size:calc(12.5px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.pdv-box-st i{width:9px;height:9px;border-radius:50%;background:var(--line2)}
.pdv-box.on .pdv-box-st i{background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 22%,transparent);animation:hx-blink 2.4s ease-in-out infinite}
.pdv-box strong{font-size:calc(16px*var(--fs))}.pdv-box small{color:var(--mut);font-size:calc(13px*var(--fs))}
.fin-due{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.fin-due li{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.fin-due li:last-child{border-bottom:0}
.fin-chip{flex:none;min-width:74px;padding:5px 8px;border-radius:10px;background:var(--surface2);color:var(--fg2);text-align:center;font-size:calc(11.5px*var(--fs));font-weight:800;letter-spacing:.04em}
.fin-chip.now{background:var(--mod-soft);color:var(--mod-ink)}.fin-chip.late{background:var(--bad-soft);color:var(--bad)}
.fin-due-t{flex:1;min-width:0;display:flex;flex-direction:column}.fin-due-t strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(14.5px*var(--fs))}
.fin-due-t small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.fin-big{margin:6px 0 2px;font-size:calc(30px*var(--fs));font-weight:800}
@media (prefers-reduced-motion:reduce){body[data-mod] #view .head .mod-art svg,.pxa,.pxa-row,.pdv-box.on .pdv-box-st i{animation:none}}

/* ---------- Página comercial de cada solução (#modulo/<id>, cliente.js salesPage; 2026-11-04) ----------
   Faixa grande na cor da solução (desenho flutuando e dois "selos" do que ela faz), planos com o anual em destaque, o que ela faz, a rede com as outras
   soluções, como funciona e as dúvidas. Tudo entra em cascata; "reduzir movimento" desliga. No celular, uma coluna. */
.sx{display:flex;flex-direction:column;gap:30px}
.sx-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:28px;align-items:center;padding:44px 46px;border-radius:32px;
  background:linear-gradient(135deg,var(--mod-t1),var(--mod-t2));border:1px solid color-mix(in srgb,var(--mod) 22%,transparent);animation:mod-in .5s cubic-bezier(.2,.8,.2,1)}
.sx-glow{position:absolute;right:-140px;top:-180px;width:520px;height:520px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--mod) 35%,transparent),transparent);pointer-events:none;animation:mod-float 12s ease-in-out infinite}
.sx-hero-l{position:relative;z-index:1;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.sx-hero h1{display:flex;align-items:center;gap:14px;margin:0;color:var(--mod-ink);font-size:calc(46px*var(--fs));line-height:1.05;font-weight:800;letter-spacing:-.02em}
.sx-ic{display:grid;place-items:center;width:58px;height:58px;flex:none;border-radius:18px;background:var(--mod);color:var(--mod-on);box-shadow:0 10px 24px color-mix(in srgb,var(--mod-ink) 30%,transparent)}
.sx-ic svg{width:28px;height:28px}
.sx-tag{margin:0;max-width:560px;color:var(--fg2);font-size:calc(19px*var(--fs));line-height:1.45}
.sx-perks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.sx-perks li{display:inline-flex;align-items:center;gap:7px;color:var(--fg);font-weight:650;font-size:calc(14.5px*var(--fs))}
.sx-perks svg{width:17px;height:17px;padding:2px;border-radius:50%;background:var(--mod);color:var(--mod-on);stroke-width:3}
.sx-cta .btn{min-height:50px;padding:0 24px;font-size:calc(15.5px*var(--fs))}
.sx-state{width:100%;max-width:620px}
.sx-art{position:relative;z-index:1;justify-self:center;width:min(100%,380px);aspect-ratio:1.25}
.sx-art-card{position:absolute;inset:8% 4% 14%;display:grid;place-items:center;border-radius:28px;background:color-mix(in srgb,var(--raised) 70%,transparent);
  box-shadow:0 30px 60px color-mix(in srgb,var(--mod-ink) 18%,transparent);backdrop-filter:blur(6px);animation:hx-floaty 6s ease-in-out infinite}
.sx-art-card svg{width:82%;height:82%;fill:none;stroke:none}
.sx-float{position:absolute;display:inline-flex;align-items:center;gap:8px;max-width:240px;padding:10px 14px;border-radius:16px;background:var(--raised);color:var(--fg);font-weight:700;
  font-size:calc(13.5px*var(--fs));box-shadow:var(--shadow-lg);animation:sx-pop .6s cubic-bezier(.3,1.4,.5,1) both,hx-floaty 5s 1s ease-in-out infinite}
.sx-float svg{width:18px;height:18px;flex:none;padding:3px;border-radius:50%;background:var(--mod);color:var(--mod-on);stroke-width:3}
.sx-float.f0{left:-6%;top:2%;animation-delay:.25s,1s}.sx-float.f1{right:-4%;bottom:0;animation-delay:.45s,1.6s}
.sx-sec{display:flex;flex-direction:column;gap:14px;animation:mod-up .5s cubic-bezier(.2,.8,.2,1) both}
.sx-sec:nth-child(2){animation-delay:.08s}.sx-sec:nth-child(3){animation-delay:.14s}.sx-sec:nth-child(4){animation-delay:.2s}.sx-sec:nth-child(n+5){animation-delay:.26s}
.sx-sec h2{margin:0;font-size:calc(24px*var(--fs))}
.sx-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.sx-plan{position:relative;display:flex;flex-direction:column;gap:6px;padding:24px;border-radius:24px;background:var(--raised);border:1px solid var(--line);transition:transform .25s cubic-bezier(.3,1.3,.5,1),box-shadow .25s}
.sx-plan:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.sx-plan small{color:var(--mut);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:calc(12px*var(--fs))}
.sx-plan strong{font-size:calc(34px*var(--fs));font-weight:800;letter-spacing:-.01em}
.sx-plan strong span{font-size:calc(15px*var(--fs));font-weight:600;color:var(--mut)}
.sx-plan p{margin:0;color:var(--fg2);font-size:calc(14px*var(--fs))}
.sx-plan.best{border:2px solid var(--mod);background:linear-gradient(180deg,var(--mod-t1),var(--raised) 70%);box-shadow:0 18px 40px color-mix(in srgb,var(--mod) 20%,transparent)}
.sx-best{position:absolute;top:-13px;left:20px;padding:5px 12px;border-radius:999px;background:var(--mod);color:var(--mod-on);font-size:calc(12px*var(--fs));font-weight:800}
.sx-plan.trial{border-style:dashed}
.sx-feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.sx-feat{display:flex;gap:14px;align-items:flex-start;padding:20px;border-radius:22px;background:var(--raised);border:1px solid var(--line);transition:transform .25s,border-color .25s}
.sx-feat:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--mod) 40%,var(--line))}
.sx-feat-ic{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:14px;background:var(--mod-soft);color:var(--mod-ink)}.sx-feat-ic svg{width:22px;height:22px}
.sx-feat p{margin:0;font-size:calc(15px*var(--fs));line-height:1.45}
.sx-net{position:relative;display:flex;align-items:center;gap:0;padding:22px;border-radius:24px;background:var(--raised);border:1px solid var(--line);overflow:hidden}
.sx-node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:110px;padding:14px 12px;border-radius:18px;background:var(--mod-soft);color:var(--mod-ink);text-decoration:none;text-align:center}
.sx-node svg{width:26px;height:26px}
.sx-node b{color:var(--fg);font-size:calc(14px*var(--fs))}.sx-node small{color:var(--mut);font-size:calc(12px*var(--fs))}
.sx-node.me{background:var(--mod);color:var(--mod-on)}.sx-node.me b{color:var(--mod-on)}
a.sx-node{transition:transform .2s}a.sx-node:hover{transform:translateY(-3px)}
.sx-wire{flex:0 0 60px;height:2px;background:repeating-linear-gradient(90deg,var(--mod) 0 8px,transparent 8px 14px);background-size:28px 2px;animation:sx-flow 1s linear infinite}
.sx-peers{display:flex;flex-wrap:wrap;gap:12px;padding-left:12px;border-left:2px dashed color-mix(in srgb,var(--mod) 40%,transparent)}
.sx-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;counter-reset:x}
.sx-steps li{position:relative;display:flex;flex-direction:column;gap:6px;padding:22px 20px;border-radius:22px;background:var(--raised);border:1px solid var(--line)}
.sx-steps b{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--mod);color:var(--mod-on);font-size:calc(16px*var(--fs))}
.sx-steps strong{font-size:calc(16.5px*var(--fs))}.sx-steps span{color:var(--fg2);font-size:calc(14px*var(--fs))}
.sx-faq details{padding:16px 20px;border-radius:18px;background:var(--raised);border:1px solid var(--line)}
.sx-faq summary{cursor:pointer;font-weight:700;font-size:calc(15.5px*var(--fs));list-style:none;display:flex;justify-content:space-between;gap:10px}
.sx-faq summary::-webkit-details-marker{display:none}
.sx-faq summary::after{content:"+";color:var(--mod-ink);font-size:calc(20px*var(--fs));line-height:1;transition:transform .2s}
.sx-faq details[open] summary::after{transform:rotate(45deg)}
.sx-faq p{margin:10px 0 0;color:var(--fg2)}
@keyframes sx-pop{from{opacity:0;transform:scale(.85) translateY(10px)}to{opacity:1;transform:none}}
@keyframes sx-flow{to{background-position:28px 0}}
@media (prefers-reduced-motion:reduce){.sx-hero,.sx-glow,.sx-art-card,.sx-float,.sx-sec,.sx-wire{animation:none}.sx-plan,.sx-feat{transition:none}}
@media (max-width:960px){
  .sx-hero{grid-template-columns:minmax(0,1fr);padding:30px 26px}
  .sx-art{width:min(100%,320px)}
}
@media (max-width:760px){
  .sx{gap:22px}
  .sx-hero{padding:24px 18px;border-radius:24px;gap:18px}
  .sx-hero h1{font-size:calc(32px*var(--fs))}.sx-ic{width:46px;height:46px;border-radius:14px}
  .sx-tag{font-size:calc(16px*var(--fs))}
  .sx-cta{width:100%}.sx-cta .btn{flex:1 1 100%}
  .sx-float{max-width:200px;font-size:calc(12px*var(--fs))}.sx-float.f0{left:0}.sx-float.f1{right:0}
  .sx-net{flex-direction:column;align-items:stretch}
  .sx-wire{flex:0 0 28px;width:2px;height:28px;margin:0 auto;background:repeating-linear-gradient(180deg,var(--mod) 0 8px,transparent 8px 14px)}
  .sx-peers{padding:12px 0 0;border-left:0;border-top:2px dashed color-mix(in srgb,var(--mod) 40%,transparent);justify-content:center}
  .sx-node{min-width:96px}
}

/* ---------- Gráficos das soluções (charts.js = PxChart) ----------
   Tons da solução aberta (--mod): s0 = a cor, s1..s4 = a mesma cor mais clara; sb = a 2ª série (saídas), um tom neutro quente. Fora de uma
   solução (sem --mod), o azul da marca. Barras finas com a ponta arredondada, grade discreta, dica ao passar o mouse ou focar. */
.ch{--c0:var(--mod,var(--acc));--c1:color-mix(in srgb,var(--c0) 72%,var(--surface));--c2:color-mix(in srgb,var(--c0) 50%,var(--surface));
  --c3:color-mix(in srgb,var(--c0) 32%,var(--surface));--c4:color-mix(in srgb,var(--c0) 18%,var(--surface));--cb:color-mix(in srgb,#d9604c 62%,var(--surface))}
.ch .s0,.ch-legend .s0{background:var(--c0)}.ch .s1{background:var(--c1)}.ch .s2{background:var(--c2)}.ch .s3{background:var(--c3)}.ch .s4{background:var(--c4)}
.ch .sb,.ch-legend .sb{background:var(--cb)}
.ch-legend{--c0:var(--mod,var(--acc));--cb:color-mix(in srgb,#d9604c 62%,var(--surface));display:flex;gap:16px;margin:4px 0 10px;color:var(--mut);font-size:calc(12.5px*var(--fs))}
.ch-legend span{display:inline-flex;align-items:center;gap:6px}.ch-legend i{width:10px;height:10px;border-radius:3px}
.ch-cols{display:flex;align-items:stretch;gap:6px;height:170px;padding-top:8px;border-bottom:1px solid var(--line)}
.ch-col{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;outline:0}
.ch-track{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-radius:8px;transition:background .2s}
.ch-col:hover .ch-track,.ch-col:focus-visible .ch-track{background:var(--surface2)}
.ch-col:focus-visible{box-shadow:var(--focus);border-radius:8px}
.ch-v{display:block;border-radius:4px 4px 0 0;transition:height .8s cubic-bezier(.2,.8,.2,1),width .8s cubic-bezier(.2,.8,.2,1)}
.ch-cols .ch-v{width:min(70%,22px);height:0;background:var(--c2)}
.ch-pairs .ch-v{width:min(40%,16px)}
.ch-cols .ch-col.peak .ch-v,.ch-cols .ch-col.hi .ch-v{background:var(--c0)}
.ch-pairs .ch-v.s0{background:var(--c0)}.ch-pairs .ch-v.sb{background:var(--cb)}
.ch-col small{color:var(--mut);font-size:calc(11px*var(--fs));white-space:nowrap}
.ch-col[data-tip]:hover::after,.ch-col[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);z-index:5;
  padding:6px 10px;border-radius:10px;background:var(--fg);color:var(--bg);font-size:calc(12px*var(--fs));font-weight:600;white-space:nowrap;box-shadow:var(--shadow);pointer-events:none}
.ch-h{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.ch-hrow{display:grid;grid-template-columns:minmax(90px,40%) 1fr auto;align-items:center;gap:10px;font-size:calc(14px*var(--fs))}
.ch-hl{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ch-hl small{color:var(--mut)}
.ch-ht{height:10px;border-radius:999px;background:var(--surface2);overflow:hidden}
.ch-h .ch-v{height:100%;width:0;border-radius:999px}
.ch-hrow b{font-weight:650;font-variant-numeric:tabular-nums}
.ch-donut{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px}
.ch-ring{position:relative;width:150px;height:150px;flex:none}
.ch-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ch-ring circle{fill:none;stroke-width:5.2}
.ch-bg{stroke:var(--surface2)}
.ch-seg{stroke-dasharray:0 100;transition:stroke-dasharray .9s cubic-bezier(.2,.8,.2,1)}
.ch-seg.s0{stroke:var(--c0)}.ch-seg.s1{stroke:var(--c1)}.ch-seg.s2{stroke:var(--c2)}.ch-seg.s3{stroke:var(--c3)}.ch-seg.s4{stroke:var(--c4)}
.ch-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.ch-center b{font-size:calc(17px*var(--fs));font-weight:800}.ch-center small{color:var(--mut);font-size:calc(11.5px*var(--fs))}
.ch-keys{list-style:none;margin:0;padding:0;flex:1 1 180px;display:flex;flex-direction:column;gap:8px}
.ch-keys li{display:grid;grid-template-columns:12px 1fr auto 40px;align-items:center;gap:8px;font-size:calc(14px*var(--fs))}
.ch-keys i{width:12px;height:12px;border-radius:4px}.ch-keys b{font-weight:650;font-variant-numeric:tabular-nums}.ch-keys small{color:var(--mut);text-align:right}
@media (prefers-reduced-motion:reduce){.ch-v,.ch-seg{transition:none}}
@media (max-width:760px){.ch-cols{height:140px;gap:3px}.ch-col small{font-size:calc(9.5px*var(--fs))}.ch-ring{width:124px;height:124px}}

/* ---------- Funcionários digitais (aiagents.js; design aprovado 2026-11-04) ----------
   Faixa escura com a equipe e o anel dos créditos, números do mês, a equipe em crachás (cada um na cor da solução onde trabalha: [data-mod]),
   onde foram os créditos, como o crédito funciona, o simulador "quanto custaria uma pessoa" e o checkout em 3 passos (mensal ou anual). */
.aiv{display:flex;flex-direction:column;gap:24px}
.aiv-hero{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;gap:28px;align-items:center;padding:32px 38px;border-radius:30px;background:#04070d;color:#fff;animation:mod-in .5s cubic-bezier(.2,.8,.2,1)}
.aiv-glow{position:absolute;right:-140px;top:-180px;width:560px;height:560px;border-radius:50%;background:radial-gradient(closest-side,rgba(63,216,245,.28),rgba(31,98,255,0));pointer-events:none;animation:mod-float 12s ease-in-out infinite}
.aiv-hero-l{position:relative;flex:999 1 480px;min-width:0;display:flex;flex-direction:column;gap:12px}
.aiv-kicker{color:#8fe9fb;font-size:calc(12.5px*var(--fs));font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.aiv-kicker.dark{color:var(--acc)}
.aiv-hero h1{margin:0;color:#fff;font-size:calc(38px*var(--fs));line-height:1.08;font-weight:800;letter-spacing:-.02em}
.aiv-hero p{margin:0;max-width:640px;color:#c9d2e4;font-size:calc(16.5px*var(--fs));line-height:1.5}
.aiv-hero p strong{color:#fff}
.aiv-faces{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:4px}
.aiv-faces > .aiv-face{width:46px;height:46px;margin-right:-24px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 3px #04070d,0 0 0 5px var(--mod,#3fd8f5);animation:mod-up .5s cubic-bezier(.2,.8,.2,1) both}
.aiv-faces > .aiv-face:last-of-type{margin-right:6px}
.aiv-face .ai-photo,.aiv-face .ai-photo img,.aiv-face svg{width:100%;height:100%;display:block}.aiv-face .ai-pin{display:none}
.aiv-faces-t{color:#c9d2e4;font-size:calc(14px*var(--fs))}.aiv-faces-t strong{color:#fff}
.aiv-wallet{position:relative;flex:1 1 340px;display:flex;align-items:center;gap:20px;padding:20px 22px;border-radius:24px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.aiv-ring{position:relative;width:128px;height:128px;flex:none}
.aiv-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.aiv-ring circle{fill:none;stroke-width:4.5}.aiv-ring .bg{stroke:rgba(255,255,255,.12)}
.aiv-ring .fg{stroke:#3fd8f5;stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray 1.2s cubic-bezier(.2,.8,.2,1)}
.aiv-ring > span{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.aiv-ring strong{font-size:calc(25px*var(--fs));font-weight:800}.aiv-ring small{color:#9fb0d0;font-size:calc(11.5px*var(--fs))}
.aiv-wallet-t{min-width:0;display:flex;flex-direction:column;gap:6px}
.aiv-wallet-k{color:#9fb0d0;font-size:calc(13px*var(--fs))}
.aiv-wallet-t > strong{font-size:calc(19px*var(--fs))}
.aiv-wallet-s{color:#c9d2e4;font-size:calc(13.5px*var(--fs))}
.aiv-wallet-a{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.aiv-wallet-a .btn{background:#fff;color:#0b1222;border-color:#fff;font-weight:700}
.aiv-wallet-a .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.aiv-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.aiv-kpis > div{display:flex;flex-direction:column;gap:5px;padding:18px 20px;border-radius:22px;background:var(--raised);border:1px solid var(--line);animation:mod-up .5s cubic-bezier(.2,.8,.2,1) both}
.aiv-kpis > div:nth-child(2){animation-delay:.05s}.aiv-kpis > div:nth-child(3){animation-delay:.1s}.aiv-kpis > div:nth-child(4){animation-delay:.15s}
.aiv-kpis small{color:var(--mut);font-size:calc(13px*var(--fs))}.aiv-kpis strong{font-size:calc(28px*var(--fs));font-weight:800}
.aiv-kpis span{color:var(--mut);font-size:calc(13px*var(--fs))}.aiv-kpis span.ok{color:var(--ok);font-weight:650}
.aiv-sec{display:flex;flex-direction:column;gap:14px}
.aiv-sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.aiv-sec-h h2{margin:0;font-size:calc(21px*var(--fs))}.aiv-sec-h p{margin:4px 0 0}
.aiv-filter{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:999px;background:var(--raised);border:1px solid var(--line)}
.aiv-filter button{padding:8px 14px;border:0;border-radius:999px;background:none;color:var(--fg2);font:inherit;font-size:calc(13.5px*var(--fs));font-weight:650;cursor:pointer}
.aiv-filter button[aria-pressed=true]{background:var(--fg);color:var(--bg)}
.aiv-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.aiv-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:16px 18px 18px;border-radius:24px;background:var(--raised);border:1px solid var(--line);
  transition:transform .25s cubic-bezier(.3,1.3,.5,1),box-shadow .25s;animation:mod-up .5s cubic-bezier(.2,.8,.2,1) both}
.aiv-card[hidden]{display:none}
.aiv-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.aiv-card-cover{position:absolute;left:0;right:0;top:0;height:74px;background:linear-gradient(135deg,var(--mod-t1),var(--mod-t2))}
.aiv-card.off{background:var(--surface);border-style:dashed}.aiv-card.off .aiv-card-cover{opacity:.35}
.aiv-card-top{position:relative;display:flex;justify-content:space-between;align-items:flex-start}
.aiv-av{display:block;width:72px;height:72px;margin-top:16px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 3px var(--raised),0 0 0 5px var(--mod)}
.aiv-av .ai-photo,.aiv-av .ai-photo img,.aiv-av svg{width:100%;height:100%;display:block}.aiv-av .ai-pin{display:none}
.aiv-card.off .aiv-av{filter:grayscale(.55);box-shadow:0 0 0 3px var(--raised),0 0 0 5px var(--line2)}
.aiv-st{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--raised);color:var(--fg2);font-size:calc(12px*var(--fs));font-weight:700}
.aiv-st.ok{color:var(--mod-ink)}.aiv-st.warn{color:var(--warn-ink,#a86400)}
.aiv-st i{width:7px;height:7px;border-radius:50%;background:var(--mod);animation:hx-blink 2.4s ease-in-out infinite}
.aiv-card-id h3{margin:0;font-size:calc(18px*var(--fs))}.aiv-card-id p{margin:2px 0 0;color:var(--mod-ink);font-size:calc(13.5px*var(--fs));font-weight:700}
.aiv-card-hint{margin:0;color:var(--fg2);font-size:calc(13.5px*var(--fs));line-height:1.4}
.aiv-card-use{display:flex;justify-content:space-between;color:var(--mut);font-size:calc(12.5px*var(--fs))}.aiv-card-use strong{color:var(--fg)}
.aiv-meter{display:block;height:6px;border-radius:999px;background:var(--surface3);overflow:hidden}
.aiv-meter span{display:block;height:100%;width:0;background:var(--mod);transition:width .9s cubic-bezier(.2,.8,.2,1)}
.aiv-card-act{display:flex;align-items:center;gap:8px;margin-top:auto}
.aiv-card-act > .btn:first-child{flex:1}
.aiv-card.off .aiv-card-act .btn.primary{background:var(--mod-ink);border-color:var(--mod-ink)}
.aiv-two{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}
.aiv-box{display:flex;flex-direction:column;gap:12px;padding:22px 24px;border-radius:24px;background:var(--raised);border:1px solid var(--line)}
.aiv-box h2{margin:0;font-size:calc(18px*var(--fs))}
.aiv-bar{display:grid;grid-template-columns:minmax(120px,36%) 1fr 70px;gap:10px;align-items:center;font-size:calc(14px*var(--fs))}
.aiv-bar > strong{text-align:right;font-variant-numeric:tabular-nums}
.aiv-bar-t{height:10px;border-radius:999px;background:var(--surface2);overflow:hidden}
.aiv-bar-t i{display:block;height:100%;width:0;background:var(--mod);border-radius:999px;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.aiv-how{display:flex;flex-direction:column;gap:10px;padding:22px 24px;border-radius:24px;background:color-mix(in srgb,var(--acc) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--acc) 22%,var(--line))}
.aiv-how h2{margin:0;font-size:calc(18px*var(--fs))}
.aiv-how > div{display:flex;gap:10px;align-items:flex-start;font-size:calc(14.5px*var(--fs))}
.aiv-how b{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--acc);color:#fff;font-size:calc(13px*var(--fs))}
.aiv-how p{margin:4px 0 0;color:var(--fg2);font-size:calc(13.5px*var(--fs))}
.aiv-sim{display:flex;flex-direction:column;gap:16px;padding:24px;border-radius:26px;background:var(--raised);border:1px solid var(--line)}
.aiv-sim-f{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.aiv-sim-r{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:stretch}
.aiv-sim-c,.aiv-sim-save{display:flex;flex-direction:column;gap:4px;padding:18px 20px;border-radius:20px;animation:mod-up .4s ease-out both}
.aiv-sim-c.people{background:var(--surface2)}
.aiv-sim-c.digital{background:linear-gradient(135deg,color-mix(in srgb,#3fd8f5 14%,var(--surface)),color-mix(in srgb,#1f62ff 16%,var(--surface)))}
.aiv-sim-save{background:color-mix(in srgb,var(--ok) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--ok) 30%,transparent)}
.aiv-sim-r small{color:var(--mut);font-size:calc(12.5px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.aiv-sim-r strong{font-size:calc(28px*var(--fs));font-weight:800}.aiv-sim-r strong span{font-size:calc(14px*var(--fs));font-weight:600;color:var(--mut)}
.aiv-sim-save strong{color:var(--ok)}
.aiv-sim-r p{margin:0;color:var(--fg2);font-size:calc(13.5px*var(--fs))}
.aiv-sim-vs{align-self:center;color:var(--mut);font-size:calc(20px*var(--fs));font-weight:800}
.aiv-cancel{margin:0;text-align:center}
/* checkout */
.ai-dlg.aiv-co-dlg{width:min(1240px,calc(100vw - 32px));max-width:none;padding:0}
.aiv-co{padding:28px 30px;display:flex;flex-direction:column;gap:20px}
.aiv-co-h{display:flex;justify-content:space-between;gap:16px}
.aiv-co-h h2{margin:4px 0 4px;font-size:calc(28px*var(--fs))}.aiv-co-h p{margin:0}
.aiv-co-g{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:20px;align-items:start}
.aiv-co-steps{display:flex;flex-direction:column;gap:18px}
.aiv-co-steps h3{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:calc(17px*var(--fs))}
.aiv-co-steps h3 b{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--fg);color:var(--bg);font-size:calc(13px*var(--fs))}
.aiv-co-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
@media (max-width:560px){.aiv-co-opts:not(:has(.size)){grid-template-columns:minmax(0,1fr)}}
.aiv-opt{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:var(--raised);color:var(--fg);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .2s}
.aiv-opt:hover{transform:translateY(-2px)}
.aiv-opt.on{border:2px solid var(--acc);background:color-mix(in srgb,var(--acc) 8%,var(--raised))}
.aiv-opt span,.aiv-opt small{color:var(--fg2);font-size:calc(13px*var(--fs))}.aiv-opt small b{color:var(--fg)}
.aiv-opt-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 8px;width:100%}.aiv-opt-h strong{font-size:calc(16px*var(--fs));color:var(--fg)}
.aiv-opt em{font-style:normal;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--ok) 18%,var(--surface));color:var(--ok);font-size:calc(11.5px*var(--fs));font-weight:800}
.aiv-opt.size{align-items:center;text-align:center}
.aiv-opt.size .big{font-size:calc(26px*var(--fs));font-weight:800}
.aiv-opt.size .price{font-size:calc(19px*var(--fs));font-weight:800;color:var(--fg)}.aiv-opt.size .price span{font-size:calc(13px*var(--fs));color:var(--mut)}
.aiv-opt.size small.ok{color:var(--ok);font-weight:700}
.aiv-opt.size em{position:absolute;top:-10px}
.aiv-co-per{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface2)}
.aiv-co-per button{padding:10px 20px;border:0;border-radius:999px;background:none;color:var(--fg2);font:inherit;font-weight:700;cursor:pointer}
.aiv-co-per button[aria-pressed=true]{background:var(--raised);color:var(--fg);box-shadow:var(--shadow)}
.aiv-co-per em{font-style:normal;color:var(--ok);margin-left:4px}
.aiv-co-ex{padding:16px 18px;border-radius:18px;background:color-mix(in srgb,var(--acc) 8%,var(--surface))}
.aiv-co-ex > div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.aiv-co-ex span{padding:12px;border-radius:14px;background:var(--raised);font-size:calc(13px*var(--fs))}.aiv-co-ex span strong{display:block;font-size:calc(20px*var(--fs))}
.aiv-co-ex p{margin:10px 0 0}
.aiv-co-sum{position:sticky;top:0;display:flex;flex-direction:column;gap:10px;padding:24px;border-radius:24px;background:#04070d;color:#fff}
.aiv-co-sum h3{margin:0;color:#fff;font-size:calc(18px*var(--fs))}
.aiv-co-sum > div{display:flex;justify-content:space-between;gap:10px;font-size:calc(14.5px*var(--fs))}.aiv-co-sum > div span{color:#c9d2e4}
.aiv-co-sum hr{width:100%;border:0;border-top:1px solid rgba(255,255,255,.14);margin:4px 0}
.aiv-co-sum .tot strong{font-size:calc(32px*var(--fs));font-weight:800}
.aiv-co-save{margin:0;color:#7ee2a8;font-weight:700}
.aiv-co-person{margin:0;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.07);color:#c9d2e4;font-size:calc(13.5px*var(--fs))}.aiv-co-person strong{color:#fff}
.aiv-co-sum ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:#c9d2e4;font-size:calc(13px*var(--fs))}
.aiv-co-go{min-height:50px;border:0;background:linear-gradient(90deg,#3fd8f5,#1f62ff);font-size:calc(16px*var(--fs))}
.aiv-co-sum small{text-align:center;color:#9fb0d0}
@media (prefers-reduced-motion:reduce){.aiv-hero,.aiv-glow,.aiv-faces > .aiv-face,.aiv-kpis > div,.aiv-card,.aiv-st i,.aiv-sim-c,.aiv-sim-save{animation:none}.aiv-ring .fg,.aiv-meter span,.aiv-bar-t i{transition:none}}
@media (max-width:1100px){.aiv-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.aiv-two,.aiv-co-g{grid-template-columns:minmax(0,1fr)}.aiv-sim-r{grid-template-columns:minmax(0,1fr)}.aiv-sim-vs{display:none}.aiv-co-sum{position:static}}
@media (max-width:760px){
  .aiv-hero{padding:22px 18px;border-radius:24px;gap:16px}.aiv-hero h1{font-size:calc(28px*var(--fs))}
  .aiv-wallet{flex-wrap:wrap;padding:16px}.aiv-ring{width:96px;height:96px}
  .aiv-sim-f{grid-template-columns:repeat(2,minmax(0,1fr))}
  .aiv-co{padding:18px 16px}.aiv-co-ex > div{grid-template-columns:minmax(0,1fr)}
  .aiv-bar{grid-template-columns:minmax(90px,40%) 1fr 50px}
}

/* ---------- Início do portal (cliente.js home; design aprovado 2026-11-04) ----------
   Faixa escura do dia (saudação, pendências, mapa do Hub girando devagar), "Hoje na sua empresa" (um cartão por solução com minigráfico),
   cartões do Hub com capa ilustrada na cor de cada solução e a coluna lateral (próximo passo, equipe digital, projetos com a PraxStack). */
.hx-skel{display:grid;gap:18px}.hx-skel div{height:120px;border-radius:26px;background:linear-gradient(90deg,var(--surface2),var(--surface3),var(--surface2));background-size:200% 100%;animation:hx-shine 1.2s linear infinite}
.hx-skel div:first-child{height:300px;border-radius:32px}
.hx-hero{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;gap:28px 36px;padding:38px 42px;border-radius:32px;background:#04070d;color:#fff;animation:mod-in .5s cubic-bezier(.2,.8,.2,1)}
.hx-glow{position:absolute;right:-120px;top:-170px;width:560px;height:560px;border-radius:50%;background:radial-gradient(closest-side,rgba(31,98,255,.38),rgba(31,98,255,0));pointer-events:none;animation:mod-float 12s ease-in-out infinite}
.hx-hero-l{position:relative;flex:999 1 480px;min-width:0;display:flex;flex-direction:column;gap:16px}
.hx-date{margin:0;color:#9fb0d0;font-size:calc(14px*var(--fs));letter-spacing:.02em}
.hx-date::first-letter{text-transform:uppercase}
.hx-hero h1{margin:0;color:#fff;font-size:calc(44px*var(--fs));line-height:1.05;font-weight:800;letter-spacing:-.02em}
.hx-lead{margin:0;max-width:600px;color:#c9d2e4;font-size:calc(17.5px*var(--fs));line-height:1.5}
/* Início para quem não é da área (2026-11-06): "Precisa de você agora" na faixa do dia, atalhos e a ajuda da equipe. */
.hx-need-h{margin:6px 0 0;color:#fff;font-size:calc(19px*var(--fs));letter-spacing:-.01em}
.hx-need{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.hx-need a{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:20px;background:rgba(255,255,255,.07);border:1px solid color-mix(in srgb,var(--mod,#3fd8f5) 45%,rgba(255,255,255,.1));color:#fff;text-decoration:none;
  transition:background .2s,transform .2s;animation:mod-up .5s cubic-bezier(.2,.8,.2,1) both}
.hx-need a:nth-child(2){animation-delay:.06s}.hx-need a:nth-child(3){animation-delay:.12s}.hx-need a:nth-child(4){animation-delay:.18s}.hx-need a:nth-child(n+5){animation-delay:.24s}
.hx-need a:hover{background:rgba(255,255,255,.13);transform:translateY(-2px)}
.hx-need-n{flex:none;display:grid;place-items:center;min-width:48px;height:48px;padding:0 8px;box-sizing:border-box;border-radius:15px;background:var(--mod,#3fd8f5);color:var(--mod-on,#fff);font-size:calc(22px*var(--fs));font-weight:800}
.hx-need-t{flex:1;min-width:0}.hx-need-t strong{display:block;font-size:calc(16px*var(--fs));font-weight:650;line-height:1.3}
.hx-need-go{flex:none;padding:9px 14px;border-radius:999px;background:#fff;color:#16171c;font-weight:700;font-size:calc(14px*var(--fs))}
/* "O que você quer fazer?" (2026-11-06): cartões compactos e horizontais, ícone em degradê da solução, brilho e seta no hover, entrada em cascata. */
.hx-do{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.hx-do-a{position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 14px 10px 10px;border-radius:16px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--mod) 10%,var(--raised)) 0%,var(--raised) 62%);border:1px solid color-mix(in srgb,var(--mod) 18%,var(--line));
  color:var(--fg);text-decoration:none;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s,border-color .22s;animation:mod-up .45s cubic-bezier(.2,.8,.2,1) both}
.hx-do-a::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,color-mix(in srgb,#fff 45%,transparent) 50%,transparent 65%);transform:translateX(-120%);transition:transform .6s ease;pointer-events:none}
.hx-do-a:hover,.hx-do-a:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px -14px color-mix(in srgb,var(--mod) 70%,transparent);border-color:color-mix(in srgb,var(--mod) 45%,var(--line))}
.hx-do-a:hover::after{transform:translateX(120%)}
.hx-do-a:active{transform:translateY(0) scale(.98)}
.hx-do-a:focus-visible{outline:2px solid var(--mod);outline-offset:2px}
.hx-do-a strong{flex:1;min-width:0;font-size:calc(14.5px*var(--fs));font-weight:650;line-height:1.25}
.hx-do-ic{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:var(--mod-on);
  background:linear-gradient(140deg,color-mix(in srgb,var(--mod) 78%,#fff) 0%,var(--mod) 55%,color-mix(in srgb,var(--mod) 80%,#000) 100%);
  box-shadow:0 6px 14px -8px var(--mod);transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.hx-do-ic svg{width:21px;height:21px}
.hx-do-a:hover .hx-do-ic{transform:rotate(-8deg) scale(1.08)}
.hx-do-go{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:var(--mod-ink,var(--fg));background:color-mix(in srgb,var(--mod) 14%,transparent);
  opacity:.35;transform:translateX(-4px);transition:opacity .2s,transform .2s}
.hx-do-go svg{width:15px;height:15px}
.hx-do-a:hover .hx-do-go,.hx-do-a:focus-visible .hx-do-go{opacity:1;transform:translateX(0)}
.hx-do-a:nth-child(2){animation-delay:.04s}.hx-do-a:nth-child(3){animation-delay:.08s}.hx-do-a:nth-child(4){animation-delay:.12s}
.hx-do-a:nth-child(5){animation-delay:.16s}.hx-do-a:nth-child(6){animation-delay:.2s}.hx-do-a:nth-child(7){animation-delay:.24s}.hx-do-a:nth-child(8){animation-delay:.28s}
.hx-card .hx-card-t .hx-kicker{font-size:calc(12px*var(--fs))}
.hx-card h3{margin:0;font-size:calc(18px*var(--fs));line-height:1.3}
.hx-help{display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:26px;background:#04070d;color:#fff;animation:mod-up .5s .12s cubic-bezier(.2,.8,.2,1) both}
.hx-help strong{font-size:calc(17px*var(--fs));line-height:1.3}.hx-help span{color:#c9d2e4;font-size:calc(14px*var(--fs));line-height:1.5}
.hx-help .btn{align-self:flex-start}
:root[data-theme=dark] .hx-help{background:#060a12;border:1px solid rgba(255,255,255,.06)}
.hx-todo{display:flex;flex-wrap:wrap;gap:10px}
.hx-todo a{display:inline-flex;align-items:center;gap:9px;padding:11px 15px;border-radius:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);color:#fff;text-decoration:none;font-size:calc(14.5px*var(--fs));transition:background .2s,transform .2s;animation:mod-up .5s cubic-bezier(.2,.8,.2,1) both}
.hx-todo a:nth-child(2){animation-delay:.06s}.hx-todo a:nth-child(3){animation-delay:.12s}.hx-todo a:nth-child(4){animation-delay:.18s}.hx-todo a:nth-child(5){animation-delay:.24s}
.hx-todo a:hover{background:rgba(255,255,255,.13);transform:translateY(-1px)}
.hx-todo strong{font-weight:800}
.hx-dot{width:9px;height:9px;border-radius:50%;background:var(--mod,#3fd8f5);box-shadow:0 0 0 4px color-mix(in srgb,var(--mod,#3fd8f5) 25%,transparent);animation:hx-blink 2.4s ease-in-out infinite}
.hx-cta{color:#8fb8ff;font-weight:650}
.hx-orbit-wrap{position:relative;flex:1 1 340px;display:flex;flex-direction:column;align-items:center;gap:16px}
.hx-orbit-box{position:relative;width:340px;height:340px}
.hx-orbit{position:relative;width:340px;height:340px;animation:hx-spin 90s linear infinite}
.hx-orbit:hover,.hx-orbit:focus-within{animation-play-state:paused}
.hx-orbit:hover .hx-node span,.hx-orbit:focus-within .hx-node span{animation-play-state:paused}
.hx-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hx-ring{fill:none;stroke:rgba(159,176,208,.32);stroke-width:1;stroke-dasharray:3 6}
.hx-ring2{fill:none;stroke:rgba(63,216,245,.22);stroke-width:1}
.hx-link{stroke:color-mix(in srgb,var(--mod) 75%,transparent);stroke-width:1.6;stroke-dasharray:4 7;animation:hx-flow 1.6s linear infinite}
.hx-core{position:absolute;left:130px;top:130px;width:80px;height:80px;display:grid;place-items:center;border-radius:24px;background:#0e1730;border:1px solid rgba(63,216,245,.45);box-shadow:0 0 40px rgba(31,98,255,.35);animation:hx-spin 90s linear infinite reverse}
.hx-core img{width:48px;height:48px}
.hx-node{position:absolute;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:16px;display:grid;place-items:center;text-decoration:none;transition:transform .2s}
.hx-node span{display:grid;place-items:center;width:100%;height:100%;border-radius:inherit;animation:hx-spin 90s linear infinite reverse}
.hx-node svg{width:23px;height:23px}
.hx-node.on span{background:var(--mod);color:var(--mod-on);box-shadow:0 0 0 6px color-mix(in srgb,var(--mod) 22%,transparent)}
.hx-node.trial span{background:#0e1730;border:1.5px solid var(--mod);color:var(--mod);box-shadow:0 0 0 6px color-mix(in srgb,var(--mod) 14%,transparent)}
.hx-node.off span,.hx-node.soon span{border:1.5px dashed #5d6b88;color:#9fb0d0}
.hx-node.soon{opacity:.6}
.hx-node:hover{transform:scale(1.12)}
.hx-node:focus-visible{outline:0}.hx-node:focus-visible span{box-shadow:0 0 0 3px #fff}
/* Posição de cada nó: o home() (cliente.js) põe left/top pelo ângulo (data-x/data-y), o mesmo das linhas do SVG. */
.hx-meter{width:300px;display:flex;flex-direction:column;gap:8px}
.hx-meter-h{display:flex;justify-content:space-between;gap:8px;font-size:calc(14px*var(--fs))}.hx-meter-h span{color:#9fb0d0}
.hx-meter .hx-bar{background:rgba(255,255,255,.12)}
.hx-legend{display:flex;gap:16px;color:#9fb0d0;font-size:calc(12.5px*var(--fs))}
.hx-legend span{display:inline-flex;align-items:center;gap:6px}.hx-legend i{width:8px;height:8px;border-radius:3px}
.hx-legend .a{background:#1f62ff}.hx-legend .t{background:#3fd8f5}.hx-legend .f{border:1px dashed #9fb0d0}
.hx-bar{display:flex;height:8px;border-radius:999px;background:var(--surface3);overflow:hidden}
.hx-bar span{display:block;height:100%;width:0;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.hx-bar .a{background:var(--brand,#1f62ff)}.hx-bar .t{background:#3fd8f5}
.hx-sec{display:flex;flex-direction:column;gap:14px;margin-top:28px}
.hx-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.hx-h h2{margin:0;font-size:calc(22px*var(--fs))}
/* Grades do Início: o número de colunas (--cols) vem do fitGrid (cliente.js) pela quantidade de cartões; a última linha estica, sem buraco. */
.hx-tiles,.hx-cards{--cols:3;display:flex;flex-wrap:wrap;gap:16px}
.hx-tiles{--fit-min:200px}
.hx-tiles > *,.hx-cards > *{flex:1 1 calc((100% - (var(--cols) - 1) * var(--fit-gap,16px)) / var(--cols));min-width:0}
.hx-tile{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:20px 22px;border-radius:26px;background:var(--raised);border:1px solid var(--line);color:var(--fg);text-decoration:none;
  transition:transform .2s,box-shadow .2s,border-color .2s;animation:mod-up .5s cubic-bezier(.2,.8,.2,1) both}
.hx-tile:nth-child(2){animation-delay:.06s}.hx-tile:nth-child(3){animation-delay:.12s}.hx-tile:nth-child(4){animation-delay:.18s}.hx-tile:nth-child(5){animation-delay:.24s}.hx-tile:nth-child(n+6){animation-delay:.3s}
.hx-tile::after{content:"";position:absolute;right:-50px;top:-50px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--mod) 16%,transparent),transparent 70%);pointer-events:none}
.hx-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--mod) 40%,var(--line))}
.hx-tile-top{display:flex;align-items:center;gap:9px;color:var(--mut);font-size:calc(13.5px*var(--fs));font-weight:600}
.hx-ic{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--mod-soft);color:var(--mod-ink)}.hx-ic svg{width:17px;height:17px}
.hx-big{font-size:calc(32px*var(--fs));font-weight:800;letter-spacing:-.01em;line-height:1.1}
.hx-sub{color:var(--mut);font-size:calc(13.5px*var(--fs))}
.hx-viz{display:block;margin-top:auto;padding-top:4px}
.hx-warn{color:var(--warn-ink,#a86400);font-weight:650}.hx-ok{color:var(--ok);font-weight:650}
.hx-cols7{display:flex;align-items:flex-end;gap:5px;height:34px}
.hx-cols7 i{flex:1;max-width:14px;border-radius:4px;background:color-mix(in srgb,var(--mod) 28%,var(--surface2));transition:height .7s cubic-bezier(.2,.8,.2,1)}
.hx-cols7 i.now{background:var(--mod)}
.hx-stack{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--surface3)}
.hx-stack i{display:block;height:100%;width:0;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.hx-stack .s1{background:var(--mod)}.hx-stack .s2{background:color-mix(in srgb,var(--mod) 55%,var(--surface))}.hx-stack .s3{background:color-mix(in srgb,var(--mod) 25%,var(--surface))}
.hx-duo{display:grid;gap:6px}
.hx-duo > span{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:8px;font-size:calc(12.5px*var(--fs))}
.hx-duo small{color:var(--mut)}.hx-duo b{font-weight:650}
.hx-duo i{display:block;height:8px;width:0;border-radius:999px;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.hx-duo i.in{background:var(--mod)}.hx-duo i.out{background:color-mix(in srgb,#e5484d 70%,var(--surface))}
.hx-ring-mini{display:flex;align-items:center;gap:10px}
.hx-ring-mini svg{width:44px;height:44px;transform:rotate(-90deg)}
.hx-ring-mini circle{fill:none;stroke-width:4.5}.hx-ring-mini .bg{stroke:var(--surface3)}
.hx-ring-mini .fg{stroke:var(--mod);stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray 1s cubic-bezier(.2,.8,.2,1)}
.hx-ring-mini small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.hx-cols{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.hx-hub{flex:999 1 620px;min-width:0}
.hx-side{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:16px;margin-top:28px}
.hx-cards{--fit-min:230px;--fit-gap:18px;gap:18px}
.hx-card{display:flex;flex-direction:column;overflow:hidden;border-radius:24px;background:var(--raised);border:1px solid var(--line);color:var(--fg);text-decoration:none;
  transition:transform .25s cubic-bezier(.3,1.3,.5,1),box-shadow .25s,border-color .25s;animation:mod-up .5s cubic-bezier(.2,.8,.2,1) both}
.hx-card:nth-child(2){animation-delay:.05s}.hx-card:nth-child(3){animation-delay:.1s}.hx-card:nth-child(4){animation-delay:.15s}.hx-card:nth-child(5){animation-delay:.2s}
.hx-card:nth-child(6){animation-delay:.25s}.hx-card:nth-child(n+7){animation-delay:.3s}
.hx-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--mod) 45%,var(--line))}
.hx-card.on{border-color:color-mix(in srgb,var(--mod) 35%,var(--line))}
.hx-cover{position:relative;height:124px;flex:none;background:linear-gradient(135deg,var(--mod-t1),var(--mod-t2))}
.hx-cover > svg{position:absolute;right:12px;top:10px;width:180px;height:104px;fill:none;stroke:none;animation:hx-floaty 5.6s ease-in-out infinite}
.hx-card:nth-child(even) .hx-cover > svg{animation-duration:6.3s}
.cv-w{fill:#fff}.cv-soft{fill-opacity:.7}
.hx-card:hover .cv-move{transform:translateX(58px)}.cv-move{transition:transform .6s cubic-bezier(.3,1.3,.5,1)}
.hx-card:hover .cv-bar{transform:scaleY(1.08)}.cv-bar{transform-box:fill-box;transform-origin:bottom;transition:transform .5s cubic-bezier(.3,1.3,.5,1)}
.hx-cover-ic{position:absolute;left:18px;bottom:-22px;width:52px;height:52px;display:grid;place-items:center;border-radius:17px;background:var(--mod);color:var(--mod-on);box-shadow:0 6px 16px color-mix(in srgb,var(--mod-ink) 30%,transparent)}
.hx-cover-ic svg{width:24px;height:24px}
.hx-card-b{display:flex;flex-direction:column;gap:8px;padding:32px 18px 18px;flex:1}
.hx-card-t{display:flex;justify-content:space-between;align-items:center;gap:8px}
.hx-card-t h3{margin:0;font-size:calc(18px*var(--fs))}
.hx-card-p{color:var(--fg2);font-size:calc(14px*var(--fs));line-height:1.4}
.hx-card-l{display:flex;gap:6px;align-items:flex-start;margin-top:auto;color:var(--mut);font-size:calc(12.5px*var(--fs))}.hx-card-l svg{width:14px;height:14px;margin-top:1px}
.hx-card-go{color:var(--mod-ink);font-weight:700;font-size:calc(13.5px*var(--fs))}
.hx-soon{display:flex;flex-wrap:wrap;gap:10px}
.hx-soon a{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px dashed var(--line2);color:var(--fg2);text-decoration:none;font-size:calc(14px*var(--fs))}
.hx-soon a svg{width:16px;height:16px;color:var(--mod-ink)}.hx-soon a span{color:var(--mut)}
.hx-next{display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:26px;background:linear-gradient(135deg,var(--mod-t1),var(--mod-t2));border:1px solid color-mix(in srgb,var(--mod) 25%,transparent);animation:mod-up .5s .1s cubic-bezier(.2,.8,.2,1) both}
.hx-kicker{color:var(--mod-ink);font-size:calc(12.5px*var(--fs));font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.hx-next strong{font-size:calc(18.5px*var(--fs));line-height:1.3}
.hx-next > span:not(.hx-kicker){color:var(--fg2);font-size:calc(14px*var(--fs))}
.hx-box{display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:26px;background:var(--raised);border:1px solid var(--line);animation:mod-up .5s .16s cubic-bezier(.2,.8,.2,1) both}
.hx-box-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.hx-box-h strong{font-size:calc(17px*var(--fs))}.hx-box-h a{font-size:calc(13.5px*var(--fs));font-weight:650}
.hx-person{display:flex;align-items:center;gap:12px}
.hx-person img,.hx-av{width:44px;height:44px;flex:none;border-radius:50%;object-fit:cover;background:var(--surface2);display:grid;place-items:center;font-weight:800}
.hx-person > span{flex:1;min-width:0;display:flex;flex-direction:column}
.hx-person strong{font-size:calc(14.5px*var(--fs));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hx-person small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.hx-person em{display:inline-flex;align-items:center;gap:6px;font-style:normal;color:var(--ok);font-size:calc(12.5px*var(--fs));font-weight:700}
.hx-person em::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok);animation:hx-blink 2.4s ease-in-out infinite}
.hx-note{margin:0;padding:12px 14px;border-radius:16px;background:var(--surface2);color:var(--fg2);font-size:calc(13.5px*var(--fs))}
.hx-proj{display:flex;flex-direction:column;gap:8px;color:var(--fg);text-decoration:none}
.hx-proj > span:first-child{display:flex;justify-content:space-between;gap:8px;font-size:calc(14px*var(--fs))}.hx-proj small{color:var(--mut)}
.hx-new{font-weight:650;font-size:calc(14px*var(--fs))}
:root[data-theme=dark] .cv-w{fill:rgba(255,255,255,.16)}
:root[data-theme=dark] .hx-hero{background:#060a12;border:1px solid rgba(255,255,255,.06)}
@keyframes hx-spin{to{transform:rotate(360deg)}}
@keyframes hx-flow{to{stroke-dashoffset:-22}}
@keyframes hx-blink{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes hx-floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes hx-shine{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){
  .hx-do-a::after{display:none}.hx-do-a:hover,.hx-do-a:hover .hx-do-ic,.hx-do-a:hover .hx-do-go{transform:none}
  .hx-need a,.hx-do-a,.hx-help,.hx-orbit,.hx-core,.hx-node span,.hx-link,.hx-dot,.hx-glow,.hx-cover > svg,.hx-person em::before,.hx-skel div,.hx-hero,.hx-todo a,.hx-tile,.hx-card,.hx-next,.hx-box{animation:none}
  .hx-card,.hx-tile,.cv-move,.cv-bar{transition:none}
}
@media (max-width:760px){
  .hx-hero{padding:24px 20px;border-radius:24px;gap:18px}
  .hx-hero h1{font-size:calc(32px*var(--fs))}
  .hx-lead{font-size:calc(15.5px*var(--fs))}
  .hx-todo a{width:100%;flex-wrap:wrap}
  .hx-cta{margin-left:auto}
  .hx-orbit-wrap{flex-basis:100%}
  .hx-orbit-box{width:238px;height:238px}
  .hx-orbit{position:absolute;left:-51px;top:-51px;scale:.7}
  .hx-meter{width:100%}
  .hx-tiles{--fit-min:9999px}
  .hx-need{grid-template-columns:minmax(0,1fr)}
  .hx-need-go{display:none}
  .hx-do{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hx-tile{padding:16px 18px;border-radius:22px}
  .hx-big{font-size:calc(27px*var(--fs))}
  /* Hub no celular: duas colunas compactas (capa menor, sem a descrição) e o próximo passo antes do Hub. */
  .hx-cards{--fit-min:140px;--fit-gap:12px;gap:12px}
  .hx-cover{height:78px}
  .hx-cover > svg{right:6px;top:6px;width:112px;height:66px}
  .hx-cover-ic{left:12px;bottom:-18px;width:40px;height:40px;border-radius:13px}.hx-cover-ic svg{width:19px;height:19px}
  .hx-card-b{padding:24px 12px 14px;gap:6px}
  .hx-card-t{flex-direction:column;align-items:flex-start;gap:6px}
  .hx-card-t h3{font-size:calc(15.5px*var(--fs))}
  .hx-card-p,.hx-card-l{display:none}
  .hx-side{order:-1;margin-top:20px}
  .hx-sec{margin-top:22px}
  .hx-duo > span{grid-template-columns:96px 1fr auto}
}
@media (prefers-reduced-motion:reduce){
  body[data-mod] #view .head,body[data-mod] #view .head::after,body[data-mod] .fin-kpi,body[data-mod] .fin-kpi::before,body[data-mod] .pxg-fab::after{animation:none}
}
@media (max-width:760px){
  body[data-mod] #view > .head:first-child,body[data-mod] #view > :first-child > .head:first-child{padding:16px 18px;border-radius:18px}
}

/* ---------- Estoque (estoque.js = PxStock, abas Estoque do PDV e do Fiscal; 2026-11-04) ---------- */
.st-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0}
.st-bar input:not([type=date]){flex:1 1 240px;min-width:0}
.st-dlg .st-bar > select,.st-dlg .st-bar > input[type=date]{flex:0 1 auto;width:auto;min-width:0}
@media (max-width:760px){.st-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.st-kpis .fin-kpi:first-child{grid-column:1/-1}}
.st-table td{vertical-align:middle}
.st-acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.st-dlg form{width:min(760px,100%)}
.st-kinds{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;border:0;padding:0;margin:6px 0 14px}
.st-kind{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:14px;cursor:pointer;background:var(--raised);transition:border-color .15s,background .15s}
.st-kind:hover{border-color:var(--line2)}
.st-kind:has(input:checked){border-color:var(--mod,var(--acc));background:var(--mod-soft,var(--acc-soft))}
.st-kind input{margin-top:3px}
.st-kind span{display:flex;flex-direction:column;gap:2px}
.st-kind small{color:var(--mut);font-size:calc(12.5px*var(--fs));line-height:1.35}
.st-preview{min-height:1.4em;margin:4px 0 0;font-size:calc(14.5px*var(--fs))}
.st-min{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;padding:12px 14px;margin:6px 0 12px;border-radius:14px;background:var(--surface2)}
.st-min label{font-weight:650}
.st-min input{width:130px}
.st-min .mut{flex-basis:100%}
.st-moves td.pos{color:var(--ok,#1f7a52);font-weight:650}
.st-moves td.neg{color:var(--bad,#c2382f);font-weight:650}
button.fin-kpi:disabled{cursor:default}

/* Financeiro da IA → preço do crédito (admin.js pricesCard): um cartão por tipo com o lucro de cada pacote. */
.aip-formula{margin:0;padding:12px 14px;border-radius:14px;background:var(--surface2);color:var(--fg2);font-size:calc(13.5px*var(--fs))}
.aip-scen{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:14px;padding:4px;border-radius:14px;background:var(--surface2);width:fit-content;max-width:100%}
.aip-scen > span{padding:0 10px;color:var(--mut);font-size:calc(13px*var(--fs));font-weight:700}
.aip-scen button{min-height:34px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--fg2);font:inherit;font-size:calc(13px*var(--fs));font-weight:700;cursor:pointer}
.aip-scen button[aria-pressed=true]{background:var(--ink,#1b1c20);color:var(--surface,#fff)}
.aip-scen button:focus-visible{outline:0;box-shadow:var(--focus)}
.aip-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.aip-card{display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:22px;border:1px solid var(--line);background:var(--raised)}
.aip-card > div:first-child{display:flex;flex-direction:column}.aip-card > div:first-child strong{font-size:calc(17px*var(--fs))}.aip-card > div:first-child small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.aip-line{display:flex;justify-content:space-between;gap:10px;font-size:calc(13.5px*var(--fs))}.aip-line span{color:var(--mut)}
.aip-floor{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 12px;border-radius:14px;background:var(--info-soft,var(--surface2))}
.aip-floor span{font-size:calc(13.5px*var(--fs));font-weight:700}.aip-floor strong{font-size:calc(22px*var(--fs));font-weight:800;color:var(--info,var(--acc))}
.aip-h{margin-top:6px;color:var(--mut);font-size:calc(12px*var(--fs));font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.aip-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;font-size:calc(13.5px*var(--fs))}.aip-row small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.aip-pct{min-width:56px;padding:2px 8px;border-radius:999px;text-align:right;font-size:calc(12.5px*var(--fs));font-weight:800}
.aip-pct.ok{background:var(--ok-soft,#e5f3c9);color:var(--ok-ink,#2f6a00)}.aip-pct.warn{background:var(--warn-soft,#fdefd3);color:var(--warn-ink,#8a5200)}.aip-pct.bad{background:var(--bad-soft,#fbe3e1);color:var(--bad-ink,#b3261e)}
:root[data-theme=dark] .aip-pct.ok{color:#bfe68a}:root[data-theme=dark] .aip-pct.warn{color:#f3c969}:root[data-theme=dark] .aip-pct.bad{color:#ffaaa3}
.aip-more summary{cursor:pointer;font-weight:700}

/* Motor da equipe digital (assets/acoes.js e aiagents.js "A equipe no trabalho"): propostas, avisos, histórico e regras de cada ação. */
.pxact-k{color:var(--mut);font-size:calc(11.5px*var(--fs));font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.fx-prop:has([data-pok]:not([disabled])){border-color:color-mix(in srgb,var(--acc) 45%,var(--line2))}
.fx-prop.pxact-aviso{border-style:dashed;border-color:color-mix(in srgb,var(--warn,#e0a100) 60%,var(--line2))}
.aiv-mot-n{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--acc);color:#fff;font-size:calc(11.5px*var(--fs))}
.aiv-mot-list{display:flex;flex-direction:column;gap:12px}
.aiv-mot-item{padding:14px 16px;border-radius:18px;background:var(--raised);border:1px solid var(--line)}
.aiv-mot-item .fx-prop{margin-top:8px}
.aiv-mot-meta{color:var(--fg2);font-size:calc(13px*var(--fs))}
.aiv-mot-empty{padding:18px;border-radius:18px;background:var(--surface2);margin:0}
.aiv-mot-hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-radius:18px;border:1px solid var(--line);background:var(--raised);overflow:hidden}
.aiv-mot-hist li{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-top:1px solid var(--line)}
.aiv-mot-hist li:first-child{border-top:0}
.aiv-mot-hist li.undone strong{text-decoration:line-through;color:var(--mut)}
.aiv-mot-hist li > div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.aiv-mot-hist strong{font-size:calc(14px*var(--fs))}.aiv-mot-hist small{color:var(--mut);font-size:calc(12.5px*var(--fs))}
.aiv-mot-ic{width:26px;flex:none;text-align:center;font-size:calc(16px*var(--fs))}
.aiv-rules-modes{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 12px;color:var(--fg2);font-size:calc(13px*var(--fs))}
.aiv-rules-g{margin:0 0 14px;padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:var(--raised)}
.aiv-rules-g legend{padding:0 6px;font-weight:800;font-size:calc(15px*var(--fs))}
.aiv-rule{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.aiv-rule:first-of-type{border-top:0}
.aiv-rule-t{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.aiv-rule-t small{flex-basis:100%;color:var(--mut);font-size:calc(12.5px*var(--fs))}
.aiv-rule select,.aiv-rule > input{width:auto;min-width:160px;flex:none}
.aiv-rule-lim{flex-basis:100%;display:flex;align-items:center;gap:8px;color:var(--fg2);font-size:calc(12.5px*var(--fs))}
.aiv-rule-lim input{width:140px}
.aiv-rules-soon{margin-top:8px;color:var(--mut);font-size:calc(13px*var(--fs))}
.aiv-rules-soon summary{cursor:pointer;font-weight:700}
.aiv-rules-soon ul{margin:6px 0 0;padding-left:18px}
@media (max-width:760px){.aiv-rule{flex-direction:column;align-items:stretch}.aiv-rule select,.aiv-rule > input{width:100%}}

/* ---------- Loja virtual: telas de gestão (assets/lojapainel.js = PxStore, 2026-11-05) ---------- */
.lj-check h2{margin-bottom:10px}
.lj-checklist{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}
.lj-checklist li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--raised)}
.lj-checklist li>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;flex:none;font-weight:700;background:var(--surface);color:var(--mut);box-shadow:inset 0 0 0 1px var(--line)}
.lj-checklist li.ok>span{background:var(--mod,#2fa9c7);color:#fff;box-shadow:none}
.lj-checklist li>div{flex:1;display:flex;flex-direction:column;min-width:0}
.lj-checklist li.ok strong{color:var(--mut);font-weight:500}
.lj-checklist li.warn>span{background:var(--warn-soft);color:var(--warn-ink,var(--warn));box-shadow:inset 0 0 0 1px var(--warn)}
.lj-funnel{list-style:none;margin:8px 0 12px;padding:0}
.lj-funnel li{padding:6px 0;border-bottom:1px solid var(--line);font-size:calc(14px*var(--fs))}
.lj-funnel b{display:inline-block;min-width:44px;font-size:calc(16px*var(--fs));color:var(--mod-ink,var(--ink))}
.lj-prow{display:flex;gap:10px;align-items:center}
.lj-prow img{width:44px;height:44px;border-radius:10px;object-fit:cover;background:var(--raised);flex:none}
.lj-warn{color:#b4541c}
:root[data-theme=dark] .lj-warn{color:#f7a774}
.lj-fs{border:0;margin:0;padding:0;min-width:0}
.lj-photos{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.lj-photos figure{margin:0;display:flex;flex-direction:column;gap:4px;align-items:center}
.lj-photos img{width:96px;height:96px;object-fit:cover;border-radius:12px;background:var(--raised)}
.lj-photos figcaption{display:flex;gap:4px;align-items:center}
.lj-opt-row{align-items:end}
.lj-serp{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:12px;display:flex;flex-direction:column;gap:3px;background:var(--surface)}
.lj-serp small{color:#1e7e34;font-size:calc(12.5px*var(--fs));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lj-serp b{color:#1a0dab;font-weight:500;font-size:calc(17px*var(--fs))}
.lj-serp span{color:var(--fg2);font-size:calc(13.5px*var(--fs))}
:root[data-theme=dark] .lj-serp b{color:#8ab4f8}:root[data-theme=dark] .lj-serp small{color:#7fd09a}
.lj-sumline{display:flex;justify-content:space-between;margin:6px 0;font-size:calc(14px*var(--fs))}
.lj-total{border-top:1px solid var(--line);padding-top:8px;font-size:calc(16px*var(--fs))}
.lj-hist{list-style:none;margin:0;padding:0 0 0 16px;border-left:2px solid var(--line)}
.lj-hist li{display:flex;flex-direction:column;margin:0 0 10px;font-size:calc(14px*var(--fs))}
.lj-prov h3{display:flex;align-items:center;gap:8px;margin:0;font-size:calc(16px*var(--fs))}
.lj-dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.lj-rowx{align-items:end;border-bottom:1px dashed var(--line);padding-bottom:8px;margin-bottom:8px}
.lj-tpls{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:0 0 14px}
.lj-tpl{display:flex;flex-direction:column;gap:6px;align-items:center;font-size:calc(13.5px*var(--fs));cursor:pointer}
.lj-tpl input{position:absolute;opacity:0}
.lj-tpl span{width:100%;aspect-ratio:4/3;border-radius:12px;border:2px solid var(--line);background:linear-gradient(var(--raised) 22%,transparent 22%),repeating-linear-gradient(90deg,var(--line) 0 28%,transparent 28% 36%)}
.lj-tpl .lj-tpl-classico{background:linear-gradient(var(--mod,#2fa9c7) 8%,var(--raised) 8% 24%,transparent 24%),repeating-linear-gradient(90deg,var(--line) 0 28%,transparent 28% 36%)}
.lj-tpl .lj-tpl-minimal{background:linear-gradient(transparent 70%,var(--line) 70% 76%,transparent 76%),repeating-linear-gradient(90deg,var(--line) 0 44%,transparent 44% 56%)}
.lj-tpl input:checked+span{border-color:var(--mod,#2fa9c7);box-shadow:0 0 0 3px color-mix(in srgb,var(--mod,#2fa9c7) 25%,transparent)}
.lj-tpl input:focus-visible+span{outline:2px solid var(--mod,#2fa9c7);outline-offset:2px}
.lj-logos{display:flex;gap:24px;flex-wrap:wrap}
.lj-logos>div{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.lj-logos img{max-width:160px;max-height:60px;object-fit:contain;background:var(--raised);border-radius:8px}
.lj-ban{display:grid;grid-template-columns:160px 1fr;gap:12px;align-items:start;border-bottom:1px solid var(--line);padding:10px 0}
.lj-ban img{width:160px;height:60px;object-fit:cover;border-radius:8px}
.lj-ban .actions{grid-column:2}
@media (max-width:640px){.lj-ban{grid-template-columns:1fr}.lj-ban .actions{grid-column:1}}
.lj-sec-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.lj-sec-row b{min-width:180px;font-size:calc(14px*var(--fs))}
.lj-sec-row input,.lj-sec-row select,.lj-sec-row textarea{flex:1;min-width:160px}
.fin-dlg.lj-wide{max-width:760px}
.lj-vtab input:not([type=checkbox]){width:92px;min-width:70px}.lj-vtab select{min-width:90px}
.lj-kpi-link,.lj-kpi-link:hover{text-decoration:none;color:inherit}
.lj-rowx{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}

/* Loja: modelos por segmento (Aparência: modelo = segmento, estilo = aparência; miniaturas só com CSS) */
.lj-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:10px 0}
.lj-picks-3{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.lj-pick-h{font-size:calc(14px*var(--fs));margin:0 0 4px}
.lj-pick{position:relative;display:flex;flex-direction:column;gap:4px;cursor:pointer;padding:8px 8px 10px;border:1px solid var(--line);border-radius:14px;background:var(--raised)}
.lj-pick input{position:absolute;opacity:0;pointer-events:none}
.lj-pick b{font-size:calc(14px*var(--fs));display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lj-pick small{font-size:calc(12px*var(--fs));color:var(--mut);line-height:1.3}
.lj-pick-on{font-style:normal;font-size:calc(10.5px*var(--fs));font-weight:800;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--mod,#2fa9c7) 18%,transparent);color:var(--mod-ink,#1b6f86)}
.lj-pick:has(input:checked){border-color:var(--mod,#2fa9c7);box-shadow:0 0 0 3px color-mix(in srgb,var(--mod,#2fa9c7) 22%,transparent)}
.lj-pick:has(input:focus-visible){outline:2px solid var(--mod,#2fa9c7);outline-offset:2px}
.lj-mini{display:grid;width:100%;aspect-ratio:4/3;border-radius:9px;border:1px solid var(--line);background:var(--surface,var(--raised));padding:6px;gap:4px;overflow:hidden;box-sizing:border-box}
.lj-mini i{display:block;background:var(--line);border-radius:3px;min-height:0}
.lj-mini i:nth-child(1){grid-area:a}.lj-mini i:nth-child(2){grid-area:b}.lj-mini i:nth-child(3){grid-area:c}.lj-mini i:nth-child(4){grid-area:d}.lj-mini i:nth-child(5){grid-area:e}.lj-mini i:nth-child(6){grid-area:f}
/* modelos */
.lj-mini-m-geral{grid-template:"a a a a" 12% "b b b b" 1fr "c d e f" 1fr/1fr 1fr 1fr 1fr}
.lj-mini-m-geral i:nth-child(2){background:color-mix(in srgb,var(--mod,#2fa9c7) 35%,var(--line))}
.lj-mini-m-moda{grid-template:"a a a" 12% "b b b" 9% "c d e" 1fr/1fr 1fr 1fr}
.lj-mini-m-moda i:nth-child(2){background:repeating-linear-gradient(90deg,var(--mod,#2fa9c7) 0 14%,transparent 14% 20%);opacity:.55}
.lj-mini-m-moda i:nth-child(6){display:none}
.lj-mini-m-casa{grid-template:"a a a a" 12% "b b b b" 1fr "c d e f" 34%/1fr 1fr 1fr 1fr}
.lj-mini-m-casa i:nth-child(n+3){background:color-mix(in srgb,var(--mod,#2fa9c7) 22%,var(--raised));border:1px solid color-mix(in srgb,var(--mod,#2fa9c7) 40%,transparent)}
.lj-mini-m-beleza{grid-template:"a a a a" 12% "b b b b" 14% "c d e f" 1fr/1fr 1fr 1fr 1fr}
.lj-mini-m-beleza i:nth-child(2){background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--mod,#2fa9c7) 45%,transparent) 0 22%,transparent 22% 26%);border-radius:999px}
.lj-mini-m-beleza i:nth-child(n+3){border-radius:50% 50% 4px 4px}
.lj-mini-m-mercado{grid-template:"a a a a" 14% "b b b b" 8% "c d e f" 1fr/1fr 1fr 1fr 1fr}
.lj-mini-m-mercado i:nth-child(1){background:var(--mod,#2fa9c7)}
.lj-mini-m-mercado i:nth-child(n+3){background:linear-gradient(var(--line) 58%,transparent 58% 66%,color-mix(in srgb,var(--mod,#2fa9c7) 70%,transparent) 66% 80%,transparent 80%)}
.lj-mini-d-mercado-01{grid-template:"a a a" 9% "b b b" 44% "c c c" 9% "d e f" 1fr/1fr 1fr 1fr;background:#fff}
.lj-mini-d-mercado-01 i:nth-child(1){background:linear-gradient(90deg,var(--line) 0 30%,transparent 30% 42%,#0e5a3a 42% 58%,transparent 58% 78%,var(--line) 78%)}
.lj-mini-d-mercado-01 i:nth-child(2){background:radial-gradient(40% 50% at 50% 100%,#ff5a1f 0 40%,transparent 41%),linear-gradient(transparent 18%,#a6e36b 18% 40%,transparent 40%),#0e5a3a;border-radius:6px}
.lj-mini-d-mercado-01 i:nth-child(3){background:repeating-linear-gradient(90deg,#e3f5ec 0 18%,transparent 18% 20.5%,#ece8fb 20.5% 38.5%,transparent 38.5% 41%,#fde7ec 41% 59%,transparent 59% 61.5%);border-radius:4px}
.lj-mini-d-mercado-01 i:nth-child(n+4){background:linear-gradient(var(--line) 60%,transparent 60% 70%,#0e5a3a 70% 84%,transparent 84%);border-radius:4px}
.lj-mini-m-cardapio{grid-template:"a a" 12% "b f" 10% "c f" 1fr "d f" 1fr "e f" 1fr/2.2fr 1fr}
.lj-mini-m-cardapio i:nth-child(2){background:repeating-linear-gradient(90deg,var(--ink) 0 20%,transparent 20% 24%,var(--line) 24% 44%,transparent 44% 48%);opacity:.6;border-radius:999px}
.lj-mini-m-cardapio i:nth-child(n+3):nth-child(-n+5){background:linear-gradient(90deg,color-mix(in srgb,var(--mod,#2fa9c7) 35%,var(--line)) 0 22%,var(--line) 22%)}
.lj-mini-m-cardapio i:nth-child(6){background:color-mix(in srgb,var(--mod,#2fa9c7) 14%,var(--raised));border:1px solid var(--line)}
.lj-mini-m-servicos{grid-template:"a a a" 12% "b b b" 22% "c d e" 1fr/1fr 1fr 1fr}
.lj-mini-m-servicos i:nth-child(n+3){background:linear-gradient(var(--line) 72%,transparent 72% 78%,var(--mod,#2fa9c7) 78%)}
.lj-mini-m-servicos i:nth-child(6){display:none}
/* estilos */
.lj-mini-s-moderno,.lj-mini-s-classico,.lj-mini-s-minimal{grid-template:"a a a" 14% "b b b" 1fr "c d e" 34%/1fr 1fr 1fr}
.lj-mini-s-moderno i{border-radius:7px}.lj-mini-s-moderno i:nth-child(2){background:var(--ink);opacity:.8}
.lj-mini-s-classico{background:color-mix(in srgb,#e9dfd0 40%,var(--surface,var(--raised)))}
.lj-mini-s-classico i{border-radius:1px}.lj-mini-s-classico i:nth-child(1){border-bottom:3px double var(--mod,#2fa9c7);background:transparent}
.lj-mini-s-classico i:nth-child(2){background:color-mix(in srgb,#c9b79c 45%,var(--line))}
.lj-mini-s-minimal i{border-radius:0}.lj-mini-s-minimal i:nth-child(2){background:color-mix(in srgb,var(--ink) 12%,var(--line))}.lj-mini-s-minimal i:nth-child(4){display:none}
.lj-mini-s-minimal{grid-template:"a a" 10% "b b" 1fr "c e" 34%/1fr 1fr}
.lj-extra summary{list-style:none;cursor:pointer}.lj-extra summary::-webkit-details-marker{display:none}.lj-extra summary h2{display:inline}
@media (prefers-reduced-motion:no-preference){.lj-pick{transition:border-color .15s,box-shadow .15s}}

/* Agenda (assets/agendapainel.js = PxAgenda): o dia por pessoa, a semana, os cartões da equipe e os canais de captação. */
.ag-wide{width:min(860px,96vw)}
/* Janelas da Agenda: grade fixa (2 ou 3 colunas no computador, 1 no celular) e o espaço vertical só do .field, igual em todas. */
.ag-dlg .grid{gap:0 16px;align-items:start}
.ag-dlg .grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.ag-dlg .grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.ag-dlg h2{margin:0 0 14px}.ag-dlg .ag-fs{margin:4px 0 14px}.ag-dlg .check{display:flex;gap:8px;align-items:center;margin:6px 0}
.ag-dlg .actions{margin:6px 0 14px;display:flex;flex-wrap:wrap;gap:8px}
.ag-help{display:block;margin-top:6px;color:var(--mut);font-size:calc(12px*var(--fs));line-height:1.4}
.ag-hwrap{overflow-x:auto}.ag-fs,.lj-fs,.ag-fs-plain{min-width:0}.ag-htbl th,.ag-htbl td{vertical-align:middle}
.ag-hpair{display:inline-flex;align-items:center;gap:6px}.ag-htbl .ag-hpair input{width:auto;min-width:0;padding:6px 8px;height:36px}
@media (max-width:640px){.ag-dlg .grid.two,.ag-dlg .grid.three{grid-template-columns:minmax(0,1fr)}}
.ag-wide .grid{align-items:start}.ag-wide select{height:44px;min-height:0}
.ag-between{justify-content:space-between;align-items:center}
.ag-seg{display:inline-flex;gap:4px}.ag-seg [aria-pressed=true]{background:var(--mod,var(--acc));border-color:var(--mod,var(--acc));color:var(--mod-on,#fff)}
.ag-bar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}
.ag-bar .row{align-items:center}
.ag-date input{height:34px;border:1px solid var(--line2);border-radius:var(--r);background:var(--raised);color:var(--fg);padding:0 8px;font:inherit;font-size:calc(14px*var(--fs))}
.ag-cal{overflow-x:auto;padding:0}.ag-cal>p{padding:10px 14px;margin:0}
.ag-grid{display:flex;min-width:min-content}
.ag-times{flex:0 0 56px;border-right:1px solid var(--line)}
.ag-col{flex:1 0 170px;border-right:1px solid var(--line);min-width:0}
.ag-col:last-child{border-right:0}
.ag-col-head{height:42px;display:flex;align-items:center;gap:8px;padding:0 12px;font-weight:700;font-size:calc(14px*var(--fs));border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--raised);z-index:2}
.ag-col-body{position:relative}
.ag-hour{border-bottom:1px dashed var(--line);box-sizing:border-box;font-size:calc(11px*var(--fs));color:var(--mut);padding:0 6px}
.ag-hour:not(.half){border-bottom-style:solid}
.ag-dot{width:12px;height:12px;border-radius:50%;background:var(--ag-c,var(--mod));flex:none;display:inline-block}
.ag-slot{position:absolute;left:0;right:0;border:0;background:color-mix(in srgb,var(--mod,var(--acc)) 4%,transparent);border-bottom:1px dashed var(--line);cursor:pointer;padding:0}
.ag-slot:hover,.ag-slot:focus-visible{background:color-mix(in srgb,var(--mod,var(--acc)) 16%,transparent);outline:none}
.ag-ev{position:absolute;left:4px;right:4px;z-index:1;text-align:left;border:0;border-left:4px solid var(--ag-c,var(--mod));border-radius:8px;padding:4px 8px;cursor:pointer;
  background:color-mix(in srgb,var(--ag-c,var(--mod)) 16%,var(--raised));color:var(--fg);overflow:hidden;display:flex;flex-direction:column;gap:1px;font:inherit}
.ag-ev strong{font-size:calc(12px*var(--fs));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-ev small{font-size:calc(11px*var(--fs));color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-ev.st-aguardando{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ag-c,var(--mod)) 12%,var(--raised)) 0 6px,var(--raised) 6px 12px)}
.ag-ev.st-concluido{opacity:.6}.ag-ev.st-faltou{border-left-color:var(--bad);opacity:.7}
.ag-block{position:absolute;left:0;right:0;background:repeating-linear-gradient(45deg,var(--surface3) 0 6px,transparent 6px 12px);color:var(--mut);font-size:calc(11px*var(--fs));padding:4px 8px;box-sizing:border-box;pointer-events:none}
.ag-off{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--mut);font-size:calc(13px*var(--fs));background:var(--surface2)}
.ag-weekgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.ag-wcol{padding:10px;display:flex;flex-direction:column;gap:6px}
.ag-wcol.is-today{border-color:var(--mod,var(--acc))}
.ag-wcol-head{display:flex;justify-content:space-between;align-items:baseline;text-decoration:none;color:var(--fg);font-size:calc(14px*var(--fs))}
.ag-wcol-head small{color:var(--mut)}
.ag-wev{text-align:left;border:0;border-left:3px solid var(--ag-c,var(--mod));background:var(--surface2);border-radius:6px;padding:6px 8px;cursor:pointer;font:inherit;font-size:calc(13px*var(--fs));color:var(--fg);display:flex;flex-direction:column}
.ag-wev small{color:var(--mut);font-size:calc(11px*var(--fs))}
.ag-wev.st-aguardando{border-left-style:dashed}
.ag-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end;height:150px;margin-top:10px}
.ag-wday{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%;text-decoration:none;color:var(--fg)}
.ag-wbar{width:70%;max-width:36px;border-radius:6px 6px 2px 2px;background:var(--mod,var(--acc));min-height:2px;display:block}
.ag-wday strong{font-size:calc(12px*var(--fs))}.ag-wday small{font-size:calc(11px*var(--fs));color:var(--mut);white-space:nowrap}
.ag-today{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ag-today-row{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);border-radius:var(--r);background:var(--raised);padding:8px 12px;cursor:pointer;font:inherit;color:var(--fg)}
.ag-today-row:hover{border-color:var(--mod,var(--acc))}
.ag-today-row>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}
.ag-today-row small{color:var(--mut);font-size:calc(12px*var(--fs))}
.ag-time{font-weight:800;font-variant-numeric:tabular-nums;font-size:calc(15px*var(--fs));color:var(--mod-ink,var(--fg))}
.ag-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.ag-chip{border:1px solid var(--line2);background:var(--raised);color:var(--fg);border-radius:999px;padding:6px 12px;cursor:pointer;font:inherit;font-size:calc(13px*var(--fs));font-variant-numeric:tabular-nums;min-height:34px}
.ag-chip[aria-pressed=true]{background:var(--mod,var(--acc));border-color:var(--mod,var(--acc));color:var(--mod-on,#fff)}
.ag-fs{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;margin:10px 0}
.ag-fs legend{font-weight:700;font-size:calc(13px*var(--fs));padding:0 4px}
.ag-fs-plain{border:0;padding:0;margin:0}
.ag-found{display:flex;flex-direction:column;gap:4px;margin-top:4px}
.ag-found-row{text-align:left;border:1px solid var(--line);background:var(--surface2);border-radius:8px;padding:6px 10px;cursor:pointer;font:inherit;color:var(--fg);display:flex;flex-direction:column}
.ag-found-row small{color:var(--mut);font-size:calc(12px*var(--fs))}
.ag-checks{display:flex;flex-wrap:wrap;gap:6px 16px}
.ag-dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:8px 0 14px;font-size:calc(14px*var(--fs))}
.ag-dl dt{color:var(--mut)}.ag-dl dd{margin:0}
.ag-hist{margin:6px 0 0;padding-left:18px;font-size:calc(13px*var(--fs));display:flex;flex-direction:column;gap:4px}
.ag-hist small{color:var(--mut)}
.ag-click{cursor:pointer}.ag-click:hover td{background:var(--surface2)}
.ag-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.ag-person-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.ag-person-head>div{flex:1;min-width:0;display:flex;flex-direction:column}
.ag-person-head small{color:var(--mut);font-size:calc(12px*var(--fs))}
.ag-hours{list-style:none;margin:0;padding:0;font-size:calc(13px*var(--fs));display:flex;flex-direction:column;gap:3px}
.ag-hours li{display:flex;justify-content:space-between;gap:8px}.ag-hours li span:first-child{color:var(--mut);width:36px}
.ag-htbl{width:100%;font-size:calc(13px*var(--fs))}.ag-htbl th{text-align:left;font-weight:600;padding:4px 6px}.ag-htbl td{padding:4px 6px;white-space:nowrap}

.ag-colors{display:flex;flex-wrap:wrap;gap:8px}
.ag-color input{position:absolute;opacity:0;width:1px;height:1px}
.ag-color span{display:block;width:30px;height:30px;border-radius:50%;border:3px solid var(--raised);box-shadow:0 0 0 1px var(--line2);cursor:pointer}
.ag-color input:checked+span{box-shadow:0 0 0 2px var(--fg)}.ag-color input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
.ag-captors{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.ag-captor{border-top:4px solid var(--line2)}.ag-captor.on{border-top-color:var(--ok)}
.ag-captor h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ag-url{flex:1;min-width:0;height:34px;border:1px solid var(--line2);border-radius:var(--r);background:var(--surface2);color:var(--fg);padding:0 8px;font:inherit;font-size:calc(13px*var(--fs))}
.ag-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.ag-links h3{margin:4px 0 8px;color:var(--mut);font-weight:600}
.ag-link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ag-link{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--r);padding:8px 10px;background:var(--raised)}
.ag-link>div{flex:1;min-width:0;display:flex;flex-direction:column}
.ag-link small{color:var(--mut);font-size:calc(12px*var(--fs))}
.ag-link-ic{font-size:calc(18px*var(--fs));width:28px;text-align:center}
.ag-chan{border-style:dashed}.ag-chan.on{border-style:solid;border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.ag-gate{border-left:4px solid var(--warn)}
.ag-offer-card{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}.ag-offer-card>div{flex:1 1 320px;min-width:0}
.ag-offer-card h2{margin:0 0 4px}
.ag-grow{flex:1 1 280px;min-width:0}
.ag-hint{align-self:end;margin:0 0 10px}
.ag-wa-list{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.ag-wa-list li{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;border:1px solid var(--line);border-radius:var(--r);padding:10px 12px}
.ag-wa-list li>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.ag-wa-list small{color:var(--mut);font-size:calc(12px*var(--fs));line-height:1.45}.ag-wa-list code{font-size:calc(11px*var(--fs));color:var(--mut)}
.bad-text{color:var(--bad)!important}
.ag-blk{padding:6px 0;border-bottom:1px solid var(--line)}.ag-blk:last-child{border-bottom:0}
@media (max-width:760px){.ag-col{flex-basis:150px}.ag-week{height:120px}.ag-dl{grid-template-columns:1fr}.ag-dl dt{margin-top:6px}}

/* Formulários da Loja e da Agenda nas telas: dentro dos cartões, as grades usam o espaço do cartão (não caem para 1 coluna à toa) e o espaço
   entre as linhas é só o do .field, igual em todos os campos; as caixas de marcar ficam uma embaixo da outra, com respiro. */
.lj-fs .card .grid,.ag-fs-plain .grid{row-gap:0;column-gap:16px;align-items:end}
.lj-fs .card .grid.two{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}
.lj-fs .card .grid.three{grid-template-columns:repeat(auto-fit,minmax(min(112px,100%),1fr))}
.lj-fs .card>.check,.lj-fs details>.check,.ag-fs-plain>.check{display:flex;align-items:center;gap:8px;margin:8px 0}
.lj-fs .card>h2+.check{margin-top:12px}
.lj-fs .card>.check+.field{margin-top:14px}
.lj-fs .card>p.mut.small,.lj-fs .card>.small.mut{margin:6px 0 14px}
.lj-fs .card .field>small.mut{display:block;margin-top:6px}

/* Jurídico e Contabilidade (assets/juridico.js, assets/contabil.js): demanda com a conversa, listas, áreas, proposta e parcelas. */
.jur-case{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:16px;align-items:start}
@media (max-width:1000px){.jur-case{grid-template-columns:minmax(0,1fr)}}
.jur-main,.jur-aside{display:flex;flex-direction:column;gap:16px;min-width:0}
.fin-msgs.jur-tl{max-height:60vh;overflow-y:auto}
.jur-sys{display:flex;flex-direction:column;align-items:center;gap:2px;margin:10px auto;max-width:80%;text-align:center;color:var(--mut);font-size:calc(12px*var(--fs))}
.jur-sys small{font-size:calc(11px*var(--fs))}
.jur-who{display:block;font-weight:700;font-size:calc(12px*var(--fs));color:var(--mod-ink,var(--ink));margin-bottom:2px}
.jur-file{display:inline-flex;align-items:center;gap:6px;margin-top:6px;text-decoration:none}
.jur-file:hover{text-decoration:underline}
.jur-reply{margin-top:10px}
.jur-reply textarea{width:100%}
.jur-att{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.jur-att>:last-child{margin-left:auto}
.jur-list{list-style:none;margin:0;padding:0}
.jur-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.jur-item:last-child{border-bottom:0}
.jur-item strong,.jur-item small{display:block}
.jur-item small{color:var(--mut);font-size:calc(12px*var(--fs))}
.jur-hl{background:var(--mod-t1,var(--raised));border-left:3px solid var(--mod,var(--lime));padding-left:10px}
li.jur-hl{border-radius:0 8px 8px 0}
.jur-steps{margin:8px 0 0;padding-left:22px}
.jur-steps li{margin:6px 0}
.jur-steps li::marker{color:var(--mod-ink,var(--ink));font-weight:700}
.jur-areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:8px 0 14px}
.jur-area{text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.jur-area strong,.jur-area small{display:block}
.jur-area small{color:var(--mut);font-size:calc(12px*var(--fs));margin-top:4px}
.jur-area[aria-pressed=true]{border-color:var(--mod,var(--lime));background:var(--mod-t1,var(--raised))}
.jur-area:focus-visible{outline:2px solid var(--mod,var(--lime));outline-offset:2px}
.jur-prop h3.small{margin:12px 0 4px}
.jur-prop table{margin:0}
.jur-inst{display:flex;flex-direction:column;gap:8px}
.jur-inst-row{display:grid;grid-template-columns:2.5em minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center}
.jur-diff{margin-top:6px;font-size:calc(12px*var(--fs))}
.jur-adv .fin-msgs{max-height:40vh}
@media (max-width:560px){.jur-adv .fin-in{flex-direction:column;align-items:stretch}}
.jur-draft{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.jur-draft .btn{margin-top:8px}
/* Prestadores (assets/juridico.js PxProv, assets/contabil.js): a lista de escritórios para a empresa escolher e o canal do Fiscal dentro da Contabilidade. */
.prov-dir{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.prov-card{display:flex;flex-direction:column;gap:8px}
.prov-card>.actions{margin-top:auto}
.ct-embed>.head,.ct-embed>.mod-tabs{display:none}
/* Escritório virtual (assets/escritorio.js): Horas com o lançamento à esquerda e o resumo por cliente à direita. */
.ofc-split{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:16px;align-items:start}
@media (max-width:760px){.ofc-split{grid-template-columns:minmax(0,1fr)}}
/* Escritório de advocacia (assets/jurescritorio.js): partes, conflito, andamentos, prazo calculado, editor de modelos e o êxito. */
.jx-moves .jur-item{align-items:flex-start}
.jx-conflict{border-left:3px solid var(--warn,#c98a12)}
.jx-due{margin-top:8px}
.jx-tpl{width:100%;min-height:360px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(13px*var(--fs));line-height:1.5}
.jx-fields{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.jx-fieldhelp{margin:6px 0 0;padding-left:18px;color:var(--mut);font-size:calc(12px*var(--fs))}
.jx-gaps{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.jx-calc{margin-top:6px}
/* Publicações do DJEN (assets/jurescritorio.js, aba Publicações). */
.jx-pub{align-items:flex-start}
.jx-pubbody{flex:1 1 420px;min-width:0}
.jx-pubtext{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;margin:6px 0;white-space:normal}
.jx-pubmore{margin:4px 0}

/* Foto de perfil (lib/profile.js): no topo no lugar das iniciais e na página Meu perfil (portal e admin). */
.hub-avatar.has-photo,.me .avatar.has-photo{background:none;overflow:hidden;padding:0}
.hub-avatar img,.me .avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
.pf-photo-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.pf-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.pf-photo{width:112px;height:112px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--acc,var(--lav));color:var(--acc-fg,var(--lav-ink));
  font-size:calc(34px*var(--fs));font-weight:750;box-shadow:0 0 0 4px var(--line)}
.pf-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pf-photo-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}

/* "O que posso fazer?" nas conversas dos assessores (PxActs.capsChip/bindCaps) */
.fin-chips .fin-caps,.fin-caps{border:1px solid var(--acc);color:var(--acc);background:var(--acc-soft);font-weight:650}
.caps-dlg{max-width:620px;width:calc(100% - 32px)}
.caps-dlg h3{margin:18px 0 4px;font-size:calc(15px*var(--fs))}
.caps-list{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.caps-act{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);color:var(--fg);cursor:pointer;font:inherit}
.caps-act:hover:not(:disabled){border-color:var(--acc)}
.caps-act:disabled{opacity:.55;cursor:default}
.caps-act span{font-weight:650;font-size:calc(14px*var(--fs))}
.caps-act small{color:var(--mut);font-size:calc(12px*var(--fs))}
.caps-reads ul{margin:8px 0 0;padding-left:18px;columns:2;font-size:calc(13.5px*var(--fs))}
.caps-more{margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--acc-soft)}
.caps-more p{margin:4px 0 0}
.caps-reqs{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:8px}
.caps-reqs li{padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.caps-reqs p{margin:6px 0 0}
@media (max-width:760px){.caps-reads ul{columns:1}}
/* admin → Funcionários digitais → Pedidos dos clientes */
.ia-req-card{margin-bottom:16px}
.ia-req-dlg{max-width:820px;width:calc(100% - 32px)}
.ia-req-list{display:flex;flex-direction:column;gap:12px;margin-top:14px;max-height:65vh;overflow:auto}
.ia-req{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.ia-req-text{margin:8px 0 4px;font-size:calc(15px*var(--fs))}
.ia-req-form{display:grid;grid-template-columns:200px 1fr auto;gap:8px;align-items:start;margin-top:8px}
@media (max-width:760px){.ia-req-form{grid-template-columns:1fr}}
.ia-req-dlg select[data-f]{width:auto;max-width:260px}
/* Loja: pedidos esperando pagamento no Painel (2026-11-08) */
.lj-hot{display:flex;align-items:center;justify-content:space-between;gap:16px;border-left:4px solid var(--warn, #c98a00);background:color-mix(in srgb, var(--warn, #c98a00) 8%, var(--surface))}
.lj-hot b{font-size:calc(16px*var(--fs))}
.lj-hot p{margin:4px 0 0}
ul.plain{list-style:none;margin:0;padding:0}
.section-sm{margin-bottom:10px}
/* Loja → Avaliações */
.stars{color:#e59a00;letter-spacing:1px;font-size:calc(15px*var(--fs))}
.stars-off{color:var(--line, #d5d8de)}
.rv-list{display:grid;gap:12px}
.rv-list .card p{margin:.4em 0}
.rv-reply{background:var(--surface-2, #f5f6f8);border-radius:8px;padding:8px 12px;margin:8px 0}
/* Loja → Aparência: imagens e textos do layout do modelo */
.lj-slot{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--line, #e6e8ec)}
.lj-slot:first-child{border-top:0}
.lj-slot>img{width:200px;height:120px;object-fit:cover;border-radius:10px;background:#f4f6f6}
.lj-slot-in b{font-size:calc(15px*var(--fs))}
@media (max-width:640px){.lj-slot{grid-template-columns:1fr}.lj-slot>img{width:100%;height:160px}}
.lj-cat-photo{display:flex;gap:14px;align-items:center}
.lj-cat-photo img{width:96px;height:78px;object-fit:contain;border-radius:10px;background:#f4f6f6}
.lj-cat-photo span{display:flex;flex-direction:column;gap:6px;align-items:flex-start}

/* ---------- Acesso remoto (assets/remoto.js no painel; remoto.html + remoto-pub.js na página pública de suporte) ---------- */
.rm-cred{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin:8px 0;border:1px solid var(--line);border-radius:10px;background:var(--raised)}
.rm-cred>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.rm-cred small{color:var(--mut);font-size:calc(12px*var(--fs))}
.rm-cred strong,.rm-cred a{font-size:calc(17px*var(--fs));letter-spacing:.02em;overflow-wrap:anywhere}
.rm-cred code{font-size:calc(12px*var(--fs));overflow-wrap:anywhere}
.rm-dl{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.rm-quick{display:flex;gap:8px;margin-top:8px}
.rm-quick input{flex:1;min-width:0;font-size:calc(18px*var(--fs));letter-spacing:.06em}
.rm-steps{margin:8px 0 0;padding-left:20px;display:grid;gap:6px}
.rm-search{margin:0 0 12px;max-width:420px}
.rm-acts>div{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;min-width:220px}
.rm-table td:first-child{min-width:130px}
.rm-search input{width:100%}
.rm-kpis{margin-bottom:6px}
.rm-pub .rm-step{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
.rm-pub .rm-step h2{display:flex;align-items:center;gap:10px;font-size:calc(18px*var(--fs));margin:0 0 8px}
.rm-pub .rm-step h2 span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--oq-brand,#1F62FF);color:#fff;font-size:calc(14px*var(--fs))}
.rm-pub .rm-intro{padding:10px 12px;border-radius:10px;background:var(--raised);border:1px solid var(--line)}
.rm-pub .rm-manual{margin-top:10px}
.rm-pub .rm-manual code{overflow-wrap:anywhere}
@media (max-width:560px){.rm-quick{flex-direction:column}}
