/* =====================================================================
   Busque.AI — Painel das Entidades · style.css
   Sistema visual (paleta cálida da apresentação). Reaproveitado do
   protótipo. Compartilhado por todas as telas do painel.
   ===================================================================== */
/* =========================================================
   BUSQUE.AI — PAINEL DAS ENTIDADES
   Identidade: cálida e profissional. Laranja #F07A22,
   marrom-tinta #3A2417, neutros creme, verde WhatsApp #21C45A.
   Tipografia: Fraunces (marca/display) + DM Sans (UI) + JetBrains Mono.
   Arquitetura espelha o app de referência flexpage (Admin/go/render_*).
   ========================================================= */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --brand:#F07A22; --brand-600:#EA4B0B; --brand-050:#FFF7ED; --brand-soft:rgba(240,122,34,.10);
  --ink:#3A2417; --ink-800:#4A2A1A; --ink-900:#2E241B; --ink-950:#21140E;
  --wa:#1FB457; --wa-600:#159a48; --wa-bg:#eafaf0; --wa-bubble:#e7f8d8;
  --danger:#E5484D; --danger-bg:#fdecec; --danger-600:#c93b40;
  --warn:#C9821F; --warn-bg:#fbf0dd;
  --info:#3B7DDD; --info-bg:#ecf3fe;
  --bg:#FBF3EA; --surface:#FFFFFF; --surface-2:#FFF8EF;
  --border:#ECDAC6; --border-soft:#F4E9D9;
  --text:#3A2417; --text-2:#85694F; --text-3:#AD937B; --text-inv:#FBF3EA;
  --tan:#E8C6A3; --cream:#F7EBDD;
  --sh-sm:0 1px 2px rgba(58,36,23,.06);
  --sh-md:0 6px 20px rgba(58,36,23,.08);
  --sh-lg:0 22px 50px rgba(58,36,23,.16);
  --sh-brand:0 10px 26px rgba(240,122,34,.32);
  --r-sm:8px; --r-md:12px; --r-lg:18px; --r-xl:26px; --r-pill:999px;
  --sidebar-w:252px; --ease:cubic-bezier(.4,0,.2,1);
}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.display{font-family:'Fraunces',Georgia,serif}
.mono{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.hidden{display:none!important}
::selection{background:var(--brand-soft)}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:#e4d2bd;border-radius:99px;border:3px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:#d6bfa3}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.62rem 1.15rem;font:inherit;font-size:.9rem;font-weight:600;border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;transition:all .18s var(--ease);white-space:nowrap;line-height:1.2}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-primary{background:linear-gradient(180deg,#F58A3A,var(--brand));color:#fff;box-shadow:var(--sh-brand)}
.btn-primary:hover{background:linear-gradient(180deg,var(--brand),var(--brand-600));box-shadow:0 12px 30px rgba(240,122,34,.4)}
.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border)}
.btn-secondary:hover{background:var(--surface-2);border-color:var(--tan)}
.btn-ghost{background:transparent;color:var(--text-2)}
.btn-ghost:hover{background:var(--brand-soft);color:var(--brand-600)}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{background:var(--danger-600)}
.btn-wa{background:var(--wa);color:#fff}.btn-wa:hover{background:var(--wa-600)}
.btn-sm{padding:.42rem .8rem;font-size:.8rem;border-radius:var(--r-sm)}
.btn-full{width:100%}
.btn-icon{width:34px;height:34px;padding:0;border-radius:var(--r-sm);font-size:.95rem}

/* ---------- Forms ---------- */
.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}
.field label{font-size:.8rem;font-weight:600;color:var(--text-2);display:flex;justify-content:space-between;align-items:center}
.field input,.field select,.field textarea{padding:.66rem .85rem;font:inherit;font-size:.92rem;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);transition:all .18s var(--ease);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.field input::placeholder,.field textarea::placeholder{color:var(--text-3)}
.field textarea{resize:vertical;min-height:84px;line-height:1.55}
.field .hint{font-size:.74rem;color:var(--text-3);font-weight:500}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 1rem}
@media(max-width:560px){.grid-2,.grid-3{grid-template-columns:1fr}}
.check{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;font-size:.9rem;font-weight:500;user-select:none}
.check input{width:18px;height:18px;accent-color:var(--brand)}

