/* ============================================================
   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(min-width:992px){.kpis-5{grid-template-columns:repeat(5,1fr)}}
@media(max-width:991.98px){.kpis{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:520px){.kpis{grid-template-columns:repeat(2,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}

/* Demonstração do movimento: alterna as 2 imagens do exercício (gif por CSS). */
.exdemo{position:relative;display:block;width:100%;height:100%;overflow:hidden}
.exdemo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.exdemo .exdemo-b{opacity:0;animation:exdemoFlip 1.4s steps(1) infinite}
@keyframes exdemoFlip{0%,50%{opacity:0}50.01%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.exdemo .exdemo-b{animation:none;opacity:0}}

/* ===== Superadmin (painel do dono) — layout compartilhado em superadmin/_layout.php ===== */
.sa-body{background:var(--gm-bg);min-height:100vh;display:flex;flex-direction:column}
.sa-wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 20px}
@media(max-width:575.98px){.sa-wrap{padding:0 14px}}
.sa-header{background:linear-gradient(180deg,var(--gm-sidebar) 0%,var(--gm-sidebar-2) 100%);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 4px 14px rgba(16,24,40,.18)}
.sa-brandbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;padding-bottom:12px}
.sa-brand{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;font-size:1.05rem;letter-spacing:-.02em;min-width:0}
.sa-brand img{border-radius:8px;flex-shrink:0}
.sa-brand small{display:block;font-size:.72rem;font-weight:500;color:rgba(255,255,255,.55);letter-spacing:0;line-height:1.1}
.sa-brand:hover{color:#fff}
.sa-brand-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.sa-ghost{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.75);text-decoration:none;font-size:.82rem;font-weight:600;padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.12)}
.sa-ghost:hover{color:#fff;background:rgba(255,255,255,.08)}
.sa-nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:0;margin-top:2px}
.sa-nav::-webkit-scrollbar{display:none}
@media(max-width:767.98px){.sa-nav{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}}
.sa-nav-item{position:relative;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:rgba(255,255,255,.7);text-decoration:none;font-size:.86rem;font-weight:600;padding:10px 12px 12px;border-bottom:2.5px solid transparent;transition:color .15s}
.sa-nav-item i{font-size:.95rem;opacity:.85}
.sa-nav-item:hover{color:#fff}
.sa-nav-item.active{color:#fff;border-bottom-color:var(--gm-primary)}
.sa-nav-item.active i{color:var(--gm-primary);opacity:1}
.sa-nav-badge{background:var(--gm-danger);color:#fff;font-size:.66rem;font-weight:800;line-height:1;padding:3px 6px;border-radius:999px;min-width:18px;text-align:center}
.sa-main{flex:1;padding-top:26px;padding-bottom:40px}
.sa-main.sa-narrow{max-width:760px}
.sa-pagehead{margin-bottom:20px}
.sa-pagehead h1{font-size:1.45rem;font-weight:800;letter-spacing:-.02em;margin:0;color:var(--gm-text)}
.sa-pagehead p{color:var(--gm-muted);font-size:.9rem;margin:4px 0 0;max-width:70ch}
.sa-back{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;font-weight:600;color:var(--gm-muted);text-decoration:none;margin-bottom:8px}
.sa-back:hover{color:var(--gm-primary)}
.sa-main .card{border:1px solid var(--gm-border);border-radius:var(--gm-radius);box-shadow:var(--gm-shadow)}
.sa-section{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:26px 0 10px}
.sa-section h2{font-size:.95rem;font-weight:700;margin:0}
.sa-section:first-child{margin-top:0}
/* Cards de plano (visão geral) */
.plan-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 8px}
@media(max-width:900px){.plan-cards{grid-template-columns:repeat(2,1fr)}}
.plan-card{background:var(--gm-surface);border:1px solid var(--gm-border);border-radius:var(--gm-radius);box-shadow:var(--gm-shadow);padding:16px 18px}
.plan-card .pc-nome{font-weight:700;font-size:.95rem}
.plan-card .pc-preco{font-size:1.4rem;font-weight:800;margin-top:2px}
.plan-card .pc-limite{color:var(--gm-muted);font-size:.8rem;margin-top:2px}
.plan-card .pc-qtd{margin-top:10px;font-size:.78rem;font-weight:700;color:var(--gm-primary);background:var(--gm-primary-50);display:inline-block;padding:2px 10px;border-radius:20px}
/* Login do dono */
.sa-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 20% -10%,rgba(254,106,0,.18),transparent 60%),linear-gradient(180deg,var(--gm-sidebar) 0%,var(--gm-sidebar-2) 100%);padding:24px 16px}
.sa-login-card{width:100%;max-width:400px;background:var(--gm-surface);border-radius:var(--gm-radius);box-shadow:var(--gm-shadow-lg);padding:30px 28px}
.sa-login-brand{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.sa-login-brand img{width:36px;height:36px;border-radius:9px}
.sa-login-brand strong{display:block;font-size:1.05rem;letter-spacing:-.02em}
.sa-login-brand span{display:block;font-size:.78rem;color:var(--gm-muted)}
