/* =========================================================
   PULSE — Gestão Inteligente para Clínicas Odontológicas
   O pulso da sua clínica. · Design system / mockup styles
   ========================================================= */

:root {
  /* ===== Paleta da marca PULSE =====
     Nota: os nomes --rose/--teal são mantidos como aliases históricos.
     --rose = ACCENT PRIMÁRIO (teal PULSE) · --teal = ACCENT SECUNDÁRIO (indigo) */
  --rose: #0EA5B7;         /* primário — teal PULSE (ações, destaques, logo) */
  --rose-d: #0B8391;       /* teal escuro */
  --rose-l: #D5F1F4;       /* teal claro */
  --navy: #0D1B2A;         /* navy profundo (fundos escuros, marca) */
  --navy-2: #14273A;
  --navy-3: #1D3550;
  --teal: #6366F1;         /* secundário — indigo PULSE */
  --teal-d: #4F46E5;       /* indigo escuro */

  /* cores de apoio da marca (novas) */
  --coral: #FF7A59;
  --amber: #FFC857;
  --brand: #0EA5B7;        /* alias semântico do primário */
  --brand-2: #6366F1;      /* alias semântico do secundário */

  --off: #F2F4F7;
  --slate: #4B5563;
  --slate-l: #6b7280;

  /* Tokens semânticos */
  --bg: #eef1f6;
  --surface: #ffffff;
  --surface-2: #f7f9fc;
  --line: #e6eaf1;
  --text: #1b2236;
  --text-2: #5b6478;
  --text-3: #8a93a6;

  --ok: #2bb673;
  --warn: #e8a13a;
  --danger: #e5564b;
  --info: #3b82f6;

  --radius: 16px;
  --radius-sm: 10px;
  --shadow: 0 1px 2px rgba(16,24,40,.04), 0 8px 24px rgba(16,24,40,.06);
  --shadow-lg: 0 12px 40px rgba(16,24,40,.16);
  --grad: linear-gradient(135deg, #0EA5B7 0%, #22B8C9 45%, #6366F1 100%);
  --grad-navy: linear-gradient(160deg, #14273A 0%, #0D1B2A 100%);
  --sidebar-w: 256px;
  --topbar-h: 64px;

  font-family: 'Poppins', system-ui, -apple-system, sans-serif;
}

/* =========================================================
   CORES POR MÓDULO (KPIs reconhecíveis pela cor)
   O #app recebe data-area via App._applyArea(); os cards
   herdam --mod / --mod-d / --mod-l / --mod-grad.
   ========================================================= */
.app {
  --mod: var(--rose); --mod-d: var(--rose-d); --mod-l: var(--rose-l);
  --mod-grad: var(--grad);
}
/* 🩵 Clínico — suave e confiável (Aurora) */
.app[data-area="clinico"]    { --mod:#1FA9A0; --mod-d:#158B84; --mod-l:#E1F6F3; --mod-grad:linear-gradient(135deg,#6EDCEB 0%,#48D1C6 100%); }
/* 📋 Administrativo — equilíbrio e organização (Steel Blue) */
.app[data-area="admin"]      { --mod:#3B82F6; --mod-d:#2563EB; --mod-l:#E7F0FF; --mod-grad:linear-gradient(135deg,#6EA8FE 0%,#3B82F6 100%); }
/* 💰 Financeiro — prosperidade e foco (Emerald) */
.app[data-area="financeiro"] { --mod:#00A67E; --mod-d:#00805F; --mod-l:#DFF7EF; --mod-grad:linear-gradient(135deg,#00C9A7 0%,#00966E 100%); }
/* 🚀 Comercial — energia e conversão (Neon Fire) */
.app[data-area="comercial"]  { --mod:#FF2D95; --mod-d:#D0176F; --mod-l:#FFE7F3; --mod-grad:linear-gradient(135deg,#FF2D95 0%,#7B2DFF 100%); }
/* 📣 Marketing — criatividade e conexão (multicolor) */
.app[data-area="marketing"]  { --mod:#7B61FF; --mod-d:#5B3FE0; --mod-l:#EFEAFF; --mod-grad:linear-gradient(120deg,#7B61FF 0%,#FF4D9D 55%,#FF9F1C 100%); }
/* 👥 Equipe | RH — identidade Pulse.PP (teal/verde sobre navy) */
.app[data-area="rh"]         { --mod:#0EA5B7; --mod-d:#0B8496; --mod-l:#E6F6F8; --mod-grad:linear-gradient(135deg,#0EA5B7 0%,#00B894 100%); }

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5 { font-family: 'Poppins', system-ui, sans-serif; font-weight: 700; line-height: 1.2; letter-spacing: -.01em; color: var(--text); }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
input, select, textarea { font-family: inherit; font-size: 14px; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #cfd6e4; border-radius: 20px; border: 3px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: #b6bfd2; background-clip: content-box; }

.hidden { display: none !important; }
.text-grad { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.muted { color: var(--text-2); }
.tiny { font-size: 12px; }
.right { text-align: right; }
.center { text-align: center; }
.up { color: var(--ok); }
.down { color: var(--danger); }
.nowrap { white-space: nowrap; }

/* ============== LOGO (SVG inline scaling) ============== */
.logo { display: inline-flex; align-items: center; gap: 10px; }
.logo svg { display: block; }
.logo .wm { font-family: 'Poppins', sans-serif; font-weight: 700; letter-spacing: 3px; }

/* =========================================================
   LOGIN
   ========================================================= */
.login {
  position: fixed; inset: 0; z-index: 100;
  display: grid; place-items: center;
  background: radial-gradient(1200px 700px at 70% -10%, #1c2746 0%, var(--navy) 55%);
  padding: 24px;
}
.login::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(600px 400px at 15% 90%, rgba(14,165,183,.16), transparent 60%),
    radial-gradient(500px 400px at 85% 20%, rgba(99,102,241,.14), transparent 60%);
  pointer-events: none;
}
.login-card {
  position: relative; width: 100%; max-width: 400px;
  background: rgba(22,29,51,.72); backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px; padding: 38px 32px;
  box-shadow: 0 30px 80px rgba(0,0,0,.5);
  color: #e9ecf4;
}
.login-card .logo { justify-content: center; margin-bottom: 6px; }
.login-tag { text-align: center; color: var(--rose); font-size: 11px; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 28px; }
.login-field { margin-bottom: 14px; }
.login-field label { display: block; font-size: 12px; color: #aab2c7; margin-bottom: 6px; }
.login-input {
  display: flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  border-radius: 12px; padding: 0 14px; height: 46px;
  transition: border-color .15s;
}
.login-input:focus-within { border-color: var(--rose); }
.login-input svg { flex: 0 0 auto; opacity: .7; }
.login-input input, .login-input select {
  flex: 1; background: none; border: none; outline: none; color: #fff; height: 100%;
}
.login-input select option { color: #1b2236; }
.login-input input::placeholder { color: #7e879c; }
.btn-login {
  width: 100%; height: 48px; margin-top: 8px; border-radius: 12px;
  background: var(--grad); color: #2a1b15; font-weight: 700; font-size: 15px;
  box-shadow: 0 10px 24px rgba(14,165,183,.3); transition: transform .1s, box-shadow .2s;
}
.btn-login:hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(14,165,183,.42); }
.login-forgot { display: block; text-align: center; margin-top: 16px; color: #aab2c7; font-size: 13px; }
.login-forgot:hover { color: var(--rose); }
.login-link { display: block; text-align: center; margin-top: 14px; color: #aab2c7; font-size: 13px; }
.login-link:hover { color: var(--rose); }
.login-link.strong { color: var(--rose); font-weight: 600; }
.login-demo { display: flex; align-items: center; gap: 8px; justify-content: center; margin-top: 16px; flex-wrap: wrap; }
.login-demo span { color: #7e879c; font-size: 12px; }
.login-demo button { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); color: #e9ecf4; font-size: 12px; padding: 5px 12px; border-radius: 20px; transition: all .15s; }
.login-demo button:hover { border-color: var(--rose); color: var(--rose); }
.login-preview { margin-top: 6px; padding: 11px 14px; border-radius: 11px; background: rgba(99,102,241,.1); border: 1px solid rgba(99,102,241,.25); color: #bfe9e4; font-size: 13px; }
.login-preview b { color: #fff; }
/* contexto da clínica ativa (sidebar) */
.clinic-ctx { padding: 12px 14px; margin: 12px 12px 0; border-radius: 12px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.07); display: flex; align-items: center; gap: 10px; }
.clinic-ctx .ci { width: 34px; height: 34px; border-radius: 9px; background: var(--grad); display: grid; place-items: center; color: #2a1b15; font-weight: 800; font-size: 14px; flex: 0 0 auto; }
.clinic-ctx .grow { min-width: 0; }
.clinic-ctx b { color: #fff; font-size: 13px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.clinic-ctx small { color: #8a93a6; font-size: 11px; }
.clinic-ctx .plan { margin-left: auto; font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 20px; background: rgba(14,165,183,.18); color: var(--rose); }
/* provider panel */
.prov-status { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.prov-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.ps-ativa { background: #e3f6ec; color: #1d8a55; }
.ps-pendente { background: #fbf0db; color: #b07918; }
.ps-bloqueada { background: #fbe4e2; color: #c23b32; }
.login-foot { margin-top: 26px; display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; color: #7e879c; font-size: 11px; }
.login-foot span { display: inline-flex; align-items: center; gap: 5px; }

/* =========================================================
   APP SHELL
   ========================================================= */
.app { display: none; min-height: 100vh; }
.app.show { display: block; }

/* ---- Sidebar ---- */
.sidebar {
  position: fixed; top: 0; left: 0; bottom: 0; width: var(--sidebar-w);
  background: var(--grad-navy); color: #c4ccde; z-index: 40;
  display: flex; flex-direction: column;
  border-right: 1px solid rgba(255,255,255,.05);
  transition: transform .25s ease;
}
.sidebar-head { height: var(--topbar-h); display: flex; align-items: center; padding: 0 20px; border-bottom: 1px solid rgba(255,255,255,.06); }
.sidebar-nav { flex: 1; overflow-y: auto; padding: 14px 12px; }
.nav-group-label { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: #66708c; padding: 14px 12px 6px; }
.nav-item {
  display: flex; align-items: center; gap: 12px; width: 100%;
  padding: 11px 14px; border-radius: 11px; color: #aeb7cd; font-size: 14px; font-weight: 500;
  transition: background .15s, color .15s; margin-bottom: 2px; text-align: left;
}
.nav-item svg { flex: 0 0 20px; opacity: .85; }
.nav-item:hover { background: rgba(255,255,255,.05); color: #fff; }
.nav-item.active { background: linear-gradient(90deg, rgba(14,165,183,.22), rgba(14,165,183,.05)); color: #fff; box-shadow: inset 3px 0 0 var(--rose); }
.nav-item.active svg { opacity: 1; }

/* Ícones do menu tingidos pela cor do módulo (reconhecimento por cor) */
.nav-item svg { color: inherit; }
.nav-item[data-mod="dashboard"] svg, .nav-item[data-mod="tutorial"] svg { color:#22C7D6; opacity:1; }
.nav-item[data-mod="agenda"] svg, .nav-item[data-mod="pacientes"] svg, .nav-item[data-mod="clinico"] svg,
.nav-item[data-mod="laboratorio"] svg, .nav-item[data-mod="clinPlan"] svg, .nav-item[data-mod="clinFicha"] svg,
.nav-item[data-mod="clinCtrl"] svg, .nav-grp[data-grp="grpClinico"] .nav-grp-head svg { color:#48D1C6; opacity:1; }
.nav-item[data-mod="administrativo"] svg, .nav-item[data-mod="estoque"] svg, .nav-item[data-mod="equipamento"] svg,
.nav-grp[data-grp="grpEstoque"] .nav-grp-head svg { color:#6EA8FE; opacity:1; }
.nav-item[data-mod="finReceber"] svg, .nav-item[data-mod="finPagar"] svg, .nav-item[data-mod="finConcil"] svg,
.nav-item[data-mod="formacao"] svg, .nav-grp[data-grp="grpFinanceiro"] .nav-grp-head svg { color:#00C9A7; opacity:1; }
.nav-item[data-mod="comercial"] svg, .nav-item[data-mod="comercial2"] svg, .nav-item[data-mod="comVendas"] svg,
.nav-item[data-mod="comPosvenda"] svg, .nav-item[data-mod="comIndicacao"] svg, .nav-item[data-mod="comMeta"] svg,
.nav-grp[data-grp="grpComercial"] .nav-grp-head svg { color:#FF5FA8; opacity:1; }
.nav-item[data-mod="marketing"] svg { color:#9B8CFF; opacity:1; }
.nav-item[data-mod="rh"] svg, .nav-item[data-mod="rhComport"] svg, .nav-item[data-mod="rhCLT"] svg,
.nav-item[data-mod="rhDentista"] svg, .nav-item[data-mod="rhFinanceiro"] svg, .nav-item[data-mod="rhProcessos"] svg,
.nav-grp[data-grp="grpEquipe"] .nav-grp-head svg { color:#14B8A6; opacity:1; }
.nav-badge { margin-left: auto; background: var(--rose); color: #2a1b15; font-size: 10px; font-weight: 700; padding: 1px 7px; border-radius: 20px; }
.sidebar-foot { padding: 12px; border-top: 1px solid rgba(255,255,255,.06); }

/* ---- Topbar ---- */
.topbar {
  position: fixed; top: 0; left: var(--sidebar-w); right: 0; height: var(--topbar-h); z-index: 30;
  background: rgba(255,255,255,.85); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  display: flex; align-items: center; gap: 14px; padding: 0 22px;
}
.menu-toggle { display: none; }
.search {
  display: flex; align-items: center; gap: 9px; background: var(--surface-2);
  border: 1px solid var(--line); border-radius: 11px; padding: 0 13px; height: 40px;
  width: 340px; max-width: 38vw; color: var(--text-3);
}
.search input { flex: 1; border: none; background: none; outline: none; color: var(--text); }
.topbar-spacer { flex: 1; }
.icon-btn {
  width: 40px; height: 40px; border-radius: 11px; display: inline-grid; place-items: center;
  color: var(--slate); position: relative; transition: background .15s, color .15s;
}
.icon-btn:hover { background: var(--surface-2); color: var(--text); }
.icon-btn .dot { position: absolute; top: 8px; right: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--danger); border: 2px solid #fff; }
.icon-btn.rec { color: var(--rose-d); }
.user-chip { display: flex; align-items: center; gap: 10px; padding: 5px 6px 5px 5px; border-radius: 12px; transition: background .15s; }
.user-chip:hover { background: var(--surface-2); }
.user-chip .meta { text-align: right; line-height: 1.15; }
.user-chip .meta b { font-size: 13px; }
.user-chip .meta span { font-size: 11px; color: var(--text-3); }

/* ---- Main ---- */
.main { margin-left: var(--sidebar-w); padding-top: var(--topbar-h); min-height: 100vh; }
.view { padding: 26px 30px 60px; max-width: 1480px; margin: 0 auto; animation: fade .25s ease; }
@keyframes fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ---- Avatars ---- */
.avatar {
  --s: 38px; width: var(--s); height: var(--s); border-radius: 50%;
  display: inline-grid; place-items: center; font-weight: 700; color: #fff; font-size: calc(var(--s) * .38);
  flex: 0 0 auto; background: var(--grad); position: relative; overflow: hidden;
}
.avatar.t1 { background: linear-gradient(135deg,#0EA5B7,#0B8391); }
.avatar.t2 { background: linear-gradient(135deg,#6366F1,#4F46E5); }
.avatar.t3 { background: linear-gradient(135deg,#6c7bd6,#4858b5); }
.avatar.t4 { background: linear-gradient(135deg,#e8a13a,#d4862a); }
.avatar.t5 { background: linear-gradient(135deg,#9b6cd6,#7a48b5); }
.avatar.t6 { background: linear-gradient(135deg,#e5807b,#d4564b); }
.avatar .pres { position: absolute; bottom: -1px; right: -1px; width: 32%; height: 32%; min-width: 9px; min-height: 9px; border-radius: 50%; border: 2px solid #fff; }
.pres.online { background: var(--ok); } .pres.busy { background: var(--warn); } .pres.off { background: #b8c0d0; }

/* =========================================================
   COMPONENTES
   ========================================================= */
.page-head { display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.page-head .titles h1 { font-size: 24px; display: flex; align-items: center; gap: 11px; }
.app[data-area]:not([data-area="brand"]) .page-head .titles h1::before {
  content:""; width:6px; height:26px; border-radius:6px; background: var(--mod-grad); flex:none;
}
.page-head .titles p { color: var(--text-2); margin-top: 2px; }
.page-head .actions { margin-left: auto; display: flex; gap: 10px; flex-wrap: wrap; }

.btn {
  display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px;
  border-radius: 11px; font-weight: 600; font-size: 13.5px; color: var(--text);
  background: var(--surface); border: 1px solid var(--line); transition: all .15s; white-space: nowrap;
}
.btn:hover { border-color: #cfd6e4; background: var(--surface-2); }
.btn svg { width: 17px; height: 17px; }
.btn-primary { background: var(--grad); color: #2a1b15; border: none; box-shadow: 0 6px 16px rgba(14,165,183,.28); }
.btn-primary:hover { filter: brightness(1.03); box-shadow: 0 8px 20px rgba(14,165,183,.38); background: var(--grad); }
.btn-dark { background: var(--navy); color: #fff; border: none; }
.btn-dark:hover { background: var(--navy-3); }
.btn-teal { background: var(--teal); color: #06302c; border: none; }
.btn-teal:hover { background: var(--teal-d); }
.btn-ghost { background: transparent; }
.btn-sm { height: 34px; padding: 0 12px; font-size: 12.5px; border-radius: 9px; }
.btn-icon { width: 34px; padding: 0; justify-content: center; }

.chip { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 13px; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); color: var(--text-2); font-size: 13px; font-weight: 500; }
.chip.active { background: var(--navy); color: #fff; border-color: var(--navy); }

.select, .field-input {
  height: 40px; padding: 0 12px; border-radius: 11px; border: 1px solid var(--line);
  background: var(--surface); color: var(--text); outline: none; transition: border-color .15s;
}
.select:focus, .field-input:focus { border-color: var(--rose); }
textarea.field-input { height: auto; padding: 10px 12px; resize: vertical; min-height: 80px; }

.toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.toolbar .search { width: 260px; height: 40px; }
.toolbar .spacer { flex: 1; }

/* Cards */
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.card-pad { padding: 18px 20px; }
.card-head { display: flex; align-items: center; gap: 10px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.card-head h3 { font-size: 15px; }
.card-head .actions { margin-left: auto; display: flex; gap: 8px; align-items: center; }

.grid { display: grid; gap: 18px; }
.g-2 { grid-template-columns: repeat(2,1fr); }
.g-3 { grid-template-columns: repeat(3,1fr); }
.g-4 { grid-template-columns: repeat(4,1fr); }
.g-12 { grid-template-columns: 2fr 1fr; }
.g-21 { grid-template-columns: 1fr 2fr; }
@media (max-width: 1100px){ .g-4{grid-template-columns:repeat(2,1fr);} .g-3{grid-template-columns:repeat(2,1fr);} .g-12,.g-21{grid-template-columns:1fr;} }
@media (max-width: 680px){ .g-2,.g-3,.g-4{grid-template-columns:1fr;} }

/* Stat card (KPI) */
.stat-card { position: relative; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow); }
.stat-card::before { content:""; position:absolute; left:0; top:0; right:0; height:4px; background: var(--mod-grad); opacity:.95; }
.stat-card .top { display: flex; align-items: center; justify-content: space-between; }
.stat-card .ico { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--mod-l); color: var(--mod-d); }
.stat-card .ico.teal { background: #d6f2ef; color: var(--teal-d); }
.stat-card .ico.navy { background: #e2e6f0; color: var(--navy); }
.stat-card .ico.gold { background: #faecd2; color: #c4862a; }
.stat-card .val { font-family: 'Poppins'; font-size: 26px; font-weight: 700; margin-top: 14px; }
.stat-card .lbl { color: var(--text-2); font-size: 13px; }
.stat-card .delta { font-size: 12px; font-weight: 600; margin-top: 8px; display: inline-flex; gap: 4px; align-items: center; }

/* Badges / status pills */
.badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 11px; border-radius: 20px; font-size: 12px; font-weight: 700; letter-spacing:.2px; color:#fff; white-space: nowrap; }
.badge.ptag { padding: 3px 10px; font-weight: 600; }
.badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.95); box-shadow: 0 0 6px rgba(255,255,255,.9); }
.b-ok     { background: linear-gradient(135deg,#22C55E,#0f9d58); box-shadow:0 2px 9px rgba(16,157,88,.38); }
.b-warn   { background: linear-gradient(135deg,#FFB020,#e07e00); box-shadow:0 2px 9px rgba(224,126,0,.38); }
.b-danger { background: linear-gradient(135deg,#FF5470,#e01e3c); box-shadow:0 2px 9px rgba(224,30,60,.40); }
.b-info   { background: linear-gradient(135deg,#4C8DFF,#2563eb); box-shadow:0 2px 9px rgba(37,99,235,.38); }
.b-rose   { background: linear-gradient(135deg,#FF6FA5,#e0417f); box-shadow:0 2px 9px rgba(224,65,127,.36); }
.b-teal   { background: linear-gradient(135deg,#2DD4BF,#0a9d89); box-shadow:0 2px 9px rgba(10,157,137,.36); }
.b-purple { background: linear-gradient(135deg,#A855F7,#6d3fe0); box-shadow:0 2px 9px rgba(109,63,224,.38); }
.b-gold   { background: linear-gradient(135deg,#F5C542,#d99a00); box-shadow:0 2px 9px rgba(217,154,0,.38); }
.b-mute   { background: #eef1f6; color: var(--slate); box-shadow:none; }
.b-mute::before { background: currentColor; box-shadow: none; }
/* quadrinho categórico (cor do módulo, via Palette.paint) */
.badge.ptag { box-shadow:none; font-weight:700; }
.badge.ptag::before { background: currentColor; box-shadow:none; opacity:.85; }
/* quadrinhos de KPI pintados pela área (via Palette.paint passo 3) */
.kpi-painted { border:1px solid transparent !important; box-shadow:0 2px 10px rgba(13,27,42,.07); transition:background .15s; }
.kpi-painted .clin-kpi-s, .kpi-painted .est-kpi-s, .kpi-painted .lead-kpi-p { opacity:.82; }
.kpi-solid { box-shadow:0 5px 16px rgba(13,27,42,.18); }
.kpi-solid .clin-blk-b, .kpi-solid .clin-blk-b span, .kpi-solid .clin-blk-b b { color:#fff !important; }
.kpi-solid .clin-blk-b span { opacity:.85; }

/* Tables */
.table-wrap { overflow-x: auto; }
table.tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tbl th { text-align: left; font-size: 11px; letter-spacing: .5px; text-transform: uppercase; color: var(--text-3); font-weight: 600; padding: 12px 16px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tbl td { padding: 13px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.tbl tbody tr { transition: background .12s; }
.tbl tbody tr:hover { background: var(--surface-2); }
.tbl tbody tr:last-child td { border-bottom: none; }
.cell-user { display: flex; align-items: center; gap: 10px; }
.cell-user b { font-weight: 600; }
.cell-user small { color: var(--text-3); display: block; }
.row-actions { display: flex; gap: 4px; }
.row-actions .icon-btn { width: 30px; height: 30px; border-radius: 8px; }

/* List rows */
.list-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.list-row:last-child { border-bottom: none; }
.list-row .grow { flex: 1; min-width: 0; }
.list-row b { font-weight: 600; }
.list-row small { color: var(--text-3); }

/* Progress */
.bar { height: 7px; background: #eef1f6; border-radius: 20px; overflow: hidden; }
.bar > span { display: block; height: 100%; background: var(--grad); border-radius: 20px; }
.bar.teal > span { background: var(--teal); }

/* =========================================================
   DASHBOARD ESPECÍFICO
   ========================================================= */
.welcome {
  position: relative; overflow: hidden; border-radius: 20px; color: #fff;
  background: var(--grad-navy); padding: 26px 28px; margin-bottom: 20px;
  border: 1px solid rgba(255,255,255,.05);
}
.welcome::after {
  content: ""; position: absolute; right: -60px; top: -60px; width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(14,165,183,.25), transparent 70%); pointer-events: none;
}
.welcome h1 { color: #fff; font-size: 26px; }
.welcome .quote { margin-top: 10px; color: #d9deeb; max-width: 760px; font-size: 14.5px; }
.welcome .verse { margin-top: 10px; display: inline-flex; align-items: flex-start; gap: 9px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); padding: 9px 14px; border-radius: 12px; color: #e7d3cb; font-size: 13.5px; font-style: italic; }
.welcome .verse b { color: var(--rose); font-style: normal; }

.spotlight { display: flex; gap: 22px; align-items: center; }
.spotlight .photo {
  --s: 116px; width: var(--s); height: var(--s); border-radius: 22px; flex: 0 0 auto;
  display: grid; place-items: center; font-size: 44px; font-weight: 800; color: #fff;
  box-shadow: 0 12px 30px rgba(0,0,0,.18); position: relative;
}
.spotlight .photo .crown { position: absolute; top: -14px; right: -10px; font-size: 26px; transform: rotate(18deg); }
.spotlight .info h3 { font-size: 19px; }
.spotlight .info .role { color: var(--text-2); font-size: 13px; }
.spotlight .info .tags { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }

/* Home em 2 colunas verticais */
.home-split { display: grid; grid-template-columns: 1.65fr 1fr; gap: 18px; align-items: start; }
.home-left { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.home-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.home-right { position: sticky; top: 84px; }
@media (max-width: 1100px){ .home-split { grid-template-columns: 1fr; } .home-right { position: static; } }
@media (max-width: 620px){ .home-2 { grid-template-columns: 1fr; } }

/* Cronograma de atividades */
.task { display: flex; align-items: flex-start; gap: 11px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.task:last-child { border-bottom: none; }
.task .check { width: 22px; height: 22px; border-radius: 7px; border: 2px solid #cbd2e0; flex: 0 0 auto; display: grid; place-items: center; cursor: pointer; transition: all .15s; margin-top: 1px; color: transparent; }
.task .check:hover { border-color: var(--teal); }
.task.done .check { background: var(--teal); border-color: var(--teal); color: #fff; }
.task .grow { flex: 1; min-width: 0; }
.task .grow b { font-weight: 600; font-size: 13.5px; display: block; }
.task.done .grow b { text-decoration: line-through; color: var(--text-3); }
.task .meta { font-size: 12px; color: var(--text-3); display: flex; gap: 8px; align-items: center; margin-top: 2px; }
.task .hr { font-weight: 700; color: var(--rose-d); font-size: 12.5px; min-width: 42px; }
.task.late { background: #fdf6f5; margin: 0 -12px; padding: 11px 12px; border-bottom: 1px solid #f6e3e1; border-radius: 8px; }
.task.late .hr, .task.late .meta { color: var(--danger); }
.task-done-pill { font-size: 11px; color: var(--teal-d); font-weight: 600; }

.online-list { display: flex; flex-direction: column; gap: 2px; }
.celebrate-item { display: flex; align-items: center; gap: 11px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.celebrate-item:last-child { border-bottom: none; }
.celebrate-item .when { margin-left: auto; font-size: 12px; font-weight: 600; color: var(--rose-d); }
.celebrate-item .when.years { color: var(--teal-d); }

/* Mini area chart */
.areachart { width: 100%; height: 200px; }
.donut-wrap { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.legend { display: flex; flex-direction: column; gap: 10px; }
.legend .li { display: flex; align-items: center; gap: 9px; font-size: 13px; }
.legend .li .sw { width: 11px; height: 11px; border-radius: 3px; }
.legend .li b { margin-left: auto; }
.barchart { display: flex; align-items: flex-end; gap: 10px; height: 150px; padding-top: 10px; }
.barchart .b { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.barchart .b i { width: 70%; max-width: 26px; border-radius: 7px 7px 3px 3px; background: var(--mod-grad); display: block; }
.barchart .b.alt i { background: linear-gradient(180deg,#6366F1,#4F46E5); }
.barchart .b span { font-size: 11px; color: var(--text-3); }

/* =========================================================
   KANBAN (Comercial)
   ========================================================= */
.kanban { display: flex; gap: 16px; overflow-x: auto; padding-bottom: 10px; }
.kcol { flex: 0 0 286px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 14px; display: flex; flex-direction: column; max-height: 72vh; }
.kcol-head { padding: 13px 15px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--line); position: sticky; top: 0; }
.kcol-head .dotc { width: 9px; height: 9px; border-radius: 50%; }
.kcol-head b { font-size: 13.5px; }
.kcol-head .count { margin-left: auto; font-size: 12px; color: var(--text-3); background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 1px 9px; }
.kcol-head .sum { display: block; width: 100%; font-size: 11.5px; color: var(--text-3); }
.kcards { padding: 12px; display: flex; flex-direction: column; gap: 10px; overflow-y: auto; }
.kcard { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 13px; box-shadow: var(--shadow); cursor: grab; transition: box-shadow .15s, transform .1s; }
.kcard:hover { box-shadow: var(--shadow-lg); transform: translateY(-1px); }
.kcard.drag { opacity: .5; }
.kcard .kval { font-family: 'Poppins'; font-weight: 700; color: var(--mod-d); }
.kcard .kmeta { display: flex; align-items: center; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.src-tag { font-size: 11px; padding: 2px 8px; border-radius: 20px; background: var(--surface-2); border: 1px solid var(--line); color: var(--text-2); }

/* =========================================================
   AGENDA
   ========================================================= */
.agenda-grid { display: grid; grid-template-columns: 64px repeat(var(--days,5), 1fr); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--surface); }
.agenda-grid .corner, .agenda-grid .dayhead { background: var(--surface-2); border-bottom: 1px solid var(--line); padding: 10px; text-align: center; font-size: 12px; font-weight: 600; }
.agenda-grid .dayhead b { display: block; font-size: 14px; }
.agenda-grid .hour { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); padding: 6px; font-size: 11px; color: var(--text-3); text-align: right; }
.agenda-grid .cell { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 56px; padding: 4px; position: relative; }
.appt { border-radius: 8px; padding: 6px 8px; font-size: 11.5px; color: #fff; margin-bottom: 4px; cursor: pointer; line-height: 1.25; }
.appt b { font-weight: 600; display: block; }
.appt.a1 { background: linear-gradient(135deg,#0EA5B7,#0B8391); color:#3a241c; }
.appt.a2 { background: linear-gradient(135deg,#6366F1,#4F46E5); }
.appt.a3 { background: linear-gradient(135deg,#6c7bd6,#4858b5); }
.appt.a4 { background: linear-gradient(135deg,#e8a13a,#d4862a); }
.appt.a5 { background: #eef1f6; color: var(--slate); border: 1px dashed #c3cad8; }

/* Tabs */
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 18px; flex-wrap: wrap; }
.tab { padding: 10px 16px; font-size: 13.5px; font-weight: 600; color: var(--text-2); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.tab:hover { color: var(--text); }
.tab.active { color: var(--rose-d); border-bottom-color: var(--rose-d); }

/* odontograma */
.odo { display: flex; flex-direction: column; gap: 6px; align-items: center; padding: 8px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; overflow-x: auto; }
.odo-arch { display: flex; gap: 3px; }
.odo-tooth { display: flex; flex-direction: column; align-items: center; cursor: pointer; padding: 2px; border-radius: 6px; }
.odo-tooth:hover { background: rgba(14,165,183,.18); }
.odo-tooth small { font-size: 9px; color: var(--text-3); margin-top: 1px; }

/* gravação inline (ao lado do microfone) */
.rec-pill { display: inline-flex; align-items: center; gap: 7px; background: #fbe4e2; color: var(--danger); border: 1px solid #f6c9c4; border-radius: 20px; padding: 5px 13px; font-size: 13px; font-weight: 600; }
.rec-pill b { font-variant-numeric: tabular-nums; }
.rec-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--danger); animation: recblink 1s infinite; }
@keyframes recblink { 0%,100%{opacity:1} 50%{opacity:.25} }
.rec-live { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: var(--teal-d, #4338CA); background: #e7f7f5; border: 1px solid #b7e7e1; border-radius: 14px; padding: 4px 11px; font-style: italic; }
.rec-live-off { color: var(--text-2); background: var(--surface-2); border-color: var(--line); font-style: normal; }

/* visualizador de imagem */
.imgview { background: #0f1424; border-radius: 12px; height: 56vh; display: grid; place-items: center; overflow: hidden; }
.imgview img { max-width: 100%; max-height: 100%; transition: transform .12s ease; transform-origin: center; }
.imgview-bar { display: flex; align-items: center; gap: 8px; margin-top: 12px; flex-wrap: wrap; }

/* galeria de mídia (fotos/raio-x/tomografia) */
.midia-integ { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.midia-bread { display: flex; align-items: center; gap: 10px; margin: 4px 0 10px; }
.midia-folders { display: grid; grid-template-columns: repeat(auto-fill,minmax(180px,1fr)); gap: 12px; }
.midia-folder { border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: var(--surface-2); position: relative; }
.midia-folder-ic { display: flex; align-items: center; gap: 6px; color: var(--rose-d); cursor: pointer; }
.midia-folder-count { background: var(--rose); color: #2a1b15; font-size: 10px; font-weight: 700; border-radius: 20px; padding: 1px 7px; }
.midia-folder-nm { display: block; font-size: 13px; margin-top: 6px; cursor: pointer; }
.midia-folder-act { display: flex; gap: 2px; margin-top: 6px; }
.midia-folder-act .icon-btn { width: 28px; height: 28px; }
.midia-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(180px,1fr)); gap: 12px; }
.midia-card { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--surface); position: relative; }
.midia-sel { position: absolute; top: 8px; left: 8px; z-index: 2; background: rgba(255,255,255,.9); border-radius: 6px; width: 24px; height: 24px; display: grid; place-items: center; }
.midia-thumb { aspect-ratio: 4/3; background: var(--surface-2); display: grid; place-items: center; color: var(--text-3); }
.midia-thumb img { width: 100%; height: 100%; object-fit: cover; }
.midia-meta { padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.midia-data { height: 32px; font-size: 12px; }
.midia-desc { height: 34px; font-size: 13px; }
.midia-del { position: absolute; top: 8px; right: 8px; background: rgba(255,255,255,.9); width: 28px; height: 28px; color: var(--danger); }

/* anamneses (pessoal e clínica) */
.anam-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.anam-head b { font-size: 16px; font-family: 'Poppins'; }
.anam-intro { margin-top: 8px; background: var(--rose-l); border: 1px solid #f0d9d1; border-radius: 10px; padding: 10px 14px; font-size: 13.5px; color: var(--text); }
.anam-q { margin: 12px 0; }
.anam-qt { font-weight: 600; font-size: 13.5px; margin-bottom: 6px; }
.anam-opts { display: flex; flex-wrap: wrap; gap: 7px; }
.anam-opt { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 20px; padding: 6px 14px; font-size: 13px; cursor: pointer; transition: all .12s; user-select: none; }
.anam-opt:hover { border-color: var(--rose); }
.anam-opt.on { background: var(--navy); color: #fff; border-color: var(--navy); }
.anam-sigs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 10px; }
@media (max-width: 620px){ .anam-sigs { grid-template-columns: 1fr; } }
.anam-sig-pad { height: 90px; border: 1px dashed #c3cad8; border-radius: 10px; display: grid; place-items: center; background: #fff; overflow: hidden; }
.anam-sig-pad img { max-height: 86px; }

/* busca de paciente (dashboard e abas) */
.pac-search { position: relative; width: 320px; max-width: 46vw; }
.pac-search .search { width: 100%; }
.pac-search-res { position: absolute; top: 46px; left: 0; right: 0; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg); z-index: 30; max-height: 340px; overflow: auto; display: none; }
.pac-search-res.show { display: block; }
.pac-search-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 12px; text-align: left; border-bottom: 1px solid var(--line); }
.pac-search-item:last-child { border-bottom: none; }
.pac-search-item:hover { background: var(--surface-2); }
.pac-search-item b { font-size: 13.5px; } .pac-search-item small { color: var(--text-3); display: block; }

/* ===== Workspace do Paciente (prontuário 360º) ===== */
.pac-ws { display: grid; grid-template-columns: 300px 1fr; gap: 16px; align-items: start; }
@media (max-width: 1040px){ .pac-ws { grid-template-columns: 1fr; } }
.pac-left { display: flex; flex-direction: column; gap: 12px; position: sticky; top: 80px; }
@media (max-width: 1040px){ .pac-left { position: static; } }
.pac-data { padding: 16px; }
.pac-contact { display: flex; align-items: center; gap: 8px; padding: 8px 0 12px; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.pac-contact span { font-size: 13.5px; font-weight: 600; color: var(--text); flex: 1; }
.pac-contact .icon-btn { width: 32px; height: 32px; border-radius: 9px; }
.pac-contact .wa { background: #25D366; color: #fff; }
.pac-contact .wa:hover { background: #1da851; color: #fff; }
.pac-contact .ph { background: var(--navy); color: #fff; }
.pac-contact .ph:hover { background: var(--navy-3); color: #fff; }
.pac-d { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--line); font-size: 13px; align-items: center; }
.pac-d span { color: var(--text-2); } .pac-d b { text-align: right; }
.pac-data .pac-d:last-child { border-bottom: none; }
.pac-alert { padding: 14px 16px; }
.pac-alert > b { display: flex; align-items: center; gap: 7px; margin-bottom: 4px; font-size: 13.5px; }
.pac-alert.saude { background: #fdf6f5; border-color: #f6e3e1; }
.pac-alert.saude .pac-d { border-bottom-color: #f6e3e1; }
.pac-brief { padding: 14px 16px; background: linear-gradient(135deg,#fff,#fbf3ef); }
.pac-brief > b { display: flex; align-items: center; gap: 7px; font-size: 13.5px; }
.pac-brief ul { margin: 8px 0 0 16px; } .pac-brief li { font-size: 13px; margin-bottom: 5px; }
.pac-main { display: flex; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--surface); box-shadow: var(--shadow); min-height: 62vh; }
.pac-tabs { width: 210px; border-right: 1px solid var(--line); padding: 8px; flex: 0 0 auto; display: flex; flex-direction: column; gap: 2px; overflow-y: auto; max-height: 80vh; }
.pac-tabs-toggle { align-self: flex-end; width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; color: var(--slate); }
.pac-tabs-toggle:hover { background: var(--surface-2); }
.pac-main.tabs-col .pac-tabs-toggle svg { transform: rotate(180deg); }
.pac-tab { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 9px; color: var(--text-2); font-size: 13px; font-weight: 500; text-align: left; width: 100%; }
.pac-tab:hover { background: var(--surface-2); color: var(--text); }
.pac-tab.active { background: var(--rose-l); color: var(--rose-d); font-weight: 600; }
.pac-tab svg { flex: 0 0 17px; }
.pac-tab-badge { margin-left: auto; background: var(--rose); color: #2a1b15; font-size: 10px; font-weight: 700; padding: 0 7px; border-radius: 20px; }
.pac-main.tabs-col .pac-tabs { width: 52px; }
.pac-main.tabs-col .pac-tab span, .pac-main.tabs-col .pac-tab-badge { display: none; }
.pac-main.tabs-col .pac-tab { justify-content: center; padding: 9px 0; }
.pac-content { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pac-content-head { display: flex; align-items: center; gap: 10px; padding: 13px 18px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: var(--surface); z-index: 1; }
.pac-content-head h3 { font-size: 16px; }
.pac-content-body { padding: 18px; }
@media (max-width: 720px){
  .pac-main { flex-direction: column; }
  .pac-tabs { width: auto !important; flex-direction: row; overflow-x: auto; max-height: none; border-right: none; border-bottom: 1px solid var(--line); }
  .pac-main.tabs-col .pac-tab span { display: inline; }
  .pac-tab { white-space: nowrap; }
}

/* Odontograma */
.odontograma { display: flex; flex-direction: column; gap: 16px; }
.arch { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.tooth { width: 34px; text-align: center; }
.tooth .t { width: 30px; height: 38px; border: 1.6px solid #cbd2e0; border-radius: 6px 6px 9px 9px; display: grid; place-items: center; font-size: 10px; color: var(--text-3); cursor: pointer; transition: all .12s; background:#fff;}
.tooth .t:hover { border-color: var(--rose); }
.tooth .t.done { background: #d6f2ef; border-color: var(--teal); color: var(--teal-d); }
.tooth .t.alert { background: #fbe4e2; border-color: var(--danger); color: var(--danger); }
.tooth .t.plan { background: #fbf0db; border-color: var(--warn); color: var(--warn); }
.tooth small { display: block; font-size: 10px; color: var(--text-3); margin-top: 3px; }

/* =========================================================
   CHAT / COMUNICAÇÃO
   ========================================================= */
.comm { display: grid; grid-template-columns: 300px 1fr; gap: 0; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--surface); height: 72vh; }
.comm-list { border-right: 1px solid var(--line); display: flex; flex-direction: column; overflow: hidden; }
.comm-list .head { padding: 14px; border-bottom: 1px solid var(--line); }
.comm-threads { overflow-y: auto; flex: 1; }
.thread { display: flex; gap: 11px; padding: 13px 14px; border-bottom: 1px solid var(--line); cursor: pointer; transition: background .12s; }
.thread:hover { background: var(--surface-2); }
.thread.active { background: var(--rose-l); }
.thread .grow { flex: 1; min-width: 0; }
.thread .grow .top { display: flex; justify-content: space-between; gap: 6px; }
.thread .grow b { font-size: 13.5px; }
.thread .grow .last { color: var(--text-3); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.thread .un { background: var(--teal); color: #06302c; font-size: 10px; font-weight: 700; border-radius: 20px; padding: 0 7px; height: 18px; display: grid; place-items: center; }
.comm-main { display: flex; flex-direction: column; }
.comm-main .head { padding: 13px 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 11px; }
.comm-main .head .ch { margin-left: auto; display: flex; gap: 6px; }
.comm-body { flex: 1; overflow-y: auto; padding: 20px; background: var(--surface-2); display: flex; flex-direction: column; gap: 10px; }
.msg { max-width: 70%; padding: 9px 13px; border-radius: 14px; font-size: 13.5px; box-shadow: var(--shadow); }
.msg.in { background: #fff; border-bottom-left-radius: 4px; align-self: flex-start; }
.msg.out { background: #def7f3; border-bottom-right-radius: 4px; align-self: flex-end; }
.msg .t { display: block; font-size: 10.5px; color: var(--text-3); margin-top: 4px; text-align: right; }
.comm-input { padding: 12px 16px; border-top: 1px solid var(--line); display: flex; gap: 10px; align-items: center; }
.comm-input .field-input { flex: 1; }

/* =========================================================
   MODAL
   ========================================================= */
.modal-back { position: fixed; inset: 0; z-index: 80; background: rgba(15,20,36,.55); backdrop-filter: blur(3px); display: grid; place-items: center; padding: 24px; animation: fade .15s; }
.modal { width: 100%; max-width: 560px; background: var(--surface); border-radius: 18px; box-shadow: var(--shadow-lg); overflow: hidden; animation: pop .2s ease; max-height: 90vh; display: flex; flex-direction: column; }
.modal.lg { max-width: 760px; }
@keyframes pop { from { transform: scale(.96) translateY(8px); opacity: 0; } to { transform: none; opacity: 1; } }
.modal-head { display: flex; align-items: center; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.modal-head h3 { font-size: 17px; }
.modal-head .x { margin-left: auto; }
.modal-body { padding: 22px; overflow-y: auto; }
.modal-foot { padding: 14px 22px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; background: var(--surface-2); }
.form-grid { display: grid; gap: 14px; }
.form-grid.two { grid-template-columns: 1fr 1fr; }
@media(max-width:560px){ .form-grid.two{grid-template-columns:1fr;} }
.fld label { display: block; font-size: 12.5px; font-weight: 600; color: var(--text-2); margin-bottom: 6px; }
.fld .field-input, .fld .select { width: 100%; }

/* Upload / import dropzone */
.dropzone { border: 2px dashed #cbd2e0; border-radius: 14px; padding: 30px; text-align: center; color: var(--text-2); background: var(--surface-2); transition: border-color .15s; }
.dropzone:hover { border-color: var(--rose); }
.dropzone .ic { width: 52px; height: 52px; border-radius: 14px; background: var(--rose-l); color: var(--rose-d); display: grid; place-items: center; margin: 0 auto 12px; }
.recon { margin-top: 18px; }

/* Audio recorder modal */
.recorder { text-align: center; padding: 12px 0; }
.rec-circle { width: 96px; height: 96px; border-radius: 50%; background: var(--grad); display: grid; place-items: center; margin: 0 auto 18px; color: #fff; box-shadow: 0 0 0 0 rgba(14,165,183,.5); animation: pulse 1.6s infinite; }
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(14,165,183,.5);} 70%{box-shadow:0 0 0 22px rgba(14,165,183,0);} 100%{box-shadow:0 0 0 0 rgba(14,165,183,0);} }
.wave { display: flex; align-items: center; justify-content: center; gap: 4px; height: 40px; margin: 14px 0; }
.wave i { width: 4px; background: var(--rose); border-radius: 4px; animation: wv 1s infinite ease-in-out; }
@keyframes wv { 0%,100%{height:8px;} 50%{height:34px;} }
.rec-time { font-family: 'Poppins'; font-size: 30px; font-weight: 700; }

/* Toasts */
.toasts { position: fixed; bottom: 24px; right: 24px; z-index: 120; display: flex; flex-direction: column; gap: 10px; }
.toast { display: flex; align-items: center; gap: 11px; background: var(--navy); color: #fff; padding: 13px 17px; border-radius: 13px; box-shadow: var(--shadow-lg); animation: slidein .25s ease; min-width: 240px; }
.toast .ic { width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; background: rgba(255,255,255,.12); flex: 0 0 auto; }
.toast.ok .ic { background: var(--ok); }
.toast.info .ic { background: var(--info); }
.toast b { font-size: 13.5px; } .toast span { font-size: 12px; color: #c4ccde; display: block; }
@keyframes slidein { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }

/* User menu dropdown */
.dropdown { position: absolute; top: 56px; right: 18px; z-index: 60; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lg); width: 250px; overflow: hidden; animation: fade .15s; }
.dropdown .dd-head { padding: 16px; display: flex; gap: 11px; align-items: center; border-bottom: 1px solid var(--line); }
.dropdown .dd-sec { padding: 8px; }
.dropdown .dd-label { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: var(--text-3); padding: 8px 10px 4px; }
.dd-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border-radius: 9px; font-size: 13.5px; text-align: left; color: var(--text); }
.dd-item:hover { background: var(--surface-2); }
.dd-item.active { color: var(--rose-d); font-weight: 600; }
.dd-item .ck { margin-left: auto; color: var(--rose-d); }

/* Integrations */
.integ { display: flex; align-items: center; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.integ .ic { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; color: #fff; font-weight: 700; flex: 0 0 auto; }
.integ .grow { flex: 1; }
.integ .grow b { font-size: 14px; } .integ .grow small { color: var(--text-3); }

/* Empty hint */
.hint { font-size: 12.5px; color: var(--text-3); display: flex; align-items: center; gap: 7px; }

/* =========================================================
   AGENDA (estilo Clinicorp)
   ========================================================= */
.ag-wrap { display: grid; grid-template-columns: 200px 1fr; gap: 14px; align-items: start; }
/* cabeçalho de agendas selecionadas (semana/mês) */
.ag-legend-bar { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.ag-legend-lbl { font-size: 11px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .5px; }
.ag-legend-item { font-size: 12px; font-weight: 600; padding: 4px 11px; border-radius: 20px; white-space: nowrap; }
.ag-rail { display: flex; flex-direction: column; gap: 12px; position: sticky; top: 80px; }
.ag-rail .card-pad { padding: 12px 14px; }
.ag-rail .mcal .dd { padding: 3px 0; font-size: 11px; }
.ag-rail .mcal .dn { padding: 2px 0; }
.ag-rail .mcal-head { margin-bottom: 4px; }
.ag-rail .leg-item { padding: 5px 0; }
.ag-rail .leg-item b { font-size: 12.5px; }
.ag-rail .prof-scroll { max-height: 168px; overflow-y: auto; }
.ag-rail .espera-scroll { max-height: 150px; overflow-y: auto; }
@media (max-width: 1040px){ .ag-wrap { grid-template-columns: 1fr; } .ag-rail { position: static; } }

.mcal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.mcal-head b { font-size: 13px; text-transform: capitalize; }
.mcal { display: grid; grid-template-columns: repeat(7,1fr); gap: 2px; }
.mcal .dn { text-align: center; font-size: 10px; color: var(--text-3); padding: 4px 0; font-weight: 700; }
.mcal .dd { text-align: center; font-size: 12px; padding: 6px 0; border-radius: 8px; cursor: pointer; position: relative; }
.mcal .dd:hover { background: var(--surface-2); }
.mcal .dd.out { color: #c3cad8; }
.mcal .dd.today { background: var(--navy); color: #fff; font-weight: 700; }
.mcal .dd.sel { background: var(--rose); color: #2a1b15; font-weight: 700; }
.mcal .dd.hol::after { content: ""; position: absolute; bottom: 3px; left: 50%; transform: translateX(-50%); width: 4px; height: 4px; border-radius: 50%; background: var(--danger); }
.mcal .dd.today.hol::after, .mcal .dd.sel.hol::after { background: #fff; }

.leg-item { display: flex; align-items: center; gap: 9px; padding: 7px 0; cursor: pointer; }
.leg-item .sw { width: 12px; height: 12px; border-radius: 4px; flex: 0 0 auto; }
.leg-item b { font-size: 13px; font-weight: 500; }
.leg-item.off { opacity: .4; }
.leg-item .eye { margin-left: auto; color: var(--text-3); }

.ag-main { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); }
.ag-toolbar { display: flex; align-items: center; gap: 8px; padding: 11px 14px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.ag-date { font-weight: 700; font-family: 'Poppins'; font-size: 15px; }
.ag-hol-banner { background: #fdf6f5; color: var(--danger); padding: 8px 16px; font-size: 13px; font-weight: 600; border-bottom: 1px solid #f6e3e1; display: flex; align-items: center; gap: 8px; }
.ag-scroll { overflow: auto; max-height: calc(100vh - 178px); }
.ag-grid-inner { display: grid; min-width: 520px; --slot-h: 24px; }
.ag-tcell { height: var(--slot-h); font-size: 10px; color: var(--text-3); text-align: right; padding-right: 8px; border-bottom: 1px dashed #eef1f6; box-sizing: border-box; line-height: var(--slot-h); border-right: 1px solid var(--line); }
.ag-colhead { position: sticky; top: 0; background: var(--surface-2); border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); padding: 6px 5px; text-align: center; font-size: 11px; font-weight: 600; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 6px; overflow: hidden; }
.ag-colhead small { font-size: 9.5px; }
.ag-appt { font-size: 10.5px; }
.ag-colhead .sw { width: 9px; height: 9px; border-radius: 50%; flex:0 0 auto; }
.ag-dots { display: flex; gap: 3px; justify-content: center; margin-top: 3px; flex-wrap: wrap; }
.ag-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.ag-tophead { position: sticky; top: 0; background: var(--surface-2); border-bottom: 1px solid var(--line); z-index: 2; }
.ag-col { border-left: 1px solid var(--line); position: relative; }
.ag-col .slot { height: var(--slot-h); border-bottom: 1px dashed #eef1f6; box-sizing: border-box; }
.ag-col .slot:hover { background: rgba(14,165,183,.06); }
.ag-appt { position: absolute; left: 3px; right: 3px; border-radius: 7px; padding: 4px 7px; color: #fff; font-size: 11px; overflow: hidden; cursor: pointer; box-shadow: 0 2px 6px rgba(0,0,0,.14); line-height: 1.25; }
.ag-appt b { display: block; font-weight: 600; font-size: 11px; }
.ag-appt small { opacity: .92; }
.ag-closed { padding: 50px 20px; text-align: center; color: var(--text-3); }
.ag-col .slot.indisp { background: repeating-linear-gradient(45deg,#e3e7ee,#e3e7ee 6px,#d4d9e2 6px,#d4d9e2 12px); cursor: not-allowed; }
.ag-col .slot.block { background: #fbe4e2; cursor: not-allowed; }
.ag-col .slot.indisp:hover, .ag-col .slot.block:hover { background-color: inherit; }
/* visão mês */
.ag-mgrid { display: grid; grid-template-columns: repeat(7,1fr); gap: 6px; }
.ag-mgrid.head { gap: 6px; margin-bottom: 6px; }
.ag-mdn { text-align: center; font-size: 11px; font-weight: 700; color: var(--text-3); padding: 4px 0; }
.ag-mcell { min-height: 96px; border: 1px solid var(--line); border-radius: 10px; padding: 7px; cursor: pointer; transition: border-color .12s, box-shadow .12s; background: var(--surface); overflow: hidden; }
.ag-mcell:hover { border-color: var(--rose); box-shadow: var(--shadow); }
.ag-mcell.out { background: var(--surface-2); border-style: dashed; cursor: default; }
.ag-mcell.today { border-color: var(--navy); box-shadow: inset 0 0 0 1px var(--navy); }
.ag-mcell-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.ag-mcell-top b { font-size: 13px; }
.ag-mcount { background: var(--rose); color: #2a1b15; font-size: 10px; font-weight: 700; border-radius: 20px; padding: 1px 7px; }
.ag-mfer { font-size: 10px; color: var(--danger); margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-mini-appt { font-size: 10px; border-radius: 5px; padding: 2px 6px; margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 720px){ .ag-mcell { min-height: 70px; } .ag-mini-appt { display: none; } }

/* =========================================================
   CONFIGURAÇÃO (forms, toggles, grids)
   ========================================================= */
.switch { position: relative; width: 42px; height: 24px; flex: 0 0 auto; display: inline-block; }
.switch input { display: none; }
.switch .sl { position: absolute; inset: 0; background: #cbd2e0; border-radius: 20px; transition: .2s; cursor: pointer; }
.switch .sl::before { content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%; background: #fff; top: 3px; left: 3px; transition: .2s; }
.switch input:checked + .sl { background: var(--teal); }
.switch input:checked + .sl::before { transform: translateX(18px); }

.radio-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.radio-pill { padding: 8px 18px; border: 1px solid var(--line); border-radius: 20px; cursor: pointer; font-size: 13px; font-weight: 600; color: var(--text-2); transition: all .12s; }
.radio-pill.on { background: var(--rose); color: #2a1b15; border-color: var(--rose); }

.cfg-card { max-width: 880px; }
.cfg-section-title { font-size: 13px; font-weight: 700; color: var(--text-2); text-transform: uppercase; letter-spacing: .5px; margin: 24px 0 12px; }
.func-row { display: grid; grid-template-columns: 160px 1fr 40px 1fr; gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line); }
.func-row .day { display: flex; align-items: center; gap: 10px; font-weight: 500; }
.func-row.off { opacity: .55; }
.func-row .ate { text-align: center; color: var(--text-3); font-size: 13px; }
@media (max-width: 640px){ .func-row { grid-template-columns: 1fr 1fr; } .func-row .ate { display: none; } }

.disp { overflow-x: auto; }
.disp-legend { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 12px; font-size: 12.5px; }
.disp-legend .it { display: flex; align-items: center; gap: 6px; }
.disp-legend .bx { width: 14px; height: 14px; border-radius: 4px; border: 1px solid var(--line); }
.disp-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 5px; min-width: 540px; }
.disp-col > b { display: block; text-align: center; font-size: 12px; padding: 6px 0; color: var(--text-2); }
.disp-slot { text-align: center; font-size: 11px; padding: 6px 0; border-radius: 6px; margin-bottom: 4px; cursor: pointer; background: #fff; border: 1px solid var(--line); transition: all .1s; }
.disp-slot:hover { border-color: var(--rose); }
.disp-slot.ind { background: #c2c9d6; color: #545b6b; border-color: #b3bbca; }
.disp-slot.cli { background: #f6d9d2; color: #b5654f; cursor: not-allowed; }

.swatches { display: flex; gap: 7px; flex-wrap: wrap; }
.swatch { width: 26px; height: 26px; border-radius: 7px; cursor: pointer; border: 2px solid transparent; }
.swatch.on { border-color: #1b2236; box-shadow: 0 0 0 2px #fff inset; }

.ajuste-cal { max-width: 360px; }
.ajuste-cal .dd.block { background: #fbe4e2; color: var(--danger); font-weight: 700; }
.chair-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.chair-dot { width: 16px; height: 16px; border-radius: 5px; flex: 0 0 auto; }

/* =========================================================
   MENU RECOLHÍVEL (desktop)
   ========================================================= */
.collapse-toggle { display: inline-grid; }
/* botão flutuante de recolher na borda da sidebar */
.sidebar-collapse { position: absolute; top: 76px; right: -13px; width: 26px; height: 26px; border-radius: 50%; background: #fff; border: 1px solid var(--line); box-shadow: 0 2px 8px rgba(16,24,40,.18); display: grid; place-items: center; color: var(--slate); z-index: 50; transition: transform .15s; }
.sidebar-collapse:hover { color: var(--rose-d); border-color: var(--rose); }
.app.nav-collapsed .sidebar-collapse svg { transform: rotate(180deg); }
@media (max-width: 980px){ .sidebar-collapse { display: none; } }

/* ===== Sub-menu lateral de abas do módulo ===== */
:root { --subnav-w: 214px; }
.subnav { position: fixed; top: 0; bottom: 0; left: var(--sidebar-w); width: var(--subnav-w); background: var(--surface); border-right: 1px solid var(--line); z-index: 38; display: none; flex-direction: column; transition: width .2s, left .25s; }
.app.has-subnav .subnav { display: flex; }
.app.has-subnav .topbar { left: calc(var(--sidebar-w) + var(--subnav-w)); }
.app.has-subnav .main { margin-left: calc(var(--sidebar-w) + var(--subnav-w)); }
.subnav-head { height: var(--topbar-h); display: flex; align-items: center; gap: 8px; padding: 0 14px; border-bottom: 1px solid var(--line); }
.subnav-head b { font-size: 14px; font-family: 'Poppins'; }
.subnav-head .icon-btn { margin-left: auto; }
.app.subnav-collapsed .subnav-head .icon-btn svg { transform: rotate(180deg); }
.subnav-list { padding: 10px; overflow-y: auto; flex: 1; }
.subnav-item { display: flex; align-items: center; gap: 11px; width: 100%; padding: 10px 12px; border-radius: 10px; color: var(--text-2); font-size: 13.5px; font-weight: 500; text-align: left; margin-bottom: 3px; }
.subnav-item:hover { background: var(--surface-2); color: var(--text); }
.subnav-item.active { background: var(--rose-l); color: var(--rose-d); font-weight: 600; }
.subnav-item svg { flex: 0 0 18px; }
.app.subnav-collapsed { --subnav-w: 56px; }
.app.subnav-collapsed .subnav-item span, .app.subnav-collapsed .subnav-head b { display: none; }
.app.subnav-collapsed .subnav-item { justify-content: center; padding: 10px 0; }
.app.subnav-collapsed .subnav-head { justify-content: center; padding: 0; }
/* abas fallback (horizontais) só no mobile */
@media (min-width: 981px){ .subtabs-fallback { display: none; } }
@media (max-width: 980px){
  .subnav { display: none !important; }
  .app.has-subnav .topbar { left: 0; }
  .app.has-subnav .main { margin-left: 0; }
}

/* ajuste de horário: dois painéis (calendário + horários) */
.ajuste-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 640px){ .ajuste-wrap { grid-template-columns: 1fr; } }
.ajuste-cal .dd.sel { background: var(--rose); color: #2a1b15; font-weight: 700; }
.ajuste-panel { border-left: 1px solid var(--line); padding-left: 20px; }
@media (max-width: 640px){ .ajuste-panel { border-left: none; padding-left: 0; border-top: 1px solid var(--line); padding-top: 16px; } }
.hslot { display: inline-flex; align-items: center; justify-content: center; padding: 7px 0; border: 1px solid var(--line); border-radius: 8px; font-size: 12.5px; cursor: pointer; transition: all .12s; }
.hslot:hover { border-color: var(--rose); }
.hslot.block { background: #fbe4e2; border-color: var(--danger); color: var(--danger); font-weight: 600; }
.hslots-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 12px; }

/* foto do usuário (upload) */
.photo-pick { cursor: pointer; position: relative; }
.photo-pick::after { content: "✎"; position: absolute; right: -2px; bottom: -2px; width: 22px; height: 22px; border-radius: 50%; background: var(--rose); color: #2a1b15; font-size: 12px; display: grid; place-items: center; border: 2px solid #fff; }
@media (min-width: 981px){
  .app.nav-collapsed { --sidebar-w: 76px; }
  .app.nav-collapsed .sidebar-head { justify-content: center; padding: 0; }
  .app.nav-collapsed .sidebar-head .wm { display: none; }
  .app.nav-collapsed .nav-group-label { text-align: center; padding: 14px 0 6px; font-size: 0; }
  .app.nav-collapsed .nav-item { justify-content: center; padding: 11px 0; }
  .app.nav-collapsed .nav-item span, .app.nav-collapsed .nav-badge { display: none; }
  .app.nav-collapsed .clinic-ctx { justify-content: center; margin: 12px 10px 0; padding: 10px 0; }
  .app.nav-collapsed .clinic-ctx .grow, .app.nav-collapsed .clinic-ctx .plan { display: none; }
}

/* =========================================================
   RESPONSIVO
   ========================================================= */
.backdrop { display: none; }
@media (max-width: 980px){
  .sidebar { transform: translateX(-100%); box-shadow: var(--shadow-lg); }
  .sidebar.open { transform: none; }
  .topbar { left: 0; }
  .main { margin-left: 0; }
  .menu-toggle { display: inline-grid; }
  .search { width: auto; }
  .backdrop.show { display: block; position: fixed; inset: 0; background: rgba(15,20,36,.4); z-index: 35; }
  .comm { grid-template-columns: 1fr; }
  .comm-list { display: none; }
}
@media (max-width: 560px){
  .view { padding: 18px 14px 50px; }
  .user-chip .meta { display: none; }
  .topbar .search { display: none; }
}

/* ===== Ficha Clínica / Documentos (consulta, próxima, documentos) ===== */
.ficha-choose { display:flex; gap:12px; flex-wrap:wrap; }
.ficha-choice { flex:1; min-width:200px; display:flex; flex-direction:column; gap:4px; align-items:flex-start; text-align:left; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); cursor:pointer; transition:.15s; }
.ficha-choice:hover { border-color:var(--rose); background:var(--surface-2); transform:translateY(-1px); }
.ficha-choice.extra:hover { border-color:var(--teal); }
.ficha-choice .fc-tt { font-weight:700; font-size:15px; color:var(--text); }
.ficha-choice .fc-sub { font-size:12px; color:var(--text-2); }
.ficha-item { border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:12px; background:var(--surface-2); }
.ficha-item-h { display:flex; align-items:center; gap:8px; margin-bottom:10px; font-size:13.5px; color:var(--rose-d); }
.ficha-prox { border:1px solid #f6c9c4; }
.seg { display:inline-flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.seg-b { padding:6px 14px; font-size:13px; background:var(--surface); border:none; cursor:pointer; color:var(--text-2); }
.seg-b.on { background:var(--rose); color:#fff; font-weight:600; }
.tbl-sm th, .tbl-sm td { font-size:12px; padding:9px 12px; vertical-align:middle; }
.tbl-sm .badge { font-size:11px; }

/* picker de documentos */
.doc-tipo-row { display:flex; flex-wrap:wrap; gap:7px; }
.doc-tipo-btn { background:var(--surface-2); }
.doc-picks { display:flex; flex-direction:column; gap:8px; }
.doc-pick { display:flex; align-items:center; gap:10px; padding:11px 13px; border:1px solid var(--line); border-radius:11px; cursor:pointer; }
.doc-pick:hover { border-color:var(--rose); background:var(--surface-2); }
.doc-pick input { accent-color:var(--rose); }
.doc-sign-row { display:flex; gap:8px; flex-wrap:wrap; }
.doc-sign { display:inline-flex; align-items:center; gap:6px; padding:9px 13px; border:1px dashed #c3cad8; border-radius:10px; background:var(--surface); cursor:pointer; font-size:13px; color:var(--text-2); }
.doc-sign.on { border-style:solid; border-color:var(--teal); color:var(--teal-d); background:#e7f7f5; font-weight:600; }

/* lista de documentos da aba */
.doc-list { display:flex; flex-direction:column; gap:8px; }
.doc-row { display:flex; align-items:center; gap:12px; padding:11px 13px; border:1px solid var(--line); border-radius:11px; cursor:pointer; background:var(--surface); }
.doc-row:hover { border-color:var(--rose); background:var(--surface-2); }
.doc-ic { width:38px; height:38px; flex:none; display:flex; align-items:center; justify-content:center; border-radius:9px; background:var(--surface-2); color:var(--rose-d); }

/* visualizador de documento finalizado */
.doc-final .doc-text { white-space:pre-wrap; font-family:'Poppins',Arial,sans-serif; font-size:13px; line-height:1.55; background:#fff; color:#1b2236; border:1px solid var(--line); border-radius:10px; padding:16px; max-height:340px; overflow:auto; }
.doc-ass-final { display:flex; gap:14px; margin-top:14px; }
.doc-sig-cell { flex:1; text-align:center; border-top:1px solid #c3cad8; padding-top:6px; }
.doc-sig-cell img { max-height:54px; max-width:100%; }
.doc-sig-cell small { display:block; font-size:11px; color:var(--text-2); margin-top:2px; }

/* ===== Administrativo — Próxima Consulta ===== */
.adm-kpis { display:flex; gap:12px; margin-bottom:8px; flex-wrap:wrap; }
.adm-kpis .stat-card { flex:1; min-width:160px; }
.adm-card { border:1px solid var(--line); border-radius:13px; padding:14px; margin-bottom:12px; background:var(--surface); }
.adm-card.feito { opacity:.72; }
.adm-card-h { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.adm-seq { width:26px; height:26px; flex:none; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--rose); color:#fff; font-weight:700; font-size:13px; }
.adm-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:6px 18px; }
.adm-f { display:flex; flex-direction:column; padding:5px 0; border-bottom:1px dashed var(--line); }
.adm-fl { font-size:11px; color:var(--text-2); text-transform:uppercase; letter-spacing:.3px; }
.adm-fv { font-size:13.5px; color:var(--text); font-weight:500; }
.adm-obs { margin-top:10px; padding:9px 12px; background:var(--surface-2); border-radius:9px; font-size:13px; }
.adm-acts { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
@media (max-width:680px){ .adm-grid { grid-template-columns:1fr; } }

/* ===== Ficha Clínica — histórico sem rolagem horizontal + espaçamento ===== */
.app.has-subnav .view { padding-left: 18px; padding-right: 20px; }
.pac-ws { gap: 12px; }
.pac-content-body { padding: 14px 16px; }
.ficha-hist { width:100%; table-layout:fixed; border-collapse:collapse; }
.ficha-hist th, .ficha-hist td { font-size:11.5px; padding:6px 7px; vertical-align:top; word-wrap:break-word; overflow-wrap:anywhere; }
.ficha-hist th:nth-child(1), .ficha-hist td:nth-child(1){ width:8%; }
.ficha-hist th:nth-child(2), .ficha-hist td:nth-child(2){ width:10%; }
.ficha-hist th:nth-child(3), .ficha-hist td:nth-child(3){ width:11%; }
.ficha-hist th:nth-child(4), .ficha-hist td:nth-child(4){ width:18%; }
.ficha-hist th:nth-child(5), .ficha-hist td:nth-child(5){ width:13%; }
.ficha-hist th:nth-child(6), .ficha-hist td:nth-child(6){ width:15%; }
.ficha-hist th:nth-child(7), .ficha-hist td:nth-child(7){ width:13%; }
.ficha-hist th:nth-child(8), .ficha-hist td:nth-child(8){ width:12%; }
.ficha-hist .badge { font-size:10px; }

/* ===== Orçamento ===== */
.orc-card { border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:10px; background:var(--surface); }
.orc-card-h { display:flex; align-items:center; gap:8px; }
.orc-card-h b { font-size:15px; }
.orc-card-acts { display:flex; gap:8px; flex-wrap:wrap; }
.orc-total { display:flex; align-items:center; gap:24px; margin-top:14px; padding:12px 14px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; }
.orc-total-v { font-size:18px; font-weight:700; color:var(--text); }
.orc-neg-res { margin-top:10px; padding:9px 12px; background:#e7f7f5; border:1px solid #b7e7e1; border-radius:9px; font-size:13px; }
.orc-proc-list { max-height:46vh; overflow:auto; }
.orc-esp-grp { margin-bottom:12px; }
.orc-esp-t { font-size:11px; text-transform:uppercase; letter-spacing:.4px; color:var(--rose-d); font-weight:700; margin-bottom:5px; }
.orc-proc-row { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; text-align:left; padding:9px 12px; border:1px solid var(--line); border-radius:9px; background:var(--surface); cursor:pointer; margin-bottom:5px; }
.orc-proc-row:hover { border-color:var(--rose); background:var(--surface-2); }
.orc-proc-row small { color:var(--text-2); white-space:nowrap; }
.orc-odo { display:flex; flex-direction:column; gap:5px; align-items:center; padding:10px; background:var(--surface-2); border:1px solid var(--line); border-radius:10px; margin-top:8px; overflow-x:auto; }
.orc-odo-row { display:flex; gap:4px; }
.odo-pick { min-width:30px; height:32px; padding:0 4px; border:1px solid var(--line); border-radius:7px; background:var(--surface); cursor:pointer; font-size:11.5px; font-variant-numeric:tabular-nums; }
.odo-pick:hover { border-color:var(--rose); }
.odo-pick.on { background:var(--rose); color:#fff; border-color:var(--rose); font-weight:700; }

/* ===== Financeiro — checkout ===== */
.fin-list { display:flex; flex-direction:column; gap:10px; }
.fin-row { display:flex; align-items:center; gap:14px; border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:var(--surface); flex-wrap:wrap; }
.fin-co { width:44px; height:44px; flex:none; border-radius:12px; cursor:pointer; border:2.5px solid var(--teal); background:linear-gradient(135deg,#22C55E,#0f9d58); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(99,102,241,.28); }
.fin-co:hover { filter:brightness(1.08); transform:translateY(-1px); }
.fin-co svg { stroke:currentColor; }
.fin-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:6px 16px; flex:1; min-width:340px; }
.fin-c { display:flex; flex-direction:column; }
.fin-l { font-size:10.5px; text-transform:uppercase; letter-spacing:.3px; color:var(--text-2); }
.fin-bar-wrap { width:150px; }
.fin-bar { height:8px; border-radius:6px; background:var(--surface-2); overflow:hidden; border:1px solid var(--line); }
.fin-bar span { display:block; height:100%; background:linear-gradient(90deg,#6366F1,#4338CA); }
@media (max-width:760px){ .fin-grid { grid-template-columns:repeat(2,1fr); } .fin-bar-wrap{ width:100%; } }

/* dinheiro — cédulas e moedas */
.cash-label { font-size:12px; color:var(--text-2); margin:8px 0 4px; font-weight:600; }
.cash-row { display:flex; flex-wrap:wrap; gap:8px; }
.cash-chip { display:flex; flex-direction:column; align-items:center; gap:4px; padding:6px; border:1px solid var(--line); border-radius:9px; background:var(--surface); }
.cash-chip .cash-v { font-size:12px; font-weight:700; padding:3px 8px; border-radius:5px; color:#1b3a2e; }
.cash-chip.nota .cash-v { background:#c8e6d0; min-width:54px; text-align:center; }
.cash-chip.moeda .cash-v { background:#f0e2c0; border-radius:50%; width:46px; height:46px; display:flex; align-items:center; justify-content:center; font-size:11px; }
.cash-q { width:56px; height:28px; text-align:center; border:1px solid var(--line); border-radius:6px; }
.cash-total { margin-top:10px; padding:9px 12px; background:#e7f7f5; border:1px solid #b7e7e1; border-radius:9px; font-size:13.5px; }

/* ===== Financeiro — expandido (parcelas) ===== */
.fin-row { cursor:pointer; }
.fin-chev { color:var(--text-2); transition:transform .2s; }
.fin-item .fin-exp { border:1px solid var(--line); border-top:none; border-radius:0 0 12px 12px; margin-top:-6px; padding:10px 12px 12px; background:var(--surface-2); }
.recibo-tag { cursor:pointer; font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:12px; background:#fde8e6; color:#c0392b; border:1px solid #f3c4bf; white-space:nowrap; }
.recibo-tag.on { background:#e4eefb; color:#1c63c9; border-color:#bcd6f5; }
.icon-btn.tem-anot { color:var(--teal-d); background:#e7f7f5; border-radius:8px; }

/* ===== Financeiro — barra de seleção (renegociar/cancelar) ===== */
.fin-selbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:8px 10px; background:var(--surface); border:1px solid var(--line); border-radius:10px; margin-bottom:8px; font-size:13px; }
.fin-sel-cb { width:17px; height:17px; accent-color:var(--rose); cursor:pointer; }

/* ===== Administrativo — filtros, totais, chips, slots ===== */
.adm-filtros { display:flex; flex-wrap:wrap; gap:12px; padding:12px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; margin-bottom:12px; }
.adm-fgrp { display:flex; flex-direction:column; gap:4px; }
.adm-fgrp > label { font-size:10.5px; text-transform:uppercase; letter-spacing:.3px; color:var(--text-2); font-weight:600; }
.adm-fgrp .field-input { height:34px; }
.adm-chips { display:flex; flex-wrap:wrap; gap:5px; max-width:340px; }
.adm-chip { font-size:12px; padding:5px 11px; border:1px solid var(--line); border-radius:14px; background:var(--surface); cursor:pointer; }
.adm-chip.on { background:var(--rose); color:#fff; border-color:var(--rose); font-weight:600; }
.adm-tots { display:grid; grid-template-columns:repeat(auto-fill,minmax(158px,1fr)); gap:10px; margin-bottom:14px; }
.adm-tot { min-width:0; padding:11px 14px; border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:0 1px 2px #0000000a; }
.adm-tot-v { font-size:21px; font-weight:800; font-family:'Poppins',sans-serif; color:var(--navy); line-height:1.1; }
.adm-tot-l { font-size:11px; color:var(--text-2); margin-top:3px; line-height:1.25; }
.adm-tot.warn { border-color:#f3d9ad; background:#fdf6ea; }
.adm-tot.danger { border-color:#f3c4bf; background:#fdecea; }
.adm-paclink { color:var(--rose-d); font-weight:600; cursor:pointer; text-decoration:underline; text-decoration-style:dotted; }
.adm-slots { display:flex; flex-wrap:wrap; gap:8px; }
.adm-slot { padding:8px 14px; border:1px solid var(--line); border-radius:9px; background:var(--surface); cursor:pointer; font-weight:600; font-variant-numeric:tabular-nums; }
.adm-slot:hover { border-color:var(--teal); background:#e7f7f5; color:var(--teal-d); }

/* ===== Config — novas abas ===== */
.int-list { display:flex; flex-direction:column; gap:6px; }
.int-row { display:flex; align-items:center; gap:10px; padding:8px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.int-row.on { border-color:var(--teal); background:#e7f7f5; }
.int-tog { width:30px; height:30px; border:none; background:transparent; cursor:pointer; color:var(--text-2); }
.int-row.on .int-tog { color:var(--teal-d); }
.mapa-agenda th, .mapa-agenda td { text-align:center; font-size:11px; }
.mapa-dot { display:inline-block; width:12px; height:12px; border-radius:50%; }
.doc-chk { display:flex; flex-wrap:wrap; gap:8px 16px; }
.doc-chk .chk { display:flex; align-items:center; gap:6px; font-size:13px; }
.banc-card { border:1px solid var(--line); border-radius:11px; margin-bottom:8px; background:var(--surface); }
.banc-h { display:flex; align-items:center; gap:8px; padding:11px 13px; cursor:pointer; }
.banc-h .fin-chev { color:var(--text-2); }
/* permissões */
.perm-list { display:flex; flex-direction:column; gap:12px; max-height:58vh; overflow:auto; }
.perm-mod { border:1px solid var(--line); border-radius:11px; padding:10px 12px; }
.perm-mod-h { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.perm-row { display:flex; align-items:center; gap:10px; padding:6px 8px; border-radius:8px; margin-bottom:4px; border-left:4px solid var(--line); }
.perm-row .seg-b { padding:4px 8px; font-size:11.5px; }
.perm-row.perm-nao { border-left-color:#e0524c; background:#fdecea; }
.perm-row.perm-ver { border-left-color:#e8a13a; background:#fdf6ea; }
.perm-row.perm-mov { border-left-color:#2fa36b; background:#e9f7ef; }
.badge.perm-nao { background:#fdecea; color:#c0392b; box-shadow:none; }
.badge.perm-ver { background:#fdf6ea; color:#9a6a16; box-shadow:none; }
.badge.perm-mov { background:#e9f7ef; color:#1f7a4d; box-shadow:none; }
.badge.perm-nao::before, .badge.perm-ver::before, .badge.perm-mov::before { background:currentColor; box-shadow:none; }

/* ===== Configuração — novos componentes (jun/2026) ===== */
.aba-titulo { text-transform: uppercase; font-style: italic; letter-spacing:.3px; }

/* Mapa de Agenda — M/T × Agenda/Escala ASB */
.mapa-agenda .mapa-co { vertical-align: middle; font-weight:700; background:var(--surface-2); }
.mapa-agenda .mapa-per { vertical-align: middle; font-weight:600; font-size:12px; background:var(--surface-2); white-space:nowrap; }
.mapa-agenda .mapa-sub { font-size:11px; color:var(--text-2); white-space:nowrap; }
.mapa-agenda .mapa-asb { color:#9a6a16; }
.mapa-agenda .mapa-asb-cell { color:var(--text-3); }

/* Validação de dados — multi alvo + cores */
.val-cor { display:inline-block; width:14px; height:14px; border-radius:50%; }
.val-alvos { display:flex; flex-wrap:wrap; gap:6px; }
.val-cores { display:flex; flex-wrap:wrap; gap:7px; }
.val-sw { width:26px; height:26px; border-radius:7px; border:2px solid transparent; cursor:pointer; padding:0; }
.val-sw.on { border-color:var(--navy); box-shadow:0 0 0 2px #fff inset; }
.val-tree { display:flex; flex-direction:column; gap:8px; max-height:320px; overflow:auto; border:1px solid var(--line); border-radius:10px; padding:10px; background:var(--surface-2); }
.val-mod-h { font-weight:700; font-size:13px; margin-bottom:4px; color:var(--navy); }
.val-abas { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:4px; }
.val-aba { display:inline-flex; align-items:center; gap:5px; font-size:12px; background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:4px 10px; cursor:pointer; }
.val-aba.on { background:#e6f7f5; border-color:var(--teal); color:#0d6e66; }

/* Procedimentos — quadro por sessão */
.proc-sess { border:1px solid var(--line); background:var(--surface-2); }
.proc-exec-row { display:flex; gap:8px; align-items:center; margin-bottom:6px; }
.proc-exec-row .field-input:first-child { max-width:220px; }
.proc-add-row { display:flex; gap:8px; align-items:center; margin-bottom:6px; }
.proc-grp-btns { display:flex; flex-wrap:wrap; gap:6px; }
.proc-grp-docs { margin-top:8px; display:flex; flex-direction:column; gap:6px; border:1px solid var(--line); border-radius:8px; padding:10px; background:var(--surface); }
.proc-sel-docs { margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; }
.chip-x { border:none; background:transparent; cursor:pointer; font-size:15px; line-height:1; color:var(--text-2); padding:0 2px; }

/* Documentos — grupo recolhível */
.doc-grp-head { display:flex; align-items:center; gap:8px; padding:12px 16px; cursor:pointer; background:var(--surface-2); }
.doc-grp-head:hover { background:#eef0f4; }

/* ===== Financeiro — Caixa (jun/2026) ===== */
.cx-filtros { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:14px; }
.cx-sec-lbl { font-size:12px; font-weight:700; color:var(--navy); margin:4px 0 6px; }
.cx-grid { display:flex; flex-wrap:wrap; gap:12px; }
.cx-cell { display:flex; flex-direction:column; align-items:center; gap:5px; width:88px; }
.cx-coin, .cx-note { display:block; }
.cx-qty { width:78px; text-align:center; padding:6px 4px; height:32px; }
.cx-card { margin-bottom:12px; }
.cx-head { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.cx-formas { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; }
.cx-fcell { background:var(--surface-2); border:1px solid var(--line); border-radius:10px; padding:8px 12px; }
.cx-fl { display:block; font-size:11px; color:var(--text-2); margin-bottom:2px; }
.cx-fv { font-weight:700; font-size:14px; }
.cx-mov { margin-top:10px; border-top:1px dashed var(--line); padding-top:8px; }
.cx-mov-row { display:flex; align-items:center; gap:10px; padding:5px 0; font-size:13px; }
.cx-mov-row span { font-weight:600; }
.cx-mov-row small { margin-left:2px; }
.cx-mov-row b { margin-left:auto; }
.cx-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; align-items:center; }
@media (max-width:760px){ .cx-filtros { grid-template-columns:1fr 1fr; } }

/* ===== Cores na taxonomia + item de validação ===== */
.tx-dot { display:inline-block; width:15px; height:15px; border-radius:50%; cursor:pointer; flex:none; border:1px solid #0002; }
.tx-chip { display:inline-flex; align-items:center; gap:8px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:5px 6px 5px 10px; font-size:13px; margin:0 6px 6px 0; }

/* ===== Próximas Consultas — rail com painéis (olho) ===== */
.admprox-wrap { display:grid; grid-template-columns:248px 1fr; gap:16px; align-items:start; }
.admprox-rail { display:flex; flex-direction:column; gap:14px; position:sticky; top:8px; }
.admprox-rail .prof-scroll { max-height:230px; overflow:auto; }
@media (max-width:900px){ .admprox-wrap { grid-template-columns:1fr; } .admprox-rail { position:static; flex-direction:row; flex-wrap:wrap; } .admprox-rail .card { flex:1; min-width:220px; } }

/* ===== Banner de pré-agendamento na Agenda + slots destacados ===== */
.ag-preag-banner { display:flex; align-items:center; gap:8px; background:#e6f7f5; color:#0d6e66; border:1px solid var(--teal); border-radius:10px; padding:9px 14px; margin:0 14px 10px; font-size:13px; }
.ag-col .slot.slot-pre { cursor:pointer; }
.ag-col .slot.slot-pre:hover { background:#6366F133; outline:1px dashed var(--teal); outline-offset:-1px; }

/* ===== Administrativo — observação inline (escrita/gravação) ===== */
.adm-obs { display:flex; flex-direction:column; gap:6px; }
.adm-obs textarea { resize:vertical; line-height:1.35; }
.adm-obs-acts { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }

/* ===== Tabelas de relatório full-width: palavras inteiras, colunas distribuídas ===== */
.table-wrap.tw-full { overflow-x:auto; border:1px solid var(--line); border-radius:12px; }
.tbl.tbl-fit { width:100%; table-layout:auto; font-size:12.5px; }
.tbl.tbl-fit th, .tbl.tbl-fit td { white-space:normal; word-break:normal; overflow-wrap:normal; vertical-align:middle; padding:9px 12px; }
.tbl.tbl-fit th { line-height:1.2; background:var(--surface-2); }
.tbl.tbl-fit td.nowrap, .tbl.tbl-fit .nowrap { white-space:nowrap; }
.tbl.tbl-fit tbody tr:nth-child(even) td { background:#fbfafc; }
.tbl.tbl-fit tbody tr:hover td { background:#f4ece7; }
/* ações compactas na linha do relatório */
.adm-rowacts { display:inline-flex; gap:5px; align-items:center; flex-wrap:nowrap; white-space:nowrap; }
.adm-rowacts .btn-sm { padding:0 10px; height:28px; font-size:11.5px; }
.adm-rowacts .icon-btn { width:28px; height:28px; }
.icon-btn.icon-btn-pri { background:var(--rose); color:#fff; border-color:var(--rose); }
.icon-btn.icon-btn-pri:hover { filter:brightness(.95); }

/* ===== Mapa de Agenda (semana / A4) ===== */
.mapa-a4 { background:#fff; border:1px solid var(--line); border-radius:10px; padding:14px; margin-top:14px; box-shadow:0 1px 3px #0000000d; }
.mapa-a4-head { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.mapa-agenda.mapa-fit { width:100%; table-layout:fixed; }
.mapa-agenda.mapa-fit th, .mapa-agenda.mapa-fit td { text-align:center; padding:4px 2px; font-size:12px; }
.mapa-agenda .mapa-co-h, .mapa-agenda .mapa-co { width:64px; text-align:left; }
.mapa-agenda .mapa-per-h, .mapa-agenda .mapa-per { width:52px; font-size:11px; color:var(--text-2); }
.mapa-agenda td.mapa-out, .mapa-agenda th.mapa-out { background:repeating-linear-gradient(45deg,#f6f7f9,#f6f7f9 4px,#eef0f3 4px,#eef0f3 8px); color:var(--text-3); }
.mapa-wk-tot { margin-top:8px; font-size:12px; color:var(--text-2); text-align:right; }

/* ===== Administrativo — quadro de filtro único + olho inline + cartões expansíveis ===== */
.adm-filterbox { margin-bottom:14px; }
.adm-fb-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px 14px; align-items:end; }
.adm-fb-item { min-width:0; }
.adm-fb-item label { display:block; font-size:11px; font-weight:700; color:var(--text-2); text-transform:uppercase; letter-spacing:.3px; margin-bottom:5px; }
.adm-fb-item .field-input, .adm-fb-item .seg { width:100%; }
.adm-fb-wide { grid-column:span 2; }
.adm-per { display:flex; gap:8px; }
.adm-per .field-input { flex:1 1 0; min-width:0; }
@media (max-width:560px){ .adm-fb-wide { grid-column:span 1; } }
/* Administrativo usa a largura total disponível (expande ao recolher os menus) */
.view:has(.adm-filterbox) { max-width:none; }
.view:has(.adm-filterbox) .cfg-card { max-width:none; }
/* faixa própria dos painéis com olho (embaixo), adapta à largura disponível */
.adm-fb-eyes { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; margin-top:12px; align-items:start; }
.adm-fb-eye { min-width:0; }
.adm-eye-scroll { display:flex; flex-direction:column; gap:2px; max-height:148px; overflow:auto; border:1px solid var(--line); border-radius:10px; padding:6px; background:var(--surface); }
.adm-eye-scroll .leg-item { padding:5px 8px; border-radius:7px; }
.adm-eye-scroll .leg-item b { font-size:12.5px; font-weight:600; }

.adm-rect { border:1px solid var(--line); border-radius:10px; margin-bottom:8px; background:var(--surface); overflow:hidden; }
.adm-rect-h { display:flex; align-items:center; gap:10px; padding:10px 14px; cursor:pointer; }
.adm-rect-h:hover { background:var(--surface-2); }
.adm-rect-h .adm-dh { min-width:78px; font-size:12px; line-height:1.15; }
.adm-rect-b { padding:6px 14px 14px; border-top:1px solid var(--line); background:var(--surface-2); }

/* ===== Administrativo — dashboard (um quadro por aba) ===== */
.adm-dash-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; }
.adm-dash-card { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:16px; cursor:pointer; transition:.12s; box-shadow:0 1px 3px #0000000a; }
.adm-dash-card { position:relative; overflow:hidden; }
.adm-dash-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--mod-grad); opacity:0; transition:.12s; }
.adm-dash-card:hover { border-color:var(--mod); transform:translateY(-1px); box-shadow:0 4px 12px #0000000f; }
.adm-dash-card:hover::before { opacity:1; }
.adm-dash-t { font-size:13px; font-weight:600; color:var(--text-2); margin-bottom:8px; min-height:32px; }
.adm-dash-v { font-size:28px; font-weight:800; font-family:'Poppins',sans-serif; color:var(--mod-d); }
.adm-dash-v.warn { color:#b5740f; } .adm-dash-v.danger { color:var(--danger); }

/* ===== Administrativo — Carta/Exame Médico + Prótese Protocolo ===== */
.form-grid.three { grid-template-columns:1fr 1fr 1fr; }
@media(max-width:820px){ .form-grid.three{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .form-grid.three{ grid-template-columns:1fr; } }
.field-input.ro { background:var(--surface-2); color:var(--text-2); }
.adm-file { display:flex; flex-wrap:wrap; align-items:center; gap:10px; justify-content:space-between; background:var(--surface-2); border:1px solid var(--line); border-radius:10px; padding:8px 12px; }
.adm-file-n { display:flex; align-items:center; gap:6px; font-size:13px; }
.adm-file-acts { display:flex; gap:6px; flex-wrap:wrap; }
.prot-bar { height:10px; border-radius:6px; background:var(--surface-2); border:1px solid var(--line); overflow:hidden; }
.prot-bar span { display:block; height:100%; background:linear-gradient(90deg,var(--teal),var(--rose)); }

/* ===== Respostas Automatizadas / Rápidas — emojis ===== */
.resp-emojis { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:6px; }
.resp-emoji { border:1px solid var(--line); background:var(--surface); border-radius:8px; width:32px; height:32px; font-size:16px; cursor:pointer; line-height:1; }
.resp-emoji:hover { background:var(--surface-2); }

/* ===== Novo Agendamento — combobox de busca + barra de horários ===== */
.ag-combo { position:relative; }
.ag-combo:not(:empty) { border:1px solid var(--line); border-radius:10px; margin-top:4px; max-height:190px; overflow:auto; background:var(--surface); box-shadow:0 6px 18px #0000001a; }
.ag-combo-i { padding:8px 12px; font-size:13px; cursor:pointer; border-bottom:1px solid var(--line); }
.ag-combo-i:last-child { border-bottom:none; }
.ag-combo-i:hover { background:var(--surface-2); }
.ag-combo-i.muted { cursor:default; color:var(--text-3); }
.ag-slotbar { display:flex; flex-wrap:wrap; gap:5px; background:#eef0f3; border:1px solid var(--line); border-radius:10px; padding:8px; }
.ag-slotcell { min-width:54px; height:30px; border-radius:7px; border:1px solid transparent; font-size:11.5px; font-weight:600; cursor:pointer; }
.ag-slotcell.ag-slot-free { background:#dcebfb; color:#1c4f86; border-color:#bcd9f5; }     /* azul claro: disponível */
.ag-slotcell.ag-slot-free:hover { background:#c7e0f8; }
.ag-slotcell.ag-slot-free.on { background:#2f7fc4; color:#fff; border-color:#2f7fc4; }
.ag-slotcell.ag-slot-occ { background:#0EA5B7; color:#5a3528; cursor:not-allowed; }          /* rose gold: preenchido */
.ag-slotcell.ag-slot-ind { background:#9aa3ad; color:#e8ebee; cursor:not-allowed; }          /* cinza escuro: indisponível */
.ag-slot-leg { display:flex; gap:14px; margin-top:6px; font-size:11px; color:var(--text-2); flex-wrap:wrap; }
.ag-slot-leg span { display:inline-flex; align-items:center; gap:5px; }
.ag-slot-leg i { width:13px; height:13px; border-radius:4px; display:inline-block; }
.ag-slot-leg i.ag-slot-free { background:#dcebfb; } .ag-slot-leg i.ag-slot-occ { background:#0EA5B7; } .ag-slot-leg i.ag-slot-ind { background:#9aa3ad; }

/* ===== Agenda — popup de visualização do agendamento (compacto) ===== */
.appt-head { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.appt-stdot { width:11px; height:11px; border-radius:50%; flex:none; }
.appt-stsel { width:auto; max-width:220px; height:32px; padding:0 26px 0 10px; font-weight:600; font-size:12.5px; }
.appt-alert { display:flex; align-items:flex-start; gap:6px; font-size:12px; border-radius:8px; padding:6px 9px; margin-bottom:6px; line-height:1.3; }
.appt-alert.danger { background:#fdecea; border:1px solid #f3c4bf; color:#b3261e; }
.appt-alert.warn { background:#fdf6ea; border:1px solid #f0dcab; color:#8a5a12; }
.appt-alert.ok { background:#eaf7ef; border:1px solid #c3e7d1; color:#1f7a4d; }
.appt-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 16px; margin-top:4px; }
.appt-row { display:flex; flex-direction:column; padding:4px 0; border-bottom:1px dashed var(--line); }
.appt-l { font-size:10px; color:var(--text-2); text-transform:uppercase; letter-spacing:.2px; }
.appt-v { font-size:12.5px; color:var(--text); font-weight:500; line-height:1.25; }
@media (max-width:760px){ .appt-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .appt-grid { grid-template-columns:1fr; } }

/* ===== Agenda — tempo de espera na lista de espera ===== */
.espera-tempo { display:inline-flex; align-items:center; gap:4px; margin-top:3px; font-size:11px; font-weight:600; color:#8a5a12; background:#fdf6ea; border:1px solid #f0dcab; border-radius:14px; padding:2px 8px; }

/* ===== Config — estrela de Procedimento Principal ===== */
.proc-star { color:#E8A93B; font-size:13px; line-height:1; }
.proc-princ-chk { display:inline-flex; align-items:center; gap:6px; padding:7px 10px; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); cursor:pointer; }

/* ===== Geral — toolbar de exportação + dashboard ===== */
.ger-toolbar { display:flex; justify-content:flex-end; gap:8px; margin-bottom:10px; }
.ger-dash { margin:6px 0 14px; }
.ger-bars { margin-top:10px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; padding:10px 12px; }
.ger-bars-t { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--text-2); margin-bottom:8px; }
.ger-bar-row { display:flex; align-items:center; gap:8px; margin:5px 0; }
.ger-bar-l { flex:0 0 180px; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ger-bar-track { flex:1 1 auto; height:9px; background:#e9ebf0; border-radius:6px; overflow:hidden; }
.ger-bar-fill { display:block; height:100%; border-radius:6px; }
.ger-bar-v { flex:0 0 34px; text-align:right; font-size:12px; font-weight:700; color:var(--text-1); }

/* ===== Campos numéricos sem setas + máscara de moeda ===== */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
input[type=number] { -moz-appearance:textfield; appearance:textfield; }
.money-mask { text-align:right; font-variant-numeric:tabular-nums; }

/* ===== Odontograma por quadrante (orçamento) ===== */
.orc-odo-quad { display:flex; flex-direction:column; gap:8px; margin-top:6px; }
.orc-quad-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.orc-quad { border:1px solid var(--line); border-radius:10px; padding:7px 9px; background:var(--surface-2); }
.orc-quad-l { font-size:10px; font-weight:700; color:var(--text-2); text-transform:uppercase; letter-spacing:.4px; margin-bottom:5px; }
.orc-quad-teeth { display:flex; flex-wrap:wrap; gap:4px; }

/* ===== Ícone $ do Financeiro por estado do checkout ===== */
/* estado do checkout: borda roxa + preenchimento vermelho/amarelo/verde (ícone branco) */
.fin-co-red    { background:linear-gradient(135deg,#FF5470,#e11d48); color:#fff; }
.fin-co-yellow { background:linear-gradient(135deg,#FFC24B,#E8930B); color:#fff; }
.fin-co-green  { background:linear-gradient(135deg,#22C55E,#0f9d58); color:#fff; }
.fin-co-red svg, .fin-co-yellow svg, .fin-co-green svg { stroke:#fff; }

/* ===== Quantidade de notas/moedas: campo com setas ↑/↓ nativas (Caixa, Checkout, Baixa) ===== */
.cx-qty::-webkit-outer-spin-button,
.cx-qty::-webkit-inner-spin-button { -webkit-appearance:auto !important; opacity:1 !important; margin:0; }
.cx-qty { -moz-appearance:auto !important; appearance:auto !important; text-align:center; }

/* ===== Comercial - Indicação: Raspadinha | Pix ===== */
.rasp-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; margin-top:4px; }
.rasp-card { border:1px solid var(--line); border-radius:14px; padding:14px; background:linear-gradient(135deg,#fff,var(--surface-2)); display:flex; flex-direction:column; gap:10px; }
.rasp-card.on { border-color:var(--teal); box-shadow:0 4px 14px rgba(99,102,241,.15); }
.rasp-top { display:flex; align-items:center; gap:10px; font-size:13px; }
.rasp-prize { text-align:center; font-weight:800; font-size:15px; padding:14px 8px; border-radius:10px; background:linear-gradient(135deg,#e7cf86,#cbb26a); color:#4a3a12; letter-spacing:.3px; }
.rasp-card.on .rasp-prize { background:linear-gradient(135deg,#C7D2FE,#6366F1); color:#0a3b37; }

/* ===== Comercial - Leads: quadros de KPI por origem ===== */
.lead-quadro { background:var(--surface-2); border:1px solid var(--line); border-radius:14px; padding:12px 14px; margin-bottom:12px; }
.lead-quadro-t { font-size:13px; font-weight:800; color:var(--navy); margin-bottom:10px; letter-spacing:.2px; }
.lead-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.lead-kpi { background:#fff; border:1px solid var(--line); border-left:4px solid var(--line); border-radius:11px; padding:10px 12px; }
.lead-kpi-v { font-size:24px; font-weight:800; line-height:1.05; color:var(--navy); }
.lead-kpi-l { font-size:11.5px; color:var(--text-2); margin-top:2px; font-weight:600; }
.lead-kpi-p { font-size:11px; color:var(--text-2); margin-top:3px; }
.lead-kpi.tot { border-left-color:var(--rose); }
.lead-kpi.ok { border-left-color:#2fae6a; } .lead-kpi.ok .lead-kpi-v { color:#2fae6a; }
.lead-kpi.teal { border-left-color:var(--teal); } .lead-kpi.teal .lead-kpi-v { color:var(--teal-d); }
.lead-kpi.danger { border-left-color:var(--danger); } .lead-kpi.danger .lead-kpi-v { color:var(--danger); }
/* card neon com degradê por origem (dashboard de leads) */
.lead-kpi.neon { border:none; color:#fff; box-shadow:0 4px 14px rgba(13,27,42,.14); }
.lead-kpi.neon .lead-kpi-v { color:#fff; }
.lead-kpi.neon .lead-kpi-l, .lead-kpi.neon .lead-kpi-p { color:rgba(255,255,255,.92); }
@media(max-width:760px){ .lead-kpis{ grid-template-columns:repeat(2,1fr); } }

/* ===== Módulos Comerciais — visual vibrante ===== */
.com-tag { display:inline-block; padding:3px 9px; border-radius:999px; font-size:11px; font-weight:700; color:#fff; line-height:1.5; white-space:nowrap; box-shadow:0 1px 2px rgba(0,0,0,.12); }
/* KPIs (adm-tot) vibrantes, ciclo de cores */
.com-mod .adm-tots { gap:10px; }
.com-mod .adm-tot { color:#fff; border:none; box-shadow:0 3px 10px rgba(0,0,0,.10); }
.com-mod .adm-tot .adm-tot-l { color:rgba(255,255,255,.92); }
.com-mod .adm-tot:nth-child(8n+1){ background:linear-gradient(135deg,#FF4D8D,#d62f6e); }
.com-mod .adm-tot:nth-child(8n+2){ background:linear-gradient(135deg,#7C5CFF,#5b3fd6); }
.com-mod .adm-tot:nth-child(8n+3){ background:linear-gradient(135deg,#00C2A8,#019e89); }
.com-mod .adm-tot:nth-child(8n+4){ background:linear-gradient(135deg,#FF9F1C,#e07e00); }
.com-mod .adm-tot:nth-child(8n+5){ background:linear-gradient(135deg,#3B82F6,#2563eb); }
.com-mod .adm-tot:nth-child(8n+6){ background:linear-gradient(135deg,#22C55E,#16a34a); }
.com-mod .adm-tot:nth-child(8n+7){ background:linear-gradient(135deg,#F43F5E,#e11d48); }
.com-mod .adm-tot:nth-child(8n+8){ background:linear-gradient(135deg,#A855F7,#9333ea); }
/* barras vibrantes */
.com-mod .ger-bar-row:nth-child(7n+1) .ger-bar-fill{ background:#FF4D8D !important; }
.com-mod .ger-bar-row:nth-child(7n+2) .ger-bar-fill{ background:#7C5CFF !important; }
.com-mod .ger-bar-row:nth-child(7n+3) .ger-bar-fill{ background:#00C2A8 !important; }
.com-mod .ger-bar-row:nth-child(7n+4) .ger-bar-fill{ background:#FF9F1C !important; }
.com-mod .ger-bar-row:nth-child(7n+5) .ger-bar-fill{ background:#3B82F6 !important; }
.com-mod .ger-bar-row:nth-child(7n+6) .ger-bar-fill{ background:#22C55E !important; }
.com-mod .ger-bar-row:nth-child(7n+0) .ger-bar-fill{ background:#A855F7 !important; }
/* KPIs de Leads (lead-kpi) preenchidos e vibrantes */
.com-mod .lead-quadro-t { color:var(--rose-d); }
.com-mod .lead-kpi.tot { background:linear-gradient(135deg,#FF4D8D,#d62f6e); border:none; color:#fff; }
.com-mod .lead-kpi.ok { background:linear-gradient(135deg,#22C55E,#16a34a); border:none; }
.com-mod .lead-kpi.teal { background:linear-gradient(135deg,#00C2A8,#019e89); border:none; }
.com-mod .lead-kpi.danger { background:linear-gradient(135deg,#F43F5E,#e11d48); border:none; }
.com-mod .lead-kpi.tot .lead-kpi-v, .com-mod .lead-kpi.ok .lead-kpi-v, .com-mod .lead-kpi.teal .lead-kpi-v, .com-mod .lead-kpi.danger .lead-kpi-v { color:#fff; }
.com-mod .lead-kpi.tot .lead-kpi-l, .com-mod .lead-kpi.ok .lead-kpi-l, .com-mod .lead-kpi.teal .lead-kpi-l, .com-mod .lead-kpi.danger .lead-kpi-l,
.com-mod .lead-kpi.tot .lead-kpi-p, .com-mod .lead-kpi.ok .lead-kpi-p, .com-mod .lead-kpi.teal .lead-kpi-p, .com-mod .lead-kpi.danger .lead-kpi-p { color:rgba(255,255,255,.92); }
/* origem/etapas no kanban e src-tag mais vivos */
.com-mod .src-tag { background:#7C5CFF; color:#fff; }

/* tons vibrantes extras p/ KPIs dos Leads (Foi Embora / Desmarcado) */
.com-mod .lead-kpi.purple { background:linear-gradient(135deg,#A855F7,#9333ea); border:none; }
.com-mod .lead-kpi.blue { background:linear-gradient(135deg,#3B82F6,#2563eb); border:none; }
.com-mod .lead-kpi.purple .lead-kpi-v, .com-mod .lead-kpi.blue .lead-kpi-v { color:#fff; }
.com-mod .lead-kpi.purple .lead-kpi-l, .com-mod .lead-kpi.blue .lead-kpi-l,
.com-mod .lead-kpi.purple .lead-kpi-p, .com-mod .lead-kpi.blue .lead-kpi-p { color:rgba(255,255,255,.92); }

/* destaque de status no Dashboard de Leads + cards clicáveis */
.lead-quadro-hl { border:2px solid var(--rose); background:linear-gradient(180deg,#fff,var(--surface-2)); }
.lead-kpi-click { cursor:pointer; transition:filter .12s, transform .12s; }
.lead-kpi-click:hover { filter:brightness(1.07); transform:translateY(-1px); }

/* ===== Tabelas de Leads: caber sem rolagem horizontal ===== */
.lead-tbl { table-layout:auto; width:100%; font-size:12px; }
.lead-tbl th, .lead-tbl td { white-space:normal; word-break:normal; overflow-wrap:anywhere; padding:9px 12px; vertical-align:middle; }
.lead-tbl td.nowrap, .lead-tbl .nowrap { white-space:nowrap; }
.lead-tbl .com-tag { white-space:nowrap; display:inline-block; margin:2px 3px 2px 0; }
.lead-tbl .adm-rowacts { gap:3px; }
.lead-tbl .adm-rowacts .icon-btn { width:26px; height:26px; }
.lead-tbl select.field-input { max-width:100%; }
.table-wrap:has(.lead-tbl) { overflow-x:auto; }

/* ===== Ranking de indicadores: linha expansível ===== */
.rank-row { cursor:pointer; }
.rank-row:hover td { background:var(--surface-2); }
.rank-chev { color:var(--rose-d); font-weight:700; margin-left:2px; }
.rank-sub td { background:var(--surface-2); }
.rank-leads { display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:2px 0; }
.rank-lead-chip { background:#fff; border:1px solid var(--line); border-radius:9px; padding:4px 9px; font-size:11px; }

/* ===== Raspadinha virtual: 8 círculos ===== */
.rasp-circles { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.rasp-circle { aspect-ratio:1/1; border-radius:50%; border:none; cursor:pointer; font-size:15px; font-weight:800; color:#6b5a1e;
  background:radial-gradient(circle at 35% 30%, #e7cf86, #cbb26a 70%, #b89a4e); box-shadow:inset 0 -3px 8px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.12);
  display:flex; align-items:center; justify-content:center; transition:transform .12s, background .2s; user-select:none; }
.rasp-circle:hover { transform:scale(1.04); }
.rasp-circle.on { background:radial-gradient(circle at 35% 30%, #C7D2FE, #6366F1 70%, #4338CA); color:#063e39; box-shadow:inset 0 -3px 8px rgba(0,0,0,.15), 0 3px 10px rgba(99,102,241,.3); cursor:default; }
@media(max-width:520px){ .rasp-circles{ grid-template-columns:repeat(4,1fr); gap:8px; } .rasp-circle{ font-size:12px; } }
.rasp-circle[disabled]{ cursor:not-allowed; opacity:.6; }
.rasp-welcome { background:linear-gradient(135deg,#fff4ec,#ffe9f1); border:1px solid #ffd7c7; border-radius:12px; padding:12px 14px; font-size:12.8px; line-height:1.5; color:#6b4a3a; margin-bottom:14px; }
.rasp-prize-box { text-align:center; padding:6px 4px; }
.rasp-prize-emoji { font-size:34px; line-height:1; margin-bottom:6px; }
.rasp-prize-msg { font-size:15px; font-weight:700; color:var(--teal-d); margin:4px 0; }
.rasp-aguard { background:#fde2e0; color:#c23b32; font-weight:800; border:1px solid #f3b6b1; }
.lead-disp-sel.disp-on { color:#16794f; font-weight:700; }
.lead-disp-sel.disp-off { color:#c23b32; font-weight:700; }
.pct-ok { color:#16794f; } .pct-pend { color:#b8860b; }
.cmv-tbl { table-layout:fixed; }
.cmv-tbl th, .cmv-tbl td { white-space:normal; word-break:break-word; vertical-align:middle; }
.cmv-tbl .ta-r { text-align:right; }
.cmv-tbl td.nowrap { white-space:nowrap; }
.est-card { border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:12px; background:linear-gradient(180deg,#fff,#fbf8f6); }
.est-card-h { display:flex; align-items:center; gap:8px; }
.est-card-h b { display:flex; align-items:center; gap:6px; }
.est-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px 14px; margin-top:10px; font-size:12.5px; }
.est-grid .est-l { display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); margin-bottom:2px; }
.est-acts { display:flex; gap:8px; margin-top:12px; }
.est-dent-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:8px; margin-top:6px; }
.est-dent-chk { display:flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:9px; padding:7px 10px; font-size:12.5px; cursor:pointer; background:var(--surface); }
.est-dent-chk.on { border-color:var(--rose); background:#fdf1ec; font-weight:600; }
@media(max-width:640px){ .est-grid { grid-template-columns:repeat(2,1fr); } }
.icon-btn-stop { color:#c23b32; } .icon-btn-stop:hover { background:#fde2e0; }
.icon-btn-play { color:#16794f; } .icon-btn-play:hover { background:#dcf3e8; }
.form-grid.three { display:grid; grid-template-columns:repeat(3,1fr); gap:10px 14px; }
@media(max-width:720px){ .form-grid.three { grid-template-columns:repeat(2,1fr); } }
.btn-xs { height:22px; padding:0 6px; font-size:11px; border-radius:6px; vertical-align:middle; margin-left:4px; }
.forn-sub { border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin-bottom:10px; background:var(--surface-2); }
.forn-sub-h { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.forn-atd { margin-bottom:8px; }
.fp-stmt td, .fp-stmt th { padding:7px 10px; }
.fp-stmt .fp-sec td { font-weight:700; background:var(--surface-2); }
.fp-stmt .fp-total td { font-weight:700; border-top:1.5px solid var(--line); background:#f7f5f3; }
.fp-stmt .fp-grand td { font-weight:800; background:#eaf7f0; color:#0f6b45; border-top:2px solid #7bcba6; }
.fp-neg { color:var(--danger); }
.fp-2col { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:900px){ .fp-2col { grid-template-columns:1fr; } }
.fin-quadros { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; align-items:start; }
.fin-quadro .fin-list { max-height:340px; overflow:auto; padding:4px 6px 8px; }
.fin-row { display:flex; align-items:center; gap:9px; padding:6px 8px; border-radius:8px; }
.fin-row:hover { background:var(--surface-2); }
.fin-dot { width:14px; height:14px; border-radius:50%; flex-shrink:0; box-shadow:inset 0 0 0 1px rgba(0,0,0,.12); }
.fin-nome { flex:1; font-size:12.8px; }
.fin-sw-grid { display:grid; grid-template-columns:repeat(10,1fr); gap:6px; margin-top:6px; }
.fin-sw { height:26px; border-radius:7px; border:2px solid transparent; cursor:pointer; }
.fin-sw.on { border-color:#0f1424; box-shadow:0 0 0 2px #fff inset; }
.dia-list { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.dia-quadro { border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow:hidden; }
.dia-quadro.exp { box-shadow:0 3px 12px rgba(15,20,36,.06); }
.dia-head { display:flex; align-items:center; gap:14px; padding:10px 14px; cursor:pointer; }
.dia-head:hover { background:var(--surface-2); }
.dia-data { display:flex; flex-direction:column; align-items:center; min-width:58px; line-height:1.05; }
.dia-num { font-size:26px; font-weight:800; color:var(--rose-d); }
.dia-mes { font-size:11px; color:var(--muted); text-transform:capitalize; }
.dia-chips { display:flex; gap:8px; flex-wrap:wrap; flex:1; }
.dia-chip { font-size:11.5px; padding:4px 9px; border-radius:8px; background:var(--surface-2); border:1px solid var(--line); font-weight:600; }
.dia-chip.c-ok { background:#e7f6ee; color:#16794f; border-color:#bfe6cf; }
.dia-chip.c-info { background:#e7f0fb; color:#1e5bb8; border-color:#c3d8f2; }
.dia-chip.c-warn { background:#fdf3e0; color:#a9750a; border-color:#f0d9a8; }
.dia-chip.c-danger { background:#fde2e0; color:#c23b32; border-color:#f3b6b1; }
.dia-chev { color:var(--muted); font-size:14px; }
.dia-body { border-top:1px solid var(--line); padding:8px 14px 12px; }
.bmx-wrap { overflow:auto; max-height:440px; border:1px solid var(--line); border-radius:10px; }
.bmx { border-collapse:separate; border-spacing:0; min-width:820px; margin:0; }
.bmx th, .bmx td { padding:7px 10px; border-bottom:1px solid var(--line); white-space:nowrap; background:var(--surface); font-size:12px; height:30px; }
/* linha dos meses (cabeçalho) e linha TOTAL ficam fixas no topo */
.bmx thead tr.bmx-hdr th { background:var(--surface-2); position:sticky; top:0; z-index:4; }
.bmx thead tr.bmx-total td { position:sticky; top:31px; z-index:4; font-weight:700; background:#f0ece9; }
/* colunas Dimensão e Budget fixas à esquerda */
.bmx .bmx-c1 { position:sticky; left:0; z-index:3; min-width:168px; max-width:168px; white-space:normal; box-shadow:1px 0 0 var(--line); }
.bmx .bmx-c2 { position:sticky; left:168px; z-index:3; min-width:118px; box-shadow:1px 0 0 var(--line); }
.bmx thead tr.bmx-hdr .bmx-c1, .bmx thead tr.bmx-hdr .bmx-c2 { z-index:6; background:var(--surface-2); }
.bmx thead tr.bmx-total .bmx-c1, .bmx thead tr.bmx-total .bmx-c2 { z-index:6; background:#f0ece9; }
.bmx-bud { width:112px; height:28px; font-size:11.5px; padding:2px 6px; border:1px solid var(--line); border-radius:6px; text-align:right; }
.bmx-mes-chips { display:flex; flex-wrap:wrap; gap:5px; }
.bmx-mchip { font-size:11px; padding:4px 9px; border-radius:7px; border:1px solid var(--line); background:var(--surface); cursor:pointer; font-weight:600; }
.bmx-mchip.on { background:var(--rose); color:#3a1a10; border-color:var(--rose); }
.fp-lucro { display:flex; align-items:center; gap:14px; border-radius:12px; padding:13px 18px; margin:12px 0; border:1px solid var(--line); }
.fp-lucro-l { font-weight:800; font-size:14px; }
.fp-lucro-v { font-size:22px; font-weight:800; margin-left:auto; }
.fp-lucro-p { font-size:12px; font-weight:600; opacity:.85; min-width:130px; text-align:right; }
.fp-lucro.lb { background:linear-gradient(135deg,#e7f6ee,#d7f0e3); color:#0f6b45; border-color:#a9e0c3; }
.fp-lucro.ll { background:linear-gradient(135deg,#e7f0fb,#d9e8fb); color:#1e5bb8; border-color:#bcd6f5; }
.fp-lucro.lf { background:linear-gradient(135deg,#fff3e0,#ffe9cf); color:#a9660a; border-color:#f2d8a8; }
.ccat-scroll { max-height:460px; overflow:auto; border:1px solid var(--line); border-radius:10px; }
.ccat-tbl th, .ccat-tbl td { background:var(--surface); }
.ccat-tbl thead .ccat-hdr th { position:sticky; top:0; z-index:3; background:var(--surface-2); }
.ccat-tbl thead .ccat-total td { position:sticky; top:32px; z-index:3; background:#f0ece9; font-weight:700; }
/* Fluxo de Caixa */
.flx-top { display:flex; gap:14px; align-items:flex-start; margin-top:6px; }
.flx-chart-wrap { flex:1; overflow-x:auto; border:1px solid var(--line); border-radius:12px; padding:8px 6px; background:var(--surface); }
.flx-sum { width:210px; flex-shrink:0; border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:var(--surface); }
.flx-sum-t { font-weight:800; font-size:15px; margin-bottom:8px; }
.flx-sum-r { display:flex; justify-content:space-between; align-items:baseline; padding:5px 0; font-size:12.5px; }
.flx-sum-r span { color:var(--muted); }
.flx-sum-s { border-top:1px solid var(--line); margin-top:4px; padding-top:8px; font-size:14px; }
.flx-legend { display:flex; flex-wrap:wrap; gap:14px; margin:10px 0 4px; font-size:11.5px; color:var(--muted); }
.flx-legend span { display:flex; align-items:center; gap:5px; }
.flx-legend i { width:12px; height:12px; border-radius:3px; display:inline-block; }
.flx-resumo { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; margin-top:8px; }
.flx-rcard { border:1px solid var(--line); border-radius:10px; padding:10px 12px; background:var(--surface); }
.flx-rcard-l { font-size:11px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); }
.flx-rcard-v { font-size:16px; font-weight:800; margin-top:3px; }
.pos { color:#16794f; } .neg { color:#c23b32; }
.flx-days { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
.flx-day { border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--surface); }
.flx-day.exp { box-shadow:0 3px 12px rgba(15,20,36,.06); }
.flx-day-h { display:flex; align-items:center; gap:14px; padding:10px 14px; cursor:pointer; }
.flx-day-h:hover { background:var(--surface-2); }
.flx-date { display:flex; flex-direction:column; align-items:center; min-width:46px; line-height:1.05; }
.flx-num { font-size:22px; font-weight:800; color:var(--ink); }
.flx-mes { font-size:10px; color:var(--muted); }
.flx-wd { font-weight:600; font-size:13px; min-width:120px; }
.flx-vals { display:flex; gap:22px; margin-left:auto; font-size:12.5px; }
.flx-vals span { color:var(--muted); }
.flx-body { border-top:1px solid var(--line); padding:10px 16px 14px; display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.flx-col-t { font-weight:700; font-size:13px; margin-bottom:6px; color:var(--muted); }
.flx-li { display:flex; align-items:baseline; gap:10px; padding:4px 0; font-size:12.5px; border-bottom:1px dashed var(--line); }
.flx-li-t { color:var(--muted); min-width:42px; font-variant-numeric:tabular-nums; }
.flx-li-d { flex:1; }
.flx-li-v { font-weight:600; }
.flx-li-tot { border-bottom:none; border-top:1.5px solid var(--line); margin-top:2px; font-weight:700; }
@media(max-width:820px){ .flx-top { flex-direction:column; } .flx-sum { width:100%; } .flx-body { grid-template-columns:1fr; } .flx-vals { gap:12px; flex-wrap:wrap; } }

/* ===== Financiamentos | Consórcios ===== */
.finci-quadro { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:14px 14px 6px; }
.finci-qhead { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.finci-tbl th, .finci-tbl td { vertical-align:middle; }
.finci-chip { display:inline-block; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:700; background:var(--surface-2); color:var(--text); }
.finci-chip.imovel { background:#e0edff; color:#1d4ed8; }
.finci-chip.veic { background:#e7f6ec; color:#15803d; }
.finci-chip.emp { background:#fdeede; color:#c2410c; }
.finci-chip.cons { background:#f3e8ff; color:#7e22ce; }
.finci-tit { display:inline-flex; align-items:center; gap:6px; font-weight:600; white-space:nowrap; }
.finci-tit i { width:9px; height:9px; border-radius:50%; display:inline-block; }
.finci-prog { display:flex; flex-direction:column; gap:4px; }
.finci-prog .finci-bar { height:7px; border-radius:999px; background:var(--surface-2); overflow:hidden; }
.finci-prog .finci-bar span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#3b82f6,#2563eb); }
.finci-prog small { color:var(--muted); font-size:11.5px; font-variant-numeric:tabular-nums; }
.finci-red { color:var(--danger,#dc2626); }
.finci-quit { display:inline-block; padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:700; background:#e7f6ec; color:#15803d; }

/* ===================================================================
   Identidade visual — ícones temáticos + cores vibrantes (v104)
   O colaborador se localiza pela cor e pelo ícone de cada aba.
   =================================================================== */
/* Ícones das abas laterais: leve cor e destaque neon no item ativo */
.subnav-item svg { transition: transform .15s ease, filter .15s ease; opacity:.92; }
.subnav-item:hover svg { transform: scale(1.14); opacity:1; }
.subnav-item.active { background:linear-gradient(135deg, var(--rose-l), #ffffff); box-shadow: inset 3px 0 0 var(--rose-d); }
.subnav-item.active svg { color:var(--rose-d); transform:scale(1.1); filter: drop-shadow(0 0 4px rgba(214,47,110,.4)); }

/* KPI cards com semântica vibrante (degradê) — vale para qualquer módulo */
.adm-tot { transition: transform .12s ease, box-shadow .12s ease; }
.adm-tot:hover { transform: translateY(-2px); box-shadow:0 8px 18px rgba(0,0,0,.10); }
.adm-tot.warn, .adm-tot.danger, .adm-tot.ok,
.adm-tot.info, .adm-tot.brand, .adm-tot.gold { border:none; color:#fff; box-shadow:0 3px 10px rgba(0,0,0,.10); }
.adm-tot.warn   { background:linear-gradient(135deg,#FF9F1C,#e07e00); }
.adm-tot.danger { background:linear-gradient(135deg,#FF4D6D,#d61f45); }
.adm-tot.ok     { background:linear-gradient(135deg,#22C55E,#0f9d58); }
.adm-tot.info   { background:linear-gradient(135deg,#3B82F6,#2563eb); }
.adm-tot.brand  { background:linear-gradient(135deg,#7C5CFF,#5b3fd6); }
.adm-tot.gold   { background:linear-gradient(135deg,#F5B301,#e08a00); }
.adm-tot.warn .adm-tot-v, .adm-tot.danger .adm-tot-v, .adm-tot.ok .adm-tot-v,
.adm-tot.info .adm-tot-v, .adm-tot.brand .adm-tot-v, .adm-tot.gold .adm-tot-v { color:#fff; }
.adm-tot.warn .adm-tot-l, .adm-tot.danger .adm-tot-l, .adm-tot.ok .adm-tot-l,
.adm-tot.info .adm-tot-l, .adm-tot.brand .adm-tot-l, .adm-tot.gold .adm-tot-l { color:rgba(255,255,255,.93); }

/* Chips de status/situação/motivo — paleta forte e reutilizável */
.st-chip { display:inline-flex; align-items:center; gap:5px; padding:3px 11px; border-radius:999px; font-size:11.5px; font-weight:700; letter-spacing:.2px; line-height:1.5; }
.st-chip::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 6px currentColor; }
.st-ok    { background:#e4f9ee; color:#0f9d58; }
.st-warn  { background:#fff2df; color:#c26a00; }
.st-danger{ background:#ffe4ea; color:#d61f45; }
.st-info  { background:#e6f0ff; color:#2563eb; }
.st-purple{ background:#efeaff; color:#6d3fe0; }
.st-teal  { background:#dbf7f2; color:#0a9d89; }
.st-neutral{ background:var(--surface-2); color:var(--text-2); }
.st-neutral::before { box-shadow:none; }

/* ===== Grupos recolhíveis do menu lateral ===== */
.nav-grp { margin-bottom: 2px; }
.nav-grp-caret { margin-left: auto; display: flex; opacity: .55; transition: transform .18s ease; }
.nav-grp-head .nav-badge { margin-left: auto; }
.nav-grp.open > .nav-grp-head .nav-grp-caret { transform: rotate(90deg); opacity: .9; }
.nav-grp-body { display: none; margin: 2px 0 5px 12px; padding-left: 9px; border-left: 1px solid rgba(255,255,255,.09); }
.nav-grp.open > .nav-grp-body { display: block; }
.nav-grp-body .nav-item { font-size: 13px; padding: 9px 12px; }
.nav-grp.open > .nav-grp-head { color: #fff; }
.nav-grp.open > .nav-grp-head svg { opacity: 1; }
@media (min-width: 981px){
  .app.nav-collapsed .nav-grp-caret { display: none; }
  .app.nav-collapsed .nav-grp-body { margin-left: 0; padding-left: 0; border-left: none; }
}

/* ===== Follow-up Mês — funil kanban ===== */
.kb-top { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:6px; }
.kb-receita { display:flex; align-items:center; gap:9px; background:linear-gradient(135deg,#0f9d58,#22C55E); color:#fff; border-radius:12px; padding:8px 14px; box-shadow:0 3px 10px rgba(16,157,88,.28); }
.kb-receita small { opacity:.9; font-size:11px; }
.kb-receita b { font-size:16px; font-family:'Poppins',sans-serif; }
.kb-top-r { display:flex; align-items:center; gap:10px; }
.kb-board { display:flex; gap:14px; overflow-x:auto; padding:4px 2px 12px; align-items:flex-start; }
.kb-col { flex:0 0 268px; width:268px; background:var(--surface-2); border:1px solid var(--line); border-radius:14px; padding:10px; }
.kb-col-goal { background:linear-gradient(180deg,#fff7ed,var(--surface-2)); border-color:#f5c69a; }
.kb-col-h { display:flex; align-items:center; gap:8px; margin-bottom:10px; padding:2px 4px; }
.kb-col-h b { font-size:12.5px; font-family:'Poppins',sans-serif; flex:1; line-height:1.25; }
.kb-count { background:var(--navy); color:#fff; border-radius:20px; font-size:11px; font-weight:700; min-width:22px; text-align:center; padding:1px 7px; }
.kb-col-b { display:flex; flex-direction:column; gap:10px; min-height:60px; }
.kb-empty { text-align:center; color:var(--muted); font-size:12px; padding:22px 6px; border:1px dashed var(--line); border-radius:10px; }
.kb-card { background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--slate); border-radius:12px; padding:10px 11px; box-shadow:0 1px 3px #0000000d; }
.kb-card-top { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:5px; }
.kb-val { font-weight:800; color:#0f9d58; font-size:12.5px; white-space:nowrap; }
.kb-name { display:block; font-weight:700; font-size:13.5px; color:var(--text); cursor:pointer; }
.kb-name:hover { color:var(--rose-d); }
.kb-sub { font-size:11px; color:var(--text-2); margin:2px 0 4px; }
.kb-tel { font-size:11.5px; color:var(--text-2); display:flex; align-items:center; gap:5px; margin-bottom:7px; }
.kb-acts { display:flex; align-items:center; gap:5px; }
.kb-acts .icon-btn:disabled { opacity:.35; pointer-events:none; }

/* ===== Follow-up Mês — avaliador/CRC coloridos + anotações ===== */
.kb-pessoas { display:flex; flex-wrap:wrap; gap:4px 10px; margin:1px 0 3px; }
.kb-pessoa { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:700; line-height:1.4; }
.kb-pessoa i { width:7px; height:7px; border-radius:50%; display:inline-block; box-shadow:0 0 5px currentColor; }
.kb-card .icon-btn { position:relative; }
.kb-notdot { position:absolute; top:-3px; right:-3px; background:var(--rose-d); color:#fff; font-size:8.5px; font-weight:700; min-width:14px; height:14px; border-radius:8px; display:flex; align-items:center; justify-content:center; padding:0 3px; }
.notalist { display:flex; flex-direction:column; gap:8px; }
.notacard { border:1px solid var(--line); border-left:3px solid var(--rose); border-radius:10px; padding:8px 10px; background:var(--surface); }
.notacard-h { display:flex; align-items:center; gap:6px; font-size:12px; margin-bottom:3px; }
.notacard-b { font-size:12.5px; color:var(--text); white-space:pre-wrap; }

/* ===== Meta | KPI's — barras + linha de evolução ===== */
.mbars { display:flex; flex-direction:column; gap:8px; }
.mbar { display:grid; grid-template-columns:170px 1fr 110px; align-items:center; gap:12px; }
.mbar-l { font-size:12.5px; font-weight:600; color:var(--text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mbar-t { height:12px; background:#eef1f6; border-radius:7px; overflow:hidden; }
.mbar-t span { display:block; height:100%; border-radius:7px; }
.mbar-v { font-size:12.5px; font-weight:800; text-align:right; font-variant-numeric:tabular-nums; }
@media(max-width:640px){ .mbar { grid-template-columns:110px 1fr 88px; gap:8px; } }
/* linha de evolução da meta */
.meta-item { padding:8px 0 6px; border-bottom:1px solid var(--line); }
.meta-item:last-child { border-bottom:none; }
.meta-item-h { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.meta-item-h b { font-size:14px; }
.meta-tags { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-left:auto; }
.mt { font-size:11px; font-weight:700; padding:2px 9px; border-radius:999px; color:#fff; }
.mt.blue { background:linear-gradient(135deg,#4C8DFF,#2563eb); } .mt.gold { background:linear-gradient(135deg,#F5C542,#d99a00); }
.mt.purple { background:linear-gradient(135deg,#A855F7,#6d3fe0); } .mt.green { background:linear-gradient(135deg,#22C55E,#0f9d58); }
.meta-line { padding:26px 8px 30px; }
.meta-track { position:relative; height:9px; background:#e6e9f0; border-radius:6px; }
.meta-fill { position:absolute; left:0; top:0; height:100%; border-radius:6px; background:linear-gradient(90deg,#60a5fa,#2563eb); box-shadow:0 0 10px rgba(37,99,235,.4); }
.meta-mk { position:absolute; top:50%; transform:translate(-50%,-50%); z-index:2; }
.meta-mk .dot { width:12px; height:12px; border-radius:50%; background:#fff; border:3px solid var(--slate); box-shadow:0 0 0 2px #fff; display:block; }
.meta-mk.mk-meta .dot { border-color:#d99a00; } .meta-mk.mk-super .dot { border-color:#6d3fe0; } .meta-mk.mk-mega .dot { border-color:#0f9d58; }
.meta-mk.mk-real .dot { width:15px; height:15px; background:#2563eb; border-color:#2563eb; box-shadow:0 0 0 2px #fff,0 0 8px rgba(37,99,235,.7); }
.meta-mk .lbl { position:absolute; top:15px; left:50%; transform:translateX(-50%); font-size:10px; font-weight:700; white-space:nowrap; text-align:center; color:var(--text-2); line-height:1.25; }
.meta-mk .lbl.up { top:auto; bottom:15px; }
.meta-mk.mk-real .lbl { color:#2563eb; font-size:11px; }
.meta-mk.mk-meta .lbl { color:#b8860b; } .meta-mk.mk-super .lbl { color:#6d3fe0; } .meta-mk.mk-mega .lbl { color:#0f9d58; }
/* avaliações google */
.gr-list { display:flex; flex-direction:column; gap:10px; }
.gr-item { border:1px solid var(--line); border-radius:10px; padding:10px 12px; }
.gr-h { display:flex; align-items:center; gap:8px; }
.gr-stars { color:#f5b301; letter-spacing:1px; }
.gr-txt { font-size:12.5px; color:var(--text); margin-top:4px; }
.gr-h .muted.tiny { margin-left:2px; }
/* KPI cards 2 linhas (total / mês) */
.gr-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:14px; }
.gr-kpi { border:1px solid var(--line); border-radius:14px; padding:12px 14px; background:linear-gradient(135deg,rgba(124,92,255,.06),rgba(34,197,94,.05)); }
.gr-kpi-l { display:block; font-size:11px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.gr-kpi-vals { display:flex; gap:16px; align-items:flex-end; }
.gr-kpi-vals span { display:flex; flex-direction:column; line-height:1.05; }
.gr-kpi-vals b { font-size:19px; font-weight:800; color:var(--text); }
.gr-kpi-vals small { font-size:9.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); margin-top:2px; }
.gr-kpi-m b { color:#7c5cff; }
.gr-answer { margin-top:8px; font-size:12px; background:rgba(34,197,94,.09); border-left:3px solid #22c55e; border-radius:0 8px 8px 0; padding:8px 10px; color:var(--text); }
.gr-answer svg { vertical-align:-2px; color:#22c55e; }
.gr-reply { margin-top:10px; border:1px dashed #7c5cff; border-radius:12px; padding:10px 12px; background:rgba(124,92,255,.05); }
.gr-reply-h { font-size:11.5px; font-weight:800; color:#7c5cff; margin-bottom:6px; display:flex; align-items:center; gap:6px; }
.gr-reply-h svg { color:#7c5cff; }
.gr-reply textarea.field-input { width:100%; font-size:12.5px; }
.gr-reply-acts { display:flex; justify-content:flex-end; gap:8px; margin-top:8px; }
@media(max-width:900px){ .gr-kpis { grid-template-columns:repeat(2,1fr); } }
/* Persona — seletor de base */
.pers-views { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.pers-pill { padding:8px 16px; border-radius:999px; border:1px solid var(--line); background:var(--surface); font-family:'Poppins',sans-serif; font-weight:700; font-size:12.5px; color:var(--text-2); cursor:pointer; transition:all .15s; }
.pers-pill:hover { border-color:#7c5cff; color:#7c5cff; }
.pers-pill.active { background:linear-gradient(135deg,#7c5cff,#a855f7); color:#fff; border-color:transparent; box-shadow:0 4px 12px rgba(124,92,255,.28); }
/* bairro → cidade em letra pequena/cinza (quadro de barras e tabela) */
.reg-cidade { display:block; font-size:10px; font-weight:500; color:#9aa3b2; line-height:1.1; margin-top:1px; }
.mbar-l:has(.reg-cidade){ display:block; }
/* sirene de alerta no agendamento */
.ag-appt { position:relative; }
.ag-siren { position:absolute; top:2px; right:2px; width:16px; height:16px; border-radius:50%; background:#ef4444; color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 0 0 2px rgba(239,68,68,.35); animation:sirenPulse 1.25s infinite; }
.ag-siren svg { width:11px; height:11px; }
@keyframes sirenPulse { 0%,100%{ box-shadow:0 0 0 2px rgba(239,68,68,.4);} 50%{ box-shadow:0 0 0 6px rgba(239,68,68,0);} }
.siren-btn svg { color:#ef4444; }
.siren-btn { animation:sirenPulse 1.25s infinite; border-radius:8px; }
/* Equipe | RH — cards de perfil comportamental */
.rh-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.rh-pcard b { font-size:13.5px; }
.disc-row { display:flex; align-items:center; gap:8px; margin-top:5px; }
.disc-k { font-weight:800; width:16px; text-align:center; font-size:13px; }
.disc-track { flex:1; height:9px; background:var(--surface-2); border-radius:6px; overflow:hidden; }
.disc-track span { display:block; height:100%; border-radius:6px; }
.disc-v { width:26px; text-align:right; font-size:12px; color:var(--text-2); }
.enea-num { width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg,#7c5cff,#a855f7); color:#fff; font-weight:800; font-size:18px; display:flex; align-items:center; justify-content:center; }
/* Ficha Cadastral (Equipe CLT) */
.ficha-head { display:flex; align-items:center; gap:10px; width:100%; padding:12px 14px; background:none; border:none; cursor:pointer; text-align:left; }
.ficha-head b { font-size:14px; color:var(--navy); }
.ficha-card.open .dq-chev { transform:rotate(90deg); }
.ficha-body { padding:4px 16px 16px; border-top:1px solid var(--line); }
.ficha-grp { margin-top:12px; }
.ficha-grp-t { font-family:'Poppins',sans-serif; font-weight:800; font-size:12.5px; color:#7c5cff; text-transform:uppercase; letter-spacing:.4px; margin-bottom:8px; }
.ficha-int .ficha-grp-t { color:#0e9f6e; }
.ficha-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px 16px; }
.ficha-f { display:flex; flex-direction:column; border-bottom:1px dashed var(--line); padding-bottom:4px; }
.ficha-l { font-size:10.5px; text-transform:uppercase; letter-spacing:.3px; color:var(--muted); }
.ficha-v { font-size:13px; color:var(--text); font-weight:600; }
.anexo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:8px; }
.anexo-item { display:flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:10px; padding:8px 10px; }
.anexo-item.on { border-color:#22c55e; background:rgba(34,197,94,.06); }
.anexo-t { flex:1; font-size:12px; }
.ficha-acts { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.rh-dot { width:9px; height:9px; border-radius:50%; flex:0 0 9px; }
.rh-dot.warn { background:var(--warn); } .rh-dot.info { background:#3b82f6; }
.bh-alerts { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px; }
@media(max-width:800px){ .bh-alerts { grid-template-columns:1fr; } }
.anexo-btns { display:flex; gap:2px; }
.mapa-agenda select.asb-cell { height:26px; font-size:10.5px; min-width:76px; max-width:110px; padding:0 2px; border-radius:6px; }
/* Histórico do colaborador */
.hist-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }
.hist-bloco { border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:var(--surface-2); }
.hist-bloco-t { font-family:'Poppins',sans-serif; font-weight:800; font-size:12.5px; color:var(--navy); margin-bottom:8px; }
.hist-line { display:flex; flex-direction:column; padding:6px 0; border-bottom:1px dashed var(--line); }
.hist-line:last-child { border-bottom:none; }
.hist-val { font-weight:700; font-size:13px; color:var(--text); }
.hist-per { font-size:11.5px; color:var(--muted); }

/* ===== KPI matriz mês-a-mês ===== */
.kpi-toolbar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:12px; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:10px 14px; }
.kpi-yf { display:flex; align-items:center; gap:8px; }
.kpi-yf label { font-size:12px; font-weight:700; color:var(--text-2); }
.kpi-switch { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:10px; }
.kpi-chip { padding:6px 13px; border-radius:999px; border:1px solid var(--line); background:var(--surface); font-size:12.5px; font-weight:600; color:var(--text-2); }
.kpi-chip:hover { border-color:var(--rose); color:var(--text); }
.kpi-chip.active { background:linear-gradient(135deg,#7C5CFF,#5b3fd6); color:#fff; border-color:transparent; box-shadow:0 3px 9px rgba(109,63,224,.32); }
.kpi-chip.inat { opacity:.6; } .kpi-chip.inat small { font-weight:500; }
.kpi-dimtit { font-size:13.5px; margin:4px 0 10px; color:var(--text-2); }
.kpi-dimtit b { color:var(--text); font-family:'Poppins',sans-serif; }
.kpi-modo { display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; color:var(--text-2); margin-bottom:12px; }
.kpimx-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:10px; }
.kpimx { min-width:100%; border-collapse:separate; border-spacing:0; white-space:nowrap; }
.kpimx th, .kpimx td { padding:8px 12px; border-bottom:1px solid var(--line); font-size:12.5px; }
.kpimx thead th { background:var(--surface-2); font-weight:700; position:sticky; top:0; z-index:2; }
.kpimx .kpimx-c1 { position:sticky; left:0; background:var(--surface); font-weight:700; z-index:1; border-right:1px solid var(--line); }
.kpimx thead th.kpimx-c1 { z-index:3; background:var(--surface-2); }
.kpimx tbody tr:hover td { background:#f7f8fc; }
.kpimx tbody tr:hover td.kpimx-c1 { background:#f0f2f8; }
.kpimx-strong { font-weight:800; color:var(--navy); }
.kpimx-fut td { color:var(--muted); background:#fbfbfd; }
.kpimx-inat .kpimx-c1 { color:var(--muted); font-style:italic; }
.kpimx-tot td { background:linear-gradient(90deg,#eef1ff,#f6f0ff); font-weight:800; border-top:none; border-bottom:2px solid var(--line); }
.kpimx-tot .kpimx-c1 { background:linear-gradient(90deg,#e6e9ff,#efe6ff); }
.kpimx .money-mask { text-align:right; font-size:12px; }

/* KPI matriz — quando os DOIS menus (módulo + aba) estão recolhidos, ajustar à janela (sem rolagem horizontal) */
@media (min-width: 981px){
  .app.nav-collapsed.subnav-collapsed .kpimx-wrap { overflow-x: hidden; }
  .app.nav-collapsed.subnav-collapsed .kpimx { width: 100%; table-layout: fixed; }
  .app.nav-collapsed.subnav-collapsed .kpimx th,
  .app.nav-collapsed.subnav-collapsed .kpimx td { white-space: normal; word-break: break-word; font-size: 11px; padding: 6px 5px; }
  .app.nav-collapsed.subnav-collapsed .kpimx .kpimx-c1 { width: 76px; }
  .app.nav-collapsed.subnav-collapsed .kpimx .money-mask { width: 100% !important; font-size: 10.5px; padding-left: 4px; padding-right: 4px; }
  /* quadros largos (Oportunidade | Aprovado) mantêm rolagem horizontal, sem espremer */
  .app.nav-collapsed.subnav-collapsed .kpimx-wrap.kpimx-scroll { overflow-x: auto; }
  .app.nav-collapsed.subnav-collapsed .kpimx-wrap.kpimx-scroll .kpimx { width: auto; table-layout: auto; }
  .app.nav-collapsed.subnav-collapsed .kpimx-wrap.kpimx-scroll .kpimx th,
  .app.nav-collapsed.subnav-collapsed .kpimx-wrap.kpimx-scroll .kpimx td { white-space: nowrap; word-break: normal; font-size: 12.5px; padding: 8px 12px; }
}

/* Meta | KPI's — quadros ocupam toda a largura disponível (sem faixa branca à direita) */
.comMeta-mod .cfg-card { max-width: none; }
.app.has-subnav .view:has(.comMeta-mod) { max-width: none; }
/* Equipe | RH — quadros ocupam toda a largura da página */
.rh-mod .cfg-card { max-width: none; }
.app.has-subnav .view:has(.rh-mod) { max-width: none; }
.view:has(.rh-mod) { max-width: none; }

/* ===== Dashboards comerciais — quadros recolhíveis + mini-cards ===== */
.dq { border:1px solid var(--line); border-radius:14px; background:var(--surface); margin-bottom:10px; overflow:hidden; }
.dq-h { display:flex; align-items:center; gap:10px; width:100%; padding:13px 16px; text-align:left; background:linear-gradient(90deg,#f7f8fc,var(--surface)); font-family:'Poppins',sans-serif; font-weight:700; font-size:14px; color:var(--navy); }
.dq-h:hover { background:linear-gradient(90deg,#eef1ff,var(--surface)); }
.dq-t { flex:1; }
.dq-chev { display:flex; opacity:.55; transition:transform .18s ease; }
.dq.open .dq-chev { transform:rotate(90deg); opacity:.9; }
.dq-b { padding:12px 16px 16px; border-top:1px solid var(--line); }
.dq-row { display:flex; align-items:flex-start; gap:12px; padding:8px 0; border-bottom:1px dashed var(--line); }
.dq-row:last-child { border-bottom:none; }
.dq-row-l { flex:0 0 150px; font-weight:700; font-size:12.5px; color:var(--text-2); padding-top:14px; }
.dmc-grid { display:flex; flex-wrap:nowrap; gap:10px; flex:1; min-width:0; overflow-x:auto; padding-bottom:4px; }
.dmc { flex:1 0 148px; min-width:148px; border:none; border-radius:12px; padding:11px 13px; color:#fff; background:linear-gradient(140deg,#94A3B8,#64748b); display:flex; flex-direction:column; gap:2px; box-shadow:0 4px 12px rgba(13,27,42,.16); }
.dmc-l { font-size:11px; font-weight:700; color:rgba(255,255,255,.9); text-transform:uppercase; letter-spacing:.3px; }
.dmc-n { font-size:20px; font-weight:800; font-family:'Poppins',sans-serif; color:#fff; line-height:1.1; }
.dmc-s { font-size:11px; color:rgba(255,255,255,.82); font-variant-numeric:tabular-nums; }
.dmc.t-info   { background:linear-gradient(140deg,#4C8DFF,#2563eb); }
.dmc.t-warn   { background:linear-gradient(140deg,#FFB020,#e07e00); }
.dmc.t-ok     { background:linear-gradient(140deg,#22C55E,#0f9d58); }
.dmc.t-gold   { background:linear-gradient(140deg,#F5C542,#d99a00); }
.dmc.t-danger { background:linear-gradient(140deg,#FF5470,#e11d48); }
.dmc.t-purple { background:linear-gradient(140deg,#A855F7,#7c3aed); }
.dmc.t-teal   { background:linear-gradient(140deg,#2DD4BF,#0a9d89); }
.dmc.t-neutral{ background:linear-gradient(140deg,#94A3B8,#64748b); }
@media(max-width:640px){ .dq-row { flex-direction:column; gap:6px; } .dq-row-l { padding-top:0; } .dmc { min-width:130px; flex:0 0 auto; } }

/* play/stop com preenchimento (Cadência / Leads Indicação) */
.icon-btn-play svg path, .icon-btn-play svg rect, .icon-btn-stop svg path, .icon-btn-stop svg rect { fill:currentColor; stroke:none; }

/* Dentistas | Pagamento — telas Dentista/Mês a Mês */
.dpg-table td.dpg-lbl,.dpg-table th:first-child{ text-align:left; font-weight:600; white-space:nowrap; position:sticky; left:0; background:var(--card,#fff); z-index:1; }
.dpg-table thead th{ white-space:nowrap; }
.dpg-table tr.dpg-tot td{ border-bottom:2px solid var(--line,#e5e7eb); background:var(--brand-50,#eef1ff); }
.dpg-nao{ color:var(--danger,#e2574c); font-size:11px; font-style:italic; white-space:nowrap; }

/* ============ Comunicação (Atendimento · Chat · Demanda) ============ */
.comm-mod .comm{ display:grid; grid-template-columns:320px 1fr; gap:0; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--card); height:calc(100vh - 220px); min-height:460px; }
.comm-mod .comm-list{ border-right:1px solid var(--line); display:flex; flex-direction:column; overflow:hidden; background:var(--surface-1,#fafbff); }
.comm-mod .comm-list .head{ padding:10px; border-bottom:1px solid var(--line); display:flex; gap:8px; }
.comm-mod .comm-threads{ overflow-y:auto; flex:1; }
.comm-mod .thread{ display:flex; gap:10px; padding:10px 12px; cursor:pointer; border-bottom:1px solid var(--line); align-items:flex-start; }
.comm-mod .thread:hover{ background:var(--surface-2); }
.comm-mod .thread.active{ background:var(--brand-50,#eef1ff); }
.comm-mod .thread .top{ display:flex; justify-content:space-between; gap:8px; }
.comm-mod .thread-last{ display:flex; align-items:center; gap:6px; }
.comm-mod .thread .last{ font-size:12.5px; color:var(--text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:190px; }
.comm-mod .thread .un{ margin-left:auto; background:var(--brand,#6c7bd6); color:#fff; border-radius:10px; font-size:11px; padding:1px 7px; font-weight:700; }
.comm-mod .thread-tags{ display:flex; gap:4px; margin-top:3px; flex-wrap:wrap; }
.comm-mod .thread-tag{ font-size:10px; background:var(--surface-2); border:1px solid var(--line); border-radius:6px; padding:1px 6px; color:var(--text-2); }
.comm-mod .at-filtros{ display:flex; gap:6px; padding:8px 10px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.comm-mod .at-fpill{ font-size:12px; border:1px solid var(--line); background:var(--card); border-radius:20px; padding:4px 12px; cursor:pointer; }
.comm-mod .at-fpill.active{ background:var(--brand,#6c7bd6); color:#fff; border-color:var(--brand,#6c7bd6); }
.comm-mod .comm-main{ display:flex; flex-direction:column; overflow:hidden; }
.comm-mod .comm-main .head{ display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid var(--line); }
.comm-mod .comm-main .head .ch{ margin-left:auto; display:flex; gap:6px; }
.comm-mod .comm-body{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:8px; background:var(--surface-1,#f6f7fb); }
.comm-mod .msg{ max-width:70%; padding:8px 12px; border-radius:12px; font-size:13px; position:relative; line-height:1.4; }
.comm-mod .msg.in{ align-self:flex-start; background:var(--card); border:1px solid var(--line); border-bottom-left-radius:3px; }
.comm-mod .msg.out{ align-self:flex-end; background:var(--brand-50,#dfe6ff); border-bottom-right-radius:3px; }
.comm-mod .msg .t{ display:block; font-size:10px; color:var(--text-3,#9aa); margin-top:3px; text-align:right; }
.comm-mod .msg-who{ display:block; font-size:11px; font-weight:700; color:var(--brand,#6c7bd6); margin-bottom:2px; }
.comm-mod .comm-input{ display:flex; gap:8px; align-items:center; padding:10px 12px; border-top:1px solid var(--line); }
.comm-mod .comm-input .field-input{ flex:1; }
/* chat interno list */
.comm-mod .chat-sec-t{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--text-3,#9aa); padding:10px 12px 4px; }
.comm-mod .chat-item{ display:flex; gap:10px; align-items:center; padding:8px 12px; cursor:pointer; }
.comm-mod .chat-item:hover{ background:var(--surface-2); }
.comm-mod .chat-item.active{ background:var(--brand-50,#eef1ff); }
.comm-mod .chat-ico{ width:34px; height:34px; border-radius:50%; background:var(--surface-2); display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0; }
.comm-mod .chat-composer{ border-top:1px solid var(--line); }
.comm-mod .chat-emojis{ display:flex; gap:2px; padding:6px 10px 0; flex-wrap:wrap; }
.comm-mod .chat-emoji{ background:none; border:none; font-size:18px; cursor:pointer; padding:2px 4px; border-radius:6px; }
.comm-mod .chat-emoji:hover{ background:var(--surface-2); }
.comm-mod .chat-input-row{ display:flex; gap:6px; align-items:center; padding:8px 12px; }
.comm-mod .chat-input-row .field-input{ flex:1; }
.comm-mod .chat-locked{ padding:14px; text-align:center; font-size:13px; color:var(--text-2); border-top:1px solid var(--line); background:var(--surface-2); }
/* demanda */
.dm-table td{ vertical-align:middle; }
.dm-table .dm-obs{ max-width:220px; font-size:12px; color:var(--text-2); }
.dm-table tr.dm-done{ opacity:.6; }
.dm-badge{ color:#fff; font-size:11px; font-weight:700; padding:2px 9px; border-radius:20px; white-space:nowrap; }
.dm-acts{ display:flex; gap:3px; align-items:center; flex-wrap:wrap; }
.dm-status{ border:none; border-radius:20px; font-size:11px; font-weight:700; padding:3px 9px; cursor:pointer; white-space:nowrap; }
.dm-status.pend{ background:#fff3d6; color:#a5760a; }
.dm-status.ok{ background:#d6f5e6; color:#0a7d47; }
/* notificações */
.notif-btn{ position:relative; }
.notif-badge{ position:absolute; top:-3px; right:-3px; min-width:16px; height:16px; padding:0 4px; background:var(--danger,#e2574c); color:#fff; font-size:10px; font-weight:700; border-radius:9px; display:flex; align-items:center; justify-content:center; line-height:1; }
@keyframes bellshake{ 0%,100%{transform:rotate(0)} 15%{transform:rotate(14deg)} 30%{transform:rotate(-12deg)} 45%{transform:rotate(9deg)} 60%{transform:rotate(-6deg)} 75%{transform:rotate(3deg)} }
.notif-btn.shake svg{ animation:bellshake .7s ease; transform-origin:top center; }
.notif-dd{ width:340px; max-width:92vw; padding:0; right:12px; }
.notif-head{ display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--line); }
.notif-list{ max-height:400px; overflow-y:auto; }
.notif-item{ display:flex; gap:10px; align-items:flex-start; width:100%; text-align:left; background:none; border:none; border-bottom:1px solid var(--line); padding:11px 14px; cursor:pointer; }
.notif-item:hover{ background:var(--surface-2); }
.notif-item.unread{ background:var(--brand-50,#eef1ff); }
.notif-ic{ font-size:18px; flex-shrink:0; }
.notif-h{ color:var(--text-3,#9aa); font-size:10px; white-space:nowrap; }
@media(max-width:820px){ .comm-mod .comm{ grid-template-columns:1fr; height:auto; } .comm-mod .comm-list{ max-height:280px; } }

/* ============ Home Fase 2 (Parabéns · Online · Demandas) ============ */
.home-welcome-row{ display:grid; grid-template-columns:1fr; gap:14px; margin-bottom:18px; align-items:stretch; }
.home-welcome-row.has-parabens{ grid-template-columns:1fr 320px; }
.parabens-card{ align-self:stretch; }
.parabens-item{ display:flex; align-items:center; gap:10px; padding:6px 0; }
.parabens-item + .parabens-item{ border-top:1px solid var(--line); }
.parabens-tags{ display:flex; flex-wrap:wrap; gap:4px; margin-top:3px; }
.parabens-btn{ font-size:18px; background:var(--rose-l,#fbe9e3); }
.parabens-btn:hover{ transform:scale(1.12); }
.home-online-dem{ display:grid; grid-template-columns:240px 1fr; gap:14px; margin-bottom:18px; align-items:start; }
.online-list{ display:flex; flex-direction:column; }
.online-item{ display:flex; align-items:center; gap:9px; padding:5px 0; }
.online-item + .online-item{ border-top:1px solid var(--line); }
.online-nm{ font-size:12.5px; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.online-lbl{ font-size:11px; font-weight:600; white-space:nowrap; }
.pres.off{ background:var(--text-3,#c2c8d4); }
/* quadro Demandas (home) */
.home-dm{ display:flex; align-items:stretch; gap:10px; padding:9px 8px; border-radius:12px; cursor:pointer; position:relative; }
.home-dm:hover{ background:var(--surface-2); }
.home-dm + .home-dm{ border-top:1px solid var(--line); }
.home-dm.done{ opacity:.55; }
.home-dm-bar{ width:4px; border-radius:4px; flex-shrink:0; }
.home-dm-top{ display:flex; align-items:center; gap:8px; margin-bottom:2px; }
.home-dm-pac{ display:block; font-size:13px; }
.home-dm-obs{ font-size:11.5px; color:var(--text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.home-dm-acts{ display:flex; flex-direction:column; gap:4px; align-items:flex-end; justify-content:center; flex-shrink:0; }
@media(max-width:900px){ .home-welcome-row.has-parabens,.home-online-dem{ grid-template-columns:1fr; } }

/* Módulo Clínico */
.clin-mod .clin-mod-t{ color:var(--text-3,#9aa); }
.clin-bar{ height:7px; border-radius:5px; background:var(--surface-2,#eef); overflow:hidden; }
.clin-bar > span{ display:block; height:100%; background:linear-gradient(90deg,#6c7bd6,#6366F1); border-radius:5px; }

/* Processos | Tarefas | Cronograma */
.proc-mod .proc-date{ font-size:11px; font-weight:700; color:var(--brand,#6c7bd6); background:var(--brand-50,#eef1ff); border-radius:8px; padding:2px 8px; white-space:nowrap; margin-right:8px; }
.proc-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.proc-chip{ display:inline-flex; align-items:center; gap:6px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:3px 6px 3px 11px; font-size:12px; }
.proc-chip button{ background:var(--line); border:none; border-radius:50%; width:17px; height:17px; cursor:pointer; font-size:10px; line-height:1; color:var(--text-2); }
.proc-chip button:hover{ background:var(--danger,#e2574c); color:#fff; }

/* Clínico — controles de saúde + motivo */
.clin-motivo{ max-width:260px; font-size:12px; color:var(--text-2); }
.clin-ctrl-blk{ display:flex; align-items:flex-start; gap:12px; padding:11px 12px; border:1px solid var(--line); border-radius:12px; margin-bottom:8px; }
.clin-ctrl-blk.alert{ border-color:var(--warn,#e0a23a); background:#fff8ec; }
.clin-ctrl-blk .grow{ flex:1; }
.clin-ctrl-info{ display:flex; flex-wrap:wrap; gap:12px; margin:4px 0; font-size:12.5px; }

.clin-ctrl-done td{ opacity:.62; }

/* Clínico — KPIs do Atendimento Extra */
.clin-kpi-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:4px 0 4px; }
.clin-kpi{ border:1px solid var(--line); border-radius:12px; padding:11px 13px; background:var(--card); }
.clin-kpi-t{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; color:var(--text-2); }
.clin-kpi-n{ font-size:24px; font-weight:800; line-height:1.1; margin:3px 0; }
.clin-kpi-s{ font-size:11.5px; color:var(--text-3,#9aa); }
/* Classificação de retrabalho: leve (amarelo) / moderado (laranja) / grave (vermelho) */
.rc-kpi{ border-left-width:4px; }
.rc-kpi.rc-leve{ border-left-color:#e0a800; }
.rc-kpi.rc-moderado{ border-left-color:#e0832a; }
.rc-kpi.rc-grave{ border-left-color:#e2574c; }
.rc-sel{ font-size:12px; font-weight:700; border-radius:8px; padding:4px 8px; border:1.5px solid var(--line); background:var(--card); cursor:pointer; }
.rc-sel.rc-leve{ color:#8a6d00; border-color:#e0a800; background:#fff7d6; }
.rc-sel.rc-moderado{ color:#9a531a; border-color:#e0832a; background:#fdeede; }
.rc-sel.rc-grave{ color:#b23a30; border-color:#e2574c; background:#fde4e1; }
.badge.rc-badge{ font-weight:700; }
.badge.rc-badge.rc-leve{ color:#8a6d00; background:#fff7d6; }
.badge.rc-badge.rc-moderado{ color:#9a531a; background:#fdeede; }
.badge.rc-badge.rc-grave{ color:#b23a30; background:#fde4e1; }
.clin-kpi-sub-t{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:var(--text-2); margin:14px 2px 6px; }
.clin-mat-col > div{ padding:1px 0; line-height:1.35; }
.clin-mat-col > div + div{ border-top:1px dashed var(--line); }
.fr-taxa-inp{ width:82px; height:28px; padding:2px 6px; font-size:12px; text-align:right; display:inline-block; }
/* matriz de cobrança */
.cobr-matriz{ table-layout:auto; }
.cobr-matriz .ta-c{ text-align:center; }
.cobr-matriz td, .cobr-matriz th{ white-space:nowrap !important; word-break:normal; padding:5px 10px; }
.cobr-matriz td.ta-r, .cobr-matriz th.ta-r{ min-width:78px; }
.cobr-chips{ display:flex; flex-wrap:wrap; gap:5px; }
.cobr-chk{ display:inline-flex; align-items:center; gap:4px; font-size:11.5px; border:1px solid var(--line); border-radius:999px; padding:3px 9px; cursor:pointer; user-select:none; }
.cobr-chk.on{ background:var(--rose-l,#f7ece8); border-color:var(--rose-d,#c96); font-weight:600; }
.cobr-final-badge{ display:flex; align-items:center; gap:8px; background:#eaf6ef; color:#1f7a4d; border:1px solid #bfe6ce; border-radius:12px; padding:9px 14px; font-size:12.5px; margin-bottom:12px; }
.cobr-crit{ margin:2px 0 0; padding-left:18px; font-size:12.5px; line-height:1.6; color:var(--text-2); }
.cobr-crit li{ margin:2px 0; }
/* Despesa | Entrada | Lucro — equação/meta */
.fp-del-eq{ text-align:center; font-weight:700; color:var(--text-2); font-size:13px; margin:2px 0 10px; }
.fp-del-result{ text-align:center; border-radius:16px; padding:16px 18px; margin-bottom:14px; background:linear-gradient(135deg,#fdeef0,#fbe3e8); border:1px solid #f2c2cd; }
.fp-del-result-l{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:#a3364a; }
.fp-del-result-v{ font-size:30px; font-weight:800; line-height:1.1; margin:4px 0; }
.fp-del-result-s{ font-size:12px; color:var(--text-3,#9aa); }
.cobr-matriz tbody tr.cobr-ok td:first-child{ color:#1f9d57; }
.cobr-matriz tbody tr.cobr-warn td:first-child{ color:#e0832a; }
.cobr-matriz tbody tr.cobr-dang td:first-child{ color:#e2574c; }
.cobr-matriz tbody tr td:first-child b{ font-weight:700; }
/* Diário - Vendas: cards por dia */
.cmv-day-card .ficha-head{ align-items:center; }
.cmv-day-date{ display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:56px; padding-right:12px; border-right:1px solid var(--line); }
.cmv-day-n{ font-size:26px; font-weight:800; line-height:1; color:var(--navy); }
.cmv-day-m{ font-size:11px; text-transform:uppercase; letter-spacing:.3px; color:var(--text-3,#9aa); }
.cmv-day-metrics{ display:flex; gap:18px; flex-wrap:wrap; flex:1; }
.cmv-dm{ display:flex; flex-direction:column; }
.cmv-dm small{ font-size:10px; text-transform:uppercase; letter-spacing:.3px; color:var(--text-3,#9aa); }
.cmv-dm b{ font-size:14px; color:var(--navy); }
/* chips de colaborador (modal Meta) */
.cmv-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.cmv-chip{ display:inline-flex; align-items:center; gap:6px; background:var(--rose-l,#f7ece8); color:var(--navy); border:1px solid var(--line); border-radius:999px; padding:4px 8px 4px 12px; font-size:12px; font-weight:600; }
.cmv-chip .chip-x{ border:none; background:none; cursor:pointer; color:var(--text-3,#9aa); font-size:12px; }
/* aviso de desempenho */
.cmv-aviso{ display:flex; gap:14px; align-items:center; border-radius:16px; padding:14px 18px; margin-bottom:14px; color:#fff; box-shadow:0 6px 18px rgba(0,0,0,.12); }
.cmv-aviso.fx-cel{ background:linear-gradient(135deg,#1f9d57,#0f7a63); }
.cmv-aviso.fx-warn{ background:linear-gradient(135deg,#e0a23a,#e0832a); }
.cmv-aviso.fx-danger{ background:linear-gradient(135deg,#e2574c,#b23a30); }
.cmv-aviso-ico{ font-size:34px; line-height:1; }
.cmv-aviso-t{ font-size:15px; font-weight:800; margin-bottom:2px; }
.cmv-aviso-m{ font-size:12.5px; line-height:1.45; opacity:.96; }
.cmv-aviso-m b{ color:#fff; }
/* FX comemoração / dinheiro */
.fx-layer{ position:fixed; inset:0; pointer-events:none; z-index:99998; overflow:hidden; }
.fx-emoji{ position:absolute; top:-44px; animation:fxFall 3.8s linear forwards; will-change:transform,opacity; }
@keyframes fxFall{ 0%{transform:translateY(-44px) rotate(0);opacity:0} 8%{opacity:1} 100%{transform:translateY(104vh) rotate(340deg);opacity:.85} }
.fx-banner{ position:fixed; top:80px; left:50%; z-index:99999; padding:12px 24px; border-radius:14px; font-weight:800; font-size:16px; color:#fff; box-shadow:0 12px 34px rgba(0,0,0,.28); pointer-events:none; opacity:0; animation:fxPop .4s ease forwards; }
.fx-banner.fx-cel{ background:linear-gradient(135deg,#e0832a,#e2574c); }
.fx-banner.fx-money{ background:linear-gradient(135deg,#1f9d57,#0f7a63); }
.fx-banner.out{ animation:fxOut .7s ease forwards; }
@keyframes fxPop{ from{opacity:0;transform:translateX(-50%) scale(.8)} to{opacity:1;transform:translateX(-50%) scale(1)} }
@keyframes fxOut{ to{opacity:0;transform:translateX(-50%) translateY(-16px) scale(.9)} }

.clin-top5{ margin:4px 0 0 18px; padding:0; font-size:12.5px; }
.clin-top5 li{ margin:2px 0; }

/* Clínico — blocos Procedimento Executado / NÃO Executado */
.clin-blk-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; margin:2px 0 8px; }
.clin-blk{ border:1px solid var(--line); border-radius:12px; padding:10px 12px; }
.clin-blk.tot{ border-color:var(--brand,#6c7bd6); background:var(--brand-50,#eef1ff); }
.clin-blk-t{ font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.3px; color:var(--text-2); margin-bottom:6px; }
.clin-blk-b{ display:flex; justify-content:space-between; font-size:12.5px; padding:2px 0; }
.clin-blk-b span{ color:var(--text-3,#9aa); }
.clin-sub{ margin-bottom:12px; }
.clin-sub-t{ font-size:13px; font-weight:700; margin:4px 0 6px; }

/* ============================================================
   ESTOQUE (inspirado no Estoque Pro)
   ============================================================ */
.mono{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; }
.btn-danger{ background:var(--danger,#e5484d); color:#fff; border-color:transparent; }
.btn-danger:hover{ filter:brightness(.94); }
.btn-ok-solid{ background:#16a34a; color:#fff; border-color:transparent; }
.btn-ok-solid:hover{ filter:brightness(.94); }
.cfg-upload-zone{ border:2px dashed var(--line); border-radius:12px; padding:26px; text-align:center; background:var(--bg-2,#fafafa); }
.cfg-upload-zone p{ margin:6px 0 2px; }

/* hero */
.est-hero{ display:flex; align-items:center; gap:14px; justify-content:space-between; background:linear-gradient(120deg,#eef2ff,#f5f3ff); border:1px solid #e5e7fb; }
.est-hero-l{ display:flex; align-items:center; gap:14px; }
.est-hero-emoji{ font-size:34px; }
.est-hero-hi{ font-size:16px; font-weight:800; }
.est-hero-sub{ font-size:13px; color:var(--text-2); margin-top:2px; }
.est-crit-n{ color:var(--danger,#e5484d); }

/* KPIs */
.est-kpi-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; }
.est-kpi{ border:1px solid var(--line); border-radius:14px; padding:14px 16px; background:var(--card); }
.est-kpi-top{ display:flex; align-items:center; gap:9px; }
.est-kpi-ic{ width:32px; height:32px; border-radius:9px; display:flex; align-items:center; justify-content:center; background:#eef2ff; color:#4f46e5; flex:none; }
.est-kpi-ic.ekpi-ok{ background:#e7f6ec; color:#16a34a; }
.est-kpi-ic.ekpi-info{ background:#e6f0fe; color:#2563eb; }
.est-kpi-ic.ekpi-danger{ background:#fdeaea; color:#e5484d; }
.est-kpi-ic.ekpi-warn{ background:#fdf3e3; color:#d97706; }
.est-kpi-l{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; color:var(--text-2); }
.est-kpi-v{ font-size:26px; font-weight:800; line-height:1.1; margin:6px 0 2px; }
.est-kpi-s{ font-size:12px; color:var(--text-3,#9aa); }

.grid-2-est{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:1000px){ .grid-2-est{ grid-template-columns:1fr; } }

/* informações financeiras */
.est-fin-total{ display:flex; gap:18px; flex-wrap:wrap; align-items:flex-end; }
.est-fin-big{ font-size:28px; font-weight:800; }
.est-fin-split{ display:flex; gap:22px; margin-left:auto; }
.est-fin-mid{ font-size:18px; font-weight:800; }
.est-pos{ color:#16a34a; } .est-neg{ color:#e5484d; }

/* alertas no dashboard */
.est-alert-row{ display:flex; align-items:center; gap:10px; padding:9px 6px; border-bottom:1px solid var(--line); }
.est-alert-row:last-child{ border-bottom:none; }
.est-alert-ic{ width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center; flex:none; }
.est-a-red .est-alert-ic{ background:#fdeaea; color:#e5484d; }
.est-a-amber .est-alert-ic{ background:#fdf3e3; color:#d97706; }
.est-a-slate .est-alert-ic{ background:#eef1f5; color:#64748b; }

/* classificação de uso */
.est-uso{ display:inline-block; font-size:11px; font-weight:700; padding:2px 8px; border-radius:20px; white-space:nowrap; }
.est-uso-a{ background:#fdeaea; color:#c02626; }
.est-uso-b{ background:#fdf3e3; color:#b45309; }
.est-uso-c{ background:#e7f6ec; color:#15803d; }
.est-uso-wait{ background:#eef1f5; color:#64748b; font-style:italic; }

.est-itens-tbl th, .est-itens-tbl td{ white-space:nowrap; }
.est-pag{ padding:9px 14px; border-top:1px solid var(--line); }

/* movimentações */
.est-mv-tabs{ display:flex; gap:6px; margin-bottom:12px; }
.est-mv-tab{ border:1px solid var(--line); background:var(--card); border-radius:20px; padding:6px 16px; font-size:13px; font-weight:600; cursor:pointer; }
.est-mv-tab.active{ background:#4f46e5; color:#fff; border-color:transparent; }
.est-nfe-banner{ display:flex; align-items:center; gap:8px; background:#eef2ff; border:1px dashed #b7bdf5; border-radius:10px; padding:10px 14px; cursor:pointer; margin-bottom:6px; }
.est-nfe-banner:hover{ background:#e5e9ff; }
.est-uso-note{ background:#f5f3ff; border:1px solid #e5e0fb; border-radius:9px; padding:9px 12px; font-size:12.5px; color:var(--text-2); }

/* relatórios */
.est-rel-per{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:10px; }
.est-per-pill{ border:1px solid var(--line); background:var(--bg-2,#f6f6f8); border-radius:20px; padding:4px 12px; font-size:12px; cursor:pointer; }
.est-per-pill:hover{ background:#eef2ff; }
.est-rel-btns{ display:flex; gap:8px; margin-top:12px; }

/* insights */
.est-ins-list{ margin:8px 0 0; padding-left:18px; font-size:13px; line-height:1.7; }

/* ABC */
.est-abc-cfg{ display:grid; grid-template-columns:1fr 1fr 1.4fr auto; gap:12px; align-items:end; }
@media (max-width:900px){ .est-abc-cfg{ grid-template-columns:1fr 1fr; } }
.est-abc-cal{ display:flex; align-items:center; gap:6px; }
.est-abc-cal input{ width:56px; text-align:center; }
.est-abc-a,.est-abc-b,.est-abc-c{ font-weight:800; }
.est-abc-a{ color:#e5484d; } .est-abc-b{ color:#d97706; } .est-abc-c{ color:#16a34a; }
.est-abc-recs{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:16px; }
@media (max-width:900px){ .est-abc-recs{ grid-template-columns:1fr; } }
.est-rec-card{ border-radius:12px; padding:14px 16px; border:1px solid; }
.est-rec-card h4{ margin:0 0 8px; font-size:14px; }
.est-rec-card ul{ margin:0; padding-left:16px; font-size:12.5px; line-height:1.7; }
.est-rec-a{ background:#fdf1f1; border-color:#f6cccc; } .est-rec-a h4,.est-rec-a li{ color:#b02525; }
.est-rec-b{ background:#fdf8ee; border-color:#f5e2bb; } .est-rec-b h4,.est-rec-b li{ color:#96650a; }
.est-rec-c{ background:#eef9f1; border-color:#c3e8ce; } .est-rec-c h4,.est-rec-c li{ color:#15803d; }

/* pareto */
.est-par-wrap{ position:relative; height:220px; padding:6px 0; }
.est-par-bars{ display:flex; align-items:flex-end; gap:5px; height:100%; }
.est-par-col{ flex:1; height:100%; display:flex; align-items:flex-end; }
.est-par-bar{ width:100%; border-radius:4px 4px 0 0; min-height:4px; }
.est-par-line{ position:absolute; inset:6px 0; width:100%; height:calc(100% - 12px); pointer-events:none; }

/* sugestão / assistente */
.est-crit-txt{ color:#e5484d; font-weight:700; }
.est-sug-crit{ background:#fdf3f2; }
.est-sug-badge{ display:inline-block; background:#ede9fe; color:#5b21b6; font-weight:800; border-radius:8px; padding:3px 12px; }
.est-assist-sub{ color:var(--text-2); font-size:12.5px; margin:-4px 0 12px; }
.est-assist-tbl{ max-height:44vh; overflow:auto; }
.est-assist-note{ margin-top:10px; }

/* alertas (aba) */
.est-al-card{ display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:10px; }
.est-al-red{ border-color:#f6cccc; background:#fefafa; }
.est-al-ic{ width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:none; }
.est-al-ic-red{ background:#fdeaea; color:#e5484d; }
.est-al-ic-amber{ background:#fdf3e3; color:#d97706; }
.est-al-t{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.est-al-det{ font-size:12.5px; color:var(--text-2); margin-top:3px; }

/* ============================================================
   FORMAÇÃO DE PREÇO
   ============================================================ */
.grid-2-fpx{ display:grid; grid-template-columns:1.35fr 1fr; gap:16px; }
@media (max-width:1050px){ .grid-2-fpx{ grid-template-columns:1fr; } }
.fpx-tbl th, .fpx-tbl td{ white-space:nowrap; }
.fpx-off{ opacity:.5; }
.fpx-media td{ background:#f5f3ff; border-top:2px solid #ddd6fe; }
.fpx-warn{ color:#d97706; } .fpx-ok{ color:#16a34a; }
.fpx-eq td{ vertical-align:middle; }
.fpx-eq-n{ font-weight:800; color:#8b5cf6; text-align:center; }
.fpx-eq-strong td{ background:#eefaf1; }
.fpx-ok-h{ background:#eefaf1; }
.fpx-inline-input{ display:inline-flex; align-items:center; gap:4px; justify-content:flex-end; }
.fpx-inline-input input{ height:30px; padding:2px 6px; }

.fpx-result{ background:linear-gradient(150deg,#4f46e5,#7c3aed); color:#fff; display:flex; flex-direction:column; }
.fpx-res-t{ font-size:12px; text-transform:uppercase; letter-spacing:.4px; opacity:.85; font-weight:700; }
.fpx-res-big{ font-size:38px; font-weight:800; line-height:1.1; margin:8px 0 2px; }
.fpx-res-big span{ font-size:16px; font-weight:600; opacity:.8; }
.fpx-res-min{ font-size:19px; font-weight:700; }
.fpx-res-min span{ font-size:13px; opacity:.8; font-weight:500; }
.fpx-res-note{ font-size:12px; opacity:.9; margin:14px 0; line-height:1.55; }
.fpx-res-mini{ margin-top:auto; display:flex; gap:10px; }
.fpx-res-mini div{ flex:1; background:rgba(255,255,255,.13); border-radius:9px; padding:8px 10px; }
.fpx-res-mini span{ display:block; font-size:11px; opacity:.85; }
.fpx-res-mini b{ font-size:14px; }

.fpx-chip-row{ display:flex; gap:12px; flex-wrap:wrap; }
.fpx-chip{ border:1px solid var(--line); border-radius:12px; padding:10px 16px; background:var(--card); min-width:130px; }
.fpx-chip span{ display:block; font-size:11.5px; color:var(--text-2); font-weight:600; text-transform:uppercase; letter-spacing:.3px; }
.fpx-chip b{ font-size:22px; font-weight:800; }
.fpx-chip-danger{ border-color:#f6cccc; background:#fdf6f5; } .fpx-chip-danger b{ color:#e5484d; }
.fpx-chip-warn{ border-color:#f5e2bb; background:#fdf9ef; } .fpx-chip-warn b{ color:#d97706; }
.fpx-chip-ok{ border-color:#c3e8ce; background:#f0f9f2; } .fpx-chip-ok b{ color:#16a34a; }

.fpx-al-card{ display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:10px; }
.fpx-al-red{ border-color:#f6cccc; background:#fefafa; }
.fpx-al-amber{ border-color:#f5e2bb; background:#fffdf8; }
.fpx-al-ic{ width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:none; }
.fpx-al-ic-red{ background:#fdeaea; color:#e5484d; }
.fpx-al-ic-amber{ background:#fdf3e3; color:#d97706; }
.fpx-al-det{ font-size:12.5px; color:var(--text-2); margin-top:2px; }

/* Formação de Preço — abas por especialidade / custos variáveis */
.fpx-esp-pills{ display:flex; gap:7px; flex-wrap:wrap; margin-bottom:6px; }
.fpx-esp-pill{ border:1px solid var(--line); background:var(--card); border-radius:20px; padding:6px 14px; font-size:12.5px; font-weight:600; cursor:pointer; white-space:nowrap; }
.fpx-esp-pill:hover{ background:#eef2ff; }
.fpx-esp-pill.on{ background:#4f46e5; color:#fff; border-color:transparent; }
.fpx-var-val{ font-size:16px; }
.fpx-var-soma{ font-size:13px; color:var(--text-2); }
.fpx-pm{ background:#eefaf1; }
.fpx-pm b{ color:#15803d; }
.fpx-marg-tbl td{ vertical-align:middle; }
.fpx-marg-cell{ cursor:pointer; border-left:1px solid var(--line); }
.fpx-marg-cell:hover{ background:#eef2ff; }
.fpx-marg-cell.on{ background:#e7f6ec; box-shadow:inset 0 0 0 2px #16a34a; border-radius:6px; }
.fpx-marg-cell.on b{ color:#15803d; }

/* Procedimentos — sessão recolhível no modal */
.proc-sess-head{ display:flex; align-items:center; gap:6px; padding:11px 14px; cursor:pointer; user-select:none; }
.proc-sess-head:hover{ background:rgba(0,0,0,.02); }
.proc-sess.open .proc-sess-head{ border-bottom:1px solid var(--line); }
.proc-sess.open .proc-sess-head .fin-chev{ transform:rotate(180deg); }
.proc-sess-body{ padding:12px 14px 14px; }

/* Laboratório — status do trabalho + quadros */
.badge.b-purple{ background:#ede9fe; color:#6d28d9; }
.lab-kanban{ display:flex; gap:12px; overflow-x:auto; padding-bottom:6px; }
.lab-kanban .kcol{ min-width:210px; flex:1 0 210px; }
.lab-quadro-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:7px; vertical-align:middle; }
.lab-quadro-dot.q-blue{ background:#3b82f6; } .lab-quadro-dot.q-purple{ background:#8b5cf6; } .lab-quadro-dot.q-green{ background:#2bb673; }
.lab-dev{ display:inline-flex; align-items:center; gap:6px; cursor:pointer; user-select:none; }
.lab-dev input{ accent-color:var(--brand,#c98a5e); width:15px; height:15px; cursor:pointer; }
.lab-mm-total td{ background:rgba(201,138,94,.10); border-top:2px solid var(--brand,#c98a5e); border-bottom:1px solid var(--line,#eadfd4); }
.lab-mm-cur{ background:rgba(99,102,241,.08); }
.lab-anot-list{ display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
.lab-anot-item{ border:1px solid var(--line,#eadfd4); border-radius:10px; padding:8px 10px; background:var(--card,#fff); }
.lab-anot-h{ display:flex; align-items:center; justify-content:space-between; margin-bottom:2px; }
.lab-anot-txt{ font-size:13px; color:var(--ink,#2b2b2b); white-space:pre-wrap; }
#labRecBtn.rec-on{ background:#e5484d; color:#fff; border-color:#e5484d; }
.row-inativo td{ opacity:.55; }
.lab-req-btn{ border-color:#8b5cf6; color:#6d28d9; }
.lab-req-btn:hover{ background:#ede9fe; }
.lab-pdf{ border:1px solid var(--line,#eadfd4); border-radius:10px; padding:10px 12px; background:var(--surface-2,#faf6f1); }
.lab-pdf-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; padding-bottom:6px; border-bottom:1px dashed var(--line,#eadfd4); }
.lab-pdf table{ width:100%; } .lab-pdf td{ padding:3px 4px; font-size:12.5px; }
.lab-wpp{ background:#e7ffdb; border:1px solid #bfe9ab; border-radius:12px; border-top-left-radius:2px; padding:10px 12px; font-size:13px; line-height:1.5; color:#0b3d16; white-space:normal; }
.proc-lab-block{ margin-bottom:8px; }
.proc-req-row{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:4px 0 2px 14px; padding-left:10px; border-left:2px solid #ddd6ea; }
.proc-req-row .proc-req-l{ font-size:11.5px; color:#6d28d9; display:inline-flex; align-items:center; gap:4px; }
.proc-req-row .field-input{ max-width:340px; height:34px; }
/* Marketing — Calendário | Cronograma */
.mkc-nav{ display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:10px; }
.mkc-nav b{ min-width:150px; text-align:center; font-size:15px; }
.mkc-grid .mkc-wds{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:4px; }
.mkc-wd{ text-align:center; font-size:11px; font-weight:700; color:#8a94a2; padding:2px 0; }
.mkc-days{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.mkc-cell{ min-height:58px; border:1px solid var(--line,#eadfd4); border-radius:9px; padding:4px 5px; position:relative; background:var(--card,#fff); overflow:hidden; }
.mkc-cell.mkc-empty{ border:none; background:transparent; }
.mkc-d{ font-size:12px; font-weight:600; color:#444; }
.mkc-lbl{ display:block; font-size:9.5px; line-height:1.15; color:#555; margin-top:2px; max-height:26px; overflow:hidden; }
.mkc-dot{ position:absolute; top:6px; right:6px; width:7px; height:7px; border-radius:50%; }
.mkc-cell.mkc-today{ outline:2px solid var(--brand,#c98a5e); outline-offset:-1px; }
.mkc-cell.mkc-feriado{ background:#fdeceb; } .mkc-cell.mkc-ev{ background:#fbf1e8; } .mkc-cell.mkc-niver{ background:#fde8f2; }
.mkc-legend{ display:flex; gap:14px; flex-wrap:wrap; margin-top:10px; font-size:11px; color:#6b7280; }
.mkc-legend i{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:5px; vertical-align:middle; }
.mk-pessoas{ display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.mk-chip{ border:1px solid var(--line,#e3d9cd); border-radius:16px; padding:3px 10px; font-size:12px; cursor:pointer; user-select:none; background:var(--surface-2,#faf6f1); }
.mk-chip.on{ background:var(--brand,#c98a5e); color:#fff; border-color:var(--brand,#c98a5e); }
.mk-home-card{ margin-bottom:14px; border-left:3px solid var(--brand,#c98a5e); }
.mk-home-head{ display:flex; align-items:center; gap:7px; font-size:14px; margin-bottom:6px; }
.mk-home-aviso{ background:#eef4ff; border:1px solid #cfe0ff; border-radius:9px; padding:7px 10px; font-size:13px; margin:4px 0; }
.mk-home-aviso.mk-home-esc{ background:#fde8f2; border-color:#f6c3dd; }
.mk-home-prox{ margin:6px 0 2px; font-size:13px; }
/* Cronograma semanal */
.mk-cr-tbl{ font-size:11.5px; }
.mk-cr-tbl th, .mk-cr-tbl td{ padding:4px 5px; vertical-align:top; }
.mk-cr-canal{ min-width:170px; font-weight:600; color:#3a4453; background:var(--surface-2,#faf6f1); position:sticky; left:0; z-index:1; }
.mk-cr-day{ text-align:center; min-width:110px; }
.mk-cr-day .mk-cr-wd{ display:block; font-size:10px; color:#8a94a2; font-weight:600; }
.mk-cr-day.mk-cr-wknd{ background:#f4f6fa; }
.mk-cr-day.mk-cr-off b{ color:#c3cad3; font-weight:400; }
.mk-cr-day.mk-cr-today{ background:rgba(201,138,94,.14); border-radius:6px; }
.mk-cr-off{ background:#fbfbfc; }
.mk-cr-wknd{ background:#fafbfd; }
.mk-cr-inp{ width:100%; border:1px solid transparent; border-radius:6px; padding:4px 5px; font-size:11.5px; background:transparent; }
.mk-cr-inp:hover{ border-color:var(--line,#eadfd4); } .mk-cr-inp:focus{ border-color:var(--brand,#c98a5e); background:#fff; outline:none; }
.mk-cr-v{ font-size:11.5px; }
.mk-cr-grp td{ background:#eef1f6; font-weight:700; font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; color:#5b6675; padding:3px 8px; }
.mk-cr-sync td{ background:#fff9f2; }
.mk-cr-syncell{ line-height:1.5; }
.mk-sync-chip{ display:inline-block; font-size:9.5px; line-height:1.3; background:#fff; border:1px solid var(--line,#eadfd4); border-radius:5px; padding:1px 4px; margin:1px 1px 0 0; max-width:100%; }
.mk-sync-chip.s-fer{ background:#fdeceb; border-color:#f6c9c4; } .mk-sync-chip.s-com{ background:#fde8f2; border-color:#f6c3dd; } .mk-sync-chip.s-ev{ background:#fbf1e8; border-color:#ead4bf; }
/* Pulse.Marketing */
.mkt-agente{ display:flex; align-items:center; gap:12px; margin-bottom:16px; border-left:3px solid #6d28d9; }
.mkt-ag-ic{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:#ede9fe; color:#6d28d9; flex:0 0 auto; }
.mkt-ag-txt{ flex:1; display:flex; flex-direction:column; } .mkt-ag-txt b{ font-size:15px; } .mkt-ag-txt span{ font-size:12.5px; color:#6b7280; }
.mkt-cmd-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px; margin-bottom:18px; }
.mkt-cmd{ text-align:left; border:1px solid var(--line,#eadfd4); border-radius:12px; padding:12px; background:var(--card,#fff); cursor:pointer; display:flex; flex-direction:column; gap:3px; transition:.12s; }
.mkt-cmd:hover{ border-color:#6d28d9; box-shadow:0 3px 10px rgba(109,40,217,.08); transform:translateY(-1px); }
.mkt-cmd-ic{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center; background:#ede9fe; color:#6d28d9; margin-bottom:4px; }
.mkt-cmd-t{ font-weight:700; font-size:13.5px; } .mkt-cmd-s{ font-size:11.5px; color:#8a94a2; }
.mkt-difer{ border-left:3px solid #6d28d9; margin-bottom:16px; }
.mkt-pipe{ display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.mkt-pipe-step{ display:flex; flex-direction:column; align-items:center; gap:2px; min-width:70px; }
.mkt-pipe-n{ width:26px; height:26px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:700; background:#f0eef6; color:#9aa0ab; }
.mkt-pipe-n.has{ background:#6d28d9; color:#fff; }
.mkt-pipe-l{ font-size:9.5px; color:#6b7280; text-align:center; line-height:1.1; }
.mkt-pipe-arrow{ color:#c9cdd6; font-size:14px; }
.mkt-cols{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.mkt-col-t{ font-weight:700; font-size:12.5px; color:#3a4453; margin-bottom:6px; text-transform:uppercase; letter-spacing:.02em; }
.mkt-list{ margin:0; padding-left:18px; } .mkt-list li{ font-size:13px; margin-bottom:4px; color:#444; }
.mkt-basebtn{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.mkt-base-note{ background:#f6f2ff; border:1px solid #ddd0f5; border-radius:9px; padding:8px 11px; font-size:12.5px; margin-bottom:10px; color:#4b3d6b; }
.mkt-lote-bar{ height:8px; border-radius:6px; background:#ede9fe; overflow:hidden; }
.mkt-lote-fill{ height:100%; background:#6d28d9; border-radius:6px; transition:width .3s; }
.mkt-fb-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.mkt-fb-chip{ border:1px solid var(--line,#e3d9cd); border-radius:16px; padding:3px 10px; font-size:12px; cursor:pointer; user-select:none; background:var(--surface-2,#faf6f1); }
.mkt-fb-chip.ok{ background:#e7f7ee; border-color:#a8dfc1; color:#1c7a47; }
.mkt-fb-chip.aj{ background:#fff4e6; border-color:#f2c98a; color:#a15c10; }
.mkt-rep-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:8px 18px; }
.mkt-rep-row{ display:flex; align-items:center; gap:8px; }
.mkt-rep-c{ font-size:12px; min-width:120px; color:#3a4453; }
.mkt-rep-bar{ flex:1; height:7px; border-radius:5px; background:#eef0f4; overflow:hidden; }
.mkt-rep-fill{ height:100%; background:#6d28d9; }
/* Fechamento Mês / Previsão Financeira — grade mensal */
.fmz-grid{ font-size:12px; border-collapse:separate; border-spacing:0; }
.fmz-grid th, .fmz-grid td{ white-space:nowrap; padding:5px 8px; }
.fmz-grid thead th{ background:#e9eef5; color:#3a4a5c; font-weight:700; text-align:right; position:sticky; top:0; z-index:2; }
.fmz-grid thead th.fmz-lbl{ text-align:left; }
.fmz-grid .fmz-a{ font-weight:600; color:#6b7280; }
.fmz-grid .fmz-b{ color:#222; }
.fmz-grid tr.fmz-strong .fmz-b, .fmz-grid tr.fmz-strong td{ font-weight:700; }
.fmz-grid tr.fmz-sec td{ font-weight:700; }
.fmz-grid tr.fmz-sec td.fmz-secb{ text-align:right; }
.fmz-grid tr.fmz-blank td{ height:7px; padding:0; background:transparent; border:none; }
.fmz-grid .fmz-z{ color:#b8bfc7; }
.fmz-grid td:first-child, .fmz-grid th:first-child{ position:sticky; left:0; background:#fff; z-index:1; min-width:230px; }
.fmz-grid tr.fmz-sec td:first-child{ z-index:1; }
.fmz-grid td:nth-child(2), .fmz-grid th:nth-child(2){ position:sticky; left:230px; background:#fff; z-index:1; min-width:150px; }

/* ===== Realçador global de tabelas: linha TOTAL + seletor "Exibir" ===== */
.tbl-total-row td, .tbl-total-row th{ font-weight:700; }
.tbl-pgbar{ display:flex; align-items:center; justify-content:flex-end; gap:8px; margin:0 0 8px; }
.tbl-pgbar .tbl-pg-lbl{ font-size:12px; color:var(--text-2); font-weight:600; }
select.tbl-pg-sel{ height:32px; width:auto; min-width:74px; padding:0 10px; }
.tbl-pgfoot{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:8px 2px 0; flex-wrap:wrap; }
.tbl-pgfoot:empty{ display:none; margin:0; }
.tbl-pg-nav{ display:flex; align-items:center; gap:8px; }
.tbl-pg-btn{ height:30px; min-width:30px; padding:0 9px; border-radius:8px; border:1px solid var(--line); background:var(--surface); color:var(--text-2); cursor:pointer; font-size:16px; line-height:1; }
.tbl-pg-btn:hover:not([disabled]){ border-color:var(--brand); color:var(--brand); }
.tbl-pg-btn[disabled]{ opacity:.4; cursor:default; }
.tbl-pg-cur{ font-size:12px; color:var(--text-2); font-weight:600; }

/* ===== Pulse.Intelligence (Relatório & Análise) ===== */
.int-hero{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.int-hero-l{ display:flex; align-items:center; gap:12px; }
.int-hero-ic{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff; }
.int-hero-l b{ display:block; }
.int-hero-r{ text-align:right; }
.int-nota{ font-size:24px; font-weight:800; line-height:1; }
.int-nota span{ font-size:12px; font-weight:600; color:var(--text-2); }
.int-nota.lg{ font-size:40px; }
.int-dot{ width:9px; height:9px; border-radius:50%; display:inline-block; flex:none; }
.int-saude-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:6px; }
.int-saude{ border:1px solid var(--line); border-radius:12px; padding:12px; background:var(--surface); }
.int-saude-top{ display:flex; align-items:center; gap:7px; margin-bottom:6px; }
.int-saude-top b{ flex:1; font-size:13px; }
.int-saude .int-nota{ font-size:26px; margin-bottom:6px; }
.int-saude-a, .int-saude-o{ display:flex; align-items:flex-start; gap:5px; font-size:11px; line-height:1.35; color:var(--text-2); margin-top:3px; }
.int-saude-a svg{ color:#dc2626; flex:none; margin-top:1px; } .int-saude-o svg{ color:#16a34a; flex:none; margin-top:1px; }
.int-exec-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:6px; }
.int-exec{ border:1px solid var(--line); border-radius:12px; padding:14px; background:var(--surface); display:flex; flex-direction:column; gap:2px; }
.int-exec-v{ font-size:22px; font-weight:800; } .int-exec-t{ font-size:12px; color:var(--text-2); }
.int-exec.crit{ border-color:#f3c2c2; background:#fdf3f3; } .int-exec.crit .int-exec-v{ color:#dc2626; }
.int-exec.warn{ border-color:#f0dcb0; background:#fdf8ee; } .int-exec.warn .int-exec-v{ color:#b8791b; }
.int-exec.op{ border-color:#c3d8f5; background:#f2f7fe; } .int-exec.op .int-exec-v{ color:#2563eb; }
.int-exec.ok{ border-color:#bfe4c8; background:#f2fbf5; } .int-exec.ok .int-exec-v{ color:#16a34a; }
.int-2col{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:6px; }
.int-narr{ font-size:13.5px; line-height:1.6; margin:0; }
.int-pauta{ margin:0 0 12px; padding-left:20px; } .int-pauta li{ font-size:13px; margin-bottom:6px; line-height:1.4; }
.int-agent-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.int-agent{ text-align:left; border:1px solid var(--line); border-radius:14px; padding:15px; background:var(--surface); cursor:pointer; transition:all .15s; display:flex; flex-direction:column; gap:6px; }
.int-agent:hover{ border-color:var(--brand); box-shadow:0 6px 20px rgba(14,165,183,.10); transform:translateY(-1px); }
.int-agent.ceo{ border-color:var(--brand-2); background:linear-gradient(180deg,rgba(99,102,241,.06),transparent); }
.int-agent-h{ display:flex; align-items:center; justify-content:space-between; }
.int-agent-ic{ width:36px; height:36px; border-radius:10px; display:grid; place-items:center; background:var(--surface-2); color:var(--brand); }
.int-agent.ceo .int-agent-ic{ background:var(--brand-2); color:#fff; }
.int-agent b{ font-size:14px; } .int-agent-m{ font-size:11.5px; color:var(--text-2); line-height:1.4; flex:1; }
.int-agent-f{ display:flex; align-items:center; justify-content:space-between; margin-top:2px; }
.int-agent-nota{ font-size:13px; font-weight:800; }
.int-agrep-head{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.int-agrep-head b{ display:block; } .int-agrep-head>div{ flex:1; }
.int-note{ background:#eef7ff; border:1px solid #cfe0ff; border-radius:10px; padding:9px 12px; font-size:12px; color:#24507e; margin-bottom:10px; }
.int-rel-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.int-relcard{ text-align:left; border:1px solid var(--line); border-radius:14px; padding:16px; background:var(--surface); cursor:pointer; transition:all .15s; display:flex; flex-direction:column; gap:6px; }
.int-relcard:hover{ border-color:var(--brand); box-shadow:0 6px 20px rgba(14,165,183,.10); }
.int-relcard-h{ display:flex; align-items:center; gap:8px; color:var(--brand); }
.int-relcard-h b{ color:var(--text); }
@media(max-width:1100px){ .int-saude-grid,.int-exec-grid,.int-agent-grid,.int-rel-grid{ grid-template-columns:repeat(2,1fr); } .int-2col{ grid-template-columns:1fr; } }
@media(max-width:620px){ .int-saude-grid,.int-exec-grid,.int-agent-grid,.int-rel-grid{ grid-template-columns:1fr; } }
.int-chips{ display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 6px; }
.int-perg li{ margin-bottom:4px; }
.int-tl{ list-style:none; margin:6px 0 0; padding:0; }
.int-tl-i{ position:relative; padding:0 0 12px 22px; font-size:12.5px; color:var(--text-2); }
.int-tl-i:before{ content:''; position:absolute; left:5px; top:14px; bottom:0; width:2px; background:var(--line); }
.int-tl-i:last-child:before{ display:none; }
.int-tl-dot{ position:absolute; left:0; top:1px; width:12px; height:12px; border-radius:50%; border:2px solid var(--line); background:#fff; }
.int-tl-i.done .int-tl-dot{ background:#16a34a; border-color:#16a34a; }
.int-tl-i.cur{ color:var(--text); font-weight:700; }
.int-tl-i.cur .int-tl-dot{ background:var(--brand); border-color:var(--brand); box-shadow:0 0 0 3px rgba(14,165,183,.18); }
.int-anexos{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.int-anexo{ display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line); border-radius:8px; padding:5px 10px; font-size:12px; background:var(--surface); color:var(--text-2); }
.int-com{ list-style:none; margin:6px 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.int-com li{ border:1px solid var(--line); border-radius:10px; padding:9px 12px; background:var(--surface-2); font-size:13px; line-height:1.45; }
.int-com-h{ display:flex; justify-content:space-between; font-size:11.5px; color:var(--text-2); margin-bottom:3px; }
.int-com-h b{ color:var(--text); }
/* Matriz de prioridade (impacto × esforço) */
.int-mx-row{ display:flex; align-items:stretch; gap:8px; }
.int-mx-yaxis{ writing-mode:vertical-rl; transform:rotate(180deg); text-align:center; font-size:10.5px; font-weight:700; letter-spacing:.3px; color:var(--text-2); padding:2px 0; }
.int-matrix{ position:relative; flex:1; height:340px; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--surface); }
.int-mx-q{ position:absolute; width:50%; height:50%; box-sizing:border-box; }
.int-mx-q.tl{ left:0; top:0; background:rgba(22,163,74,.06); border-right:1px dashed var(--line); border-bottom:1px dashed var(--line); }
.int-mx-q.tr{ right:0; top:0; background:rgba(232,161,58,.07); border-bottom:1px dashed var(--line); }
.int-mx-q.bl{ left:0; bottom:0; background:rgba(148,163,184,.06); border-right:1px dashed var(--line); }
.int-mx-q.br{ right:0; bottom:0; background:rgba(220,38,38,.05); }
.int-mx-q>span{ position:absolute; top:8px; left:10px; font-size:11px; font-weight:800; color:var(--text-2); line-height:1.25; }
.int-mx-q.tr>span, .int-mx-q.br>span{ left:auto; right:10px; text-align:right; }
.int-mx-q>span small{ font-weight:500; font-size:10px; opacity:.85; }
.int-mx-dot{ position:absolute; width:14px; height:14px; border-radius:50%; border:2px solid #fff; transform:translate(-50%,50%); cursor:pointer; box-shadow:0 1px 3px rgba(0,0,0,.28); padding:0; transition:width .1s, height .1s; }
.int-mx-dot:hover{ width:19px; height:19px; z-index:6; }
.int-mx-xaxis{ text-align:center; font-size:10.5px; font-weight:700; letter-spacing:.3px; color:var(--text-2); margin-top:5px; padding-left:22px; }
.int-mx-leg{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin:10px 0 4px; font-size:12px; padding-left:22px; }
.int-mx-leg i{ display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:5px; vertical-align:middle; }
/* Exportar Excel / PDF na barra da tabela */
.tbl-pgbar{ flex-wrap:wrap; }
.tbl-exp{ display:inline-flex; gap:6px; }
.tbl-exp-btn{ display:inline-flex; align-items:center; gap:5px; height:32px; padding:0 11px; border-radius:8px; border:1px solid var(--line); background:var(--surface); color:var(--text-2); font-size:12px; font-weight:600; cursor:pointer; }
.tbl-exp-btn:hover{ border-color:var(--brand); color:var(--brand); }
.tbl-exp-btn svg{ width:13px; height:13px; }

/* ===== Pulse.Atendimento (Comunicação) ===== */
.at-tabs{ display:flex; gap:4px; padding:8px 10px 0; border-bottom:1px solid var(--line); }
.at-tab{ display:flex; align-items:center; gap:6px; padding:8px 12px; border:none; background:none; cursor:pointer; font-size:13px; font-weight:600; color:var(--text-2); border-bottom:2px solid transparent; }
.at-tab.active{ color:var(--brand); border-bottom-color:var(--brand); }
.at-tab-n{ background:var(--brand); color:#fff; border-radius:10px; font-size:10px; padding:1px 6px; }
.at-tag-setor{ font-size:10px; background:#eef2f9; color:#4b5563; border-radius:6px; padding:1px 6px; }
.at-tag-at{ font-size:10px; background:#eafaf0; color:#16794a; border-radius:6px; padding:1px 6px; }
.at-tag-fila{ font-size:10px; background:#fdf3e6; color:#b8791b; border-radius:6px; padding:1px 6px; }
.at-badges{ display:flex; flex-wrap:wrap; gap:5px; margin-top:2px; }
.at-b-canal{ font-size:10.5px; background:#eafaf0; color:#16794a; border-radius:6px; padding:2px 7px; font-weight:600; }
.at-b-setor{ display:inline-flex; align-items:center; gap:3px; font-size:10.5px; background:#eef2f9; color:#475569; border-radius:6px; padding:2px 7px; font-weight:600; }
.at-b-at{ font-size:10.5px; background:#eef0fe; color:#4f46b5; border-radius:6px; padding:2px 7px; font-weight:600; }
.at-b-fila{ font-size:10.5px; background:#fdf3e6; color:#b8791b; border-radius:6px; padding:2px 7px; font-weight:600; }
.at-sys{ text-align:center; font-size:11.5px; color:#5b6478; background:#eef1f6; border-radius:8px; padding:7px 12px; margin:8px auto; max-width:88%; line-height:1.4; }
.at-bot{ background:#eefdf3 !important; border:1px solid #cdeed9; }
.at-bot-tag{ display:block; font-size:11px; font-weight:700; color:#16794a; margin-bottom:4px; }
.at-encerrado{ display:flex; align-items:center; justify-content:center; gap:10px; padding:14px; border-top:1px solid var(--line); font-size:13px; color:var(--text-2); }
.at-vg-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.at-vg-card{ border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow:hidden; }
.at-vg-head{ display:flex; align-items:center; gap:8px; padding:11px 13px; border-bottom:1px solid var(--line); }
.at-vg-head b{ flex:1; font-size:13px; }
.at-dot{ width:9px; height:9px; border-radius:50%; flex:none; } .at-dot.on{ background:#16a34a; } .at-dot.off{ background:#c3c9d4; }
.at-vg-row{ display:flex; align-items:center; gap:9px; padding:9px 13px; border-bottom:1px solid var(--surface-2); }
.at-vg-row .grow{ display:flex; flex-direction:column; line-height:1.25; } .at-vg-row b{ font-size:12.5px; }
.at-vg-foot{ padding:10px 13px; font-size:12px; color:var(--text-2); }
@media(max-width:1100px){ .at-vg-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .at-vg-grid{ grid-template-columns:1fr; } }

/* Pulse.Atendimento — Contatos / Etiquetas / Bot editável */
.at-tag-cor{display:inline-block;width:16px;height:16px;border-radius:4px;vertical-align:middle;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.at-bot-op{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.at-bot-op .field-input{flex:1}
.at-bot-num{width:24px;height:24px;border-radius:6px;background:var(--brand,#0f766e);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}

/* Pulse.Atendimento — aprofundamentos (filtros, ficha, cor, relatório, respostas) */
.at-hr-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.at-ct-filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.at-ct-filtros .field-input:first-child{flex:1;min-width:200px}
.at-ct-filtros .field-input{width:auto}
.at-cor-pal{display:flex;gap:8px;flex-wrap:wrap}
.at-cor-opt{width:28px;height:28px;border-radius:7px;border:2px solid transparent;cursor:pointer;padding:0}
.at-cor-opt.sel{border-color:#111827;box-shadow:0 0 0 2px #fff inset}
.at-daychart{display:flex;align-items:flex-end;gap:12px;height:130px;padding:10px 6px}
.at-day{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}
.at-day-bar{width:56%;background:linear-gradient(180deg,#14b8a6,#0f766e);border-radius:6px 6px 0 0;min-height:4px}
.at-resp-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto}
.at-resp-item{text-align:left;border:1px solid var(--line,#e5e7eb);border-radius:9px;padding:10px 12px;background:var(--surface,#fff);cursor:pointer;display:flex;flex-direction:column;gap:4px}
.at-resp-item:hover{background:rgba(20,184,166,.07);border-color:#14b8a6}
.at-resp-txt{font-size:12px;color:var(--muted,#64748b);line-height:1.35}

/* Pulse.Atendimento — editor visual de fluxo (URA) */
.at-fl-wrap{display:grid;grid-template-columns:1fr 300px;gap:14px;align-items:start}
@media(max-width:900px){.at-fl-wrap{grid-template-columns:1fr}}
.at-fl-op{border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:10px;margin-bottom:8px;background:var(--surface,#fff)}
.at-fl-head{display:flex;align-items:center;gap:8px}
.at-fl-txt{flex:1;font-weight:600}
.at-fl-acao{width:auto;min-width:180px}
.at-fl-body{margin-top:8px;padding-left:34px}
.at-fl-line{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}
.at-fl-line label{font-size:11px}
.at-fl-subs{display:flex;flex-direction:column;gap:6px;border-left:2px dashed #cbd5e1;padding-left:10px}
.at-fl-sub{display:flex;align-items:center;gap:6px}
.at-fl-sub .field-input:first-of-type{flex:1}
.at-bot-num.sm{width:34px;font-size:11px;background:#94a3b8}
.at-fl-side{position:sticky;top:8px}
.at-fl-preview{border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:12px;background:linear-gradient(180deg,#f0fdfa,#fff)}
.at-fl-pv-saud{font-size:12px;color:#334155;margin-bottom:8px;padding-bottom:8px;border-bottom:1px dashed #cbd5e1;white-space:pre-line}
.at-fl-pv-op{font-size:13px;padding:3px 0}
.at-fl-pv-sub{font-size:12px;color:#475569;padding:2px 0 2px 18px}
.at-fl-tag{display:inline-block;font-size:10px;font-weight:700;padding:1px 7px;border-radius:20px;margin-left:4px;vertical-align:middle}
.at-fl-tag.set{background:#e0f2fe;color:#075985}
.at-fl-tag.sub{background:#ede9fe;color:#5b21b6}
.at-fl-tag.hum{background:#dcfce7;color:#166534}
.at-fl-tag.msg{background:#fef3c7;color:#92400e}

/* Respostas rápidas — chips de setor + selo */
.at-resp-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.at-resp-chip{border:1px solid var(--line,#e5e7eb);background:var(--surface,#fff);border-radius:20px;padding:4px 12px;font-size:12px;cursor:pointer;color:var(--text-2,#475569)}
.at-resp-chip:hover{border-color:#14b8a6}
.at-resp-chip.on{background:#0f766e;color:#fff;border-color:#0f766e}
.at-resp-chip .tiny{opacity:.7;font-weight:700}
.at-resp-setor{display:inline-block;font-size:10px;font-weight:700;padding:1px 8px;border-radius:20px;background:#e0f2fe;color:#075985;margin-left:4px;vertical-align:middle}

/* Anexos na conversa (mock de mídia) */
.at-anexo{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.08);border-radius:10px;padding:8px 10px;margin-bottom:6px;max-width:280px}
.msg.out .at-anexo{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.28)}
.at-anexo-ic{font-size:20px;flex:none}
.at-anexo-nome{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.at-anexo-tipo{font-size:10px;font-weight:700;text-transform:uppercase;opacity:.65;margin-left:auto;flex:none}
.at-anexo.sm{margin:0;max-width:none}
.comm-composer{display:flex;flex-direction:column}
.at-pend{display:flex;align-items:center;gap:6px;padding:6px 8px;border-top:1px solid var(--line,#e5e7eb);background:#f8fafc}
.at-anexo-tipos{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.at-anexo-op{display:flex;align-items:center;gap:8px;border:1px solid var(--line,#e5e7eb);border-radius:9px;padding:10px 12px;background:var(--surface,#fff);cursor:pointer;font-weight:600}
.at-anexo-op:hover{background:rgba(20,184,166,.07);border-color:#14b8a6}
/* Switch de automação */
.at-sw{width:38px;height:22px;border-radius:20px;border:none;background:#cbd5e1;position:relative;cursor:pointer;flex:none;transition:background .15s;padding:0}
.at-sw.on{background:#0f766e}
.at-sw-dot{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}
.at-sw.on .at-sw-dot{left:18px}
.card.resp-off{opacity:.62}

/* Finalidade dos números de WhatsApp */
.at-fin-badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;white-space:nowrap}
.at-fin-badge.fin-at{background:#dcfce7;color:#166534}
.at-fin-badge.fin-disp{background:#e0f2fe;color:#075985}
.at-fin-badge.fin-ind{background:#fef3c7;color:#92400e}
.at-fin-badge.fin-pac{background:#ede9fe;color:#5b21b6}

/* ===== Pulse.Conecta ===== */
.cx-funil{display:flex;flex-direction:column;gap:8px}
.cx-funil-row{display:flex;align-items:center;gap:10px}
.cx-funil-lb{width:92px;font-size:12px;font-weight:600;flex:none}
.cx-funil-bar{flex:1;height:16px;background:#f1f5f9;border-radius:8px;overflow:hidden}
.cx-funil-bar>div{height:100%;border-radius:8px;transition:width .3s}
.cx-funil-n{width:42px;text-align:right;font-weight:700;font-size:13px;flex:none}
.cx-recs{display:flex;flex-direction:column;gap:8px}
.cx-rec{display:flex;align-items:flex-start;gap:10px;text-align:left;border:1px solid var(--line,#e5e7eb);border-left-width:4px;border-radius:9px;padding:10px 12px;background:var(--surface,#fff);cursor:pointer;width:100%}
.cx-rec:hover{background:rgba(20,184,166,.06)}
.cx-rec-ic{font-size:20px;flex:none}
.cx-rec span span{display:block}
.cx-filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.cx-filtros .field-input{width:auto}
.cx-list{display:flex;flex-direction:column;gap:8px}
.cx-item{display:flex;gap:12px;border:1px solid var(--line,#e5e7eb);border-radius:11px;padding:12px;background:var(--surface,#fff)}
.cx-item.novo{border-left:4px solid #0f766e;background:rgba(20,184,166,.04)}
.cx-item-canal{font-size:24px;flex:none;width:34px;text-align:center}
.cx-item-main{flex:1;min-width:0}
.cx-item-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cx-item-tipo{font-size:11px;font-weight:700;background:#f1f5f9;color:#475569;padding:1px 8px;border-radius:20px}
.cx-item-un{background:#e2574c;color:#fff;font-size:10px;font-weight:700;border-radius:50%;min-width:16px;height:16px;display:inline-grid;place-items:center;padding:0 4px}
.cx-item-txt{font-size:13px;margin:5px 0 8px;color:var(--text-1,#1e293b)}
.cx-item-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cx-intencao{color:#fff;font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px}

/* Pulse.Conecta — Sinais */
.cx-sinal{display:flex;gap:12px;border:1px solid var(--line,#e5e7eb);border-radius:11px;padding:12px;background:var(--surface,#fff)}
.cx-sinal.tratado{opacity:.6}
.cx-sinal-score{color:#fff;font-weight:800;font-size:16px;width:44px;height:44px;border-radius:11px;display:grid;place-items:center;flex:none}
.cx-sinal-main{flex:1;min-width:0}
.cx-sinal-cl{font-size:12px;font-weight:700}
.cx-fatores{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.cx-fator{font-size:10.5px;background:#f1f5f9;color:#475569;border-radius:20px;padding:1px 8px}
.cx-fator b{color:#0f766e}
.cx-msg-sug{background:#eefdf3;border:1px solid #cdeed9;border-radius:10px;padding:12px;font-size:13.5px;line-height:1.5}
/* Pulse.Conecta — Leads kanban */
.cx-board{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;overflow-x:auto}
.cx-col{background:#f8fafc;border:1px solid var(--line,#e5e7eb);border-radius:11px;padding:8px;min-width:150px}
.cx-col-head{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;color:#475569;padding:4px 6px 8px;display:flex;align-items:center;gap:6px}
.cx-col-n{background:#0f766e;color:#fff;font-size:11px;border-radius:20px;min-width:18px;height:18px;display:inline-grid;place-items:center;padding:0 5px}
.cx-col-body{display:flex;flex-direction:column;gap:8px}
.cx-lead{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:9px;padding:9px;cursor:pointer;transition:box-shadow .15s}
.cx-lead:hover{box-shadow:0 3px 10px rgba(0,0,0,.08);border-color:#14b8a6}
.cx-lead-top{display:flex;align-items:center;gap:6px;font-size:13px}
.cx-lead-score{color:#fff;font-weight:800;font-size:11px;border-radius:6px;padding:1px 6px;flex:none}
.cx-lead-proc{font-size:12px;color:#0f766e;font-weight:600;margin:4px 0}
.cx-lead-foot{display:flex;justify-content:space-between}
.cx-score-bar{height:8px;background:#f1f5f9;border-radius:6px;overflow:hidden}
.cx-score-bar>div{height:100%;border-radius:6px}
.cx-ficha-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:6px}
.cx-ficha-l{display:flex;flex-direction:column;background:#f8fafc;border-radius:8px;padding:7px 10px}
.cx-etapas{display:flex;flex-wrap:wrap;gap:6px}
.cx-etapa-btn{border:1px solid var(--line,#e5e7eb);background:#fff;border-radius:20px;padding:5px 12px;font-size:12px;cursor:pointer;color:#475569}
.cx-etapa-btn.done{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.cx-etapa-btn.on{background:#0f766e;color:#fff;border-color:#0f766e;font-weight:700}

/* Pulse.Conecta — Cadências */
.cx-cad-steps{display:flex;flex-direction:column;gap:2px}
.cx-cad-step{display:flex;align-items:center;gap:10px;background:#f8fafc;border:1px solid var(--line,#e5e7eb);border-radius:9px;padding:8px 10px}
.cx-cad-when{font-size:11px;font-weight:700;color:#0f766e;min-width:88px;flex:none}
.cx-cad-ic{font-size:18px;flex:none}
.cx-cad-txt{font-size:12.5px;line-height:1.35}
.cx-cad-arrow{text-align:center;color:#94a3b8;font-size:12px;line-height:1}
/* Pulse.Conecta — Prova Social */
.cx-prova-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.cx-prova{display:flex;flex-direction:column;border:1px solid var(--line,#e5e7eb);border-radius:11px;overflow:hidden;background:var(--surface,#fff)}
.cx-prova-thumb{height:80px;display:grid;place-items:center;font-size:34px;background:linear-gradient(135deg,#eefdf3,#e0f2fe)}
.cx-prova-body{padding:10px 12px;display:flex;flex-direction:column;gap:2px;flex:1}
.cx-prova-tipo{font-size:10px;font-weight:800;text-transform:uppercase;color:#0f766e;letter-spacing:.03em}
.cx-prova .btn{margin:0 12px 12px}

/* Pulse.Conecta — Agente IA */
.cx-ag-rule{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line,#f1f5f9);font-size:13.5px}
.cx-ag-rule:last-child{border-bottom:none}

/* Administrativo — Vagas de Cirurgia */
.vg-cell{display:inline-block;font-size:12.5px;padding:2px 9px;border-radius:20px;background:#f1f5f9;color:#475569;white-space:nowrap}
.vg-cell.vg-ok{background:#dcfce7;color:#166534}
.vg-cell.vg-full{background:#fef3c7;color:#92400e}
.vg-cell.vg-over{background:#fee2e2;color:#b91c1c}
.vg-legenda{font-size:11.5px;color:var(--muted,#64748b);margin-top:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.vg-pac{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--line,#f1f5f9);font-size:13px}
.vg-pac:last-child{border-bottom:none}
.vg-pend{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line,#e5e7eb)}
.vg-dot{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}
