/* ============================================================
   CRM Volare - Design System (protótipo)
   Fiel ao storybook: cores, degradês, URWDIN, temas.
   ============================================================ */

/* ---------- Fontes URWDIN ---------- */
@font-face { font-family:'URWDIN'; src:url('../fonts/URWDIN-Light.otf') format('opentype');   font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'URWDIN'; src:url('../fonts/URWDIN-Regular.otf') format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'URWDIN'; src:url('../fonts/URWDIN-Medium.otf') format('opentype');  font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'URWDIN'; src:url('../fonts/URWDIN-Demi.otf') format('opentype');     font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'URWDIN'; src:url('../fonts/URWDIN-Bold.otf') format('opentype');     font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'URWDINCond'; src:url('../fonts/URWDINCond-Regular.otf') format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'URWDINCond'; src:url('../fonts/URWDINCond-Medium.otf') format('opentype');  font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'URWDINCond'; src:url('../fonts/URWDINCond-Bold.otf') format('opentype');     font-weight:700; font-style:normal; font-display:swap; }

/* ============================================================
   CRM RODO SERVICE · sistema visual

   Cor: a paleta da Volare do storybook do cliente, navy escuro com azul
   de marca e laranja de ação.

   Forma e tipo: o sistema derivado da Apple que o app de Contas usa
   (pessoal/contas/referencia/DESIGN-apple.md) e que o Gestão Send já roda.
   Decisões do André em 22 SET 2026. As regras valem no arquivo inteiro:

   FONTE   -apple-system (SF Pro em Mac e iPhone), Inter de reserva.
           A URWDIN sai da tela e fica para a cotação e o pedido em PDF,
           que são as peças que chegam na mão do comprador.
   PESO    400 e 600. Sem 500 e sem 700.
   TAMANHO escada 12 / 14 / 15 / 17 / 21 / 28 / 34. Corpo 15, porque a tela
           tem kanban de cinco colunas e tabela larga.
   FORMA   raio 18 no cartão, 11 no cartão dentro de cartão, 8 no controle,
           pílula no botão. Nada de raio avulso.
   SOMBRA  nenhuma. O cartão se separa do fundo pelo fio de 1px e pela
           troca de tom. Modal, menu e busca flutuante são a exceção.
   DEGRADÊ sim, e é o desvio consciente em relação ao Gestão Send, porque o
           storybook da Volare pede degradê e o André manteve a regra em
           22 SET 2026. Ele vale na SUPERFÍCIE (fundo, cartão, coluna) e no
           ELEMENTO COLORIDO CHEIO (botão principal, barra de gráfico,
           medidor). Não vale em pílula pequena nem em texto: ali a cor fica
           no tipo, sobre fundo levíssimo, que foi o que consertou o
           contraste reprovado na crítica de design.
   ACENTO  um só, o laranja #F87040, em tudo que é clicável. O azul da marca
           volta a ser identidade, não botão.
   RÓTULO  caixa baixa. Caixa alta espaçada é cara de template.
   ============================================================ */