/* ---------- Badges ---------- */
.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .6rem;border-radius:var(--r-pill);font-size:.74rem;font-weight:700;letter-spacing:.01em}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge-ativo{background:var(--wa-bg);color:#13833e}
.badge-inativo{background:#f1ece5;color:#8a7359}
.badge-bloqueado{background:var(--danger-bg);color:var(--danger-600)}

/* =========================================================
   LOGIN
   ========================================================= */
.login-screen{min-height:100dvh;display:grid;grid-template-columns:1.05fr .95fr}
.login-aside{position:relative;overflow:hidden;background:linear-gradient(155deg,var(--ink-800) 0%,var(--ink-950) 100%);color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:space-between}
.login-aside::before{content:"";position:absolute;inset:0;background:radial-gradient(560px 360px at 12% 8%,rgba(240,122,34,.30),transparent 60%),radial-gradient(420px 320px at 92% 96%,rgba(31,180,87,.18),transparent 60%)}
.login-aside::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:22px 22px;opacity:.5}
.login-aside>*{position:relative;z-index:1}
.aside-brand{display:flex;align-items:center;gap:.7rem;font-family:'Fraunces';font-size:1.5rem;font-weight:600}
.aside-pitch{max-width:420px}
.aside-pitch h2{font-family:'Fraunces';font-weight:500;font-size:2.15rem;line-height:1.18;letter-spacing:-.01em;margin-bottom:1rem}
.aside-pitch p{color:rgba(255,255,255,.72);font-size:1.02rem}
/* mini whatsapp demo */
.wa-demo{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-lg);padding:1rem;backdrop-filter:blur(6px);max-width:380px}
.wa-demo-top{display:flex;align-items:center;gap:.6rem;padding-bottom:.7rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.8rem}
.wa-ava{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand-600));display:grid;place-items:center;font-size:1rem}
.wa-demo-top b{font-size:.9rem}.wa-online{font-size:.72rem;color:#7fe0a3;display:flex;align-items:center;gap:.3rem}
.wa-online::before{content:"";width:6px;height:6px;border-radius:50%;background:#34d97a;box-shadow:0 0 0 3px rgba(52,217,122,.25)}
.bubble{padding:.55rem .8rem;border-radius:14px;font-size:.86rem;margin-bottom:.5rem;max-width:85%;line-height:1.4}
.bubble.user{background:var(--wa-bubble);color:#1e3a24;margin-left:auto;border-bottom-right-radius:4px}
.bubble.bot{background:#fff;color:#2a2118;border-bottom-left-radius:4px}
.bubble .biz{font-weight:700;display:block;margin-bottom:.15rem}
.bubble .biz-meta{font-size:.74rem;color:#7a604c}
.bubble .biz-cta{color:var(--brand-600);font-weight:700;font-size:.78rem;display:inline-block;margin-top:.35rem}
.typing{display:inline-flex;gap:3px;padding:.1rem 0}
.typing span{width:6px;height:6px;border-radius:50%;background:#bda;animation:blink 1.3s infinite}
.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,60%,100%{opacity:.3}30%{opacity:1}}

.login-main{display:grid;place-items:center;padding:2rem;background:var(--bg)}
.login-card{width:100%;max-width:380px;animation:rise .6s var(--ease) both}
.login-card .lc-head{margin-bottom:1.6rem}
.login-card h1{font-family:'Fraunces';font-weight:600;font-size:1.75rem;letter-spacing:-.01em;margin-bottom:.25rem}
.login-card .lc-head p{color:var(--text-2);font-size:.95rem}
.login-error{color:var(--danger-600);font-size:.84rem;font-weight:600;min-height:1.2em;margin-top:.4rem;text-align:center}
.login-link{display:block;text-align:center;color:var(--brand-600);font-weight:600;font-size:.86rem;text-decoration:none;margin-top:.9rem}
.login-link:hover{text-decoration:underline}
.login-divider{display:flex;align-items:center;gap:.8rem;margin:1.2rem 0;color:var(--text-3);font-size:.8rem}
.login-divider::before,.login-divider::after{content:"";flex:1;height:1px;background:var(--border)}
.btn-google{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.66rem;background:#fff;border:1.5px solid var(--border);border-radius:var(--r-md);font:inherit;font-weight:600;font-size:.9rem;color:var(--text);cursor:pointer;transition:all .18s}
.btn-google:hover{background:var(--surface-2);border-color:var(--tan)}
.demo-tag{margin-top:1.4rem;text-align:center;font-size:.74rem;color:var(--text-3)}
.demo-tag code{background:var(--cream);padding:.1rem .4rem;border-radius:5px;font-family:'JetBrains Mono'}
@media(max-width:900px){.login-screen{grid-template-columns:1fr}.login-aside{display:none}}

/* =========================================================
   ENTITY SELECTION
   ========================================================= */
.select-screen{min-height:100dvh;display:grid;place-items:center;padding:2rem;background:radial-gradient(700px 480px at 50% -10%,var(--brand-050),var(--bg))}
.select-box{width:100%;max-width:520px;animation:rise .5s var(--ease) both}
.select-box .brand-row{display:flex;align-items:center;gap:.7rem;justify-content:center;margin-bottom:1.4rem}
.select-box h2{font-family:'Fraunces';font-weight:600;font-size:1.6rem;text-align:center;margin-bottom:.3rem}
.select-box .sub{text-align:center;color:var(--text-2);margin-bottom:1.4rem;font-size:.92rem}
.ent-search{position:relative;margin-bottom:1rem}
.ent-search input{padding-left:2.5rem}
.ent-search .ico{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--text-3)}
.ent-list{display:flex;flex-direction:column;gap:.6rem;max-height:50vh;overflow:auto;padding:2px}
.ent-card{display:flex;align-items:center;gap:.9rem;padding:.9rem 1rem;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);cursor:pointer;transition:all .18s var(--ease);text-align:left;width:100%;font:inherit}
.ent-card:hover{border-color:var(--brand);box-shadow:var(--sh-md);transform:translateY(-2px)}
.ent-avatar{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-family:'Fraunces';font-weight:600;font-size:1.1rem;color:#fff;flex-shrink:0}
.ent-card .meta{flex:1}
.ent-card .meta b{font-size:1rem;display:block}
.ent-card .meta span{font-size:.82rem;color:var(--text-2)}
.ent-card .arrow{color:var(--text-3);transition:transform .18s}
.ent-card:hover .arrow{transform:translateX(4px);color:var(--brand)}

/* =========================================================
   APP SHELL
   ========================================================= */
.app-shell{display:flex;min-height:100dvh}
.sidebar{width:var(--sidebar-w);flex-shrink:0;background:linear-gradient(185deg,var(--ink-800),var(--ink-950));color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;z-index:50}
.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:1.3rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.08)}
.brand-word{font-family:'Fraunces';font-weight:600;font-size:1.28rem;color:#fff;letter-spacing:-.01em}
.brand-word .ai{color:var(--brand)}
.sidebar-close{margin-left:auto;background:transparent;border:none;color:rgba(255,255,255,.6);font-size:1.1rem;cursor:pointer;display:none}
.ent-pill{margin:.9rem 1rem;padding:.6rem .75rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md);display:flex;align-items:center;gap:.55rem;cursor:pointer;transition:background .18s}
.ent-pill:hover{background:rgba(255,255,255,.1)}
.ent-pill .ea{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-family:'Fraunces';font-weight:600;font-size:.85rem;color:#fff;flex-shrink:0}
.ent-pill .et{flex:1;min-width:0}
.ent-pill .et b{font-size:.85rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ent-pill .et span{font-size:.68rem;color:rgba(255,255,255,.5)}
.ent-pill .sw{font-size:.66rem;color:var(--brand);font-weight:700}
.sidebar-nav{flex:1;overflow-y:auto;padding:.4rem .7rem 1rem}
.nav-link{display:flex;align-items:center;gap:.7rem;width:100%;padding:.7rem .8rem;margin:2px 0;background:transparent;border:none;border-radius:var(--r-md);color:rgba(255,255,255,.74);font:inherit;font-size:.92rem;font-weight:500;cursor:pointer;transition:all .16s var(--ease);position:relative;text-align:left}
.nav-link .nav-ico{width:20px;text-align:center;font-size:1rem;opacity:.9}
.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-link.active{background:linear-gradient(90deg,rgba(240,122,34,.22),rgba(240,122,34,.06));color:#fff;font-weight:600}
.nav-link.active::before{content:"";position:absolute;left:-.7rem;top:50%;transform:translateY(-50%);width:4px;height:60%;background:var(--brand);border-radius:0 4px 4px 0}
.nav-divider{height:1px;background:rgba(255,255,255,.08);margin:.7rem .4rem}
.nav-logout{color:rgba(255,255,255,.55)}.nav-logout:hover{background:rgba(229,72,77,.16);color:#ffb4b4}

.main-wrap{flex:1;display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:1rem;padding:.85rem 1.5rem;background:rgba(251,243,234,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.hamburger{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:6px}
.hamburger span{width:20px;height:2px;background:var(--ink);border-radius:2px}
.topbar-title{font-family:'Fraunces';font-weight:600;font-size:1.25rem;flex:1;letter-spacing:-.01em}
.topbar-ent{display:flex;align-items:center;gap:.4rem;padding:.34rem .7rem;background:var(--brand-soft);color:var(--brand-600);border-radius:var(--r-pill);font-size:.8rem;font-weight:700}
.topbar-ent::before{content:"📍"}
.topbar-user{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand-600));color:#fff;display:grid;place-items:center;font-weight:700;font-size:.9rem;cursor:pointer;box-shadow:var(--sh-sm)}
.content{flex:1;padding:1.6rem;max-width:1240px;width:100%;margin:0 auto}
@media(max-width:1024px){
  .sidebar{position:fixed;left:0;transform:translateX(-100%);transition:transform .28s var(--ease);box-shadow:var(--sh-lg)}
  .sidebar.open{transform:translateX(0)}
  .sidebar-close{display:block}
  .hamburger{display:flex}
}
.sidebar-backdrop{position:fixed;inset:0;background:rgba(33,20,14,.5);z-index:40;opacity:0;pointer-events:none;transition:opacity .25s}
.sidebar-backdrop.open{opacity:1;pointer-events:auto}

/* ---------- Generic content pieces ---------- */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.3rem;flex-wrap:wrap}
.page-head .ph-sub{color:var(--text-2);font-size:.9rem;margin-top:.15rem}
.section-title{font-family:'Fraunces';font-weight:600;font-size:1.4rem;letter-spacing:-.01em}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:1.3rem}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1rem}
.card-head h3{font-size:1.02rem;font-weight:700;display:flex;align-items:center;gap:.5rem}
.card-head .ico{color:var(--brand)}
.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1.1rem}
.search-wrap{position:relative;flex:1;min-width:220px}
.search-wrap input{width:100%;padding:.62rem .9rem .62rem 2.4rem;font:inherit;font-size:.92rem;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);transition:all .18s}
.search-wrap input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.search-wrap .s-ico{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--text-3)}
.select-mini{padding:.6rem .85rem;font:inherit;font-size:.88rem;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);font-weight:500;cursor:pointer;color:var(--text)}
.select-mini:focus{outline:none;border-color:var(--brand)}

/* KPI / dashboard cards */
.cards-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1rem;margin-bottom:1.4rem}
.stat{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.15rem 1.2rem;box-shadow:var(--sh-sm);overflow:hidden;animation:rise .5s var(--ease) both}
.stat::after{content:"";position:absolute;right:-20px;top:-20px;width:80px;height:80px;border-radius:50%;background:var(--accent,var(--brand-soft));opacity:.5}
.stat .st-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:1.1rem;margin-bottom:.7rem;position:relative;z-index:1}
.stat .st-val{font-family:'Fraunces';font-weight:600;font-size:2rem;line-height:1;letter-spacing:-.02em;position:relative;z-index:1;font-variant-numeric:tabular-nums}
.stat .st-lbl{color:var(--text-2);font-size:.82rem;font-weight:600;margin-top:.3rem;position:relative;z-index:1}
.stat .st-delta{font-size:.74rem;font-weight:700;margin-top:.35rem;position:relative;z-index:1}
.up{color:#13833e}.down{color:var(--danger-600)}

/* progress rows */
.prog{margin-bottom:.85rem}
.prog:last-child{margin-bottom:0}
.prog .pl{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.35rem}
.prog .pl b{font-weight:700;font-variant-numeric:tabular-nums}
.prog .track{height:8px;background:var(--cream);border-radius:99px;overflow:hidden}
.prog .fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand),#f6a560);transition:width 1s var(--ease)}
.prog .fill.wa{background:linear-gradient(90deg,var(--wa),#5fd98c)}

.dash-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.2rem;margin-bottom:1.2rem}
@media(max-width:880px){.dash-grid{grid-template-columns:1fr}}
.alert-row{display:flex;align-items:center;gap:.7rem;padding:.7rem .85rem;border-radius:var(--r-md);font-size:.87rem;font-weight:500;margin-bottom:.55rem}
.alert-row .ar-ico{flex-shrink:0}
.alert-warn{background:var(--warn-bg);color:#8f5e16}
.alert-info{background:var(--info-bg);color:#27559e}
.alert-row b{font-weight:700}

/* KPI groups */
.kpi-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}
.kpi-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.1rem;box-shadow:var(--sh-sm)}
.kpi-group h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-600);font-weight:700;margin-bottom:.8rem;display:flex;align-items:center;gap:.4rem}
.kpi-item{display:flex;justify-content:space-between;align-items:baseline;padding:.42rem 0;border-bottom:1px dashed var(--border-soft);font-size:.86rem}
.kpi-item:last-child{border:none}
.kpi-item .v{font-family:'JetBrains Mono';font-weight:600;font-size:.9rem}
.kpi-item .v.muted{color:var(--text-3);font-size:.78rem;font-style:italic;font-family:'DM Sans'}

