/* ============================================================
   Design System "Pulse" — alinhado ao GM20 CRM.
   --c = cor de marca do tenant (sobrescrita inline). Mapeada em --gm-primary.
   ============================================================ */
:root{
  --c:#FE6A00;
  /* Marca */
  --gm-primary:var(--c);
  --gm-primary-600:#E55F00;
  --gm-primary-50:#FFF1E6;
  --gm-secondary:#00A39E;
  --gm-secondary-50:#E6F6F5;
  /* Estrutura */
  --gm-sidebar:#1F2A37;
  --gm-sidebar-2:#18222e;
  --gm-bg:#F4F6F8;
  --gm-surface:#FFFFFF;
  --gm-border:#E7EBF0;
  --gm-text:#1F2A37;
  --gm-muted:#66727F;
  /* Status */
  --gm-success:#16A34A; --gm-success-50:#E9F7EF;
  --gm-warning:#D97706; --gm-warning-50:#FDF3E7;
  --gm-danger:#DC2626;  --gm-danger-50:#FCEBEB;
  --gm-info:#2563EB;    --gm-info-50:#EAF0FE;
  /* Elevação / raio / ritmo */
  --gm-radius:14px;
  --gm-radius-sm:9px;
  --gm-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 18px rgba(16,24,40,.06);
  --gm-shadow-lg:0 10px 30px rgba(16,24,40,.12);
  --gm-font:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;

  /* Aliases legados (mantidos p/ compatibilidade) */
  --bg:var(--gm-bg);
  --fg:var(--gm-text);
  --muted:var(--gm-muted);
  --card:var(--gm-surface);
  --line:var(--gm-border);
  --field:#ffffff;
  --field-line:#D5DBE2;
  --accent-ink:#c9560a;
}
*{box-sizing:border-box}
body{background:var(--gm-bg);color:var(--gm-text);font-family:var(--gm-font);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{color:var(--gm-text)}
a{color:var(--accent-ink);text-decoration:none}
a:hover{text-decoration:underline}
.text-secondary{color:var(--gm-muted)!important}
.text-c{color:var(--gm-primary)!important}

/* Cartões silenciosos */
.card{background:var(--gm-surface);border:1px solid var(--gm-border);border-radius:var(--gm-radius);box-shadow:var(--gm-shadow)}

/* Formulários */
.form-label{font-weight:600;color:#374151}
.form-control,.form-select{background:var(--field);border:1px solid var(--field-line);color:var(--gm-text);border-radius:var(--gm-radius-sm)}
.form-control::placeholder{color:#9aa1ad}
.form-control:focus,.form-select:focus{background:var(--field);color:var(--gm-text);border-color:var(--gm-primary);box-shadow:0 0 0 .2rem rgba(254,106,0,.15)}
.input-group-text{background:#eef0f3;border-color:var(--field-line);color:var(--gm-muted)}
code{color:var(--accent-ink);background:var(--gm-primary-50);padding:.12em .4em;border-radius:6px;font-size:.92em}

/* Botões */
.btn-c{background:var(--gm-primary);color:#fff;font-weight:600;border:none;border-radius:var(--gm-radius-sm);padding:.62rem 1.1rem;box-shadow:0 4px 12px rgba(254,106,0,.3)}
.btn-c:hover{filter:brightness(.95);color:#fff}
.btn-warning{--bs-btn-bg:var(--gm-primary);--bs-btn-border-color:var(--gm-primary);--bs-btn-color:#fff;--bs-btn-hover-bg:var(--gm-primary-600);--bs-btn-hover-border-color:var(--gm-primary-600);--bs-btn-hover-color:#fff;font-weight:600}
.btn-outline-c{background:transparent;color:var(--gm-primary);border:1.5px solid var(--gm-primary);border-radius:var(--gm-radius-sm);padding:.5rem 1.1rem;font-weight:600}
.btn-outline-c:hover{background:var(--gm-primary);color:#fff}
.btn-xs{padding:.2rem .5rem;font-size:.78rem;border-radius:6px}

/* Cabeçalho de página (Pulse) */
.page-title{font-size:26px;font-weight:700;letter-spacing:-.3px;margin:0}
.page-sub{font-size:14px;color:var(--gm-muted);margin-top:5px}

/* ===== KPI cards ===== */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}
@media(max-width:991.98px){.kpis{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:520px){.kpis{grid-template-columns:1fr}}
.kpi{background:var(--gm-surface);border-radius:var(--gm-radius);box-shadow:var(--gm-shadow);padding:18px 20px;position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent,var(--gm-primary))}
.kpi-top{display:flex;justify-content:space-between;align-items:flex-start}
.kpi-label{font-size:13px;color:var(--gm-muted);font-weight:500}
.kpi-ic{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--accent-bg,var(--gm-primary-50));color:var(--accent,var(--gm-primary))}
.kpi-num{font-size:32px;font-weight:700;margin-top:12px;letter-spacing:-.5px;line-height:1}
.kpi-delta{font-size:12.5px;font-weight:600;margin-top:6px;color:var(--gm-muted)}

/* ===== Table card (Pulse) ===== */
.tablecard{background:var(--gm-surface);border-radius:var(--gm-radius);box-shadow:var(--gm-shadow);overflow:hidden}
.tablecard-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--gm-border);flex-wrap:wrap}
.tablecard-foot{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;font-size:13px;color:var(--gm-muted)}

/* Chips de filtro */
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-size:13px;font-weight:600;padding:7px 15px;border-radius:20px;background:var(--gm-bg);color:var(--gm-muted);border:1px solid var(--gm-border);text-decoration:none;cursor:pointer}
.chip:hover{color:var(--gm-text);text-decoration:none}
.chip.active{background:var(--gm-primary);color:#fff;border-color:var(--gm-primary)}

/* Tabelas — arejadas, cabeçalho sticky */
.table{color:var(--gm-text);--bs-table-bg:transparent;--bs-table-color:var(--gm-text);margin-bottom:0}
.table thead th{color:var(--gm-muted);font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:#F8FAFC;border-color:var(--gm-border);padding:13px 20px}
.table td,.table th{border-color:var(--gm-border);vertical-align:middle}
.table tbody td{padding:13px 20px;font-size:13.5px}
.table.table-hover tbody tr:hover{background:var(--gm-primary-50)}
.table tbody tr:last-child td{border-bottom:0}

/* Célula de usuário com avatar */
.usercell{display:flex;align-items:center;gap:12px}
.avatar{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13.5px;color:#fff;flex-shrink:0;background:var(--gm-primary)}
.uname{font-weight:600}
.umail{font-size:12px;color:var(--gm-muted);margin-top:1px}

/* Botões ghost (ações em linha) */
.ghost{width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--gm-muted);display:inline-flex;align-items:center;justify-content:center;font-size:15px}
.ghost:hover{background:var(--gm-bg);border-color:var(--gm-border);color:var(--gm-text);text-decoration:none}

/* ===== Badges de status — pills tonais ===== */
.pill{font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px;display:inline-block}
.p-ok,.badge-ativo{background:var(--gm-success-50);color:var(--gm-success)}
.p-off,.badge-suspenso{background:var(--gm-warning-50);color:var(--gm-warning)}
.p-lead{background:var(--gm-info-50);color:var(--gm-info)}
.p-exp,.badge-vencido{background:var(--gm-danger-50);color:var(--gm-danger)}
.badge-ativo,.badge-suspenso,.badge-vencido{font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px}

.stat{font-size:1.7rem;font-weight:700}
.border-bottom,.border-secondary{border-color:var(--gm-border)!important}
nav.border-bottom{background:#fff}

/* ============================================================
   Layout Admin
   ============================================================ */
.app-shell{min-height:100vh}
/* Sidebar desktop — escura (Pulse) */
.app-sidebar{width:256px;flex:0 0 256px;background:linear-gradient(180deg,var(--gm-sidebar),var(--gm-sidebar-2));padding:22px 16px 16px;position:sticky;top:0;height:100vh;overflow-y:auto;transition:transform .25s}
.app-brand{font-weight:700;font-size:21px;letter-spacing:.3px;padding:4px 8px 20px;margin-bottom:6px;display:block;color:#fff}
.app-main{min-width:0;background:var(--gm-bg)}
.app-content{max-width:1240px;margin:0 auto;width:100%}
.app-sidebar .nav{margin-top:2px}
.app-sidebar .nav-link{color:rgba(255,255,255,.78);border-radius:9px;padding:9px 12px;margin-bottom:2px;font-weight:500;font-size:13.5px;display:flex;align-items:center;transition:.15s}
.app-sidebar .nav-link i{font-size:1rem;opacity:.9;width:20px;text-align:center}
.app-sidebar .nav-link:hover{background:rgba(255,255,255,.07);text-decoration:none;color:#fff}
.app-sidebar .nav-link.active{background:var(--gm-primary);color:#fff;box-shadow:0 4px 12px rgba(254,106,0,.35)}
.app-sidebar .nav-link.active i{opacity:1}
.app-sidebar-footer{color:rgba(255,255,255,.4);font-size:12px;padding:8px 12px 0;border-top:1px solid rgba(255,255,255,.08);margin-top:8px}
/* Sidebar mobile */
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:199}
.sidebar-overlay.show{display:block}
@media(max-width:991.98px){
  .app-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translateX(-100%)}
  .app-sidebar.show{transform:translateX(0)}
}
/* Topbar (Pulse — 64px) */
.admin-topbar{height:64px;background:var(--gm-surface);border-bottom:1px solid var(--gm-border);display:flex;align-items:center;gap:.75rem;padding:0 1.25rem;position:sticky;top:0;z-index:50}
.admin-topbar-btn{background:none;border:none;padding:.2rem .4rem;cursor:pointer;color:var(--gm-text);display:flex;align-items:center}
.admin-topbar-welcome{font-size:13.5px;white-space:nowrap;color:var(--gm-muted);flex-shrink:0}
.admin-topbar-welcome strong{color:var(--gm-text)}
.admin-topbar-clock{flex-shrink:0}
/* Bottom nav admin (mobile) */
.admin-bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--gm-border);display:flex;z-index:100;padding-bottom:env(safe-area-inset-bottom)}
.admin-bot-link{flex:1;display:flex;flex-direction:column;align-items:center;padding:.55rem .5rem .45rem;font-size:.68rem;font-weight:600;color:var(--gm-muted);text-decoration:none;gap:2px;background:none;border:none;cursor:pointer}
.admin-bot-link i{font-size:1.25rem}
.admin-bot-link:hover{text-decoration:none;color:var(--gm-text)}
.admin-bot-link.active{color:var(--gm-primary)}
/* Drawer mobile */
.admin-drawer-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:299}
.admin-drawer-overlay.show{display:block}
.admin-drawer{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:20px 20px 0 0;z-index:300;transform:translateY(100%);transition:transform .3s cubic-bezier(.25,.8,.25,1);max-height:85vh;overflow-y:auto}
.admin-drawer.show{transform:translateY(0)}
.admin-drawer-handle{width:40px;height:4px;background:#d1d5db;border-radius:2px;margin:10px auto 0}
.admin-drawer-header{display:flex;align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid var(--gm-border);font-size:1rem}
.admin-drawer-nav{padding:.5rem 1rem 0}
.drw-link{display:flex;align-items:center;gap:.75rem;padding:.7rem .75rem;border-radius:10px;color:#374151;font-weight:600;font-size:.9rem;text-decoration:none;margin-bottom:.15rem}
.drw-link i{font-size:1.1rem;color:var(--gm-primary);width:22px;text-align:center}
.drw-link:hover{background:#f4f5f7;text-decoration:none;color:#101828}