:root{
  --brand-primary:#20559b;
  --brand-white:#ffffff;
  --brand-accent:#f87040;
  --brand-accent-forte:#fb8558;
  --ok:#16a06a; --warn:#d9a93c; --danger:#e25c50; --info:#5e84c0;

  --grad-azul:linear-gradient(135deg,#2f70c6 0%,#20559b 55%,#1a4278 100%);
  --grad-acao:linear-gradient(135deg,#fb8e55 0%,#f87040 55%,#ef5a26 100%);
  --grad-acao-hover:linear-gradient(135deg,#fca06d 0%,#fb8558 55%,#f4692f 100%);
  --grad-claro:linear-gradient(160deg,#ffffff 0%,#eef3f9 100%);
  --grad-ok:linear-gradient(135deg,#1fc78e 0%,#0f8f63 100%);
  --grad-warn:linear-gradient(135deg,#e8bf5c 0%,#c9932c 100%);
  --grad-danger:linear-gradient(135deg,#ef8279 0%,#cf4b40 100%);
  --grad-info:linear-gradient(135deg,#7fa3da 0%,#3f6bab 100%);

  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter",system-ui,"Segoe UI",sans-serif;
  --cond:var(--font);
  --urwdin:'URWDIN',sans-serif;   /* só o PDF de cotação e pedido usa */

  /* escada de raio: 18 cartão, 11 subcartão, 8 controle, pílula */
  --r-sm:6px; --r-md:8px; --r-lg:8px; --r-xl:11px; --r-2xl:18px; --r-3xl:18px; --r-full:9999px;
  --sp-xs:4px; --sp-sm:8px; --sp-md:12px; --sp-lg:16px; --sp-xl:20px; --sp-2xl:24px; --sp-3xl:32px; --sp-4xl:40px;
}

/* Tema escuro (default) */
:root, :root[data-theme="dark"]{
  --bg-main:#08111d; --bg-card:#0f1e33; --bg-inner:#16294a; --border:#1e3a63; --border-suave:#172e51;
  --tx-1:#f3f7fc; --tx-2:#a2b4cd; --tx-3:#7e93b0;
  --grad-fundo:linear-gradient(160deg,#0d1a2e 0%,#08111d 58%);
  --grad-card:linear-gradient(160deg,#152743 0%,#0e1c30 100%);
  --grad-interno:linear-gradient(160deg,#1b3055 0%,#142643 100%);
  --tinta:rgba(94,132,192,.08);
  --tinta-2:rgba(94,132,192,.14);
  --shadow:none;
  --sombra-alta:0 24px 60px rgba(0,0,0,.45);
  --logo-invert:0;
  --btn-acento:var(--grad-acao); --btn-acento-hover:var(--grad-acao-hover);
}
/* Tema claro */
:root[data-theme="light"]{
  --bg-main:#f4f7fa; --bg-card:#ffffff; --bg-inner:#eef3f9; --border:#dbe4ee; --border-suave:#e6ecf4;
  --tx-1:#16233a; --tx-2:#55677f; --tx-3:#6b7d96;
  --grad-fundo:linear-gradient(160deg,#eef3f9 0%,#f4f7fa 58%);
  --grad-card:linear-gradient(160deg,#ffffff 0%,#f5f9fd 100%);
  --grad-interno:linear-gradient(160deg,#ffffff 0%,#eaf1f8 100%);
  --tinta:rgba(32,85,155,.05);
  --tinta-2:rgba(32,85,155,.09);
  --shadow:none;
  --sombra-alta:0 24px 60px rgba(22,35,58,.18);
  --logo-invert:0;
  --btn-acento:var(--grad-acao); --btn-acento-hover:var(--grad-acao-hover);
}

/* ---------- Reset ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
html{background:var(--grad-fundo)}
body{font-family:var(--font);background:var(--grad-fundo);color:var(--tx-1);font-size:15px;line-height:1.47;letter-spacing:-.012em;font-feature-settings:"ss03";-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
a{color:inherit;text-decoration:none}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--r-full)}
::-webkit-scrollbar-track{background:transparent}
.hidden{display:none!important}

/* Foco visível para teclado (sem poluir o clique de mouse) */
:focus{outline:none}
:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px;border-radius:var(--r-sm)}

/* Respeita quem prefere menos movimento */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .card.metric:hover,.kcard:hover,.cat-card:hover,.qa:hover,.demo-user:hover{transform:none!important}
}

/* ---------- Botões ---------- */
/* Botões no padrão Apple (o mesmo do app de contas): pílula, 17px e peso 400,
   cor chapada e sem sombra. O aperto é um encolhimento, não um empurrão. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--r-full);font-weight:400;font-size:15px;letter-spacing:-.022em;white-space:nowrap;border:1px solid transparent;background:transparent;color:var(--tx-1);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .12s ease}
.btn:active{transform:scale(.95)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn svg{width:16px;height:16px}
.btn-primary,.btn-blue{background:var(--btn-acento);color:#fff}
.btn-primary:hover:not(:disabled),.btn-blue:hover:not(:disabled){background:var(--btn-acento-hover)}
.btn-secondary,.btn-light{border-color:var(--border);background:var(--grad-card);color:var(--tx-1)}
.btn-secondary:hover:not(:disabled),.btn-light:hover:not(:disabled){background:var(--bg-inner)}
.btn-ghost{color:var(--tx-2)}
.btn-ghost:hover:not(:disabled){background:var(--bg-inner);color:var(--tx-1)}
.btn-danger{color:var(--danger)}
.btn-danger:hover:not(:disabled){background:rgba(239,68,68,.12)}
.btn-sm{padding:7px 14px;font-size:14px}
/* ícone sempre no centro: no celular o botão cresce para 44 px de toque e o ícone ficava no canto de cima (30 SET 2026) */
.btn-icon{padding:9px;border-radius:var(--r-full);border:1px solid var(--border);background:transparent;color:var(--tx-2);display:inline-flex;align-items:center;justify-content:center;transition:.15s}
.btn-icon:hover{color:var(--tx-1);border-color:var(--brand-primary)}

/* ---------- Badges ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;font-weight:600;letter-spacing:-.012em;font-size:12px;padding:4px 11px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--tinta);color:var(--tx-2);white-space:nowrap}
.badge.ok{background:rgba(22,160,106,.15);color:#2eb984;border-color:transparent}
.badge.warn{background:rgba(217,169,60,.16);color:#d9a93c;border-color:transparent}
.badge.danger{background:rgba(226,92,80,.15);color:#e97f75;border-color:transparent}
.badge.info{background:rgba(94,132,192,.16);color:#7fa3da;border-color:transparent}
.badge.accent{background:rgba(248,112,64,.16);color:var(--brand-accent);border-color:transparent}
.badge.blue{background:rgba(32,85,155,.20);color:#7fa3da;border-color:transparent}
.badge-dot{width:8px;height:8px;border-radius:var(--r-full);display:inline-block}

/* ---------- Avatares ---------- */
.avatar{width:36px;height:36px;border-radius:var(--r-full);object-fit:cover;background:var(--grad-azul);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:15px;flex-shrink:0;overflow:hidden}
.avatar.sm{width:26px;height:26px;font-size:12px}
.avatar.lg{width:56px;height:56px;font-size:14px}
.avatar.xl{width:84px;height:84px;font-size:28px}
.av-g1{background:linear-gradient(135deg,#2f70c6,#1a4278)} .av-g2{background:linear-gradient(135deg,#fb8e55,#ef5a26)}
.av-g3{background:linear-gradient(135deg,#22cf9a,#0da173)} .av-g4{background:linear-gradient(135deg,#a78bfa,#7c3aed)}
.av-g5{background:linear-gradient(135deg,#60a5fa,#2563eb)} .av-g6{background:linear-gradient(135deg,#f472b6,#db2777)}

/* ============================================================
   LOGIN
   ============================================================ */
.field{margin-bottom:16px}
.field label{display:block;font-size:14px;color:var(--tx-2);margin-bottom:6px;font-weight:400}
.field input,.field select,.field textarea{width:100%;background:var(--bg-inner);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px 14px;color:var(--tx-1);transition:.15s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand-primary);box-shadow:none}

/* ---------- Login: caixa central, imagem à esquerda e acesso à direita ---------- */
#login{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:32px 24px;background:var(--grad-fundo)}
.login-box{width:100%;max-width:1040px;min-height:640px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-3xl);box-shadow:none;overflow:hidden}
.login-visual{position:relative;overflow:hidden;background:var(--bg-inner)}
.login-visual img{width:100%;height:100%;object-fit:cover;object-position:62% 55%;display:block}
.login-side{display:flex;align-items:center;justify-content:center;padding:56px 48px}
.login-form{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;text-align:center}
.login-brands{display:flex;align-items:center;justify-content:center;gap:22px;margin-bottom:34px}
.login-brands img{height:46px;width:auto;display:block}
.login-brands-sep{width:1px;height:44px;background:var(--border)}
.login-title{font-family:var(--cond);font-weight:600;font-size:28px;letter-spacing:-.012em;line-height:1;margin-bottom:8px}
.login-cities{font-family:var(--cond);font-size:14px;letter-spacing:-.012em;color:var(--tx-2);margin-bottom:34px}
.login-cities span{color:var(--brand-accent);margin:0 4px}
.login-form .field{width:100%;text-align:left}
.login-erro{width:100%;margin:0 0 10px;font-size:13px;color:var(--danger);text-align:left}
.login-entrar{width:100%;padding:12px 20px;margin-top:6px}
.login-link{background:none;border:0;padding:8px 4px;margin-top:10px;color:var(--tx-2);font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.login-link:hover{color:var(--tx-1)}
.login-apoio{font-size:15px;line-height:1.5;color:var(--tx-2);margin:0 0 26px}
.senha-regras{list-style:none;width:100%;margin:-4px 0 16px;padding:0;display:flex;flex-direction:column;gap:6px;text-align:left}
.senha-regras li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tx-3);transition:color .15s}
.senha-regras li svg{flex:none;opacity:.35}
.senha-regras li.ok{color:var(--ok)}
.senha-regras li.ok svg{opacity:1}
.senha-ver{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;margin:-4px 0 14px;font-size:13px;color:var(--tx-2);cursor:pointer}
.login-theme{display:inline-flex;align-items:center;gap:8px;margin-top:24px;color:var(--tx-3);font-size:14px;cursor:pointer;user-select:none}
.login-theme input{position:absolute;opacity:0;width:0;height:0}
.login-theme .switch{position:relative;width:40px;height:24px;border-radius:var(--r-full);background:var(--border);border:1px solid var(--border);transition:.2s;margin-left:4px;flex:none}
.login-theme .switch::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:none;transition:.2s}
.login-theme input:checked+.switch{background:var(--grad-azul);border-color:transparent}
.login-theme input:checked+.switch::after{transform:translateX(16px)}
.login-theme input:focus-visible+.switch{box-shadow:none}
.login-demo{width:100%;margin-top:28px;padding-top:18px;border-top:1px solid var(--border)}
.login-demo .lbl{font-size:14px;color:var(--tx-3);font-family:var(--cond);letter-spacing:-.012em;cursor:pointer;list-style:none;user-select:none}
.login-demo .lbl::-webkit-details-marker{display:none}
.login-demo .lbl::after{content:" ▾";color:var(--tx-3)}
.login-demo[open] .lbl::after{content:" ▴"}
.demo-users{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.demo-user{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-inner);transition:.15s;text-align:left;width:100%;cursor:pointer}
.demo-user:hover{border-color:var(--brand-accent);transform:translateY(-1px)}
.demo-user .du-name{font-weight:600;font-size:15px}
.demo-user .du-role{font-size:14px;color:var(--tx-2)}
@media(max-width:860px){
  #login{padding:16px;align-items:stretch}
  .login-box{grid-template-columns:1fr;grid-template-rows:220px auto;min-height:0;border-radius:var(--r-2xl)}
  .login-side{padding:28px 20px 32px}
  .login-brands{margin-bottom:26px;gap:16px}
  .login-brands img{height:38px}
  .login-title{font-size:17px}
  .login-cities{margin-bottom:26px}
}

/* ============================================================
   APP SHELL
   ============================================================ */
#app{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr);grid-template-rows:auto 1fr}
.topbar{grid-column:1/3;height:60px;display:flex;align-items:center;gap:16px;padding:0 20px;min-width:0;background:var(--grad-interno);border-bottom:1px solid var(--border-suave);position:sticky;top:0;z-index:40}
.topbar .brands{display:flex;align-items:center;gap:14px;flex-shrink:0}
.topbar .logo{height:30px;flex-shrink:0}
.topbar .logo-rodo{height:32px}
.topbar .brands-sep{width:1px;height:28px;background:var(--border)}
.gsearch{flex:1 1 0;min-width:0;max-width:560px;position:relative}
.gsearch input{width:100%;background:var(--bg-inner);border:1px solid var(--border);border-radius:var(--r-full);padding:9px 16px 9px 40px;font-size:14px;color:var(--tx-1)}
.gsearch input:focus{outline:none;border-color:var(--brand-accent)}
.gsearch .si{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--tx-3)}
.gsearch-results{position:absolute;top:48px;left:0;right:0;background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow);max-height:60vh;overflow:auto;z-index:60}
.gsr-group{padding:6px}
.gsr-group h5{font-family:var(--cond);font-size:14px;letter-spacing:-.012em;color:var(--tx-3);padding:8px 10px 4px}
.gsr-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-md);cursor:pointer}
.gsr-item:hover{background:var(--bg-inner)}
.gsr-item .gsr-t{font-weight:600;font-size:15px}
.gsr-item .gsr-s{font-size:14px;color:var(--tx-2);font-family:var(--cond)}
.topbar-right{display:flex;align-items:center;gap:10px;margin-left:auto}
.usermenu{position:relative}
.usermenu-btn{display:flex;align-items:center;gap:9px;padding:5px 8px 5px 5px;border-radius:var(--r-full);border:1px solid var(--border);background:transparent}
.usermenu-btn .um-name{font-size:13px;font-weight:600;line-height:1.25}.usermenu-btn .um-role{font-size:12px;color:var(--tx-3);line-height:1.25}
.usermenu-drop{position:absolute;right:0;top:52px;width:250px;background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow);padding:8px;z-index:60}
.umd-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:var(--r-md);text-align:left;font-size:15px;color:var(--tx-1)}
.umd-item:hover{background:var(--bg-inner)}
.umd-sep{height:1px;background:var(--border);margin:6px 0}
.umd-lbl{font-size:14px;color:var(--tx-3);font-family:var(--cond);letter-spacing:-.012em;padding:8px 12px 4px}
.theme-toggle{display:flex;background:var(--grad-interno);border:1px solid var(--border);border-radius:var(--r-full);padding:3px}
.theme-toggle button{padding:5px 11px;border-radius:var(--r-full);color:var(--tx-2);font-size:13px;display:flex;align-items:center;gap:5px}
.theme-toggle button.on{background:var(--bg-inner);color:var(--tx-1);font-weight:600}

/* Sidebar */
.sidebar{background:var(--grad-fundo);border-right:1px solid var(--border-suave);padding:18px 12px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}
.nav-group-lbl{font-size:12px;letter-spacing:-.012em;color:var(--tx-3);padding:10px 13px 6px}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:var(--r-lg);color:var(--tx-2);font-weight:400;font-size:14px;transition:.15s;position:relative;cursor:pointer}
.nav-item:hover{background:var(--tinta);color:var(--tx-1)}
.nav-item.active{background:var(--grad-card);color:var(--tx-1);font-weight:600}
.nav-item.active svg{color:var(--brand-accent)}
.nav-item .ni-badge{margin-left:auto;background:rgba(248,112,64,.16);color:var(--brand-accent);font-size:12px;font-weight:600;padding:2px 8px;border-radius:var(--r-full)}
.nav-item svg{flex-shrink:0}
.sidebar-foot{margin-top:auto;padding:12px 13px 0;border-top:1px solid var(--border-suave);font-size:12px;color:var(--tx-3)}

/* Main */
.main{padding:26px 30px 90px;overflow-y:auto;min-width:0;width:100%;max-width:1620px;margin-inline:auto}
.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.page-head h1{font-size:21px;font-weight:600;line-height:1.19;letter-spacing:-.02em}
.page-head p{color:var(--tx-3);font-size:13px;margin-top:3px}
.page-head .actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}

/* Cards / grid */
.grid{display:grid;gap:20px}
.metrics{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{background:var(--grad-card);border:1px solid var(--border-suave);border-radius:var(--r-2xl);padding:20px}
.card.inner{background:var(--grad-interno)}
.card.accentbg{background:var(--grad-azul);border-color:transparent;color:#fff}
.metric .m-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.metric .m-title{font-size:12px;color:var(--tx-2);font-weight:400}
.metric.accentbg .m-title{color:rgba(255,255,255,.85)}
.metric .m-ico{width:38px;height:38px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;background:var(--bg-inner);color:var(--brand-accent)}
.metric.accentbg .m-ico{background:rgba(255,255,255,.15);color:#fff}
.metric .m-val{font-size:28px;font-weight:600;line-height:1.15;letter-spacing:-.022em}
.metric .m-sub{font-size:12px;line-height:1.35;color:var(--tx-3);margin-top:8px;display:block}
.metric.accentbg .m-sub{color:rgba(255,255,255,.8)}
.trend-up{color:var(--ok)}.trend-dn{color:var(--danger)}
.section-title{font-size:17px;font-weight:600;letter-spacing:-.02em;margin-bottom:14px;display:flex;align-items:center;gap:9px}
.section-title .st-link{margin-left:auto;font-size:12px;color:var(--brand-accent);font-weight:400}

/* Sparkline */
.spark{display:flex;align-items:flex-end;gap:4px;height:34px;margin-top:12px}
.spark span{flex:1;background:var(--border);border-radius:2px;min-height:5px}
.spark span.a{background:linear-gradient(0deg,#20559b,#2f70c6)}
.spark span.peak{background:var(--grad-acao)}

/* Sparkline mensal com legenda (mês/ano + valor) */
.sparkm{display:flex;gap:5px;margin-top:16px;align-items:flex-end}
.sparkm-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;cursor:pointer}
.sparkm-bararea{height:38px;width:100%;display:flex;align-items:flex-end;justify-content:center}
.sparkm-bar{width:72%;max-width:22px;border-radius:3px;background:linear-gradient(0deg,#20559b,#2f70c6);min-height:5px;transition:filter .12s}
.sparkm-col:hover .sparkm-bar{filter:brightness(1.35)}
.sparkm-col.peak .sparkm-bar{background:var(--grad-acao)}
.sparkm-val{font-family:var(--cond);font-size:14px;font-weight:600;color:var(--tx-2);line-height:1;white-space:nowrap}
.sparkm-mes{font-family:var(--cond);font-size:14px;color:var(--tx-3);line-height:1;letter-spacing:-.012em;white-space:nowrap}
.metric.accentbg .sparkm-bar{background:linear-gradient(0deg,#bcd4f5,#e6f0fc)}
.metric.accentbg .sparkm-col.peak .sparkm-bar{background:var(--grad-acao)}
.metric.accentbg .sparkm-val{color:rgba(255,255,255,.92)}
.metric.accentbg .sparkm-mes{color:rgba(255,255,255,.6)}

/* Tabelas */
.tbl-wrap{background:var(--grad-card);border:1px solid var(--border-suave);border-radius:var(--r-2xl);overflow:hidden}
.tbl-scroll{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;min-width:640px}
table.tbl th{text-align:left;font-size:12px;letter-spacing:-.012em;color:var(--tx-3);font-weight:600;padding:13px 18px;border-bottom:1px solid var(--border-suave);white-space:nowrap}
table.tbl td{padding:14px 18px;border-bottom:1px solid var(--border);font-size:15px;vertical-align:middle}
table.tbl tr:last-child td{border-bottom:none}
table.tbl tbody tr{transition:.12s}
table.tbl tbody tr.clickable{cursor:pointer}
table.tbl tbody tr.clickable:hover{background:var(--bg-inner)}
.cell-main{display:flex;align-items:center;gap:11px}
.cell-main .cm-t{font-weight:600}.cell-main .cm-s{font-size:14px;color:var(--tx-2);font-family:var(--cond)}
.money{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.locked{color:var(--tx-3);font-style:italic;display:inline-flex;align-items:center;gap:6px;font-size:14px}
.cli-owner-name{display:none}

/* Toolbar / filtros */
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.chip-filter{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--grad-card);color:var(--tx-2);font-size:14px;transition:.15s}
.chip-count{font-family:var(--cond);font-size:14px;font-weight:600;background:var(--bg-inner);color:var(--tx-2);padding:1px 8px;border-radius:var(--r-full)}
.chip-filter.on .chip-count{background:var(--tinta-2);color:var(--tx-1)}
.chip-filter.on{background:var(--tinta-2);color:var(--tx-1);border-color:var(--brand-accent);font-weight:600}
.tb-search{position:relative;flex:1;min-width:200px;max-width:360px}
.tb-search input{width:100%;background:var(--bg-inner);border:1px solid var(--border);border-radius:var(--r-full);padding:9px 14px 9px 38px}
.tb-search .si{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--tx-3)}

/* ============================================================
   KANBAN
   ============================================================ */
.kanban-wrap{position:relative}
.kanban{display:flex;gap:14px;overflow-x:auto;padding-bottom:12px;align-items:flex-start;scroll-behavior:smooth}
.kanban-fade{position:absolute;top:0;right:-2px;bottom:12px;width:56px;pointer-events:none;opacity:0;transition:opacity .15s ease;background:linear-gradient(90deg,rgba(8,17,29,0) 0%,rgba(8,17,29,.92) 92%)}
:root[data-theme="light"] .kanban-fade{background:linear-gradient(90deg,rgba(244,247,250,0) 0%,rgba(244,247,250,.95) 92%)}
.kanban-fade.on{opacity:1}
.kb-legenda{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-top:14px;font-size:12px;color:var(--tx-3)}
.kb-legenda .kl-tit{font-weight:600;letter-spacing:-.012em;font-size:12px;color:var(--tx-2)}
.kb-legenda span{display:flex;align-items:center;gap:6px}
.kb-legenda .kl-c{width:8px;height:8px;border-radius:var(--r-full);background:var(--tx-3)}
.kb-legenda .kl-reg .kc-dot{width:8px;height:8px;border-radius:var(--r-full);flex:none}
.kb-legenda .kl-c.morno{background:var(--warn)}
.kb-legenda .kl-c.frio{background:var(--danger)}
.kb-legenda .kl-sep{width:1px;height:16px;background:var(--border);padding:0}
.kb-legenda .kl-reg b{color:var(--tx-2);font-weight:600}
.kb-legenda .kl-dica{font-style:normal;color:var(--tx-3);opacity:.85}
.kcol{flex:0 0 268px;background:var(--grad-interno);border:1px solid var(--border-suave);border-radius:var(--r-2xl);padding:12px;display:flex;flex-direction:column;gap:9px;min-height:140px}
.kcol.drop{border-color:var(--brand-accent);background:var(--tinta-2)}
.kcol-head{display:flex;align-items:center;gap:8px;padding:4px 2px 0}
.kcol-head .kc-dot{width:9px;height:9px;border-radius:var(--r-full)}
.kcol-head h2{font-size:15px;font-weight:600;letter-spacing:-.012em}
.kcol-head .kc-count{margin-left:auto;font-size:12px;font-weight:600;color:var(--tx-2);background:var(--tinta);padding:2px 9px;border-radius:var(--r-full)}
.kcol-sum{font-size:12px;color:var(--tx-3);letter-spacing:-.012em;padding:0 2px}
.kcol-frios{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:-.012em;color:var(--warn);padding:0 2px}
.kcol-frios.frio{color:var(--danger)}
.kcol-frios .kc-sinal{background:currentColor}
.kc-sinal{width:6px;height:6px;border-radius:var(--r-full);background:currentColor;flex:none}
.kcard .kc-dias{display:flex;align-items:center;gap:6px;font-size:12px;letter-spacing:-.012em;color:var(--tx-3);margin-top:9px}
.kcard .kc-dias.morno{color:var(--warn)}
.kcard .kc-dias.frio{color:var(--danger)}
.kcol-empty{text-align:center;color:var(--tx-3);padding:16px 8px;font-size:12px;line-height:1.4}
.kcol-fim{flex:0 0 210px;min-width:0}
.kcol-fim .kcard{padding:13px}
.kb-select{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-full);padding:7px 14px;color:var(--tx-1);font-size:14px;transition:.15s}
.kb-select:hover{border-color:var(--tx-3)}
.kb-select:focus{outline:none;border-color:var(--brand-accent)}
.kcol-body{display:flex;flex-direction:column;gap:10px}
.kcard{position:relative;background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-xl);padding:13px 14px 13px 16px;cursor:grab;transition:border-color .15s;border-left:3px solid transparent}
.kcard:hover{border-color:var(--brand-accent)}
.kcard.dragging{opacity:.5;cursor:grabbing}
.kcard .kc-co{font-weight:600;font-size:14px;line-height:1.3;margin-bottom:2px;padding-right:30px}
.kcard .kc-cli{font-size:12px;color:var(--tx-2);margin-bottom:9px}
.kcard .kc-val{font-weight:600;font-size:14px}
.kcard .kc-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:10px;padding-top:9px;border-top:1px solid var(--border-suave)}
.kcard .kc-meta .kc-date{font-size:12px;color:var(--tx-2);margin-left:auto}

/* ============================================================
   CATÁLOGO
   ============================================================ */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.cat-card{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-2xl);overflow:hidden;transition:.15s;display:flex;flex-direction:column;cursor:pointer}
.cat-card:hover{transform:translateY(-3px);box-shadow:none;border-color:var(--brand-primary)}
.cat-photo{height:150px;background:var(--grad-interno);display:flex;align-items:center;justify-content:center;padding:12px}
.cat-photo img{max-width:100%;max-height:100%;object-fit:contain}
.cat-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.cat-body h4{font-size:15px;font-weight:600}
.cat-specs{display:flex;flex-direction:column;gap:5px;font-size:14px;color:var(--tx-2);font-family:var(--cond);margin-top:2px}
.cat-specs div{display:flex;justify-content:space-between;gap:8px}
.cat-price{margin-top:auto;padding-top:10px;font-weight:600;font-size:15px;color:var(--tx-1)}

/* ============================================================
   DETALHE (dois painéis)
   ============================================================ */
.detail{display:grid;grid-template-columns:1fr 380px;gap:20px;align-items:start}
.detail-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.detail-tab{padding:8px 16px;border-radius:var(--r-full);border:1px solid var(--border);font-size:14px;color:var(--tx-2)}
.detail-tab.on{background:var(--grad-azul);color:#fff;border-color:transparent}
.timeline{display:flex;flex-direction:column;gap:2px}
.tl-item{display:flex;gap:14px;padding:2px 0}
.tl-rail{display:flex;flex-direction:column;align-items:center}
.tl-dot{width:30px;height:30px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;background:var(--tinta);border:1px solid var(--border-suave);color:var(--tx-2);flex-shrink:0}
.tl-line{width:2px;flex:1;background:var(--border);margin:4px 0}
.tl-body{padding-bottom:18px;flex:1}
.tl-body .tl-head{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.tl-body .tl-type{font-weight:600;font-size:14px}
.tl-body .tl-date{font-size:12px;color:var(--tx-3);margin-left:auto}
.tl-body .tl-txt{font-size:13px;color:var(--tx-2);line-height:1.5}
.tl-next{margin-top:7px;font-size:12px;color:var(--brand-accent);display:inline-flex;gap:6px;align-items:center;background:var(--tinta);padding:5px 10px;border-radius:var(--r-md)}
.info-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-suave);font-size:14px}
.info-row:last-child{border-bottom:none}
.info-row .ir-l{color:var(--tx-2)}
.info-row .ir-v{font-weight:600;text-align:right}
.contact-card{border:1px dashed var(--border);border-radius:var(--r-xl);padding:14px;display:flex;align-items:center;gap:12px;margin-bottom:10px}
.quote-card{border:1px solid var(--border);border-radius:var(--r-xl);padding:16px;margin-bottom:12px;background:var(--bg-inner)}

/* Charts */
.chart-box{position:relative}
svg.chart{width:100%;height:auto;display:block;overflow:visible}
.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;font-size:14px;color:var(--tx-2);font-family:var(--cond)}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:16px;height:6px;border-radius:2px;display:inline-block}
.bar-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.bar-row .bl{width:140px;font-size:14px;color:var(--tx-1);flex-shrink:0;font-family:var(--cond);font-weight:400}
.bar-track{flex:1;background:var(--border);border-radius:var(--r-full);height:24px;overflow:hidden;position:relative}
.bar-fill{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,#2f70c6,#20559b)}
.bar-fill.acao{background:var(--grad-acao)}
.bar-fill.ok{background:var(--grad-ok)}
.bar-row .bv{width:100px;text-align:right;font-weight:600;font-size:15px;font-variant-numeric:tabular-nums}

/* ---------- Gestão à vista (home) ---------- */
.hero{display:grid;grid-template-columns:1.5fr 1fr;border:1px solid var(--border);border-radius:var(--r-2xl);overflow:hidden;margin-bottom:16px}
.hero-meta{background:var(--grad-card);padding:26px 30px;display:flex;flex-direction:column;justify-content:center}
.hero-meta .hm-lbl{font-family:var(--cond);font-size:14px;letter-spacing:-.012em;color:var(--tx-3);margin-bottom:8px}
.hero-meta .hm-val{font-size:34px;font-weight:600;line-height:.95;letter-spacing:-.02em}
.hero-meta .hm-val small{font-size:17px;color:var(--tx-2);font-weight:400;margin-left:10px;letter-spacing:0}
.hero-bar{height:14px;background:var(--border);border-radius:var(--r-full);overflow:hidden;margin:18px 0 12px}
.hero-bar>div{height:100%;border-radius:var(--r-full);background:var(--grad-azul)}
.hero-meta .hm-sub{font-size:14px;color:var(--tx-2);font-family:var(--cond)}
.hero-meta .hm-sub b{color:var(--tx-1);font-weight:600}
.hero-verdict{padding:26px 30px;display:flex;flex-direction:column;justify-content:center;gap:6px;color:#fff}
.hero-verdict.ok{background:var(--grad-ok)}
.hero-verdict.warn{background:var(--grad-warn)}
.hero-verdict.bad{background:var(--grad-danger)}
.hero-verdict .hv-top{display:flex;align-items:center;gap:9px;font-size:14px;letter-spacing:-.012em;opacity:.9;font-weight:600;font-family:var(--cond)}
.hero-verdict .hv-word{font-size:34px;font-weight:600;line-height:1.02}
.hero-verdict .hv-sub{font-size:14px;opacity:.95;font-family:var(--cond);line-height:1.4;margin-top:2px}
.hero-verdict .hv-sub b{font-weight:600}

/* Cartões-sinal (semáforo de gestão) */
.signals{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}
.sig{background:var(--grad-card);border:1px solid var(--border);border-left:4px solid var(--tx-3);border-radius:var(--r-xl);padding:18px 20px}
.sig.ok{border-left-color:var(--ok)}.sig.warn{border-left-color:var(--warn)}.sig.bad{border-left-color:var(--danger)}
.sig-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.sig-top .sig-t{font-size:14px;color:var(--tx-2);font-weight:400}
.sig-ico{width:34px;height:34px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;background:var(--bg-inner);color:var(--tx-2)}
.sig.ok .sig-ico{color:var(--ok)}.sig.warn .sig-ico{color:var(--warn)}.sig.bad .sig-ico{color:var(--danger)}
.sig-val{font-size:34px;font-weight:600;line-height:1;letter-spacing:-.02em}
.sig-status{margin-top:11px;font-size:14px;font-weight:600;font-family:var(--cond);display:flex;align-items:center;gap:6px}
.sig.ok .sig-status{color:var(--ok)}.sig.warn .sig-status{color:var(--warn)}.sig.bad .sig-status{color:var(--danger)}
.sig.clickable{cursor:pointer;transition:.15s}
.sig.clickable:hover{border-color:var(--brand-primary);box-shadow:none}
@media (max-width:900px){.hero{grid-template-columns:1fr}.signals{grid-template-columns:1fr}}

/* Faixa-resumo x meta (topo das Dashboards) */
.metaband{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}
.sig-bar{height:7px;background:var(--border);border-radius:var(--r-full);overflow:hidden;margin:12px 0 4px}
.sig-bar>div{height:100%;border-radius:var(--r-full)}
@media (max-width:900px){.metaband{grid-template-columns:1fr}}

/* Marcador de meta dentro de uma barra */
.bar-mark{position:absolute;top:0;bottom:0;width:2px;background:var(--tx-1);opacity:.5;box-shadow:none;z-index:1}
.bar-track.marked{overflow:visible}

/* ---------- Home densa: seções + cards de status de oportunidade ---------- */
.sec-head{display:flex;align-items:center;gap:14px;margin:26px 0 13px;flex-wrap:wrap}
.sec-head h2{font-size:14px;font-weight:600}
.sec-head .sec-ctrl{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sec-meta{font-family:var(--cond);font-size:14px;color:var(--tx-2)}
.sec-meta b{color:var(--tx-1);font-weight:600}
.sec-select{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-full);padding:7px 14px;color:var(--tx-1);font-size:14px}
.sec-select:focus{outline:none;border-color:var(--brand-accent)}
.sec-date{background:var(--bg-inner);border:1px solid var(--border);border-radius:var(--r-md);padding:6px 10px;color:var(--tx-1);font-size:14px;font-family:var(--cond)}
/* Nível horizontal (tipo termômetro) em tons de azul Volare */
.legend i.prev-swatch{width:16px;height:10px;border-radius:2px;background-color:rgba(47,112,198,.20);background-image:repeating-linear-gradient(45deg,transparent 0 2px,rgba(47,112,198,.7) 2px 3.4px);border:1px solid rgba(47,112,198,.6)}
.legend i.meta-swatch-linha{width:18px;height:0;border-radius:0;border-top:2px dashed var(--tx-2);background:none}
/* Lista de oportunidades (modal ao clicar num card) */
.opl-list{display:flex;flex-direction:column}
.opl-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 6px;border-bottom:1px solid var(--border);cursor:pointer;border-radius:8px;transition:background .12s}
.opl-row:last-child{border-bottom:none}
.opl-row:hover{background:var(--bg-inner)}
.opl-nome{font-weight:600;font-size:15px;color:var(--tx-1)}
.opl-cli{font-family:var(--cond);font-size:14px;color:var(--tx-3);margin-top:2px}
.opl-stage{color:var(--info)}
.opl-right{text-align:right;flex-shrink:0}
.opl-val{font-weight:600;font-size:15px;color:var(--tx-1);white-space:nowrap}
.opl-data{font-family:var(--cond);font-size:14px;color:var(--tx-3);margin-top:2px}
@media(max-width:1120px){.opp-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.opp-cards{grid-template-columns:1fr}}
/* Performance dos vendedores */
.perf-row{display:grid;grid-template-columns:180px 1fr 1fr;gap:22px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}
.perf-row:last-child{border-bottom:none}
.perf-name{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px}
.perf-lbl{display:flex;justify-content:space-between;font-family:var(--cond);font-size:14px;letter-spacing:-.012em;color:var(--tx-3);margin-bottom:6px}
@media(max-width:760px){.perf-row{grid-template-columns:1fr;gap:12px}}

/* Dashboard builder widgets */
.widget-lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.widget-opt{border:1px solid var(--border);border-radius:var(--r-xl);padding:14px;display:flex;gap:12px;align-items:flex-start;cursor:pointer;transition:.12s;background:var(--bg-inner)}
.widget-opt:hover{border-color:var(--brand-primary)}
.widget-opt.on{border-color:var(--brand-accent);background:var(--grad-interno)}
.widget-opt .wo-check{width:20px;height:20px;border-radius:6px;border:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:transparent}
.widget-opt.on .wo-check{background:var(--grad-acao);border-color:transparent;color:#fff}
.widget-opt h5{font-size:15px;font-weight:600;margin-bottom:2px}
.widget-opt p{font-size:14px;color:var(--tx-2)}

/* ---------- Modal ---------- */
.modal-back{position:fixed;inset:0;background:rgba(6,12,22,.6);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}
.modal{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-2xl);width:100%;max-width:560px;max-height:90vh;overflow:auto;box-shadow:var(--sombra-alta)}
.modal.wide{max-width:880px}
.modal-head{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--border-suave);position:sticky;top:0;background:var(--grad-card);z-index:2}
.modal-head h3{font-size:17px;font-weight:600;letter-spacing:-.02em}
/* o X acompanha a primeira linha do título, e não o meio do bloco, quando o título quebra (30 SET 2026) */
.modal-head{align-items:flex-start}
.modal-head h3{line-height:25px}
.modal-head .mh-close{margin-left:auto;flex:none;transform:translateY(calc(12.5px - 50%))}
.modal-body{padding:20px 22px}
.modal-foot{padding:16px 22px;border-top:1px solid var(--border-suave);display:flex;gap:10px;justify-content:flex-end;position:sticky;bottom:0;background:var(--grad-card)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* Ficha técnica */
.ficha-head{display:flex;gap:16px;align-items:center;margin-bottom:18px}
.ficha-photo{width:190px;height:112px;border-radius:var(--r-xl);background:var(--tinta);border:1px solid var(--border-suave);display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:8px}
.ficha-photo img{max-width:100%;max-height:100%;object-fit:contain}
.ficha-head-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.ficha-model{font-size:17px;font-weight:600;line-height:1.2;margin-bottom:4px;letter-spacing:-.02em}
.ficha-price{font-weight:600;font-size:17px}
.ficha-destaques{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.ficha-dest{display:flex;align-items:center;gap:10px;background:var(--tinta);border:1px solid var(--border-suave);border-radius:var(--r-xl);padding:12px 14px;min-width:0}
.ficha-dest .fd-ico{width:34px;height:34px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;background:var(--bg-card);color:var(--brand-accent);flex-shrink:0}
.fd-lbl{font-size:12px;letter-spacing:-.012em;color:var(--tx-3)}
.fd-val{font-weight:600;font-size:15px;line-height:1.2}
.ficha-cols{column-count:2;column-gap:16px}
.ficha-grupo{margin:0 0 14px;border:1px solid var(--border-suave);border-radius:var(--r-xl);overflow:hidden;break-inside:avoid;-webkit-column-break-inside:avoid}
.ficha-grupo-h{background:var(--tinta);padding:10px 16px;letter-spacing:-.012em;font-size:13px;font-weight:600;color:var(--tx-1)}
.ficha-grupo .info-row{padding:9px 16px;font-size:13px}
.ficha-grupo .info-row .ir-l{color:var(--tx-2)}
.ficha-grupo .info-row .ir-v{max-width:58%;text-align:right}
@media(max-width:760px){.ficha-destaques{grid-template-columns:repeat(2,1fr)}.ficha-cols{column-count:1}}

/* Toast */
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120px);background:var(--grad-azul);color:#fff;padding:13px 22px;border-radius:var(--r-full);box-shadow:var(--shadow);font-weight:400;font-size:15px;z-index:200;transition:.3s;display:flex;align-items:center;gap:10px}
#toast.show{transform:translateX(-50%) translateY(0)}

.empty{text-align:center;padding:48px 20px;color:var(--tx-3)}
.empty svg{margin-bottom:12px;opacity:.5}

/* Quick actions */
.qa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.qa{display:flex;align-items:center;gap:12px;padding:16px;border-radius:var(--r-xl);border:1px solid var(--border);background:var(--bg-inner);transition:.15s;text-align:left;width:100%}
.qa:hover{border-color:var(--brand-accent);transform:translateY(-2px)}
.qa .qa-ico{width:40px;height:40px;border-radius:var(--r-md);background:var(--grad-azul);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.qa>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.qa .qa-t{font-weight:600;font-size:15px;display:block}
.qa .qa-s{font-size:14px;color:var(--tx-2);display:block}

.task-item{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}
.task-item:last-child{border-bottom:none}
.task-check{width:22px;height:22px;border-radius:7px;border:2px solid var(--border);flex-shrink:0;transition:.12s}
.task-check:hover{border-color:var(--brand-accent)}
.task-check.done{background:var(--grad-ok);border-color:transparent}
.task-item.done .ti-t{text-decoration:line-through;color:var(--tx-3)}
.ti-t{font-weight:600;font-size:15px}.ti-s{font-size:14px;color:var(--tx-2);font-family:var(--cond)}
.ti-tag{margin-left:auto}

/* ---- tempo parado por etapa, no painel ---- */
.par-card{margin-top:20px}
.par-duo{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px;align-items:start}
.par-barras{display:flex;flex-direction:column;gap:14px;padding-top:4px}
.par-linha{display:grid;grid-template-columns:132px minmax(0,1fr) 68px;align-items:center;gap:12px}
.par-rot{display:flex;align-items:center;gap:8px;font-family:var(--cond);font-size:14px;color:var(--tx-2);letter-spacing:-.012em}
.par-rot .kc-dot{width:9px;height:9px;border-radius:var(--r-full);flex:none}
.par-trilho{position:relative;height:10px;border-radius:var(--r-full);background:var(--bg-inner);overflow:hidden}
.par-cheio{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-full)}
.par-cheio.morno{background:var(--grad-warn)}
.par-cheio.frio{background:var(--grad-danger)}
.par-marca{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--tx-3);opacity:.55;z-index:2}
.par-num{font-family:var(--cond);font-size:14px;color:var(--tx-2);text-align:right;font-variant-numeric:tabular-nums}
.par-ciclo{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.pc-tit{font-family:var(--cond);letter-spacing:-.012em;font-size:15px;color:var(--tx-3);margin-bottom:10px}
.pc-duo{display:flex;gap:34px}
.pc-n{display:flex;align-items:baseline;gap:8px}
.pc-n b{font-family:var(--cond);font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.pc-n span{font-size:15px;color:var(--tx-2)}
.par-lista{display:flex;flex-direction:column;gap:8px;background:var(--bg-inner);border:1px solid var(--border);border-radius:var(--r-xl);padding:14px}
.par-topo{font-size:15px;color:var(--tx-2);margin-bottom:2px}
.par-topo b{color:var(--tx-1);font-size:17px}
.par-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 11px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--grad-card);transition:.12s}
.par-item:hover{border-color:var(--brand-accent);transform:translateX(2px)}
.par-item .pi-nome{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.par-item .pi-et{font-family:var(--cond);font-size:15px;color:var(--tx-3);margin-left:auto;white-space:nowrap}
.par-item .pi-dias{font-family:var(--cond);font-size:14px;color:var(--warn);font-variant-numeric:tabular-nums;flex:none}
.par-item.frio .pi-dias{color:var(--danger)}
.par-mais{font-size:14px;color:var(--tx-2);padding:2px 2px 0}
.par-limpo{display:flex;align-items:center;gap:9px;font-size:15px;color:var(--tx-2);padding:6px 2px}
.par-limpo svg{color:var(--ok);flex:none}

/* ============================================================
   RESPONSIVO
   ============================================================ */
.menu-toggle{display:none}
@media(max-width:1100px){
  .detail{grid-template-columns:1fr}
  /* minmax(0,1fr): a coluna não cresce até o nome mais comprido e não estoura a tela (29 SET 2026) */
  .par-duo{grid-template-columns:minmax(0,1fr)}
}
.pc-duo{flex-wrap:wrap;row-gap:10px}
.par-item .pi-nome{min-width:0}
@media(max-width:640px){
  .pc-duo{flex-direction:column;gap:10px}
  .diag-card .section-title{flex-wrap:wrap}
  .diag-card .section-title .ti-s{margin-left:0!important;flex-basis:100%}
}
@media(max-width:900px){
  #app{grid-template-columns:minmax(0,1fr)}
  .sidebar{position:fixed;top:64px;bottom:0;left:0;width:250px;z-index:50;transform:translateX(-100%);transition:.2s;box-shadow:none}
  #app.nav-open .sidebar{transform:translateX(0)}
  .menu-toggle{display:inline-flex}
  .main{grid-column:1/2}
  .topbar{grid-column:1/2}
  .gsearch{max-width:none}
  .usermenu-btn .um-name,.usermenu-btn .um-role,.um-txt{display:none}
  .nav-backdrop{display:none;position:fixed;inset:64px 0 0 0;background:rgba(0,0,0,.5);z-index:45}
  #app.nav-open .nav-backdrop{display:block}
}
@media(max-width:900px){
  .main{overflow-x:hidden}                 /* trava rolagem lateral da página inteira */
  .topbar .theme-toggle{display:none}      /* tema fica no menu do usuário; libera espaço p/ busca */
}
@media(max-width:640px){
  .main{padding:18px 14px}
  .page-head h1{font-size:21px}
  .page-head{gap:12px}
  .page-head .actions{margin-left:0;width:100%}
  .page-head .actions .btn{flex:1 1 calc(50% - 5px);justify-content:center}
  .grid2{grid-template-columns:1fr}
  .theme-toggle button span{display:none}
  .detail{gap:16px}
  /* seções da home: controle ocupa a linha toda */
  .sec-head{gap:10px}
  .sec-head .sec-ctrl{margin-left:0;width:100%;justify-content:space-between}
  .sec-head .sec-ctrl #homeMes,.sec-head .sec-ctrl .sec-select{flex:1}
  /* dashboards: 1 coluna (vence o style inline) */
  #dashArea{grid-template-columns:1fr!important}
  #dashArea>.card{grid-column:auto!important}
  /* gráficos largos: rolagem horizontal só no gráfico, com largura mínima legível */
  .chart-box{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .chart-box svg.chart{min-width:820px}
  /* tabela vira lista de cartões */
  .tbl-scroll{overflow-x:visible}
  table.tbl{min-width:0}
  table.tbl thead{display:none}
  table.tbl,table.tbl tbody,table.tbl tr,table.tbl td{display:block;width:100%}
  /* cada linha num cartão próprio, como no quadro de abertos: separada só por um traço parecia tudo uma coisa só (30 SET 2026) */
  .tbl-wrap{background:transparent;border:0;border-radius:0;overflow:visible}
  table.tbl tbody{display:flex;flex-direction:column;gap:10px}
  table.tbl tr{padding:14px 16px;background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-xl)}
  .tbl-wrap .fech-head{padding:0 0 12px;border-bottom:0}
  table.tbl td{border:none;padding:5px 0;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:15px}
  table.tbl td[data-label]::before{content:attr(data-label);font-family:var(--cond);font-size:14px;letter-spacing:-.012em;color:var(--tx-3);font-weight:600;flex-shrink:0}
  table.tbl td[data-label="Empresa"]{display:block;padding:0 0 8px;margin-bottom:6px;border-bottom:1px solid var(--border)}
  table.tbl td[data-label="Empresa"]::before{display:none}
  table.tbl td.arrow-cell{display:none}
  .cli-owner-name{display:inline}
}
/* Ajustes para telas sem hover (toque): mostrar ações e engordar alvos */
@media(hover:none){
  .task-check{min-width:26px;min-height:26px}
  .btn-icon{min-width:42px;min-height:42px}
  .theme-toggle button{padding:9px 12px}
  .detail-tab,.chip-filter{padding-top:10px;padding-bottom:10px}
}
@media(max-width:640px){
  .modal-head{padding:18px 16px}
  .modal-body{padding:18px 16px}
  .modal-foot{padding:16px;flex-wrap:wrap}
  .modal-foot>.btn{flex:1 1 140px;justify-content:center;margin:0!important}
  .ficha-head{flex-direction:column;align-items:flex-start;gap:12px}
  .ficha-photo{width:100%;height:150px}
}
.nav-backdrop{display:none}

/* Botão "mover" no card do kanban (alternativa ao arrastar, funciona no toque) */
.kc-move{position:absolute;top:4px;right:4px;width:44px;height:44px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;color:var(--tx-3);opacity:0;transition:.12s}
.kcard:hover .kc-move,.kcard:focus-within .kc-move{opacity:1}
.kc-move:hover{background:var(--tinta-2);color:var(--brand-accent)}
/* no toque não existe hover, então o mover fica sempre visível. Precisa vir DEPOIS
   da regra de opacidade zero, senão a declaração posterior vence e o botão some. */
@media(hover:none){.kc-move{opacity:1}}
.move-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.move-opt{display:flex;align-items:center;gap:9px;padding:15px 13px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-inner);color:var(--tx-1);font-size:15px;font-weight:600;text-align:left}
.move-opt:hover:not(:disabled){border-color:var(--brand-primary)}
.move-opt:disabled{opacity:.45}
.move-opt .kc-dot{width:10px;height:10px;border-radius:var(--r-full);flex-shrink:0}
@media(max-width:420px){.move-grid{grid-template-columns:1fr}}

/* ---------- Hover destacado + Tooltips ---------- */
.card.metric{transition:transform .15s, box-shadow .15s, border-color .15s}
.card.metric:hover{transform:translateY(-3px);box-shadow:none;border-color:var(--brand-primary)}
.card.metric.accentbg:hover{border-color:rgba(255,255,255,.5)}
.spark span{transition:filter .12s, transform .12s}
.spark span[data-tip]{cursor:pointer}
.spark span[data-tip]:hover{filter:brightness(1.5) saturate(1.15)}
.bar-row[data-tip]{cursor:pointer;border-radius:var(--r-md);transition:background .12s;padding:3px 5px;margin:0 -5px}
.bar-row[data-tip]:hover{background:var(--bg-inner)}
[data-tip]{cursor:help}
.spark span[data-tip],.bar-row[data-tip]{cursor:pointer}
#toast:empty{display:none}
#tip{position:fixed;z-index:400;background:#182642;color:#fff;border:1px solid #2a3d5f;padding:9px 13px;border-radius:8px;font-size:14px;font-family:var(--cond);line-height:1.35;box-shadow:0 10px 24px rgba(0,0,0,.45);pointer-events:none;opacity:0;transition:opacity .12s;max-width:300px}
#tip.show{opacity:1}
#tip .tip-t{color:#8fb4ee;font-weight:600;display:block;margin-bottom:2px}

/* ============================================================
   DASHBOARDS · Radar Comercial
   ============================================================ */
.dash-filtros{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.dash-filtro{display:flex;align-items:center;gap:8px}
.dash-filtro label{font-family:var(--cond);font-size:14px;letter-spacing:-.012em;color:var(--tx-3);font-weight:600}
.dash-filtro select{background:var(--bg-inner);border:1px solid var(--border);border-radius:var(--r-full);padding:8px 14px;color:var(--tx-1);font-size:14px}
.dash-data{display:inline-flex;align-items:center;gap:6px;font-family:var(--cond);font-size:14px;color:var(--tx-3);white-space:nowrap}

.dash-tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);margin-bottom:20px}
.dash-tab{padding:11px 20px;font-size:15px;font-weight:600;color:var(--tx-2);border-bottom:2px solid transparent;margin-bottom:-1px;transition:.15s}
.dash-tab:hover{color:var(--tx-1)}
.dash-tab.on{color:var(--brand-accent);border-bottom-color:var(--brand-accent)}

/* --- linha de KPI: o número mais importante no canto superior esquerdo --- */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.kpi{background:var(--grad-card);border:1px solid var(--border-suave);border-radius:var(--r-2xl);padding:16px 18px;min-width:0}
.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.kpi-rot{font-size:12px;letter-spacing:-.012em;color:var(--tx-2);font-weight:400;line-height:1.3}
.kpi-ico{width:28px;height:28px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;background:var(--tinta);color:var(--tx-3);flex-shrink:0}
.kpi-val{font-size:28px;font-weight:600;line-height:1.15;letter-spacing:-.022em;font-variant-numeric:tabular-nums;color:var(--tx-1)}
.kpi-un{font-size:14px;font-weight:400;color:var(--tx-3);letter-spacing:-.012em}
.kpi-apoio{margin-top:6px;font-size:12px;color:var(--tx-3);line-height:1.35}
.kpi.ok .kpi-ico{color:var(--ok)}   .kpi.ok .kpi-val{color:var(--ok)}
.kpi.warn .kpi-ico{color:var(--warn)} .kpi.warn .kpi-val{color:var(--warn)}
.kpi.bad .kpi-ico{color:var(--danger)} .kpi.bad .kpi-val{color:var(--danger)}
.v-ok{color:var(--ok)} .v-warn{color:var(--warn)} .v-bad{color:var(--danger)}

.dash-graf{grid-template-columns:1fr 1fr;margin-bottom:20px}

/* --- funil: barra clara com o ponderado sólido dentro --- */
.funil-row{display:flex;align-items:center;gap:14px;padding:9px 0;cursor:pointer}
.funil-lbl{width:132px;flex-shrink:0;font-size:13px;color:var(--tx-2);display:flex;align-items:center;gap:8px}
.funil-n{font-size:12px;font-weight:600;background:var(--tinta);color:var(--tx-2);padding:2px 8px;border-radius:var(--r-full)}
.funil-track{flex:1;height:18px;background:var(--tinta);border-radius:var(--r-sm);overflow:hidden;min-width:0}
.funil-cheio{height:100%;border-radius:var(--r-sm);transition:width .3s}
.funil-pond{height:100%;border-radius:var(--r-sm)}
.funil-val{width:74px;text-align:right;flex-shrink:0;font-family:var(--cond);font-weight:600;font-size:14px;font-variant-numeric:tabular-nums}
.funil-nota{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:14px;color:var(--tx-2);line-height:1.5}
.funil-nota b{color:var(--tx-1)}

/* --- tabela de negócios abertos --- */
.dash-tabela-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 20px;border-bottom:1px solid var(--border)}
.chips-etapa{display:flex;gap:7px;flex-wrap:wrap;margin-left:auto}
.chips-etapa .chip-filter{padding:6px 12px;font-size:14px}
table.tbl th.ordenavel{cursor:pointer;user-select:none;transition:.12s}
table.tbl th.ordenavel:hover{color:var(--tx-1)}
table.tbl th.ordenavel.on{color:var(--brand-accent)}
table.tbl th .ord{margin-left:4px}
table.tbl td.v-bad{color:var(--danger);font-weight:600}
table.tbl td.v-warn{color:var(--warn);font-weight:600}
table.tbl td.v-bad svg{vertical-align:-2px;margin-left:2px}

/* --- cotações revisadas --- */
.rev-row{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--border);font-size:15px}
.rev-row:last-of-type{border-bottom:none}
.rev-nome{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rev-desc{font-family:var(--cond);color:var(--tx-2);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.rev-desc b{color:var(--warn);font-size:15px}
.rev-desc i{display:inline-flex;color:var(--tx-3)}
.rev-custo{width:96px;text-align:right;font-family:var(--cond);font-weight:600;color:var(--danger);font-variant-numeric:tabular-nums}

.dash-aviso{display:flex;align-items:flex-start;gap:10px;margin-top:20px;padding:14px 18px;border-radius:var(--r-xl);background:var(--bg-inner);border:1px solid var(--border);font-size:14px;color:var(--tx-2);line-height:1.5}
.dash-aviso svg{flex-shrink:0;margin-top:2px;color:var(--warn)}
.dash-aviso b{color:var(--tx-1)}
.dash-rodape{margin-top:24px;padding-top:16px;border-top:1px solid var(--border);font-family:var(--cond);font-size:14px;color:var(--tx-3);line-height:1.6}
.dash-rodape b{color:var(--tx-2)}

@media(max-width:1180px){
  .kpi-row{grid-template-columns:repeat(2,1fr)}
  .dash-graf{grid-template-columns:1fr}
}
@media(max-width:720px){
  .kpi-row{grid-template-columns:1fr;gap:12px}
  .kpi-val{font-size:34px}
  .dash-filtros{width:100%}
  .dash-filtro select{flex:1}
  .dash-tabela-head{flex-direction:column;align-items:flex-start;gap:12px}
  .chips-etapa{margin-left:0;overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:4px}
  .funil-lbl{width:104px;font-size:14px}
  .funil-val{width:62px;font-size:14px}
  .rev-row{flex-wrap:wrap;gap:8px}
  .rev-nome{flex-basis:100%}
}

/* ============================================================
   INÍCIO · barra de meta e tira de período
   ============================================================ */
/* Barra de progresso: uma faixa só, com o ritmo esperado marcado e rotulado.
   Substitui o medidor antigo, que tinha divisões, traço e triângulo sem legenda. */

/* Tira de período: recorte compacto, no lugar da segunda fileira de quatro cards */

@media(max-width:900px){
  .pf-stats{grid-template-columns:1fr;gap:4px}
  .pf-head{gap:8px}
  .pf-meta{margin-left:0;width:100%}
  .pf-stat{flex-direction:row;align-items:baseline;gap:10px;flex-wrap:wrap}
  .pf-lbl{width:100%}
}

/* ============================================================
   PAINEL · barra de período e cards de instrumento
   ============================================================ */
.filtro-barra{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--grad-card);border:1px solid var(--border-suave);border-radius:var(--r-2xl);padding:11px 16px;margin-bottom:18px}
.fb-lbl{display:inline-flex;align-items:center;gap:7px;font-size:12px;letter-spacing:-.012em;color:var(--tx-3);font-weight:400}
.fb-lbl svg{color:var(--tx-3)}
.fb-custom{display:inline-flex;align-items:center;gap:8px}
.fb-ate{color:var(--tx-3);font-size:14px}
.fb-meta{margin-left:auto;font-size:12px;color:var(--tx-3);white-space:nowrap}
.fb-meta b{color:var(--tx-1);font-size:12px;font-weight:600}

.bloco-tit{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:15px;font-weight:600;margin:0 0 12px}
.bloco-tit .bt-nota{font-family:var(--cond);font-size:14px;font-weight:400;color:var(--tx-3)}

@media(max-width:760px){
  .filtro-barra{gap:8px}
  .fb-meta{margin-left:0;width:100%;padding-top:4px}
  .fb-custom{width:100%}
  .fb-custom .sec-date{flex:1;min-width:0}
}

/* alvo de toque de 44px nos chips e seletores do filtro, exigência de uso no celular */
@media(hover:none){
  .filtro-barra .chip-filter{min-height:44px;padding-top:11px;padding-bottom:11px}
  .filtro-barra .sec-select,.filtro-barra .sec-date{min-height:44px}
}

/* ---------- Escada de desconto e itens de série (modal do veículo) ---------- */
.escada{margin-top:var(--sp-lg);background:var(--grad-interno);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.esc-head{font-family:var(--cond);font-weight:600;font-size:14px;letter-spacing:.4px;color:#fff;
  background:var(--grad-azul);padding:9px 14px}
.esc-row{display:grid;grid-template-columns:1fr auto auto;gap:var(--sp-md);align-items:center;
  padding:8px 14px;border-top:1px solid var(--border);font-size:15px}
.esc-row:first-of-type{border-top:0}
.esc-rot{color:var(--tx-2)}
.esc-com{color:var(--tx-3);font-size:14px;white-space:nowrap}
.esc-val{font-weight:600;color:var(--tx-1);font-variant-numeric:tabular-nums;white-space:nowrap}
.esc-row.base{background:var(--grad-ok);}
.esc-row.base .esc-rot,.esc-row.base .esc-com,.esc-row.base .esc-val{color:#fff}
.esc-row.base .esc-val{font-size:15px}
.esc-tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:var(--r-full);
  background:rgba(255,255,255,.22);font-size:14px;font-weight:600;letter-spacing:.3px;vertical-align:1px}
.esc-row.trava .esc-rot,.esc-row.trava .esc-com,.esc-row.trava .esc-val{opacity:.6}
.esc-nota{padding:9px 14px;border-top:1px solid var(--border);font-size:14px;color:var(--tx-3)}

.serie{margin-top:var(--sp-lg)}
.serie-h{font-family:var(--cond);font-weight:600;font-size:14px;letter-spacing:.4px;
  color:var(--tx-2);margin-bottom:var(--sp-sm)}
.serie p{font-size:15px;line-height:1.65;color:var(--tx-2);margin:0}

@media(max-width:560px){
  .esc-row{grid-template-columns:1fr auto;row-gap:2px}
  .esc-com{grid-column:1;font-size:14px}
  .esc-val{grid-column:2;grid-row:1/3;align-self:center}
}


/* ============================================================
   PAINEL · veículo primeiro
   A meta da casa é de ônibus, então o painel conta ônibus. O valor em reais
   continua na tela, sempre em segundo plano, porque é consequência da venda
   e não o alvo. Azul é dado, cinza é o que falta, e verde, âmbar e vermelho
   ficam guardados para o veredito de ritmo.
   ============================================================ */

.topo-grid{display:grid;grid-template-columns:1.85fr 1fr 1fr;gap:16px;margin-bottom:16px}

/* ---- o número herói ---- */
.heroi{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-2xl);padding:22px 26px 20px;display:flex;flex-direction:column}
.heroi-rot{display:flex;align-items:center;gap:9px;font-family:var(--cond);font-size:14px;letter-spacing:-.012em;font-weight:600;color:var(--tx-3)}
.heroi-rot svg{opacity:.6}
.heroi-per{color:var(--tx-2);letter-spacing:-.012em}
.heroi-per::before{content:'· '}
.heroi-num{display:flex;align-items:baseline;gap:12px;margin:6px 0 14px}
.heroi-num b{font-family:var(--cond);font-size:clamp(34px,6vw,34px);font-weight:600;line-height:.92;letter-spacing:-.02em;color:var(--tx-1);font-variant-numeric:tabular-nums}
.heroi-de{font-family:var(--cond);font-size:clamp(17px,1.7vw,21px);color:var(--tx-3);font-weight:400}
.heroi-leitura{font-size:14px;color:var(--tx-2);margin-top:10px;line-height:1.5}
.heroi-leitura b{font-weight:600}
.heroi-rodape{margin-top:auto;padding-top:14px;font-size:15px;color:var(--tx-3);letter-spacing:-.012em}
.heroi.clickable{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}
.heroi.clickable:hover{transform:translateY(-3px);box-shadow:none}

/* ---- pictograma: cada silhueta é um ônibus da meta ---- */
.picto{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}
.picto-un{display:inline-flex;line-height:0}
.picto-un.vazio{color:var(--tx-3);opacity:.35}
.picto-un.cheio{color:#4b8fe0}
.picto-un.extra{color:var(--ok)}

/* ---- medidor com o traço do ritmo esperado ---- */
.med{margin-bottom:2px}
.med-track{position:relative;height:9px;background:var(--bg-inner);border-radius:var(--r-full);overflow:visible}
.med-fill{height:100%;border-radius:var(--r-full);background:#4b8fe0;transition:width .45s ease}
.med-fill.ok{background:var(--ok)}
.med-fill.atras{background:#4b8fe0}
.med-mark{position:absolute;top:-4px;width:2px;height:17px;background:var(--tx-2);border-radius:1px;transform:translateX(-1px)}

/* ---- fichas de apoio ---- */
.ficha{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-2xl);padding:20px 22px;display:flex;flex-direction:column}
.ficha-rot{display:flex;align-items:center;gap:7px;font-family:var(--cond);font-size:14px;letter-spacing:-.012em;font-weight:600;color:var(--tx-3)}
.ficha-rot svg{opacity:.55}
.ficha-num{font-family:var(--cond);font-size:clamp(34px,3.4vw,34px);font-weight:600;line-height:1.05;color:var(--tx-1);font-variant-numeric:tabular-nums;margin-top:8px;display:flex;align-items:baseline;gap:8px}
.ficha-un{font-size:15px;font-weight:400;color:var(--tx-3);letter-spacing:-.012em}
.ficha-sub{font-size:14px;color:var(--tx-2);margin-top:2px}
.ficha-rodape{margin-top:auto;padding-top:14px;border-top:1px solid var(--border);font-size:14px;color:var(--tx-3);line-height:1.5}
.ficha-rodape b{color:var(--tx-2);font-weight:600}
.ficha.clickable{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}
.ficha.clickable:hover{transform:translateY(-3px);box-shadow:none}


/* ---- topo: veículos negociados à esquerda e velocímetro da meta à direita ---- */
.topo-duo{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:16px;margin-bottom:16px}
.negociados{background:var(--grad-card);border:1px solid var(--border-suave);border-radius:var(--r-2xl);padding:20px;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:16px}
.negociados.clickable{cursor:pointer;transition:border-color .15s}
.negociados.clickable:hover{border-color:var(--border)}
.neg-titulo{font-size:17px;letter-spacing:-.02em;font-weight:600;color:var(--tx-1);line-height:1.2}
.neg-desc{font-size:12px;color:var(--tx-3);margin-top:4px}
.neg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.neg-quem{min-width:0}
.neg-total{text-align:right;min-width:0}
.neg-num{font-size:34px;font-weight:600;line-height:1.07;letter-spacing:-.022em;color:var(--tx-1);font-variant-numeric:tabular-nums}
.neg-legenda{font-size:12px;color:var(--tx-2);margin-top:2px}
.neg-valor{color:var(--tx-3);letter-spacing:-.012em}
.neg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.neg-box{--c:var(--tx-2);--cr:162,180,205;background:var(--tinta);border:1px solid var(--border-suave);border-radius:var(--r-xl);padding:12px 14px;min-width:0;position:relative}
.neg-box.ok{--c:#2eb984;--cr:22,160,106}
.neg-box.warn{--c:var(--warn);--cr:217,169,60}
.neg-box.danger{--c:#e97f75;--cr:226,92,80}
.neg-box.clickable{cursor:pointer;transition:border-color .15s}
.neg-box.clickable:hover{border-color:rgba(var(--cr),.55)}
.nb-num{font-size:28px;font-weight:600;line-height:1.15;letter-spacing:-.022em;color:var(--c);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:8px}
.nb-meta{font-size:12px;font-weight:400;color:var(--tx-3);letter-spacing:-.012em}
.nb-rot{font-size:14px;letter-spacing:-.012em;font-weight:600;color:var(--c);margin-top:5px}
.nb-valor{font-size:12px;color:var(--tx-3);margin-top:2px;letter-spacing:-.012em}
.nb-pct{position:absolute;top:12px;right:14px;font-size:12px;font-weight:600;line-height:1;color:var(--c);opacity:.8;font-variant-numeric:tabular-nums;letter-spacing:-.012em}
.fb-sep{width:1px;height:22px;background:var(--border);margin:0 2px}

/* ---- velocímetro ---- */
.velo{background:var(--grad-card);border:1px solid var(--border-suave);border-radius:var(--r-2xl);padding:20px;display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;justify-content:space-between}
.velo-head{align-self:stretch;display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.velo-rot{text-align:left;font-size:17px;letter-spacing:-.02em;font-weight:600;color:var(--tx-1);line-height:1.2}
.velo-per{display:block;font-size:12px;letter-spacing:-.012em;font-weight:400;color:var(--tx-3);margin-top:3px}
.velo-desc{text-align:right;font-size:12px;color:var(--tx-3);white-space:nowrap}
.velo-svg{width:100%;max-width:176px;height:auto;margin:6px 0 0;overflow:visible}
.velo-pct{font-weight:600;font-size:28px;fill:var(--tx-1);font-variant-numeric:tabular-nums;letter-spacing:-.022em}
.velo-num{font-size:12px;color:var(--tx-2)}
.velo-num b{font-size:15px;color:var(--tx-1);font-weight:600}
.velo-leitura{font-size:12px;color:var(--tx-2);margin-top:4px;line-height:1.4}
.velo-sem{font-size:12px;color:var(--tx-2);margin:22px 0 6px}
.velo-sem b{font-size:34px;color:var(--tx-1);display:block;line-height:1}
@media(max-width:1100px){.topo-duo{grid-template-columns:1fr}}
@media(max-width:640px){
  .negociados{padding:18px 16px 16px}
  .neg-head{flex-direction:column;gap:10px}
  .neg-total{text-align:left}
  .neg-grid{grid-template-columns:1fr;gap:8px}
  .neg-box{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;padding:10px 14px}
  .nb-num{grid-row:1/3;font-size:34px}
  .nb-pct{top:50%;transform:translateY(-50%)}
  .nb-rot{margin-top:0}
  .fb-sep{display:none}
}


/* ---- visitas: KPI, gráfico geral do Fernando e grade por vendedor ---- */
.vis-card{margin-top:20px}
.vis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.vis-per{font-weight:400;color:var(--tx-3);font-size:13px;margin-left:6px}
.vis-desc{font-size:12px;color:var(--tx-3)}
.vis-kpi{text-align:right}
.vis-kpi-num{font-size:28px;font-weight:600;line-height:1.15;letter-spacing:-.022em;color:var(--tx-1);font-variant-numeric:tabular-nums}
.vis-kpi-num span{font-size:15px;font-weight:400;color:var(--tx-3);margin-left:6px}
.vis-kpi-lbl{font-size:12px;color:var(--tx-3);margin-top:4px}
.vis-geral{padding:6px 0 14px;border-bottom:1px solid var(--border-suave);margin-bottom:14px}
.vb{position:relative;display:flex;align-items:flex-end;gap:6px;height:250px;padding:26px 0 0}
.vb-col{flex:1;min-width:0;display:flex;flex-direction:column;height:100%;border-radius:8px;transition:background .12s;cursor:default}
.vb-col:hover{background:var(--tinta)}
.vb-area{position:relative;flex:1;min-height:0}
.vb-track{position:absolute;left:14%;right:14%;bottom:0;border-radius:8px 8px 6px 6px;background:rgba(162,180,205,.2)}
:root[data-theme="light"] .vb-track{background:#e6ecf5}
/* dia encerrado abaixo da meta: o VERMELHO é o que faltou, não o que foi feito.
   Pintar a barra inteira de vermelho puniria um dia de 11 visitas em 12. */
.vb-col.abaixo .vb-track{background:linear-gradient(180deg,rgba(226,92,80,.34) 0%,rgba(226,92,80,.16) 100%);border:1px solid rgba(226,92,80,.32)}
:root[data-theme="light"] .vb-col.abaixo .vb-track{background:rgba(226,92,80,.16);border-color:rgba(226,92,80,.30)}
.vb-fill{position:absolute;left:14%;right:14%;bottom:0;border-radius:8px 8px 6px 6px;background:linear-gradient(180deg,#5b9cf0 0%,#2f70c6 100%);min-height:6px}
.vb-fill.ok{background:var(--grad-ok)}
.vb-n{position:absolute;left:0;right:0;top:-22px;text-align:center;font-size:12px;font-weight:600;color:var(--tx-1);font-variant-numeric:tabular-nums}
.vb-dia{height:44px;padding-top:8px;text-align:center;font-size:12px;color:var(--tx-3);line-height:1.25}
.vb-dia small{display:block;font-size:12px;color:var(--tx-3);opacity:.75}
.vb-col.hoje .vb-dia{color:var(--tx-1);font-weight:600}
.vb-col.futuro .vb-track{opacity:.5}
.lg-track{background:rgba(162,180,205,.35)}
.vis-grades{display:flex;flex-direction:column}
.vis-row{padding:18px 0 20px;border-bottom:1px solid var(--border-suave)}
.vis-row:last-child{border-bottom:none;padding-bottom:6px}
.vis-quem{display:flex;align-items:center;gap:14px;min-width:0;margin-bottom:16px}
.vis-nome{font-weight:600;font-size:15px;line-height:1.2;display:flex;align-items:baseline;gap:9px}
.vis-un{font-size:12px;letter-spacing:-.012em;color:var(--tx-3);font-weight:400}
.vis-sub{font-size:12px;color:var(--tx-2)}
.vis-sub b{color:var(--tx-1);font-weight:600}
.vis-corpo{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;align-items:start}
.vis-ultimas{border-left:1px solid var(--border-suave);padding-left:18px;min-width:0}
.vu-titulo{font-size:12px;letter-spacing:-.012em;font-weight:600;color:var(--tx-3);margin-bottom:10px}
.vu-item{padding:7px 0;border-bottom:1px solid var(--border-suave)}
.vu-item:last-child{border-bottom:none}
.vu-cli{font-size:13px;font-weight:600;color:var(--tx-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vu-quando{font-size:12px;color:var(--tx-3)}
.vu-vazio{font-size:12px;color:var(--tx-3)}
.vg{display:flex;gap:8px;min-width:0}
.vg-rot{display:grid;grid-template-rows:1fr 1fr 36px;row-gap:6px;align-self:stretch;font-size:12px;letter-spacing:-.012em;color:var(--tx-3)}
.vg-rot span{display:flex;align-items:center}
.vg-cols{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px;flex:1;min-width:0}
.vg-col{display:grid;grid-template-rows:auto auto 36px;row-gap:6px;flex:1 0 30px;min-width:30px;max-width:34px;cursor:default;border-radius:4px}
.vg-col.futuro{opacity:.55}
.vg-col.sab .vg-dia{opacity:.6}
.vb-col.sab .vb-dia{opacity:.6}
.vg-per{display:flex;flex-direction:column;gap:3px}
.vg-c{display:block;width:100%;aspect-ratio:1;border-radius:3px;background:rgba(255,255,255,.07)}
:root[data-theme="light"] .vg-c{background:#fff;box-shadow:none}
.vg-c.meta{background:rgba(162,180,205,.5);box-shadow:none}
:root[data-theme="light"] .vg-c.meta{background:#c9d2de}
.vg-c.ok{background:var(--grad-ok)}
.vg-c.falta{background:var(--grad-danger)}
.vg-dia{font-size:12px;color:var(--tx-3);text-align:center;line-height:18px;display:flex;flex-direction:column}
.vg-dia small{font-size:12px;letter-spacing:-.012em;opacity:.75}
.vg-col.hoje .vg-dia{color:var(--tx-1);font-weight:600}
.vg-col.hoje{background:var(--tinta-2)}
.vis-legenda{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;font-size:12px;color:var(--tx-3)}
.vis-legenda span{display:inline-flex;align-items:center;gap:7px}
.vis-legenda .vg-c{width:12px;height:12px;flex:none}
.vis-legenda .lg{width:14px;height:10px;border-radius:3px;display:inline-block}
.lg-azul{background:linear-gradient(180deg,#5b9cf0,#2f70c6)}.lg-ok{background:var(--grad-ok)}
.lg-falta{background:linear-gradient(180deg,rgba(226,92,80,.4),rgba(226,92,80,.18));border:1px solid rgba(226,92,80,.45)}
@media(max-width:900px){
  .vis-corpo{grid-template-columns:1fr;gap:14px}
  .vis-ultimas{border-left:none;padding-left:0;border-top:1px solid var(--border);padding-top:12px}
  .vis-kpi{text-align:left}
}


/* ---- visitas em trimestre e ano: calendário de calor ---- */
.vb.denso{gap:3px}
.vis-corpo.mensal{align-items:stretch}
.vb.compacto{height:auto;min-height:240px;align-self:stretch;padding:28px 8px 0;gap:10px;border-bottom:1px solid var(--border-suave)}
.vb.compacto .vb-track,.vb.compacto .vb-fill{left:10%;right:10%}
.vb.compacto .vb-dia{height:40px;padding-top:10px}
.vb.compacto .vb-dia small:empty{display:none}
.vb.denso .vb-n{font-size:14px}
.vb.denso .vb-dia small{display:none}
.hcal{display:flex;gap:8px;min-width:0}
.hc-rot{display:grid;grid-template-rows:18px repeat(6,1fr);row-gap:4px;font-size:12px;color:var(--tx-3);letter-spacing:-.012em;align-self:stretch}
.hc-rot span{display:flex;align-items:center}
.hc-cols{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;padding-bottom:2px}
.hc-col{display:grid;grid-template-rows:18px repeat(6,1fr);row-gap:4px;flex:1 0 12px;min-width:12px;max-width:22px}
.hcal.largo .hc-col{max-width:40px}
.hcal.largo .hc-cols{gap:6px}
.hcal.largo .hc-col{row-gap:6px}
.hcal.largo .hc-rot{row-gap:6px}
.hc-mes{font-size:12px;color:var(--tx-3);white-space:nowrap;line-height:18px}
.hc{display:block;width:100%;aspect-ratio:1;border-radius:4px;background:rgba(255,255,255,.07);cursor:pointer}
:root[data-theme="light"] .hc{background:#fff;box-shadow:none}
.hc.vazio{background:transparent;box-shadow:none;cursor:default}
.hc.livre{background:rgba(162,180,205,.07);box-shadow:none}
:root[data-theme="light"] .hc.livre{background:#f3f6fa;box-shadow:none}
.hc-rot .sab{opacity:.6}
.hc.futuro{background:rgba(162,180,205,.12);cursor:default}
:root[data-theme="light"] .hc.futuro{background:#eef2f7;box-shadow:none}
.hc.n4{background:var(--grad-ok)}
.hc.n2{background:linear-gradient(135deg,rgba(31,199,142,.6),rgba(15,143,99,.6))}
.hc.n1{background:var(--grad-warn)}
.hc.n0{background:var(--grad-danger)}
.hc.andamento{background:rgba(61,127,212,.55)}
.hc.hoje{outline:2px solid var(--tx-1);outline-offset:-2px}
.vis-legenda .hc{width:12px;height:12px;flex:none;cursor:default}
.vis-dica{margin-left:auto;color:var(--tx-3)}

/* ---- o ano em uma faixa, e não num segundo bloco de cards igual ao de cima ---- */
.faixa-ano{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--grad-card);border:1px solid var(--border-suave);border-radius:var(--r-2xl);padding:13px 20px}
.fa-rot{font-size:12px;letter-spacing:-.012em;font-weight:400;color:var(--tx-3);white-space:nowrap}
.fa-num{font-size:13px;color:var(--tx-2);white-space:nowrap}
.fa-num b{font-size:15px;font-weight:600;color:var(--tx-1);font-variant-numeric:tabular-nums}
.fa-track{position:relative;flex:1;min-width:160px;height:9px;background:var(--bg-inner);border-radius:var(--r-full)}
.fa-fill{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,#2f70c6,#4b8fe0);transition:width .45s ease}
.fa-fill.ok{background:var(--grad-ok)}
.fa-mark{position:absolute;top:-4px;width:2px;height:17px;background:var(--tx-2);border-radius:1px}
.fa-leitura{font-size:12px;color:var(--tx-2);white-space:nowrap}
.fa-rs{font-size:12px;color:var(--tx-3);white-space:nowrap;margin-left:auto}

/* ---- funil e equipe lado a lado ---- */
.painel-duo{display:grid;grid-template-columns:1fr 1.25fr;gap:20px;margin-top:20px}
.funilv{display:flex;flex-direction:column;gap:4px}
.funilv-row{display:grid;grid-template-columns:104px 1fr 62px 78px;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);cursor:default}
.funilv-row:last-child{border-bottom:none}
.funilv-et{font-size:14px;font-weight:600;color:var(--tx-1)}
.funilv-track{height:16px;background:var(--bg-inner);border-radius:var(--r-sm);overflow:hidden}
.funilv-fill{height:100%;background:#4b8fe0;border-radius:var(--r-sm);min-width:3px;transition:width .45s ease}
.funilv-n{font-family:var(--cond);font-size:17px;font-weight:600;color:var(--tx-1);text-align:right;font-variant-numeric:tabular-nums}
.funilv-un{font-family:var(--font);font-size:15px;font-weight:400;color:var(--tx-3);margin-left:4px}
.funilv-neg{font-family:var(--cond);font-size:14px;color:var(--tx-3);text-align:right}

.perf-un{font-family:var(--cond);font-size:14px;letter-spacing:-.012em;color:var(--tx-3);font-weight:600}
.perf-de{font-family:var(--font);font-weight:400;color:var(--tx-3);font-size:15px;text-transform:none;letter-spacing:0}

/* ---- filtro de cidade na lista de clientes ---- */
.tb-sel{display:inline-flex;align-items:center;gap:8px}
.tb-sel>span{display:inline-flex;align-items:center;gap:5px;font-family:var(--cond);font-size:14px;letter-spacing:-.012em;color:var(--tx-3);font-weight:600;white-space:nowrap}
.funil-rs{display:block;font-family:var(--font);font-size:14px;font-weight:400;color:var(--tx-3);margin-top:1px}
.tb-count{font-family:var(--cond);font-size:14px;color:var(--tx-3);margin-left:auto;white-space:nowrap}

@media(max-width:1240px){
  .topo-grid{grid-template-columns:1fr 1fr}
  .topo-grid .heroi{grid-column:1/3}
  .painel-duo{grid-template-columns:1fr}
}
@media(max-width:760px){
  .topo-grid{grid-template-columns:1fr;gap:12px}
  .topo-grid .heroi{grid-column:auto}
  .heroi-num b{font-size:34px}
  .faixa-ano{gap:10px}
  .fa-rs{margin-left:0;width:100%}
  .funilv-row{grid-template-columns:88px 1fr 52px;gap:9px}
  .funilv-neg{display:none}
  .funil-rs{display:block;font-size:14px;font-weight:400;color:var(--tx-3);margin-top:1px}
.tb-count{margin-left:0;width:100%}
}

/* ============================================================
   23 SET 2026 · quadro de Negociações
   Ganho e Perdido mostram os 3 mais recentes e um botão para o resto.
   No celular o quadro vira abas: uma etapa por vez, lista na vertical.
   ============================================================ */
.kcol-mais{width:100%;min-height:40px;border-radius:var(--r-lg);border:1px dashed var(--border);background:transparent;color:var(--tx-2);font-size:13px;font-weight:600;cursor:pointer;transition:color .15s,border-color .15s}
.kcol-mais:hover{color:var(--brand-accent);border-color:var(--brand-accent)}
.kb-abas{display:none}
.kcard{cursor:pointer}
@media(max-width:720px){
  .kb-abas{display:flex;gap:8px;overflow-x:auto;margin:0 -14px 14px;padding:0 14px 4px;scrollbar-width:none}
  .kb-abas::-webkit-scrollbar{display:none}
  .kb-aba{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--grad-card);color:var(--tx-2);font-size:14px;cursor:pointer}
  .kb-aba .kc-dot{width:8px;height:8px;border-radius:var(--r-full)}
  .kb-aba.on{color:var(--tx-1);border-color:var(--brand-accent);background:var(--tinta-2);font-weight:600}
  .kanban{display:block;overflow:visible}
  .kanban .kcol,.kanban .kcol-fim{display:none;width:100%;flex:none}
  .kanban[data-aba="lead"] .kcol[data-col="lead"],
  .kanban[data-aba="proposta"] .kcol[data-col="proposta"],
  .kanban[data-aba="negociacao"] .kcol[data-col="negociacao"],
  .kanban[data-aba="ganho"] .kcol[data-col="ganho"],
  .kanban[data-aba="perdido"] .kcol[data-col="perdido"]{display:flex}
  .kanban .kcol-head{display:none}
  .kanban-fade{display:none}
}
/* alvo de toque de 44px no celular, nos filtros, seletores e ícones do topo */
@media(max-width:640px),(hover:none){
  .chip-filter,.kb-select,.sec-select,.page-head select,.toolbar select{min-height:44px}
  .btn-icon{min-width:44px;min-height:44px}
  .usermenu-btn{min-height:44px}
  .btn-sm{min-height:44px}
}

/* Tarefas agrupadas por vencimento, com dono e botão de adiar */
.tar-grupo{margin-bottom:18px}
.tar-grupo-t{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;margin:0 2px 10px;letter-spacing:-.012em}
.tar-atrasadas .tar-grupo-t{color:var(--danger)}
.tar-grupo .card{padding-top:4px;padding-bottom:4px}
.ti-dono{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--tx-2);flex:none;min-width:104px}
.ti-adiar{flex:none;min-height:36px;padding:0 14px;border-radius:var(--r-full);border:1px solid var(--border);background:transparent;color:var(--tx-2);font-size:13px;font-weight:600;cursor:pointer;transition:color .15s,border-color .15s}
.ti-adiar:hover{color:var(--brand-accent);border-color:var(--brand-accent)}
@media(max-width:640px){
  .task-item{flex-wrap:wrap;row-gap:8px}
  .task-item>div[style*="flex:1"]{flex:1 1 calc(100% - 40px)!important}
  .ti-dono{min-width:0;margin-left:36px}
  .ti-adiar{min-height:44px}
}

/* ============================================================
   23 SET 2026 · Painel
   Faixa "hoje" no topo, visitas em uma linha por vendedor, previsão do
   trimestre no funil e o diagnóstico de perdas que veio do Radar.
   ============================================================ */
.faixa-hoje{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.fh-rot{align-self:center;font-size:15px;font-weight:600;margin-right:4px}
.hoje-item{flex:1 1 150px;display:flex;align-items:baseline;gap:8px;min-height:48px;padding:10px 16px;border-radius:var(--r-xl);border:1px solid var(--border-suave);background:var(--grad-card);color:var(--tx-2);font-size:14px;text-align:left}
button.hoje-item{cursor:pointer;transition:border-color .15s}
button.hoje-item:hover{border-color:var(--brand-accent)}
.hoje-item b{font-size:21px;font-weight:600;color:var(--tx-1);font-variant-numeric:tabular-nums}
.hoje-item b small{font-size:14px;font-weight:400;color:var(--tx-3)}
.hoje-item.bad b{color:var(--danger)}
.hoje-item.warn b{color:var(--warn)}
.hoje-item.ok b{color:var(--ok)}

.fab{display:none}

.vis-dica-linha{font-size:13px;color:var(--tx-3);margin:14px 0 2px}
.vis-grades.compacto{gap:0}
.vis-linha{border-bottom:1px solid var(--border-suave)}
.vis-linha:last-child{border-bottom:none}
.vl-topo{width:100%;display:grid;grid-template-columns:minmax(150px,1fr) minmax(200px,2fr) minmax(150px,1fr) 24px;align-items:center;gap:18px;padding:14px 4px;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer;border-radius:var(--r-lg)}
.vl-topo:hover{background:var(--tinta)}
.vl-quem{display:flex;align-items:center;gap:12px;min-width:0}
.vl-barra{display:flex;flex-direction:column;gap:6px}
.vl-trilho{height:8px;border-radius:var(--r-full);background:var(--tinta);overflow:hidden}
.vl-cheio{display:block;height:100%;border-radius:var(--r-full);background:var(--grad-azul,var(--info))}
.vl-cheio.ok{background:var(--ok)}
.vl-cheio.bad{background:var(--danger)}
.vl-num{font-size:13px;color:var(--tx-2);font-variant-numeric:tabular-nums}
.vl-num b{color:var(--tx-1)}
.vl-ult{display:flex;flex-direction:column;font-size:14px;color:var(--tx-1);min-width:0}
.vl-ult span{font-size:12px;color:var(--tx-3)}
.vl-seta{color:var(--tx-3);transition:transform .15s}
.vis-linha.aberta .vl-seta{transform:rotate(90deg);color:var(--brand-accent)}
.vis-linha .vis-corpo{padding:4px 4px 20px}

.prev-tri{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-suave);font-size:14px;color:var(--tx-2)}
.prev-tri .pt-rot{font-weight:600;color:var(--tx-1)}
.prev-tri .pt-num b{font-size:17px}

.diag-card{margin-top:20px}
.diag-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.diag-kpi{padding:14px 16px;border-radius:var(--r-xl);background:var(--bg-inner);border:1px solid var(--border-suave)}
.dk-rot{font-size:13px;color:var(--tx-2)}
.dk-val{font-size:28px;font-weight:600;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.dk-apoio{font-size:13px;color:var(--tx-3)}
.diag-duo{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.diag-sub{font-size:14px;font-weight:600;margin-bottom:6px}
button.rev-row{width:100%;background:transparent;border:0;border-bottom:1px solid var(--border);color:inherit;text-align:left;cursor:pointer}
button.rev-row:hover .rev-nome{color:var(--brand-accent)}
.diag-aviso{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:13px;color:var(--tx-3)}
.diag-aviso svg{color:var(--warn);flex:none}

@media(max-width:900px){
  .vl-topo{grid-template-columns:1fr 24px;gap:10px}
  .vl-barra{grid-column:1/2}
  .vl-ult{display:none}
  .vl-seta{grid-row:1/3;grid-column:2}
  .diag-duo{grid-template-columns:1fr}
  .diag-kpis{grid-template-columns:1fr}
}
@media(max-width:640px){
  .painel-sub{display:none}
  .painel-acoes{display:none!important}
  .fab{display:flex;align-items:center;justify-content:center;position:fixed;right:18px;bottom:22px;width:58px;height:58px;border-radius:var(--r-full);border:0;background:var(--brand-accent);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:40;cursor:pointer}
  .faixa-hoje{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .fh-rot{grid-column:1/-1}
  .hoje-item{flex-direction:column;gap:2px;padding:10px 14px}
  /* filtro de período quebra em linhas (29 SET 2026): os botões dividem a primeira linha
     e o seletor de mês e os demais campos ocupam a largura toda, sem nada escondido à direita */
  .filtro-barra{flex-wrap:wrap;padding:10px}
  .filtro-barra .fb-lbl,.filtro-barra .fb-meta{display:none}
  .filtro-barra .chip-filter{flex:1 1 auto;justify-content:center;padding-left:10px;padding-right:10px}
  .filtro-barra>:not(.chip-filter){flex:1 1 100%;min-width:0}
  .filtro-barra .mes-nav{display:flex;align-items:center;height:48px;padding:2px}
  .filtro-barra .mes-nav .btn-icon{width:44px;height:44px;min-width:44px;min-height:44px;padding:0}
  .filtro-barra .mes-nav .sec-select{height:40px}
  .filtro-barra .mes-nav .sec-select{flex:1;min-width:0}
  .criar-lista{display:grid;gap:10px}
}
.criar-lista{display:grid;gap:10px}

/* Catálogo: um cartão por modelo, o ar condicionado vira escolha dentro dele */
.cat-ar{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.cat-ar-rot{font-size:13px;color:var(--tx-2)}
.cat-ar-ops{display:flex;flex-wrap:wrap;gap:6px}
.cat-ar-op{min-height:34px;padding:0 12px;border-radius:var(--r-full);border:1px solid var(--border);background:transparent;color:var(--tx-2);font-size:13px;cursor:pointer;transition:color .15s,border-color .15s}
.cat-ar-op:hover{color:var(--tx-1);border-color:var(--tx-3)}
.cat-ar-op.on{color:var(--tx-1);border-color:var(--brand-accent);background:var(--tinta-2);font-weight:600}
@media(max-width:640px),(hover:none){.cat-ar-op{min-height:44px}}
.cat-card:hover{transform:none}

/* acertos depois da conferência no celular */
.diag-duo .funil-lbl{width:190px}
@media(max-width:640px){
  .ti-dono span{display:none}
  .ti-dono{margin-left:36px}
  .ti-tag{margin-left:auto}
  .ti-adiar{min-height:40px}
  .kb-sub{display:none}
  .par-item{min-height:44px}
  .nav-item{min-height:44px}
  .btn{min-height:44px}
  .gsearch input{min-height:44px}
  .diag-duo .funil-lbl{width:120px}
}
/* as cinco colunas cabem em 1440: as abertas dividem a sobra, as fechadas ficam estreitas */
@media(min-width:721px){
  .kanban .kcol{flex:1 1 220px;min-width:220px}
  .kanban .kcol-fim{flex:0 0 200px;min-width:200px}
}

/* Gráfico de veículos vendidos, agora em HTML no molde do gráfico de visitas.
   Azul é vendido, verde é mês com a meta batida, hachurado é o previsto. */
.vb.vv{height:260px;padding-top:30px}
.vv-plano{position:absolute;left:0;right:0;top:30px;bottom:44px;pointer-events:none}
.vv-meta{position:absolute;left:0;right:0;border-top:1.5px dashed var(--tx-3);z-index:2}
.vv-meta span{position:absolute;right:0;bottom:4px;font-size:12px;font-weight:600;color:var(--tx-2)}
.vb.vv .vb-fill,.vb.vv .vv-prev{left:22%;right:22%}
.vv-prev{position:absolute;border-radius:8px 8px 0 0;background-color:rgba(47,112,198,.18);background-image:repeating-linear-gradient(45deg,transparent 0 3px,rgba(75,143,224,.45) 3px 4.5px);border:1px solid rgba(75,143,224,.55);border-bottom:0}
.vb.vv .vv-prev+.vb-fill{border-radius:0 0 6px 6px}
.vv-n{position:absolute;left:0;right:0;margin-bottom:6px;text-align:center;font-size:12px;font-weight:600;color:var(--tx-2);font-variant-numeric:tabular-nums}
.vv-n small{font-size:12px;font-weight:400;color:var(--tx-3);margin-left:1px}
.vb-col.hoje .vv-n{color:var(--tx-1)}
.vb.vv .vb-col{cursor:default}
.legend{font-family:var(--font);font-size:13px}
.legend i.lg-vendido{width:12px;height:12px;border-radius:4px;background:linear-gradient(180deg,#5b9cf0 0%,#2f70c6 100%)}
.legend i.lg-ok-v{width:12px;height:12px;border-radius:4px;background:var(--grad-ok)}
.legend i.prev-swatch{width:12px;height:12px;border-radius:4px}
@media(max-width:640px){
  .vv-n small{display:none}
}
/* acertos do gráfico de vendidos: barra com largura máxima, número por cima da linha da meta */
.vb.vv .vb-fill,.vb.vv .vv-prev{left:50%;right:auto;width:min(56%,64px);transform:translateX(-50%)}
.vv-meta{z-index:0}
.vv-n{z-index:3;text-shadow:0 0 3px var(--bg-card),0 0 6px var(--bg-card),0 0 8px var(--bg-card)}
@media(max-width:640px){
  .vb.vv{min-width:0;gap:2px}
  .vb.vv .vb-fill,.vb.vv .vv-prev{width:70%}
  .vv-meta span{display:none}
  .card:has(.vb.vv) .section-title .ti-s{display:none}
}

/* A lista aberta de um select é desenhada pelo sistema. Sem color-scheme ela vinha
   branca com o texto branco do tema escuro, e as opções sumiam. */
:root, :root[data-theme="dark"]{color-scheme:dark}
:root[data-theme="light"]{color-scheme:light}
select option{background-color:var(--bg-card);color:var(--tx-1)}

/* ============================================================
   23 SET 2026 · Negociações em duas abas: Em aberto e Fechados
   ============================================================ */
.kb-modo{display:inline-flex;gap:4px;padding:4px;margin-bottom:16px;border-radius:var(--r-full);background:var(--bg-inner);border:1px solid var(--border-suave)}
.kb-modo button{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 18px;border-radius:var(--r-full);border:0;background:transparent;color:var(--tx-2);font-size:14px;cursor:pointer;transition:background .15s,color .15s}
.kb-modo button:hover{color:var(--tx-1)}
.kb-modo button.on{background:var(--grad-card);color:var(--tx-1);font-weight:600;box-shadow:inset 0 0 0 1px var(--brand-accent)}
.kb-lbl{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--tx-2)}
.kb-resumo{margin-left:auto;color:var(--tx-2);font-size:13px}

/* a faixa de ganhos e perdidos saiu do topo em 26 SET 2026; os fechados ficam na aba Fechados.
   O topo só aparece durante o arrasto, com as zonas de ganho e perda. */
.kb-topo{position:relative;margin-bottom:0}
body.kb-arrastando .kb-topo{margin-bottom:16px}
.kb-faixa{width:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:50px;padding:10px 18px;border-radius:var(--r-xl);border:1px solid var(--border-suave);background:var(--grad-card);color:var(--tx-2);font-size:14px;text-align:left;cursor:pointer;transition:border-color .15s}
.kb-faixa:hover{border-color:var(--brand-accent)}
.kb-faixa b{font-weight:600}
.kf-fraca{color:var(--tx-3)}
.kf-sep{color:var(--tx-3)}
.kf-acao{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:var(--brand-accent);font-weight:600}
.kb-zonas{display:none;grid-template-columns:1fr 1fr;gap:12px}
.kzona{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border-radius:var(--r-xl);border:1.5px dashed;font-size:14px;font-weight:600;transition:background .15s}
.kzona.ganho{color:var(--ok);border-color:var(--ok);background:rgba(22,160,106,.08)}
.kzona.perdido{color:var(--danger);border-color:var(--danger);background:rgba(226,92,80,.08)}
.kzona.drop.ganho{background:rgba(22,160,106,.22)}
.kzona.drop.perdido{background:rgba(226,92,80,.22)}
body.kb-arrastando .kb-faixa{display:none}
body.kb-arrastando .kb-zonas{display:grid}
.kanban .kcol{flex:1 1 260px;min-width:240px}

.fech-resumo{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.fr-item{display:flex;flex-direction:column;gap:2px;padding:14px 18px;border-radius:var(--r-xl);border:1px solid var(--border-suave);background:var(--grad-card)}
.fr-rot{font-size:13px;color:var(--tx-2)}
.fr-item b{font-size:28px;font-weight:600;font-variant-numeric:tabular-nums}
.fr-apoio{font-size:13px;color:var(--tx-3)}
.fech-head{padding:14px 16px;border-bottom:1px solid var(--border)}
.fech-motivo{font-size:12px;color:var(--tx-3);margin-top:4px}
.fech-dono{display:inline-flex;align-items:center;gap:8px}
@media(max-width:720px){
  .kb-modo{display:flex}
  .kb-modo button{flex:1;justify-content:center;min-height:44px}
  .kb-resumo{margin-left:0;width:100%}
  .kf-acao{margin-left:0;width:100%}
  .fech-resumo{grid-template-columns:1fr}
  .kb-lbl{display:none}
}
.chips-etapa{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:720px){
  .fech-resumo{grid-template-columns:repeat(3,1fr);gap:8px}
  .fr-item{padding:10px 12px}
  .fr-item b{font-size:21px}
  .fr-apoio{display:none}
  .fr-rot{font-size:12px;line-height:1.3}
  .fech-tbl td[data-label="Cliente"]{display:block;padding:0 0 8px;margin-bottom:6px;border-bottom:1px solid var(--border)}
  .fech-tbl td[data-label="Cliente"]::before{display:none}
  .fech-tbl td[data-label="Resultado"]{flex-wrap:wrap}
  .fech-motivo{width:100%;text-align:right;margin-top:0}
}

/* cabeçalho de etapa em card (23 SET 2026) */
.kcol-card{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--r-xl);border:1px solid var(--border-suave);background:var(--grad-card)}
.kcol-card .kcol-head{padding:0}
.kcol-card .kcol-head h2{font-size:14px;font-weight:400;color:var(--tx-2)}
.kcc-num{font-size:28px;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--tx-1);margin-top:4px}
.kcc-num span{font-size:14px;font-weight:400;color:var(--tx-2);margin-left:6px}
.kcc-apoio{font-size:13px;color:var(--tx-3)}
.kcol-card .kcol-frios{padding:0;margin-top:6px}
@media(max-width:720px){
  .kanban .kcol-card .kcol-head{display:none}
  .kcc-num{margin-top:0}
}
@media(min-width:641px){ .ti-tag{min-width:132px;text-align:right} }

/* Cabeçalho das telas: botão centrado na altura do título. Negociações: abas à
   esquerda e filtros à direita na mesma linha, todos os controles com 40px. */
.page-head{align-items:center;margin-bottom:18px}
.kb-barra{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.kb-barra .kb-modo{margin-bottom:0;padding:3px}
.kb-barra .kb-modo button{min-height:34px;padding:0 16px}
.kb-filtros{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.kb-filtros .chip-filter,.kb-filtros .kb-select{height:40px;min-height:40px;padding-top:0;padding-bottom:0}
.kb-filtros .kb-select{padding-left:14px;padding-right:10px;min-width:170px}
@media(max-width:720px){
  .kb-barra{flex-direction:column;align-items:stretch}
  .kb-barra .kb-modo button{min-height:40px}
  .kb-filtros{margin-left:0;justify-content:stretch;flex-wrap:nowrap}
  .kb-filtros>*{flex:1 1 0;min-width:0}
  .kb-filtros .chip-filter,.kb-filtros .kb-select{height:44px;min-height:44px}
  .kb-filtros .kb-select{min-width:0}
  .kb-filtros .chip-filter{justify-content:center}
}

/* cabeçalho de etapa em destaque: faixa e tinta na cor da etapa, para não se
   confundir com os cartões de negócio embaixo; o aviso de esfriando sobe para
   a linha do nome, à direita */
.kcol-card{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--etapa) 45%,transparent);
  background:linear-gradient(160deg,color-mix(in srgb,var(--etapa) 26%,var(--bg-card)) 0%,color-mix(in srgb,var(--etapa) 10%,var(--bg-card)) 100%);
  padding:14px 16px 14px;margin-bottom:4px}
.kcol-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--etapa)}
.kcol-card .kcol-head{align-items:center}
.kcol-card .kcol-head h2{color:var(--tx-1);font-weight:600}
.kcol-card .kcol-frios{margin:0 0 0 auto;padding:3px 10px;border-radius:var(--r-full);background:color-mix(in srgb,currentColor 14%,transparent);font-size:12px;white-space:nowrap}
.kcc-num{font-size:34px}
.kcc-apoio{color:var(--tx-2)}
@media(max-width:720px){
  .kanban .kcol-card .kcol-head{display:flex}
  .kanban .kcol-card .kcol-head .kc-dot,.kanban .kcol-card .kcol-head h2{display:none}
  .kcc-num{font-size:28px}
}
.kcol-card .kcol-head{min-height:26px}
/* Cabeçalho pintado com a cor da etapa (26 SET 2026, pedido do André): o tom
   escuro de antes ficava parecido demais com os cartões de negócio da lista. */
.kcol-card{background:linear-gradient(160deg,var(--etapa) 0%,color-mix(in srgb,var(--etapa) 78%,#000) 100%);
  border-color:transparent;color:var(--etapa-tx,#fff);box-shadow:0 6px 18px -8px color-mix(in srgb,var(--etapa) 70%,transparent)}
.kcol-card::before{display:none}
.kcol-card .kcol-head h2,.kcol-card .kcc-num,.kcol-card .kcc-num span,.kcol-card .kcc-apoio{color:inherit}
.kcol-card .kcc-num span,.kcol-card .kcc-apoio{opacity:.82}
.kcol-card .kc-dot{background:currentColor!important}
.kcol-card .kcol-frios{background:rgba(8,14,24,.78);color:#ff8a80}
.kcol-card .kcol-frios.morno{color:#f3c55a}
.kcol-card .kcol-frios .kc-sinal{background:currentColor}

/* ============================================================
   23 SET 2026 · ficha do negócio, visita, formulários e toast
   ============================================================ */
.field-lbl{display:block;font-size:14px;color:var(--tx-2);margin-bottom:6px}
.campo-erro{margin-top:6px;font-size:13px;color:var(--danger-tx,var(--danger))}
.field [aria-invalid="true"]{border-color:var(--danger)!important}
/* controle segmentado: período da visita e etapa do negócio */
.seg{display:flex;gap:4px;padding:3px;border-radius:var(--r-full);background:var(--bg-inner);border:1px solid var(--border-suave)}
.seg button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 12px;border-radius:var(--r-full);border:0;background:transparent;color:var(--tx-2);font-size:14px;cursor:pointer;transition:background .15s,color .15s}
.seg button:hover{color:var(--tx-1)}
.seg button[aria-checked="true"]{background:var(--grad-card);color:var(--tx-1);font-weight:600;box-shadow:inset 0 0 0 1px var(--brand-accent)}
.seg .kc-dot{width:8px;height:8px;border-radius:var(--r-full)}
/* ficha */
.ficha-contato{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;margin-bottom:14px;border-radius:var(--r-xl);background:var(--bg-inner);border:1px solid var(--border-suave)}
.fc-nome{font-weight:600}
.fc-acoes{display:flex;gap:8px}
.ficha-atalhos{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 20px}
.ficha-atalhos .btn{flex:1 1 0;justify-content:center}
.link-perigo{display:inline-flex;align-items:center;gap:6px;margin-top:22px;padding:8px 0;border:0;background:transparent;color:var(--tx-3);font-size:13px;cursor:pointer}
.link-perigo:hover{color:var(--danger)}
.btn-ganhou{background:var(--grad-ok);color:#fff;font-weight:600}
.btn-ganhou:hover{filter:brightness(1.08)}
.btn-perdeu{color:var(--danger-tx,var(--danger))}
.btn-perdeu:hover{border-color:var(--danger)}
.ganho-resumo{text-align:center;padding:18px 12px 20px;margin-bottom:12px;border-radius:var(--r-xl);background:color-mix(in srgb,var(--ok) 12%,transparent);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent)}
.gr-num{font-size:34px;font-weight:600;margin-top:6px}
.gr-val{font-size:17px;color:var(--tx-2)}
/* janela balança quando o toque fora tentaria descartar o que foi digitado */
@keyframes balanca{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.modal.balanca{animation:balanca .3s ease}
@media (prefers-reduced-motion:reduce){.modal.balanca{animation:none;outline:2px solid var(--brand-accent)}}
/* toast de erro e com ação */
#toast{display:flex;align-items:center;gap:10px}
#toast.erro{background:var(--grad-danger)}
.toast-acao{margin-left:6px;padding:6px 14px;min-height:34px;border-radius:var(--r-full);border:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;font-weight:600;font-size:14px;cursor:pointer}
.toast-acao:hover{background:rgba(255,255,255,.14)}
/* faixa Hoje: visitas com atalho de registrar */
.hoje-visita{position:relative}
.hoje-visita em{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:13px;font-weight:600;color:var(--brand-accent)}
@media(max-width:640px){
  .hoje-visita em{margin-left:0}
  .ficha-atalhos .btn{flex:1 1 calc(50% - 4px)}
  .fc-acoes{width:100%}
  .fc-acoes .btn{flex:1}
}

/* ============================================================
   23 SET 2026 · navegação no celular
   Barra no rodapé (zona do polegar) com Painel, Tarefas, Negócios, Clientes
   e Mais, que abre o menu com Catálogo e Colaboradores. O + fica em todas as
   telas, acima da barra, e os botões de criar do cabeçalho saem no celular.
   ============================================================ */
.tabbar{display:none}
@media(max-width:900px){
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:45;
    padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--bg-card);border-top:1px solid var(--border)}
  .tb-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;
    border:0;background:transparent;color:var(--tx-2);font-size:12px;cursor:pointer;border-radius:var(--r-lg);text-decoration:none}
  .tb-item.active{color:var(--brand-accent);font-weight:600}
  .tb-item:active{background:var(--tinta)}
  .tb-badge{position:absolute;top:4px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-full);
    background:var(--danger);color:#fff;font-size:11px;font-style:normal;font-weight:600;display:flex;align-items:center;justify-content:center}
  .menu-toggle{display:none!important}
  .main{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
  .sidebar{bottom:calc(64px + env(safe-area-inset-bottom))}
  .nav-backdrop{bottom:calc(64px + env(safe-area-inset-bottom))}
  #toast{bottom:calc(84px + env(safe-area-inset-bottom))}
}
.fab{display:none}
@media(max-width:640px){
  .fab{display:flex;align-items:center;justify-content:center;position:fixed;right:16px;bottom:calc(80px + env(safe-area-inset-bottom));
    width:58px;height:58px;border-radius:var(--r-full);border:0;background:var(--brand-accent);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:44;cursor:pointer}
  .fab:active{transform:scale(.96)}
  .page-head .actions [data-new]{display:none}
  .page-head .actions:not(:has(:not([data-new]))){display:none}
}
.prev-tri .pt-apoio{width:100%;font-size:13px;color:var(--tx-3)}

/* ============================================================
   23 SET 2026 · cores e acessibilidade
   Etapas do funil (26 SET 2026, decisão do André): cor bem diferente por
   etapa, porque três tons de azul não se distinguiam no quadro. Lead branco,
   Cotação azul Volare, Negociação roxo, Ganho verde, Perdido vermelho.
   Âmbar continua só para "esfriando" e laranja só para ação. No tema claro
   o branco sumiria no fundo, então lá o Lead é grafite, o neutro do tema.
   Texto em vermelho e verde tem tom próprio, para passar de 4,5:1.
   ============================================================ */
:root, :root[data-theme="dark"]{
  --et-lead:#eef2f8; --et-cot:#2f6fca; --et-neg:#7c4ddb;
  /* texto sobre o cabeçalho pintado de cada etapa (contraste 4,5:1 ou mais) */
  --et-lead-tx:#0b1626; --et-cot-tx:#fff; --et-neg-tx:#fff;
  --serie-neutra:#7e93b0;
  --danger-tx:#ef6b60; --ok-tx:#1fb57a;
}
:root[data-theme="light"]{
  --et-lead:#3a3f47; --et-cot:#20559b; --et-neg:#6d3fd0;
  --et-lead-tx:#fff; --et-cot-tx:#fff; --et-neg-tx:#fff;
  --serie-neutra:#8a9ab0;
  --danger-tx:#c9453a; --ok-tx:#0d7a50;
}
.v-ok{color:var(--ok-tx)!important}
.v-bad{color:var(--danger-tx)!important}
.kc-dias.frio,.kcol-frios.frio,.tar-atrasadas .tar-grupo-t,.btn-perdeu{color:var(--danger-tx)}
/* barras sem animar a largura, que força recálculo de layout a cada quadro */
.funil-cheio,.med-fill,.fa-fill,.funilv-fill{transition:none}
/* catálogo: o título do cartão virou h2 sem mudar de tamanho */
.cat-body h2.cat-tit{font-size:15px;font-weight:600;line-height:1.3}
/* acabamentos achados na checagem visual */
.vl-quem .vis-un{display:block;margin-left:0}
.vl-topo{grid-template-columns:minmax(170px,1fr) minmax(200px,2fr) minmax(150px,1fr) 24px}
.kb-barra>*{min-width:0;max-width:100%}
.kb-modo button{min-width:0}
.info-row .ir-l{white-space:nowrap}
.info-row .ir-v{min-width:0;overflow-wrap:anywhere}
/* linha de veículo (ficha do negócio e resumo da cotação): o nome é texto longo, quebra linha e o valor fica inteiro */
.info-row.item-veic .ir-l{white-space:normal;min-width:0;flex:1}
.info-row.item-veic .ir-v{white-space:nowrap;overflow-wrap:normal;flex-shrink:0}
@media(max-width:900px){ .vl-topo{grid-template-columns:1fr 24px} }
/* no celular a mensagem fica à esquerda do +, sem cobrir o botão */
@media(max-width:640px){
  #toast{left:16px;right:88px;max-width:none;transform:translateY(160px);font-size:14px;padding:12px 16px;border-radius:var(--r-xl)}
  #toast.show{transform:translateY(0)}
}
.vl-quem .vis-nome{flex-direction:column;align-items:flex-start;gap:0}
@media(max-width:640px){ .funilv-row{grid-template-columns:88px minmax(0,1fr) auto} }
@media(max-width:640px){ .diag-duo .funil-lbl{flex-wrap:wrap;row-gap:4px} }

/* faixa do ano como rodapé do card de vendidos */
.card-vendidos{margin-bottom:20px}
.faixa-ano.no-card{background:none;border:0;border-top:1px solid var(--border-suave);border-radius:0;padding:14px 0 0;margin-top:14px}
.card-vendidos + .vis-card{margin-top:0}

/* Pé do menu lateral com tema, avisos e usuário (23 SET 2026) */
.sidebar-foot{display:flex;flex-direction:column;gap:10px;padding:14px 4px 2px;font-size:inherit;color:inherit}
.sidebar-foot .theme-toggle{width:100%}
.sidebar-foot .theme-toggle button{flex:1;justify-content:center}
.sidebar-foot .theme-toggle button span{display:inline!important}
.sidebar-foot .usermenu{display:flex;align-items:center;gap:6px}
.sidebar-foot .usermenu-btn{flex:1;min-width:0;border:0;border-radius:var(--r-lg);padding:6px 8px 6px 6px;text-align:left}
.sidebar-foot .usermenu-btn:hover{background:var(--tinta)}
.sidebar-foot .um-txt{display:flex!important;flex-direction:column;min-width:0}
.sidebar-foot .um-name,.sidebar-foot .um-role{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-foot .usermenu-drop{top:auto;bottom:calc(100% + 8px);left:0;right:0;width:auto}
@media(min-width:901px){ .sidebar{position:sticky;top:60px;height:calc(100vh - 60px);align-self:start} }
.sidebar-foot .umd-item .umd-quem{display:flex;flex-direction:column;line-height:1.25}
.sidebar-foot .umd-item .umd-quem small{font-size:12px;color:var(--tx-3)}

/* Logos no alto do menu lateral e busca maior depois da divisão (23 SET 2026) */
@media(min-width:901px){
  .topbar{padding-left:0;gap:28px}
  .topbar .brands{align-self:flex-start;box-sizing:border-box;width:250px;height:61px;margin-bottom:-1px;padding:0 20px;justify-content:center;
    background:var(--grad-fundo);border-right:1px solid var(--border-suave);position:relative;z-index:1}
  .gsearch{max-width:860px}
}
@media(min-width:901px){
  .topbar .brands{background:#0d1a2e}
  :root[data-theme="light"] .topbar .brands{background:#eef3f9}
}

/* Tela Visitas (23 SET 2026) */
.vis-hoje{display:grid;grid-template-columns:auto 1fr 1fr;gap:12px 28px;align-items:center;margin-bottom:18px;padding:18px 22px}
.vh-tit{font-size:18px;font-weight:700;display:flex;flex-direction:column;line-height:1.2}
.vh-tit span{font-size:12px;font-weight:400;color:var(--tx-3);margin-top:3px}
/* manhã e tarde cada uma no seu quadro, para a divisão ficar clara (30 SET 2026) */
.vh-per{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:baseline;padding:12px 14px;border-radius:var(--r-lg);background:var(--bg-inner);border:1px solid var(--border-suave)}
.vh-per .vh-trilho{background:var(--border)}
.vh-rot{font-size:14px;color:var(--tx-2)}
.vh-num{font-size:14px;color:var(--tx-3)}
.vh-num b{font-size:24px;color:var(--tx-1);margin-right:3px}
.vh-per.ok .vh-num b{color:var(--ok-tx)}
.vh-trilho{grid-column:1/-1;height:6px;border-radius:var(--r-full);background:var(--bg-inner);overflow:hidden}
.vh-trilho span{display:block;height:100%;border-radius:inherit;background:var(--et-cot)}
.vh-per.ok .vh-trilho span{background:var(--ok)}
.vh-per.bad .vh-trilho span{background:var(--danger)}
.vis-duo{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;margin-top:20px;align-items:start}
.vhist-dia + .vhist-dia{margin-top:14px}
.vhist-data{font-size:13px;color:var(--tx-3);display:flex;align-items:center;gap:6px;padding:0 2px 6px}
.vhist-data b{color:var(--tx-1);font-weight:600;text-transform:capitalize}
.vhist-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 12px;border-radius:var(--r-lg);background:var(--bg-inner);border:1px solid var(--border-suave);margin-top:6px;cursor:pointer}
.vhist-item:hover{border-color:var(--border)}
.vhi-per{flex-shrink:0;width:52px;font-size:12px;color:var(--tx-3)}
.vhi-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.vhi-cli{font-weight:600;font-size:14px;color:var(--tx-1)}
.vhi-sub{font-size:13px;color:var(--tx-3);overflow-wrap:anywhere}
.vhi-quem{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--tx-2);flex-shrink:0}
.vhist-mais{width:100%;justify-content:center;margin-top:14px}
.vq-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border-suave)}
.vq-item:first-of-type{border-top:0}
.vq-abrir{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;background:none;border:0;padding:0;cursor:pointer}
.vq-abrir .badge{margin-top:3px}
.vq-cli{font-weight:600;font-size:14px;color:var(--tx-1)}
.vq-abrir:hover .vq-cli{color:var(--brand-accent)}
.vq-sub{font-size:13px;color:var(--tx-3)}
.vq-mais{font-size:13px;color:var(--tx-3);padding-top:10px;border-top:1px solid var(--border-suave)}
@media(max-width:1100px){ .vis-duo{grid-template-columns:1fr} }
@media(max-width:640px){
  .vis-hoje{grid-template-columns:1fr 1fr;gap:12px 10px;padding:16px}
  .vh-tit{grid-column:1/-1;flex-direction:row;align-items:baseline;gap:8px}
  .vhi-quem span{display:none}
}
/* histórico em linhas baixas, sem caixa por visita; no celular "Quem visitar" vem antes */
.vhist-item{background:none;border:0;border-top:1px solid var(--border-suave);border-radius:0;margin-top:0;padding:9px 4px}
.vhist-item:hover{background:var(--tinta)}
.vhist-data{padding-top:4px}
@media(max-width:1100px){ .vis-duo > .card:last-child{order:-1} }

/* Login: perfis do protótipo numa linha fixa de fotos, sem abrir e fechar (23 SET 2026) */
.login-demo .lbl{cursor:default}
.login-demo .lbl::after{content:none}
/* perfis em linhas de até 4, centralizados: o quinto (Ana Paula) fica no meio da segunda linha */
.demo-users{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:12px}
.demo-users>.demo-user{flex:0 0 calc((100% - 18px)/4)}
.demo-user{flex-direction:column;align-items:center;gap:3px;padding:10px 4px;text-align:center;border-color:transparent;background:transparent;width:auto}
.demo-user:hover{border-color:var(--border);background:var(--bg-inner);transform:none}
.demo-user .avatar{margin-bottom:4px}
.demo-user .du-name{font-size:14px;line-height:1.2}
.demo-user .du-role{font-size:12px;color:var(--tx-3);line-height:1.2}

/* Login cabe na tela do notebook: em tela baixa a caixa aperta os espaços em vez de rolar (23 SET 2026) */
@media(min-width:861px) and (max-height:860px){
  #login{padding:20px 24px}
  .login-box{min-height:0;max-width:960px}
  .login-side{padding:28px 44px}
  .login-brands{margin-bottom:20px}
  .login-brands img{height:40px}
  .login-brands-sep{height:38px}
  .login-title{font-size:25px;margin-bottom:6px}
  .login-cities{margin-bottom:20px}
  .login-form .field{margin-bottom:12px}
  .login-form .field label{margin-bottom:4px}
  .login-form .field input{padding:10px 14px}
  .login-entrar{padding:10px 20px;margin-top:4px}
  .login-theme{margin-top:14px}
  .login-demo{margin-top:16px;padding-top:12px}
  .demo-users{margin-top:6px}
  .demo-user{padding:6px 4px}
}
@media(min-width:861px) and (max-height:700px){
  .login-brands{margin-bottom:14px}
  .login-brands img{height:34px}
  .login-title{font-size:22px}
  .login-cities{margin-bottom:14px}
  .login-form .field{margin-bottom:10px}
  .demo-user .avatar{width:30px;height:30px}
  .login-demo{margin-top:12px;padding-top:10px}
}

/* Tempo parado: explicação em frase e o limite escrito embaixo de cada barra (23 SET 2026) */
.par-card .section-title{margin-bottom:4px}
.par-explica{font-size:13px;color:var(--tx-3);margin:0 0 16px;max-width:760px;line-height:1.45}
.par-linha{row-gap:4px}
.par-regua{grid-column:2/4;font-size:12px;color:var(--tx-3);margin-top:-1px}
@media(max-width:640px){ .par-regua{grid-column:1/-1} }
/* Tarefas: seletor de quem, à direita dos filtros (23 SET 2026) */
.toolbar .tar-de{margin-left:auto}
@media(max-width:640px){ .toolbar .tar-de{margin-left:0;width:100%} .toolbar .tar-de select{flex:1} }

/* Contatos do cliente: lista editável no cadastro e na edição, titular no topo (23 SET 2026) */
.modal.modal-lg{max-width:760px}
.ct-bloco{margin-top:8px;padding-top:16px;border-top:1px solid var(--border-suave)}
.ct-cab{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.ct-cab-t{font-size:15px;font-weight:600;color:var(--tx-1)}
.ct-cab-s{font-size:13px;color:var(--tx-3)}
.ct-lista{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.ct-linha{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-inner);position:relative}
.ct-linha:first-child{border-color:var(--brand-accent);box-shadow:inset 3px 0 0 var(--brand-accent)}
.ct-linha.arrastando{opacity:.45}
.ct-alca{display:flex;align-items:center;justify-content:center;height:36px;border:0;background:none;color:var(--tx-3);cursor:grab;border-radius:var(--r-md)}
.ct-alca:hover{color:var(--tx-1);background:var(--tinta)}
.ct-alca:active{cursor:grabbing}
.ct-campos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ct-campos input{width:100%;background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-md);padding:9px 12px;color:var(--tx-1);font-size:14px}
.ct-campos input:focus{outline:none;border-color:var(--brand-primary)}
.ct-acoes{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:64px}
.ct-acoes button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-md);border:1px solid var(--border);background:transparent;color:var(--tx-2);cursor:pointer}
.ct-acoes button:hover{color:var(--tx-1);border-color:var(--tx-3)}
.ct-acoes .ct-tirar:hover{color:var(--danger-tx);border-color:var(--danger)}
.ct-tit{display:none;font-size:12px;font-weight:600;color:var(--brand-accent)}
.ct-linha:first-child .ct-tit{display:block}
.ct-linha:first-child .ct-subir{display:none}
.contact-card.titular{border-style:solid;border-color:var(--border)}
.ct-badge{margin-left:6px;padding:2px 8px;font-size:11px;color:var(--brand-accent);border-color:rgba(248,112,64,.35);background:rgba(248,112,64,.1)}
.cc-fone{text-align:right;font-size:14px;color:var(--tx-2);min-width:0}
.cc-mail{font-size:12px;color:var(--tx-3);overflow-wrap:anywhere}
@media(max-width:640px){
  .ct-linha{grid-template-columns:minmax(0,1fr) auto;padding:10px}
  .ct-alca{display:none}
  .ct-campos{grid-template-columns:1fr}
}
.contact-card{align-items:flex-start}
.cc-info{flex:1;min-width:0}
.cc-nome{font-weight:600;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.cc-nome .ct-badge{margin-left:0}
.cc-linha{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--tx-2);margin-top:6px;min-width:0}
.cc-linha + .cc-linha{margin-top:3px}
.cc-linha svg{flex:none;color:var(--tx-3)}
.cc-mail{color:var(--tx-3);overflow-wrap:anywhere}

/* Grade de visitas: manhã e tarde em duas faixas separadas, cada uma com fundo próprio (23 SET 2026) */
:root{--vg-faixa:rgba(255,255,255,.04);--vg-faixa-hoje:rgba(255,255,255,.1)}
:root[data-theme="light"]{--vg-faixa:rgba(32,85,155,.06);--vg-faixa-hoje:rgba(32,85,155,.14)}
.vg-cols{gap:0;padding:0 8px}
.vg-col{row-gap:12px;border-radius:0;flex:1 0 34px;min-width:34px;max-width:40px}
.vg-col.hoje{background:none}
.vg-per{background:var(--vg-faixa);padding:7px 2.5px}
.vg-col:first-child .vg-per{border-radius:10px 0 0 10px;box-shadow:-8px 0 0 var(--vg-faixa)}
.vg-col:last-child .vg-per{border-radius:0 10px 10px 0;box-shadow:8px 0 0 var(--vg-faixa)}
.vg-col.hoje .vg-per{background:var(--vg-faixa-hoje)}
.vg-col.hoje .vg-dia{background:var(--tinta-2);border-radius:6px}
.vg-rot{row-gap:12px}
.vg-rot span{font-size:13px;font-weight:600;color:var(--tx-2)}
.vg-rot .vg-rot-dia{font-weight:400}
.vg-col.futuro{opacity:1}
.vg-col.futuro .vg-c,.vg-col.futuro .vg-dia{opacity:.55}
/* no tema claro o fundo branco do quadrado vencia o verde da visita feita */
:root[data-theme="light"] .vg-c.ok{background:var(--grad-ok)}
:root[data-theme="light"] .vg-c.falta{background:var(--grad-danger)}
:root[data-theme="light"] .hc.n4{background:var(--grad-ok)}
:root[data-theme="light"] .hc.n2{background:linear-gradient(135deg,rgba(31,199,142,.6),rgba(15,143,99,.6))}
:root[data-theme="light"] .hc.n1{background:var(--grad-warn)}
:root[data-theme="light"] .hc.n0{background:var(--grad-danger)}
:root[data-theme="light"] .hc.andamento{background:rgba(61,127,212,.55)}
:root[data-theme="light"] .hc.vazio{background:transparent}

/* Visitas: Histórico e Quem visitar com a mesma altura, rolando por dentro (23 SET 2026) */
.vis-duo{align-items:stretch}
.vis-duo > .card{display:flex;flex-direction:column;height:540px;min-height:0}
.vis-rolagem{flex:1;min-height:0;overflow-y:auto;margin-right:-8px;padding-right:8px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.vis-rolagem::-webkit-scrollbar{width:6px}
.vis-rolagem::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}
.vq-item{padding:9px 0}
.vq-abrir{gap:2px}
.vq-linha1{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px}
.vq-abrir .badge{margin-top:0;padding:2px 8px;font-size:11px}
@media(max-width:1100px){ .vis-duo > .card{height:520px} }

/* Carteira importada: marcas no nome, CNPJ inválido e avisos na ficha (23 SET 2026) */
.cli-marca{margin-left:8px;padding:2px 8px;font-size:11px;vertical-align:2px}
h1 .cli-marca{font-size:12px;vertical-align:4px}
td.cnpj-ruim{color:var(--warn)!important;text-decoration:underline wavy rgba(217,169,60,.6);text-underline-offset:4px}
.cli-alertas{display:flex;flex-direction:column;gap:8px;margin:-6px 0 20px}
.cli-alerta{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--r-lg);font-size:14px;color:var(--tx-1);border:1px solid}
.cli-alerta svg{flex:none}
.cli-alerta.danger{background:rgba(226,92,80,.1);border-color:rgba(226,92,80,.35)}
.cli-alerta.danger svg{color:#e97f75}
.cli-alerta.warn{background:rgba(217,169,60,.1);border-color:rgba(217,169,60,.35)}
.cli-alerta.warn svg{color:#d9a93c}
.cli-alerta.accent{background:rgba(248,112,64,.1);border-color:rgba(248,112,64,.35)}
.cli-alerta.accent svg{color:var(--brand-accent)}
.chk-linha{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--tx-2);margin:4px 0 8px;cursor:pointer}
.chk-linha input{width:18px;height:18px;accent-color:var(--brand-accent)}
td[data-label="CNPJ"]{white-space:nowrap}
td[data-label="CNPJ"]{white-space:nowrap}
@media(max-width:1100px){ .vis-duo{grid-template-columns:minmax(0,1fr)} }
.vq-abrir,.vq-linha1,.vq-cli{min-width:0;max-width:100%}
.vq-cli{overflow-wrap:anywhere}
.rev-nome{white-space:normal;overflow:visible;overflow-wrap:anywhere;line-height:1.35}
/* Selos do menu: vermelho para tarefa atrasada, âmbar para negócio esfriando (23 SET 2026) */
.nav-item .ni-badge.atraso{background:rgba(226,92,80,.18);color:#f08a80}
.nav-item .ni-badge.esfria{background:rgba(217,169,60,.18);color:#e0b24a}
.nav-item .ni-badge.agenda{background:rgba(94,132,192,.2);color:#8fb3ec}
:root[data-theme="light"] .nav-item .ni-badge.agenda{background:rgba(32,85,155,.12);color:#20559b}
:root[data-theme="light"] .nav-item .ni-badge.atraso{background:rgba(226,92,80,.14);color:#c2372b}
:root[data-theme="light"] .nav-item .ni-badge.esfria{background:rgba(217,169,60,.2);color:#8a6410}
.tb-badge.esfria{background:var(--warn);color:#1b1305}
.tb-badge.agenda{background:var(--info);color:#fff}
/* Dica flutuante: régua da etapa com a bolinha na cor (23 SET 2026) */
#tip .tip-regua{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid #2a3d5f}
#tip .tip-regua > span{display:flex;align-items:center;gap:7px;white-space:nowrap}
#tip .tip-regua b{min-width:86px;font-weight:600}
#tip .tip-regua > span i + i, #tip .tip-regua > span :not(b) + i{margin-left:6px}
#tip .tip-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
#tip .tip-dot.morno{background:#d9a93c}
#tip .tip-dot.frio{background:#e25c50}

/* Formulário do pedido de venda (23 SET 2026) */
.ped-topo{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 14px;border-radius:var(--r-lg);background:var(--bg-inner);margin-bottom:6px}
.ped-topo b{font-size:15px}
.ped-topo span{color:var(--tx-2);font-size:14px}
.ped-sec{font-size:13px;font-weight:600;color:var(--tx-1);margin:18px 0 8px;padding-top:12px;border-top:1px solid var(--border-suave);display:flex;gap:10px;align-items:baseline}
.ped-sec span{font-weight:400;color:var(--tx-3)}
.ped-item{padding:12px;border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:10px}
.ped-item-t{font-weight:600;margin-bottom:10px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ped-item-t span{font-weight:400;color:var(--tx-2)}
.ped-pag{display:grid;grid-template-columns:repeat(3,auto minmax(0,1fr));gap:8px 10px;align-items:center}
.ped-pag-l{font-size:13px;color:var(--tx-2);white-space:nowrap}
.ped-pag input{width:100%;background:var(--bg-inner);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px;color:var(--tx-1);font-size:14px}
.ped-mais{margin-top:12px}
.ped-mais summary{cursor:pointer;color:var(--tx-2);font-size:14px;padding:6px 0}
@media(max-width:640px){ .ped-pag{grid-template-columns:auto minmax(0,1fr)} }

/* Códigos únicos e campo de cliente com busca (23 SET 2026) */
.kc-cod{font-size:11.5px;color:var(--tx-3);letter-spacing:.02em;margin-top:2px;font-variant-numeric:tabular-nums}
.cod-tit{font-size:12px;font-weight:500;color:var(--tx-3);margin-left:6px;letter-spacing:.02em}
.cod-mini{color:var(--tx-3);font-size:12px}
.cli-busca{position:relative}
.cb-lista{position:absolute;left:0;right:0;top:calc(100% - 12px);z-index:30;max-height:300px;overflow-y:auto;background:var(--grad-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:4px}
.cb-op{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:var(--r-md);cursor:pointer}
.cb-op.ativo,.cb-op:hover{background:var(--bg-inner)}
.cb-nome{font-size:14px;color:var(--tx-1)}
.cb-nome b{font-weight:700;color:var(--brand-accent)}
.cb-sub{font-size:12px;color:var(--tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cb-vazio{padding:10px;font-size:13px;color:var(--tx-3)}

/* Agenda de visitas (23 SET 2026) */
.ag-card{margin-bottom:18px}
.ag-lista{max-height:330px;overflow-y:auto;margin-right:-8px;padding-right:8px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.ag-item{display:flex;align-items:center;gap:14px;padding:10px 4px;border-top:1px solid var(--border-suave)}
.ag-item:first-child{border-top:0}
.ag-quando{width:118px;flex:none;display:flex;flex-direction:column;line-height:1.3}
.ag-quando b{font-size:14px;font-weight:600;color:var(--tx-1)}
.ag-quando span{font-size:12px;color:var(--tx-3)}
.ag-item.passou .ag-quando b{color:var(--danger-tx)}
.ag-cli{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:none;border:0;padding:0;cursor:pointer}
.ag-nome{font-weight:600;font-size:14px;color:var(--tx-1);overflow-wrap:anywhere}
.ag-cli:hover .ag-nome{color:var(--brand-accent)}
.ag-sub{font-size:13px;color:var(--tx-3);overflow-wrap:anywhere}
.ag-item.passou .ag-sub{color:var(--warn)}
.ag-acoes{display:flex;align-items:center;gap:4px;flex:none}
/* cartão de visitas na ficha do cliente (26 SET 2026) */
.ag-info{flex:1;min-width:0;display:flex;flex-direction:column}
.cv-resumo{color:var(--tx-2)}
.cv-acoes{margin-left:auto;display:flex;gap:8px}
.cv-grupo{font-size:13px;font-weight:600;color:var(--tx-3);margin:14px 0 4px}
.cv-grupo:first-of-type{margin-top:2px}
.cv-vazio{padding:6px 4px 4px}
.cv-todas{margin-top:10px}
.hc-pend{margin-bottom:6px}
.hc-titulo{flex-wrap:wrap;row-gap:10px}
.detail>div{min-width:0}
@media(max-width:640px){
  .cv-acoes{margin-left:0;width:100%}
  .cv-acoes .btn{flex:1;justify-content:center}
}
.hc-pend .task-item{padding-left:4px;padding-right:4px}
.ag-nome svg{vertical-align:-2px;margin-right:2px;color:var(--tx-3)}
.section-title:has(.cv-acoes){flex-wrap:wrap;row-gap:10px}
@media(max-width:640px){
  .cv-acoes{margin-left:0;flex-basis:100%}
  .cv-acoes .btn{flex:1;justify-content:center}
  .hc-pend .ag-acoes{margin-left:auto}
}
.vq-agendada{padding:4px 9px;font-size:12px;color:var(--brand-accent);border-color:rgba(248,112,64,.35)}
.vg-c.agenda{background:transparent!important;box-shadow:inset 0 0 0 2px var(--brand-accent)}
.vis-legenda .vg-c.agenda{box-shadow:inset 0 0 0 2px var(--brand-accent)}
@media(max-width:640px){
  .ag-item{flex-wrap:wrap;gap:6px 12px}
  .ag-quando{width:auto;flex-direction:row;gap:6px;align-items:baseline}
  .ag-cli,.ag-info{flex-basis:100%}
  .ag-acoes{margin-left:auto}
}
@media(max-width:640px){
  .vq-item{flex-wrap:wrap}
  .vq-abrir{flex-basis:100%}
  .vq-item > :nth-child(2){margin-left:auto}
}

/* Cotação com valor editável, busca de modelo e opcionais (23 SET 2026) */
.cot-regra{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--tx-2);background:var(--bg-inner);border-radius:var(--r-md);padding:9px 12px;margin:-4px 0 14px}
.cot-regra svg{flex:none;margin-top:2px;color:var(--tx-3)}
.cot-linha{border:1px solid var(--border);border-radius:var(--r-lg);padding:12px 12px 8px;margin-bottom:10px}
.cot-l1{display:grid;grid-template-columns:78px minmax(0,1fr) 170px auto;gap:10px;align-items:end}
.cot-qtd input{text-align:center;font-variant-numeric:tabular-nums}
.cot-bts{display:flex;gap:4px;margin-bottom:6px}
.cot-bts .cot-rm{margin-bottom:0}
.cot-l1 .field{margin-bottom:0}
.cot-rm{margin-bottom:6px}
.vei-busca{position:relative}
.vei-busca .cb-lista{top:calc(100% + 4px)}
.cot-info{font-size:12.5px;color:var(--tx-3);margin:8px 0 2px}
.cot-info b{color:var(--tx-1);font-weight:600}
.cot-alerta{color:var(--warn);font-weight:600}
.cot-opc{margin-top:6px}
.cot-opc summary{cursor:pointer;font-size:13px;color:var(--tx-2);padding:4px 0}
.cot-opc-lista{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px;max-height:220px;overflow-y:auto;padding:6px 2px}
.cot-opc-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tx-2);padding:4px 0;cursor:pointer}
.cot-opc-item input{width:16px;height:16px;accent-color:var(--brand-accent);flex:none}
.cot-opc-item span{flex:1;min-width:0}
.cot-opc-item em{font-style:normal;color:var(--tx-3);white-space:nowrap}
@media(max-width:640px){
  /* celular: quantidade e modelo na primeira linha, valor e lixeira na segunda */
  .cot-l1{grid-template-columns:70px minmax(0,1fr) auto}
  .cot-l1 .cot-qtd{grid-column:1;grid-row:1}
  .cot-l1 .vei-busca{grid-column:2/-1;grid-row:1}
  .cot-l1 .cot-preco{grid-column:1/3;grid-row:2}
  .cot-l1 .cot-bts{grid-column:3;grid-row:2}
  .cot-opc-lista{grid-template-columns:1fr}
}
.cot-ar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.cot-ar .field-lbl{margin:0;font-size:13px;color:var(--tx-2)}
.cot-ar .seg{margin:0}
.cot-ar .seg button[disabled]{opacity:.4;cursor:not-allowed}
.cot-ar-sel{width:auto;min-width:190px}
.seg-ar button{flex:none;white-space:nowrap;padding:0 16px;min-height:36px}

/* Quem contatar (26 SET 2026): botões numa linha só */
.vq-item .btn{white-space:nowrap}

/* Cotações na ficha (26 SET 2026): o cartão abre a cotação; Editar só na última; lixeira só para o Fernando */
.cot-clicavel{cursor:pointer;transition:border-color .15s,background .15s}
.cot-clicavel:hover{border-color:var(--brand-accent)}
.cot-clicavel:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
.cot-topo{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cot-acoes{margin-left:auto;display:flex;align-items:center;gap:6px}
/* cotação aberta para ver (26 SET 2026) */
.cot-lendo #addLinha,.cot-lendo .cot-rm{display:none}
.cot-lendo .cot-linha input:disabled,.cot-lendo #f-val:disabled,.cot-lendo .cot-linha select:disabled{opacity:1;color:var(--tx-1);-webkit-text-fill-color:var(--tx-1);cursor:default}
.cot-lendo .seg button:disabled{cursor:default}
.cot-lendo .seg button[aria-checked="false"]:disabled{opacity:.45}
.cot-nota{margin-top:12px}
.cot-res-opc{margin:0 0 4px 14px;padding:4px 0 6px 12px;border-left:2px solid var(--border);border-bottom:1px solid var(--border-suave)}
.cot-res-opc-t{font-size:12px;color:var(--tx-3);padding:2px 0 2px}
.cot-res-opc .info-row{padding:4px 0;border:0;font-size:13px}
.cot-res-opc .info-row .ir-l{color:var(--tx-2);white-space:normal}
.cot-res-opc .info-row .ir-v{font-weight:500;color:var(--tx-2)}
.cot-res-opc small{color:var(--tx-3);font-weight:400;margin-left:4px}
.cot-hist{margin-top:18px;border-top:1px solid var(--border-suave);padding-top:14px}
.cot-hist-t{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--tx-1);margin-bottom:8px}
.cot-hist-item{position:relative;padding:8px 0 8px 18px;border-left:2px solid var(--border);margin-left:6px}
.cot-hist-item::before{content:'';position:absolute;left:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--bg-2,#1b2a45);border:2px solid var(--brand-accent)}
.cot-hist-orig::before{border-color:var(--tx-3)}
.cot-hist-quando{font-size:13px;color:var(--tx-3);margin-bottom:4px}
.cot-hist-item ul{margin:0;padding-left:16px;font-size:14px;color:var(--tx-2);line-height:1.5}
.modal-foot button[hidden]{display:none}
.cot-excluir{color:var(--tx-3)}
.cot-excluir:hover{color:var(--danger)}

/* Visitas: abas Agendadas e Realizadas no mesmo card (28 SET 2026) */
.ag-topo{flex-wrap:wrap;row-gap:10px}
.ag-abas{flex:none}
.ag-abas button{flex:none;padding:0 16px}
.ag-abas button[aria-selected="true"]{background:var(--grad-card);color:var(--tx-1);font-weight:600;box-shadow:inset 0 0 0 1px var(--brand-accent)}
.ag-abas .chip-count{margin-left:2px}
.ag-lista{position:relative;max-height:420px}
.ag-grupo{font-size:13px;font-weight:600;color:var(--tx-3);padding:12px 4px 6px;border-bottom:1px solid var(--border-suave)}
.ag-grupo.hoje{border-bottom-color:rgba(248,112,64,.45)}
.ag-grupo.hoje{color:var(--brand-accent)}
.ag-grupo + .ag-item{border-top:0}
.ag-vazio{font-size:14px;color:var(--tx-3);padding:12px 4px}
.vis-duo.so-contatar{grid-template-columns:minmax(0,1fr)}
.vis-duo.so-contatar > .card{height:460px}
@media(max-width:640px){ .ag-abas{width:100%} .ag-abas button{flex:1;padding:0 8px;gap:5px;min-width:0} .ag-abas button svg{display:none} }
/* vendedor não vê o card Equipe: o funil ocupa a linha (28 SET 2026) */
.painel-duo.so-funil{grid-template-columns:1fr}
/* total dos opcionais no resumo da cotação (28 SET 2026) */
.cot-res-opc .info-row.cot-res-opc-tot{border-top:1px solid var(--border);margin-top:4px;padding-top:7px}
.cot-res-opc .cot-res-opc-tot .ir-l,.cot-res-opc .cot-res-opc-tot .ir-v{font-weight:600;color:var(--tx-1)}
/* cotação em tela cheia (28 SET 2026): ônibus à esquerda, resumo fixo à direita */
.modal-back.back-tela{padding:0;background:var(--bg-main);backdrop-filter:none;z-index:35;align-items:stretch}
.modal.modal-tela{max-width:none;width:100%;height:100%;max-height:none;border-radius:0;border:0;box-shadow:none;display:flex;flex-direction:column;overflow:hidden}
.modal-tela .modal-body{flex:1;min-height:0;overflow:auto;padding:24px max(32px,calc((100% - 1440px)/2 + 32px))}
.modal-tela .modal-head,.modal-tela .modal-foot{padding-left:max(32px,calc((100% - 1440px)/2 + 32px));padding-right:max(32px,calc((100% - 1440px)/2 + 32px))}
.cot-grade{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:28px;align-items:start}
.cot-dir{position:sticky;top:0;max-height:calc(100dvh - 250px);overflow:auto}
.cot-dir #cotResumo{margin-top:0!important}
.modal-tela .cot-opc-lista{grid-template-columns:repeat(3,minmax(0,1fr));max-height:320px}
@media(max-width:1100px){
  .cot-grade{grid-template-columns:minmax(0,1fr)}
  .cot-dir{position:static;max-height:none;overflow:visible}
  .modal-tela .cot-opc-lista{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .modal-tela .modal-body{padding:18px 16px}
  .modal-tela .modal-head,.modal-tela .modal-foot{padding-left:16px;padding-right:16px}
  .modal-tela .cot-opc-lista{grid-template-columns:minmax(0,1fr)}
}

/* nova negociação e pedido na área do conteúdo: formulário com largura de leitura (28 SET 2026) */
.modal-tela.modal-form .modal-body > *{max-width:900px}
.modal-tela .modal-head{background:transparent}
/* com a janela de tela aberta, o + do celular some para não cobrir o botão de salvar */
body:has(.back-tela) .fab{display:none!important}
/* resumo da cotação com título e estado vazio que não parece campo (28 SET 2026) */
.cot-res-tit{font-size:15px;font-weight:600;color:var(--tx-1);margin-bottom:8px}
.cot-res-vazio{display:flex;align-items:flex-start;gap:8px;font-size:14px;color:var(--tx-3);padding:2px 0 10px}
.cot-res-vazio svg{flex:none;margin-top:2px}
.cot-res-mudo .ir-l,.cot-res-mudo .ir-v{color:var(--tx-3);font-weight:400}
/* cards de Fechados pintados como os cabeçalhos das etapas em aberto (28 SET 2026) */
:root, :root[data-theme="dark"]{ --fr-ganho:#12925e; --fr-perda:#c9453a; --fr-conv:#2f6fca; }
:root[data-theme="light"]{ --fr-ganho:#0d7a50; --fr-perda:#b93a30; --fr-conv:#20559b; }
.fr-item.fr-pint{background:linear-gradient(160deg,var(--etapa) 0%,color-mix(in srgb,var(--etapa) 78%,#000) 100%);border-color:transparent;color:#fff;box-shadow:0 6px 18px -8px color-mix(in srgb,var(--etapa) 70%,transparent)}
.fr-item.fr-pint .fr-rot,.fr-item.fr-pint b,.fr-item.fr-pint .fr-apoio{color:inherit}
.fr-item.fr-pint .fr-rot,.fr-item.fr-pint .fr-apoio{opacity:.85}
/* sinal de pedido na lista de ganhos */
.ped-sinal{display:inline-flex;align-items:center;gap:5px;border:0;cursor:pointer;font:inherit;font-size:12.5px;white-space:nowrap}
.ped-sinal:hover{filter:brightness(1.12)}
.fech-tbl td[data-label="Fechou em"]{white-space:nowrap}
:root[data-theme="light"] .ped-sinal.warn{color:#8a5a00;background:rgba(217,169,60,.22)}
:root[data-theme="light"] .ped-sinal.ok{color:#0d7a50}
/* item da linha do tempo abre o registro completo (28 SET 2026) */
.tl-abre{cursor:pointer;border-radius:var(--r-lg);margin:0 -8px;padding:2px 8px;transition:background .15s}
.tl-abre:hover{background:var(--tinta)}
.tl-abre:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}
.tl-abre .tl-txt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tl-reg-t{font-size:13px;font-weight:600;color:var(--tx-3);margin:16px 0 6px}
.tl-reg-txt{font-size:15px;line-height:1.6;color:var(--tx-1);white-space:pre-wrap;overflow-wrap:anywhere}
.link-btn{background:none;border:0;padding:0;color:var(--brand-accent);cursor:pointer;font:inherit;text-align:right}
.link-btn:hover{text-decoration:underline}
/* setas de mês no painel (28 SET 2026) */
.mes-nav{display:inline-flex;align-items:center;gap:6px}
.mes-nav .btn-icon:disabled{opacity:.35;cursor:not-allowed}
/* seletor de mês numa pílula só, setas dentro (28 SET 2026) */
.mes-nav{gap:0;height:40px;padding:3px;border-radius:var(--r-full);background:var(--bg-inner);border:1px solid var(--border-suave)}
.mes-nav .btn-icon{width:34px;height:34px;min-width:34px;border:0;border-radius:var(--r-full);background:transparent;color:var(--tx-2);transition:background .15s,color .15s}
.mes-nav .btn-icon:hover:not(:disabled){background:color-mix(in srgb,var(--brand-accent) 16%,transparent);color:var(--brand-accent)}
.mes-nav .btn-icon:disabled{opacity:.3}
.mes-nav .sec-select{height:34px;border:0;background:transparent;box-shadow:none;border-radius:var(--r-full);min-width:150px;text-align:center;text-align-last:center;font-weight:600;color:var(--tx-1);padding:0 26px 0 14px;margin:0 2px;border-left:1px solid var(--border-suave);border-right:1px solid var(--border-suave);border-radius:0}
.mes-nav .sec-select:hover{color:var(--brand-accent)}
.mes-nav .sec-select:focus-visible,.mes-nav .btn-icon:focus-visible{outline:2px solid var(--brand-accent);outline-offset:1px}

/* ============================================================
   ESTOQUE (29 SET 2026)
   ============================================================ */
.est-vazio{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:40px 24px;color:var(--tx-2)}
.est-vazio p{max-width:460px;margin:0}
.est-vazio svg{color:var(--tx-3)}
.est-lista{padding:6px 10px}
.est-conta{font-size:13px;color:var(--tx-3);padding:8px 8px 6px}
.est-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;padding:13px 8px;border:0;border-top:1px solid var(--border-suave);background:transparent;color:inherit;cursor:pointer;border-radius:8px;transition:background .12s}
.est-row:hover{background:var(--bg-inner)}
.er-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.er-mod{font-weight:600;font-size:15px;color:var(--tx-1)}
.er-mod em{font-style:normal;font-weight:400;color:var(--tx-3);font-size:13px;margin-left:4px}
.er-conf{font-size:13.5px;color:var(--tx-2)}
.er-id{font-size:12px;color:var(--tx-3);font-family:var(--cond);overflow-wrap:anywhere}
.er-lado{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none;text-align:right}
.er-local{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--tx-2)}
.er-dias{font-size:12.5px;color:var(--tx-3);font-variant-numeric:tabular-nums}
.er-dias.velho{color:var(--warn)}
.er-ek{font-size:12.5px;color:var(--tx-2);font-variant-numeric:tabular-nums}
.cat-est{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:10px;padding:6px 12px;border-radius:var(--r-full);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent);background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok);font-size:13px;font-weight:600;cursor:pointer}
.cat-est:hover{background:color-mix(in srgb,var(--ok) 20%,transparent)}
.cat-est.vazio{border-color:var(--border);background:transparent;color:var(--tx-3);font-weight:400;cursor:default}
.cot-est{display:inline-flex;align-items:center;gap:5px;margin-top:4px;color:var(--tx-3)}
.cot-est.ok{color:var(--ok)}
@media(max-width:640px){
  .est-row{flex-direction:column;align-items:stretch;gap:8px}
  .er-lado{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px 12px;text-align:left}
  .est-barra .tb-search{max-width:none;flex-basis:100%}
  .est-barra .kb-select{flex:1 1 100%}
}
.er-mod em.er-fora{color:var(--warn)}

/* ============================================================
   SUGESTÕES DE MELHORIA (30 SET 2026)
   ============================================================ */
.sidebar-foot .mel-btn{width:100%;margin-bottom:8px;border:1px dashed var(--border);background:transparent;text-align:left}
.sidebar-foot .mel-btn:hover{border-style:solid;border-color:var(--brand-accent);color:var(--tx-1)}
.nav-item .ni-badge.mel{background:rgba(248,112,64,.16);color:var(--brand-accent)}
.mel-intro{margin:0 0 14px;max-width:640px}
#melEnviar{margin:-4px 0 22px}
.mel-barra{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;padding-top:18px;border-top:1px solid var(--border-suave)}
.mel-sec{font-size:13px;color:var(--tx-3);margin:14px 2px 8px}
.mel-item{border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;margin-bottom:10px;background:var(--grad-card)}
.mel-item.parecida{border-color:color-mix(in srgb,var(--brand-accent) 55%,transparent)}
.mel-topo{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mel-quem{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--tx-3)}
.mel-quem .avatar.sm{width:22px;height:22px;font-size:10px}
.mel-txt{margin:10px 0 0;font-size:14.5px;line-height:1.5;color:var(--tx-1);white-space:pre-wrap;overflow-wrap:anywhere}
.mel-resp{margin-top:12px;padding:10px 12px;border-radius:var(--r-md);background:var(--bg-inner);border-left:3px solid var(--brand-accent);font-size:13px;color:var(--tx-3)}
.mel-resp b{display:inline-flex;align-items:center;gap:5px;color:var(--tx-1);font-weight:600}
.mel-resp p{margin:4px 0 0;font-size:14px;color:var(--tx-2);white-space:pre-wrap}
.mel-adm{display:grid;grid-template-columns:220px minmax(0,1fr) auto;gap:8px;align-items:start;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}
.mel-adm textarea{min-height:40px;width:100%;background:var(--bg-inner);border:1px solid var(--border);border-radius:var(--r-lg);padding:9px 12px;color:var(--tx-1);resize:vertical;transition:.15s}
.mel-adm textarea:focus{outline:none;border-color:var(--brand-primary)}
.mel-sis{margin-top:18px;font-size:13px;color:var(--tx-3)}
.link-sutil{border:0;background:none;padding:0;color:var(--tx-3);text-decoration:underline;cursor:pointer;font:inherit}
.link-sutil:hover{color:var(--brand-accent)}
@media(max-width:640px){ .mel-adm{grid-template-columns:1fr} }

/* legenda das visitas (30 SET 2026): quadradinho vazio com contorno, e no celular vira grade de duas colunas com a dica numa linha própria */
.vis-legenda .vg-c:not(.ok):not(.meta):not(.agenda):not(.falta){box-shadow:inset 0 0 0 1px var(--border)}
@media(max-width:640px){
  .vis-legenda{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 14px;margin-top:16px}
  .vis-legenda span{align-items:center;line-height:1.3}
  .vis-dica{grid-column:1/-1;margin-left:0;padding-top:10px;border-top:1px solid var(--border-suave)}
}

/* Quem contatar no celular (30 SET 2026): cada cliente numa caixa, botões meio a meio e a contagem embaixo do título */
@media(max-width:640px){
  .so-contatar .section-title{flex-wrap:wrap;row-gap:4px}
  .so-contatar .section-title .ti-s{flex-basis:100%;margin-left:0!important;font-size:13px}
  .so-contatar .vis-rolagem{display:flex;flex-direction:column;gap:10px}
  .so-contatar .vq-item,.so-contatar .vq-item:first-of-type{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 8px;padding:14px;border:1px solid var(--border-suave);border-radius:var(--r-lg);background:var(--bg-inner)}
  .so-contatar .vq-abrir{grid-column:1/-1}
  .so-contatar .vq-item .btn{width:100%;justify-content:center;margin-left:0!important}
  .so-contatar .vq-abrir + button.btn{grid-column:1/-1}
}

/* Tarefas no celular (30 SET 2026): filtros numa barra de quatro partes iguais e cada tarefa numa caixa */
.tar-filtros{display:contents}
@media(max-width:640px){
  .tar-filtros{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;padding:4px;border-radius:var(--r-lg);background:var(--bg-inner);border:1px solid var(--border-suave)}
  .tar-filtros .chip-filter{flex-direction:column;gap:2px;height:auto;min-height:52px;padding:6px 2px;border:0;border-radius:calc(var(--r-lg) - 4px);background:transparent;box-shadow:none;font-size:12px;justify-content:center}
  .tar-filtros .chip-filter .chip-count{margin:0;font-size:13px;font-weight:700;background:none;padding:0;min-width:0}
  .tar-filtros .chip-filter.on{background:var(--grad-card);color:var(--tx-1);box-shadow:0 1px 3px rgba(0,0,0,.12);outline:1px solid var(--brand-accent)}
  .tar-grupo > .card{background:transparent;border:0;box-shadow:none;padding:0;display:flex;flex-direction:column;gap:10px}
  .tar-grupo .task-item{display:grid;grid-template-columns:26px minmax(0,1fr) auto;column-gap:12px;row-gap:12px;align-items:start;padding:14px;border:1px solid var(--border-suave);border-radius:var(--r-lg);background:var(--grad-card)}
  .tar-grupo .task-item:last-child{border-bottom:1px solid var(--border-suave)}
  .tar-grupo .task-item > .task-check{grid-row:1;grid-column:1;margin-top:1px}
  .tar-grupo .task-item > div[style*="flex:1"]{grid-row:1;grid-column:2 / -1}
  .tar-grupo .task-item > .ti-dono{grid-row:2;grid-column:2;margin-left:0;align-self:center}
  .tar-grupo .task-item > .ti-tag{grid-row:2;grid-column:2;margin-left:0;align-self:center;justify-self:start}
  .tar-grupo .task-item > .ti-dono ~ .ti-tag{justify-self:end}
  .tar-grupo .task-item > .ti-adiar{grid-row:2;grid-column:3;min-height:36px;align-self:center}
}

/* gráfico de visitas deitado no celular (30 SET 2026): uma linha por dia, a meta atrás e a visita na frente */
.vbh{display:none}
@media(max-width:640px){
  .vb:not(.vv){display:none}
  .vbh{display:flex;flex-direction:column;gap:6px;margin-top:4px}
  .vbh-row{display:grid;grid-template-columns:58px minmax(0,1fr) 54px;align-items:center;gap:10px;min-height:24px;padding:2px 6px;border-radius:8px}
  .vbh-row.hoje{background:var(--tinta-2)}
  .vbh-dia{font-size:13px;color:var(--tx-2);white-space:nowrap}
  .vbh-dia b{font-weight:600;color:var(--tx-1);font-variant-numeric:tabular-nums;display:inline-block;min-width:18px}
  .vbh-dia small{font-size:12px;color:var(--tx-3)}
  .vbh-row.sab .vbh-dia,.vbh-row.futuro .vbh-dia{opacity:.55}
  .vbh-area{position:relative;height:14px}
  .vbh-track{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:rgba(162,180,205,.2)}
  :root[data-theme="light"] .vbh-track{background:#e6ecf5}
  .vbh-row.abaixo .vbh-track{background:rgba(226,92,80,.2);box-shadow:inset 0 0 0 1px rgba(226,92,80,.32)}
  .vbh-row.futuro .vbh-track{opacity:.5}
  .vbh-fill{position:absolute;left:0;top:0;bottom:0;min-width:6px;border-radius:6px;background:linear-gradient(90deg,#2f70c6 0%,#5b9cf0 100%)}
  .vbh-fill.ok{background:var(--grad-ok)}
  .vbh-n{text-align:right;font-size:13px;font-variant-numeric:tabular-nums;color:var(--tx-1);white-space:nowrap}
  .vbh-n b{font-weight:600}
  .vbh-n small{font-size:12px;color:var(--tx-3)}
}

/* filtros Esfriando e Esfriou separados no funil (30 SET 2026): o sinal na cor do nível */
.kb-frio-chip{gap:8px}
.kb-frio-chip .kc-sinal{width:8px;height:8px}
.kb-frio-chip.morno .kc-sinal{background:var(--warn)}
.kb-frio-chip.frio .kc-sinal{background:var(--danger)}

/* setinha dos seletores (30 SET 2026): a nativa colava na borda da pílula; agora é a nossa,
   com 14px de respiro à direita e o mesmo traço dos ícones */
:root{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='none' stroke='%237489a4' stroke-width='22' stroke-linecap='round' stroke-linejoin='round' d='M56 100l72 72 72-72'/%3E%3C/svg%3E")}
select:not([multiple]){-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:38px!important;
  background-image:var(--chev)!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:13px 13px!important}
.kb-select:not([multiple]),.sec-select:not([multiple]){background-image:var(--chev),var(--grad-card)!important;background-repeat:no-repeat,no-repeat!important;background-position:right 14px center,0 0!important;background-size:13px 13px,100% 100%!important}
.mes-nav .sec-select:not([multiple]){background-image:var(--chev)!important;background-position:right 10px center!important;background-size:12px 12px!important;padding-right:28px!important}
select::-ms-expand{display:none}

/* Tempo parado no celular (30 SET 2026): etapa e dias em cima, barra na largura toda e mais grossa */
@media(max-width:640px){
  .par-linha{grid-template-columns:minmax(0,1fr) auto;row-gap:8px}
  .par-linha > .par-rot{grid-row:1;grid-column:1}
  .par-linha > .par-num{grid-row:1;grid-column:2;color:var(--tx-1);font-weight:600}
  .par-linha > .par-trilho{grid-row:2;grid-column:1/-1;height:12px}
  .par-linha > .par-regua{grid-row:3;grid-column:1/-1}
  .par-barras{gap:18px}
}

/* barras de rolagem (30 SET 2026): trilho visível e alça com contraste, afastadas da borda
   e das quinas arredondadas, para se ler como parte da janela */
:root{--scroll-trilho:rgba(255,255,255,.06);--scroll-alca:rgba(162,180,205,.42);--scroll-alca-hover:rgba(162,180,205,.65)}
:root[data-theme="light"]{--scroll-trilho:rgba(22,35,58,.06);--scroll-alca:rgba(22,35,58,.30);--scroll-alca-hover:rgba(22,35,58,.48)}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--scroll-trilho);background-clip:padding-box;border:3px solid transparent;border-radius:var(--r-full);margin:8px}
::-webkit-scrollbar-thumb{background:var(--scroll-alca);background-clip:padding-box;border:3px solid transparent;border-radius:var(--r-full);min-height:40px}
::-webkit-scrollbar-thumb:hover{background:var(--scroll-alca-hover);background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}
/* no Chrome, scrollbar-width/color desligam o desenho acima; ficam só para o Firefox */
.vis-rolagem,.ag-lista{scrollbar-width:auto;scrollbar-color:auto}
@supports not selector(::-webkit-scrollbar){ *{scrollbar-width:thin;scrollbar-color:var(--scroll-alca) var(--scroll-trilho)} }
.vis-rolagem::-webkit-scrollbar{width:10px}

/* Por que perdemos venda (30 SET 2026): rótulo e valor na mesma linha, barra na largura toda embaixo;
   o nome longo do motivo não quebra mais e a barra aproveita o espaço da coluna */
.diag-duo .funil-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;padding:10px 0}
.diag-duo .funil-lbl,.diag-duo .funil-lbl{width:auto;min-width:0;flex-wrap:nowrap;font-size:14px;color:var(--tx-1)}
.diag-duo .funil-val{width:auto;font-size:15px}
.diag-duo .funil-track{grid-column:1/-1;height:12px;border-radius:var(--r-full)}
.diag-duo .funil-cheio{border-radius:var(--r-full)}
.diag-duo .diag-sub{margin-bottom:4px}
@media(max-width:640px){ .diag-duo .funil-lbl{width:auto;flex-wrap:nowrap} }
.diag-duo .funil-lbl{grid-row:1;grid-column:1}
.diag-duo .funil-val{grid-row:1;grid-column:2}
.diag-duo .funil-track{grid-row:2}
/* revisão que baixou o desconto: ganho em verde, com o sinal de mais (30 SET 2026) */
.rev-desc.baixou b{color:var(--ok)}
.rev-custo.ganho{color:var(--ok)}
/* funil no celular (30 SET 2026): Esfriando e Esfriou dividem a primeira linha e o seletor da equipe desce inteiro */
@media(max-width:720px){
  .kb-filtros{flex-wrap:wrap}
  .kb-filtros .kb-frio-chip{flex:1 1 calc(50% - 4px);white-space:nowrap}
  .kb-filtros .kb-select{flex:1 1 100%}
}

/* N. Lote na cotação (30 SET 2026, regra do Fernando): modelo, valor, lote e os botões de duplicar e tirar */
.cot-l1{grid-template-columns:minmax(0,1fr) 160px 190px auto}
.cot-lote{position:relative}
.cot-lote .cb-lista{top:calc(100% + 4px);left:auto;right:0;width:340px;max-width:calc(100vw - 48px)}
.lbl-opc{font-weight:400;font-size:12px;color:var(--tx-3)}
.lote-in{text-transform:uppercase;font-variant-numeric:tabular-nums}
.lote-in::placeholder{text-transform:none}
.lote-in.invalido{border-color:var(--danger)!important}
.lote-op{gap:3px}
.lote-op .lo-l1{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lote-op .lo-l1 .badge{font-size:11px;padding:2px 8px}
.lote-op .lo-l2{font-size:12px;color:var(--tx-3)}
.lote-op.usado{opacity:.45;cursor:not-allowed}
.lote-op.usado:hover{background:none}
.cot-lote-info{font-size:12.5px;color:var(--tx-3);margin-top:8px}
.cot-lote-info:empty{display:none}
.cot-lote-info svg{vertical-align:-2px}
.lote-sit{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.lote-sit .badge{font-size:11px;padding:2px 8px}
.res-lote{display:block;font-size:12px;font-weight:400;color:var(--tx-3);margin-top:2px}
.cot-bts{align-self:end}
@media(max-width:640px){
  .cot-l1{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
  .cot-l1 .vei-busca{grid-column:1/3;grid-row:1}
  .cot-l1 .cot-bts{grid-column:3;grid-row:1}
  .cot-l1 .cot-preco{grid-column:1;grid-row:2}
  .cot-l1 .cot-lote{grid-column:2/-1;grid-row:2}
}

/* login (30 SET 2026): os cinco perfis numa linha só, lado a lado */
.demo-users{flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:4px}
.demo-users>.demo-user{flex:1 1 0;min-width:0;padding:10px 2px}
.demo-user .du-name,.demo-user .du-role{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:480px){
  .demo-users{gap:0}
  .demo-users>.demo-user{padding:8px 0}
  .demo-user .avatar{width:34px;height:34px}
  .demo-user .du-name{font-size:12.5px}
  .demo-user .du-role{font-size:11px}
}
.demo-users{gap:0}
.demo-users>.demo-user{padding:10px 0}
.demo-user .du-name{font-size:13px}
.demo-user .du-role{font-size:11.5px}
@media(max-width:480px){ .demo-user .du-name{font-size:11.5px;letter-spacing:-.01em} .demo-user .du-role{font-size:10.5px} }

/* Vendido, Negociando e Perdido no celular (30 SET 2026): número, rótulo e porcentagem em
   colunas fixas, iguais nos três cartões; a meta sai do lado do número e vai para a linha do valor */
.nb-meta-cel{display:none}
@media(max-width:640px){
  .neg-box{grid-template-columns:64px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;align-items:center;padding:14px 16px}
  .nb-num{grid-column:1;grid-row:1/3;font-size:32px;line-height:1;justify-content:flex-start}
  .nb-num .nb-meta{display:none}
  .nb-meta-cel{display:inline}
  .nb-rot{grid-column:2;grid-row:1;align-self:end;margin:0;font-size:15px}
  .nb-valor{grid-column:2;grid-row:2;align-self:start;margin:0;font-size:13px}
  .nb-pct{position:static;transform:none;grid-column:3;grid-row:1/3;align-self:center;font-size:14px;opacity:1}
}

/* cartão da Tabela (30 SET 2026): Lugares, Comprimento, Ar-condicionado e Preço viram linhas
   iguais, rótulo à esquerda e valor à direita, com um fio entre elas */
.cat-specs{gap:0;margin-top:6px;font-family:inherit}
.cat-specs>div{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:6px 0;border-top:1px solid var(--border-suave)}
.cat-specs>div:first-child{border-top:0}
.cat-specs>div>span:first-child{color:var(--tx-2);font-size:14px;flex:none}
.cat-specs>div>span:last-child{color:var(--tx-1);font-size:14px;text-align:right}
.cat-specs .cat-ar{flex-direction:row;margin:0}
.cat-specs .cat-ar-ops{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}
.cat-specs .cat-ar-op{min-height:30px;padding:0 10px;font-size:12.5px}
.cat-specs .cat-preco-l .cat-price{margin:0;padding:0;font-size:17px;font-weight:700}
.cat-body .cat-est{margin-top:auto}
@media(max-width:640px),(hover:none){ .cat-specs .cat-ar-op{min-height:36px} }
.cat-specs .cat-ar-ops{flex-wrap:nowrap} .cat-specs .cat-ar>span:first-child{min-width:0;white-space:nowrap}
.cat-specs .cat-ar-ops:has(>:nth-child(3)){flex-wrap:wrap}
.cat-specs .cat-ar>span:first-child{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis} .cat-specs .cat-ar-ops{flex:none}
.cat-specs .cat-ar .cat-ar-ops:has(>:nth-child(3)){flex:1 1 auto;min-width:0}

/* Visitas (30 SET 2026): agenda na ordem das Tarefas, grupos com contagem, sem rolagem interna no celular;
   "Visitas de" no topo da tela e o período colado no gráfico */
.ag-grupo{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--tx-1);padding:16px 4px 8px;border-bottom:1px solid var(--border-suave)}
.ag-grupo:first-child{padding-top:4px}
.ag-grupo.atraso{color:var(--danger-tx)}
.ag-grupo.hoje{color:var(--brand-accent);border-bottom-color:rgba(248,112,64,.45)}
.ag-grupo .chip-count{font-size:12px}
.ag-lista{max-height:520px}
.vis-de{margin:-4px 0 14px}
.vis-de .tb-sel{display:inline-flex;align-items:center;gap:10px}
.vis-de .tb-sel>span{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--tx-2);white-space:nowrap}
.vis-per-barra{margin-top:20px}
@media(max-width:640px){
  .ag-lista{max-height:none;overflow:visible;margin-right:0;padding-right:0}
  .vis-de .tb-sel{display:flex;width:100%}
  .vis-de .sec-select{flex:1;min-width:0}
}
.ag-quando .so-per{font-weight:600;color:var(--tx-1)}
.ag-quem-cel{display:none}
.ag-mais{margin:12px 4px 4px}
@media(max-width:640px){
  /* cada visita numa caixa, como as Tarefas; o nome do vendedor vai ao lado do período */
  .ag-lista{display:flex;flex-direction:column;gap:8px}
  .ag-grupo{border-bottom:0;padding:12px 2px 0}
  .ag-item,.ag-item:first-child{border:1px solid var(--border-suave);border-radius:var(--r-lg);background:var(--bg-inner);padding:12px 14px;gap:8px 12px}
  .ag-item .vhi-quem{display:none}
  .ag-quem-cel{display:inline;color:var(--tx-2)}
  .ag-quem-cel::before{content:'·';margin-right:6px;color:var(--tx-3)}
  .ag-acoes{width:100%;display:flex;gap:8px;margin-left:0}
  .ag-acoes [data-ag-feita]{flex:1;justify-content:center}
  .ag-vazio{padding:4px 2px}
}

/* grade de visitas (30 SET 2026): um traço marca a meta de cada período; o que fica acima dele passou da meta */
.vg-c.topo-meta{position:relative}
.vg-c.topo-meta::before{content:'';position:absolute;left:-3px;right:-3px;top:-4px;border-top:2px dashed var(--tx-3);opacity:.55;pointer-events:none}
.lg-linha-meta{display:inline-block;width:16px;border-top:2px dashed var(--tx-3);opacity:.7;flex:none}
@media(max-width:640px){ .vis-legenda span:has(>.lg-linha-meta){grid-column:1/-1} }

/* agenda em seções (30 SET 2026): cada dia numa caixa, com o título em cima e espaço entre elas */
.ag-sec+.ag-sec{margin-top:16px}
.ag-sec .ag-grupo{border-bottom:0;padding:4px 4px 8px}
.ag-sec-lista{border:1px solid var(--border-suave);border-radius:var(--r-lg);background:var(--bg-inner);padding:2px 14px}
.ag-sec.hoje .ag-sec-lista{border-color:rgba(248,112,64,.45)}
.ag-sec.atraso .ag-sec-lista{border-color:rgba(226,92,80,.35)}
.ag-sec-lista .ag-vazio{padding:12px 0}
.ag-sec-lista .ag-mais{margin:10px 0 12px}
@media(max-width:640px){
  .ag-sec+.ag-sec{margin-top:8px}
  .ag-sec-lista{border:0;background:none;padding:0;display:flex;flex-direction:column;gap:8px}
  .ag-sec.hoje .ag-sec-lista,.ag-sec.atraso .ag-sec-lista{border:0}
  .ag-sec.hoje .ag-item{border-color:rgba(248,112,64,.45)}
  .ag-sec.atraso .ag-item{border-color:rgba(226,92,80,.35)}
}
.ag-sec.hoje .ag-grupo{color:var(--brand-accent)} .ag-sec.atraso .ag-grupo{color:var(--danger-tx)}
/* linha da meta contínua (30 SET 2026): um fio fino no meio do vão, de uma coluna à outra, sem tracejado */
.vg-c.topo-meta::before{left:-2.5px;right:-2.5px;top:-2px;height:0;border-top:1px solid var(--tx-3);opacity:.6}
.lg-linha-meta{width:18px;border-top:1px solid var(--tx-3);opacity:.8}
/* meta sem linha (30 SET 2026): vão maior entre a meta (embaixo) e o que passa dela (em cima), e o vazio de cima apagado */
.vg-c.topo-meta::before{display:none}
.vg-c.topo-meta{margin-top:7px}
.vg-c.extra:not(.ok):not(.agenda){opacity:.45}
@media(max-width:640px){ .vis-legenda .lg-meta-txt{grid-column:1/-1} }

/* etapas do funil no celular (01 OUT 2026): uma barra só, dividida em partes iguais, como os filtros de Tarefas; nada cortado na borda */
@media(max-width:720px){
  .kb-abas{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;overflow:visible;margin:0 0 14px;padding:4px;border-radius:var(--r-lg);background:var(--bg-inner);border:1px solid var(--border-suave)}
  .kb-aba{flex-direction:column;justify-content:center;gap:2px;min-height:54px;padding:6px 4px;border:0;border-radius:calc(var(--r-lg) - 4px);background:transparent;font-size:13px;min-width:0}
  .kb-aba .ka-nome{display:inline-flex;align-items:center;gap:6px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .kb-aba .chip-count{background:none;padding:0;margin:0;font-size:14px;font-weight:700;color:var(--tx-1)}
  .kb-aba.on{background:var(--grad-card);box-shadow:0 1px 3px rgba(0,0,0,.12);outline:1px solid var(--brand-accent)}
}

/* Login no celular sem rolagem (02 OUT 2026, pedido do André): a caixa ocupa a altura
   visível da tela, o formulário fica compacto e a foto encolhe para caber no que sobra */
@media(max-width:860px){
  #login{padding:12px;align-items:stretch;min-height:100dvh}
  .login-box{display:flex;flex-direction:column;min-height:calc(100dvh - 24px)}
  .login-visual{flex:1 1 0;min-height:90px}
  .login-side{flex:none;padding:18px 20px 16px}
  .login-brands{margin-bottom:14px;gap:14px}
  .login-brands img{height:32px}
  .login-brands-sep{height:32px}
  .login-title{font-size:20px;margin-bottom:6px}
  .login-cities{margin-bottom:16px}
  .login-form .field{margin-bottom:10px}
  .login-form .field label{margin-bottom:4px}
  .login-entrar{margin-top:2px}
  .login-link{margin-top:4px;padding:6px 4px}
  .login-theme{margin-top:6px}
}