/* Table */
.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden}
table{width:100%;border-collapse:collapse}
thead th{text-align:left;padding:.8rem 1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);font-weight:700;background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}
tbody td{padding:.8rem 1rem;border-bottom:1px solid var(--border-soft);font-size:.9rem;vertical-align:middle}
tbody tr{transition:background .14s}
tbody tr:hover{background:var(--brand-050)}
tbody tr:last-child td{border-bottom:none}
.t-name{font-weight:600}
.t-sub{font-size:.78rem;color:var(--text-3)}
.row-actions{display:flex;gap:.35rem;justify-content:flex-end}
.empty-state{padding:3rem 1rem;text-align:center;color:var(--text-3)}
.empty-state .es-ico{font-size:2.4rem;margin-bottom:.6rem;opacity:.6}
.pagination{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-top:1px solid var(--border);font-size:.84rem;color:var(--text-2)}
.pagination .pg-btns{display:flex;gap:.4rem}

/* Tabs */
.tabs{display:flex;gap:.3rem;border-bottom:1.5px solid var(--border);margin-bottom:1.2rem;overflow-x:auto}
.tab{padding:.6rem .9rem;background:none;border:none;border-bottom:2.5px solid transparent;font:inherit;font-size:.88rem;font-weight:600;color:var(--text-2);cursor:pointer;white-space:nowrap;margin-bottom:-1.5px;transition:all .16s}
.tab:hover{color:var(--brand-600)}
.tab.active{color:var(--brand-600);border-bottom-color:var(--brand)}
.tab-pane{display:none;animation:fade .25s ease both}
.tab-pane.active{display:block}

/* Stepper (import) */
.stepper{display:flex;align-items:center;margin-bottom:1.6rem;overflow-x:auto;padding:.2rem}
.step{display:flex;align-items:center;gap:.55rem;flex-shrink:0}
.step .num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.86rem;background:var(--cream);color:var(--text-2);border:2px solid var(--border);transition:all .25s}
.step .lbl{font-size:.84rem;font-weight:600;color:var(--text-3);white-space:nowrap}
.step.done .num{background:var(--wa);border-color:var(--wa);color:#fff}
.step.active .num{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--brand-soft)}
.step.active .lbl{color:var(--brand-600)}
.step.done .lbl{color:var(--text)}
.step-line{flex:1;height:2px;background:var(--border);margin:0 .6rem;min-width:24px}
.step-line.done{background:var(--wa)}
.dropzone{border:2px dashed var(--tan);border-radius:var(--r-lg);padding:2.6rem 1.5rem;text-align:center;background:var(--surface-2);cursor:pointer;transition:all .2s}
.dropzone:hover{border-color:var(--brand);background:var(--brand-050)}
.dropzone .dz-ico{font-size:2.6rem;margin-bottom:.7rem}
.dropzone h3{font-size:1.05rem;margin-bottom:.3rem}
.dropzone p{color:var(--text-2);font-size:.87rem}
.dropzone .formats{margin-top:.8rem;font-size:.76rem;color:var(--text-3)}
.preview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.8rem;margin-bottom:1.2rem}
.pv-stat{padding:.9rem;border-radius:var(--r-md);text-align:center}
.pv-stat .n{font-family:'Fraunces';font-weight:600;font-size:1.6rem;line-height:1}
.pv-stat .l{font-size:.76rem;font-weight:600;margin-top:.25rem}
.conflict-sit{font-size:.82rem}
.sel-action{padding:.34rem .6rem;font:inherit;font-size:.8rem;border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font-weight:600;color:var(--text)}

/* WhatsApp phone preview (frase) */
.frase-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1.4rem;align-items:start}
@media(max-width:820px){.frase-grid{grid-template-columns:1fr}}
.phone{max-width:300px;margin:0 auto;background:var(--ink-950);border-radius:34px;padding:10px;box-shadow:var(--sh-lg)}
.phone-screen{background:#e9ddd0;border-radius:26px;overflow:hidden;height:480px;display:flex;flex-direction:column;background-image:radial-gradient(rgba(122,96,76,.08) 1px,transparent 1px);background-size:18px 18px}
.phone-top{background:var(--wa);color:#fff;padding:.7rem .8rem;display:flex;align-items:center;gap:.55rem}
.phone-top .pa{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:.95rem}
.phone-top b{font-size:.88rem;display:block}.phone-top span{font-size:.7rem;opacity:.85}
.phone-body{flex:1;padding:.9rem .7rem;overflow:auto;display:flex;flex-direction:column;gap:.5rem}
.p-bubble{align-self:flex-start;margin-right:auto;background:#fff;padding:.5rem .7rem;border-radius:12px;font-size:.82rem;max-width:88%;box-shadow:0 1px 1px rgba(0,0,0,.06);line-height:1.4;border-bottom-left-radius:4px}
.p-bubble.final{align-self:flex-start;margin-right:auto;background:#fff;white-space:pre-wrap;word-break:break-word}
.p-bubble.final a{color:var(--brand-600);font-weight:600}
.char-count{font-size:.74rem;color:var(--text-3);font-weight:600;font-variant-numeric:tabular-nums}
.char-count.over{color:var(--danger-600)}

/* qtd stepper */
.qty-box{display:flex;align-items:center;gap:0;width:fit-content;border:1.5px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.qty-box button{width:44px;height:46px;border:none;background:var(--surface-2);font-size:1.3rem;font-weight:600;color:var(--brand-600);cursor:pointer;transition:background .15s}
.qty-box button:hover{background:var(--brand-soft)}
.qty-box input{width:64px;height:46px;border:none;border-left:1.5px solid var(--border);border-right:1.5px solid var(--border);text-align:center;font-family:'Fraunces';font-weight:600;font-size:1.4rem;color:var(--ink)}
.qty-box input:focus{outline:none}

/* users / roles */
.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.4rem}
.role-card{padding:1.1rem;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--sh-sm)}
.role-card .rc-ico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:1.15rem;margin-bottom:.7rem;background:var(--brand-soft)}
.role-card h4{font-size:1rem;margin-bottom:.3rem}
.role-card p{font-size:.84rem;color:var(--text-2)}
.avatar-sm{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.82rem;color:#fff;flex-shrink:0}
.user-cell{display:flex;align-items:center;gap:.6rem}
.perfil-tag{padding:.2rem .55rem;border-radius:var(--r-pill);font-size:.73rem;font-weight:700}
.pf-admin{background:var(--brand-soft);color:var(--brand-600)}
.pf-operador{background:var(--info-bg);color:#27559e}
.pf-leitura{background:#f1ece5;color:#8a7359}

/* logs */
.log-list{display:flex;flex-direction:column}
.log-item{display:flex;gap:.85rem;padding:.85rem 0;border-bottom:1px dashed var(--border-soft)}
.log-item:last-child{border:none}
.log-dot{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:.9rem;flex-shrink:0;background:var(--cream)}
.log-body{flex:1;min-width:0}
.log-body .lt{font-size:.88rem}.log-body .lt b{font-weight:700}
.log-body .lm{font-size:.76rem;color:var(--text-3);margin-top:.15rem;font-family:'JetBrains Mono'}
.log-tag{font-size:.7rem;font-weight:700;padding:.12rem .45rem;border-radius:5px;background:var(--brand-soft);color:var(--brand-600);white-space:nowrap;align-self:flex-start}

/* status detail */
.status-now{display:flex;align-items:center;gap:1rem;padding:1.1rem;background:var(--surface-2);border-radius:var(--r-lg);margin-bottom:1.2rem;border:1px solid var(--border)}
.status-now .sn-big{font-family:'Fraunces';font-weight:600;font-size:1.5rem}
.hist-line{display:flex;gap:.7rem;padding:.6rem 0;border-bottom:1px dashed var(--border-soft);font-size:.86rem}
.hist-line:last-child{border:none}
.hist-line .hl-when{font-family:'JetBrains Mono';font-size:.78rem;color:var(--text-3);white-space:nowrap}

/* ---------- Modal ---------- */
.modal-overlay{position:fixed;inset:0;background:rgba(33,20,14,.55);backdrop-filter:blur(3px);z-index:90;opacity:0;pointer-events:none;transition:opacity .25s}
.modal-overlay.open{opacity:1;pointer-events:auto}
.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%) scale(.97);width:calc(100% - 2rem);max-width:640px;max-height:90vh;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-lg);z-index:100;opacity:0;pointer-events:none;transition:all .25s var(--ease);display:flex;flex-direction:column;overflow:hidden}
.modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.modal.modal-lg{max-width:820px}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.4rem;border-bottom:1px solid var(--border)}
.modal-head h3{font-family:'Fraunces';font-weight:600;font-size:1.2rem}
.modal-x{background:var(--surface-2);border:none;width:32px;height:32px;border-radius:50%;font-size:1rem;cursor:pointer;color:var(--text-2);transition:all .15s}
.modal-x:hover{background:var(--danger-bg);color:var(--danger-600)}
.modal-body{padding:1.4rem;overflow-y:auto}
.modal-foot{display:flex;gap:.7rem;justify-content:flex-end;padding:1.1rem 1.4rem;border-top:1px solid var(--border);background:var(--surface-2)}
.dup-alert{display:flex;gap:.6rem;align-items:flex-start;padding:.7rem .85rem;background:var(--warn-bg);color:#8f5e16;border-radius:var(--r-md);font-size:.84rem;margin-bottom:1rem}

/* ---------- Toast ---------- */
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%,140%);display:flex;align-items:center;gap:.6rem;padding:.8rem 1.2rem;background:var(--ink-900);color:#fff;border-radius:var(--r-pill);box-shadow:var(--sh-lg);z-index:200;transition:transform .35s var(--ease);font-size:.9rem;font-weight:600;max-width:90vw}
.toast.show{transform:translate(-50%,0)}
.toast .ti{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.78rem;flex-shrink:0}
.toast.success .ti{background:var(--wa)}.toast.error .ti{background:var(--danger)}.toast.info .ti{background:var(--info)}

@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.stagger>*{animation:rise .5s var(--ease) both}
.stagger>*:nth-child(1){animation-delay:.03s}.stagger>*:nth-child(2){animation-delay:.07s}
.stagger>*:nth-child(3){animation-delay:.11s}.stagger>*:nth-child(4){animation-delay:.15s}
.stagger>*:nth-child(5){animation-delay:.19s}

/* Spinner (carregamento) */
.spinner{width:34px;height:34px;border:3px solid var(--cream);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.btn .spinner{width:16px;height:16px;border-width:2px;border-color:rgba(255,255,255,.4);border-top-color:#fff}

/* Visualização (somente leitura) da empresa — Parte 2 */
.view-emp .ve-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:.9rem;margin-bottom:.9rem;border-bottom:1px solid var(--border)}
.ve-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.6rem}
.ve-sec h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:0 0 .45rem}
.kv{display:flex;justify-content:space-between;gap:1rem;padding:.26rem 0;border-bottom:1px dashed var(--border);font-size:.9rem}
.kv:last-child{border-bottom:none}
.kl{color:var(--text-3);flex:0 0 auto}
.kvv{color:var(--text);text-align:right;word-break:break-word}
.ve-foot{margin-top:1rem;padding-top:.7rem;border-top:1px solid var(--border);font-size:.82rem}
@media(max-width:680px){.ve-grid{grid-template-columns:1fr}}
