/* ============================================================
   SINNC Gestão Integrada — Design System
   Paleta: Azul-Marinho #0A2E6B | Ciano #0EA5E9 | Verde #23B160
   ============================================================ */

/* ── VARIÁVEIS ────────────────────────────────────────────── */
:root {
  --primary:       #0A5EB0;
  --primary-dark:  #0A2E6B;
  --primary-light: #1A7DC8;
  --primary-50:    #E3EEF8;
  --primary-100:   #B3D0EC;
  --secondary:     #23B160;
  --secondary-dark:#1A8A4A;
  --secondary-50:  #E8F8EF;
  --accent:        #0EA5E9;
  --accent-dark:   #0284C7;
  --accent-50:     #E0F7FF;

  /* Sidebar específico */
  --sidebar-bg:        #0A2E6B;
  --sidebar-bg-2:      #071D45;
  --sidebar-item-act:  #0A5EB0;
  --sidebar-accent:    #0EA5E9;
  --sidebar-text:      rgba(255,255,255,0.85);
  --sidebar-text-muted:rgba(255,255,255,0.45);

  --danger:        #D32F2F;
  --danger-50:     #FFEBEE;
  --warning:       #F57C00;
  --warning-50:    #FFF3E0;
  --info:          #0277BD;
  --info-50:       #E1F5FE;
  --success:       #2E7D32;
  --success-50:    #E8F5E9;

  --white:         #FFFFFF;
  --gray-50:       #F8FAFC;
  --gray-100:      #F1F5F9;
  --gray-200:      #E2E8F0;
  --gray-300:      #CBD5E1;
  --gray-400:      #94A3B8;
  --gray-500:      #64748B;
  --gray-600:      #475569;
  --gray-700:      #334155;
  --gray-800:      #1E293B;
  --gray-900:      #0F172A;

  --sidebar-w:       240px;
  --sidebar-w-collapsed: 64px;
  --header-h:        56px;
  --tabs-h:          42px;
  --footer-h:        36px;
  --transition:      .22s cubic-bezier(.4,0,.2,1);
  --transition-slow: .38s cubic-bezier(.4,0,.2,1);
  --transition-bounce: .45s cubic-bezier(.34,1.56,.64,1);

  --shadow-sm:   0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
  --shadow-md:   0 4px 12px rgba(0,0,0,.10), 0 2px 4px rgba(0,0,0,.06);
  --shadow-lg:   0 10px 25px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.08);
  --shadow-xl:   0 20px 50px rgba(0,0,0,.16), 0 8px 16px rgba(0,0,0,.10);
  --radius-sm:   6px;
  --radius:      10px;
  --radius-lg:   16px;
}

/* ── RESET BASE ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 14px; scroll-behavior: smooth; }
body {
  font-family: 'Montserrat', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;
  background: var(--gray-100);
  color: var(--gray-800);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--primary); text-decoration: none; transition: color .2s; }
a:hover { color: var(--primary-light); text-decoration: none; }
button { cursor: pointer; font-family: inherit; transition: all .2s; }
input, select, textarea { font-family: inherit; }

/* ── LAYOUT PRINCIPAL ─────────────────────────────────────── */
html, body { height: 100%; overflow: hidden; margin: 0; padding: 0; }
#app { height: 100%; overflow: hidden; }

.app-wrapper {
  display: grid;
  grid-template-areas:
    "sidebar header"
    "sidebar tabs"
    "sidebar content"
    "sidebar footer";
  grid-template-columns: var(--sidebar-w) 1fr;
  grid-template-rows: var(--header-h) var(--tabs-h) 1fr var(--footer-h);
  height: 100vh;        /* FIXO: impede crescimento além da viewport */
  overflow: hidden;     /* scroll fica confinado dentro dos filhos */
  transition: grid-template-columns var(--transition);
}
.app-wrapper.collapsed {
  grid-template-columns: var(--sidebar-w-collapsed) 1fr;
}

/* ── HEADER ───────────────────────────────────────────────── */
.app-header {
  grid-area: header;
  background: var(--white);
  border-bottom: 1px solid var(--gray-200);
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 0 1.25rem;
  box-shadow: 0 2px 8px rgba(0,75,141,.08);
  position: sticky;
  top: 0;
  z-index: 100;
  transition: box-shadow var(--transition);
}
.app-header:hover { box-shadow: 0 3px 12px rgba(0,75,141,.12); }
.header-toggle {
  width: 36px; height: 36px;
  border: none; background: transparent;
  border-radius: var(--radius-sm);
  color: var(--gray-600);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  transition: background var(--transition), color var(--transition), transform var(--transition);
  flex-shrink: 0;
}
.header-toggle:hover { background: var(--primary-50); color: var(--primary); transform: scale(1.08); }

.header-brand {
  display: flex; align-items: center; gap: .6rem;
  flex-shrink: 0;
}
.header-brand img {
  height: 32px; width: auto; object-fit: contain;
}
.header-brand-text {
  display: flex; flex-direction: column; line-height: 1.1;
}
.header-brand-name {
  font-size: .9rem; font-weight: 800;
  color: var(--primary);
  letter-spacing: .5px;
}
.header-brand-sub {
  font-size: .65rem; font-weight: 600;
  color: var(--accent);
  text-transform: uppercase; letter-spacing: .8px;
}

.header-unit {
  flex: 1;
  display: flex; align-items: center; gap: .4rem;
  font-size: .75rem; color: var(--gray-500);
  padding: .25rem .75rem;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: 20px;
  max-width: 360px;
}
.header-unit i { color: var(--primary); }

.header-actions {
  display: flex; align-items: center; gap: .5rem;
  margin-left: auto;
}
.header-btn {
  width: 36px; height: 36px;
  border: none; background: transparent;
  border-radius: var(--radius-sm);
  color: var(--gray-500);
  display: flex; align-items: center; justify-content: center;
  font-size: .9rem; position: relative;
  transition: background var(--transition), color var(--transition);
}
.header-btn:hover { background: var(--primary-50); color: var(--primary); }
.header-notif-badge {
  position: absolute; top: 4px; right: 4px;
  width: 8px; height: 8px;
  background: var(--danger);
  border-radius: 50%;
  border: 1.5px solid var(--white);
}

.header-user {
  display: flex; align-items: center; gap: .5rem;
  padding: .3rem .7rem;
  border-radius: 20px;
  border: 1px solid var(--gray-200);
  cursor: pointer;
  transition: background var(--transition), border-color var(--transition);
  background: var(--gray-50);
}
.header-user:hover { background: var(--primary-50); border-color: var(--primary-100); }
.header-avatar {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: var(--white);
  display: flex; align-items: center; justify-content: center;
  font-size: .7rem; font-weight: 700;
  flex-shrink: 0;
}
.header-user-info { display: flex; flex-direction: column; line-height: 1.15; }
.header-user-name { font-size: .78rem; font-weight: 600; color: var(--gray-700); }
.header-user-role { font-size: .65rem; color: var(--gray-500); }

.header-logout {
  display: flex; align-items: center; gap: .3rem;
  padding: .3rem .65rem;
  background: transparent;
  border: 1px solid var(--gray-300);
  border-radius: 20px;
  font-size: .75rem; font-weight: 600;
  color: var(--gray-600);
  transition: all var(--transition);
}
.header-logout:hover {
  background: var(--danger);
  border-color: var(--danger);
  color: var(--white);
}

/* ── SIDEBAR ──────────────────────────────────────────────── */
.app-sidebar {
  grid-area: sidebar;
  grid-row: 1 / -1;
  background: linear-gradient(180deg, #0A2E6B 0%, #071D45 100%);
  color: var(--white);
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  transition: width var(--transition-slow);
  width: var(--sidebar-w);
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 200;
  box-shadow: 3px 0 16px rgba(0,0,0,.2);
}
.app-sidebar.collapsed { width: var(--sidebar-w-collapsed); }
.app-sidebar::-webkit-scrollbar { width: 4px; }
.app-sidebar::-webkit-scrollbar-track { background: transparent; }
.app-sidebar::-webkit-scrollbar-thumb { background: rgba(14,165,233,.35); border-radius: 2px; }

.sidebar-logo {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1rem .75rem;
  border-bottom: 1px solid rgba(255,255,255,.1);
  min-height: var(--header-h);
  flex-shrink: 0;
}
.sidebar-logo-img {
  width: 36px; height: 36px;
  border-radius: var(--radius-sm);
  background: var(--white);
  display: flex; align-items: center; justify-content: center;
  padding: 3px;
  flex-shrink: 0;
  overflow: hidden;
}
.sidebar-logo-img img { width: 100%; height: 100%; object-fit: contain; }
.sidebar-logo-text {
  overflow: hidden;
  white-space: nowrap;
  transition: opacity var(--transition), width var(--transition);
}
.sidebar-logo-text strong {
  display: block;
  font-size: .9rem; font-weight: 800;
  color: var(--white);
  letter-spacing: .5px;
}
.sidebar-logo-text small {
  font-size: .6rem; font-weight: 600;
  color: var(--accent);
  text-transform: uppercase; letter-spacing: 1px;
}
.app-sidebar.collapsed .sidebar-logo-text { opacity: 0; width: 0; pointer-events: none; }

.sidebar-section-title {
  font-size: .6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: rgba(255,255,255,.4);
  padding: 1rem .9rem .3rem;
  overflow: hidden;
  white-space: nowrap;
  transition: opacity var(--transition);
}
.app-sidebar.collapsed .sidebar-section-title { opacity: 0; height: 0; padding: 0; }

.sidebar-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .65rem .9rem;
  border-radius: var(--radius-sm);
  margin: 2px .5rem;
  cursor: pointer;
  transition: background var(--transition), color var(--transition), transform var(--transition);
  white-space: nowrap;
  overflow: hidden;
  color: rgba(255,255,255,.72);
  font-size: .82rem;
  font-weight: 500;
  position: relative;
}
.sidebar-item:hover {
  background: rgba(255,255,255,.12);
  color: var(--white);
  transform: translateX(2px);
}
.sidebar-item.active {
  background: linear-gradient(90deg, var(--primary-light), rgba(0,96,182,.7));
  color: var(--white);
  font-weight: 600;
  transform: translateX(0);
}
.sidebar-item.active::before {
  content: '';
  position: absolute;
  left: 0; top: 20%; bottom: 20%;
  width: 3px;
  background: var(--accent);
  border-radius: 0 3px 3px 0;
  margin-left: -8px;
}
.sidebar-item i {
  width: 18px; text-align: center;
  font-size: .95rem;
  flex-shrink: 0;
  color: rgba(255,255,255,.7);
}
.sidebar-item.active i,
.sidebar-item:hover i { color: var(--white); }
.sidebar-item span {
  transition: opacity var(--transition);
  overflow: hidden;
}
.app-sidebar.collapsed .sidebar-item span { opacity: 0; width: 0; }
.app-sidebar.collapsed .sidebar-item { justify-content: center; }
.app-sidebar.collapsed .sidebar-item i { width: auto; font-size: 1.1rem; }

/* Tooltip no modo colapsado */
.app-sidebar.collapsed .sidebar-item {
  position: relative;
}
.app-sidebar.collapsed .sidebar-item::after {
  content: attr(data-label);
  position: absolute;
  left: calc(100% + 8px);
  top: 50%; transform: translateY(-50%);
  background: var(--gray-900);
  color: var(--white);
  font-size: .75rem;
  font-weight: 600;
  padding: .35rem .65rem;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s;
  z-index: 9999;
  box-shadow: var(--shadow-md);
}
.app-sidebar.collapsed .sidebar-item:hover::after { opacity: 1; }

/* ── BARRA DE ABAS ────────────────────────────────────────── */
.tabs-bar {
  grid-area: tabs;
  background: var(--gray-100);
  border-bottom: 2px solid var(--gray-200);
  display: flex;
  align-items: flex-end;
  padding: 0 .75rem;
  gap: 2px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  flex-shrink: 0;
}
.tabs-bar::-webkit-scrollbar { display: none; }

.tab-item {
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: .5rem .85rem;
  background: var(--gray-200);
  border: 1px solid var(--gray-300);
  border-bottom: none;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  font-size: .75rem;
  font-weight: 500;
  color: var(--gray-600);
  cursor: pointer;
  white-space: nowrap;
  max-width: 180px;
  transition: background var(--transition), color var(--transition), box-shadow var(--transition);
  position: relative;
  bottom: -2px;
  user-select: none;
  flex-shrink: 0;
}
.tab-item:hover { background: var(--white); color: var(--gray-700); }
.tab-item.active {
  background: var(--white);
  color: var(--primary);
  border-color: var(--gray-200);
  border-bottom-color: var(--white);
  font-weight: 600;
  box-shadow: 0 -2px 0 0 var(--primary) inset;
}
.tab-item i { font-size: .75rem; flex-shrink: 0; }
.tab-label { overflow: hidden; text-overflow: ellipsis; max-width: 120px; }
.tab-close {
  width: 16px; height: 16px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: var(--gray-400);
  display: flex; align-items: center; justify-content: center;
  font-size: .6rem;
  flex-shrink: 0;
  transition: background var(--transition), color var(--transition);
  margin-left: .1rem;
  line-height: 1;
}
.tab-close:hover { background: var(--danger); color: var(--white); }

/* ── ÁREA DE CONTEÚDO ─────────────────────────────────────── */
.app-content {
  grid-area: content;
  overflow-y: auto;     /* scroll padrão para telas normais */
  overflow-x: hidden;
  background: var(--gray-100);
  min-height: 0;        /* essencial no grid para não vazar */
}
/* No prontuário: scroll migra para dentro do pron-body-layout */
.app-content.pron-mode {
  overflow: hidden;     /* bloqueia scroll no app-content */
  display: flex;
  flex-direction: column;
  min-height: 0;
}
/* Cadeia flex: cada elo precisa de overflow:hidden + min-height:0 */
.app-content.pron-mode #tab-content-area {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 0;
}
.app-content.pron-mode .page-content {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 0;
}
.app-content.pron-mode #prontuario-root {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.app-content.pron-mode .pron-container {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.tab-panel { display: none; height: 100%; }
.tab-panel.active { display: block; }

.page-content {
  padding: 1.25rem;
}

/* ── RODAPÉ ───────────────────────────────────────────────── */
.app-footer {
  grid-area: footer;
  background: var(--white);
  border-top: 1px solid var(--gray-200);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.25rem;
  font-size: .68rem;
  color: var(--gray-400);
}
.footer-brand { display: flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--gray-500); }
.footer-brand i { color: var(--primary); }
.footer-env {
  padding: .15rem .5rem;
  border-radius: 20px;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.footer-env.prod { background: var(--success-50); color: var(--success); }
.footer-env.homolog { background: var(--warning-50); color: var(--warning); }

/* ══════════════════════════════════════════════════════════════════════
   LOGIN PAGE — SINNC SAÚDE UPA24H — Fiel ao SVG Vetorizado Oficial
   Fundo branco→azul claro, curvas azuis à esquerda, card direito
   ══════════════════════════════════════════════════════════════════════ */

/* ── Fullscreen wrapper ─────────────────────────────────────────── */
.login-page {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  background: linear-gradient(135deg, #ffffff 0%, #f3f9ff 48%, #e3f2ff 100%);
  position: relative;
  font-family: 'Montserrat', 'Segoe UI', Arial, sans-serif;
  overflow: hidden;
}

/* ── SVG de fundo completo (curvas + UPA + elementos) ──────────── */
.login-svg-bg {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  pointer-events: none;
  z-index: 0;
}

/* ── Badge 24h — canto superior direito ─────────────────────────── */
.login-badge-24h {
  position: absolute;
  top: 1.5rem;
  right: 2.5rem;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
  opacity: .78;
  animation: fadeInDown .6s ease .2s both;
}
.login-badge-24h-ring {
  width: 78px; height: 78px;
  border-radius: 50%;
  border: 3px dashed #3299e8;
  display: flex; flex-direction: row;
  align-items: center; justify-content: center;
  position: relative;
}
.login-badge-24h-arrow {
  position: absolute;
  top: -5px; right: -5px;
  width: 0; height: 0;
  border-left: 7px solid transparent;
  border-right: 0 solid transparent;
  border-bottom: 12px solid #2696e6;
  transform: rotate(30deg);
}
.login-badge-24h-num {
  font-size: 2.2rem;
  font-weight: 900;
  color: #166bd0;
  line-height: 1;
  letter-spacing: -2px;
  font-family: 'Montserrat', Arial, sans-serif;
}
.login-badge-24h-h {
  font-size: .95rem;
  font-weight: 800;
  color: #166bd0;
  margin-left: 1px;
  line-height: 1;
}
/* ECG após o badge */
.login-badge-ekg {
  margin-top: 6px;
  width: 70px; height: 14px;
}

/* ── Layout split: esquerdo (62%) + direito (38%) ─────────────── */
.login-split {
  display: flex;
  flex: 1;
  height: calc(100vh - 50px);
  position: relative;
  z-index: 3;
}

/* ══ LADO ESQUERDO ══════════════════════════════════════════════ */
.login-left {
  flex: 1.65;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 2.8rem 2rem 0 3.2rem;
  position: relative;
  min-width: 0;
  overflow: hidden;
}

/* Logo SINNC — grande e nítido como no mockup ── */
.login-logo-img {
  width: auto;
  max-width: min(590px, 90%);
  height: auto;
  display: block;
  filter: drop-shadow(0 4px 16px rgba(0,40,120,.16));
  margin-bottom: .7rem;
  animation: fadeInDown .55s cubic-bezier(.34,1.4,.64,1) both;
}

/* Subtítulo ── */
.login-subtitle {
  font-size: 1.05rem;
  font-weight: 500;
  color: #061f63;
  text-align: left;
  line-height: 1.6;
  margin-bottom: 2rem;
  letter-spacing: .2px;
  animation: fadeInUp .5s ease .15s both;
}

/* 3 features com ícone ── */
.login-features {
  display: flex;
  gap: 0;
  justify-content: flex-start;
  flex-wrap: nowrap;
  align-items: flex-start;
  position: relative;
  animation: fadeInUp .55s ease .25s both;
}
/* Separadores verticais */
.login-feat:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0; top: 5%;
  height: 90%;
  width: 1.5px;
  background: rgba(108,159,199,.5);
}
.login-feat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .45rem;
  width: 115px;
  text-align: center;
  padding: 0 8px;
  position: relative;
  flex-shrink: 0;
}
.login-feat-icon {
  width: 60px; height: 60px;
  border-radius: 14px;
  border: 1.5px solid rgba(0,60,140,.16);
  background: rgba(249,253,255,.98);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 3px 12px rgba(0,60,140,.10);
  transition: transform .2s, box-shadow .2s;
}
.login-feat-icon:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,60,140,.18);
}
.login-feat-label {
  font-size: .63rem;
  font-weight: 800;
  color: #061f63;
  text-transform: uppercase;
  letter-spacing: .4px;
  line-height: 1.3;
}
.login-feat-desc {
  font-size: .6rem;
  color: #2a4060;
  line-height: 1.35;
  opacity: .85;
}

/* ══ LADO DIREITO — Card de login ════════════════════════════════ */
.login-right {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 2.5rem;
  flex-shrink: 0;
  width: 430px;
  position: relative;
  z-index: 5;
}

/* Card branco ── */
.login-card {
  width: 100%;
  max-width: 380px;
  background: #ffffff;
  border-radius: 24px;
  box-shadow:
    0 18px 60px rgba(11,55,111,.18),
    0 4px 16px rgba(0,0,0,.06);
  overflow: visible;
  position: relative;
  animation: slideInCard .55s cubic-bezier(.34,1.4,.64,1) both;
}
@keyframes slideInCard {
  from { opacity: 0; transform: translateY(28px) scale(.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Ícone de cadeado — flutua acima do card ── */
.login-card-lock {
  display: flex;
  justify-content: center;
  margin-bottom: -22px;
  position: relative;
  z-index: 1;
}
.login-card-lock-ring {
  width: 70px; height: 70px;
  border-radius: 50%;
  background: #f5fbff;
  border: 3px solid #d5e6f6;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 18px rgba(0,60,140,.16);
}
.login-card-lock-inner {
  width: 50px; height: 50px;
  border-radius: 50%;
  background: #eef8ff;
  display: flex; align-items: center; justify-content: center;
}
.login-card-lock-inner i {
  font-size: 1.45rem;
  color: #0062c8;
}

/* Corpo do card ── */
.login-card-body {
  padding: 2rem 1.8rem 1.6rem;
}
.login-card-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #061f63;
  text-align: center;
  margin-bottom: .2rem;
  margin-top: .6rem;
  font-family: 'Montserrat', Arial, sans-serif;
}
.login-card-desc {
  font-size: .79rem;
  color: #6b7b93;
  text-align: center;
  margin-bottom: 1.3rem;
}

/* Alerta de erro ── */
.login-alert {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: #fff0f0;
  border: 1px solid #ffcdd2;
  border-radius: 8px;
  color: #c62828;
  padding: .6rem .85rem;
  font-size: .78rem;
  margin-bottom: .9rem;
  font-weight: 500;
  animation: shakeX .4s ease;
}
@keyframes shakeX {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-5px); }
  40% { transform: translateX(5px); }
  60% { transform: translateX(-3px); }
  80% { transform: translateX(3px); }
}
.login-alert.d-none { display: none; }

/* Labels ── */
.login-label {
  display: block;
  font-size: .77rem;
  font-weight: 700;
  color: #061f63;
  margin-bottom: .3rem;
  letter-spacing: .2px;
}

/* Campos ── */
.login-field { margin-bottom: .9rem; }
.login-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.login-input-icon {
  position: absolute;
  left: .9rem;
  color: #546b86;
  font-size: .82rem;
  pointer-events: none;
  opacity: .65;
}
.login-input {
  width: 100%;
  padding: .78rem .9rem .78rem 2.4rem;
  border: 1.5px solid #c4d4e6;
  border-radius: 10px;
  font-size: .88rem;
  color: #061f63;
  background: #ffffff;
  transition: border-color .22s, box-shadow .22s, background .22s;
  outline: none;
  font-family: 'Montserrat', Arial, sans-serif;
}
.login-input:focus {
  border-color: #006be5;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(0,107,229,.12);
}
.login-input::placeholder { color: #b0c4d8; font-size: .85rem; }
.login-eye-btn {
  position: absolute; right: .75rem;
  background: transparent; border: none;
  color: #546b86; cursor: pointer;
  font-size: .82rem; padding: 0; line-height: 1;
  opacity: .65;
  transition: opacity .2s, color .2s;
}
.login-eye-btn:hover { opacity: 1; color: #0069C8; }

/* Lembrar + Esqueci ── */
.login-options {
  display: flex; align-items: center;
  justify-content: space-between;
  margin: .1rem 0 1rem;
  font-size: .76rem;
}
.login-remember {
  display: flex; align-items: center;
  gap: .4rem; color: #2c3f58;
  cursor: pointer; user-select: none; font-weight: 500;
}
.login-remember input[type=checkbox] {
  width: 16px; height: 16px;
  border: 1.5px solid #b8c9dd;
  border-radius: 4px;
  accent-color: #006be5; cursor: pointer;
}
.login-forgot {
  color: #006be5; font-size: .76rem;
  text-decoration: none; font-weight: 600;
  transition: color .2s;
}
.login-forgot:hover { color: #003eaf; text-decoration: underline; }

/* Botão Entrar ── */
.login-btn {
  width: 100%; padding: .9rem;
  background: linear-gradient(90deg, #0067df 0%, #003eaf 100%);
  color: #fff; border: none; border-radius: 12px;
  font-size: .95rem; font-weight: 800; letter-spacing: .5px;
  cursor: pointer;
  transition: filter .2s, box-shadow .2s, transform .15s;
  box-shadow: 0 6px 22px rgba(0,70,180,.38);
  display: flex; align-items: center; justify-content: center; gap: .55rem;
  margin-bottom: .7rem;
  font-family: 'Montserrat', Arial, sans-serif;
  position: relative;
  overflow: hidden;
}
.login-btn::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.15), transparent);
  transition: left .5s ease;
}
.login-btn:hover::before { left: 150%; }
.login-btn:hover {
  filter: brightness(1.1);
  box-shadow: 0 10px 30px rgba(0,70,180,.5);
  transform: translateY(-1px);
}
.login-btn:active { transform: translateY(0); filter: brightness(.97); }

/* Botão Suporte ── */
.login-btn-support {
  width: 100%; padding: .78rem;
  background: #ffffff; color: #006be5;
  border: 1.5px solid #006be5; border-radius: 12px;
  font-size: .9rem; font-weight: 800; cursor: pointer;
  transition: background .2s, border-color .2s, color .2s, box-shadow .2s;
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  font-family: 'Montserrat', Arial, sans-serif;
}
.login-btn-support:hover {
  background: #f0f7ff;
  border-color: #003eaf;
  color: #003eaf;
  box-shadow: 0 4px 16px rgba(0,60,180,.12);
}

/* ── RODAPÉ ─────────────────────────────────────────────── */
.login-footer {
  height: 50px;
  background: linear-gradient(90deg, #022b72 0%, #001f57 100%);
  display: flex; align-items: center;
  justify-content: space-between;
  padding: 0 2.5rem;
  flex-shrink: 0;
  position: relative; z-index: 5;
}
.login-footer-item {
  display: flex; align-items: center;
  gap: .5rem; font-size: .72rem;
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 500; color: rgba(255,255,255,.82);
}
.login-footer-item i { color: rgba(255,255,255,.45); font-size: .75rem; }
.login-footer-sep { color: rgba(255,255,255,.25); font-size: .9rem; }
.login-footer-center {
  display: flex; align-items: center; gap: .5rem;
  position: absolute; left: 50%; transform: translateX(-50%);
  font-size: .72rem; color: rgba(255,255,255,.82);
  font-family: 'Montserrat', Arial, sans-serif;
}

/* ── ANIMAÇÕES ─────────────────────────────────────────── */
@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-16px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── MODAL RECUPERAÇÃO DE SENHA ──────────────────────────── */
.login-recovery-overlay {
  position: fixed; inset: 0;
  background: rgba(6,31,99,.45);
  z-index: 2000;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(4px);
  animation: fadeIn .2s ease;
}
.login-recovery-card {
  background: #fff;
  border-radius: 20px;
  padding: 2rem;
  width: 380px; max-width: 90vw;
  box-shadow: 0 20px 60px rgba(0,40,120,.25);
  animation: slideInCard .4s cubic-bezier(.34,1.4,.64,1) both;
}
.login-recovery-title {
  font-size: 1.05rem; font-weight: 800;
  color: #061f63; text-align: center; margin-bottom: .35rem;
}
.login-recovery-desc {
  font-size: .78rem; color: #6b7b93;
  text-align: center; margin-bottom: 1.2rem; line-height: 1.5;
}
.login-recovery-close {
  position: absolute; top: .85rem; right: 1rem;
  background: transparent; border: none;
  font-size: 1rem; color: #6b7b93; cursor: pointer;
}

/* ── RESPONSIVIDADE ─────────────────────────────────────── */
@media (max-width: 980px) {
  .login-split { flex-direction: column; height: auto; }
  .login-left { padding: 2rem 2rem 1rem; align-items: center; }
  .login-subtitle { text-align: center; }
  .login-features { justify-content: center; gap: .5rem; }
  .login-right { width: 100%; max-width: 460px; margin: 0 auto; padding: 1rem 1.5rem 1.5rem; }
  .login-card { max-width: 100%; }
  .login-logo-img { max-width: 400px; margin: 0 auto; }
  .login-badge-24h { top: .8rem; right: 1rem; }
}
@media (max-width: 540px) {
  .login-left { padding: 1.5rem 1rem .5rem; }
  .login-features { gap: .2rem; }
  .login-feat { width: 95px; }
  .login-right { padding: .8rem 1rem 1.5rem; }
  .login-card-body { padding: 1.5rem 1.2rem 1.4rem; }
  .login-footer { flex-wrap: wrap; height: auto; padding: .5rem 1rem; gap: .2rem; justify-content: center; }
  .login-footer-sep { display: none; }
  .login-footer-center { position: static; transform: none; }
}

/* ── PAGE HEADER ──────────────────────────────────────────── */
.page-header {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.page-header h1 {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--gray-800);
  display: flex; align-items: center; gap: .5rem;
}
.page-header h1 i { color: var(--primary); font-size: 1.1rem; }
.page-header .ms-auto { margin-left: auto; }

/* ── Seletor de data do Dashboard ────────────────────────── */
#dash-date-input::-webkit-calendar-picker-indicator {
  opacity: .5;
  cursor: pointer;
  width: 14px;
  height: 14px;
}
#dash-date-input::-webkit-calendar-picker-indicator:hover { opacity: 1; }
#dash-date-input:hover { color: var(--primary); }

/* ── CARDS ────────────────────────────────────────────────── */
.card {
  background: var(--white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--gray-200);
  overflow: hidden;
  transition: box-shadow var(--transition), transform var(--transition);
}
.card:hover { box-shadow: var(--shadow-md); }
.card-header {
  padding: .875rem 1.125rem;
  font-weight: 700;
  font-size: .85rem;
  color: var(--gray-700);
  border-bottom: 1px solid var(--gray-200);
  background: linear-gradient(90deg, var(--gray-50), var(--white));
  display: flex; align-items: center; gap: .5rem;
}
.card-header i { color: var(--primary); }
.card-body { padding: 1rem 1.125rem; }
.card-footer {
  padding: .75rem 1.125rem;
  border-top: 1px solid var(--gray-200);
  background: var(--gray-50);
  font-size: .78rem;
  color: var(--gray-500);
}

/* ── STAT CARDS ───────────────────────────────────────────── */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: .875rem;
  margin-bottom: 1.25rem;
}
.stat-card {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 1rem 1.125rem;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--gray-200);
  border-left: 4px solid var(--gray-300);
  cursor: pointer;
  transition: transform var(--transition-bounce), box-shadow var(--transition);
  position: relative;
  overflow: hidden;
}
.stat-card::after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 60px; height: 60px;
  border-radius: 50%;
  background: currentColor;
  opacity: .04;
  transform: translate(20px, -20px);
}
.stat-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.stat-card.red    { border-left-color: var(--danger); }
.stat-card.orange { border-left-color: var(--accent); }
.stat-card.green  { border-left-color: var(--secondary); }
.stat-card.blue   { border-left-color: var(--primary); }
.stat-card.purple { border-left-color: #7B1FA2; }
.stat-card.cyan   { border-left-color: #0097A7; }
.stat-card.gray   { border-left-color: var(--gray-500); }
.stat-card-label { font-size: .72rem; font-weight: 600; color: var(--gray-500); text-transform: uppercase; letter-spacing: .4px; margin-bottom: .35rem; }
.stat-card-value { font-size: 1.9rem; font-weight: 800; color: var(--gray-800); line-height: 1; }
.stat-card-sub   { font-size: .7rem; color: var(--gray-400); margin-top: .3rem; display: flex; align-items: center; gap: .3rem; }

/* ── GRIDS ────────────────────────────────────────────────── */
.grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; margin-bottom: 1rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
@media (max-width: 900px) {
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 600px) {
  .stats-grid { grid-template-columns: 1fr; }
}

/* ── BOTÕES ───────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .5rem 1rem;
  border-radius: var(--radius-sm);
  font-size: .82rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: all var(--transition);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}
.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.15);
  opacity: 0;
  transition: opacity var(--transition);
}
.btn:hover::before { opacity: 1; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.btn:active { transform: translateY(0); }
.btn-sm { padding: .35rem .7rem; font-size: .75rem; }
.btn-lg { padding: .75rem 1.5rem; font-size: .9rem; }

.btn-primary   { background: var(--primary); color: var(--white); box-shadow: 0 2px 8px rgba(0,75,141,.28); }
.btn-primary:hover { box-shadow: 0 6px 16px rgba(0,75,141,.4); }
.btn-secondary { background: var(--secondary); color: var(--white); box-shadow: 0 2px 8px rgba(35,177,96,.28); }
.btn-secondary:hover { box-shadow: 0 6px 16px rgba(35,177,96,.4); }
.btn-accent    { background: var(--accent); color: var(--white); box-shadow: 0 2px 8px rgba(247,148,29,.28); }
.btn-danger    { background: var(--danger); color: var(--white); }
.btn-warning   { background: var(--warning); color: var(--white); }
.btn-info      { background: var(--info); color: var(--white); }
.btn-success   { background: var(--success); color: var(--white); }
.btn-outline   { background: transparent; border: 1.5px solid var(--primary); color: var(--primary); }
.btn-outline:hover { background: var(--primary-50); transform: translateY(-1px); }
.btn-ghost     { background: var(--gray-100); color: var(--gray-600); border: 1px solid var(--gray-300); }
.btn-ghost:hover { background: var(--gray-200); }
.btn-group     { display: flex; flex-wrap: wrap; gap: .5rem; }

/* ── TABELAS ──────────────────────────────────────────────── */
.table-wrap { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--gray-200); box-shadow: var(--shadow-sm); }
table { width: 100%; border-collapse: collapse; font-size: .82rem; }
thead th {
  background: linear-gradient(90deg, #f8fafc, #f1f5f9);
  color: var(--gray-600);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  padding: .75rem .875rem;
  border-bottom: 2px solid var(--gray-200);
  white-space: nowrap;
  text-align: left;
}
tbody td {
  padding: .72rem .875rem;
  border-bottom: 1px solid var(--gray-100);
  color: var(--gray-700);
  vertical-align: middle;
  transition: background var(--transition);
}
tbody tr:last-child td { border-bottom: none; }
tbody tr { transition: background var(--transition); }
tbody tr:hover { background: #eef6ff; }

/* ── FORMULÁRIOS ──────────────────────────────────────────── */
.form-group { margin-bottom: 1rem; }
.form-group label {
  display: block;
  font-size: .78rem; font-weight: 600;
  color: var(--gray-600);
  margin-bottom: .35rem;
}
.form-control {
  width: 100%;
  padding: .55rem .8rem;
  border: 1.5px solid var(--gray-300);
  border-radius: var(--radius-sm);
  font-size: .85rem;
  color: var(--gray-800);
  background: var(--white);
  outline: none;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.form-control:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-50); }
select.form-control { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M0 0l6 8 6-8z' fill='%2394A3B8'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .75rem center; padding-right: 2rem; appearance: none; }
textarea.form-control { resize: vertical; min-height: 90px; }
.form-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: .875rem; }

/* ── BADGES / RISCO ───────────────────────────────────────── */
.badge {
  display: inline-flex; align-items: center; gap: .25rem;
  padding: .2rem .6rem;
  border-radius: 20px;
  font-size: .7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .3px;
  white-space: nowrap;
}
.badge-primary   { background: var(--primary-50); color: var(--primary); }
.badge-secondary { background: var(--secondary-50); color: var(--secondary-dark); }
.badge-warning   { background: var(--warning-50); color: var(--warning); }
.badge-danger    { background: var(--danger-50); color: var(--danger); }
.badge-success   { background: var(--success-50); color: var(--success); }
.badge-gray      { background: var(--gray-200); color: var(--gray-600); }
.badge-accent    { background: var(--accent-50); color: var(--accent-dark); }

.risco {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .2rem .6rem;
  border-radius: 4px;
  font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .3px;
  white-space: nowrap;
}
.risco-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.risco-VERMELHO { background: #FFEBEE; color: #C62828; border-left: 3px solid #C62828; }
.risco-LARANJA  { background: #FFF3E0; color: #E65100; border-left: 3px solid #E65100; }
.risco-AMARELO  { background: #FFFDE7; color: #F57F17; border-left: 3px solid #F57F17; }
.risco-VERDE    { background: #E8F5E9; color: #2E7D32; border-left: 3px solid #2E7D32; }
.risco-AZUL     { background: #E3F2FD; color: #1565C0; border-left: 3px solid #1565C0; }

/* ── STATUS BADGES ────────────────────────────────────────── */
.status-AGUARDANDO_TRIAGEM  { background: #E3F2FD; color: #1565C0; }
.status-AGUARDANDO_MEDICO   { background: #FFF8E1; color: #F57F17; }
.status-EM_ATENDIMENTO      { background: #E8F5E9; color: #2E7D32; }
.status-EM_OBSERVACAO       { background: #E8EAF6; color: #3949AB; }
.status-AGUARDANDO_MEDICACAO{ background: #FCE4EC; color: #AD1457; }
.status-AGUARDANDO_EXAME    { background: #E8EAF6; color: #3949AB; }
.status-AGUARDANDO_REGULACAO{ background: #FFF3E0; color: #E65100; }
.status-ALTA                { background: #E8F5E9; color: #2E7D32; }
.status-TRANSFERIDO         { background: #E3F2FD; color: #0277BD; }
.status-EVASAO              { background: #FFF8E1; color: #F57F17; }
.status-OBITO               { background: #ECEFF1; color: #455A64; }
.status-CANCELADO           { background: #FAFAFA; color: #9E9E9E; }

/* ── ALERTAS ──────────────────────────────────────────────── */
.alert {
  display: flex; align-items: flex-start; gap: .6rem;
  padding: .875rem 1rem;
  border-radius: var(--radius-sm);
  font-size: .82rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
}
.alert i { margin-top: .05rem; flex-shrink: 0; }
.alert-info    { background: var(--info-50);    color: var(--info);    border-color: #B3E5FC; }
.alert-success { background: var(--success-50); color: var(--success); border-color: #C8E6C9; }
.alert-warning { background: var(--warning-50); color: var(--warning); border-color: #FFE0B2; }
.alert-danger  { background: var(--danger-50);  color: var(--danger);  border-color: #FFCDD2; }

/* ── MODAL ────────────────────────────────────────────────── */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  animation: fadeIn .18s ease;
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.modal {
  background: var(--white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  width: 100%;
  max-width: 580px;
  max-height: 90vh;
  overflow: hidden;
  display: flex; flex-direction: column;
  animation: slideUp .28s cubic-bezier(.34,1.4,.64,1);
}
.modal-lg { max-width: 820px; }
.modal-xl { max-width: 1100px; }
@keyframes slideUp { from { opacity: 0; transform: translateY(28px) scale(.97); } to { opacity: 1; transform: none; } }
.modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: .875rem 1.25rem;
  border-bottom: 1px solid var(--gray-200);
  background: linear-gradient(90deg, var(--gray-50), var(--white));
}
.modal-title { font-size: .95rem; font-weight: 700; color: var(--gray-800); display: flex; align-items: center; gap: .5rem; }
.modal-title i { color: var(--primary); }
.modal-close {
  width: 30px; height: 30px;
  border: none; background: transparent;
  border-radius: 50%;
  color: var(--gray-500);
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem;
  transition: background var(--transition), color var(--transition), transform var(--transition);
}
.modal-close:hover { background: var(--danger); color: var(--white); transform: rotate(90deg); }
.modal-body { padding: 1.25rem; overflow-y: auto; flex: 1; }
.modal-footer {
  padding: .875rem 1.25rem;
  border-top: 1px solid var(--gray-200);
  display: flex; justify-content: flex-end; gap: .5rem;
  background: var(--gray-50);
}

/* ── SEARCH BOX ───────────────────────────────────────────── */
.search-box { position: relative; }
.search-box i { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--gray-400); font-size: .85rem; }
.search-box input { padding-left: 2.25rem; }

/* ── FILTROS BAR ──────────────────────────────────────────── */
.filtros-bar {
  display: flex; align-items: flex-end; gap: .75rem; flex-wrap: wrap;
  background: var(--white); border: 1px solid var(--gray-200);
  border-radius: var(--radius); padding: .875rem 1rem;
  margin-bottom: 1rem; box-shadow: var(--shadow-sm);
}
.filtros-bar .form-group { margin-bottom: 0; }
.flex-1 { flex: 1; min-width: 150px; }

/* ── TOASTS (notificações) ─────────────────────────────────
   Sobrepostas ao conteúdo, canto superior direito, abaixo do
   cabeçalho: não deslocam o layout nem cobrem o rodapé de ações. */
#toast-container {
  position: fixed; top: 64px; right: 16px; z-index: 10050;
  display: flex; flex-direction: column; align-items: flex-end; gap: 8px;
  width: min(380px, calc(100vw - 32px)); pointer-events: none;
}
.toast {
  pointer-events: auto; position: relative; overflow: hidden;
  display: grid; grid-template-columns: 22px 1fr 24px; align-items: start; gap: 10px;
  width: 100%; padding: 12px 12px 14px 14px;
  background: #fff; color: #1e293b; border-radius: 12px;
  border: 1px solid #e2e8f0; border-left: 4px solid var(--t-cor, #2563eb);
  box-shadow: 0 10px 30px -8px rgba(15,23,42,.28), 0 2px 6px rgba(15,23,42,.08);
  font-size: .8rem; line-height: 1.35;
  animation: toastEntra .28s cubic-bezier(.21,1.02,.73,1) both;
}
.toast.saindo { animation: toastSai .2s ease forwards; }
.toast.pulsa { animation: toastPulsa .35s ease; }
.toast-ic { font-size: 1.1rem; color: var(--t-cor); margin-top: 1px; }
.toast-txt { min-width: 0; word-wrap: break-word; }
.toast-txt strong { display: block; font-size: .78rem; font-weight: 700; color: #0f172a; margin-bottom: 1px; }
.toast-msg { display: block; color: #475569; }
.toast-cont[hidden] { display: none !important; }
.toast-cont { display: inline-block; margin-left: 6px; font-size: .66rem; background: var(--t-cor); color: #fff; border-radius: 99px; padding: 0 6px; vertical-align: 1px; }
.toast-x { border: 0; background: transparent; color: #94a3b8; font-size: 1.15rem; line-height: 1; width: 24px; height: 24px; border-radius: 6px; cursor: pointer; padding: 0; }
.toast-x:hover { background: #f1f5f9; color: #0f172a; }
.toast-barra { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--t-cor); opacity: .45; transform-origin: left; }
.toast.success { --t-cor: #16a34a; }
.toast.error   { --t-cor: #dc2626; background: #fffafa; }
.toast.warning { --t-cor: #d97706; }
.toast.info    { --t-cor: #2563eb; }
@keyframes toastEntra { from { opacity: 0; transform: translateY(-10px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes toastSai { to { opacity: 0; transform: translateX(24px); height: 0; padding-top: 0; padding-bottom: 0; margin: 0; } }
@keyframes toastPulsa { 50% { transform: scale(1.02); } }
@media (max-width: 640px) { #toast-container { top: auto; bottom: 12px; right: 12px; left: 12px; width: auto; align-items: stretch; } }
@media (prefers-reduced-motion: reduce) { .toast, .toast.saindo { animation: none; } .toast-barra { display: none; } }

/* Modais no padrão "modal-dialog" (usado por várias telas): centralizados,
   com fundo escurecido — antes apareciam soltos no rodapé da página. */
#modal-root.active { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 1rem;
  background: rgba(15,23,42,.45); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); animation: fadeIn .15s ease; }
#modal-root.active > .modal-overlay { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
#modal-root > .modal-dialog { background: #fff; border-radius: 14px; width: 100%; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 25px 60px -12px rgba(15,23,42,.45); animation: slideUp .25s cubic-bezier(.21,1.02,.73,1); }
#modal-root > .modal-dialog > .modal-header h3 { margin: 0; font-size: .95rem; font-weight: 700; color: #0f172a; display: flex; gap: .5rem; align-items: center; }
#modal-root > .modal-dialog > .modal-body { overflow-y: auto; }

/* ── LOADING OVERLAY ──────────────────────────────────────── */
#loading-overlay {
  position: fixed; inset: 0;
  background: rgba(255,255,255,.8);
  z-index: 9998;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  animation: fadeIn .15s ease;
}
.spinner {
  width: 40px; height: 40px;
  border: 3.5px solid var(--gray-200);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin .65s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── FORMULÁRIOS ── enhancements ── */
.form-control:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--primary-50);
  background: var(--white);
}

/* ── UTILS ────────────────────────────────────────────────── */
.d-none  { display: none !important; }
.d-flex  { display: flex !important; }
.d-grid  { display: grid !important; }
.gap-1   { gap: .5rem; }
.gap-2   { gap: 1rem; }
.text-center { text-align: center; }
.text-right  { text-align: right; }
.text-muted  { color: var(--gray-500); }
.text-danger { color: var(--danger); }
.text-success{ color: var(--success); }
.text-primary{ color: var(--primary); }
.text-accent { color: var(--accent); }
.fw-bold  { font-weight: 700; }
.fw-800   { font-weight: 800; }
.fs-sm    { font-size: .78rem; }
.fs-xs    { font-size: .7rem; }
.mt-1 { margin-top: .5rem; }
.mt-2 { margin-top: 1rem; }
.mb-1 { margin-bottom: .5rem; }
.mb-2 { margin-bottom: 1rem; }
.ms-auto { margin-left: auto; }
.p-1  { padding: .5rem; }
.p-2  { padding: 1rem; }
.w-100 { width: 100%; }
.rounded { border-radius: var(--radius-sm); }

/* ── TABS CONTENT (dentro de páginas) ────────────────────── */
.page-tabs { display: flex; gap: 0; border-bottom: 2px solid var(--gray-200); margin-bottom: 1rem; }
.page-tab-btn {
  padding: .6rem 1.1rem; background: transparent;
  border: none; border-bottom: 2.5px solid transparent;
  font-size: .82rem; font-weight: 600; color: var(--gray-500);
  cursor: pointer; margin-bottom: -2px;
  transition: color var(--transition), border-color var(--transition);
}
.page-tab-btn.active { color: var(--primary); border-bottom-color: var(--primary); }
.page-tab-btn:hover  { color: var(--primary); }
.page-tab-panel { display: none; }
.page-tab-panel.active { display: block; }

/* ── PAINEL TV (legacy stubs — mantidos para não quebrar referências antigas) ── */
.painel-page { background: #0a1628; min-height: 100vh; color: white; }
.painel-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.painel-title  { font-size: 1.4rem; font-weight: 800; }
.painel-grid   { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); gap: 1rem; }
.painel-card   { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); border-radius: var(--radius); padding: 1.25rem; border-left: 4px solid; }

/* ── RESPONSIVIDADE ───────────────────────────────────────── */
@media (max-width: 1024px) {
  .app-wrapper {
    grid-template-columns: var(--sidebar-w-collapsed) 1fr;
  }
  .app-sidebar { width: var(--sidebar-w-collapsed); }
  .app-sidebar.mobile-open { width: var(--sidebar-w); position: fixed; }
  .sidebar-logo-text { opacity: 0; width: 0; pointer-events: none; }
  .sidebar-section-title { opacity: 0; height: 0; padding: 0; }
  .sidebar-item span { opacity: 0; width: 0; }
  .sidebar-item { justify-content: center; }
  .sidebar-item i { width: auto; font-size: 1.1rem; }
  .app-sidebar.mobile-open .sidebar-logo-text { opacity: 1; width: auto; pointer-events: auto; }
  .app-sidebar.mobile-open .sidebar-section-title { opacity: 1; height: auto; padding: 1rem .9rem .3rem; }
  .app-sidebar.mobile-open .sidebar-item span { opacity: 1; width: auto; }
  .app-sidebar.mobile-open .sidebar-item { justify-content: flex-start; }
  .header-unit { display: none; }
}
@media (max-width: 600px) {
  .app-wrapper {
    grid-template-columns: 0 1fr;
  }
  .app-sidebar { position: fixed; width: 0; overflow: hidden; }
  .app-sidebar.mobile-open { width: var(--sidebar-w); }
  .page-content { padding: .875rem; }
  .modal { max-width: 100%; max-height: 95vh; margin: .5rem; }
  .header-user-info { display: none; }
}

/* Overlay mobile para sidebar */
.sidebar-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(0,0,0,.4);
  z-index: 199;
}
.sidebar-overlay.active { display: block; }

/* ══ MODERNIZAÇÃO GLOBAL UX ════════════════════════════════════════
   Animações de entrada de página, micro-interações, glassmorphism
   ══════════════════════════════════════════════════════════════════ */

/* ── Animação de entrada de conteúdo ──────────────────────── */
.page-content {
  animation: pageFadeIn .3s ease both;
}
@keyframes pageFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Tab panel com entrada suave ──────────────────────────── */
.tab-panel.active {
  animation: pageFadeIn .25s ease both;
}

/* ── Page header modernizado ──────────────────────────────── */
.page-header {
  position: relative;
  padding-bottom: .75rem;
  margin-bottom: 1.25rem;
}
.page-header::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 40px; height: 2.5px;
  background: linear-gradient(90deg, var(--primary), var(--primary-light));
  border-radius: 2px;
}

/* ── Tabs com transição ──────────────────────────────────── */
.tab-item {
  transition: background var(--transition), color var(--transition),
              box-shadow var(--transition), transform var(--transition);
}
.tab-item:hover { transform: translateY(-1px); }
.tab-item.active { transform: translateY(0); }

/* ── App content scrollbar bonito ────────────────────────── */
.app-content::-webkit-scrollbar { width: 5px; }
.app-content::-webkit-scrollbar-track { background: var(--gray-100); }
.app-content::-webkit-scrollbar-thumb {
  background: var(--gray-300);
  border-radius: 3px;
}
.app-content::-webkit-scrollbar-thumb:hover { background: var(--gray-400); }

/* ── Inputs com transição fluida ─────────────────────────── */
.form-control {
  transition: border-color var(--transition), box-shadow var(--transition),
              background var(--transition);
}

/* ── Glassmorphism card para dashboards ──────────────────── */
.glass-card {
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.5);
  border-radius: var(--radius-lg);
  box-shadow: 0 8px 30px rgba(0,75,141,.12);
}

/* ── Hover lift para elementos interativos ───────────────── */
.hover-lift {
  transition: transform var(--transition-bounce), box-shadow var(--transition);
}
.hover-lift:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }

/* ── Pulse animation para alertas críticos ───────────────── */
@keyframes pulse-ring {
  0%   { transform: scale(1); opacity: .8; }
  50%  { transform: scale(1.06); opacity: 1; }
  100% { transform: scale(1); opacity: .8; }
}
.pulse-danger { animation: pulse-ring 1.8s ease-in-out infinite; }
.pulse-warning { animation: pulse-ring 2.2s ease-in-out infinite; }

/* ── Slide in animações ───────────────────────────────────── */
@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-20px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes slideInRight2 {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(.9); }
  to   { opacity: 1; transform: scale(1); }
}
.anim-slide-left  { animation: slideInLeft .3s ease both; }
.anim-slide-right { animation: slideInRight2 .3s ease both; }
.anim-scale-in    { animation: scaleIn .3s cubic-bezier(.34,1.4,.64,1) both; }

/* ── Stagger animações em listas ─────────────────────────── */
.stagger-list > *:nth-child(1) { animation-delay: 0s; }
.stagger-list > *:nth-child(2) { animation-delay: .04s; }
.stagger-list > *:nth-child(3) { animation-delay: .08s; }
.stagger-list > *:nth-child(4) { animation-delay: .12s; }
.stagger-list > *:nth-child(5) { animation-delay: .16s; }
.stagger-list > *:nth-child(6) { animation-delay: .20s; }

/* ── Badges modernizados com pulse ───────────────────────── */
.badge {
  transition: transform var(--transition), box-shadow var(--transition);
}
.badge:hover { transform: scale(1.05); }

/* ── Risco badges hover ───────────────────────────────────── */
.risco {
  transition: transform var(--transition), box-shadow var(--transition);
}
.risco:hover { transform: scale(1.04); }

/* ── Tabs bar hover indicator ────────────────────────────── */
.tabs-bar {
  position: relative;
}

/* ── Sidebar scrollbar ───────────────────────────────────── */
.app-sidebar::-webkit-scrollbar { width: 3px; }
.app-sidebar::-webkit-scrollbar-track { background: transparent; }
.app-sidebar::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.25);
  border-radius: 2px;
}

/* ── Input com ícone focus brilho ────────────────────────── */
.login-input:focus + .login-input-icon,
.login-input-wrap:focus-within .login-input-icon {
  color: #006be5;
  opacity: 1;
}

/* ── Page Section Heading ─────────────────────────────────── */
.section-heading {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--gray-400);
  margin-bottom: .5rem;
  padding-left: .25rem;
}

/* ── Loading skeleton ────────────────────────────────────── */
.skeleton {
  background: linear-gradient(90deg, var(--gray-100) 25%, var(--gray-200) 50%, var(--gray-100) 75%);
  background-size: 200% 100%;
  animation: skeleton-wave 1.4s ease-in-out infinite;
  border-radius: var(--radius-sm);
}
@keyframes skeleton-wave {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.skeleton-text { height: .85em; margin: .35em 0; }
.skeleton-text.w-75 { width: 75%; }
.skeleton-text.w-50 { width: 50%; }
.skeleton-text.w-90 { width: 90%; }

/* ── Número counter animação ──────────────────────────────── */
.stat-card-value {
  transition: transform .3s cubic-bezier(.34,1.6,.64,1);
}
.stat-card:hover .stat-card-value {
  transform: scale(1.04);
}

/* ── Focus visible acessibilidade ────────────────────────── */
*:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}
button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* ══════════════════════════════════════════════════════════════
   FILA DE ATENDIMENTO — Layout Profissional
═══════════════════════════════════════════════════════════════ */
.fila-header-bar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
  background: #fff; border-radius: 12px; padding: 1rem 1.5rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.07); margin-bottom: 1rem;
  border-left: 4px solid var(--primary,#004B8D);
}
.fila-title-block { display: flex; flex-direction: column; gap: .15rem; }
.fila-title { font-size: 1.3rem; font-weight: 700; color: #1e293b; margin: 0; }
.fila-subtitle { font-size: .8rem; color: #64748b; }
.fila-header-actions { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.fila-filter-select, .fila-filter-date {
  padding: .4rem .75rem; border: 1.5px solid #e2e8f0; border-radius: 8px;
  font-size: .85rem; color: #374151; background: #f8fafc; cursor: pointer;
}
.fila-filter-select:focus, .fila-filter-date:focus { border-color: var(--primary,#004B8D); outline: none; }

/* Cards de contagem */
.fila-cards-row {
  display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1rem;
}
.fila-counter-card {
  flex: 1; min-width: 120px; max-width: 180px;
  background: #fff; border: 1.5px solid #e5e7eb; border-radius: 12px;
  padding: .9rem 1rem; display: flex; flex-direction: column; align-items: center;
  gap: .25rem; cursor: pointer; transition: transform .15s, box-shadow .15s;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.fila-counter-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.fila-counter-icon { font-size: 1.4rem; }
.fila-counter-num  { font-size: 2rem; font-weight: 800; line-height: 1; }
.fila-counter-label{ font-size: .68rem; font-weight: 600; letter-spacing: .05em; color: #6b7280; }

/* Tabela da fila */
.fila-table-card {
  background: #fff; border-radius: 12px;
  box-shadow: 0 1px 4px rgba(0,0,0,.07); overflow: hidden;
  display: flex; flex-direction: column;
}
.fila-table-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: .85rem 1.25rem; border-bottom: 1.5px solid #f1f5f9;
  font-weight: 600; font-size: .95rem; color: #1e293b;
  flex-shrink: 0;
}
.fila-table-count {
  font-size: .8rem; background: #eff6ff; color: #2563eb;
  padding: .25rem .65rem; border-radius: 20px; font-weight: 600;
}
/* Wrapper com scroll vertical — cabeçalho da tabela fica fixo */
.fila-table-card .table-wrapper {
  max-height: 420px;   /* altura máxima antes do scroll aparecer */
  overflow-y: auto;
  overflow-x: auto;
}
.fila-table-card .table-wrapper::-webkit-scrollbar { width: 6px; height: 6px; }
.fila-table-card .table-wrapper::-webkit-scrollbar-track { background: #f8fafc; }
.fila-table-card .table-wrapper::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
.fila-table-card .table-wrapper::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.fila-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
/* Cabeçalho da tabela fixo durante o scroll */
.fila-table thead th { position: sticky; top: 0; z-index: 2; background: #f8fafc; }
.fila-table thead tr { background: #f8fafc; }
.fila-table thead th {
  padding: .65rem 1rem; text-align: left; font-weight: 700; font-size: .72rem;
  color: #64748b; letter-spacing: .05em; border-bottom: 2px solid #e2e8f0;
  white-space: nowrap;
}
.fila-tr { cursor: pointer; transition: background .12s; }
.fila-tr:hover { background: #f0f9ff; }
.fila-tr:not(:last-child) td { border-bottom: 1px solid #f1f5f9; }
.fila-tr td { padding: .65rem 1rem; vertical-align: middle; }
.fila-senha {
  display: inline-block; background: #1e293b; color: #fff;
  padding: .25rem .5rem; border-radius: 6px; font-weight: 700;
  font-size: .8rem; font-family: monospace; letter-spacing: .03em;
}
.fila-pac-nome { font-weight: 600; color: #1e293b; white-space: nowrap; }
.fila-pac-sub  { font-size: .75rem; color: #94a3b8; margin-top: .1rem; }
.fila-hora     { font-weight: 600; color: #374151; white-space: nowrap; }
.fila-queixa   { color: #475569; max-width: 180px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fila-risco-badge {
  display: inline-block; padding: .22rem .6rem; border-radius: 20px;
  font-size: .7rem; font-weight: 700; letter-spacing: .04em;
  border: 1.5px solid; white-space: nowrap;
}
.fila-espera { font-weight: 600; color: #374151; white-space: nowrap; }
.fila-espera-alerta { color: #dc2626 !important; animation: pulse-alerta 1.5s infinite; }
@keyframes pulse-alerta { 0%,100%{opacity:1} 50%{opacity:.6} }
.fila-status-pill {
  display: inline-block; padding: .2rem .55rem; border-radius: 20px;
  font-size: .72rem; font-weight: 600; border: 1.5px solid; white-space: nowrap;
  background: transparent;
}
.fila-acoes { display: flex; gap: .35rem; align-items: center; }
.fila-btn {
  width: 30px; height: 30px; border: none; border-radius: 7px; cursor: pointer;
  display: flex; align-items: center; justify-content: center; font-size: .8rem;
  transition: opacity .15s, transform .1s;
}
.fila-btn:hover { opacity: .8; transform: scale(1.08); }
.fila-btn-triagem { background: #fff7ed; color: #f97316; }
.fila-btn-atender { background: #f0fdf4; color: #22c55e; }
.fila-btn-ver     { background: #eff6ff; color: #3b82f6; }
.fila-btn-painel  { background: #faf5ff; color: #7c3aed; }

/* Filtros avançados da fila */
.fila-filtros-avancados {
  background: #fff; border-radius: 12px;
  box-shadow: 0 1px 4px rgba(0,0,0,.07);
  padding: 1rem 1.25rem; margin-bottom: 1rem;
  border-left: 4px solid #e2e8f0;
}
.fila-filtros-row {
  display: flex; gap: .75rem; flex-wrap: wrap; align-items: flex-end;
}
.fila-filtro-group {
  display: flex; flex-direction: column; gap: .3rem;
  flex: 1; min-width: 180px;
}
.fila-filtro-group.fila-filtro-busca { min-width: 240px; flex: 1.5; }
.fila-filtro-group.fila-filtro-actions { flex: 0; min-width: auto; }
.fila-filtro-label {
  font-size: .72rem; font-weight: 600; color: #64748b;
  letter-spacing: .04em; text-transform: uppercase; white-space: nowrap;
}

/* Campo de busca */
.fila-busca-wrapper {
  position: relative; display: flex; align-items: center;
}
.fila-busca-icon {
  position: absolute; left: .65rem; color: #94a3b8; font-size: .8rem; pointer-events: none;
}
.fila-busca-input {
  width: 100%; padding: .4rem .75rem .4rem 2rem;
  border: 1.5px solid #e2e8f0; border-radius: 8px;
  font-size: .85rem; color: #374151; background: #f8fafc;
  transition: border-color .15s;
}
.fila-busca-input:focus { border-color: var(--primary,#004B8D); outline: none; background: #fff; }
.fila-busca-input::placeholder { color: #b0bec5; }
.fila-busca-clear {
  position: absolute; right: .5rem;
  width: 20px; height: 20px; border: none; border-radius: 50%;
  background: #cbd5e1; color: #fff; cursor: pointer; font-size: .7rem;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.fila-busca-clear:hover { background: #94a3b8; }

/* Selects dentro dos filtros avançados */
.fila-filtros-avancados .fila-filter-select {
  width: 100%;
}
.fila-filtros-avancados .fila-filter-select:disabled {
  opacity: .45; cursor: not-allowed;
}

/* Badge de filtros ativos */
.fila-filtros-ativos {
  display: flex; align-items: center; flex-wrap: wrap; gap: .4rem;
  margin-top: .75rem; padding-top: .75rem;
  border-top: 1px dashed #e2e8f0;
}
.fila-badge-resultado {
  font-size: .78rem; font-weight: 700; color: #374151;
  background: #f1f5f9; padding: .2rem .6rem; border-radius: 20px;
  border: 1.5px solid #e2e8f0;
}
.fila-badge-filtro {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .75rem; font-weight: 600; color: #374151;
  background: #fef9c3; padding: .2rem .6rem; border-radius: 20px;
  border: 1.5px solid #fde68a; white-space: nowrap;
}
.fila-badge-filtro i { font-size: .7rem; }

/* Responsivo */
@media (max-width: 768px) {
  .fila-filtros-row { flex-direction: column; }
  .fila-filtro-group, .fila-filtro-group.fila-filtro-busca { min-width: 100%; flex: 1; }
}

/* ══════════════════════════════════════════════════════════════
   LEITOS — Layout Visual de Camas
═══════════════════════════════════════════════════════════════ */
.leitos-resumo-bar {
  display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1.25rem;
}
.leito-resumo-item {
  display: flex; align-items: center; gap: .75rem;
  background: #fff; border: 1.5px solid; border-radius: 12px;
  padding: .75rem 1.1rem; flex: 1; min-width: 110px;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.lri-icon {
  width: 38px; height: 38px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; flex-shrink: 0;
}
.lri-val   { font-size: 1.6rem; font-weight: 800; line-height: 1; color: #1e293b; }
.lri-label { font-size: .7rem; font-weight: 600; color: #64748b; letter-spacing: .03em; margin-top: .1rem; }

/* Setor card */
.leitos-setor-card {
  background: #fff; border-radius: 14px; margin-bottom: 1.25rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.07); overflow: hidden;
}
.leitos-setor-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: .85rem 1.25rem; background: #f8fafc;
  border-bottom: 1.5px solid #e2e8f0;
}
.leitos-setor-title { font-weight: 700; font-size: 1rem; color: #1e293b; }
.leitos-setor-title i { margin-right: .4rem; color: var(--primary,#004B8D); }
.leitos-setor-stats { display: flex; gap: .5rem; }
.ls-stat { font-size: .75rem; font-weight: 600; padding: .2rem .55rem; border-radius: 20px; }
.ls-ocup  { background: #fee2e2; color: #dc2626; }
.ls-livre { background: #dcfce7; color: #16a34a; }

/* Grid de camas */
.leitos-camas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: .75rem; padding: 1rem 1.25rem;
}
.cama-card {
  border: 2px solid; border-radius: 12px; padding: .6rem .65rem;
  cursor: pointer; transition: transform .15s, box-shadow .15s;
  display: flex; flex-direction: column; gap: .25rem;
  min-height: 110px; position: relative; user-select: none;
}
.cama-card:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,.12); }
.cama-topo { display: flex; align-items: center; justify-content: space-between; }
.cama-numero { font-weight: 800; font-size: .95rem; }
.cama-status-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.cama-icone-wrap { display: flex; justify-content: center; padding: .1rem 0; }
.cama-svg { width: 100%; max-width: 72px; height: auto; }
.cama-info { display: flex; flex-direction: column; gap: .1rem; }
.cama-paciente { font-size: .72rem; font-weight: 700; color: #1e293b; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cama-risco-tag { font-size: .65rem; font-weight: 700; letter-spacing: .04em; }
.cama-tempo { font-size: .63rem; color: #94a3b8; }
.cama-status-label { font-size: .68rem; font-weight: 700; letter-spacing: .03em; text-align: center; }

/* ══════════════════════════════════════════════════════════════
   FILA — botão painel
══════════════════════════════════════════════════════════════ */
.fila-btn-painel { background: #faf5ff; color: #7c3aed; }
.fila-btn-painel:hover { background: #7c3aed; color: #fff; }

/* ══════════════════════════════════════════════════════════════
   PRONTUÁRIO — novo layout
══════════════════════════════════════════════════════════════ */
/* pron-container: coluna flex — header e tabs ficam FORA do scroll */
.pron-container {
  display: flex;
  flex-direction: column;
  gap: 0;
  height: 100%;       /* ocupa 100% do pai (pron-mode) */
  min-height: 0;
  overflow: hidden;
}

.pron-patient-header {
  background: linear-gradient(135deg, #004B8D, #1565C0);
  border-radius: 14px 14px 0 0;
  padding: 1.25rem 1.5rem;
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
  color: white;
}
.pron-patient-main { display: flex; align-items: center; gap: 1rem; flex: 1; }
.pron-patient-avatar {
  width: 52px; height: 52px; border-radius: 50%;
  background: rgba(255,255,255,.2); color: white;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem; font-weight: 800; flex-shrink: 0;
}
.pron-patient-nome { font-size: 1.25rem; font-weight: 700; line-height: 1.2; }
.pron-patient-dados { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .35rem; }
.pron-patient-dados span {
  font-size: .78rem; background: rgba(255,255,255,.15); padding: .2rem .55rem;
  border-radius: 20px; display: flex; align-items: center; gap: .25rem;
}
.pron-patient-alergia {
  margin-top: .4rem; font-size: .8rem; background: rgba(255, 213, 79, 0.25);
  padding: .25rem .65rem; border-radius: 6px; border-left: 3px solid #FFD54F;
}
.pron-patient-status { text-align: right; flex-shrink: 0; }
.pron-patient-num { font-size: 1rem; font-weight: 700; opacity: .9; }

/* ══════════════════════════════════════════════════════════════
   HEADER DO PACIENTE — Design Profissional UPA/Hospital
   Layout: Avatar | Info do Paciente | Painel Direito (ATD + Status + Ações)
   ══════════════════════════════════════════════════════════════ */
.pac-header-dark {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1.1rem;
  /* Gradiente profissional azul-médico com linha de acento */
  background: linear-gradient(135deg, #0c1e35 0%, #0f3460 55%, #1a5276 100%);
  color: #fff;
  border-radius: 12px 12px 0 0;
  padding: 1rem 1.25rem;
  margin-bottom: 0;
  box-shadow: 0 4px 24px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.06);
  border-bottom: 2px solid #1a6fa0;
  flex-shrink: 0;
  position: relative;
  z-index: 20;
  /* Linha de acento superior — teal médico */
  border-top: 3px solid #0ea5e9;
}

/* Coluna 1 — Avatar */
.pac-header-avatar {
  flex-shrink: 0;
  position: relative;
}
.pac-header-avatar img,
.pac-header-avatar .pac-avatar-initials {
  box-shadow: 0 0 0 3px rgba(14,165,233,.45), 0 2px 12px rgba(0,0,0,.35) !important;
}

/* Coluna 2 — Informações do paciente */
.pac-header-info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .28rem;
}
.pac-header-nome {
  font-size: 1.15rem;
  font-weight: 800;
  color: #f0f9ff;
  line-height: 1.15;
  letter-spacing: -.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pac-header-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .4rem;
}
.pac-chip {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  background: rgba(255,255,255,.09);
  color: rgba(255,255,255,.88);
  border-radius: 20px;
  padding: .16rem .55rem;
  font-size: .73rem;
  font-weight: 500;
  white-space: nowrap;
  border: 1px solid rgba(255,255,255,.1);
  backdrop-filter: blur(4px);
}
.pac-chip i { font-size: .68rem; opacity: .75; }
.pac-chip-sangue {
  background: rgba(220,38,38,.28);
  border-color: rgba(239,68,68,.45);
  color: #fca5a5;
  font-weight: 700;
}
.pac-chip-senha  { background: rgba(245,158,11,.18); border-color: rgba(251,191,36,.4); color: #fde68a; }
.pac-chip-tempo  { background: rgba(245,158,11,.15); border-color: rgba(251,191,36,.35); color: #fde68a; }
.pac-header-alergia {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: rgba(245,158,11,.2);
  border: 1px solid rgba(245,158,11,.5);
  color: #fde68a;
  border-radius: 6px;
  padding: .2rem .6rem;
  font-size: .73rem;
  font-weight: 600;
  width: fit-content;
}

/* Coluna 3 — Painel direito: ATD + Badges + Ações */
.pac-header-right {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .45rem;
}
/* Número do atendimento — destaque monospace */
.pac-header-atd {
  font-size: .78rem;
  font-weight: 800;
  color: #7dd3fc;
  font-family: 'Courier New', monospace;
  letter-spacing: .06em;
  background: rgba(14,165,233,.12);
  border: 1px solid rgba(14,165,233,.3);
  border-radius: 6px;
  padding: .15rem .5rem;
  white-space: nowrap;
}
/* Badges de risco/status — linha horizontal sem quebra */
.pac-header-badges {
  display: flex;
  flex-wrap: nowrap;
  gap: .35rem;
  align-items: center;
  justify-content: flex-end;
}
/* Botões de ação — dispostos horizontalmente, sem sobreposição */
.pac-header-acoes {
  display: flex;
  flex-direction: row;
  gap: .35rem;
  align-items: center;
  flex-wrap: nowrap;
}
.pac-btn-igual {
  width: 100px;
  justify-content: center;
}
.pac-btn-acao {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.88);
  border-radius: 7px;
  padding: .28rem .65rem;
  font-size: .75rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, border-color .15s, transform .1s;
  white-space: nowrap;
  height: 30px;
}
.pac-btn-acao:hover {
  background: rgba(255,255,255,.2);
  border-color: rgba(255,255,255,.3);
  transform: translateY(-1px);
}
.pac-btn-icon { padding: .28rem .5rem; min-width: 30px; justify-content: center; }
/* Botão Histórico IA — acento roxo */
.pac-btn-hist-ia {
  background: rgba(109,40,217,.28);
  border-color: rgba(167,139,250,.4);
  color: #ddd6fe;
}
.pac-btn-hist-ia:hover { background: rgba(109,40,217,.45); border-color: #a78bfa; }
.pac-btn-hist-ia.active {
  background: rgba(109,40,217,.55);
  border-color: #c4b5fd;
  color: #fff;
  box-shadow: 0 0 8px rgba(167,139,250,.3);
}
/* Botão Chamar — acento azul-claro */
.pac-btn-acao[title="Chamar no Painel"] {
  background: rgba(14,165,233,.2);
  border-color: rgba(56,189,248,.4);
  color: #bae6fd;
}
.pac-btn-acao[title="Chamar no Painel"]:hover { background: rgba(14,165,233,.35); }


/* Divisor sutil entre avatar e info */
.pac-header-dark::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(14,165,233,.3) 30%, rgba(14,165,233,.3) 70%, transparent);
}

@media (max-width: 700px) {
  .pac-header-dark {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
  }
  .pac-header-right {
    grid-column: 1 / -1;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    padding-top: .4rem;
    border-top: 1px solid rgba(255,255,255,.08);
    margin-top: .2rem;
  }
  .pac-header-acoes { flex-wrap: wrap; }
}

/* ABAS DO PRONTUÁRIO — barra removida, regra mantida para compatibilidade */
.pron-tabs-bar { display: none; }
.pron-tab-btn {
  display: flex; align-items: center; gap: .4rem;
  padding: .75rem 1.1rem; border: none; background: none;
  font-size: .82rem; font-weight: 600; color: #64748b;
  cursor: pointer; white-space: nowrap; border-bottom: 3px solid transparent;
  transition: all .15s; flex-shrink: 0;
}
.pron-tab-btn:hover { color: var(--primary); background: rgba(0,75,141,.05); }
.pron-tab-btn.active { color: var(--primary); border-bottom-color: var(--primary); background: #fff; }
.pron-tab-btn i { font-size: .9rem; }

.pron-tab-content {
  background: #fff; border: 1px solid #e2e8f0;
  border-top: none; border-radius: 0 0 0 0; padding: 1.5rem;
  /* modo normal: sem scroll próprio, o app-content rola */
}

/* pron-body-layout: ROW — tab-content | ia-sidebar lado a lado */
.app-content.pron-mode .pron-body-layout {
  flex: 1;
  min-height: 0;       /* ESSENCIAL para flex não vazar */
  overflow: hidden;    /* sem scroll aqui; cada filho rola internamente */
  display: flex;
  flex-direction: row; /* ROW para sidebar IA aparecer ao lado */
}

/* pron-tab-content: SCROLLBAR AQUI */
.app-content.pron-mode .pron-body-layout .pron-tab-content {
  flex: 1;
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 1.5rem;
}

/* Scrollbar mais larga e visível no pron-tab-content */
.app-content.pron-mode .pron-body-layout .pron-tab-content::-webkit-scrollbar { width: 10px; }
.app-content.pron-mode .pron-body-layout .pron-tab-content::-webkit-scrollbar-track { background: #e2e8f0; border-radius: 5px; }
.app-content.pron-mode .pron-body-layout .pron-tab-content::-webkit-scrollbar-thumb {
  background: #94a3b8; border-radius: 5px; border: 2px solid #e2e8f0;
}
.app-content.pron-mode .pron-body-layout .pron-tab-content::-webkit-scrollbar-thumb:hover { background: #64748b; }

.pron-actions-bar {
  display: flex; gap: .5rem; flex-wrap: wrap;
  padding: 1rem 1.5rem; background: #f8fafc;
  border: 1px solid #e2e8f0; border-top: none; border-radius: 0 0 14px 14px;
  flex-shrink: 0;      /* fica ABAIXO do scroll, não rola */
  position: relative;
  z-index: 10;
}
.pron-section-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: .6rem 0; margin-bottom: .75rem;
  border-bottom: 2px solid #e2e8f0; font-weight: 700; font-size: .9rem; color: #374151;
}
.pron-ia-hint { font-size: .78rem; color: #7c3aed; font-weight: 500; }
.pron-action-btns { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e2e8f0; }

/* IA sugestão */
.form-group-ia { position: relative; }
.form-label-ia { display: flex; align-items: center; justify-content: space-between; margin-bottom: .35rem; }
.btn-ia-sugerir {
  display: flex; align-items: center; gap: .3rem;
  padding: .2rem .6rem; border-radius: 20px; border: 1.5px solid #7c3aed;
  background: #faf5ff; color: #7c3aed; font-size: .72rem; font-weight: 600;
  cursor: pointer; transition: all .15s;
}
.btn-ia-sugerir:hover { background: #7c3aed; color: #fff; }
.btn-ia-sugerir:disabled { opacity: .5; cursor: not-allowed; }

.ia-sugestao-box {
  background: #faf5ff; border: 1.5px dashed #7c3aed; border-radius: 10px;
  padding: 1rem; margin-top: .5rem;
}
.ia-sugestao-header {
  display: flex; align-items: center; gap: .5rem;
  font-size: .78rem; font-weight: 700; color: #7c3aed; margin-bottom: .5rem;
}
.ia-fonte-badge {
  font-size: .68rem; padding: .15rem .5rem; border-radius: 20px;
  background: #e9d5ff; color: #6d28d9;
}
.ia-fonte-badge.ia-fonte-ai { background: #d1fae5; color: #065f46; }
.ia-sugestao-texto {
  font-size: .88rem; line-height: 1.6; color: #374151; white-space: pre-wrap;
  background: rgba(255,255,255,.6); padding: .75rem; border-radius: 8px;
}
.ia-aviso {
  font-size: .73rem; color: #78350f; margin-top: .5rem;
  background: #fffbeb; border: 1px solid #fde68a; border-radius: 6px;
  padding: .3rem .5rem; line-height: 1.4;
}
.ia-sugestao-acoes { display: flex; gap: .5rem; margin-top: .75rem; flex-wrap: wrap; }

/* ══════════════════════════════════════════════════════════════
   HISTÓRICO IA — Timeline
══════════════════════════════════════════════════════════════ */
.ia-hist-wrapper { max-width: 900px; }
.ia-hist-header {
  display: flex; align-items: center; gap: .75rem;
  background: linear-gradient(135deg, #f5f3ff, #ede9fe);
  border-radius: 10px; padding: 1rem; margin-bottom: 1rem;
  border-left: 4px solid #7c3aed;
}
.ia-obs-box {
  background: #fff8db; border: 1.5px solid #f59e0b; border-radius: 10px;
  padding: 1rem; margin-bottom: 1rem;
}
.ia-obs-item { font-size: .875rem; color: #78350f; padding: .3rem 0; line-height: 1.5; }
.ia-obs-item + .ia-obs-item { border-top: 1px dashed #fcd34d; margin-top: .3rem; }

.ia-timeline { position: relative; padding-left: 1.5rem; }
.ia-timeline::before {
  content: ''; position: absolute; left: .35rem; top: 0; bottom: 0;
  width: 2px; background: #e2e8f0; border-radius: 2px;
}
.ia-timeline-item { position: relative; margin-bottom: 1.5rem; }
.ia-timeline-dot {
  position: absolute; left: -1.15rem; top: .3rem;
  width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff;
  box-shadow: 0 0 0 2px rgba(0,0,0,.1);
}
.ia-timeline-content {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 10px;
  padding: .9rem 1.1rem; box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.ia-timeline-atual .ia-timeline-content {
  border-color: var(--primary); background: #f0f7ff;
}
.ia-timeline-date {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
  font-size: .8rem; color: #6b7280; margin-bottom: .4rem;
}
.ia-timeline-queixa { font-size: .9rem; font-weight: 600; color: #1e293b; margin-bottom: .3rem; }
.ia-timeline-field { font-size: .82rem; color: #374151; margin-bottom: .2rem; line-height: 1.4; }
.ia-timeline-status { margin-top: .4rem; }

/* ══════════════════════════════════════════════════════════════
   AUTOCOMPLETE
══════════════════════════════════════════════════════════════ */
.autocomplete-wrap { position: relative; }
.autocomplete-list {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 1000;
  background: #fff; border: 1.5px solid #d1d5db; border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12); max-height: 260px; overflow-y: auto;
}
.autocomplete-item {
  padding: .65rem .9rem; cursor: pointer; font-size: .85rem;
  border-bottom: 1px solid #f3f4f6; transition: background .1s;
}
.autocomplete-item:hover { background: #eff6ff; }
.autocomplete-item:last-child { border-bottom: none; }
.autocomplete-empty { color: #9ca3af; font-style: italic; cursor: default; }
.autocomplete-pac-nome { font-weight: 600; color: #1e293b; margin-bottom: .2rem; }
.autocomplete-pac-info { display: flex; flex-wrap: wrap; gap: .4rem; font-size: .75rem; color: #6b7280; }
.autocomplete-pac-info span { background: #f3f4f6; padding: .15rem .45rem; border-radius: 12px; }

/* ══════════════════════════════════════════════════════════════
   PAINEL TV — Novo Design (ptv-*)
   Layout premium dark-blue para TV / monitor de espera UPA
══════════════════════════════════════════════════════════════ */

/* ── RESET COMPLETO DA PÁGINA ─────────────────────────────── */
body.ptv-body-standalone {
  margin: 0; padding: 0; overflow: hidden;
  background: #070f1e;
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
}

/* ── WRAPPER PRINCIPAL ────────────────────────────────────── */
.ptv-wrapper {
  width: 100vw; height: 100vh;
  background: linear-gradient(160deg, #070f1e 0%, #0b1a33 40%, #091527 100%);
  color: #e2e8f0;
  display: flex; flex-direction: column;
  overflow: hidden;
  position: relative;
}

/* ── HEADER ───────────────────────────────────────────────── */
.ptv-header {
  display: flex; align-items: center; gap: 0;
  background: linear-gradient(90deg, #0d1e3d 0%, #0f2347 50%, #0d1e3d 100%);
  border-bottom: 2px solid #1a3060;
  padding: 0 1.5rem;
  height: 64px;
  flex-shrink: 0;
  position: relative;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
}
.ptv-hdr-unidade {
  display: flex; align-items: center; gap: .65rem;
  flex: 1;
}
.ptv-hdr-icon {
  font-size: 1.3rem;
  color: #3b82f6;
  text-shadow: 0 0 12px rgba(59,130,246,.6);
}
.ptv-hdr-label {
  font-size: .58rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1.5px;
  color: #64748b; line-height: 1;
}
.ptv-hdr-val {
  font-size: 1rem; font-weight: 800;
  color: #fff; line-height: 1;
  letter-spacing: .3px;
}
.ptv-hdr-sep {
  width: 1px; height: 36px;
  background: rgba(255,255,255,.1);
  margin: 0 1.25rem;
  flex-shrink: 0;
}
.ptv-hdr-clock {
  display: flex; align-items: center; gap: 1.2rem;
  flex-shrink: 0;
}
.ptv-hdr-diasem {
  font-size: .8rem; font-weight: 700;
  color: #90caf9;
  text-transform: uppercase; letter-spacing: 1px;
}
.ptv-hdr-data {
  font-size: .85rem; font-weight: 600;
  color: #94a3b8;
}
.ptv-hdr-hora {
  font-size: 1.6rem; font-weight: 900;
  color: #fbbf24;
  letter-spacing: 2px;
  text-shadow: 0 0 16px rgba(251,191,36,.4);
  min-width: 90px; text-align: right;
}
.ptv-hdr-fullscreen {
  display: flex; align-items: center; gap: .45rem;
  margin-left: 1.25rem;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  color: #94a3b8;
  font-size: .75rem; font-weight: 600;
  padding: .45rem .85rem;
  cursor: pointer;
  transition: all .2s;
  flex-shrink: 0;
}
.ptv-hdr-fullscreen:hover {
  background: rgba(255,255,255,.13);
  color: #fff;
  border-color: rgba(255,255,255,.25);
}

/* ── BODY ─────────────────────────────────────────────────── */
.ptv-body {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: .85rem;
  flex: 1;
  overflow: hidden;
  padding: .85rem;
  min-height: 0;
}
.ptv-col-left {
  display: flex; flex-direction: column;
  gap: .85rem; overflow: hidden; min-height: 0;
}
.ptv-col-right {
  display: flex; flex-direction: column;
  gap: .65rem;
  overflow-y: auto;   /* scroll suave quando conteúdo não cabe */
  overflow-x: hidden;
  min-height: 0;
  /* scrollbar ultra-discreta */
  scrollbar-width: thin;
  scrollbar-color: rgba(30,58,110,.5) transparent;
}

/* ── SECTION BASE ─────────────────────────────────────────── */
.ptv-section {
  background: rgba(13,30,61,.6);
  border: 1px solid rgba(30,58,110,.7);
  border-radius: 14px;
  padding: .85rem 1rem;
  backdrop-filter: blur(4px);
  flex-shrink: 0;
}
.ptv-section-proximos {
  flex: 1;
  display: flex; flex-direction: column;
  overflow: hidden;
  min-height: 0;
}

/* SECTION TITLE */
.ptv-sec-title {
  display: flex; align-items: center; gap: .5rem;
  font-size: .7rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: 1.8px;
  color: #64748b;
  margin-bottom: .75rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding-bottom: .55rem;
}
.ptv-sec-title i {
  color: #3b82f6;
  font-size: .8rem;
}
.ptv-sec-title-chamando {
  color: #fbbf24;
  font-size: .75rem;
}
.ptv-sec-title-chamando i {
  color: #fbbf24;
}
.ptv-sec-badge {
  margin-left: auto;
  background: #1e3a6e;
  color: #fbbf24;
  font-size: .65rem; font-weight: 800;
  padding: .15rem .55rem;
  border-radius: 20px;
  letter-spacing: .5px;
}

/* PULSE DOT — indicador ao vivo */
.ptv-pulse-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  background: #22c55e;
  flex-shrink: 0;
  animation: ptv-pulse 1.4s ease-in-out infinite;
  box-shadow: 0 0 0 0 rgba(34,197,94,.6);
}
@keyframes ptv-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(34,197,94,.6); }
  70%  { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}

/* ── CHAMANDO AGORA ───────────────────────────────────────── */
.ptv-chamadas-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .85rem;
}

/* Cartão de chamada */
.ptv-chamada-card {
  background: linear-gradient(145deg, #0d1e3d, #0f2448);
  border: 1.5px solid #1a3060;
  border-radius: 16px;
  padding: 1rem 1.1rem;
  display: flex; flex-direction: column;
  gap: .6rem;
  position: relative;
  overflow: hidden;
  transition: box-shadow .3s;
}
.ptv-chamada-card::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.03) 0%, transparent 60%);
  pointer-events: none;
}
.ptv-chamada-principal {
  border-color: #2563eb;
  box-shadow: 0 0 30px rgba(37,99,235,.25), inset 0 0 30px rgba(37,99,235,.05);
}
.ptv-chamada-live {
  display: flex; align-items: center; gap: .4rem;
  font-size: .62rem; font-weight: 800; color: #22c55e;
  text-transform: uppercase; letter-spacing: 1px;
  margin-bottom: -.2rem;
}
.ptv-live-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: #22c55e;
  animation: ptv-live 1.5s ease-in-out infinite;
}
@keyframes ptv-live {
  0%,100% { box-shadow: 0 0 0 0 rgba(34,197,94,.5); }
  50%     { box-shadow: 0 0 0 5px rgba(34,197,94,0); }
}

/* Cartão vazio */
.ptv-chamada-empty {
  grid-column: 1 / -1;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 2.5rem 1rem;
  border: 1.5px dashed rgba(255,255,255,.1);
  border-radius: 16px;
  opacity: .6;
}
.ptv-empty-icon {
  font-size: 2.2rem; margin-bottom: .6rem;
  color: #334155;
}
.ptv-empty-text { font-size: .85rem; color: #475569; }

/* Topo do cartão: senha + risco */
.ptv-ch-top {
  display: flex; align-items: flex-start;
  justify-content: space-between;
  gap: .5rem;
}
.ptv-ch-lbl {
  font-size: .55rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1.2px;
  color: #64748b; margin-bottom: .15rem;
}
.ptv-ch-senha {
  font-size: 2.6rem; font-weight: 900;
  color: #fbbf24;
  letter-spacing: 3px;
  line-height: 1;
  text-shadow: 0 0 20px rgba(251,191,36,.35);
}
.ptv-ch-risco-wrap {
  display: flex; flex-direction: column; align-items: flex-end; gap: .2rem;
}
.ptv-ch-risco {
  padding: .3rem .7rem;
  border-radius: 8px;
  font-size: .7rem; font-weight: 900;
  color: #fff;
  text-transform: uppercase; letter-spacing: .8px;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.ptv-ch-risco-desc {
  font-size: .55rem; color: #94a3b8; text-align: right;
}

/* Paciente row */
.ptv-ch-paciente-row {
  display: flex; align-items: center; gap: .75rem;
}
.ptv-ch-paciente-info { flex: 1; min-width: 0; }
.ptv-ch-nome {
  font-size: 1.2rem; font-weight: 800;
  color: #fff;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  letter-spacing: .2px;
  line-height: 1.2;
}
.ptv-ch-nome-civil {
  font-size: .68rem; color: #64748b;
  display: flex; align-items: center; gap: .3rem;
  margin-top: .2rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ptv-ch-nome-civil i { color: #475569; font-size: .6rem; }

/* Grid de infos: sala, setor, profissional */
.ptv-ch-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .35rem .75rem;
  background: rgba(0,0,0,.2);
  border-radius: 10px;
  padding: .6rem .75rem;
  border: 1px solid rgba(255,255,255,.05);
}
.ptv-ch-info-val {
  font-size: .8rem; font-weight: 600; color: #cbd5e1;
  display: flex; align-items: center; gap: .3rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ptv-ch-sala { color: #60a5fa !important; }

/* Faixa Dirija-se à sala */
.ptv-ch-dirija {
  background: linear-gradient(90deg, #1d4ed8, #2563eb);
  border-radius: 8px;
  padding: .5rem .75rem;
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  font-size: .78rem; font-weight: 800;
  color: #fff;
  text-transform: uppercase; letter-spacing: 1.5px;
  margin-top: .1rem;
  box-shadow: 0 3px 12px rgba(37,99,235,.35);
}
.ptv-ch-dirija i { font-size: .85rem; color: #bfdbfe; }

/* ── PRÓXIMAS CHAMADAS ────────────────────────────────────── */
.ptv-proximos-wrap {
  flex: 1; overflow: hidden;
  display: flex; flex-direction: column;
  min-height: 0;
}
.ptv-proximos-table {
  width: 100%; border-collapse: collapse;
  font-size: .82rem;
  display: block; overflow-y: auto;
  flex: 1;
}
.ptv-proximos-table thead {
  display: table; width: 100%; table-layout: fixed;
}
.ptv-proximos-table tbody {
  display: block; overflow-y: auto;
  max-height: calc(100% - 36px);
}
.ptv-proximos-table tbody tr {
  display: table; width: 100%; table-layout: fixed;
}
.ptv-proximos-table thead tr {
  background: rgba(8,15,30,.8);
  border-bottom: 1px solid rgba(30,58,110,.8);
}
.ptv-proximos-table th {
  padding: .45rem .65rem;
  text-align: left;
  font-size: .6rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: 1.2px;
  color: #475569;
}
.ptv-proximos-table tbody tr {
  border-bottom: 1px solid rgba(255,255,255,.04);
  transition: background .15s;
}
.ptv-proximos-table tbody tr:hover { background: rgba(255,255,255,.03); }
.ptv-proximos-table td {
  padding: .55rem .65rem;
  color: #cbd5e1;
  vertical-align: middle;
}
.ptv-prox-senha {
  display: inline-block;
  background: rgba(30,58,110,.8);
  color: #fbbf24;
  font-weight: 900; font-size: .82rem;
  padding: .2rem .55rem;
  border-radius: 6px;
  letter-spacing: .5px;
}
.ptv-prox-nome {
  font-weight: 600;
  color: #e2e8f0;
  max-width: 0; /* permite truncar com CSS */
}
.ptv-prox-risco {
  display: inline-block;
  padding: .18rem .5rem;
  border-radius: 5px;
  font-size: .62rem; font-weight: 800;
  color: #fff;
  text-transform: uppercase; letter-spacing: .5px;
}
.ptv-prox-setor {
  font-size: .78rem; color: #64748b;
}
.ptv-empty-row {
  text-align: center;
  color: #475569;
  font-style: italic;
  padding: 1.5rem !important;
}

/* ── VÍDEO / INFORMAÇÕES ──────────────────────────────────── */
.ptv-section-video { flex-shrink: 0; }
.ptv-video-box {
  background: #080f1e;
  border: 1.5px solid rgba(30,58,110,.7);
  border-radius: 12px;
  aspect-ratio: 16 / 9;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  overflow: hidden;
  position: relative;
  min-height: 90px;
  max-height: 145px; /* reduzido para liberar espaço ao Manchester */
}
.ptv-video-cfg-btn {
  margin-left: auto;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 6px;
  color: #94a3b8;
  font-size: .72rem;
  padding: .3rem .6rem;
  cursor: pointer;
  transition: all .2s;
  display: flex; align-items: center; gap: .3rem;
}
.ptv-video-cfg-btn:hover {
  background: rgba(255,255,255,.14);
  color: #fff;
  border-color: rgba(255,255,255,.2);
}
.ptv-video-placeholder {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: .5rem; width: 100%; height: 100%;
  padding: 1rem;
}
.ptv-video-placeholder-icon {
  font-size: 2rem; color: #1e3a6e;
}
.ptv-video-placeholder-txt {
  font-size: .75rem; color: #475569;
  text-align: center; line-height: 1.5;
}
.ptv-video-iframe {
  width: 100%; height: 100%;
  border: none;
}
.ptv-video-player {
  width: 100%; height: 100%;
  object-fit: cover;
}
.ptv-video-mensagem {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 1.25rem; width: 100%; height: 100%;
  text-align: center;
}

/* Faixa marquee */
.ptv-marquee-wrap {
  display: flex; align-items: center; gap: .5rem;
  background: rgba(8,15,30,.7);
  border: 1px solid rgba(30,58,110,.5);
  border-radius: 8px;
  padding: .35rem .75rem;
  margin-top: .5rem;
  overflow: hidden;
}
.ptv-marquee-label {
  flex-shrink: 0;
  color: #fbbf24; font-size: .7rem;
}
.ptv-marquee {
  flex: 1; overflow: hidden;
}
.ptv-marquee-inner {
  display: inline-block;
  white-space: nowrap;
  font-size: .72rem; color: #94a3b8;
  animation: ptv-marquee 40s linear infinite;
}
@keyframes ptv-marquee {
  0%   { transform: translateX(60vw); }
  100% { transform: translateX(-100%); }
}

/* ── SITUAÇÃO DA UNIDADE ──────────────────────────────────── */
.ptv-section-situacao { flex-shrink: 0; padding: .7rem .85rem; }
.ptv-atualizado {
  margin-left: auto;
  font-size: .6rem; color: #475569;
  font-style: italic;
}
.ptv-situacao-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
}
.ptv-sit-card {
  background: rgba(8,15,30,.7);
  border: 1.5px solid rgba(30,58,110,.7);
  border-top: 3px solid var(--c, #3b82f6);
  border-radius: 10px;
  padding: .5rem .6rem; /* compactado */
  display: flex; flex-direction: column;
  align-items: center; text-align: center;
  gap: .1rem;
  transition: border-color .3s;
}
.ptv-sit-card-wide {
  grid-column: 1 / -1;
}
.ptv-sit-icon {
  font-size: 1rem; color: var(--c, #3b82f6);
  margin-bottom: .1rem;
  filter: drop-shadow(0 0 6px var(--c, #3b82f6));
}
.ptv-sit-num {
  font-size: 1.7rem; font-weight: 900; /* levemente reduzido */
  color: #fff; line-height: 1;
}
.ptv-sit-tempo {
  font-size: 1.3rem !important; /* compactado */
  color: var(--c, #a855f7) !important;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 14px rgba(168,85,247,.4);
}
.ptv-sit-label {
  font-size: .55rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .8px;
  color: #64748b;
  line-height: 1.2;
}

/* ── PROTOCOLO DE MANCHESTER ──────────────────────────────── */
.ptv-section-manchester { flex-shrink: 0; padding: .7rem .85rem; }
.ptv-manchester-grid {
  display: flex; flex-direction: column;
  gap: .28rem; /* mais compacto */
}
.ptv-manch-card {
  display: grid;
  grid-template-columns: 72px 62px 1fr;
  align-items: center;
  gap: .4rem;
  background: rgba(8,15,30,.6);
  border: 1px solid rgba(255,255,255,.06);
  border-left: 4px solid var(--mc, #ccc);
  border-radius: 7px;
  padding: .35rem .65rem; /* compactado */
  transition: background .2s;
}
.ptv-manch-card:hover {
  background: rgba(255,255,255,.04);
}
.ptv-manch-cor {
  font-size: .68rem; font-weight: 900;
  color: var(--mc, #ccc);
  text-transform: uppercase; letter-spacing: .6px;
}
.ptv-manch-tempo {
  font-size: .66rem; font-weight: 700;
  color: #94a3b8;
  text-align: center;
}
.ptv-manch-desc {
  font-size: .68rem; font-weight: 600;
  color: #cbd5e1;
  line-height: 1.25;
}
.ptv-manch-desc small {
  font-size: .58rem; color: #64748b;
  display: block; font-weight: 400;
}

/* ── FOOTER ───────────────────────────────────────────────── */
.ptv-footer {
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(7,12,25,.8);
  border-top: 1px solid rgba(26,48,96,.8);
  padding: .45rem 1.5rem;
  flex-shrink: 0;
  font-size: .65rem; color: #334155;
}
.ptv-footer-center {
  flex: 1; text-align: center;
  color: #475569;
}

/* ── SCROLLBAR PERSONALIZADA ──────────────────────────────── */
.ptv-wrapper ::-webkit-scrollbar {
  width: 4px;
}
.ptv-wrapper ::-webkit-scrollbar-track {
  background: transparent;
}
.ptv-wrapper ::-webkit-scrollbar-thumb {
  background: rgba(30,58,110,.6);
  border-radius: 4px;
}
.ptv-wrapper ::-webkit-scrollbar-thumb:hover {
  background: rgba(59,130,246,.4);
}

/* ── ANIMAÇÕES GERAIS ─────────────────────────────────────── */
@keyframes ptv-fadein {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ptv-chamada-card {
  animation: ptv-fadein .35s ease;
}

/* ── MODO TELA CHEIA (fullscreen API) ─────────────────────── */
.ptv-wrapper:-webkit-full-screen { width: 100vw; height: 100vh; }
.ptv-wrapper:-moz-full-screen    { width: 100vw; height: 100vh; }
.ptv-wrapper:fullscreen           { width: 100vw; height: 100vh; }

/* ── RESPONSIVIDADE TV (≥1600px) ──────────────────────────── */
@media (min-width: 1600px) {
  .ptv-hdr-hora  { font-size: 1.9rem; }
  .ptv-ch-senha  { font-size: 3rem; }
  .ptv-ch-nome   { font-size: 1.4rem; }
  .ptv-sit-num   { font-size: 2.2rem; }
  .ptv-sec-title { font-size: .75rem; }
  .ptv-manch-card { padding: .55rem .9rem; }
  .ptv-manch-cor  { font-size: .78rem; }
  .ptv-manch-desc { font-size: .75rem; }
  .ptv-body { gap: 1rem; padding: 1rem; }
  .ptv-section { padding: .95rem 1.1rem; }
}

/* ── RESPONSIVIDADE MONITOR MÉDIO (1280–1600px) ───────────── */
@media (max-width: 1400px) {
  .ptv-body { grid-template-columns: 1fr 360px; }
  .ptv-ch-senha  { font-size: 2.2rem; }
  .ptv-sit-num   { font-size: 1.6rem; }
  .ptv-hdr-hora  { font-size: 1.4rem; }
  .ptv-video-box { max-height: 125px; }
  .ptv-sit-tempo { font-size: 1.15rem !important; }
  .ptv-manch-card { padding: .3rem .55rem; }
}
@media (max-width: 1200px) {
  .ptv-body { grid-template-columns: 1fr 300px; }
  .ptv-ch-nome   { font-size: 1rem; }
  .ptv-ch-senha  { font-size: 1.9rem; }
  .ptv-video-box { max-height: 110px; }
  /* Manchester comprimido mas visível até 1100px */
  .ptv-manch-card { grid-template-columns: 60px 52px 1fr; padding: .28rem .5rem; }
  .ptv-manch-cor  { font-size: .6rem; }
  .ptv-manch-tempo { font-size: .58rem; }
  .ptv-manch-desc { font-size: .6rem; }
  .ptv-manch-desc small { display: none; } /* ocultar subtítulo em telas pequenas */
}
@media (max-width: 1100px) {
  .ptv-section-manchester { display: none; } /* oculta apenas em telas muito pequenas */
}

/* ══════════════════════════════════════════════════════════════
   SEARCH RESULTS melhorado
══════════════════════════════════════════════════════════════ */
.search-results.show { max-height: 280px; overflow-y: auto; }
.search-result-item {
  padding: .6rem .9rem; cursor: pointer; border-bottom: 1px solid #f3f4f6;
  transition: background .1s;
}
.search-result-item:hover { background: #eff6ff; }
.search-result-name { font-weight: 600; color: #1e293b; font-size: .88rem; }
.search-result-sub {
  display: flex; flex-wrap: wrap; gap: .35rem;
  font-size: .75rem; color: #6b7280; margin-top: .2rem;
}
.search-result-sub span { background: #f3f4f6; padding: .1rem .4rem; border-radius: 10px; }

/* ══════════════════════════════════════════════════════════════
   IMPRESSÃO DE SENHA - estilos para impressão térmica
══════════════════════════════════════════════════════════════ */
@media print {
  .no-print, .sidebar, header, .tabs-bar, .btn, .modal-overlay { display: none !important; }
}

/* ══════════════════════════════════════════════════════════════
   PAINEL TV — Layout completo TV-grade
══════════════════════════════════════════════════════════════ */
.painel-fullscreen-mode #main-layout { display: none !important; }
.painel-fullscreen-mode #sidebar { display: none !important; }
.painel-fullscreen-mode { background: #0a0f1e; }

.painel-tv-wrapper {
  display: flex; flex-direction: column;
  min-height: 100vh; width: 100%;
  background: linear-gradient(135deg, #0a0f1e 0%, #0d1b3e 50%, #0a0f1e 100%);
  color: white; font-family: 'Segoe UI', system-ui, sans-serif;
  overflow: hidden;
}

/* Header */
.painel-tv-header {
  display: flex; align-items: center; gap: 1.5rem;
  padding: .7rem 2rem;
  background: rgba(255,255,255,.04);
  border-bottom: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
}
.painel-tv-logo { display: flex; align-items: center; gap: .75rem; }
.painel-tv-logo-icon { flex-shrink: 0; }
.painel-tv-logo-text { line-height: 1.1; }
.painel-tv-brand { font-size: 1.35rem; font-weight: 900; letter-spacing: 2px; color: #60a5fa; }
.painel-tv-brand-sub { font-size: .7rem; font-weight: 600; color: rgba(255,255,255,.5); letter-spacing: 1px; text-transform: uppercase; }
.painel-tv-24 { color: #f59e0b; font-weight: 900; }
.painel-tv-sep { width: 1px; height: 40px; background: rgba(255,255,255,.12); flex-shrink: 0; }
.painel-tv-unidade { display: flex; align-items: center; gap: .6rem; }
.painel-tv-unidade-icon { color: #60a5fa; font-size: 1.2rem; }
.painel-tv-unidade-label { font-size: .65rem; color: rgba(255,255,255,.4); text-transform: uppercase; letter-spacing: 1px; }
.painel-tv-unidade-nome { font-size: .9rem; font-weight: 700; color: white; }
.painel-tv-datetime { text-align: right; }
.painel-tv-date-row { font-size: .7rem; color: rgba(255,255,255,.5); display: flex; align-items: center; gap: .4rem; justify-content: flex-end; }
.painel-tv-time-row { font-size: 1.6rem; font-weight: 900; color: #60a5fa; letter-spacing: 2px; display: flex; align-items: center; gap: .4rem; justify-content: flex-end; }
.painel-tv-time-row i { font-size: .9rem; opacity: .6; }

/* Main grid */
.painel-tv-main {
  display: grid; grid-template-columns: 1fr 380px;
  gap: 1rem; padding: 1rem 1.5rem;
  flex: 1; min-height: 0; overflow: hidden;
}
.painel-tv-left { display: flex; flex-direction: column; gap: 1rem; min-height: 0; }
.painel-tv-right { display: flex; flex-direction: column; gap: .8rem; min-height: 0; }

/* Section titles */
.painel-tv-section-title {
  font-size: .7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 2px; color: rgba(255,255,255,.45);
  display: flex; align-items: center; gap: .4rem;
  margin-bottom: .6rem;
}
.painel-tv-pulse { animation: pulse-icon 1.5s ease-in-out infinite; }
@keyframes pulse-icon {
  0%,100% { opacity: 1; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.2); }
}

/* Chamadas grid */
.painel-tv-chamando { flex-shrink: 0; }
.painel-tv-chamadas-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.painel-tv-chamada-empty {
  grid-column: 1 / -1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 2rem; background: rgba(255,255,255,.03);
  border: 2px dashed rgba(255,255,255,.1); border-radius: 16px;
  gap: .5rem;
}
.painel-tv-empty-icon { font-size: 2rem; opacity: .3; }
.painel-tv-empty-text { color: rgba(255,255,255,.3); font-size: .85rem; }

.painel-tv-chamada-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px; padding: 1rem;
  display: flex; flex-direction: column; gap: .6rem;
  transition: box-shadow .3s;
}
.painel-tv-chamada-principal {
  background: linear-gradient(135deg, rgba(21,101,192,.35), rgba(37,99,235,.2));
  border-color: rgba(96,165,250,.4);
  box-shadow: 0 0 30px rgba(96,165,250,.15);
  animation: chamada-glow 2s ease-in-out infinite;
}
@keyframes chamada-glow {
  0%,100% { box-shadow: 0 0 20px rgba(96,165,250,.1); }
  50% { box-shadow: 0 0 40px rgba(96,165,250,.3); }
}
.painel-tv-ch-row { display: flex; gap: .5rem; }
.painel-tv-ch-col { flex: 1; min-width: 0; }
.painel-tv-ch-col-right { text-align: right; }
.painel-tv-ch-label {
  font-size: .6rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.5px; color: rgba(255,255,255,.35); margin-bottom: .15rem;
}
.painel-tv-ch-senha {
  font-size: 2.2rem; font-weight: 900; color: #fbbf24;
  letter-spacing: 3px; line-height: 1;
}
.painel-tv-ch-paciente { font-size: .95rem; font-weight: 700; color: white; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.painel-tv-ch-risco {
  display: inline-block; font-size: .7rem; font-weight: 800;
  padding: .2rem .5rem; border-radius: 6px; color: white;
  text-transform: uppercase; letter-spacing: 1px;
}
.painel-tv-ch-tempo { font-size: .9rem; font-weight: 700; color: #a78bfa; }
.painel-tv-ch-sala { font-size: .85rem; font-weight: 700; color: #34d399; }
.painel-tv-ch-live { display: flex; align-items: center; justify-content: flex-end; gap: .3rem; }
.painel-tv-live-dot {
  width: 8px; height: 8px; border-radius: 50%; background: #22c55e;
  animation: live-blink 1s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes live-blink {
  0%,100% { opacity: 1; } 50% { opacity: .2; }
}

/* Próximos */
.painel-tv-proximos { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.painel-tv-proximos-table-wrap { flex: 1; overflow-y: auto; }
.painel-tv-proximos-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.painel-tv-proximos-table thead tr {
  background: rgba(255,255,255,.05);
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.painel-tv-proximos-table th {
  padding: .5rem .75rem; font-size: .6rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px;
  color: rgba(255,255,255,.4); text-align: left;
}
.painel-tv-proximos-table td {
  padding: .5rem .75rem; border-bottom: 1px solid rgba(255,255,255,.05);
  color: rgba(255,255,255,.8);
}
.painel-tv-proximos-table tr:hover td { background: rgba(255,255,255,.04); }
.painel-tv-prox-senha { font-weight: 900; color: #fbbf24; font-size: .9rem; }
.painel-tv-prox-risco {
  display: inline-block; font-size: .65rem; font-weight: 800;
  padding: .15rem .4rem; border-radius: 4px; color: white;
  text-transform: uppercase;
}

/* Video area */
.painel-tv-video { flex-shrink: 0; }
.painel-tv-video-box {
  background: rgba(0,0,0,.3); border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px; overflow: hidden; aspect-ratio: 16/9; position: relative;
  display: flex; flex-direction: column;
}
.painel-tv-video-play {
  flex: 1; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #1a1f3e, #0d1225);
}
.painel-tv-video-btn {
  width: 50px; height: 50px; border-radius: 50%;
  background: rgba(96,165,250,.2); border: 2px solid rgba(96,165,250,.4);
  display: flex; align-items: center; justify-content: center;
  color: #60a5fa; font-size: 1.2rem; cursor: pointer;
  transition: background .2s;
}
.painel-tv-video-btn:hover { background: rgba(96,165,250,.4); }
.painel-tv-video-caption {
  background: rgba(0,0,0,.5); color: rgba(255,255,255,.6);
  font-size: .7rem; padding: .4rem .75rem; text-align: center;
}
.painel-tv-video-marquee {
  background: rgba(21,101,192,.3); color: #93c5fd;
  font-size: .7rem; padding: .3rem 0;
  overflow: hidden; white-space: nowrap;
}
.painel-tv-video-marquee span { display: inline-block; animation: marquee 30s linear infinite; }
@keyframes marquee {
  from { transform: translateX(100%); }
  to { transform: translateX(-100%); }
}

/* Resumo */
.painel-tv-resumo { flex-shrink: 0; }
.painel-tv-resumo-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }
.painel-tv-resumo-card {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  border-left: 3px solid var(--card-color); border-radius: 10px;
  padding: .6rem .75rem; display: flex; flex-direction: column; gap: .1rem;
}
.painel-tv-resumo-icon { color: var(--card-color); font-size: .9rem; }
.painel-tv-resumo-label { font-size: .6rem; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,.35); }
.painel-tv-resumo-num { font-size: 1.6rem; font-weight: 900; color: var(--card-color); line-height: 1; }

/* Legenda Manchester */
.painel-tv-legenda { flex-shrink: 0; }
.painel-tv-legenda-grid { display: flex; flex-direction: column; gap: .25rem; }
.painel-tv-leg-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: .3rem .6rem; border-radius: 6px;
}
.painel-tv-leg-cor { font-size: .7rem; font-weight: 900; color: white; letter-spacing: 1px; }
.painel-tv-leg-desc { font-size: .65rem; color: rgba(255,255,255,.7); }

/* Footer */
.painel-tv-footer {
  display: flex; justify-content: space-between; align-items: center;
  padding: .4rem 1.5rem;
  background: rgba(0,0,0,.3);
  border-top: 1px solid rgba(255,255,255,.06);
  font-size: .65rem; color: rgba(255,255,255,.3);
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════
   PRONTUÁRIO — Novo layout com abas
══════════════════════════════════════════════════════════════ */
.pron-container { display: flex; flex-direction: column; gap: 1rem; }

/* Header do paciente */
.pron-patient-header {
  background: linear-gradient(135deg, #1565C0, #0d47a1);
  color: white; border-radius: 12px; padding: 1rem 1.25rem;
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 1rem;
}
.pron-patient-main { display: flex; align-items: flex-start; gap: 1rem; flex: 1; min-width: 0; }
.pron-patient-avatar {
  width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0;
  background: rgba(255,255,255,.2); border: 2px solid rgba(255,255,255,.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem; font-weight: 900; color: white;
}
.pron-patient-info { flex: 1; min-width: 0; }
.pron-patient-nome { font-size: 1.1rem; font-weight: 800; color: white; margin-bottom: .25rem; }
.pron-patient-dados { display: flex; flex-wrap: wrap; gap: .4rem; font-size: .78rem; color: rgba(255,255,255,.8); }
.pron-patient-dados span { display: flex; align-items: center; gap: .25rem; }
.pron-patient-dados i { opacity: .7; }
.pron-patient-alergia {
  display: inline-flex; align-items: center; gap: .3rem;
  background: rgba(255,193,7,.2); border: 1px solid rgba(255,193,7,.4);
  color: #FFD54F; border-radius: 6px; padding: .2rem .5rem;
  font-size: .75rem; font-weight: 600; margin-top: .3rem;
}
.pron-patient-status { text-align: right; flex-shrink: 0; }
.pron-patient-num { font-size: 1rem; font-weight: 800; color: #FFD54F; letter-spacing: 1px; }

/* Abas do prontuário */
.pron-tabs-bar {
  display: flex; gap: .25rem; flex-wrap: wrap;
  background: white; border: 1px solid #e2e8f0;
  border-radius: 10px; padding: .35rem;
}
.pron-tab-btn {
  display: flex; align-items: center; gap: .4rem;
  padding: .45rem .85rem; border-radius: 7px;
  border: none; background: transparent;
  cursor: pointer; font-size: .8rem; font-weight: 500;
  color: #64748b; transition: all .15s; white-space: nowrap;
}
.pron-tab-btn i { font-size: .8rem; }
.pron-tab-btn:hover { background: #f1f5f9; color: #1e293b; }
.pron-tab-btn.active { background: #1565C0; color: white; font-weight: 600; }

/* Conteúdo da aba */
.pron-tab-content {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: .85rem;
}

/* Quando form-modern, o fundo é neutro e os cards definem o visual */
.pron-tab-content .pron-form-modern { background: transparent; }

/* Seção header dentro do prontuário */
.pron-section-header {
  display: flex; justify-content: space-between; align-items: center;
  font-size: .8rem; font-weight: 700; color: #1e293b;
  padding: .5rem 0; border-bottom: 2px solid #e2e8f0;
  margin: 1rem 0 .75rem; text-transform: uppercase; letter-spacing: .5px;
}
.pron-section-header:first-child { margin-top: 0; }
.pron-ia-hint { font-size: .72rem; color: #7c3aed; font-weight: 400; text-transform: none; letter-spacing: 0; }

/* Campo com IA */
.form-group-ia { position: relative; }
.form-label-ia { display: flex; justify-content: space-between; align-items: center; margin-bottom: .35rem; }
.btn-ia-sugerir {
  display: inline-flex; align-items: center; gap: .25rem;
  font-size: .7rem; font-weight: 600; padding: .2rem .5rem;
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
  color: white; border: none; border-radius: 5px;
  cursor: pointer; transition: opacity .15s; white-space: nowrap;
}
.btn-ia-sugerir:hover { opacity: .85; }
.btn-ia-sugerir:disabled { opacity: .5; cursor: not-allowed; }

/* Caixa de sugestão IA */
.ia-sugestao-box {
  margin-top: .4rem; background: linear-gradient(135deg, #faf5ff, #f3e8ff);
  border: 1.5px solid #c4b5fd; border-radius: 8px; padding: .75rem;
  animation: slideDown .2s ease;
}
@keyframes slideDown {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
.ia-sugestao-header {
  display: flex; align-items: center; gap: .4rem;
  font-size: .7rem; font-weight: 700; color: #7c3aed;
  margin-bottom: .4rem;
}
.ia-fonte-badge {
  font-size: .62rem; padding: .1rem .35rem; border-radius: 4px;
  background: #e9d5ff; color: #6d28d9; font-weight: 600; margin-left: auto;
}
.ia-fonte-ai { background: #dbeafe; color: #1d4ed8; }
.ia-sugestao-texto {
  font-size: .82rem; line-height: 1.55; color: #1e293b;
  white-space: pre-wrap; margin-bottom: .5rem;
  max-height: 150px; overflow-y: auto;
}
.ia-aviso {
  font-size: .72rem; color: #78350f; margin-top: .4rem; margin-bottom: .2rem;
  background: #fffbeb; border: 1px solid #fde68a; border-radius: 6px;
  padding: .35rem .55rem; line-height: 1.45;
}
.ia-sugestao-acoes { display: flex; gap: .4rem; flex-wrap: wrap; }

/* Autocomplete */
.autocomplete-wrap { position: relative; }
.autocomplete-list {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 200;
  background: white; border: 1px solid #e2e8f0; border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12); max-height: 220px; overflow-y: auto;
  display: none;
}
.autocomplete-list.show { display: block; }
.autocomplete-item {
  padding: .5rem .75rem; cursor: pointer; border-bottom: 1px solid #f8fafc;
  font-size: .82rem;
}
.autocomplete-item:hover { background: #eff6ff; }
.autocomplete-item strong { color: #1565C0; }
.autocomplete-item small { color: #64748b; font-size: .73rem; }

/* Botões de ação do prontuário */
.pron-action-btns {
  display: flex; gap: .5rem; flex-wrap: wrap;
  padding: .75rem 0 0; border-top: 1px solid #f1f5f9; margin-top: .75rem;
}
.pron-actions-bar {
  display: flex; gap: .5rem; flex-wrap: wrap;
}

/* ══════════════════════════════════════════════════════════════
   PRONTUÁRIO — CARDS MODERNOS (pron-form-modern)
══════════════════════════════════════════════════════════════ */
.pron-form-modern {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

/* Card base */
.pron-card {
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}

/* Header do card */
.pron-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .55rem 1rem;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  border-bottom: 1px solid rgba(0,0,0,.07);
  gap: .5rem;
}
.pron-card-header i { font-size: .88rem; }

/* Body do card */
.pron-card-body {
  padding: .85rem 1rem;
}

/* Grid de 2 colunas igual */
.pron-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .85rem;
}

/* Grid de 3 colunas */
.pron-grid-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: .85rem;
}

/* Coluna individual */
.pron-col { display: flex; flex-direction: column; }
.pron-col .form-group { margin-bottom: 0; flex: 1; }
.pron-col .form-group textarea,
.pron-col .form-group .form-control { height: 100%; min-height: 100px; resize: vertical; }

/* Remove label do campo queixa quando vazio */
.pron-card-body > .form-group-ia > .form-label-ia > .form-label:empty { display: none; }

/* Input CID destacado */
.pron-cid-input {
  font-family: monospace;
  font-size: .85rem;
  letter-spacing: .5px;
  background: #f8fafc;
  border-color: #cbd5e1;
}
.pron-cid-input:focus { background: #fff; border-color: #1565C0; }

/* ── Variantes de cor para cada card ── */
.pron-card-blue .pron-card-header {
  background: linear-gradient(135deg, #1e3a5f 0%, #2563eb 100%);
  color: #fff;
  border-bottom: none;
}
.pron-card-blue .pron-card-body { background: #f0f7ff; }

.pron-card-teal .pron-card-header {
  background: linear-gradient(135deg, #0f4c4c 0%, #0d9488 100%);
  color: #fff;
  border-bottom: none;
}
.pron-card-teal .pron-card-body { background: #f0fdfa; }

.pron-card-purple .pron-card-header {
  background: linear-gradient(135deg, #3b0764 0%, #7c3aed 100%);
  color: #fff;
  border-bottom: none;
}
.pron-card-purple .pron-card-body { background: #faf5ff; }

.pron-card-gray .pron-card-header {
  background: linear-gradient(135deg, #334155 0%, #64748b 100%);
  color: #fff;
  border-bottom: none;
}
.pron-card-gray .pron-card-body { background: #f8fafc; }

/* Ajuste de textarea dentro dos cards */
.pron-card-body textarea.form-control {
  min-height: 110px;
  resize: vertical;
  line-height: 1.55;
  font-size: .84rem;
  color: #1e293b !important;           /* garante texto visível em todos os temas */
  background: #ffffff !important;      /* fundo sempre branco */
  -webkit-text-fill-color: #1e293b;    /* fix Safari/WebKit: impede herança de cor do container */
}

/* Ajuste do botão IA dentro do header */
.pron-card-header .pron-ia-hint {
  font-size: .7rem;
  font-weight: 400;
  opacity: .85;
  text-transform: none;
  letter-spacing: 0;
  color: rgba(255,255,255,.9);
}

/* Responsivo: 2 col → 1 col em telas menores */
@media (max-width: 768px) {
  .pron-grid-2,
  .pron-grid-3 { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════
   HISTÓRICO IA — Timeline
══════════════════════════════════════════════════════════════ */
.ia-timeline { display: flex; flex-direction: column; gap: 0; }
.ia-timeline-item {
  display: flex; gap: 1rem; padding-bottom: 1.25rem;
  position: relative;
}
.ia-timeline-item:not(:last-child)::before {
  content: ''; position: absolute; left: 14px; top: 30px;
  bottom: 0; width: 2px; background: #e2e8f0;
}
.ia-timeline-dot {
  width: 30px; height: 30px; border-radius: 50%;
  border: 2px solid; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: .75rem; font-weight: 700; z-index: 1;
  background: white;
}
.ia-timeline-content { flex: 1; min-width: 0; }
.ia-timeline-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: .4rem; flex-wrap: wrap; gap: .3rem;
}
.ia-timeline-data { font-size: .78rem; font-weight: 700; color: #1e293b; }
.ia-timeline-num { font-size: .72rem; color: #64748b; font-style: italic; }
.ia-timeline-body {
  background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px;
  padding: .65rem .85rem; font-size: .8rem; color: #374151;
}
.ia-timeline-row { display: flex; gap: .4rem; margin-bottom: .2rem; font-size: .78rem; }
.ia-timeline-row:last-child { margin-bottom: 0; }
.ia-tl-label { font-weight: 600; color: #64748b; min-width: 80px; flex-shrink: 0; }
.ia-tl-val { color: #1e293b; }
.ia-obs-box {
  margin-top: .75rem; background: linear-gradient(135deg, #fffbeb, #fef3c7);
  border: 1px solid #fde68a; border-radius: 8px; padding: .6rem .85rem;
}
.ia-obs-title { font-size: .72rem; font-weight: 700; color: #92400e; margin-bottom: .3rem; display: flex; align-items: center; gap: .3rem; }
.ia-obs-item { font-size: .78rem; color: #78350f; margin-bottom: .2rem; line-height: 1.4; }


/* ── MODAL ALOCAR LEITO (visual igual à tela de Leitos) ─────── */
.modal-leito-alocar {
  width: min(92vw, 860px);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
}
.modal-leito-alocar .modal-body {
  overflow-y: auto;
  flex: 1;
  padding: 1.25rem 1.5rem;
}
.mla-resumo {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.25rem;
  padding: .65rem 1rem;
  background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 10px;
}
.mla-badge { font-size: .85rem; font-weight: 600; color: #15803d; display: flex; align-items: center; gap: .4rem; }
.mla-hint  { font-size: .78rem; color: #6b7280; display: flex; align-items: center; gap: .35rem; }
.mla-setor { margin-bottom: 1.5rem; }
.mla-setor-header {
  display: flex; align-items: center; gap: .5rem;
  font-size: .9rem; font-weight: 700; color: #1e293b;
  padding: .5rem 0 .65rem;
  border-bottom: 2px solid #e2e8f0; margin-bottom: .9rem;
}
.mla-setor-count {
  margin-left: auto;
  font-size: .75rem; font-weight: 600;
  background: #dcfce7; color: #15803d;
  border-radius: 20px; padding: .15rem .65rem;
}
.mla-grid {
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)) !important;
  gap: .75rem !important;
}
.mla-cama {
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease !important;
}
.mla-cama:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 6px 20px rgba(22,163,74,.25) !important;
  border-color: #16a34a !important;
}
.mla-cama:active { transform: scale(.97); }

/* ══════════════════════════════════════════════════════════════
   TABS FILHAS DO ATENDIMENTO — toolbar + empty state
   ══════════════════════════════════════════════════════════════ */
.tab-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.25rem; gap: .75rem; flex-wrap: wrap;
}
.tab-toolbar-info { display: flex; gap: .5rem; flex-wrap: wrap; }
.ttb-badge {
  display: inline-flex; align-items: center; gap: .35rem;
  font-size: .78rem; font-weight: 600; padding: .3rem .75rem;
  border-radius: 20px;
}
.ttb-green  { background: #dcfce7; color: #15803d; }
.ttb-blue   { background: #dbeafe; color: #1d4ed8; }
.ttb-orange { background: #ffedd5; color: #c2410c; }
.ttb-gray   { background: #f3f4f6; color: #4b5563; }
.tab-empty {
  text-align: center; padding: 3rem 1rem;
  color: #9ca3af; display: flex; flex-direction: column;
  align-items: center; gap: .75rem;
}
.tab-empty > i { font-size: 2.5rem; opacity: .35; }
.tab-empty > p { font-size: .9rem; margin: 0; }

/* ══════════════════════════════════════════════════════════════
   PRESCRIÇÕES — rx-card v2 (redesign completo)
   ══════════════════════════════════════════════════════════════ */

/* Toolbar topo da aba */
.rx-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1rem; flex-wrap: wrap; gap: .6rem;
}
.rx-toolbar-badges { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; }
.rx-tb-badge {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .76rem; font-weight: 600; padding: .3rem .75rem;
  border-radius: 20px;
}
.rx-tb-ativa   { background: #dcfce7; color: #15803d; border: 1px solid #bbf7d0; }
.rx-tb-suspensa{ background: #fee2e2; color: #b91c1c; border: 1px solid #fecaca; }
.rx-tb-total   { background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0; }
.rx-nova-btn   { white-space: nowrap; }

/* Card principal da prescrição */
.rx-card {
  background: #fff;
  border: 1.5px solid #e2e8f0; border-radius: 14px;
  margin-bottom: 1.1rem; overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: box-shadow .2s, transform .15s;
}
.rx-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.1); transform: translateY(-1px); }
.rx-ativa   { border-left: 5px solid #16a34a; }
.rx-inativa { border-left: 5px solid #94a3b8; opacity: .9; }

/* Cabeçalho do card */
.rx-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: .85rem 1.1rem; background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
  border-bottom: 1px solid #e2e8f0; gap: .75rem; flex-wrap: wrap;
}
.rx-header-left { display: flex; align-items: center; gap: .8rem; flex: 1; min-width: 0; }

/* Ícone com numeração */
.rx-icon-wrap {
  position: relative; width: 44px; height: 44px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; color: #fff; flex-shrink: 0;
}
.rx-icon-ativa  { background: linear-gradient(135deg, #059669, #16a34a); }
.rx-icon-inativa{ background: linear-gradient(135deg, #94a3b8, #64748b); }
.rx-num-badge {
  position: absolute; top: -5px; right: -5px;
  background: #1e293b; color: #fff; font-size: .58rem; font-weight: 800;
  width: 16px; height: 16px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  border: 1.5px solid #fff;
}

/* Meta do card */
.rx-meta { flex: 1; min-width: 0; }
.rx-meta-title {
  font-size: .9rem; font-weight: 700; color: #0f172a;
  display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
}
.rx-meta-sub {
  font-size: .76rem; color: #64748b; margin-top: .25rem;
  display: flex; align-items: center; gap: .45rem; flex-wrap: wrap;
}
.rx-meta-sep { color: #cbd5e1; }

/* Badge de status no título */
.rx-status-pill {
  font-size: .68rem; font-weight: 700; padding: .2rem .6rem;
  border-radius: 20px; display: inline-flex; align-items: center; gap: .3rem;
  white-space: nowrap;
}
.rx-pill-ativa  { background: #dcfce7; color: #15803d; }
.rx-pill-inativa{ background: #f3f4f6; color: #6b7280; }

/* Ações no cabeçalho */
.rx-header-actions { display: flex; gap: .4rem; }
.rx-action-btn {
  width: 30px; height: 30px; border-radius: 8px; border: 1px solid #e2e8f0;
  background: #fff; color: #64748b; cursor: pointer; font-size: .8rem;
  display: flex; align-items: center; justify-content: center;
  transition: all .15s;
}
.rx-action-btn:hover { background: #f1f5f9; color: #1e293b; }
.rx-btn-print:hover  { border-color: #93c5fd; color: #2563eb; background: #eff6ff; }

/* Faixa de informações clínicas (dieta + cuidados) */
.rx-clinical-row {
  display: flex; gap: 0; flex-wrap: wrap;
  border-bottom: 1px solid #e2e8f0;
}
.rx-clinical-item {
  display: flex; align-items: flex-start; gap: .65rem;
  padding: .65rem 1.1rem; flex: 1; min-width: 220px;
}
.rx-ci-dieta   { background: #fffbeb; border-right: 1px solid #fde68a; }
.rx-ci-cuidados{ background: #f0fdf4; }
.rx-ci-icon {
  width: 30px; height: 30px; border-radius: 8px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: .85rem;
}
.rx-ci-dieta    .rx-ci-icon { background: #fef3c7; color: #d97706; }
.rx-ci-cuidados .rx-ci-icon { background: #dcfce7; color: #16a34a; }
.rx-ci-label { font-size: .68rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; color: #94a3b8; margin-bottom: .15rem; }
.rx-ci-value { font-size: .82rem; color: #334155; font-weight: 500; }

/* Seção de medicamentos */
.rx-meds-section { padding: .85rem 1.1rem 1rem; }
.rx-meds-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: .75rem;
}
.rx-meds-title {
  font-size: .78rem; font-weight: 700; color: #1e40af; text-transform: uppercase;
  letter-spacing: .06em; display: flex; align-items: center; gap: .4rem;
}
.rx-meds-count {
  font-size: .72rem; font-weight: 600; padding: .15rem .55rem;
  background: #dbeafe; color: #1d4ed8; border-radius: 20px;
}

/* Grid de cards de medicamentos */
.rx-meds-grid { display: flex; flex-direction: column; gap: .55rem; }

/* Card individual do medicamento */
.rx-med-card {
  display: flex; align-items: center; gap: .75rem;
  padding: .65rem .85rem; border-radius: 10px;
  background: #f8fafc; border: 1.5px solid #e2e8f0;
  transition: border-color .15s, background .15s;
}
.rx-med-card:hover { background: #eff6ff; border-color: #93c5fd; }
.rx-med-suspenso   { background: #fff1f2; border-color: #fecdd3; opacity: .75; }
.rx-med-adm        { background: #f0fdf4; border-color: #bbf7d0; }

/* Número sequencial */
.rx-med-seq {
  width: 26px; height: 26px; border-radius: 50%;
  background: #1e40af; color: #fff;
  font-size: .7rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.rx-med-suspenso .rx-med-seq { background: #9ca3af; }
.rx-med-adm      .rx-med-seq { background: #16a34a; }

/* Conteúdo do medicamento */
.rx-med-content { flex: 1; min-width: 0; }
.rx-med-top {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .3rem;
}
.rx-med-nome {
  font-size: .9rem; font-weight: 700; color: #0f172a;
}
.rx-med-nome-riscado { text-decoration: line-through; color: #9ca3af; }

/* Badge de status do item */
.rx-item-status {
  font-size: .65rem; font-weight: 700; padding: .15rem .5rem;
  border-radius: 20px; display: inline-flex; align-items: center; gap: .25rem;
}

/* Chips v2 (dose, via, frequência) */
.rx-med-chips { display: flex; gap: .35rem; flex-wrap: wrap; }
.rx-chip-v2 {
  display: inline-flex; align-items: center; gap: .28rem;
  font-size: .72rem; font-weight: 600; padding: .22rem .6rem;
  border-radius: 6px; white-space: nowrap;
}
.rx-chip-dose2   { background: #dbeafe; color: #1d4ed8; }
.rx-chip-freq    { background: #fef9c3; color: #78350f; }
.rx-chip-unidade { background: #ede9fe; color: #7c3aed; }
.rx-chip-para-casa { background: #fef3c7; color: #b45309; }
/* .rx-chip-via2 usa style inline para cor dinâmica por via */

/* ─── Toggle Local de Realização no modal de medicamentos ──── */
.med-local-realizacao-group { margin-top: .4rem; }
.med-local-toggle {
  display: flex;
  gap: .35rem;
  margin-top: .3rem;
}
.med-local-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .45rem .5rem;
  border-radius: 8px;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  border: 2px solid transparent;
  background: #f1f5f9;
  color: #64748b;
  transition: all .15s ease;
}
.med-local-btn:hover { filter: brightness(.96); }
.med-local-unidade.active {
  background: #ede9fe;
  color: #7c3aed;
  border-color: #c4b5fd;
}
.med-local-casa.active {
  background: #fef3c7;
  color: #b45309;
  border-color: #fcd34d;
}

/* Botão de administrar */
.rx-med-actions { flex-shrink: 0; }
.rx-adm-btn {
  width: 32px; height: 32px; border-radius: 8px;
  background: #dcfce7; color: #16a34a; border: 1.5px solid #86efac;
  cursor: pointer; font-size: .9rem;
  display: flex; align-items: center; justify-content: center;
  transition: all .15s;
}
.rx-adm-btn:hover { background: #16a34a; color: #fff; transform: scale(1.1); }

/* Estado vazio de medicamentos */
.rx-meds-empty {
  font-size: .82rem; color: #94a3b8; font-style: italic;
  padding: .6rem .75rem; background: #f8fafc; border-radius: 8px;
  border: 1px dashed #e2e8f0;
  display: flex; align-items: center; gap: .5rem;
}

/* Barra de observações */
.rx-obs-bar {
  padding: .55rem 1.1rem;
  font-size: .8rem; color: #475569;
  border-top: 1px solid #e2e8f0; background: #f8fafc;
  display: flex; align-items: flex-start; gap: .5rem;
}
.rx-obs-bar > i { color: #64748b; margin-top: .1rem; flex-shrink: 0; }

/* Legenda de chips nos chips antigos (compatibilidade) */
.rx-chip {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .72rem; font-weight: 500; padding: .2rem .55rem;
  border-radius: 6px;
}
.rx-chip-dose { background: #dbeafe; color: #1d4ed8; }
.rx-chip-via  { background: #f3e8ff; color: #7c3aed; }

/* ══════════════════════════════════════════════════════════════
   SINAIS VITAIS — sv-grid
   ══════════════════════════════════════════════════════════════ */
.sv-grid { display: flex; flex-direction: column; gap: 1rem; }
.sv-card {
  border: 1.5px solid #e2e8f0; border-radius: 12px; overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.sv-card-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: .6rem 1rem; background: #f8fafc;
  border-bottom: 1px solid #e2e8f0; flex-wrap: wrap; gap: .5rem;
}
.sv-dt  { font-size: .8rem; color: #475569; font-weight: 600; display: flex; align-items: center; gap: .35rem; }
.sv-by  { font-size: .76rem; color: #94a3b8; }
.sv-vitals {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
  gap: .75rem; padding: .9rem 1rem;
}
.sv-vital {
  display: flex; flex-direction: column; align-items: center; gap: .3rem; text-align: center;
}
.sv-vital-icon {
  width: 36px; height: 36px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: .9rem;
}
.sv-vital-val  { font-size: 1rem; font-weight: 700; color: #1e293b; line-height: 1; }
.sv-vital-label{ font-size: .68rem; color: #94a3b8; font-weight: 500; }

/* ══════════════════════════════════════════════════════════════
   EXAMES — exames-list
   ══════════════════════════════════════════════════════════════ */
.exames-list { display: flex; flex-direction: column; gap: .65rem; }
.exame-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: .85rem 1rem; border: 1.5px solid #e2e8f0; border-radius: 10px;
  background: #fff; gap: 1rem; flex-wrap: wrap;
  transition: border-color .2s, box-shadow .2s;
}
.exame-item:hover { border-color: #93c5fd; box-shadow: 0 2px 8px rgba(37,99,235,.1); }
.exame-item-left { display: flex; align-items: flex-start; gap: .75rem; flex: 1; min-width: 0; }
.exame-status-dot {
  width: 10px; height: 10px; border-radius: 50%; margin-top: .35rem; flex-shrink: 0;
}
.exame-nome { font-size: .9rem; font-weight: 700; color: #1e293b; margin-bottom: .3rem; }
.exame-meta { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.exame-resultado {
  margin-top: .4rem; padding: .4rem .6rem; border-radius: 6px;
  background: #f0fdf4; border: 1px solid #bbf7d0;
  font-size: .78rem; color: #15803d; display: flex; gap: .4rem; align-items: flex-start;
}
.exame-status-badge {
  font-size: .72rem; font-weight: 700; padding: .3rem .75rem;
  border-radius: 20px; white-space: nowrap;
  display: flex; align-items: center; gap: .35rem; flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════
   EVOLUÇÕES — ev-timeline
   ══════════════════════════════════════════════════════════════ */
.ev-timeline { display: flex; flex-direction: column; gap: 0; padding-left: .25rem; }
.ev-item { display: flex; gap: .75rem; align-items: flex-start; margin-bottom: 1rem; }
.ev-linha {
  display: flex; flex-direction: column; align-items: center;
  flex-shrink: 0; width: 20px; padding-top: .4rem;
}
.ev-dot {
  width: 14px; height: 14px; border-radius: 50%;
  border: 2.5px solid #fff; box-shadow: 0 0 0 2px currentColor;
  flex-shrink: 0;
}
.ev-vert { width: 2px; background: #e2e8f0; flex: 1; min-height: 24px; margin-top: 4px; }
.ev-card {
  flex: 1; border: 1.5px solid #e2e8f0; border-radius: 10px;
  overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.ev-card-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: .6rem .9rem; background: #f8fafc;
  border-bottom: 1px solid #e2e8f0; flex-wrap: wrap; gap: .5rem;
}
.ev-tipo-tag {
  font-size: .75rem; font-weight: 700; padding: .25rem .65rem;
  border-radius: 20px; display: flex; align-items: center; gap: .35rem;
}
.ev-card-meta { display: flex; gap: .65rem; font-size: .75rem; color: #94a3b8; flex-wrap: wrap; }
.ev-card-meta span { display: flex; align-items: center; gap: .3rem; }
.ev-card-body { padding: .75rem .9rem; }
.ev-descricao { font-size: .84rem; color: #374151; line-height: 1.55; }
.ev-conduta {
  margin-top: .65rem; padding: .5rem .75rem; border-radius: 7px;
  background: #eff6ff; border-left: 3px solid #3b82f6;
  font-size: .82rem; color: #1e40af; display: flex; gap: .4rem; align-items: flex-start;
}

/* ══════════════════════════════════════════════════════════════
   PROCEDIMENTOS — proc-list
   ══════════════════════════════════════════════════════════════ */
.proc-list { display: flex; flex-direction: column; gap: .6rem; }
.proc-item {
  display: flex; align-items: center; gap: .85rem;
  padding: .85rem 1rem; border: 1.5px solid #e2e8f0; border-radius: 10px;
  background: #fff; transition: border-color .2s;
}
.proc-item:hover { border-color: #93c5fd; }
.proc-icon {
  width: 38px; height: 38px; border-radius: 10px; flex-shrink: 0;
  background: linear-gradient(135deg, #0ea5e9, #2563eb);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: .95rem;
}
.proc-body { flex: 1; min-width: 0; }
.proc-nome { font-size: .88rem; font-weight: 700; color: #1e293b; margin-bottom: .3rem; }
.proc-meta { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.proc-obs { font-size: .78rem; color: #64748b; margin-top: .3rem; font-style: italic; }
.proc-status-ok {
  font-size: .72rem; font-weight: 700; color: #15803d;
  background: #dcfce7; padding: .25rem .65rem; border-radius: 20px;
  white-space: nowrap; display: flex; align-items: center; gap: .3rem; flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════
   MODAL SINAIS VITAIS — redesign completo
   ══════════════════════════════════════════════════════════════ */

/* Tamanho e scroll do modal */
.modal-sv { max-width: 700px; width: 96vw; }
.sv-modal-body { padding: .55rem .9rem; overflow: visible; }

/* Linha de Data/Hora somente leitura */
.sv-datetime-row {
  display: flex; align-items: center; gap: .55rem;
  background: linear-gradient(90deg, #f0f9ff, #e0f2fe);
  border: 1.5px solid #bae6fd; border-radius: 10px;
  padding: .45rem .85rem; margin-bottom: .55rem;
  font-size: .8rem; color: #0369a1;
}
.sv-datetime-row i { color: #0284c7; font-size: .85rem; }
.sv-datetime-label { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.sv-datetime-value { margin-left: auto; font-weight: 600; font-size: .82rem; color: #0c4a6e; }

/* Header especial */
.sv-modal-header {
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%);
  border-bottom: none; padding: 1rem 1.25rem;
}
.sv-modal-title { display: flex; align-items: center; gap: .85rem; }
.sv-modal-icon {
  width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem; box-shadow: 0 4px 12px rgba(239,68,68,.4);
  animation: sv-pulse 1.8s infinite;
}
@keyframes sv-pulse {
  0%,100% { box-shadow: 0 4px 12px rgba(239,68,68,.4); }
  50%      { box-shadow: 0 4px 20px rgba(239,68,68,.8); }
}
.sv-modal-title-text {
  font-size: .95rem; font-weight: 700; color: #fff;
}
.sv-modal-subtitle { font-size: .75rem; color: #94a3b8; margin-top: .1rem; }
.sv-modal-header .modal-close {
  color: #94a3b8; background: rgba(255,255,255,.08);
  border-radius: 8px; width: 32px; height: 32px;
}
.sv-modal-header .modal-close:hover { background: #ef4444; color: #fff; }

/* Grupos de campos */
.sv-group { margin-bottom: .4rem; }
.sv-group-label {
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: #64748b;
  display: flex; align-items: center; gap: .4rem;
  margin-bottom: .3rem; padding-bottom: .25rem;
  border-bottom: 1.5px solid #f1f5f9;
}
.sv-group-fields {
  display: grid; grid-template-columns: 1fr 1fr; gap: .65rem;
}

/* Card de cada campo vital */
.sv-field-card {
  display: flex; align-items: flex-start; gap: .6rem;
  padding: .45rem .65rem; border-radius: 10px;
  border: 1.5px solid transparent;
  background: #f8fafc; transition: border-color .2s, box-shadow .2s;
}
.sv-field-card:focus-within {
  box-shadow: 0 2px 12px rgba(0,0,0,.1);
  border-color: var(--sv-color, #64748b);
}

/* Cores por categoria */
.sv-fc-red    { --sv-color:#ef4444; }
.sv-fc-pink   { --sv-color:#ec4899; }
.sv-fc-rose   { --sv-color:#f43f5e; }
.sv-fc-blue   { --sv-color:#3b82f6; }
.sv-fc-orange { --sv-color:#f97316; }
.sv-fc-cyan   { --sv-color:#06b6d4; }
.sv-fc-amber  { --sv-color:#f59e0b; }
.sv-fc-purple { --sv-color:#8b5cf6; }

/* Ícone do campo */
.sv-field-icon {
  width: 32px; height: 32px; border-radius: 9px; flex-shrink: 0;
  background: var(--sv-color, #64748b); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem; margin-top: .1rem;
  opacity: .85;
}
.sv-field-card:focus-within .sv-field-icon { opacity: 1; }

/* Corpo do campo */
.sv-field-body { flex: 1; min-width: 0; }
.sv-field-label {
  display: block; font-size: .68rem; font-weight: 700; color: #475569;
  text-transform: uppercase; letter-spacing: .04em; margin-bottom: .15rem;
}

/* Wrapper input + unidade */
.sv-input-wrap {
  display: flex; align-items: center; gap: .4rem; margin-bottom: .12rem;
}
.sv-input {
  flex: 1; min-width: 0; width: 100%;
  border: 1.5px solid #e2e8f0; border-radius: 8px;
  padding: .3rem .55rem; font-size: .88rem; font-weight: 600;
  color: #0f172a; background: #fff;
  transition: border-color .2s, box-shadow .2s;
  outline: none;
}
.sv-input:focus {
  border-color: var(--sv-color, #3b82f6);
  box-shadow: 0 0 0 3px rgba(99,102,241,.18);
}
.sv-input::placeholder { color: #cbd5e1; font-weight: 400; }

/* Estados de validação */
.sv-input-ok      { border-color: #16a34a !important; background: #f0fdf4; }
.sv-input-warn    { border-color: #f59e0b !important; background: #fffbeb; }
.sv-input-danger  { border-color: #ef4444 !important; background: #fff1f2; }

/* Unidade */
.sv-unit {
  font-size: .7rem; font-weight: 600; color: #94a3b8;
  white-space: nowrap; flex-shrink: 0;
}

/* Referência normal */
.sv-ref {
  font-size: .65rem; color: #94a3b8; line-height: 1.3;
}

/* Barra de dor (EVA) */
.sv-dor-bar {
  height: 5px; background: #e2e8f0; border-radius: 99px;
  overflow: hidden; margin: .35rem 0 .2rem;
}
.sv-dor-fill {
  height: 100%; width: 0%; border-radius: 99px;
  transition: width .3s ease, background .3s ease;
}

/* Footer do modal */
.sv-modal-footer {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: .5rem;
  padding: .55rem .9rem; border-top: 1px solid #f1f5f9;
  background: #f8fafc;
}
.sv-footer-by {
  font-size: .78rem; color: #64748b; font-weight: 500;
  display: flex; align-items: center; gap: .4rem;
}
.sv-footer-by i { color: #3b82f6; }
.sv-footer-btns { display: flex; gap: .5rem; }
.sv-submit-btn { background: linear-gradient(135deg, #1d4ed8, #2563eb); border: none; }
.sv-submit-btn:hover { background: linear-gradient(135deg, #1e40af, #1d4ed8); }

/* Responsivo: 1 coluna em telas pequenas */
@media (max-width: 480px) {
  .sv-group-fields { grid-template-columns: 1fr; }
  .modal-sv { max-width: 100%; }
}

/* ══════════════════════════════════════════════════════════════
   ENFERMAGEM — tela principal
   ══════════════════════════════════════════════════════════════ */

/* Header da página */
.enf-page-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.25rem; flex-wrap: wrap; gap: .75rem;
}
.enf-header-left { display: flex; align-items: center; gap: 1rem; }
.enf-header-icon {
  width: 50px; height: 50px; border-radius: 14px; flex-shrink: 0;
  background: linear-gradient(135deg, #1e40af, #3b82f6);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem; box-shadow: 0 4px 14px rgba(59,130,246,.4);
}
.enf-header-title { font-size: 1.35rem; font-weight: 800; color: #0f172a; margin: 0; }
.enf-header-sub   { font-size: .8rem; color: #64748b; margin: .1rem 0 0; }
.enf-refresh-btn  { white-space: nowrap; }

/* Barra de resumo numérico */
.enf-summary {
  display: grid; grid-template-columns: repeat(4,1fr);
  gap: .65rem; margin-bottom: 1.25rem;
}
@media (max-width:700px) { .enf-summary { grid-template-columns: repeat(2,1fr); } }
.enf-sum-card {
  display: flex; align-items: center; gap: .75rem;
  padding: .85rem 1rem; border-radius: 12px;
  background: #fff; border: 1.5px solid #e2e8f0;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.enf-sum-card > i  { font-size: 1.35rem; flex-shrink: 0; }
.enf-sum-num   { display: block; font-size: 1.5rem; font-weight: 800; color: #0f172a; line-height: 1; }
.enf-sum-label { font-size: .68rem; color: #64748b; font-weight: 500; margin-top: .15rem; display: block; }
.enf-sum-atend > i { color: #2563eb; }
.enf-sum-obs   > i { color: #7c3aed; }
.enf-sum-pend  > i { color: #94a3b8; }
.enf-sum-alert     { border-color: #fca5a5 !important; background: #fff1f2 !important; }
.enf-sum-alert > i { color: #dc2626 !important; }
.enf-sum-alert .enf-sum-num { color: #dc2626; }
.enf-sum-total > i { color: #0891b2; }

/* Loading */
.enf-loading {
  display: flex; align-items: center; justify-content: center;
  gap: .75rem; padding: 3rem; color: #94a3b8; font-size: .9rem;
}

/* Grid de cards dos pacientes */
.enf-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1rem;
}

/* Card de cada paciente */
.enf-card {
  background: #fff; border-radius: 14px;
  border: 1.5px solid #e2e8f0;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  overflow: hidden; display: flex; flex-direction: column;
  transition: box-shadow .2s, transform .15s;
}
.enf-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.1); transform: translateY(-2px); }

.enf-card-header {
  display: flex; align-items: center; gap: .5rem;
  padding: .6rem .9rem; background: #f8fafc;
  border-bottom: 1px solid #f1f5f9;
}
.enf-card-risco {
  font-size: .65rem; font-weight: 800; padding: .18rem .55rem;
  border-radius: 20px; text-transform: uppercase; white-space: nowrap;
}
.enf-card-num {
  font-size: .72rem; color: #64748b; font-weight: 600; flex: 1;
}
.enf-alert-badge {
  background: #fef2f2; color: #dc2626; border: 1px solid #fca5a5;
  font-size: .68rem; font-weight: 800; padding: .2rem .55rem;
  border-radius: 20px; display: flex; align-items: center; gap: .25rem;
  animation: enf-blink 1.5s infinite;
}
@keyframes enf-blink { 0%,100%{opacity:1} 50%{opacity:.6} }
.enf-ok-badge {
  background: #dcfce7; color: #15803d;
  font-size: .68rem; padding: .2rem .55rem; border-radius: 20px;
}

/* Info do paciente */
.enf-card-paciente {
  display: flex; align-items: center; gap: .75rem;
  padding: .75rem .9rem;
}
.enf-card-avatar {
  width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;
  font-size: 1.1rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.enf-card-nome  { font-size: .9rem; font-weight: 700; color: #0f172a; }
.enf-card-meta  { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .2rem; font-size: .72rem; color: #64748b; }

/* Pré-visualização de medicamentos */
.enf-card-meds {
  padding: .5rem .9rem; border-top: 1px solid #f1f5f9;
  border-bottom: 1px solid #f1f5f9; min-height: 48px;
  display: flex; flex-direction: column; gap: .35rem;
}
.enf-meds-label { font-size: .7rem; font-weight: 700; color: #dc2626; display: flex; align-items: center; gap: .35rem; }
.enf-meds-preview { display: flex; flex-wrap: wrap; gap: .3rem; }
.enf-med-chip {
  font-size: .68rem; font-weight: 600; padding: .2rem .55rem;
  background: #fef9c3; color: #92400e; border-radius: 20px; border: 1px solid #fde68a;
}
.enf-chip-more { background: #f1f5f9; color: #64748b; border-color: #e2e8f0; }
.enf-meds-ok { font-size: .75rem; color: #16a34a; display: flex; align-items: center; gap: .35rem; font-weight: 500; }

/* Botões de ação do card */
.enf-card-actions {
  display: flex; gap: .5rem; padding: .7rem .9rem;
}
.enf-btn-adm {
  flex: 1; padding: .5rem .75rem; border-radius: 8px;
  border: 1.5px solid #e2e8f0; background: #f8fafc; color: #475569;
  font-size: .8rem; font-weight: 600; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: .4rem;
  transition: all .15s;
}
.enf-btn-adm:hover { background: #f1f5f9; color: #1e293b; }
.enf-btn-adm-alert {
  background: linear-gradient(135deg, #dc2626, #ef4444) !important;
  color: #fff !important; border-color: #dc2626 !important;
  box-shadow: 0 3px 10px rgba(220,38,38,.35);
}
.enf-btn-adm-alert:hover { background: linear-gradient(135deg, #b91c1c, #dc2626) !important; }
.enf-btn-prontuario {
  width: 36px; height: 36px; border-radius: 8px;
  border: 1.5px solid #e2e8f0; background: #f8fafc; color: #2563eb;
  cursor: pointer; font-size: .85rem;
  display: flex; align-items: center; justify-content: center;
  transition: all .15s; flex-shrink: 0;
}
.enf-btn-prontuario:hover { background: #eff6ff; border-color: #93c5fd; }

/* Estado vazio */
.enf-empty {
  text-align: center; padding: 4rem 2rem;
  background: #fff; border-radius: 14px; border: 1.5px solid #e2e8f0;
}
.enf-empty-icon { font-size: 3rem; color: #16a34a; margin-bottom: 1rem; }
.enf-empty h3  { font-size: 1.1rem; color: #0f172a; margin-bottom: .5rem; }
.enf-empty p   { color: #64748b; font-size: .85rem; }

/* ══════════════════════════════════════════════════════════════
   MODAL ENFERMAGEM — administração de medicamentos
   ══════════════════════════════════════════════════════════════ */

.modal-enf { max-width: 700px; }

/* Header do modal */
.enf-modal-header {
  background: linear-gradient(135deg, #0f172a, #1e3a5f);
  border-bottom: none; padding: 1rem 1.25rem;
}
.enf-mh-left { display: flex; align-items: center; gap: .85rem; }
.enf-mh-icon {
  width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
}
.enf-mh-title { font-size: .95rem; font-weight: 700; color: #fff; }
.enf-mh-sub   { font-size: .75rem; color: #94a3b8; margin-top: .2rem; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.enf-mh-sep   { color: #334155; }
.enf-modal-header .modal-close { color: #94a3b8; background: rgba(255,255,255,.08); border-radius: 8px; }
.enf-modal-header .modal-close:hover { background: #ef4444; color: #fff; }

/* Contadores topo modal */
.enf-modal-counters {
  display: flex; gap: 0;
  border-bottom: 1px solid #e2e8f0;
}
.enf-mc {
  flex: 1; display: flex; flex-direction: column; align-items: center; gap: .15rem;
  padding: .65rem .5rem; font-size: .72rem;
  border-right: 1px solid #f1f5f9;
}
.enf-mc:last-child { border-right: none; }
.enf-mc > i    { font-size: .9rem; margin-bottom: .1rem; }
.enf-mc-num    { font-size: 1.3rem; font-weight: 800; color: #0f172a; line-height: 1; }
.enf-mc-label  { color: #64748b; font-size: .65rem; }
.enf-mc-alert  { background: #fff1f2; }
.enf-mc-alert > i, .enf-mc-alert .enf-mc-num { color: #dc2626; }
.enf-mc-ok     { background: #f0fdf4; }
.enf-mc-ok > i, .enf-mc-ok .enf-mc-num { color: #16a34a; }
.enf-mc-done   { background: #f0fdf4; }
.enf-mc-done > i { color: #16a34a; }
.enf-mc-susp   { background: #f8fafc; }
.enf-mc-susp > i { color: #9ca3af; }
.enf-mc-total  { background: #f8fafc; }
.enf-mc-total > i { color: #3b82f6; }

/* Body do modal */
.enf-modal-body { padding: 1rem 1.1rem; max-height: 62vh; overflow-y: auto; display: flex; flex-direction: column; gap: .75rem; }

/* Seções */
.enf-section { margin-bottom: .15rem; }
.enf-section-title {
  display: flex; align-items: center; gap: .5rem;
  font-size: .75rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; padding: .5rem .75rem; border-radius: 8px;
  margin-bottom: .5rem; user-select: none;
}
.enf-sec-pend  { background: #fff1f2; color: #b91c1c; }
.enf-sec-done  { background: #f0fdf4; color: #15803d; }
.enf-sec-susp  { background: #f8fafc; color: #64748b; }
.enf-sec-badge {
  font-size: .68rem; font-weight: 800; padding: .15rem .5rem;
  border-radius: 20px; margin-left: .35rem;
}
.enf-sec-badge-pend { background: #fecaca; color: #991b1b; }
.enf-sec-badge-done { background: #bbf7d0; color: #166534; }
.enf-sec-badge-susp { background: #e2e8f0; color: #475569; }
.enf-sec-chevron    { transition: transform .2s; font-size: .8rem; }

/* Lista de medicamentos no modal */
.enf-meds-list { display: flex; flex-direction: column; gap: .5rem; }
.enf-list-done { flex-direction: column; }

/* Linha de medicamento */
.enf-med-row {
  display: flex; align-items: center; gap: .75rem;
  padding: .7rem .85rem; border-radius: 10px;
  border: 1.5px solid #e2e8f0; background: #fff;
  transition: border-color .15s;
}
.enf-med-row:hover { border-color: #93c5fd; }
.enf-med-done { background: #f0fdf4 !important; border-color: #bbf7d0 !important; }
.enf-med-susp { background: #f9fafb !important; opacity: .7; }
@keyframes enfAdmDone { 0%{background:#dcfce7} 100%{background:#f0fdf4} }

.enf-med-seq {
  width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
  background: #1e40af; color: #fff;
  font-size: .7rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.enf-seq-done { background: #16a34a; }
.enf-seq-susp { background: #9ca3af; }

.enf-med-via-icon {
  width: 32px; height: 32px; border-radius: 9px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: .85rem;
}

.enf-med-info  { flex: 1; min-width: 0; }
.enf-med-nome  { font-size: .9rem; font-weight: 700; color: #0f172a; margin-bottom: .3rem; }
.enf-nome-done { color: #15803d; }
.enf-nome-susp { text-decoration: line-through; color: #9ca3af; }
.enf-med-chips { display: flex; gap: .3rem; flex-wrap: wrap; margin-bottom: .25rem; }
.enf-med-prescr { font-size: .68rem; color: #94a3b8; display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; }
.enf-med-sep   { color: #cbd5e1; }

/* Chips reutilizáveis */
.enf-chip {
  display: inline-flex; align-items: center; gap: .25rem;
  font-size: .7rem; font-weight: 600; padding: .18rem .5rem;
  border-radius: 6px; white-space: nowrap;
}
.enf-chip-dose { background: #dbeafe; color: #1d4ed8; }
.enf-chip-freq { background: #fef9c3; color: #78350f; }
/* .enf-chip-via usa style inline */

/* Botão de administrar no modal */
.enf-adm-btn {
  display: flex; flex-direction: column; align-items: center; gap: .2rem;
  padding: .5rem .7rem; border-radius: 10px; border: none; cursor: pointer;
  background: linear-gradient(135deg, #16a34a, #22c55e);
  color: #fff; font-size: .7rem; font-weight: 700;
  box-shadow: 0 3px 8px rgba(22,163,74,.35);
  transition: all .15s; min-width: 72px; flex-shrink: 0;
}
.enf-adm-btn > i { font-size: 1.1rem; }
.enf-adm-btn:hover { background: linear-gradient(135deg, #15803d, #16a34a); transform: scale(1.05); }

/* Badges de status */
.enf-done-badge {
  font-size: .68rem; font-weight: 700; padding: .3rem .65rem;
  background: #dcfce7; color: #15803d; border-radius: 20px;
  display: flex; align-items: center; gap: .3rem; flex-shrink: 0;
}
.enf-susp-badge {
  font-size: .68rem; font-weight: 700; padding: .3rem .65rem;
  background: #f3f4f6; color: #6b7280; border-radius: 20px;
  display: flex; align-items: center; gap: .3rem; flex-shrink: 0;
}

/* Sem prescrição */
.enf-sem-prescricao {
  text-align: center; padding: 2.5rem 1rem; color: #94a3b8;
}
.enf-sem-prescricao > i { font-size: 2.5rem; margin-bottom: .75rem; display: block; opacity: .4; }
.enf-sem-prescricao > p { font-size: .88rem; }

/* Footer do modal */
.enf-modal-footer {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: .5rem;
}
.enf-mf-prof {
  font-size: .78rem; color: #64748b; font-weight: 500;
  display: flex; align-items: center; gap: .5rem;
}
.enf-mf-prof > i { color: #3b82f6; }
.enf-mf-hora { color: #94a3b8; font-size: .72rem; margin-left: .25rem; display: flex; align-items: center; gap: .3rem; }

/* ══════════════════════════════════════════════════════════════
   MODAL DE CONFIRMAÇÃO DE ADMINISTRAÇÃO
   ══════════════════════════════════════════════════════════════ */
.enf-confirm-modal {
  background: #fff; border-radius: 16px; width: min(94vw, 420px);
  box-shadow: 0 20px 60px rgba(0,0,0,.3);
  animation: slideUp .25s cubic-bezier(.34,1.4,.64,1);
  overflow: hidden;
}
.enf-cm-header {
  background: linear-gradient(135deg, #15803d, #16a34a);
  padding: 1.1rem 1.25rem;
  display: flex; align-items: center; gap: .85rem;
}
.enf-cm-icon {
  width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
  background: rgba(255,255,255,.2); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 1.2rem;
}
.enf-cm-title { font-size: .95rem; font-weight: 700; color: #fff; }
.enf-cm-body  { padding: 1.25rem; display: flex; flex-direction: column; gap: .75rem; }
.enf-cm-med {
  background: #f0fdf4; border: 1.5px solid #bbf7d0; border-radius: 10px;
  padding: .85rem 1rem;
}
.enf-cm-med-nome { font-size: 1.05rem; font-weight: 800; color: #0f172a; margin-bottom: .5rem; }
.enf-cm-chips    { display: flex; gap: .4rem; flex-wrap: wrap; }
.enf-cm-profissional, .enf-cm-hora {
  display: flex; align-items: center; gap: .5rem;
  font-size: .82rem; color: #475569;
  background: #f8fafc; padding: .5rem .75rem; border-radius: 8px;
}
.enf-cm-profissional > i { color: #2563eb; }
.enf-cm-hora       > i { color: #d97706; }
.enf-cm-warning {
  background: #fffbeb; border-left: 3px solid #f59e0b;
  padding: .6rem .85rem; border-radius: 6px;
  font-size: .75rem; color: #92400e;
  display: flex; align-items: flex-start; gap: .5rem;
}
.enf-cm-footer {
  display: flex; justify-content: flex-end; gap: .5rem;
  padding: .9rem 1.25rem; background: #f8fafc;
  border-top: 1px solid #e2e8f0;
}
.enf-confirm-btn {
  background: linear-gradient(135deg, #15803d, #16a34a); color: #fff; border: none;
  padding: .55rem 1.25rem; border-radius: 8px; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; gap: .4rem; font-size: .85rem;
  box-shadow: 0 3px 10px rgba(22,163,74,.35); transition: all .15s;
}
.enf-confirm-btn:hover { background: linear-gradient(135deg, #166534, #15803d); }

/* Botões do footer do modal de enfermagem (Prontuário Completo + Fechar) */
.enf-footer-btns {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}

/* ═══════════════════════════════════════════════════════════════
   PAINEL LATERAL HISTÓRICO IA NO PRONTUÁRIO
   ═══════════════════════════════════════════════════════════════ */
.pron-body-layout {
  display: flex;
  gap: 0;
  min-height: 200px;
  transition: all .25s ease;
  flex: 1;
  min-height: 0; /* necessário para flex filho fazer scroll */
  overflow: hidden;
}
.pron-body-layout .pron-tab-content {
  flex: 1;
  min-width: 0;
  transition: all .25s ease;
}
/* Com sidebar aberta: conteúdo ocupa 65%, sidebar 35% */
.pron-body-layout.with-ia-sidebar .pron-tab-content {
  flex: 0 0 65%;
  max-width: 65%;
}
/* Layout com sidebar RECOLHIDA (faixa estreita) */
.pron-body-layout.with-ia-sidebar-collapsed .pron-tab-content {
  flex: 1;
  max-width: calc(100% - 44px);
}

/* ─── Sidebar lateral ─────────────────────────────────────────── */
.pron-ia-sidebar {
  flex: 0 0 35%;
  max-width: 35%;
  border-left: 2px solid #ede9fe;
  background: #faf5ff;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 0 0 8px 0;
  min-height: 0;
  /* Transição suave para collapse */
  transition: flex-basis .28s cubic-bezier(.4,0,.2,1),
              max-width   .28s cubic-bezier(.4,0,.2,1),
              box-shadow  .2s ease;
}

/* ─── Estado RECOLHIDO: faixa vertical estreita ───────────────── */
.pron-ia-sidebar--collapsed {
  flex: 0 0 44px !important;
  max-width: 44px !important;
  cursor: pointer;
}
.pron-ia-sidebar--collapsed .pron-ia-sidebar-body {
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}
/* Texto do header vira vertical quando recolhido */
.pron-ia-sidebar--collapsed .pron-ia-sidebar-header {
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: .75rem .3rem;
  gap: .5rem;
  height: 100%;
  border-bottom: none;
  border-right: none;
  cursor: pointer;
}
.pron-ia-sidebar--collapsed .pron-ia-sidebar-title {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: .75rem !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-height: 160px;
  color: #7c3aed;
}
.pron-ia-sidebar--collapsed .pron-ia-collapse-icon {
  transform: rotate(0deg);
}

/* ─── Estado PEEK: hover expande temporariamente (sem empurrar layout) */
.pron-ia-sidebar--peek {
  flex: 0 0 35% !important;
  max-width: 35% !important;
  box-shadow: -4px 0 20px rgba(124,58,237,.15);
  z-index: 10;
  position: relative;
}
.pron-ia-sidebar--peek .pron-ia-sidebar-body {
  opacity: 1 !important;
  pointer-events: auto !important;
}
.pron-ia-sidebar--peek .pron-ia-sidebar-header {
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: .65rem 1rem !important;
  height: auto !important;
  border-bottom: 1px solid #ddd6fe !important;
}
.pron-ia-sidebar--peek .pron-ia-sidebar-title {
  writing-mode: horizontal-tb !important;
  transform: none !important;
  font-size: .9rem !important;
  max-height: none !important;
}

/* ─── Header clicável: hover feedback ───────────────────────────── */
.pron-ia-sidebar-header--toggle {
  cursor: pointer;
  user-select: none;
  transition: background .15s ease;
}
.pron-ia-sidebar-header--toggle:hover {
  background: #ddd6fe;
}

/* ─── Ícone de chevron no header ─────────────────────────────────── */
.pron-ia-collapse-icon {
  font-size: .75rem;
  color: #7c3aed;
  opacity: .7;
  transition: transform .25s ease, opacity .15s;
  flex-shrink: 0;
}
.pron-ia-sidebar-header--toggle:hover .pron-ia-collapse-icon {
  opacity: 1;
}

.pron-ia-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .65rem 1rem;
  background: #ede9fe;
  border-bottom: 1px solid #ddd6fe;
  flex-shrink: 0;
}
.pron-ia-sidebar-body {
  flex: 1;
  overflow-y: auto;
  font-size: .82rem;
  transition: opacity .2s ease;
}

/* Itens do histórico no sidebar */
.ia-sb-section-title {
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #7c3aed;
  margin: .5rem 0 .4rem;
  display: flex;
  align-items: center;
  gap: .35rem;
}
.ia-sb-item {
  padding: .55rem .4rem .55rem .2rem;
  border-bottom: 1px solid #ede9fe;
  border-radius: 6px;
  margin-bottom: 2px;
  transition: background .15s;
}
.ia-sb-item:hover { background: #faf8ff; }
.ia-sb-item-atual {
  background: #f0fdf4;
  margin: 0 -.5rem;
  padding: .55rem .5rem;
}
/* Header do item: dot + data + badges */
.ia-sb-item-header {
  display: flex;
  align-items: center;
  gap: .4rem;
  flex-wrap: wrap;
  margin-bottom: .25rem;
}
.ia-sb-item-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ia-sb-item-date-wrap {
  display: flex;
  align-items: center;
  gap: .25rem;
  flex-wrap: wrap;
  flex: 1;
}
.ia-sb-item-date-text {
  font-size: .72rem;
  color: var(--gray-500);
  font-weight: 600;
}
/* Badges dentro do header */
.ia-sb-badge {
  font-size: .62rem;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.ia-sb-badge-atual { background: #3b82f6; color: #fff; }
.ia-sb-badge-dur   { background: #f3f4f6; color: #6b7280; }
/* Corpo */
.ia-sb-item-body { flex: 1; min-width: 0; }
/* Queixa clicável */
.ia-sb-item-queixa {
  font-weight: 600;
  color: var(--gray-800);
  font-size: .8rem;
  line-height: 1.3;
  cursor: pointer;
  padding: .1rem 0;
  word-break: break-word;
  white-space: normal;
}
.ia-sb-queixa-clickable:hover { color: #7c3aed; }
.ia-hist-arrow { transition: transform .2s; }
/* Detalhes expansíveis */
.ia-sb-item-details {
  margin-top: .3rem;
  border-top: 1px dashed #ede9fe;
  padding-top: .3rem;
}
/* Mini-seções dentro do detalhe */
.ia-sb-section-mini {
  margin-bottom: .35rem;
}
.ia-sb-mini-label {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #a78bfa;
  display: flex;
  align-items: center;
  gap: .25rem;
  margin-bottom: .15rem;
  letter-spacing: .3px;
}
.ia-sb-text-block {
  font-size: .75rem;
  color: #374151;
  line-height: 1.45;
  background: #f9fafb;
  border-radius: 5px;
  padding: .3rem .4rem;
  word-break: break-word;
}
.ia-sb-evolucao {
  border-left: 3px solid #a78bfa;
  background: #faf5ff;
}
/* Chips de sinais vitais */
.ia-sb-sv-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}
.ia-sv-chip {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: .68rem;
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #86efac;
  border-radius: 4px;
  padding: 1px 5px;
}
/* Chips de meds/exames */
.ia-sb-meds {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  background: none;
  padding: 0;
}
.ia-sb-med-chip {
  font-size: .68rem;
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  border-radius: 4px;
  padding: 1px 5px;
}
.ia-sb-exam-chip {
  font-size: .68rem;
  background: #ecfdf5;
  color: #065f46;
  border: 1px solid #6ee7b7;
  border-radius: 4px;
  padding: 1px 5px;
}
.ia-sb-item-field {
  color: var(--gray-600);
  font-size: .75rem;
  margin-top: .15rem;
  word-break: break-word;
  white-space: normal;
  line-height: 1.4;
}
.ia-sb-item-status { margin-top: .3rem; }
.ia-sb-obs-box {
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 6px;
  padding: .6rem .75rem;
  margin-bottom: .75rem;
}
.ia-sb-obs-title {
  font-size: .75rem;
  font-weight: 700;
  color: #92400e;
  margin-bottom: .3rem;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.ia-sb-obs-item {
  font-size: .75rem;
  color: #78350f;
  line-height: 1.4;
  margin-top: .2rem;
}

/* Botão toggle IA ativo */
.pron-tab-ia-toggle.active {
  background: #ede9fe !important;
  color: #7c3aed !important;
  border-bottom: 2px solid #7c3aed !important;
}

/* btn-icon */
.btn-icon {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--gray-600);
  padding: .2rem .4rem;
  border-radius: 4px;
  font-size: .85rem;
  transition: all .15s;
}
.btn-icon:hover { background: rgba(0,0,0,.08); color: var(--gray-800); }

/* Responsive: em telas menores, sidebar vai para baixo */
@media (max-width: 900px) {
  .pron-body-layout.with-ia-sidebar {
    flex-direction: column;
  }
  .pron-body-layout.with-ia-sidebar .pron-tab-content,
  .pron-ia-sidebar {
    flex: none !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .pron-ia-sidebar {
    max-height: 300px;
    border-left: none;
    border-top: 2px solid #ede9fe;
  }
}

/* ═══════════════════════════════════════════════════════════════
   CONFIGURAÇÕES — PERFIS E PERMISSÕES
   ═══════════════════════════════════════════════════════════════ */
.perm-table { width: 100%; border-collapse: collapse; font-size: .83rem; }
.perm-table th {
  background: #1e3a5f; color: #fff;
  padding: .55rem .75rem; text-align: center;
  font-weight: 600; font-size: .78rem;
}
.perm-table th:first-child { text-align: left; }
.perm-table td {
  padding: .45rem .75rem;
  border-bottom: 1px solid #e2e8f0;
  text-align: center;
}
.perm-table td:first-child { text-align: left; font-weight: 600; color: #1e293b; }
.perm-table tr:hover td { background: #f1f5f9; }
.perm-table tr:nth-child(even) td { background: #f8fafc; }
.perm-table tr:nth-child(even):hover td { background: #e8f0fe; }
.perm-check {
  width: 16px; height: 16px; cursor: pointer; accent-color: #1e3a5f;
}
.perm-module-header td {
  background: #e8f0fe !important;
  font-weight: 700;
  color: #1e3a5f;
  padding: .4rem .75rem;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.cfg-tabs { display: flex; gap: 0; border-bottom: 2px solid #e2e8f0; margin-bottom: 1rem; }
.cfg-tab-btn {
  padding: .55rem 1.25rem;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  font-size: .88rem;
  cursor: pointer;
  color: var(--gray-600);
  font-weight: 500;
  transition: all .15s;
  display: flex; align-items: center; gap: .4rem;
}
.cfg-tab-btn:hover { color: #1e3a5f; }
.cfg-tab-btn.active { color: #1e3a5f; border-bottom-color: #1e3a5f; font-weight: 700; }
.cfg-tab-panel { display: none; }
.cfg-tab-panel.active { display: block; }

/* ══════════════════════════════════════════════════
   DR. IAGO — CHAT BALLOON FLUTUANTE
   ══════════════════════════════════════════════════ */
.driago-bubble {
  position: fixed;
  bottom: 5rem;   /* afasta dos botões de ação da barra inferior do prontuário */
  right: 2rem;
  width: 56px;
  height: 56px;
  background: linear-gradient(135deg, #7c3aed, #2563eb);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(124,58,237,.45);
  z-index: 9999;
  transition: transform .2s, box-shadow .2s;
}
.driago-bubble:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 28px rgba(124,58,237,.6);
}
.driago-badge {
  position: absolute;
  top: -2px; right: -2px;
  width: 18px; height: 18px;
  background: #ef4444;
  border-radius: 50%;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
}
.driago-chat {
  position: fixed;
  bottom: 8.5rem;   /* acima do bubble que agora está em 5rem */
  right: 2rem;
  width: 360px;
  max-width: calc(100vw - 2rem);
  height: 560px;
  max-height: calc(100vh - 8rem);
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 40px rgba(0,0,0,.2);
  z-index: 9998;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #e2e8f0;
}
.driago-header {
  background: linear-gradient(135deg, #1e3a5f, #7c3aed);
  color: #fff;
  padding: .75rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}
.driago-messages {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  background: #f8fafc;
}
.driago-msg {
  display: flex;
  max-width: 90%;
}
.driago-bot { align-self: flex-start; }
.driago-user { align-self: flex-end; flex-direction: row-reverse; }
.driago-msg-content {
  padding: .6rem .85rem;
  border-radius: 12px;
  font-size: .83rem;
  line-height: 1.5;
  word-break: break-word;
}
.driago-bot .driago-msg-content {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-bottom-left-radius: 4px;
  color: #1e293b;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.driago-user .driago-msg-content {
  background: linear-gradient(135deg, #2563eb, #7c3aed);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.driago-footer {
  background: #fff;
  border-top: 1px solid #f1f5f9;
  flex-shrink: 0;
}
.driago-typing {
  display: inline-flex;
  gap: 3px;
  align-items: center;
  padding: .1rem 0;
}
.driago-typing span {
  width: 6px; height: 6px;
  background: #94a3b8;
  border-radius: 50%;
  animation: driagoTyping .8s infinite alternate;
}
.driago-typing span:nth-child(2) { animation-delay: .2s; }
.driago-typing span:nth-child(3) { animation-delay: .4s; }
@keyframes driagoTyping {
  from { opacity: .3; transform: translateY(0); }
  to   { opacity: 1; transform: translateY(-3px); }
}
@media (max-width: 480px) {
  .driago-chat { width: calc(100vw - 1rem); right: .5rem; bottom: 6rem; }
  .driago-bubble { right: 1rem; bottom: 5rem; }
}

/* ══════════════════════════════════════════════════
   MENU LATERAL RETRÁTIL — SINNC UPA24H
   ══════════════════════════════════════════════════ */

/* Scroll interno do sidebar */
.sb-scroll {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: .5rem 0 1rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.15) transparent;
}
.sb-scroll::-webkit-scrollbar { width: 3px; }
.sb-scroll::-webkit-scrollbar-track { background: transparent; }
.sb-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18); border-radius: 2px; }

/* Logo — clicável para toggle do menu */
.sb-logo {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1rem .75rem;
  border-bottom: 1px solid rgba(255,255,255,.1);
  min-height: var(--header-h, 60px);
  flex-shrink: 0;
  cursor: pointer;
  user-select: none;
  transition: background .18s;
}
.sb-logo:hover {
  background: rgba(255,255,255,.08);
}
.sb-logo:active {
  background: rgba(255,255,255,.14);
}
.sb-logo-icon {
  width: 36px; height: 36px;
  border-radius: 8px;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  padding: 3px;
  flex-shrink: 0;
  overflow: hidden;
}
.sb-logo-icon img { width: 100%; height: 100%; object-fit: contain; }
.sb-logo-text {
  overflow: hidden;
  white-space: nowrap;
  transition: opacity .25s, width .25s;
}
.sb-logo-text strong {
  display: block;
  font-size: .92rem; font-weight: 800;
  color: #fff; letter-spacing: .5px;
}
.sb-logo-text small {
  font-size: .6rem; font-weight: 600;
  color: #38bdf8;
  text-transform: uppercase; letter-spacing: 1px;
}

/* Divisor */
.sb-divider {
  height: 1px;
  background: rgba(255,255,255,.08);
  margin: .25rem .5rem .5rem;
}

/* Item direto (Dashboard) */
.sb-item-direct {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .65rem .9rem;
  border-radius: 8px;
  margin: 2px .5rem;
  cursor: pointer;
  color: rgba(255,255,255,.75);
  font-size: .82rem;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  transition: background .15s, color .15s, transform .15s;
}
.sb-item-direct:hover { background: rgba(255,255,255,.13); color: #fff; transform: translateX(2px); }
.sb-item-direct.active, .sb-item.active {
  background: linear-gradient(90deg,rgba(37,99,235,.8),rgba(0,96,182,.5));
  color: #fff; font-weight: 600;
  box-shadow: inset 3px 0 0 #38bdf8;
}

/* Grupo retrátil */
.sb-group { overflow: hidden; }

/* Header do grupo */
.sb-group-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .5rem .6rem .5rem .85rem;
  cursor: pointer;
  color: rgba(255,255,255,.45);
  font-size: .62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .6px;
  transition: color .15s, background .15s;
  user-select: none;
  border-radius: 6px;
  margin: 1px .4rem 0;
  white-space: normal;     /* permite quebra de linha em grupos longos */
  overflow: visible;
  line-height: 1.2;
}
.sb-group-header:hover { color: rgba(255,255,255,.8); background: rgba(255,255,255,.06); }
.sb-group.open .sb-group-header { color: rgba(255,255,255,.7); }

.sb-group-left {
  display: flex; align-items: flex-start; gap: .5rem;
  overflow: hidden;
  flex: 1;
  min-width: 0;
}
.sb-group-icon {
  font-size: .85rem;
  flex-shrink: 0;
  width: 16px; text-align: center;
  transition: color .15s;
}
.sb-group.open .sb-group-icon { color: #38bdf8; }
.sb-group-label {
  overflow: hidden;
  transition: opacity .25s, width .25s;
  white-space: normal;
  line-height: 1.2;
  word-break: break-word;
}

/* Seta do grupo */
.sb-group-arrow {
  font-size: .65rem;
  flex-shrink: 0;
  transition: transform .25s ease, opacity .25s;
  opacity: .5;
}
.sb-group.open .sb-group-arrow {
  transform: rotate(180deg);
  opacity: .9;
}

/* Itens dentro do grupo */
.sb-group-items {
  overflow: hidden;
  max-height: 0;
  transition: max-height .3s ease;
}

.sb-item {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .55rem .9rem .55rem 1.5rem;
  border-radius: 8px;
  margin: 1px .5rem;
  cursor: pointer;
  color: rgba(255,255,255,.68);
  font-size: .81rem;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  transition: background .15s, color .15s, transform .15s;
  position: relative;
}
.sb-item:hover {
  background: rgba(255,255,255,.1);
  color: #fff;
  transform: translateX(2px);
}
.sb-item.active {
  background: linear-gradient(90deg, rgba(37,99,235,.75), rgba(0,96,182,.45));
  color: #fff;
  font-weight: 600;
}
.sb-item.active::before {
  content: '';
  position: absolute;
  left: .5rem; top: 22%; bottom: 22%;
  width: 3px;
  background: #38bdf8;
  border-radius: 0 3px 3px 0;
}
.sb-item-icon {
  width: 16px; text-align: center;
  font-size: .82rem;
  flex-shrink: 0;
  color: rgba(255,255,255,.55);
  transition: color .15s;
}
.sb-item.active .sb-item-icon,
.sb-item:hover .sb-item-icon { color: rgba(255,255,255,.95); }
.sb-item-label {
  overflow: hidden;
  transition: opacity .25s, width .25s;
}

/* ── MODO COLAPSADO ─────────────────────────────── */
.app-sidebar.collapsed .sb-logo-text { opacity: 0; width: 0; pointer-events: none; }
/* Rótulos e seta somem por completo (display:none evita que o texto
   residual empurre o ícone e deforme o alinhamento) */
.app-sidebar.collapsed .sb-group-label { display: none; }
.app-sidebar.collapsed .sb-group-arrow { display: none; }

/* O wrapper flex precisa centralizar no modo colapsado — com
   align-items:flex-start e flex:1 (regra base) o ícone ficava
   deslocado e de tamanhos irregulares entre os grupos. */
.app-sidebar.collapsed .sb-group-left {
  flex: 0 0 auto;
  justify-content: center;
  align-items: center;
  gap: 0;
  width: 100%;
  overflow: visible;
}
.app-sidebar.collapsed .sb-group-header {
  justify-content: center;
  align-items: center;
  padding: .6rem 0;
  min-height: 42px;      /* altura uniforme entre todos os grupos */
}
/* Ícone com caixa fixa: garante grade vertical alinhada */
.app-sidebar.collapsed .sb-group-icon,
.app-sidebar.collapsed .sb-item-icon,
.app-sidebar.collapsed .sb-group-icon-fav {
  width: 24px;
  min-width: 24px;
  font-size: 1.05rem;
  text-align: center;
  line-height: 1;
  flex-shrink: 0;
  margin: 0;
}
/* overflow: visible permite que o flyout saia da sidebar sem ser clipado */
.app-sidebar.collapsed .sb-group { overflow: visible; }
.app-sidebar.collapsed .sb-group-items { max-height: 0 !important; overflow: hidden !important; }
.app-sidebar.collapsed .sb-item { justify-content: center; padding-left: 0; }
.app-sidebar.collapsed .sb-item-label { opacity: 0; width: 0; }
.app-sidebar.collapsed .sb-item::before { display: none; }
.app-sidebar.collapsed .sb-item-direct {
  justify-content: center;
  align-items: center;
  padding: .6rem 0;
  min-height: 42px;
}
/* display:none em vez de width:0 — o span vazio ainda ocupava espaço
   por causa do gap do flex, desalinhando os ícones */
.app-sidebar.collapsed .sb-item-direct span { display: none; }
.app-sidebar.collapsed .sb-divider { margin: .25rem .75rem .5rem; }

/* Sem gap residual do flex quando só resta o ícone */
.app-sidebar.collapsed .sb-item,
.app-sidebar.collapsed .sb-item-direct { gap: 0; }

/* Cabeçalho de seção e logo centralizados */
.app-sidebar.collapsed .sb-logo { justify-content: center; }
.app-sidebar.collapsed .sb-search-wrap { display: none; }

/* Tooltip modo colapsado — só para itens diretos (sb-item-direct)
   Os grupos usam flyout JS; os sb-item dentro de grupos não aparecem
   no sidebar colapsado (ficam no flyout).                            */
.app-sidebar.collapsed .sb-item-direct {
  position: relative;
}
.app-sidebar.collapsed .sb-item-direct::after {
  content: attr(title);
  position: absolute;
  left: calc(100% + 10px);
  top: 50%; transform: translateY(-50%);
  background: #1e293b;
  color: #fff;
  font-size: .75rem;
  font-weight: 600;
  padding: .35rem .75rem;
  border-radius: 7px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s .1s;   /* leve delay de 100ms */
  z-index: 9200;
  box-shadow: 0 4px 14px rgba(0,0,0,.3);
  text-transform: none;
  letter-spacing: 0;
  border-left: 3px solid #38bdf8;
}
.app-sidebar.collapsed .sb-item-direct:hover::after { opacity: 1; }

/* Tooltip no group-header quando flyout NÃO está ativo — suprimido via JS flyout */

/* ── FLYOUT COLAPSADO: painel flutuante via JS ────────────────
   O painel .sb-flyout é criado dinamicamente por initSidebarFlyout()
   e posicionado via JS ao lado do ícone. Não usa :hover puro para
   evitar piscar quando o cursor cruza o gap sidebar → flyout.
──────────────────────────────────────────────────────────── */

/* Grupos no modo colapsado: garantir position:relative para calcular offset */
.app-sidebar.collapsed .sb-group {
  position: relative;
}

/* Grupo com flyout aberto — destaque no ícone */
.app-sidebar.collapsed .sb-group.sb-flyout-active .sb-group-header {
  background: rgba(56,189,248,.15);
  color: #38bdf8;
}
.app-sidebar.collapsed .sb-group.sb-flyout-active .sb-group-icon {
  color: #38bdf8;
}
/* Indicador lateral: linha azul à direita do ícone do grupo ativo */
.app-sidebar.collapsed .sb-group.sb-flyout-active .sb-group-header::after {
  content: '';
  position: absolute;
  right: 0; top: 15%; bottom: 15%;
  width: 3px;
  background: #38bdf8;
  border-radius: 3px 0 0 3px;
  opacity: 1 !important;
  pointer-events: none;
}

/* Painel flyout global — singleton, reposicionado a cada grupo */
.sb-flyout {
  position: fixed;
  background: #0f1c35;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 10px;
  box-shadow: 6px 8px 28px rgba(0,0,0,.45);
  z-index: 9100;
  width: 220px;
  padding: .4rem 0 .5rem;
  pointer-events: auto;
  /* entrada suave */
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .18s ease, transform .18s ease;
  display: none; /* controlado por JS */
}
.sb-flyout.sb-flyout--visible {
  opacity: 1;
  transform: translateX(0);
}

/* Cabeçalho com nome do grupo */
.sb-flyout-header {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .9rem .4rem;
  margin-bottom: .2rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: #38bdf8;
  font-size: .64rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.1px;
}
.sb-flyout-header i {
  font-size: .75rem;
  opacity: .85;
}

/* Itens dentro do flyout */
.sb-flyout .sb-item {
  padding: .52rem .9rem;
  margin: 1px .35rem;
  border-radius: 7px;
  justify-content: flex-start !important;
  transform: none !important;
  overflow: visible;
}
.sb-flyout .sb-item-label {
  opacity: 1 !important;
  width: auto !important;
  font-size: .82rem;
  white-space: nowrap;
}
.sb-flyout .sb-item-icon {
  width: 18px;
  font-size: .82rem;
}
/* Indicador ativo no flyout */
.sb-flyout .sb-item.active {
  background: linear-gradient(90deg, rgba(37,99,235,.75), rgba(0,96,182,.45));
  color: #fff;
}
.sb-flyout .sb-item.active::before {
  display: block;
  left: .35rem;
}
.sb-flyout .sb-item:hover {
  background: rgba(255,255,255,.11);
  color: #fff;
  transform: none !important;
}

/* Suprimir tooltip text no group-header (flyout JS substitui) */
.app-sidebar.collapsed .sb-group-header {
  position: relative;
}
.app-sidebar.collapsed .sb-group-header::after {
  /* Sem conteúdo de tooltip — o indicador lateral é criado em .sb-flyout-active */
  content: none;
}

/* ── RESPONSIVO ─────────────────────────────────── */
@media (max-width: 900px) {
  .app-sidebar { width: var(--sidebar-w-collapsed, 64px); }
  .app-sidebar .sb-logo-text { opacity: 0; width: 0; pointer-events: none; }
  .app-sidebar .sb-group-label { opacity: 0; width: 0; }
  .app-sidebar .sb-group-arrow { opacity: 0; width: 0; }
  .app-sidebar .sb-group-header { justify-content: center; padding: .55rem 0; }
  .app-sidebar .sb-group-items { max-height: 0 !important; }
  .app-sidebar .sb-item { justify-content: center; padding-left: 0; }
  .app-sidebar .sb-item-label { opacity: 0; width: 0; }
  .app-sidebar .sb-item-direct { justify-content: center; padding-left: 0; }
  .app-sidebar .sb-item-direct span { opacity: 0; width: 0; }
  .app-wrapper { grid-template-columns: var(--sidebar-w-collapsed, 64px) 1fr; }
  .app-wrapper.sidebar-collapsed { grid-template-columns: var(--sidebar-w-collapsed, 64px) 1fr; }
  .app-sidebar.mobile-open {
    width: var(--sidebar-w, 240px);
    position: fixed; z-index: 500;
  }
  .app-sidebar.mobile-open .sb-logo-text { opacity: 1; width: auto; pointer-events: auto; }
  .app-sidebar.mobile-open .sb-group-label { opacity: 1; width: auto; }
  .app-sidebar.mobile-open .sb-group-arrow { opacity: 1; width: auto; }
  .app-sidebar.mobile-open .sb-group-header { justify-content: space-between; padding: .55rem .75rem .55rem .9rem; }
  .app-sidebar.mobile-open .sb-group.open .sb-group-items { max-height: 600px !important; position: static; background: transparent; box-shadow: none; width: auto; }
  .app-sidebar.mobile-open .sb-item { justify-content: flex-start; padding-left: 1.5rem; }
  .app-sidebar.mobile-open .sb-item-label { opacity: 1; width: auto; }
  .app-sidebar.mobile-open .sb-item-direct { justify-content: flex-start; }
  .app-sidebar.mobile-open .sb-item-direct span { opacity: 1; width: auto; }
}
@media (max-width: 480px) {
  .app-sidebar { width: 0; overflow: hidden; }
  .app-sidebar.mobile-open { width: var(--sidebar-w, 240px); }
  .app-wrapper { grid-template-columns: 0 1fr; }
}

/* Corrigir sidebar-collapsed no wrapper */
.app-wrapper.sidebar-collapsed {
  grid-template-columns: var(--sidebar-w-collapsed, 64px) 1fr;
}

/* ═══════════════════════════════════════════════════════════
   MENU LATERAL — BUSCA, FAVORITOS E ESTRELAS (Tarefa 4)
   ═══════════════════════════════════════════════════════════ */

/* ── Campo de Busca no Sidebar ──────────────────────────── */
.sb-search-wrap {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin: .5rem .5rem .4rem;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  padding: .42rem .6rem;
  transition: background .2s, border-color .2s;
  flex-shrink: 0;
}
.sb-search-wrap:focus-within {
  background: rgba(255,255,255,.13);
  border-color: rgba(56,189,248,.5);
  box-shadow: 0 0 0 2px rgba(56,189,248,.15);
}
.sb-search-icon {
  color: rgba(255,255,255,.38);
  font-size: .78rem;
  flex-shrink: 0;
  transition: color .2s;
}
.sb-search-wrap:focus-within .sb-search-icon { color: #38bdf8; }
.sb-search-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255,255,255,.88);
  font-size: .78rem;
  font-family: inherit;
  min-width: 0;
  caret-color: #38bdf8;
}
.sb-search-input::placeholder { color: rgba(255,255,255,.3); font-size: .76rem; }
.sb-search-clear {
  background: none;
  border: none;
  color: rgba(255,255,255,.35);
  font-size: .7rem;
  cursor: pointer;
  padding: 0 .1rem;
  line-height: 1;
  flex-shrink: 0;
  transition: color .15s;
  display: none; /* exibido via JS quando há texto */
}
.sb-search-clear:hover { color: rgba(255,255,255,.8); }

/* Ocultar busca quando sidebar colapsado */
.app-sidebar.collapsed .sb-search-wrap { display: none; }

/* ── Painel de Resultados da Busca ──────────────────────── */
.sb-search-results {
  display: none; /* mostrado via JS */
  flex-direction: column;
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: .25rem 0 .5rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.15) transparent;
  /* Quando visível, display passa a ser 'block' via JS */
}
.sb-search-results::-webkit-scrollbar { width: 3px; }
.sb-search-results::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18); border-radius: 2px; }

.sb-search-header {
  padding: .3rem .9rem .25rem;
  font-size: .62rem;
  font-weight: 700;
  color: rgba(255,255,255,.38);
  text-transform: uppercase;
  letter-spacing: .9px;
}
.sb-search-sep {
  height: 1px;
  background: rgba(255,255,255,.07);
  margin: .3rem .5rem .2rem;
}
.sb-search-group-label {
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: .28rem .9rem .2rem 1rem;
  font-size: .6rem;
  font-weight: 700;
  color: rgba(255,255,255,.32);
  text-transform: uppercase;
  letter-spacing: .8px;
  margin-top: .1rem;
}
.sb-search-group-label i {
  font-size: .6rem;
  opacity: .7;
}
.sb-search-empty {
  padding: 1.5rem 1rem;
  text-align: center;
  color: rgba(255,255,255,.3);
  font-size: .78rem;
}
.sb-search-empty i {
  display: block;
  font-size: 1.4rem;
  margin-bottom: .45rem;
  opacity: .4;
}

/* Highlight de texto encontrado na busca */
.sb-hl {
  background: rgba(250,204,21,.3);
  color: #fde68a;
  border-radius: 2px;
  padding: 0 1px;
  font-weight: 700;
}

/* ── Grupo Favoritos ────────────────────────────────────── */
.sb-group-favoritos > .sb-group-header {
  color: rgba(255,255,255,.45);
}
.sb-group-favoritos > .sb-group-header:hover {
  color: rgba(255,255,255,.85);
  background: rgba(255,255,255,.06);
}
.sb-group-favoritos.open > .sb-group-header {
  color: rgba(255,255,255,.75);
}
.sb-group-icon-fav {
  color: rgba(255,255,255,.6) !important;
  filter: none;
}
.sb-group-favoritos.open .sb-group-icon-fav {
  color: rgba(255,255,255,.9) !important;
}
/* No modo colapsado o ícone do grupo Favoritos fica branco (igual aos demais grupos) */
.app-sidebar.collapsed .sb-group-icon-fav {
  color: rgba(255,255,255,.55) !important;
  filter: none;
}
.app-sidebar.collapsed .sb-group.sb-group-favoritos .sb-group-header:hover .sb-group-icon-fav,
.app-sidebar.collapsed .sb-group.sb-group-favoritos.sb-flyout-active .sb-group-icon-fav {
  color: #38bdf8 !important;
}
.sb-fav-count {
  font-size: .58rem;
  font-weight: 700;
  background: rgba(255,255,255,.15);
  color: rgba(255,255,255,.85);
  border-radius: 8px;
  padding: 1px 5px;
  margin-left: .2rem;
  letter-spacing: 0;
  text-transform: none;
  border: 1px solid rgba(255,255,255,.2);
}
.sb-fav-empty {
  padding: .6rem 1.2rem .8rem 1.5rem;
  font-size: .76rem;
  color: rgba(255,255,255,.28);
  display: flex;
  align-items: center;
  gap: .5rem;
  font-style: italic;
}
.sb-fav-empty i {
  font-size: .72rem;
  color: rgba(251,191,36,.3);
}

/* Separador após grupo favoritos */
.sb-after-favs {
  height: 1px;
  background: rgba(255,255,255,.07);
  margin: .25rem .5rem .35rem;
}

/* ── Botão de Estrela (Favoritar) ───────────────────────── */
.sb-star {
  background: none;
  border: none;
  padding: .15rem .2rem;
  border-radius: 4px;
  cursor: pointer;
  color: rgba(255,255,255,.2);
  font-size: .65rem;
  line-height: 1;
  margin-left: auto;
  flex-shrink: 0;
  opacity: 0; /* oculto por padrão, aparece no hover */
  transition: color .15s, opacity .15s, transform .15s;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
}
/* Mostrar estrela quando o item é hovereado */
.sb-item:hover .sb-star,
.sb-item-direct:hover .sb-star {
  opacity: 1;
}
/* Estrela marcada: sempre visível e branca */
.sb-star.sb-star-on {
  opacity: 1;
  color: rgba(255,255,255,.85);
  filter: none;
}
.sb-star:hover {
  color: #fff;
  transform: scale(1.25);
  opacity: 1 !important;
}
.sb-star-on:hover {
  color: #fff;
  transform: scale(1.15) rotate(-15deg);
}

/* Estrela no flyout — branca para não poluir o painel escuro */
.sb-flyout .sb-star {
  opacity: 0;
  color: rgba(255,255,255,.35);
}
.sb-flyout .sb-item:hover .sb-star {
  opacity: 1;
  color: rgba(255,255,255,.7);
}
.sb-flyout .sb-star.sb-star-on {
  opacity: 1;
  color: rgba(255,255,255,.85);
  filter: none; /* sem glow amarelo no flyout */
}
.sb-flyout .sb-star.sb-star-on:hover {
  color: #fff;
  transform: scale(1.15);
}

/* Garantir que o item flex não corte a estrela */
.sb-item {
  overflow: visible !important;
}
.sb-item-label {
  flex: 1;
  min-width: 0;
}

/* Ocultar estrelas quando sidebar colapsado (inline) */
.app-sidebar.collapsed .sb-star { display: none; }

/* ── Ajuste flyout: largura um pouco maior para acomodar estrela */
.sb-flyout { width: 240px; }

/* ═══════════════════════════════════════════════════════════
   FOTO DO PACIENTE — MODAL DE CADASTRO
   ═══════════════════════════════════════════════════════════ */

/* Layout principal do modal: esquerda=foto, direita=campos */
.pac-modal-layout {
  display: grid;
  grid-template-columns: 164px 1fr;
  gap: 1.25rem;
  align-items: start;
}

/* Coluna esquerda: card de foto */
.pac-foto-col { position: sticky; top: 0; }
.pac-foto-card {
  display: flex; flex-direction: column; align-items: center;
  gap: .6rem; padding: 1rem .75rem;
  background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px;
}
.pac-foto-titulo {
  font-size: .7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: #64748b;
}

/* Zona de foto — circular clicável */
.pac-foto-zone {
  width: 120px; height: 120px; border-radius: 50%;
  overflow: hidden; cursor: pointer;
  background: #f1f5f9; border: 2px dashed #cbd5e1;
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; transition: border-color .2s, box-shadow .2s;
  position: relative; flex-shrink: 0;
}
.pac-foto-zone:hover { border-color: #3b82f6; box-shadow: 0 0 0 3px #3b82f620; }
.pac-foto-placeholder { display: flex; flex-direction: column; align-items: center; gap: .3rem; }

/* Botão snap de câmera sobre o vídeo */
.pac-cam-snap-btn {
  position: absolute; bottom: 6px; left: 50%; transform: translateX(-50%);
  background: #ef4444; border: none; color: white;
  width: 30px; height: 30px; border-radius: 50%;
  font-size: .85rem; cursor: pointer; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 8px #0004; transition: transform .15s;
}
.pac-cam-snap-btn:hover { transform: translateX(-50%) scale(1.12); }

/* Botões de ação da foto */
.pac-foto-actions { display: flex; gap: .35rem; flex-wrap: wrap; justify-content: center; }
.pac-foto-btn {
  border: 1px solid #e2e8f0; background: white; color: #374151;
  font-size: .7rem; padding: .3rem .55rem; border-radius: 6px;
  cursor: pointer; display: flex; align-items: center; gap: .25rem;
  transition: background .15s, border-color .15s; font-weight: 600;
}
.pac-foto-btn:hover { background: #f1f5f9; border-color: #94a3b8; }
.pac-foto-btn-upload:hover { background: #eff6ff; border-color: #3b82f6; color: #1d4ed8; }
.pac-foto-btn-cam:hover   { background: #f0fdf4; border-color: #22c55e; color: #15803d; }
.pac-foto-btn-ia:hover    { background: #faf5ff; border-color: #8b5cf6; color: #6d28d9; }
.pac-foto-btn-remove {
  border: none; background: none; color: #ef4444; font-size: .7rem;
  cursor: pointer; display: none; align-items: center; gap: .2rem;
  padding: .15rem .4rem; border-radius: 4px; transition: background .15s;
}
.pac-foto-btn-remove:hover { background: #fee2e2; }

/* Coluna direita: cards de seção */
.pac-campos-col { display: flex; flex-direction: column; gap: .85rem; }
.pac-section-card { border-radius: 10px; border: 1px solid #e2e8f0; overflow: hidden; }
.pac-section-header {
  display: flex; align-items: center; gap: .5rem;
  padding: .5rem .9rem; font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .05em;
}
.pac-section-header i { font-size: .8rem; }
.pac-section-body { padding: .75rem .9rem; background: white; }
.pac-section-body .form-group { margin-bottom: .55rem; }
.pac-section-body .form-group:last-child { margin-bottom: 0; }
.pac-section-body .form-label { font-size: .72rem; margin-bottom: .2rem; }
.pac-section-body .form-control { font-size: .82rem; padding: .35rem .6rem; }
.pac-section-body textarea.form-control { resize: vertical; min-height: 60px; }

/* Variantes de cor dos cards */
.pac-section-blue .pac-section-header  { background: #eff6ff; color: #1d4ed8; border-bottom: 1px solid #dbeafe; }
.pac-section-teal .pac-section-header  { background: #f0fdfa; color: #0f766e; border-bottom: 1px solid #99f6e4; }
.pac-section-red .pac-section-header   { background: #fff1f2; color: #be123c; border-bottom: 1px solid #fecdd3; }
.pac-section-gray .pac-section-header  { background: #f8fafc; color: #475569; border-bottom: 1px solid #e2e8f0; }

/* Avatar no prontuário — wrapper para foto real */
.pron-patient-avatar-wrap {
  flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}
.pron-patient-avatar-img {
  box-shadow: 0 2px 12px #0003; border: 2px solid rgba(255,255,255,.35) !important;
}
.pac-avatar-initials {
  font-family: inherit;
}

/* Avatar na fila de atendimento */
.pac-avatar-img { object-fit: cover; }

/* Responsivo: em telas menores, layout empilha */
@media (max-width: 640px) {
  .pac-modal-layout {
    grid-template-columns: 1fr;
  }
  .pac-foto-col { position: static; }
  .pac-foto-card {
    flex-direction: row; flex-wrap: wrap; justify-content: center; padding: .75rem;
  }
  .pac-foto-zone { width: 90px; height: 90px; }
}

/* ============================================================
   RECEPÇÃO — Busca visual avançada de pacientes
   ============================================================ */

/* Card principal de busca */
.rec-busca-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 1.25rem 1.5rem 1rem;
  margin-bottom: 1rem;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.rec-busca-header {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin-bottom: .85rem;
}

/* Input de busca grande */
.rec-busca-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.rec-busca-icon {
  position: absolute;
  left: .9rem;
  color: #94a3b8;
  font-size: .9rem;
  pointer-events: none;
}
.rec-busca-input {
  width: 100%;
  padding: .75rem 2.5rem .75rem 2.5rem;
  font-size: 1.05rem;
  border: 2px solid #cbd5e1;
  border-radius: 10px;
  outline: none;
  transition: border-color .18s, box-shadow .18s;
  background: #f8fafc;
  color: #1e293b;
}
.rec-busca-input:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59,130,246,.15);
  background: #fff;
}
.rec-busca-limpar {
  position: absolute;
  right: .5rem;
  background: none;
  border: none;
  cursor: pointer;
  color: #94a3b8;
  padding: .35rem .5rem;
  border-radius: 6px;
  display: flex;
  align-items: center;
  transition: color .15s, background .15s;
}
.rec-busca-limpar:hover { color: #ef4444; background: #fee2e2; }

/* Lista de resultados */
.rec-results-list {
  margin-top: .6rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  overflow: hidden;
  max-height: 380px;
  overflow-y: auto;
  box-shadow: 0 4px 20px rgba(0,0,0,.10);
  background: #fff;
}

/* Item de resultado */
.rec-result-item {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .75rem 1rem;
  cursor: pointer;
  border-bottom: 1px solid #f1f5f9;
  transition: background .14s;
}
.rec-result-item:last-child { border-bottom: none; }
.rec-result-item:hover { background: #eff6ff; }
.rec-result-avatar {
  flex-shrink: 0;
}
.rec-result-info {
  flex: 1;
  min-width: 0;
}
.rec-result-nome {
  font-weight: 700;
  font-size: .93rem;
  color: #1e293b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rec-result-social {
  font-weight: 400;
  color: #64748b;
  font-size: .82rem;
  margin-left: .35rem;
}
.rec-result-sub {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .75rem;
  font-size: .78rem;
  color: #64748b;
  margin-top: .15rem;
}
.rec-result-sub span { display: flex; align-items: center; gap: .3rem; }
.rec-result-sangue {
  color: #dc2626;
  font-weight: 600;
}
.rec-result-alergia {
  margin-top: .3rem;
  background: #fef9c3;
  color: #b45309;
  border-radius: 6px;
  padding: .2rem .5rem;
  font-size: .75rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: .35rem;
}
.rec-result-seta {
  color: #cbd5e1;
  font-size: .85rem;
  flex-shrink: 0;
}
.rec-result-item:hover .rec-result-seta { color: #3b82f6; }

/* Nenhum resultado */
.rec-result-vazio {
  text-align: center;
  padding: 1.5rem 1rem;
  color: #64748b;
  font-size: .88rem;
}
.rec-result-vazio i { font-size: 2rem; color: #cbd5e1; display: block; margin-bottom: .5rem; }

/* Paciente selecionado */
.rec-pac-selecionado {
  margin-top: .85rem;
  background: linear-gradient(135deg, #eff6ff 0%, #f0fdf4 100%);
  border: 2px solid #3b82f6;
  border-radius: 12px;
  padding: 1rem 1.1rem;
  animation: recSelSlide .2s ease;
}
@keyframes recSelSlide {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.rec-pac-sel-inner {
  display: flex;
  align-items: center;
  gap: .85rem;
}
.rec-pac-sel-info {
  flex: 1;
  min-width: 0;
}
.rec-pac-sel-nome {
  font-weight: 800;
  font-size: 1.05rem;
  color: #1e293b;
}
.rec-pac-sel-sub {
  font-size: .8rem;
  color: #475569;
  margin-top: .2rem;
}
.rec-pac-sel-sub i { margin-right: .2rem; }
.rec-pac-sel-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .35rem;
}
.rec-pac-sel-acoes {
  display: flex;
  gap: .4rem;
  flex-shrink: 0;
  flex-direction: column;
}
@media (min-width: 500px) {
  .rec-pac-sel-acoes { flex-direction: row; align-items: center; }
}

/* Tag de alergia no card selecionado */
.rec-tag { display: inline-flex; align-items: center; gap: .3rem; border-radius: 20px; padding: .2rem .65rem; font-size: .75rem; font-weight: 700; }
.rec-tag-alergia { background: #fef3c7; color: #b45309; border: 1px solid #fcd34d; }

/* Hint vazio */
.rec-hint-vazio {
  text-align: center;
  padding: 2rem 1rem 1.5rem;
  color: #64748b;
}

/* ── Layout 2 colunas da Recepção ────────────────────────────── */
.rec-layout-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  align-items: start;
}
.rec-col-busca {
  display: flex;
  flex-direction: column;
  gap: .85rem;
}
.rec-col-atend {
  position: sticky;
  top: 72px;
}
/* Aviso "selecione um paciente" dentro do card de atendimento */
.rec-atend-aviso {
  display: flex;
  align-items: center;
  gap: .6rem;
  background: #f0f9ff;
  border: 1.5px dashed #bae6fd;
  border-radius: 10px;
  padding: .75rem 1rem;
  font-size: .85rem;
  font-weight: 600;
  color: #0369a1;
  margin-bottom: 1rem;
}
.rec-atend-aviso i {
  font-size: 1rem;
  color: #38bdf8;
  flex-shrink: 0;
  animation: recHintArrow .9s ease-in-out infinite alternate;
}
@keyframes recHintArrow {
  from { transform: translateX(0); }
  to   { transform: translateX(-5px); }
}
/* Responsivo: empilha em telas pequenas */
@media (max-width: 900px) {
  .rec-layout-grid {
    grid-template-columns: 1fr;
  }
  .rec-col-atend {
    position: static;
  }
}

/* Card do atendimento */
.rec-atend-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
  animation: recSelSlide .22s ease;
}
.rec-atend-header {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .85rem 1.25rem;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
  font-weight: 700;
  font-size: .92rem;
  color: #1e293b;
}
.rec-atend-body {
  padding: 1.25rem;
}

/* Responsivo */
@media (max-width: 640px) {
  .rec-pac-sel-inner { flex-wrap: wrap; }
  .rec-pac-sel-acoes { width: 100%; flex-direction: row; }
  .rec-busca-input { font-size: .95rem; }
}

/* ============================================================
   TRIAGEM / CLASSIFICAÇÃO DE RISCO — Layout moderno
   ============================================================ */

/* Cabeçalho do paciente */
.tri-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%);
  color: #fff;
  border-radius: 14px;
  padding: 1.1rem 1.3rem;
  margin-bottom: 1rem;
  box-shadow: 0 4px 20px rgba(0,0,0,.18);
}
.tri-header-avatar { flex-shrink: 0; }
.tri-header-info { flex: 1; min-width: 0; }
.tri-header-nome {
  font-size: 1.2rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: .3rem;
}
.tri-header-dados {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .9rem;
  font-size: .8rem;
  color: rgba(255,255,255,.75);
}
.tri-header-dados span { display: flex; align-items: center; gap: .3rem; }
.tri-header-alergia {
  margin-top: .4rem;
  background: rgba(251,191,36,.2);
  border: 1px solid rgba(251,191,36,.5);
  color: #fde68a;
  border-radius: 6px;
  padding: .25rem .6rem;
  font-size: .76rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.tri-header-status {
  text-align: right;
  flex-shrink: 0;
}
.tri-header-num {
  font-size: .85rem;
  font-weight: 800;
  color: #93c5fd;
  font-family: monospace;
}
.tri-header-senha {
  font-size: .78rem;
  color: rgba(255,255,255,.65);
  margin-top: .15rem;
}
.tri-header-tempo {
  background: rgba(251,191,36,.15);
  border: 1px solid rgba(251,191,36,.4);
  color: #fde68a;
  border-radius: 20px;
  padding: .2rem .6rem;
  font-size: .73rem;
  margin-top: .35rem;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
}

/* Barra de alertas */
.tri-alertas-bar {
  display: none;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: .85rem;
}
.tri-alerta-item {
  display: flex;
  align-items: center;
  gap: .4rem;
  border-radius: 8px;
  padding: .4rem .85rem;
  font-size: .8rem;
  font-weight: 600;
  animation: triAlertaSlide .2s ease;
}
@keyframes triAlertaSlide {
  from { opacity:0; transform:translateY(-4px); }
  to   { opacity:1; transform:translateY(0); }
}
.tri-alerta-danger { background: #fef2f2; border: 1px solid #fca5a5; color: #dc2626; }
.tri-alerta-warning { background: #fffbeb; border: 1px solid #fcd34d; color: #b45309; }

/* Grid principal 2 colunas */
.tri-main-grid {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 1rem;
  align-items: start;
}
@media (max-width: 900px) {
  .tri-main-grid { grid-template-columns: 1fr; }
}

/* Cards da triagem */
.tri-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: .85rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
}
.tri-card-header {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .75rem 1rem;
  font-weight: 700;
  font-size: .88rem;
}
.tri-card-header-blue  { background: linear-gradient(135deg,#eff6ff,#dbeafe); border-bottom:2px solid #93c5fd; color:#1e40af; }
.tri-card-header-teal  { background: linear-gradient(135deg,#f0fdfa,#ccfbf1); border-bottom:2px solid #5eead4; color:#0f766e; }
.tri-card-header-gray  { background: linear-gradient(135deg,#f8fafc,#f1f5f9); border-bottom:2px solid #cbd5e1; color:#475569; }
.tri-card-body { padding: 1rem; }

/* Botão IA no header */
.tri-ia-btn {
  margin-left: auto;
  background: #ede9fe;
  color: #7c3aed;
  border: 1px solid #c4b5fd;
  border-radius: 6px;
  padding: .2rem .65rem;
  font-size: .76rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .3rem;
  transition: background .15s;
}
.tri-ia-btn:hover { background: #ddd6fe; }

/* Sinais Vitais */
.tri-vitais-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: .75rem;
}
.tri-vital-item {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: .7rem .75rem .5rem;
  transition: border-color .15s;
}
.tri-vital-item:focus-within { border-color: #3b82f6; background: #eff6ff; }
.tri-vital-icon {
  font-size: 1.1rem;
  margin-bottom: .3rem;
}
.tri-vital-input {
  width: 100%;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  padding: .4rem .5rem;
  font-size: .95rem;
  font-weight: 700;
  color: #1e293b;
  background: #fff;
  outline: none;
  transition: border-color .15s;
}
.tri-vital-input:focus { border-color: #3b82f6; }
.tri-vital-label {
  font-size: .72rem;
  color: #64748b;
  margin-top: .3rem;
  font-weight: 600;
}
.tri-vital-unit { font-weight: 400; color: #94a3b8; }
.tri-vital-alerta { min-height: .5rem; margin-top: .2rem; }
.tri-alerta-pill {
  display: inline-block;
  font-size: .68rem;
  font-weight: 700;
  border-radius: 4px;
  padding: .1rem .35rem;
}
.tri-alerta-pill.danger { background: #fef2f2; color: #dc2626; }
.tri-alerta-pill.warning { background: #fffbeb; color: #b45309; }

/* Régua de Dor */
.tri-dor-label-top {
  display: flex;
  justify-content: space-between;
  font-size: .73rem;
  color: #64748b;
  margin-bottom: .4rem;
  font-weight: 600;
}
.tri-dor-desc-txt {
  font-size: .82rem;
  color: #475569;
}
.tri-dor-ruler {
  display: flex;
  gap: .3rem;
  justify-content: center;
  flex-wrap: nowrap;
  overflow-x: auto;
  padding: .3rem 0 .5rem;
}
.tri-dor-btn {
  flex: 1;
  min-width: 48px;
  max-width: 72px;
  background: #f8fafc;
  border: 2px solid #e2e8f0;
  border-radius: 10px;
  padding: .5rem .2rem;
  text-align: center;
  cursor: pointer;
  transition: all .15s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .2rem;
}
.tri-dor-btn:hover { border-color: var(--dor-cor); background: color-mix(in srgb, var(--dor-cor) 10%, #fff); transform: translateY(-2px); }
.tri-dor-btn.ativo { border-color: var(--dor-cor) !important; background: color-mix(in srgb, var(--dor-cor) 20%, #fff) !important; transform: scale(1.08); box-shadow: 0 3px 10px rgba(0,0,0,.12); }
.tri-dor-emoji { font-size: 1.3rem; line-height: 1; }
.tri-dor-num { font-size: .82rem; font-weight: 800; color: #1e293b; }

/* Glasgow */
.tri-glasgow-total-badge {
  margin-left: auto;
  border-radius: 20px;
  padding: .25rem .85rem;
  font-size: .9rem;
  font-weight: 800;
  background: #e2e8f0;
  color: #475569;
  transition: all .2s;
}
.tri-glasgow-total-badge.glasgow-normal   { background: #dcfce7; color: #15803d; }
.tri-glasgow-total-badge.glasgow-moderado { background: #fef3c7; color: #b45309; }
.tri-glasgow-total-badge.glasgow-critico  { background: #fef2f2; color: #dc2626; animation: triGlasPulse .8s infinite; }
@keyframes triGlasPulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(220,38,38,.3); }
  50% { box-shadow: 0 0 0 6px rgba(220,38,38,0); }
}
.tri-glasgow-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
}
@media (max-width: 700px) { .tri-glasgow-grid { grid-template-columns: 1fr; } }
.tri-glasgow-grupo {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: .75rem;
}
.tri-glasgow-titulo {
  font-size: .8rem;
  font-weight: 700;
  color: #475569;
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .35rem;
}
.tri-glasgow-opcoes { display: flex; flex-direction: column; gap: .3rem; }
.tri-glas-btn {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: #fff;
  border: 1.5px solid #e2e8f0;
  border-radius: 7px;
  padding: .4rem .6rem;
  cursor: pointer;
  font-size: .8rem;
  text-align: left;
  transition: all .14s;
  width: 100%;
}
.tri-glas-btn:hover { border-color: #3b82f6; background: #eff6ff; }
.tri-glas-btn.ativo { border-color: #3b82f6; background: #dbeafe; color: #1d4ed8; font-weight: 700; }
.tri-glas-score {
  background: #e2e8f0;
  color: #475569;
  border-radius: 5px;
  padding: .1rem .35rem;
  font-size: .75rem;
  font-weight: 800;
  min-width: 20px;
  text-align: center;
  flex-shrink: 0;
}
.tri-glas-btn.ativo .tri-glas-score { background: #3b82f6; color: #fff; }
.tri-glas-label { flex: 1; }
.tri-glasgow-resultado {
  margin-top: .85rem;
  padding: .65rem 1rem;
  border-radius: 9px;
  font-size: .85rem;
  font-weight: 600;
  background: #f1f5f9;
  color: #475569;
}
.tri-glas-res-normal   { background: #dcfce7; color: #15803d; }
.tri-glas-res-moderado { background: #fef3c7; color: #b45309; }
.tri-glas-res-critico  { background: #fef2f2; color: #dc2626; border: 1px solid #fca5a5; }

/* Manchester */
.tri-manchester-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .65rem;
}
@media (max-width: 700px) { .tri-manchester-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 400px) { .tri-manchester-grid { grid-template-columns: 1fr; } }
.tri-manchester-card {
  border-radius: 11px;
  padding: .85rem .5rem;
  text-align: center;
  cursor: pointer;
  transition: all .18s;
  position: relative;
  border: 2px solid transparent !important;
}
.tri-manchester-card:hover {
  transform: translateY(-3px);
  border-color: var(--mc-cor) !important;
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
}
.tri-manchester-card.selecionado {
  border-color: var(--mc-cor) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--mc-cor) 25%, transparent);
  transform: translateY(-2px) scale(1.03);
}
.tri-mc-dot {
  width: 18px; height: 18px;
  border-radius: 50%;
  margin: 0 auto .45rem;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
.tri-mc-icon { font-size: 1.2rem; margin-bottom: .3rem; }
.tri-mc-label { font-size: .75rem; font-weight: 800; }
.tri-mc-tempo { font-size: .68rem; font-weight: 600; margin-top: .2rem; opacity: .8; }
.tri-mc-sel-mark {
  display: none;
  position: absolute;
  top: .35rem; right: .45rem;
  font-size: .85rem;
  color: var(--mc-cor);
}
.tri-manchester-card.selecionado .tri-mc-sel-mark { display: block; }

/* Flags clínicas */
.tri-flags-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .5rem;
}
.tri-flag-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: 8px;
  padding: .4rem .85rem;
  cursor: pointer;
  font-size: .82rem;
  font-weight: 600;
  color: #475569;
  transition: all .14s;
  user-select: none;
}
.tri-flag-item input[type=checkbox] { accent-color: #3b82f6; }
.tri-flag-item:hover { border-color: #3b82f6; color: #1d4ed8; background: #eff6ff; }
.tri-flag-item span { display: flex; align-items: center; gap: .35rem; }

/* Coluna lateral — sticky: fica sempre visível durante o scroll */
.tri-col-side {
  display: flex;
  flex-direction: column;
  gap: .85rem;
  position: sticky;
  top: 1rem;
  max-height: calc(100vh - 5rem);
  overflow-y: auto;
  overflow-x: hidden;
  /* scrollbar discreta */
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}
.tri-col-side::-webkit-scrollbar { width: 4px; }
.tri-col-side::-webkit-scrollbar-track { background: transparent; }
.tri-col-side::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
.tri-side-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
}
.tri-side-header {
  padding: .65rem .9rem;
  font-weight: 700;
  font-size: .83rem;
  color: #374151;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.tri-side-body { padding: .75rem .9rem; }

/* Histórico na lateral — body com scroll interno para não empurrar Ações pra fora */
#tri-historico-body {
  max-height: 260px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #e2e8f0 transparent;
}
#tri-historico-body::-webkit-scrollbar { width: 3px; }
#tri-historico-body::-webkit-scrollbar-thumb { background: #e2e8f0; border-radius: 3px; }
/* ── Cards de Triagem no Histórico Sidebar ───────────────────── */
.tri-hist-item {
  padding: .5rem .55rem;
  border-bottom: 1px solid #f1f5f9;
  font-size: .78rem;
  border-radius: 4px;
  margin-bottom: .25rem;
  background: #fafafa;
}
.tri-hist-item:last-child { border-bottom: none; margin-bottom: 0; }
.tri-hist-item-triagem {
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
  padding: .5rem .6rem;
  margin-bottom: .4rem;
}
.tri-hist-item-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .25rem;
  gap: .3rem;
}
.tri-hist-data { color: #64748b; font-size: .71rem; font-weight: 500; }
.tri-hist-risco-pill {
  font-size: .65rem;
  font-weight: 700;
  padding: .1rem .4rem;
  border-radius: 999px;
  white-space: nowrap;
  letter-spacing: .02em;
}
.tri-hist-queixa { color: #374151; font-size: .78rem; font-weight: 600; line-height: 1.3; }
/* Resumo gerado pela IA */
.tri-hist-resumo-ia {
  color: #374151;
  font-size: .77rem;
  line-height: 1.35;
  margin-bottom: .25rem;
  display: flex;
  gap: .3rem;
  align-items: flex-start;
}
/* Sinais vitais chips */
.tri-hist-sv {
  display: flex;
  flex-wrap: wrap;
  gap: .2rem;
  margin: .2rem 0;
}
.tri-hist-sv-chip {
  background: #f1f5f9;
  color: #475569;
  font-size: .65rem;
  padding: .1rem .35rem;
  border-radius: 4px;
  white-space: nowrap;
}
/* Flags clínicas */
.tri-hist-flag {
  font-size: .64rem;
  padding: .1rem .35rem;
  border-radius: 4px;
  font-weight: 600;
}
.tri-hist-flag-gest   { background: #fce7f3; color: #9d174d; }
.tri-hist-flag-warn   { background: #fef3c7; color: #92400e; }
.tri-hist-flag-danger { background: #fee2e2; color: #b91c1c; }
/* Desfecho */
.tri-hist-desfecho {
  font-size: .68rem;
  color: #059669;
  font-weight: 600;
  margin-top: .15rem;
  text-transform: capitalize;
}
/* Detalhes (atend/CID/unidade) */
.tri-hist-det {
  font-size: .65rem;
  color: #94a3b8;
  margin-top: .15rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Observações IA (padrões automáticos) */
.tri-hist-obs-ia {
  margin-bottom: .4rem;
}
.tri-hist-obs-item {
  font-size: .73rem;
  color: #4b5563;
  background: #f0fdf4;
  border-left: 3px solid #16a34a;
  padding: .25rem .45rem;
  border-radius: 0 4px 4px 0;
  margin-bottom: .2rem;
  line-height: 1.35;
}
.tri-hist-obs-item:first-child { border-color: #f59e0b; background: #fffbeb; }
.tri-hist-obs-item:nth-child(3) { border-color: #3b82f6; background: #eff6ff; }
/* Alergia */
.tri-hist-alergia {
  background: #fef3c7;
  color: #b45309;
  border-radius: 6px;
  padding: .3rem .6rem;
  font-size: .74rem;
  font-weight: 700;
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .35rem;
}

/* Card de ações */
.tri-acoes-card .tri-side-body .btn { width: 100%; justify-content: center; }

/* ── Fila de Triagem (grid inicial) ───────────────────────── */
.tri-fila-tr {
  cursor: pointer;
  transition: background .12s;
}
.tri-fila-tr:hover {
  background: #fff7ed;
}
.tri-fila-tr:not(:last-child) td {
  border-bottom: 1px solid #f1f5f9;
}
.tri-fila-tr td {
  padding: .65rem 1rem;
  vertical-align: middle;
}

/* ══════════════════════════════════════════════════════════════════════════════
   PRONTUÁRIO — Seções multi-seleção (Procedimentos, Exames, Medicamentos)
   ══════════════════════════════════════════════════════════════════════════════ */

/* Lista multi-itens */
.pron-multi-lista {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  min-height: 36px;
}

.pron-multi-empty {
  padding: .6rem .75rem;
  color: #9ca3af;
  font-size: .83rem;
  font-style: italic;
  display: flex;
  align-items: center;
  gap: .4rem;
}

.pron-multi-item {
  display: flex;
  align-items: center;
  gap: .6rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: .5rem .65rem;
  transition: background .15s;
}
.pron-multi-item:hover { background: #f1f5f9; }

.pron-multi-item-icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: .8rem;
}

.pron-multi-item-body {
  flex: 1;
  min-width: 0;
}

.pron-multi-item-nome {
  font-size: .85rem;
  font-weight: 600;
  color: #1e293b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pron-multi-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  margin-top: .2rem;
  align-items: center;
}

.pron-multi-remove {
  background: none;
  border: none;
  color: #dc2626;
  cursor: pointer;
  padding: .25rem .4rem;
  border-radius: 4px;
  font-size: .8rem;
  opacity: .5;
  transition: opacity .15s;
  flex-shrink: 0;
}
.pron-multi-remove:hover { opacity: 1; background: #fee2e2; }

/* SIGTAP seleção em modal */
.sigtap-select-list {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}

.sigtap-select-item {
  padding: .6rem .75rem;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  cursor: pointer;
  transition: all .15s;
  background: #fff;
}
.sigtap-select-item:hover {
  background: #f0f9ff;
  border-color: #0891b2;
}

.sigtap-select-group {
  margin-bottom: .5rem;
}

.sigtap-select-group-header {
  padding: .35rem .6rem;
  font-size: .75rem;
  font-weight: 700;
  color: #0891b2;
  background: #e0f2fe;
  border-radius: 6px 6px 0 0;
  border: 1px solid #bae6fd;
  border-bottom: none;
  display: flex;
  align-items: center;
  gap: .35rem;
}

.sigtap-select-group .sigtap-select-item {
  border-radius: 0;
  border-top: none;
}

.sigtap-select-group .sigtap-select-item:last-child {
  border-radius: 0 0 6px 6px;
}

/* ══════════════════════════════════════════════════════════════════════════════
   EXAMES — Timeline de etapas e cards melhorados
   ══════════════════════════════════════════════════════════════════════════════ */

.exames-cards {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: .75rem;
}

.exame-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: .75rem 1rem;
  transition: box-shadow .15s;
}
.exame-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.07); }
.exame-card-urgente { border-left: 4px solid #dc2626; }

.exame-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .5rem;
  margin-bottom: .4rem;
}

.exame-card-nome {
  font-size: .9rem;
  color: #1e293b;
  flex: 1;
}

.exame-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .75rem;
  font-size: .78rem;
  color: #6b7280;
  margin-bottom: .5rem;
  align-items: center;
}

.exame-card-timeline {
  margin: .5rem 0;
}

.ex-timeline {
  display: flex;
  align-items: center;
  gap: 0;
}

.ex-tl-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .15rem;
  flex-shrink: 0;
}

.ex-tl-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .65rem;
  border: 2px solid;
  transition: all .2s;
}

.ex-tl-label {
  font-size: .6rem;
  text-align: center;
  white-space: nowrap;
  font-weight: 500;
}

.ex-tl-done .ex-tl-dot   { background: #16a34a; border-color: #16a34a; color: #fff; }
.ex-tl-done .ex-tl-label { color: #16a34a; }
.ex-tl-active .ex-tl-dot  { background: #2563eb; border-color: #2563eb; color: #fff; animation: pulseDot 1.5s ease infinite; }
.ex-tl-active .ex-tl-label { color: #2563eb; font-weight: 700; }
.ex-tl-pending .ex-tl-dot { background: #f1f5f9; border-color: #d1d5db; color: #9ca3af; }
.ex-tl-pending .ex-tl-label { color: #9ca3af; }

.ex-tl-line {
  flex: 1;
  height: 2px;
  background: #d1d5db;
  min-width: 16px;
  margin-bottom: 12px;
}
.ex-tl-line-done { background: #16a34a; }

@keyframes pulseDot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(37,99,235,.3); }
  50%       { box-shadow: 0 0 0 5px rgba(37,99,235,.0); }
}

.exame-card-resultado {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 6px;
  padding: .4rem .65rem;
  font-size: .8rem;
  color: #166534;
  margin: .4rem 0;
}

.exame-card-acoes {
  display: flex;
  gap: .4rem;
  margin-top: .5rem;
}

/* ══════════════════════════════════════════════════════════════════════════════
   CID-10 — z-index override para ficar na frente dos cards
   ══════════════════════════════════════════════════════════════════════════════ */

/* Override z-index para os autocomplete dentro do prontuário */
.pron-card .autocomplete-list { z-index: 9999; }

/* CID display abaixo do input */
.pron-cid-display {
  font-size: .74rem;
  color: #1565C0;
  margin-top: .2rem;
  min-height: 1.1rem;
  font-weight: 500;
}

/* ══════════════════════════════════════════════════════════════════════════════
   Pron card — variações de cores para novas seções
   ══════════════════════════════════════════════════════════════════════════════ */

.pron-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
  margin-bottom: 1rem;
}

.pron-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .65rem 1rem;
  font-size: .85rem;
  font-weight: 700;
  color: #fff;
}

.pron-card-body {
  padding: 1rem;
}

.pron-card-blue   .pron-card-header { background: linear-gradient(135deg,#1565C0,#1976D2); }
.pron-card-teal   .pron-card-header { background: linear-gradient(135deg,#00695C,#00897B); }
.pron-card-purple .pron-card-header { background: linear-gradient(135deg,#6A1B9A,#8E24AA); }
.pron-card-gray   .pron-card-header { background: linear-gradient(135deg,#37474F,#546E7A); }

/* ══════════════════════════════════════════════════════════════
   PRONTUÁRIO — MULTI-SELECT (Procedimentos / Exames / Medicamentos)
══════════════════════════════════════════════════════════════ */
.pron-multi-lista {
  display: flex; flex-direction: column; gap: .4rem; min-height: 2.5rem;
}
.pron-multi-empty {
  padding: .6rem .75rem; color: #9ca3af; font-size: .83rem;
  display: flex; align-items: center; gap: .5rem;
  background: #f9fafb; border-radius: 6px; border: 1px dashed #e5e7eb;
}
.pron-multi-item {
  display: flex; align-items: center; gap: .6rem;
  background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
  padding: .5rem .65rem; transition: box-shadow .15s;
}
.pron-multi-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,.07); }
.pron-multi-item-icon {
  width: 32px; height: 32px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: .9rem; flex-shrink: 0;
}
.pron-multi-item-body { flex: 1; min-width: 0; }
.pron-multi-item-nome {
  font-size: .85rem; font-weight: 600; color: #1e293b;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pron-multi-item-meta {
  display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .2rem;
  align-items: center;
}
.pron-multi-remove {
  background: none; border: none; color: #9ca3af; cursor: pointer;
  padding: .25rem .35rem; border-radius: 4px; font-size: .8rem;
  transition: color .15s, background .15s; flex-shrink: 0;
}
.pron-multi-remove:hover { color: #dc2626; background: #fef2f2; }

/* ══════════════════════════════════════════════════════════════
   SIGTAP SELECT — Lista de busca em modais
══════════════════════════════════════════════════════════════ */
.sigtap-select-list { display: flex; flex-direction: column; gap: .2rem; }
.sigtap-select-item {
  padding: .55rem .75rem; cursor: pointer; border-radius: 6px;
  border: 1px solid #e5e7eb; background: #fff; transition: background .1s, border-color .1s;
}
.sigtap-select-item:hover { background: #eff6ff; border-color: #93c5fd; }
.sigtap-select-group { margin-bottom: .5rem; }
.sigtap-select-group-header {
  font-size: .75rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; color: #6b7280; padding: .4rem .5rem .2rem;
  display: flex; align-items: center; gap: .4rem;
  border-bottom: 1px solid #e5e7eb; margin-bottom: .3rem;
}

/* ══════════════════════════════════════════════════════════════
   EXAMES — Cards com Timeline de Etapas
══════════════════════════════════════════════════════════════ */
.exames-cards { display: flex; flex-direction: column; gap: .6rem; padding: .75rem; }

.exame-card {
  background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
  padding: .75rem 1rem; transition: box-shadow .15s;
}
.exame-card:hover { box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.exame-card-urgente { border-left: 4px solid #dc2626; background: #fffafa; }

.exame-card-top {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: .75rem; margin-bottom: .4rem;
}
.exame-card-nome { font-size: .9rem; color: #1e293b; flex: 1; }
.exame-card-meta {
  display: flex; flex-wrap: wrap; gap: .4rem;
  font-size: .76rem; color: #6b7280; margin-bottom: .5rem;
  align-items: center;
}
.exame-card-meta span { display: flex; align-items: center; gap: .25rem; }
.exame-card-resultado {
  font-size: .8rem; color: #16a34a;
  background: #f0fdf4; border-radius: 6px;
  padding: .4rem .6rem; margin: .4rem 0;
  border: 1px solid #bbf7d0;
}
.exame-card-acoes {
  display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .5rem;
}

/* Timeline de etapas do exame */
.ex-timeline {
  display: flex; align-items: center;
  gap: 0; margin: .3rem 0; overflow-x: auto;
}
.ex-tl-step {
  display: flex; flex-direction: column; align-items: center;
  gap: .15rem; flex-shrink: 0; min-width: 60px;
}
.ex-tl-dot {
  width: 24px; height: 24px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .65rem; border: 2px solid;
}
.ex-tl-label { font-size: .65rem; text-align: center; white-space: nowrap; }
.ex-tl-line { flex: 1; height: 2px; min-width: 20px; align-self: flex-start; margin-top: 11px; }

.ex-tl-done .ex-tl-dot   { background: #16a34a; border-color: #16a34a; color: #fff; }
.ex-tl-done .ex-tl-label { color: #16a34a; font-weight: 600; }
.ex-tl-active .ex-tl-dot  { background: #2563eb; border-color: #2563eb; color: #fff; }
.ex-tl-active .ex-tl-label{ color: #2563eb; font-weight: 700; }
.ex-tl-pending .ex-tl-dot  { background: #f3f4f6; border-color: #d1d5db; color: #9ca3af; }
.ex-tl-pending .ex-tl-label{ color: #9ca3af; }
.ex-tl-line-done { background: #16a34a; }
.ex-tl-line:not(.ex-tl-line-done) { background: #e5e7eb; }

/* ══════════════════════════════════════════════════════════════
   EXAMES SIGTAP — Grid de seleção múltipla no modal
══════════════════════════════════════════════════════════════ */
.exame-grid-item {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  padding: .45rem .55rem;
  border: 1.5px solid #e5e7eb;
  border-radius: 8px;
  cursor: pointer;
  background: #fff;
  transition: border-color .12s, background .12s, box-shadow .12s;
  user-select: none;
  min-height: 52px;
}
.exame-grid-item:hover {
  border-color: #67e8f9;
  background: #f0fdfe;
  box-shadow: 0 1px 4px rgba(8,145,178,.1);
}
.exame-item-selecionado {
  border-color: #0891b2 !important;
  background: #e0f7fa !important;
  box-shadow: 0 0 0 2px rgba(8,145,178,.2) !important;
}
/* Procedimentos SIGTAP — estado selecionado (roxo) */
.proc-item-selecionado {
  border-color: #7c3aed !important;
  background: #f3e8ff !important;
  box-shadow: 0 0 0 2px rgba(124,58,237,.2) !important;
}
.proc-item-selecionado .exame-grid-item-nome {
  color: #5b21b6;
}
.exame-chk-icon {
  flex-shrink: 0;
  margin-top: .1rem;
  line-height: 1;
}
.exame-grid-item-body {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  min-width: 0;
  flex: 1;
}
.exame-grid-item-nome {
  font-size: .8rem;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.3;
  word-break: break-word;
}
.exame-grid-item-cod {
  font-size: .7rem;
  color: #0891b2;
  font-family: monospace;
  background: #f0f9ff;
  padding: .1rem .3rem;
  border-radius: 4px;
  display: inline-block;
}

/* ══════════════════════════════════════════════════════════════
   PRONTUÁRIO — Layout em grade 2 colunas (Seções 2 e 3)
   Anamnese/Exame Físico, Hipótese Diagnóstica/Conduta Médica
══════════════════════════════════════════════════════════════ */
.pron-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  align-items: start;
}
.pron-col {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  min-width: 0;           /* evita overflow em grids */
}
/* Garante que textareas dentro de pron-col sejam visíveis e se expandam */
.pron-col label {
  font-size: .78rem;
  font-weight: 600;
  color: var(--gray-600);
  display: flex;
  align-items: center;
  gap: .4rem;
}
.pron-col textarea {
  width: 100%;
  min-height: 120px;
  resize: vertical;
  padding: .6rem .75rem;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  font-size: .85rem;
  font-family: inherit;
  color: var(--gray-800);
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
}
.pron-col textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(0, 75, 141, .1);
}

/* Botão IA ao lado do label */
.pron-col .btn-ia-inline {
  margin-left: auto;
  padding: .2rem .5rem;
  font-size: .72rem;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  background: var(--primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  flex-shrink: 0;
}
.pron-col .btn-ia-inline:hover { background: var(--primary-dark); }

/* ══════════════════════════════════════════════════════════════
   MODAL MULTI-SELEÇÃO DE MEDICAMENTOS
   ══════════════════════════════════════════════════════════════ */

/* Tamanho do modal */
.modal-med-multi {
  max-width: 760px; width: 96vw;
  max-height: 92vh;
  display: flex; flex-direction: column;
  overflow: hidden;
}

/* Header verde gradiente */
.med-modal-header {
  background: linear-gradient(135deg, #065f46 0%, #059669 100%);
  color: #fff; padding: .85rem 1.25rem;
  border-bottom: none; flex-shrink: 0;
}
.med-modal-title {
  display: flex; align-items: center; gap: .75rem; flex: 1;
}
.med-modal-icon {
  width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0;
  background: rgba(255,255,255,.18);
  display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
}
.med-modal-header .modal-close { color: #fff; background: rgba(255,255,255,.15); border-radius: 8px; }
.med-modal-header .modal-close:hover { background: rgba(239,68,68,.7); }

/* Abas Estoque / Livre */
.med-tipo-tabs {
  display: flex; border-bottom: 2px solid #e5e7eb; background: #f9fafb; flex-shrink: 0;
}
.med-tipo-tab {
  padding: .6rem 1.25rem; border: none; background: none; cursor: pointer;
  font-size: .82rem; font-weight: 600; color: #6b7280;
  border-bottom: 2px solid transparent; margin-bottom: -2px;
  display: flex; align-items: center; gap: .4rem; transition: all .15s;
}
.med-tipo-tab:hover { color: #059669; background: rgba(5,150,105,.06); }
.med-tipo-tab.active { color: #059669; border-bottom-color: #059669; background: #fff; }

/* Painéis */
.med-painel {
  padding: .75rem 1rem; flex-shrink: 0;
}
#med-painel-estoque { display: flex; flex-direction: column; gap: .6rem; }

/* Filtros */
.med-filtros-row {
  display: flex; gap: .5rem; align-items: center;
}
.med-sel-grupo {
  flex: 0 0 210px; min-width: 0;
  border-radius: 8px; font-size: .8rem;
  border: 1.5px solid #d1fae5; background: #f0fdf4;
  color: #065f46; font-weight: 600;
}
.med-busca-wrap { position: relative; flex: 1; }
.med-busca-ico {
  position: absolute; left: .65rem; top: 50%; transform: translateY(-50%);
  color: #9ca3af; font-size: .8rem; pointer-events: none;
}
.med-busca-wrap input { padding-left: 2rem; border-radius: 8px; }

/* Grade de resultados */
.med-grid-res {
  max-height: 230px; overflow-y: auto; border-radius: 10px;
  border: 1.5px solid #e5e7eb; background: #fafafa;
}
.med-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .5rem; padding: 1.5rem; color: #9ca3af; font-size: .82rem; text-align: center;
}
.med-empty i { font-size: 1.5rem; }

/* Grid de cards de medicamentos */
.med-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(195px, 1fr));
  gap: .5rem; padding: .5rem;
}
.med-grid-item {
  position: relative; padding: .65rem .8rem;
  border: 1.5px solid #e5e7eb; border-radius: 10px;
  background: #fff; cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.med-grid-item:hover { border-color: #059669; box-shadow: 0 2px 8px rgba(5,150,105,.15); }
.med-item-sel {
  border-color: #059669 !important;
  background: #ecfdf5 !important;
  box-shadow: 0 2px 12px rgba(5,150,105,.2) !important;
}
.med-item-check {
  position: absolute; top: .4rem; right: .4rem;
  width: 20px; height: 20px; border-radius: 50%;
  background: #059669; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: .65rem;
}
.med-item-grupo {
  display: inline-block; font-size: .62rem; font-weight: 700;
  padding: .1rem .45rem; border-radius: 20px; border: 1px solid;
  margin-bottom: .3rem; text-transform: uppercase; letter-spacing: .04em;
}
.med-item-nome { font-size: .82rem; font-weight: 700; color: #1e293b; line-height: 1.3; }
.med-item-apres { font-size: .73rem; color: #6b7280; margin-top: .15rem; }
.med-item-via { font-size: .7rem; color: #9ca3af; margin-top: .2rem; }
.med-item-estoque { font-size: .72rem; font-weight: 600; margin-top: .3rem; display: flex; align-items: center; gap: .3rem; }
.est-ok { color: #16a34a; }
.est-zero { color: #dc2626; }

/* Barra de selecionados */
.med-barra-sel {
  display: flex; align-items: center; gap: .5rem; flex-wrap: nowrap;
  padding: .5rem 1rem; background: #f0fdf4; border-top: 1.5px solid #d1fae5;
  border-bottom: 1.5px solid #d1fae5; flex-shrink: 0; overflow-x: auto;
}
.med-barra-tags { display: flex; gap: .4rem; flex-wrap: wrap; flex: 1; }
.med-tag {
  display: flex; align-items: center; gap: .4rem;
  background: #fff; border: 1.5px solid #059669; border-radius: 20px;
  padding: .2rem .55rem .2rem .7rem; font-size: .76rem; cursor: pointer;
  transition: background .15s;
}
.med-tag:hover { background: #ecfdf5; }
.med-tag-livre { border-color: #7c3aed; }
.med-tag-livre:hover { background: #faf5ff; }
.med-tag-rx { color: #6b7280; font-size: .68rem; }
.med-tag-del {
  background: none; border: none; cursor: pointer; color: #9ca3af;
  font-size: 1rem; line-height: 1; padding: 0 .1rem; transition: color .15s;
}
.med-tag-del:hover { color: #ef4444; }

/* Formulário de prescrição do item */
.med-form-rx {
  padding: .75rem 1rem; background: #fff;
  border-top: 1.5px solid #e5e7eb; flex-shrink: 0;
}
.med-form-rx-title {
  font-size: .82rem; font-weight: 700; color: #1e293b; margin-bottom: .6rem;
  padding-bottom: .4rem; border-bottom: 1px solid #f1f5f9;
}
.med-rx-grid {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .5rem;
}
.med-rx-grid-2 {
  display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: .4rem;
}

/* Footer do modal */
.med-modal-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding: .65rem 1rem; background: #f9fafb;
  border-top: 1px solid #e5e7eb; flex-shrink: 0;
  flex-wrap: wrap; gap: .5rem;
}

/* Formulário livre */
.med-livre-form { padding: .25rem 0; }

/* Responsivo */
@media (max-width: 600px) {
  .med-filtros-row { flex-direction: column; }
  .med-sel-grupo { flex: 1 1 100%; }
  .med-rx-grid { grid-template-columns: 1fr 1fr; }
  .med-grid { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   EXAMES — AGRUPAMENTO POR PACIENTE
   ═══════════════════════════════════════════════════════════════ */

/* Toggle de view mode (Lista / Por Paciente) */
.ex-view-toggle {
  display: flex;
  border: 1.5px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}
.ex-view-btn {
  background: #fff;
  border: none;
  padding: .35rem .85rem;
  font-size: .8rem;
  font-weight: 500;
  color: #6b7280;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .35rem;
  transition: background .15s, color .15s;
  white-space: nowrap;
}
.ex-view-btn:first-child { border-right: 1px solid #e2e8f0; }
.ex-view-btn.active {
  background: #0891b2;
  color: #fff;
}
.ex-view-btn:not(.active):hover { background: #f1f5f9; color: #0f172a; }

/* Container dos grupos */
.ex-grupos {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: .75rem;
}

/* Card do grupo (paciente) */
.ex-grupo-card {
  border: 1.5px solid #e2e8f0;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
  transition: box-shadow .15s;
}
.ex-grupo-card:hover { box-shadow: 0 3px 12px rgba(0,0,0,.08); }

/* Cabeçalho clicável do grupo */
.ex-grupo-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1rem;
  background: linear-gradient(135deg, #f8fafc, #f1f5f9);
  cursor: pointer;
  user-select: none;
  border-bottom: 1px solid #e2e8f0;
  gap: .75rem;
}
.ex-grupo-header:hover { background: linear-gradient(135deg, #f1f5f9, #e9eef5); }

/* Avatar + info do paciente */
.ex-grupo-paciente {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex: 1;
  min-width: 0;
}
.ex-grupo-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0891b2, #2563eb);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.ex-grupo-info { min-width: 0; }
.ex-grupo-nome {
  font-size: .95rem;
  font-weight: 700;
  color: #1e293b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
.ex-grupo-meta {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-top: .2rem;
  flex-wrap: wrap;
}
.ex-grupo-meta span {
  display: flex;
  align-items: center;
  gap: .25rem;
  font-size: .75rem;
  color: #6b7280;
}
.ex-grupo-risco {
  font-size: .68rem !important;
  font-weight: 700 !important;
  padding: .1rem .45rem !important;
  border-radius: 20px !important;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* Resumo à direita */
.ex-grupo-resumo {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-shrink: 0;
}
.ex-grupo-count {
  font-size: .8rem;
  font-weight: 600;
  color: #0891b2;
  white-space: nowrap;
}
.ex-grupo-chevron {
  color: #9ca3af;
  font-size: .8rem;
  transition: transform .2s ease;
}

/* Body do grupo com os cards de exames */
.ex-grupo-body {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  padding: .65rem .75rem;
  background: #fafbfc;
  transition: all .2s ease;
}
.ex-grupo-body.ex-grupo-collapsed {
  display: none;
}

/* Cards dentro do grupo: menos padding lateral */
.ex-grupo-body .exame-card {
  border-radius: 8px;
  border: 1px solid #e9eef5;
  background: #fff;
}

/* Badge de origem (LAB / SIGTAP) */
.exame-card-nome .ex-origem-badge {
  display: inline-flex;
  align-items: center;
  font-size: .68rem;
  font-weight: 700;
  padding: .1rem .4rem;
  border-radius: 4px;
  margin-right: .3rem;
  vertical-align: middle;
}

/* Responsive */
@media (max-width: 640px) {
  .ex-grupo-header { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .ex-grupo-resumo { width: 100%; justify-content: flex-start; }
  .ex-view-toggle { width: 100%; }
  .ex-view-btn { flex: 1; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════
   EXAMES — CHIPS DE ORIGEM (SIGTAP / LIVRE)
   ═══════════════════════════════════════════════════════════════ */
.ex-origem-chip {
  display: inline-flex;
  align-items: center;
  font-size: .63rem;
  font-weight: 700;
  padding: .1rem .42rem;
  border-radius: 4px;
  margin-right: .35rem;
  vertical-align: middle;
  letter-spacing: .03em;
  text-transform: uppercase;
  flex-shrink: 0;
}
.ex-origem-sigtap {
  background: #e0f2fe;
  color: #0369a1;
  border: 1px solid #bae6fd;
}
.ex-origem-livre {
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
}

/* ═══════════════════════════════════════════════════════════════
   PRONTUÁRIO — SINAIS VITAIS INLINE
   ═══════════════════════════════════════════════════════════════ */

/* Grid de cards (múltiplos registros lado a lado, scroll horizontal) */
.pron-sv-grid {
  display: flex;
  gap: .75rem;
  overflow-x: auto;
  padding-bottom: .25rem;
}
.pron-sv-grid::-webkit-scrollbar { height: 5px; }
.pron-sv-grid::-webkit-scrollbar-thumb { background: #e2e8f0; border-radius: 10px; }

/* Card individual de sinais vitais */
.pron-sv-card {
  flex-shrink: 0;
  min-width: 310px;
  max-width: 380px;
  border: 1.5px solid #fecaca;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

/* Header do card: data/hora + profissional */
.pron-sv-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .45rem .75rem;
  background: linear-gradient(135deg, #fee2e2, #fef2f2);
  border-bottom: 1px solid #fecaca;
}
.pron-sv-dt {
  font-size: .75rem;
  font-weight: 700;
  color: #dc2626;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.pron-sv-by {
  font-size: .7rem;
  color: #9ca3af;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 120px;
}

/* Grid de vitais dentro do card */
.pron-sv-vitals {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .4rem;
  padding: .6rem .65rem;
}
.pron-sv-vital {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .2rem;
  min-width: 0;
}
.pron-sv-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  flex-shrink: 0;
}
.pron-sv-val {
  font-size: .82rem;
  font-weight: 800;
  color: #1e293b;
  line-height: 1;
  text-align: center;
}
.pron-sv-lbl {
  font-size: .62rem;
  color: #9ca3af;
  text-align: center;
  white-space: nowrap;
}

/* ─── Card especial de TRIAGEM ─────────────────────────────── */
.pron-sv-card--triagem {
  border: 2px solid #fb923c;
  min-width: 330px;
  max-width: 420px;
  position: relative;
}
.pron-sv-card--triagem::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #ea580c, #f97316, #fbbf24);
}
.pron-sv-card-header--triagem {
  background: linear-gradient(135deg, #fff7ed, #ffedd5) !important;
  border-bottom: 1px solid #fb923c !important;
}
.pron-sv-badge-triagem {
  display: inline-flex;
  align-items: center;
  background: linear-gradient(135deg, #ea580c, #f97316);
  color: #fff;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .08em;
  padding: .15rem .45rem;
  border-radius: 999px;
  text-transform: uppercase;
}
.pron-sv-triagem-queixa {
  font-size: .78rem;
  color: #92400e;
  background: #fffbeb;
  border-bottom: 1px solid #fed7aa;
  padding: .3rem .75rem;
  font-style: italic;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ═══════════════════════════════════════════════════════════════
   PRONTUÁRIO — EVOLUÇÕES INLINE
   ═══════════════════════════════════════════════════════════════ */

.pron-ev-grid {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}

.pron-ev-card {
  border: 1.5px solid #fde68a;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  padding: .65rem .85rem;
}
.pron-ev-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .45rem;
  flex-wrap: wrap;
  gap: .4rem;
}
.pron-ev-tipo-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .75rem;
  font-weight: 700;
  padding: .2rem .6rem;
  border-radius: 20px;
}
.pron-ev-meta {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .73rem;
  color: #6b7280;
}
.pron-ev-meta span { display: flex; align-items: center; gap: .25rem; }
.pron-ev-descricao {
  font-size: .85rem;
  color: #374151;
  line-height: 1.5;
  white-space: pre-wrap;
}
.pron-ev-conduta {
  margin-top: .4rem;
  padding: .35rem .6rem;
  background: #eff6ff;
  border-left: 3px solid #0891b2;
  border-radius: 0 6px 6px 0;
  font-size: .82rem;
  color: #1e40af;
}

/* ═══════════════════════════════════════════════════════════════
   PRONTUÁRIO — BARRA DE AÇÕES REORGANIZADA
   ═══════════════════════════════════════════════════════════════ */

.pron-actions-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  flex-wrap: wrap;
}
.pron-actions-left {
  display: flex;
  align-items: center;
  gap: .5rem;
}
.pron-actions-right {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}

/* ── Botões de outline para vazios ── */
.btn-outline-danger {
  background: transparent;
  color: #dc2626;
  border: 1.5px solid #dc2626;
  font-size: .78rem;
}
.btn-outline-danger:hover { background: #fee2e2; }
.btn-outline-warning {
  background: transparent;
  color: #d97706;
  border: 1.5px solid #d97706;
  font-size: .78rem;
}
.btn-outline-warning:hover { background: #fef3c7; }


/* ═══════════════════════════════════════════════════════════════
   POSOLOGIA — Bloco de prescrição estruturada
   ═══════════════════════════════════════════════════════════════ */

/* Wrapper geral do formulário de prescrição */
.pos-form-wrap {
  padding: .6rem .75rem .5rem;
}
.pos-form-header {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .6rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid #e5e7eb;
}
.pos-form-title {
  font-size: .9rem;
  font-weight: 600;
  color: #1e293b;
  flex: 1;
}

/* Card do bloco posologia */
.pos-bloco {
  background: linear-gradient(135deg, #f8f7ff 0%, #f0fdf4 100%);
  border: 1.5px solid #c4b5fd;
  border-radius: 10px;
  padding: .7rem .75rem .6rem;
  margin-bottom: .5rem;
}
.pos-bloco-titulo {
  font-size: .78rem;
  font-weight: 700;
  color: #7c3aed;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .35rem;
}

/* Grid linha 1: 5 colunas */
.pos-row-5 {
  display: grid;
  grid-template-columns: 80px 1fr 1fr 1fr 1fr;
  gap: .4rem;
  align-items: end;
}
@media (max-width: 680px) {
  .pos-row-5 { grid-template-columns: 1fr 1fr; }
}

/* Grid linha 2: datas */
.pos-row-datas {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4rem;
  margin-top: .4rem;
}

/* Campos de data + hora juntos */
.pos-dt-row {
  display: flex;
  gap: .3rem;
}
.pos-dt-date { flex: 1.4; }
.pos-dt-time { flex: 1; }

/* Texto gerado */
.pos-row-texto {
  margin-top: .4rem;
}
.pos-texto-gerado {
  display: flex;
  align-items: center;
  background: #1e293b;
  color: #e2e8f0;
  border-radius: 8px;
  padding: .5rem .65rem;
  font-size: .82rem;
  line-height: 1.4;
  gap: .25rem;
  min-height: 38px;
}
.pos-texto-val {
  flex: 1;
  font-style: italic;
  opacity: .85;
}
.pos-texto-val:not(:empty):not([textContent="Preencha os campos acima para gerar a posologia..."]) {
  font-style: normal;
  opacity: 1;
  font-weight: 500;
  color: #f1f5f9;
}
.pos-btn-edit {
  background: rgba(255,255,255,.12);
  border: none;
  color: #94a3b8;
  padding: .25rem .4rem;
  border-radius: 5px;
  cursor: pointer;
  font-size: .75rem;
  transition: background .15s, color .15s;
  flex-shrink: 0;
}
.pos-btn-edit:hover { background: rgba(255,255,255,.22); color: #e2e8f0; }
.pos-texto-edit {
  font-family: inherit;
  font-size: .82rem;
  resize: vertical;
  min-height: 48px;
}

/* Label obrigatório */
.pos-req::after {
  content: ' *';
  color: #ef4444;
}
.pos-req-star { color: #ef4444; }

/* Modal maior para comportar posologia */
.modal-med-multi {
  max-height: 94vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.med-form-rx.pos-form-wrap {
  overflow-y: auto;
  max-height: 68vh;
  border-top: 1px solid #e5e7eb;
  padding-top: .6rem;
}
.med-livre-form.pos-form-wrap {
  overflow-y: auto;
}

/* Posologia no card de enfermagem */
.enf-pos-texto {
  font-size: .78rem;
  color: #4f46e5;
  background: #eef2ff;
  border-radius: 5px;
  padding: .25rem .5rem;
  margin-top: .3rem;
  font-style: italic;
}
.enf-apraz-prox {
  font-size: .77rem;
  color: #92400e;
  background: #fef3c7;
  border-radius: 5px;
  padding: .22rem .5rem;
  margin-top: .25rem;
  display: flex;
  align-items: center;
  gap: .3rem;
  flex-wrap: wrap;
}
.enf-apraz-total {
  color: #b45309;
  font-size: .72rem;
}
.enf-chip-tipo {
  background: #e0e7ff;
  color: #3730a3;
  font-size: .7rem;
  padding: .12rem .4rem;
  border-radius: 10px;
}


/* ═══════════════════════════════════════════════════════════════
   CARD MEDICAMENTO PRESCRITO — EXPANDED (Tela 1)
   ═══════════════════════════════════════════════════════════════ */

/* Posologia no card da prescrição */
.rx-med-posologia {
  display: flex;
  align-items: flex-start;
  gap: .3rem;
  margin-top: .35rem;
  font-size: .78rem;
  color: #4f46e5;
  background: #eef2ff;
  border-radius: 6px;
  padding: .28rem .55rem;
  line-height: 1.4;
  flex-wrap: wrap;
}
.rx-med-complemento {
  color: #6366f1;
  font-style: italic;
  font-size: .75rem;
}

/* Execuções realizadas */
.rx-med-execucoes {
  margin-top: .4rem;
}
.rx-exec-load-btn {
  background: none;
  border: 1px dashed #d1d5db;
  border-radius: 6px;
  color: #6b7280;
  font-size: .75rem;
  padding: .2rem .6rem;
  cursor: pointer;
  transition: all .15s;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
}
.rx-exec-load-btn:hover {
  border-color: #6366f1;
  color: #6366f1;
  background: #eef2ff;
}
.rx-exec-titulo {
  font-size: .75rem;
  font-weight: 700;
  color: #374151;
  margin-bottom: .25rem;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.rx-exec-lista {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.rx-exec-item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
  padding: .22rem .5rem;
  background: #f9fafb;
  border-radius: 6px;
  font-size: .74rem;
  color: #374151;
  border-left: 3px solid #22c55e;
}
.rx-exec-status {
  font-weight: 700;
  font-size: .71rem;
  padding: .1rem .35rem;
  border-radius: 8px;
}
.rx-exec-status-administrado { background: #dcfce7; color: #15803d; }
.rx-exec-status-parcial       { background: #dbeafe; color: #1d4ed8; }
.rx-exec-status-nao_adm       { background: #fee2e2; color: #b91c1c; }
.rx-exec-dt   { color: #4b5563; }
.rx-exec-prof { color: #6b7280; }
.rx-exec-obs  { color: #92400e; font-style: italic; }
.rx-exec-vazio {
  font-size: .75rem;
  color: #9ca3af;
  padding: .2rem .4rem;
  display: flex;
  align-items: center;
  gap: .3rem;
}

/* Coluna de ações do card */
.rx-med-action-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .4rem;
  flex-shrink: 0;
  min-width: 80px;
}
.rx-med-btns-acao {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  align-items: stretch;
}
.rx-btn-acao {
  display: flex;
  align-items: center;
  gap: .3rem;
  border: none;
  border-radius: 6px;
  padding: .3rem .55rem;
  font-size: .72rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: filter .15s, transform .1s;
  justify-content: center;
}
.rx-btn-acao:active { transform: scale(.96); }
.rx-btn-acao span { font-size: .7rem; }

.rx-btn-alterar  { background: #fef3c7; color: #b45309; }
.rx-btn-alterar:hover  { background: #fde68a; }

.rx-btn-trocar   { background: #ede9fe; color: #6d28d9; }
.rx-btn-trocar:hover   { background: #ddd6fe; }

.rx-btn-suspender { background: #dbeafe; color: #1d4ed8; }
.rx-btn-suspender:hover { background: #bfdbfe; }

.rx-btn-cancelar  { background: #fee2e2; color: #b91c1c; }
.rx-btn-cancelar:hover  { background: #fecaca; }

/* Botão adm no novo layout */
.rx-adm-btn {
  display: flex;
  align-items: center;
  gap: .3rem;
  background: #dcfce7;
  color: #15803d;
  border: none;
  border-radius: 6px;
  padding: .35rem .6rem;
  font-size: .73rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s;
}
.rx-adm-btn:hover { background: #bbf7d0; }

/* Status cancelado */
.rx-med-card.rx-med-cancelado {
  opacity: .65;
}

/* Data/hora do item no card */
.rx-med-datahora {
  font-size: .72rem;
  color: #6b7280;
  margin-top: .15rem;
  display: flex;
  align-items: center;
  gap: .25rem;
}

/* Observações do item */
.rx-med-obs {
  margin-top: .3rem;
  font-size: .76rem;
  color: #92400e;
  background: #fef3c7;
  border-radius: 6px;
  padding: .22rem .5rem;
  display: flex;
  align-items: flex-start;
  gap: .35rem;
  line-height: 1.4;
}

/* ═══════════════════════════════════════════════════════════════
   CARD PRESCRIÇÃO INLINE — seção prontuário médico (pron-rx-*)
   ═══════════════════════════════════════════════════════════════ */
.pron-rx-item {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-left: 4px solid #059669;
  border-radius: 10px;
  padding: .65rem .85rem;
  margin-bottom: .55rem;
  transition: box-shadow .15s;
}
.pron-rx-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,.07); }
.pron-rx-item.pron-rx-inativo { border-left-color: #9ca3af; opacity: .72; }
.pron-rx-item.pron-rx-adm     { border-left-color: #22c55e; background: #f0fdf4; }

/* Cabeçalho: nome + situação + data/hora/prescritor */
.pron-rx-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .5rem;
  flex-wrap: wrap;
  margin-bottom: .3rem;
}
.pron-rx-nome-wrap {
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-wrap: wrap;
  flex: 1;
}
.pron-rx-nome {
  font-weight: 700;
  font-size: .88rem;
  color: #111827;
}
.pron-rx-meta-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .1rem;
  flex-shrink: 0;
}
.pron-rx-dt {
  font-size: .7rem;
  color: #6b7280;
  display: flex;
  align-items: center;
  gap: .2rem;
}
.pron-rx-medico {
  font-size: .68rem;
  color: #9ca3af;
  display: flex;
  align-items: center;
  gap: .2rem;
}

/* Chips */
.pron-rx-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-bottom: .3rem;
}
.pron-rx-chip {
  font-size: .71rem;
  font-weight: 600;
  padding: .12rem .4rem;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  gap: .2rem;
}
.pron-rx-chip-dose    { background: #f0fdf4; color: #166534; }
.pron-rx-chip-freq    { background: #f5f3ff; color: #6d28d9; }
.pron-rx-chip-casa    { background: #fef3c7; color: #b45309; }
.pron-rx-chip-unidade { background: #eff6ff; color: #1d4ed8; }
.pron-rx-chip-tipo    { background: #ede9fe; color: #6d28d9; }

/* Posologia */
.pron-rx-posologia {
  display: flex;
  align-items: flex-start;
  gap: .35rem;
  font-size: .78rem;
  color: #4338ca;
  background: #eef2ff;
  border-radius: 6px;
  padding: .3rem .55rem;
  margin-bottom: .3rem;
  line-height: 1.4;
}

/* Observações */
.pron-rx-obs {
  display: flex;
  align-items: flex-start;
  gap: .35rem;
  font-size: .75rem;
  color: #92400e;
  background: #fef3c7;
  border-radius: 6px;
  padding: .25rem .5rem;
  margin-bottom: .3rem;
}

/* Botões de ação */
.pron-rx-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .45rem;
  padding-top: .4rem;
  border-top: 1px solid #f3f4f6;
}
.pron-rx-btn {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  border: none;
  border-radius: 6px;
  padding: .28rem .6rem;
  font-size: .71rem;
  font-weight: 600;
  cursor: pointer;
  transition: filter .15s;
}
.pron-rx-btn:active { transform: scale(.96); }
.pron-rx-btn-alterar  { background: #fef3c7; color: #b45309; }
.pron-rx-btn-alterar:hover  { background: #fde68a; }
.pron-rx-btn-trocar   { background: #ede9fe; color: #6d28d9; }
.pron-rx-btn-trocar:hover   { background: #ddd6fe; }
.pron-rx-btn-suspender { background: #dbeafe; color: #1d4ed8; }
.pron-rx-btn-suspender:hover { background: #bfdbfe; }
.pron-rx-btn-cancelar  { background: #fee2e2; color: #b91c1c; }
.pron-rx-btn-cancelar:hover  { background: #fecaca; }
.pron-rx-btn-adm {
  background: #dcfce7; color: #15803d;
  margin-left: auto;
  font-weight: 700;
}
.pron-rx-btn-adm:hover { background: #bbf7d0; }

/* Execuções inline */
.pron-rx-execucoes { margin-top: .3rem; }

/* ── AGUARDANDO PRÓXIMA DOSE ─────────────────────────── */
.enf-med-aguard {
  background: #faf5ff;
  border-left: 3px solid #7c3aed;
  opacity: .9;
}
.enf-aguard-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: #ede9fe;
  color: #6d28d9;
  border-radius: 999px;
  padding: .3rem .75rem;
  font-size: .75rem;
  font-weight: 700;
  white-space: nowrap;
}
.enf-prox-dose {
  font-size: .75rem;
  color: #5b21b6;
  margin-top: .25rem;
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-wrap: wrap;
}
.enf-prox-countdown {
  background: #ede9fe;
  color: #6d28d9;
  border-radius: 999px;
  padding: .1rem .5rem;
  font-size: .7rem;
  font-weight: 700;
}

/* ══════════════════════════════════════════════════════════════════
   PROCEDIMENTOS ASSISTENCIAIS COMPLEMENTARES (PAC)
   ══════════════════════════════════════════════════════════════════ */

/* Layout principal 2 colunas */
.pac-layout-grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 1.25rem;
  align-items: start;
}
@media (max-width: 900px) {
  .pac-layout-grid { grid-template-columns: 1fr; }
}

/* ── Coluna esquerda: busca ────────── */
.pac-col-busca { display: flex; flex-direction: column; gap: .85rem; }

.pac-busca-card {
  background: #fff;
  border-radius: 12px;
  border: 1.5px solid #ede9fe;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(124,58,237,.07);
}
.pac-busca-header {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .85rem 1rem;
  background: linear-gradient(135deg,#f5f3ff,#ede9fe);
  border-bottom: 1px solid #ede9fe;
}
.pac-busca-input-wrap {
  position: relative;
  padding: .65rem .85rem;
}
.pac-busca-icon {
  position: absolute;
  left: 1.4rem;
  top: 50%;
  transform: translateY(-50%);
  color: #a78bfa;
  font-size: .85rem;
  pointer-events: none;
}
.pac-busca-input {
  width: 100%;
  padding: .5rem .5rem .5rem 2.1rem;
  border: 1.5px solid #ddd6fe;
  border-radius: 8px;
  font-size: .9rem;
  outline: none;
  transition: border-color .2s;
  box-sizing: border-box;
}
.pac-busca-input:focus { border-color: #7c3aed; box-shadow: 0 0 0 3px rgba(124,58,237,.12); }
.pac-busca-limpar {
  position: absolute;
  right: 1.4rem;
  top: 50%;
  transform: translateY(-50%);
  background: #f1f5f9;
  border: none;
  border-radius: 50%;
  width: 22px; height: 22px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: #64748b; font-size: .7rem;
}
.pac-results-list {
  border-top: 1px solid #ede9fe;
  max-height: 320px;
  overflow-y: auto;
}
.pac-result-grupo {
  font-size: .7rem;
  font-weight: 700;
  color: #7c3aed;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: .5rem 1rem .25rem;
}
.pac-result-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .65rem 1rem;
  cursor: pointer;
  border-bottom: 1px solid #f8f5ff;
  transition: background .15s;
}
.pac-result-item:hover { background: #f5f3ff; }
.pac-result-avatar {
  width: 32px; height: 32px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: .8rem; flex-shrink: 0;
}
.pac-result-nome { font-weight: 600; font-size: .88rem; }
.pac-result-sub { font-size: .75rem; color: #64748b; }
.pac-result-badge { margin-left: auto; flex-shrink: 0; }
.pac-result-empty { padding: 1rem; text-align: center; color: #94a3b8; font-size: .85rem; }

/* Atendimento selecionado */
.pac-atend-card {
  background: #fff;
  border-radius: 12px;
  border: 1.5px solid #ede9fe;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(124,58,237,.07);
}
.pac-atend-header {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .75rem 1rem;
  background: linear-gradient(135deg,#f5f3ff,#ede9fe);
  border-bottom: 1px solid #ede9fe;
  font-weight: 700; font-size: .9rem;
}
.pac-atend-info { padding: .85rem 1rem; }
.pac-pac-nome {
  font-size: 1.05rem;
  font-weight: 700;
  color: #1e1b4b;
  display: flex; align-items: center; gap: .5rem;
  margin-bottom: .35rem;
}
.pac-risco-dot {
  width: 10px; height: 10px;
  border-radius: 50%; flex-shrink: 0;
}
.pac-pac-sub {
  display: flex; gap: 1rem; flex-wrap: wrap;
  font-size: .8rem; color: #64748b;
}
.pac-pac-sub span { display: flex; align-items: center; gap: .3rem; }

/* Stats PAC */
.pac-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .5rem;
}
.pac-stat {
  background: #fff;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  padding: .6rem .5rem;
  text-align: center;
}
.pac-stat-pend { border-color: #fde68a; background: #fffbeb; }
.pac-stat-exec { border-color: #bbf7d0; background: #f0fdf4; }
.pac-stat-bpa  { border-color: #ddd6fe; background: #f5f3ff; }
.pac-stat-val { font-size: 1.3rem; font-weight: 800; color: #1e293b; }
.pac-stat-pend .pac-stat-val { color: #b45309; }
.pac-stat-exec .pac-stat-val { color: #15803d; }
.pac-stat-bpa  .pac-stat-val { color: #7c3aed; }
.pac-stat-lbl { font-size: .68rem; color: #64748b; text-transform: uppercase; letter-spacing: .04em; }

/* Desfecho */
.pac-desfecho-card {
  background: #fff;
  border-radius: 12px;
  border: 1.5px solid #e0d9f7;
  box-shadow: 0 1px 4px rgba(124,58,237,.07);
}
.pac-desfecho-header {
  display: flex; align-items: center; gap: .6rem;
  padding: .75rem 1rem;
  font-weight: 700; font-size: .9rem;
  background: linear-gradient(135deg,#f5f3ff,#ede9fe);
  border-bottom: 1px solid #ede9fe;
  border-radius: 12px 12px 0 0;
}
.pac-desfecho-body { padding: .85rem 1rem; }

/* Hint vazio coluna esquerda */
.pac-hint-vazio {
  background: #faf5ff;
  border-radius: 12px;
  border: 1.5px dashed #ddd6fe;
  padding: 2rem 1rem;
  text-align: center;
  display: flex; flex-direction: column; align-items: center;
}

/* ── Coluna direita: tarefas ──────── */
.pac-col-tarefas { display: flex; flex-direction: column; gap: .85rem; }

.pac-toolbar {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  background: #fff;
  border-radius: 10px;
  padding: .65rem .85rem;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}

/* Templates rápidos */
.pac-templates {
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  padding: .75rem .85rem;
}
.pac-templates-label {
  font-size: .75rem;
  font-weight: 700;
  color: #7c3aed;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: .6rem;
  display: flex; align-items: center; gap: .4rem;
}
.pac-templates-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: .45rem;
}
.pac-tpl-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  padding: .55rem .4rem;
  background: #faf5ff;
  border: 1.5px solid #ede9fe;
  border-radius: 8px;
  cursor: pointer;
  font-size: .72rem;
  color: #374151;
  font-weight: 500;
  transition: all .15s;
  text-align: center;
}
.pac-tpl-btn:hover {
  background: #ede9fe;
  border-color: #a78bfa;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(124,58,237,.15);
}
.pac-tpl-btn i { font-size: 1.1rem; }

/* Cards de tarefa */
.pac-tarefa-card {
  background: #fff;
  border-radius: 10px;
  border: 1.5px solid #e2e8f0;
  padding: .85rem 1rem;
  margin-bottom: .5rem;
  transition: box-shadow .15s;
}
.pac-tarefa-card:hover { box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.pac-tarefa-concluida { opacity: .65; }
.pac-tarefa-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .5rem;
}
.pac-tarefa-badges { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.pac-badge {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .2rem .55rem; border-radius: 999px;
  font-size: .72rem; font-weight: 600;
}
.pac-prio-badge {
  display: inline-flex; align-items: center;
  padding: .18rem .5rem; border-radius: 999px;
  font-size: .68rem; font-weight: 700; text-transform: uppercase;
}
.pac-tarefa-bpa {
  font-size: .68rem; color: #7c3aed;
  background: #f5f3ff; border-radius: 999px;
  padding: .15rem .45rem;
}
.pac-tarefa-acoes { display: flex; gap: .35rem; }
.pac-btn-acao {
  width: 28px; height: 28px;
  border-radius: 6px;
  border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: .75rem; transition: all .15s;
}
.pac-btn-executar { background: #dcfce7; color: #15803d; }
.pac-btn-executar:hover { background: #22c55e; color: #fff; }
.pac-btn-editar { background: #dbeafe; color: #1d4ed8; }
.pac-btn-editar:hover { background: #3b82f6; color: #fff; }
.pac-btn-cancelar { background: #fee2e2; color: #991b1b; }
.pac-btn-cancelar:hover { background: #ef4444; color: #fff; }
.pac-btn-hist { background: #f3f4f6; color: #4b5563; }
.pac-btn-hist:hover { background: #6b7280; color: #fff; }
.pac-tarefa-desc {
  font-size: .9rem; font-weight: 600; color: #1e293b;
  margin-bottom: .4rem;
}
.pac-tarefa-meta {
  display: flex; gap: .65rem; flex-wrap: wrap; align-items: center;
}
.pac-tarefa-dt, .pac-tarefa-sigtap, .pac-tarefa-prof, .pac-tarefa-setor, .pac-tarefa-period {
  font-size: .73rem; color: #64748b;
  display: flex; align-items: center; gap: .25rem;
}
.pac-tarefa-sigtap { color: #7c3aed; }
.pac-tarefa-bpa { font-size: .7rem; color: #7c3aed; }
.pac-tarefa-obs {
  margin-top: .45rem; font-size: .78rem;
  color: #64748b; background: #f8fafc;
  border-left: 3px solid #c4b5fd;
  padding: .3rem .6rem; border-radius: 0 4px 4px 0;
}
.pac-tarefa-executado {
  margin-top: .45rem; font-size: .75rem; color: #15803d;
  display: flex; align-items: center; gap: .35rem;
}

/* Hint lista vazio */
.pac-lista-hint, .pac-col-placeholder {
  background: #faf5ff;
  border-radius: 10px;
  border: 1.5px dashed #ddd6fe;
  padding: 2.5rem 1rem;
  text-align: center;
  display: flex; flex-direction: column; align-items: center;
}

/* Modal PAC */
.pac-modal-header {
  background: linear-gradient(135deg,#4f46e5,#7c3aed) !important;
  color: #fff !important;
}
.pac-modal-header .modal-close { color: rgba(255,255,255,.8) !important; }
.pac-modal-atend-info {
  background: #f5f3ff;
  border: 1px solid #ede9fe;
  border-radius: 8px;
  padding: .55rem .85rem;
  font-size: .85rem;
  color: #4c1d95;
  margin-bottom: .85rem;
  display: flex; align-items: center; gap: .5rem;
}
.pac-check-label {
  display: flex; align-items: center; gap: .55rem;
  cursor: pointer; font-size: .85rem;
  background: #f5f3ff; border: 1px solid #ddd6fe;
  border-radius: 8px; padding: .6rem .85rem;
}
.pac-check-label input[type=checkbox] { width: 16px; height: 16px; }

/* SIGTAP sugestões inline */
.pac-sigtap-item {
  display: flex; align-items: flex-start; gap: .65rem;
  padding: .5rem .85rem; cursor: pointer;
  border-bottom: 1px solid #f1f5f9;
  transition: background .12s;
}
.pac-sigtap-item:hover { background: #f5f3ff; }
.pac-sigtap-cod {
  font-family: monospace; font-size: .78rem;
  color: #7c3aed; background: #ede9fe;
  padding: .15rem .4rem; border-radius: 4px;
  flex-shrink: 0;
}
.pac-sigtap-desc { font-size: .8rem; color: #374151; }

/* Modal SIGTAP completo (PAC) */
.pac-sigtap-full-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0,0,0,.55); backdrop-filter: blur(2px);
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
}
.pac-sigtap-full-modal {
  background: #fff; border-radius: 14px;
  width: 100%; max-width: 900px;
  max-height: 88vh; display: flex; flex-direction: column;
  box-shadow: 0 24px 64px rgba(0,0,0,.22);
  overflow: hidden;
}
.pac-sigtap-full-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 1.25rem;
  background: linear-gradient(135deg, #7c3aed, #a855f7);
  color: #fff; font-weight: 700; font-size: 1rem;
  flex-shrink: 0;
}
.pac-sigtap-full-body {
  padding: 1rem 1.25rem;
  overflow-y: auto; flex: 1;
}
.pac-sigtap-full-footer {
  padding: .75rem 1.25rem;
  border-top: 1px solid #e2e8f0;
  display: flex; align-items: center; justify-content: space-between;
  flex-shrink: 0; background: #f8fafc;
}
.pac-sigtap-full-section-label {
  font-size: .72rem; font-weight: 700; letter-spacing: .07em;
  color: #64748b; text-transform: uppercase;
  display: flex; align-items: center; gap: .35rem;
  margin-bottom: .45rem;
}
.pac-sigtap-full-select { width: 100%; }
.pac-sigtap-full-search-icon {
  display: flex; align-items: center; justify-content: center;
  background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 8px;
  width: 38px; height: 38px; flex-shrink: 0; color: #94a3b8;
}
.pac-sigtap-full-search { flex: 1; }
.pac-sigtap-full-lista {
  min-height: 200px; max-height: 48vh;
  overflow-y: auto;
}
.pac-sigtap-full-placeholder {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; color: #94a3b8; font-size: .88rem;
  text-align: center; padding: 3rem 1rem;
}
.pac-sigtap-full-loading {
  display: flex; align-items: center; gap: .5rem;
  justify-content: center; color: #7c3aed; padding: 2rem;
}
.pac-sigtap-full-group-header {
  display: flex; align-items: center; justify-content: space-between;
  background: #f1f5f9; border-left: 3px solid #7c3aed;
  padding: .5rem .85rem; margin: .6rem 0 .35rem;
  font-size: .73rem; font-weight: 700; color: #334155;
  letter-spacing: .05em;
}
.pac-sigtap-full-count {
  font-size: .7rem; color: #7c3aed;
  background: #ede9fe; padding: .15rem .55rem; border-radius: 10px;
}
.pac-sigtap-full-group-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem;
  margin-bottom: .25rem;
}
@media(max-width: 640px) {
  .pac-sigtap-full-group-grid { grid-template-columns: 1fr; }
}
.pac-sigtap-full-item {
  border: 1.5px solid #e2e8f0; border-radius: 8px;
  padding: .65rem .85rem; cursor: pointer;
  transition: border-color .15s, background .15s, box-shadow .15s;
  background: #fff;
}
.pac-sigtap-full-item:hover {
  border-color: #7c3aed; background: #faf5ff;
  box-shadow: 0 2px 8px rgba(124,58,237,.12);
}
.pac-sigtap-full-item-nome {
  font-size: .8rem; font-weight: 600; color: #1e293b;
  line-height: 1.3; margin-bottom: .3rem;
}
.pac-sigtap-full-item-cod {
  display: inline-block; font-family: monospace;
  font-size: .72rem; color: #7c3aed;
  background: #ede9fe; padding: .1rem .4rem; border-radius: 4px;
}
.pac-sigtap-full-item-sub {
  font-size: .7rem; color: #94a3b8; margin-top: .25rem;
}
.pac-sigtap-full-hint {
  font-size: .75rem; color: #94a3b8;
  display: flex; align-items: center; gap: .3rem;
}

/* Execução confirmação */
.pac-exec-tarefa-desc {
  font-size: 1rem; font-weight: 700; color: #1e293b;
  background: #f0fdf4; border-left: 3px solid #22c55e;
  padding: .6rem .85rem; border-radius: 0 6px 6px 0;
  margin-bottom: .75rem;
}
.pac-exec-sigtap {
  font-size: .82rem; color: #7c3aed;
  background: #f5f3ff; border-radius: 6px;
  padding: .4rem .7rem; margin-bottom: .6rem;
}
.pac-exec-bpa-aviso {
  font-size: .8rem; color: #5b21b6;
  background: #ede9fe; border-radius: 6px;
  padding: .45rem .75rem; margin-bottom: .6rem;
  display: flex; align-items: center; gap: .45rem;
}

/* Histórico */
.pac-hist-tarefa-desc {
  font-weight: 600; color: #1e293b;
  background: #f5f3ff; border-left: 3px solid #7c3aed;
  padding: .5rem .85rem; border-radius: 0 6px 6px 0;
  margin-bottom: .85rem; font-size: .9rem;
}
.pac-hist-list { display: flex; flex-direction: column; gap: .5rem; }
.pac-hist-item {
  display: flex; gap: .75rem; align-items: flex-start;
  background: #fafafa; border: 1px solid #e2e8f0;
  border-radius: 8px; padding: .65rem .85rem;
}
.pac-hist-info { flex: 1; }
.pac-hist-hora { font-size: .8rem; font-weight: 600; color: #374151; margin-bottom: .2rem; }
.pac-hist-prof { font-size: .78rem; color: #64748b; }
.pac-hist-obs { font-size: .78rem; color: #64748b; margin-top: .2rem; }
.pac-hist-bpa { font-size: .78rem; color: #7c3aed; margin-top: .2rem; }

/* Visão de hoje */
.pac-hoje-list { display: flex; flex-direction: column; gap: .45rem; }
.pac-hoje-item {
  display: flex; gap: .75rem; align-items: flex-start;
  background: #fff; border: 1px solid #e2e8f0;
  border-radius: 8px; padding: .7rem .85rem;
  cursor: pointer; transition: background .15s;
}
.pac-hoje-item:hover { background: #f5f3ff; border-color: #c4b5fd; }
.pac-hoje-risco { width: 5px; flex-shrink: 0; border-radius: 999px; min-height: 40px; }
.pac-hoje-info { flex: 1; }
.pac-hoje-nome { font-weight: 700; font-size: .88rem; margin-bottom: .2rem; }
.pac-hoje-desc { font-size: .82rem; color: #374151; }

/* ── Botões de administração/histórico nas seções de enfermagem ── */
.enf-adm-btn-aguard {
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: .4rem .75rem;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .35rem;
  transition: all .15s;
  white-space: nowrap;
}
.enf-adm-btn-aguard:hover {
  background: linear-gradient(135deg, #6d28d9, #5b21b6);
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(109,40,217,.35);
}

.enf-hist-btn {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: .3rem .55rem;
  font-size: .73rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .3rem;
  transition: all .15s;
  white-space: nowrap;
}
.enf-hist-btn:hover {
  background: #e2e8f0;
  color: #1e293b;
}

/* Histórico inline na seção Já Administrados */
.enf-hist-inline {
  margin-top: .6rem;
  border-top: 1px dashed #e2e8f0;
  padding-top: .5rem;
}
.enf-hist-titulo {
  font-size: .72rem;
  font-weight: 700;
  color: #4f46e5;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: .4rem;
  display: flex;
  align-items: center;
  gap: .35rem;
}
.enf-hist-dose {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .35rem 0;
  border-bottom: 1px solid #f1f5f9;
}
.enf-hist-dose:last-child { border-bottom: none; }
.enf-hist-dose-num {
  font-size: .68rem;
  font-weight: 800;
  color: #7c3aed;
  background: #ede9fe;
  border-radius: 999px;
  min-width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.enf-hist-dose-info {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
}
.enf-hist-dose-hora {
  font-size: .75rem;
  font-weight: 600;
  color: #334155;
}
.enf-hist-dose-prof {
  font-size: .73rem;
  color: #64748b;
}
.enf-hist-dose-obs {
  font-size: .72rem;
  color: #64748b;
  font-style: italic;
}
.enf-hist-vazio {
  font-size: .78rem;
  color: #94a3b8;
  padding: .4rem 0;
  display: flex;
  align-items: center;
  gap: .35rem;
}

/* Histórico em modal (para AGUARDANDO_PROXIMA_DOSE) */
.enf-hist-dose-modal {
  background: #f8fafc;
  border-radius: 8px;
  padding: .6rem .85rem;
  border: 1px solid #e2e8f0;
}
.enf-hist-num-modal {
  font-size: .78rem;
  font-weight: 800;
  color: #fff;
  background: #7c3aed;
  border-radius: 50%;
  min-width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════════
   HISTÓRICO DE ATENDIMENTOS MÉDICOS & TRIAGENS — CSS
   ═══════════════════════════════════════════════════════════════════ */

/* ── Página base ── */
.hist-page {
  padding: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}
.hist-page-header {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.5rem;
}
.hist-page-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: #1e293b;
  letter-spacing: -.02em;
}

/* ── Card de busca ── */
.hist-busca-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 1px 6px rgba(0,0,0,.07);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.25rem;
  border: 1px solid #e2e8f0;
}
.hist-busca-label {
  font-size: .75rem;
  font-weight: 700;
  color: #475569;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: .4rem;
  display: block;
}
.hist-busca-lista {
  background: #fff;
  border: 1px solid #cbd5e1;
  border-top: none;
  border-radius: 0 0 8px 8px;
  max-height: 220px;
  overflow-y: auto;
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  position: absolute;
  z-index: 200;
  width: 100%;
}
.hist-busca-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .65rem 1rem;
  cursor: pointer;
  transition: background .15s;
}
.hist-busca-item:hover {
  background: #f0f7ff;
}
.hist-busca-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1e40af, #3b82f6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: .85rem;
  font-weight: 700;
  flex-shrink: 0;
}

/* ── Banner do paciente ── */
.hist-pac-banner {
  background: linear-gradient(135deg, #1e3a5f 0%, #1e40af 60%, #2563eb 100%);
  border-radius: 14px;
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
  color: #fff;
  box-shadow: 0 4px 16px rgba(30,64,175,.25);
  position: relative;
  overflow: hidden;
}
.hist-pac-banner::before {
  content: '';
  position: absolute;
  right: -40px;
  top: -40px;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
}
.hist-pac-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 800;
  flex-shrink: 0;
  border: 2px solid rgba(255,255,255,.35);
  letter-spacing: -.02em;
}
.hist-pac-dados {
  flex: 1;
  min-width: 0;
}
.hist-pac-nome {
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: -.02em;
  margin-bottom: .2rem;
}
.hist-pac-meta {
  font-size: .78rem;
  color: rgba(255,255,255,.8);
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
}
.hist-alerta-alergia {
  background: rgba(239,68,68,.2);
  border: 1px solid rgba(239,68,68,.5);
  color: #fca5a5;
  font-size: .72rem;
  font-weight: 700;
  padding: .2rem .6rem;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin-top: .25rem;
}
.hist-tag-blood {
  background: rgba(220,38,38,.2);
  border: 1px solid rgba(220,38,38,.4);
  color: #fca5a5;
  font-size: .7rem;
  font-weight: 700;
  padding: .15rem .5rem;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  gap: .25rem;
}

/* ── Cards de resumo (stats) ── */
.hist-cards-resumo {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: .85rem;
  margin-bottom: 1.25rem;
}
.hist-card-stat {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  padding: 1rem 1.1rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
  display: flex;
  flex-direction: column;
  gap: .2rem;
  transition: transform .15s, box-shadow .15s;
}
.hist-card-stat:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,.1);
}
.hist-card-stat-val {
  font-size: 1.5rem;
  font-weight: 800;
  color: #1e40af;
  line-height: 1.1;
}
.hist-card-stat-lbl {
  font-size: .7rem;
  font-weight: 600;
  color: #64748b;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.hist-card-stat-info {
  font-size: .72rem;
  color: #94a3b8;
  margin-top: .15rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Card de filtros ── */
.hist-filtros-card {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: flex-end;
}

/* ── Cards de atendimento ── */
.hist-atend-card {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  margin-bottom: .85rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
  overflow: hidden;
  transition: box-shadow .15s;
}
.hist-atend-card:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,.09);
}
.hist-atend-header {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .85rem 1.1rem;
  cursor: pointer;
  user-select: none;
}
.hist-atend-risco-bar {
  width: 5px;
  align-self: stretch;
  border-radius: 4px;
  flex-shrink: 0;
}
.hist-atend-header-info {
  flex: 1;
  min-width: 0;
}
.hist-atend-num {
  font-size: .72rem;
  font-weight: 700;
  color: #64748b;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.hist-atend-meta {
  font-size: .78rem;
  color: #475569;
  display: flex;
  flex-wrap: wrap;
  gap: .3rem .8rem;
  margin-top: .15rem;
}
.hist-atend-queixa {
  font-size: .82rem;
  color: #334155;
  font-weight: 500;
  margin-top: .2rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.hist-atend-actions {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-shrink: 0;
}
.hist-expand-btn {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .15s, transform .2s;
  font-size: .8rem;
  color: #475569;
}
.hist-expand-btn.open {
  background: #e0f2fe;
  border-color: #7dd3fc;
  color: #0369a1;
  transform: rotate(180deg);
}

/* ── Corpo expandido do atendimento ── */
.hist-atend-body {
  border-top: 1px solid #f1f5f9;
  padding: 1rem 1.25rem 1.25rem;
  display: none;
  background: #fafbff;
}
.hist-atend-body.open {
  display: block;
}
.hist-atend-loading {
  text-align: center;
  padding: 1.5rem;
  color: #94a3b8;
  font-size: .82rem;
}
.hist-detalhe-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 640px) {
  .hist-detalhe-grid { grid-template-columns: 1fr; }
}

/* ── Seções de detalhe ── */
.hist-sec {
  margin-bottom: 1rem;
}
.hist-sec-title {
  font-size: .72rem;
  font-weight: 700;
  color: #1e40af;
  letter-spacing: .07em;
  text-transform: uppercase;
  margin-bottom: .6rem;
  display: flex;
  align-items: center;
  gap: .4rem;
  border-bottom: 1px solid #dbeafe;
  padding-bottom: .35rem;
}
.hist-sec-body {
  background: #f8fafc;
  border-radius: 8px;
  padding: .7rem .9rem;
  border: 1px solid #e2e8f0;
}

/* ── Campos ── */
.hist-campo {
  display: flex;
  gap: .4rem;
  margin-bottom: .4rem;
  flex-wrap: wrap;
}
.hist-campo-label {
  font-size: .7rem;
  font-weight: 700;
  color: #64748b;
  letter-spacing: .04em;
  text-transform: uppercase;
  flex-shrink: 0;
  padding-top: .05rem;
}
.hist-campo-val {
  font-size: .82rem;
  color: #1e293b;
  line-height: 1.45;
}

/* ── Evoluções ── */
.hist-evolucao-item {
  background: #fff;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  margin-bottom: .6rem;
  overflow: hidden;
}
.hist-evolucao-header {
  display: flex;
  justify-content: space-between;
  padding: .5rem .8rem;
  background: #f1f5f9;
  font-size: .72rem;
  color: #475569;
  font-weight: 600;
  border-bottom: 1px solid #e2e8f0;
}
.hist-evolucao-txt {
  padding: .6rem .8rem;
  font-size: .82rem;
  color: #334155;
  line-height: 1.5;
  white-space: pre-line;
}

/* ── Tabelas ── */
.hist-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .78rem;
}
.hist-table thead tr {
  background: #f1f5f9;
}
.hist-table th {
  padding: .45rem .7rem;
  text-align: left;
  font-weight: 700;
  color: #475569;
  letter-spacing: .04em;
  font-size: .7rem;
  text-transform: uppercase;
  border-bottom: 1px solid #e2e8f0;
}
.hist-table td {
  padding: .45rem .7rem;
  border-bottom: 1px solid #f1f5f9;
  color: #334155;
  vertical-align: top;
}
.hist-table tbody tr:hover td {
  background: #f8faff;
}

/* ── Badges e tags ── */
.hist-badge-status {
  display: inline-flex;
  align-items: center;
  padding: .15rem .55rem;
  border-radius: 20px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.hist-badge-risco {
  display: inline-flex;
  align-items: center;
  padding: .18rem .6rem;
  border-radius: 20px;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.hist-tag {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  font-size: .7rem;
  font-weight: 600;
  padding: .15rem .5rem;
  border-radius: 20px;
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
}
.hist-tag-danger {
  background: #fef2f2;
  color: #dc2626;
  border-color: #fecaca;
}
.hist-tag-warn {
  background: #fffbeb;
  color: #d97706;
  border-color: #fde68a;
}

/* ── Estado vazio ── */
.hist-empty {
  text-align: center;
  padding: 3rem 2rem;
  color: #94a3b8;
}
.hist-empty i {
  font-size: 2.5rem;
  margin-bottom: .75rem;
  display: block;
  opacity: .4;
}
.hist-empty p {
  font-size: .9rem;
}

/* ── Modal prontuário ── */
.hist-pront-modal {
  max-width: 1000px;
  width: 95vw;
}
.hist-pront-tabs {
  display: flex;
  gap: .25rem;
  border-bottom: 2px solid #e2e8f0;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.hist-pront-tab {
  padding: .55rem 1rem;
  font-size: .8rem;
  font-weight: 600;
  color: #64748b;
  border: none;
  background: none;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  border-radius: 6px 6px 0 0;
  transition: color .15s, border-color .15s, background .15s;
}
.hist-pront-tab:hover {
  color: #1e40af;
  background: #f0f7ff;
}
.hist-pront-tab.active {
  color: #1e40af;
  border-bottom-color: #1e40af;
  font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════════════
   TRIAGENS — CSS
   ═══════════════════════════════════════════════════════════════════ */

/* ── Card de triagem ── */
.triag-card {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  margin-bottom: .85rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
  overflow: hidden;
  transition: box-shadow .15s;
}
.triag-card:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,.09);
}
.triag-card-risco-bar {
  height: 4px;
  width: 100%;
}
.triag-card-body {
  padding: 1rem 1.25rem;
}
.triag-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: .7rem;
}
.triag-card-data {
  font-size: .78rem;
  color: #64748b;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: .35rem;
}
.triag-card-prof {
  font-size: .75rem;
  color: #475569;
  margin-top: .15rem;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.triag-risco-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .25rem .75rem;
  border-radius: 20px;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
}
.triag-queixa {
  font-size: .88rem;
  font-weight: 600;
  color: #1e293b;
  margin-bottom: .6rem;
  line-height: 1.45;
}

/* ── Grid sinais vitais ── */
.triag-sv-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
  gap: .5rem;
  margin-bottom: .8rem;
}
.triag-sv-item {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: .45rem .6rem;
  text-align: center;
}
.triag-sv-item .sv-val {
  font-size: 1rem;
  font-weight: 800;
  color: #1e293b;
  line-height: 1.15;
}
.triag-sv-item .sv-lbl {
  font-size: .62rem;
  font-weight: 600;
  color: #64748b;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-top: .1rem;
}

/* ── Alertas clínicos ── */
.triag-alertas {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .5rem;
}
.triag-alerta-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .7rem;
  font-weight: 700;
  padding: .2rem .6rem;
  border-radius: 20px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.triag-alerta-chip.avc    { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }
.triag-alerta-chip.iam    { background: #fff7ed; color: #ea580c; border: 1px solid #fed7aa; }
.triag-alerta-chip.sepse  { background: #fefce8; color: #ca8a04; border: 1px solid #fde047; }
.triag-alerta-chip.gest   { background: #fdf4ff; color: #9333ea; border: 1px solid #e9d5ff; }
.triag-alerta-chip.trauma { background: #fffbeb; color: #b45309; border: 1px solid #fde68a; }
.triag-alerta-chip.geral  { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }

/* ── Grid extra (dor/comorbidades) ── */
.triag-extra-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
  margin-top: .5rem;
}
@media (max-width: 520px) {
  .triag-extra-grid { grid-template-columns: 1fr; }
  .triag-sv-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ── Comorbidades tags ── */
.triag-comorbidade-tag {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  font-size: .68rem;
  font-weight: 600;
  padding: .12rem .45rem;
  border-radius: 4px;
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
  margin: .1rem;
}

/* ── Paginação do histórico ── */
.hist-paginacao {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  margin-top: 1.25rem;
  flex-wrap: wrap;
}
.hist-pag-info {
  font-size: .78rem;
  color: #64748b;
  margin-right: .5rem;
}

/* ═══════════════════════════════════════════════════════════════════
   MÓDULO PROFISSIONAIS — CSS
   ═══════════════════════════════════════════════════════════════════ */

/* ── Página base ── */
.prof-page {
  padding: 1.5rem;
  max-width: 1280px;
  margin: 0 auto;
}
.prof-page-header {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.prof-page-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, #1e40af, #3b82f6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.2rem;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(30,64,175,.3);
}
.prof-page-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #1e293b;
  letter-spacing: -.02em;
  line-height: 1.2;
}
.prof-page-sub {
  font-size: .78rem;
  color: #64748b;
  margin-top: .15rem;
}

/* ── Filtros ── */
.prof-filtros-card {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  padding: .85rem 1.1rem;
  margin-bottom: 1.1rem;
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: center;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}

/* ── Tabela card ── */
.prof-table-card {
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e2e8f0;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(0,0,0,.05);
}
.prof-table-info {
  padding: .6rem 1.1rem;
  font-size: .78rem;
  color: #64748b;
  border-bottom: 1px solid #f1f5f9;
  background: #f8fafc;
}
.prof-table-scroll {
  overflow-x: auto;
}
.prof-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .82rem;
}
.prof-table thead tr {
  background: #f1f5f9;
}
.prof-table th {
  padding: .55rem .85rem;
  text-align: left;
  font-weight: 700;
  color: #475569;
  font-size: .72rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  border-bottom: 1px solid #e2e8f0;
  white-space: nowrap;
}
.prof-table td {
  padding: .65rem .85rem;
  border-bottom: 1px solid #f1f5f9;
  color: #334155;
  vertical-align: middle;
}
.prof-table tbody tr:hover td {
  background: #f8faff;
}

/* ── Avatar ── */
.prof-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1e40af, #3b82f6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: .82rem;
  font-weight: 800;
  flex-shrink: 0;
  letter-spacing: -.03em;
}
.prof-nome {
  font-weight: 600;
  font-size: .88rem;
  color: #1e293b;
}
.prof-sub {
  font-size: .72rem;
  color: #64748b;
  margin-top: .1rem;
}

/* ── Badges origem ── */
.prof-badge-origem {
  display: inline-flex;
  align-items: center;
  font-size: .68rem;
  font-weight: 700;
  padding: .15rem .5rem;
  border-radius: 20px;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.prof-badge-origem.cnes   { background: #dbeafe; color: #1e40af; }
.prof-badge-origem.manual { background: #f0fdf4; color: #16a34a; }
.prof-badge-origem.import { background: #f3e8ff; color: #7c3aed; }

/* ── Paginação ── */
.prof-pag {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .85rem;
  border-top: 1px solid #f1f5f9;
  flex-wrap: wrap;
}

/* ── Empty state ── */
.prof-empty {
  text-align: center;
  padding: 4rem 2rem;
  color: #94a3b8;
}
.prof-empty i {
  font-size: 3rem;
  margin-bottom: .75rem;
  display: block;
  opacity: .3;
}
.prof-empty p { font-size: .9rem; margin-bottom: 1rem; }

/* ── Modal ── */
.prof-modal-box {
  max-width: 820px;
  width: 95vw;
}

/* ── Form sections ── */
.prof-form-section {
  background: #f8fafc;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}
.prof-form-sec-title {
  font-size: .73rem;
  font-weight: 700;
  color: #1e40af;
  letter-spacing: .07em;
  text-transform: uppercase;
  margin-bottom: .85rem;
  display: flex;
  align-items: center;
  gap: .4rem;
  border-bottom: 1px solid #dbeafe;
  padding-bottom: .4rem;
}
.prof-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: .65rem;
}

/* ── Permissões grid ── */
.prof-perm-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: .4rem;
}
.prof-perm-item {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .8rem;
  color: #334155;
  cursor: pointer;
  padding: .3rem .5rem;
  border-radius: 6px;
  transition: background .12s;
}
.prof-perm-item:hover { background: #f0f7ff; }
.prof-perm-item input { accent-color: #1e40af; }

/* ── Detalhe seção (CBOs, Vínculos) ── */
.prof-detalhe-sec {
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  padding: 1rem 1.1rem;
}
.prof-detalhe-sec-title {
  font-size: .73rem;
  font-weight: 700;
  color: #1e40af;
  letter-spacing: .07em;
  text-transform: uppercase;
  margin-bottom: .75rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}

/* ── Usuário vinculado card ── */
.prof-usr-vinculado {
  display: flex;
  align-items: center;
  gap: .85rem;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 10px;
  padding: .85rem 1rem;
  margin-bottom: 1rem;
}
.prof-usr-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #22c55e;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.1rem;
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════════
   IMPORTAÇÃO CNES — CSS
   ═══════════════════════════════════════════════════════════════════ */

.prof-cnes-busca-card {
  background: #fff;
  border-radius: 14px;
  border: 1px solid #bfdbfe;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 2px 8px rgba(30,64,175,.08);
}

.prof-cnes-result-card {
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e2e8f0;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(0,0,0,.05);
}
.prof-cnes-result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #f1f5f9;
  background: #f8fafc;
  flex-wrap: wrap;
  gap: .6rem;
}

/* Offline card */
.prof-cnes-offline-card {
  text-align: center;
  padding: 3rem 2rem;
  background: #fff;
  border-radius: 14px;
  border: 1px solid #fde68a;
  background: #fffbeb;
}

/* Row status CNES */
.cnes-row-novo td { background: #f0fdf4 !important; }
.cnes-row-divergente td { background: #fffbeb !important; }

/* CNES diff badge */
.prof-cnes-diff-badge {
  display: inline-flex;
  font-size: .62rem;
  font-weight: 700;
  padding: .1rem .4rem;
  border-radius: 20px;
  letter-spacing: .04em;
  text-transform: uppercase;
  background: #f1f5f9;
  color: #475569;
}
.prof-cnes-diff-badge.nov { background: #dcfce7; color: #16a34a; }
.prof-cnes-diff-badge.dif { background: #fef3c7; color: #d97706; }

/* Progress */
#cnes-progress { padding: 0 1.25rem 1.25rem; }

/* ── Resumo importação ── */
.prof-import-resumo {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 12px;
  padding: 1.1rem 1.25rem;
  margin: 0 1.25rem 1.25rem;
}
.prof-import-resumo-title {
  font-weight: 700;
  font-size: .9rem;
  margin-bottom: .75rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.prof-import-grid {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.prof-import-stat {
  text-align: center;
  min-width: 70px;
}
.prof-import-stat-val {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.1;
}
.prof-import-stat-lbl {
  font-size: .65rem;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* ── Vínculos agrupados ── */
.prof-vinc-grupo {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  margin-bottom: 1rem;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.prof-vinc-grupo-title {
  background: #f1f5f9;
  padding: .7rem 1.1rem;
  font-size: .82rem;
  color: #1e293b;
  border-bottom: 1px solid #e2e8f0;
  display: flex;
  align-items: center;
  gap: .4rem;
}

/* ══════════════════════════════════════════════════════════════
   TELA CBO — Abas SIGTAP × CBO-S e Tabela de Especialidades
   ══════════════════════════════════════════════════════════════ */

/* Botões de aba */
.cbo-aba-btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .6rem 1.1rem;
  border: none;
  background: none;
  font-size: .84rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
  position: relative;
  top: 2px; /* alinha com o border-bottom do container */
}
.cbo-aba-btn:hover { color: #3b82f6; }
.cbo-aba-active {
  color: #1d4ed8;
  border-bottom-color: #3b82f6;
}

/* Badge de contagem no botão de aba */
.cbo-aba-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #10b981;
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  border-radius: 10px;
  padding: .1rem .45rem;
  min-width: 40px;
}

/* Filtro checkbox "Somente CBO-S" */
#cbos-so-cbos:checked + i,
label:has(#cbos-so-cbos:checked) { color: #3b82f6 !important; }

/* Linha CBO-S marcada — fundo verde suave */
.data-table tbody tr[style*="background:#f0fdf4"] { transition: background .2s; }

/* Toggle switch genérico (usado nos tipos de atendimento) */
.toggle-switch { position: relative; display: inline-block; width: 44px; height: 22px; }
.toggle-switch input { opacity: 0; width: 0; height: 0; }
.toggle-slider {
  position: absolute; cursor: pointer; inset: 0;
  background: #cbd5e1; border-radius: 22px;
  transition: background .2s;
}
.toggle-slider:before {
  content: '';
  position: absolute;
  width: 16px; height: 16px;
  left: 3px; bottom: 3px;
  background: #fff;
  border-radius: 50%;
  transition: transform .2s;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.toggle-switch input:checked + .toggle-slider { background: #10b981; }
.toggle-switch input:checked + .toggle-slider:before { transform: translateX(22px); }

/* Tabela tipos de atendimento — células compactas */
#cfg-tipos-lista .data-table td { padding: .55rem .75rem; vertical-align: middle; }

/* ═══════════════════════════════════════════════════════════════
   ROUND 6 — Fix Modal Profissional + Config Cards de Atendimento
   ═══════════════════════════════════════════════════════════════ */

/* ── Fix Modal Profissional: garantir scroll interno correto ─── */
#prof-modal .modal {
  max-height: 92vh;
  display: flex;
  flex-direction: column;
}
#prof-modal .modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 1.1rem 1.25rem;
  scroll-behavior: smooth;
}
/* Tabs dentro do modal de profissional */
.prof-modal-tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid #e2e8f0;
  margin-bottom: 1.1rem;
  background: #f8fafc;
  border-radius: 8px 8px 0 0;
  overflow: hidden;
}
.prof-modal-tab {
  flex: 1;
  padding: .55rem .75rem;
  font-size: .78rem;
  font-weight: 600;
  color: #64748b;
  border: none;
  background: transparent;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  transition: all .15s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
}
.prof-modal-tab:hover { background: #f0f7ff; color: #1d4ed8; }
.prof-modal-tab.active { color: #1d4ed8; border-bottom-color: #3b82f6; background: #eff6ff; }

/* ── Cards de Atendimento — Config ──────────────────────────── */
.cfg-card-item {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  margin-bottom: .75rem;
  overflow: hidden;
  transition: box-shadow .15s;
}
.cfg-card-item:hover { box-shadow: 0 2px 10px rgba(0,0,0,.08); }
.cfg-card-header-strip {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .6rem 1rem;
  border-left: 4px solid #3b82f6;
}
.cfg-card-icon-badge {
  width: 32px; height: 32px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem;
  color: #fff;
  flex-shrink: 0;
}
.cfg-card-title { font-weight: 700; font-size: .88rem; color: #1e293b; flex: 1; }
.cfg-card-controls {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}
.cfg-card-body {
  padding: .75rem 1rem;
  border-top: 1px solid #f1f5f9;
  background: #fafafa;
  display: none;
}
.cfg-card-body.open { display: block; }
.cfg-card-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: .6rem;
}
.cfg-card-label {
  font-size: .75rem;
  font-weight: 600;
  color: #475569;
  min-width: 130px;
}
.cfg-cbos-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .4rem;
}
.cfg-cbo-tag {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  border-radius: 20px;
  padding: .15rem .55rem;
  font-size: .72rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.cfg-cbo-tag button {
  border: none; background: none; color: #ef4444; cursor: pointer;
  padding: 0; font-size: .7rem; line-height: 1;
}

/* ── Pron-card colapso (prontuário) ─────────────────────────── */
.pron-card-collapsible .pron-card-body {
  transition: max-height .25s ease, opacity .2s;
  overflow: hidden;
  max-height: 9999px;
  opacity: 1;
}
.pron-card-collapsible.collapsed .pron-card-body {
  max-height: 0 !important;
  opacity: 0;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.pron-card-collapse-btn {
  margin-left: auto;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.3);
  color: #fff;
  border-radius: 6px;
  width: 26px; height: 26px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  font-size: .75rem;
  transition: background .15s, transform .2s;
  flex-shrink: 0;
}
.pron-card-collapse-btn:hover { background: rgba(255,255,255,.25); }
.pron-card-collapsible.collapsed .pron-card-collapse-btn { transform: rotate(180deg); }

/* ── Profissional — campo vinculo-usuario no form principal ─── */
.prof-usr-vinculo-inline {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  padding: .6rem .9rem;
  display: flex;
  align-items: center;
  gap: .65rem;
  font-size: .82rem;
}
.prof-usr-vinculo-inline i { color: #16a34a; font-size: 1rem; }

/* ── Drag-and-drop reordenação de cards ────────────────────────── */
.cfg-drag-handle {
  cursor: grab;
  color: #cbd5e1;
  font-size: 1rem;
  padding: .2rem .35rem;
  border-radius: 4px;
  transition: color .15s, background .15s;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.cfg-drag-handle:hover { color: #64748b; background: #f1f5f9; }
.cfg-card-draggable { transition: box-shadow .15s, opacity .15s; cursor: default; }
.cfg-card-draggable.cfg-drag-dragging {
  opacity: .45;
  box-shadow: 0 8px 24px rgba(59,130,246,.25);
  cursor: grabbing;
}
.cfg-card-draggable.cfg-drag-over {
  border-top: 2.5px solid #3b82f6 !important;
  background: #eff6ff !important;
  box-shadow: 0 0 0 2px rgba(59,130,246,.15);
}

/* ═══════════════════════════════════════════════════════════════════
   PROF-FORM-PAGE — Formulário de Profissional em Aba Interna
   ═══════════════════════════════════════════════════════════════════ */

/* Container raiz */
#prof-form-root {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

/* ── Barra de ações fixa no topo ─────────────────────────────── */
.pfp-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: linear-gradient(135deg, #1e3a5f 0%, #1e40af 100%);
  color: #fff;
  padding: .85rem 1.5rem;
  border-radius: 12px 12px 0 0;
  position: sticky;
  top: 0;
  z-index: 10;
  box-shadow: 0 2px 12px rgba(30,64,175,.25);
  flex-wrap: wrap;
}
.pfp-topbar-info {
  display: flex;
  align-items: center;
  gap: .85rem;
  min-width: 0;
}
.pfp-topbar-icon {
  width: 42px; height: 42px;
  background: rgba(255,255,255,.15);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.15rem;
  flex-shrink: 0;
}
.pfp-topbar-title {
  font-size: 1rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pfp-topbar-sub {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin-top: .2rem;
  flex-wrap: wrap;
}
.pfp-topbar-actions {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.pfp-topbar-actions .btn {
  font-size: .8rem;
  padding: .35rem .85rem;
  height: 34px;
}
.pfp-topbar-actions .btn-outline {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.3);
  color: rgba(255,255,255,.9);
}
.pfp-topbar-actions .btn-outline:hover {
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.5);
}
.pfp-topbar-actions .btn-primary {
  background: #fff;
  color: #1e40af;
  border-color: #fff;
  font-weight: 700;
}
.pfp-topbar-actions .btn-primary:hover {
  background: #eff6ff;
}

/* ── Badges na topbar ──────────────────────────────────────────── */
.pfp-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .72rem;
  font-weight: 600;
  padding: .15rem .55rem;
  border-radius: 20px;
}
.pfp-badge-gray {
  background: rgba(255,255,255,.15);
  color: rgba(255,255,255,.85);
  border: 1px solid rgba(255,255,255,.2);
}

/* ── Área de conteúdo com cards ──────────────────────────────── */
.pfp-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.25rem 1.5rem 2rem;
  background: #f1f5f9;
}

/* ── Card individual ─────────────────────────────────────────── */
.pfp-card {
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
  overflow: hidden;
}
.pfp-card-header {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem 1.1rem;
  background: linear-gradient(90deg, #f8fafc, #fff);
  border-bottom: 1px solid #e2e8f0;
  font-size: .8rem;
  font-weight: 700;
  color: #334155;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.pfp-card-header i {
  color: #3b82f6;
  font-size: .85rem;
}
.pfp-card-body {
  padding: 1.1rem 1.25rem;
}

/* ── Grid de campos ──────────────────────────────────────────── */
.pfp-grid {
  display: grid;
  gap: .85rem;
}
.pfp-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}
.pfp-col-full {
  grid-column: 1 / -1;
}
.pfp-req {
  color: #ef4444;
  font-size: .85em;
}

/* ── Seção de permissões assistenciais ───────────────────────── */
.pfp-perm-section {
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px dashed #e2e8f0;
}
.pfp-perm-title {
  font-size: .75rem;
  font-weight: 700;
  color: #475569;
  letter-spacing: .05em;
  text-transform: uppercase;
  margin-bottom: .75rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.pfp-perm-title i { color: #6366f1; }
.pfp-perm-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .5rem;
}
.pfp-perm-item {
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .5rem .75rem;
  border-radius: 8px;
  border: 1.5px solid #e2e8f0;
  cursor: pointer;
  font-size: .78rem;
  font-weight: 500;
  color: #64748b;
  transition: all .15s;
  background: #f8fafc;
  user-select: none;
}
.pfp-perm-item input { display: none; }
.pfp-perm-item i { font-size: .8rem; color: #94a3b8; }
.pfp-perm-item:hover { border-color: #93c5fd; background: #eff6ff; color: #1e40af; }
.pfp-perm-item:hover i { color: #3b82f6; }
.pfp-perm-item.pfp-perm-on {
  border-color: #3b82f6;
  background: #eff6ff;
  color: #1e40af;
  font-weight: 600;
}
.pfp-perm-item.pfp-perm-on i { color: #3b82f6; }

/* ── Card Usuário do Sistema ─────────────────────────────────── */
.pfp-usr-linked {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .85rem 1rem;
  background: #f0fdf4;
  border: 1.5px solid #86efac;
  border-radius: 10px;
}
.pfp-usr-linked-icon {
  width: 40px; height: 40px;
  background: #22c55e;
  color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.pfp-usr-empty {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .85rem 1rem;
  background: #fafafa;
  border: 1.5px dashed #cbd5e1;
  border-radius: 10px;
}
.pfp-usr-empty-icon {
  font-size: 1.5rem;
  color: #cbd5e1;
  flex-shrink: 0;
}

/* ── Rodapé com botões ───────────────────────────────────────── */
.pfp-footer-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 1.25rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-shadow: 0 -1px 8px rgba(0,0,0,.04);
}

/* ── Responsividade ──────────────────────────────────────────── */
@media (max-width: 900px) {
  .pfp-grid-3 { grid-template-columns: repeat(2, 1fr); }
  .pfp-perm-grid { grid-template-columns: repeat(2, 1fr); }
  .pfp-topbar { padding: .75rem 1rem; }
  .pfp-body { padding: 1rem; }
}
@media (max-width: 600px) {
  .pfp-grid-3 { grid-template-columns: 1fr; }
  .pfp-perm-grid { grid-template-columns: 1fr 1fr; }
  .pfp-topbar-actions { width: 100%; justify-content: flex-end; }
  .pfp-topbar-title { font-size: .9rem; }
}

/* ═══════════════════════════════════════════════════════════════
   OBSERVAÇÃO CLÍNICA — Cards, Botões, Abas e Modal
   ═══════════════════════════════════════════════════════════════ */

/* ── Grid de Cards ──────────────────────────────────────────── */
.obs-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1rem;
  padding: .25rem 0;
}

/* ── Card principal ─────────────────────────────────────────── */
.obs-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,.07);
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
  transition: box-shadow .2s, transform .15s;
}
.obs-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
  transform: translateY(-2px);
}

/* ── Header do card ─────────────────────────────────────────── */
.obs-card-header {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem .75rem;
  background: #f8fafc;
  border-bottom: 1px solid #f1f5f9;
}

/* ── Área de ações na base do card ──────────────────────────── */
.obs-card-actions {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem .75rem;
  border-top: 1px solid #f1f5f9;
  background: #fafafa;
  margin-top: auto;
}

/* ── Botão primário do card ─────────────────────────────────── */
.obs-btn-primary {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .45rem .75rem;
  background: linear-gradient(135deg, #0284c7, #0ea5e9);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .15s, transform .1s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.obs-btn-primary:hover { opacity: .9; transform: scale(1.02); }

/* ── Variante alerta (meds pendentes) ───────────────────────── */
.obs-btn-alert {
  background: linear-gradient(135deg, #dc2626, #ef4444) !important;
  animation: pulse-alert 2s infinite;
}
@keyframes pulse-alert {
  0%,100% { box-shadow: 0 0 0 0 rgba(239,68,68,.4); }
  50%      { box-shadow: 0 0 0 6px rgba(239,68,68,.0); }
}

/* ── Grupo de botões ícone ──────────────────────────────────── */
.obs-btn-group {
  display: flex;
  align-items: center;
  gap: .3rem;
}

/* ── Botão ícone individual ─────────────────────────────────── */
.obs-btn-ico {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  color: #475569;
  cursor: pointer;
  font-size: .8rem;
  transition: background .15s, color .15s, transform .1s;
}
.obs-btn-ico:hover {
  background: #e2e8f0;
  color: #1e293b;
  transform: scale(1.08);
}

/* ── Botão ícone — variante perigo (Alta/Desfecho) ──────────── */
.obs-btn-ico-danger {
  background: #fef2f2;
  border-color: #fca5a5;
  color: #dc2626;
}
.obs-btn-ico-danger:hover {
  background: #fee2e2;
  color: #b91c1c;
}

/* ── Barra de Abas do Modal ─────────────────────────────────── */
.obs-abas-bar {
  display: flex;
  align-items: center;
  gap: .25rem;
  padding: .5rem .75rem 0;
  background: #f8fafc;
  border-bottom: 2px solid #e2e8f0;
  flex-wrap: wrap;
}

/* ── Botão de aba ───────────────────────────────────────────── */
.obs-aba-btn {
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: .5rem .85rem;
  background: transparent;
  border: none;
  border-radius: 8px 8px 0 0;
  color: #64748b;
  font-size: .82rem;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s, color .15s;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
}
.obs-aba-btn:hover {
  background: #e2e8f0;
  color: #1e293b;
}

/* ── Aba ativa ──────────────────────────────────────────────── */
.obs-aba-active {
  color: #0284c7 !important;
  font-weight: 700 !important;
  border-bottom: 2px solid #0284c7 !important;
  background: #fff !important;
}

/* ── Aba perigo (Alta/Desfecho) ─────────────────────────────── */
.obs-aba-danger {
  color: #dc2626;
}
.obs-aba-danger:hover {
  background: #fef2f2;
  color: #b91c1c;
}
.obs-aba-danger.obs-aba-active {
  color: #dc2626 !important;
  border-bottom-color: #dc2626 !important;
}

/* ── Modal principal ────────────────────────────────────────── */
.modal-obs-clinica {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.2);
}

.modal-xl {
  max-width: 1100px;
}

/* ── Cabeçalho do modal ─────────────────────────────────────── */
.obs-modal-header {
  background: linear-gradient(135deg, #0c4a6e, #0284c7, #0ea5e9);
  color: #fff;
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.obs-modal-header h5 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.obs-modal-header-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  opacity: .92;
}
.obs-modal-header-badge {
  background: rgba(255,255,255,.2);
  border: 1px solid rgba(255,255,255,.3);
  padding: 2px 10px;
  border-radius: 20px;
  font-weight: 600;
  backdrop-filter: blur(4px);
}

/* ── Corpo do modal ─────────────────────────────────────────── */
.obs-modal-body {
  padding: 1rem 1.25rem;
  overflow-y: auto;
  max-height: calc(85vh - 220px);
  background: #f8fafc;
}

/* ── Seção vazia no modal ───────────────────────────────────── */
.obs-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2.5rem 1rem;
  color: #94a3b8;
  text-align: center;
  gap: .5rem;
}
.obs-empty-state i {
  font-size: 2.5rem;
  opacity: .4;
}
.obs-empty-state p {
  font-size: .9rem;
  margin: 0;
}

/* ── Card de evolução ───────────────────────────────────────── */
.obs-evol-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: .75rem 1rem;
  margin-bottom: .6rem;
  border-left: 3px solid #0ea5e9;
}
.obs-evol-card.tipo-medica    { border-left-color: #7c3aed; }
.obs-evol-card.tipo-enfermagem{ border-left-color: #059669; }
.obs-evol-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .35rem;
  font-size: .78rem;
  color: #64748b;
}
.obs-evol-tipo-badge {
  font-size: .7rem;
  padding: 2px 8px;
  border-radius: 20px;
  font-weight: 700;
  background: #eff6ff;
  color: #2563eb;
}
.obs-evol-tipo-badge.medica    { background: #f5f3ff; color: #7c3aed; }
.obs-evol-tipo-badge.enfermagem{ background: #ecfdf5; color: #059669; }
.obs-evol-texto {
  font-size: .85rem;
  color: #1e293b;
  white-space: pre-wrap;
  line-height: 1.5;
}

/* ── Overlay de nova evolução (z-index acima do modal) ──────── */
.obs-evol-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 2100;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeIn .15s;
}
.obs-evol-dialog {
  background: #fff;
  border-radius: 14px;
  width: 560px;
  max-width: 95vw;
  box-shadow: 0 20px 50px rgba(0,0,0,.25);
  overflow: hidden;
}
.obs-evol-dialog-header {
  padding: .85rem 1.1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #e2e8f0;
}
.obs-evol-dialog-body {
  padding: 1rem 1.1rem;
}
.obs-evol-dialog-footer {
  padding: .75rem 1.1rem;
  display: flex;
  justify-content: flex-end;
  gap: .5rem;
  border-top: 1px solid #e2e8f0;
  background: #f8fafc;
}

/* ── Itens de prescrição no modal ───────────────────────────── */
.obs-presc-item {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: .6rem .9rem;
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .4rem;
}

/* ── Reavaliação — select de status ─────────────────────────── */
.obs-reav-status {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: .5rem;
  margin: .75rem 0;
}
.obs-reav-status-opt {
  padding: .5rem .75rem;
  border: 2px solid #e2e8f0;
  border-radius: 8px;
  cursor: pointer;
  font-size: .82rem;
  font-weight: 600;
  text-align: center;
  transition: border-color .15s, background .15s;
}
.obs-reav-status-opt.selected {
  border-color: #0284c7;
  background: #eff6ff;
  color: #0284c7;
}

/* ── Responsividade ─────────────────────────────────────────── */
@media (max-width: 900px) {
  .obs-cards-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
  .modal-xl       { max-width: 98vw; margin: .5rem; }
  .obs-modal-body { max-height: calc(90vh - 240px); }
  .obs-abas-bar   { overflow-x: auto; flex-wrap: nowrap; }
}
@media (max-width: 600px) {
  .obs-cards-grid  { grid-template-columns: 1fr; }
  .obs-aba-btn     { font-size: .75rem; padding: .4rem .6rem; }
  .obs-modal-header{ padding: .75rem 1rem; }
}

/* ══════════════════════════════════════════════════════════════
   HISTÓRICO DO PACIENTE — PRONTUÁRIO COMPLETO
   ══════════════════════════════════════════════════════════════ */

/* ── Stats row ────────────────────────────────────────────── */
.hist-stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: .75rem 0;
}
.hist-stat-chip {
  display: flex;
  align-items: center;
  gap: .4rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: .3rem .75rem;
  font-size: .78rem;
  color: #475569;
}
.hist-stat-n {
  font-size: 1rem;
  font-weight: 700;
  color: #1e293b;
}

/* ── Sinais vitais banner ─────────────────────────────────── */
.hist-sv-banner {
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  border-radius: 10px;
  padding: .75rem 1rem;
  margin-bottom: .75rem;
}
.hist-sv-title {
  font-size: .82rem;
  font-weight: 700;
  color: #0369a1;
  margin-bottom: .5rem;
}
.hist-sv-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.hist-sv-chip {
  display: flex;
  align-items: center;
  gap: .25rem;
  background: #fff;
  border: 1px solid #bae6fd;
  border-radius: 6px;
  padding: .25rem .55rem;
  font-size: .8rem;
  font-weight: 500;
  color: #0f172a;
}
.hist-sv-chip.sm {
  font-size: .75rem;
  padding: .2rem .45rem;
}

/* ── Alerta condições / medicamentos ─────────────────────── */
.hist-alerta-cond {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 6px;
  padding: .35rem .7rem;
  font-size: .78rem;
  color: #9a3412;
  margin-top: .3rem;
}
.hist-alerta-med {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 6px;
  padding: .35rem .7rem;
  font-size: .78rem;
  color: #14532d;
  margin-top: .3rem;
}

/* ── Timeline ─────────────────────────────────────────────── */
.hist-prontuario-titulo {
  font-size: .9rem;
  font-weight: 700;
  color: #1e293b;
  margin: 1rem 0 .75rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.hist-badge-count {
  background: #e2e8f0;
  color: #475569;
  border-radius: 20px;
  font-size: .72rem;
  font-weight: 600;
  padding: .15rem .55rem;
}
.hist-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  padding-left: 1.75rem;
}
.hist-timeline::before {
  content: '';
  position: absolute;
  left: .62rem;
  top: 1rem;
  bottom: 1rem;
  width: 2px;
  background: #e2e8f0;
}

/* ── Item da timeline ─────────────────────────────────────── */
.hist-tl-item {
  position: relative;
  margin-bottom: .75rem;
}
.hist-tl-dot {
  position: absolute;
  left: -1.4rem;
  top: 1rem;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 2px currentColor;
}
.hist-tl-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  transition: box-shadow .2s;
}
.hist-tl-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
}

/* ── Header do card ──────────────────────────────────────── */
.hist-tl-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: .85rem 1rem;
  cursor: pointer;
  gap: .75rem;
  user-select: none;
}
.hist-tl-header:hover { background: #f8fafc; }
.hist-tl-header-left { flex: 1; min-width: 0; }
.hist-tl-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .35rem;
  flex-shrink: 0;
}

.hist-tl-num {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .88rem;
  color: #1e293b;
  margin-bottom: .3rem;
}
.hist-tl-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  font-size: .75rem;
  color: #64748b;
  margin-bottom: .25rem;
}
.hist-tl-queixa {
  font-size: .78rem;
  color: #475569;
  margin-top: .2rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 480px;
}
.hist-tl-status-badge {
  font-size: .72rem;
  font-weight: 700;
  border-radius: 20px;
  padding: .15rem .6rem;
}
.hist-tl-risco-badge {
  font-size: .72rem;
  font-weight: 700;
  border-radius: 20px;
  padding: .15rem .55rem;
}

/* ── Chips de conteúdo ───────────────────────────────────── */
.hist-tl-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  justify-content: flex-end;
}
.hist-tl-chip {
  display: flex;
  align-items: center;
  gap: .2rem;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 5px;
  padding: .15rem .4rem;
  font-size: .72rem;
  color: #475569;
}
.hist-tl-chip-alta {
  background: #dcfce7;
  border-color: #86efac;
  color: #16a34a;
}
.hist-tl-toggle-btn {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: .25rem .5rem;
  cursor: pointer;
  color: #64748b;
  font-size: .8rem;
  transition: background .15s;
}
.hist-tl-toggle-btn:hover { background: #e2e8f0; }

/* ── Corpo expansível ─────────────────────────────────────── */
.hist-tl-body {
  border-top: 1px solid #f1f5f9;
  padding: 1rem;
  background: #fafafa;
}

/* ── Grid de seções ──────────────────────────────────────── */
.hist-det-grid {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.hist-det-sec {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  overflow: hidden;
}
.hist-det-sec-title {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem 1rem;
  font-size: .82rem;
  font-weight: 700;
  color: #334155;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}
.hist-det-sec-body {
  padding: .75rem 1rem;
}

/* ── Campos chave-valor ──────────────────────────────────── */
.hist-det-campo {
  display: flex;
  gap: .5rem;
  font-size: .8rem;
  margin-bottom: .35rem;
  align-items: flex-start;
}
.hist-det-campo-full {
  flex-direction: column;
  gap: .15rem;
}
.hist-det-label {
  font-weight: 600;
  color: #64748b;
  min-width: 120px;
  flex-shrink: 0;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .3px;
}
.hist-det-val {
  color: #1e293b;
  white-space: pre-wrap;
  word-break: break-word;
}

/* ── Tabelas ─────────────────────────────────────────────── */
.hist-det-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .8rem;
}
.hist-det-table th {
  text-align: left;
  font-size: .72rem;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .3px;
  padding: .35rem .5rem;
  border-bottom: 2px solid #e2e8f0;
  background: #f8fafc;
}
.hist-det-table td {
  padding: .45rem .5rem;
  border-bottom: 1px solid #f1f5f9;
  color: #1e293b;
  vertical-align: top;
}
.hist-det-table tr:last-child td { border-bottom: none; }
.hist-det-table tr:hover td { background: #f8fafc; }
.hist-det-empty { font-size: .8rem; color: #94a3b8; text-align: center; padding: .5rem; }

/* ── Triagem card ─────────────────────────────────────────── */
.hist-det-triagem-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: .65rem .85rem;
  margin-bottom: .5rem;
}
.hist-det-triagem-header {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .3rem;
  flex-wrap: wrap;
}

/* ── Evolução card ───────────────────────────────────────── */
.hist-det-evol-card {
  border: 1px solid #e0f2fe;
  border-radius: 8px;
  padding: .65rem .85rem;
  margin-bottom: .5rem;
  background: #f0f9ff;
}
.hist-det-evol-header {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
  margin-bottom: .4rem;
}
.hist-det-evol-txt {
  font-size: .82rem;
  color: #1e293b;
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.5;
  background: #fff;
  border-radius: 6px;
  padding: .5rem .65rem;
  border: 1px solid #bae6fd;
}
.hist-det-evol-conduta {
  font-size: .78rem;
  color: #0369a1;
  margin-top: .35rem;
}

/* ── Sinais vitais rows ──────────────────────────────────── */
.hist-det-sv-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
  padding: .4rem 0;
  border-bottom: 1px solid #f1f5f9;
}
.hist-det-sv-row:last-child { border-bottom: none; }
.hist-det-sv-alt { background: #f8fafc; border-radius: 6px; padding: .4rem .4rem; }
.hist-det-sv-dt {
  font-size: .72rem;
  color: #94a3b8;
  min-width: 110px;
  flex-shrink: 0;
}

/* ── Regulação card ──────────────────────────────────────── */
.hist-det-reg-card {
  border: 1px solid #fecaca;
  border-radius: 8px;
  padding: .65rem .85rem;
  margin-bottom: .5rem;
  background: #fff5f5;
}
.hist-det-reg-header {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
}

/* ── Alta card ───────────────────────────────────────────── */
.hist-det-alta-card {
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  padding: .75rem 1rem;
  background: #f0fdf4;
}
.hist-det-alta-tipo {
  font-size: .9rem;
  font-weight: 700;
  color: #166534;
  margin-bottom: .4rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.hist-det-orientacoes {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: .45rem .7rem;
  font-size: .8rem;
  color: #1e293b;
  margin-top: .4rem;
}

/* ── Leito card ──────────────────────────────────────────── */
.hist-det-leito-card {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  padding: .65rem 1rem;
  font-size: .82rem;
}

/* ── Estado vazio ─────────────────────────────────────────── */
.hist-det-empty-state {
  text-align: center;
  color: #94a3b8;
  font-size: .82rem;
  padding: 1.5rem;
}

/* ── Responsividade ──────────────────────────────────────── */
@media (max-width: 768px) {
  .hist-tl-header { flex-direction: column; }
  .hist-tl-header-right { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .hist-tl-queixa { max-width: 100%; }
  .hist-stats-row { gap: .35rem; }
  .hist-stat-chip { font-size: .72rem; }
  .hist-det-table { font-size: .75rem; }
  .hist-det-campo { flex-direction: column; gap: .1rem; }
  .hist-det-label { min-width: unset; }
}

/* ================================================================
   MÓDULO BPA — EXPORTAÇÃO DE BOLETIM DE PRODUÇÃO AMBULATORIAL
   SINNC Saúde UPA24H
   ================================================================ */

/* ── BPA v2 — abas de navegação ──────────────────────────────── */
.bpa2-tab {
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  padding: .65rem 1.1rem;
  font-size: .85rem;
  font-weight: 500;
  color: #64748b;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .4rem;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
}
.bpa2-tab:hover {
  color: #1e40af;
  background: #f0f7ff;
}
.bpa2-tab.active {
  color: #1e40af;
  border-bottom-color: #2563eb;
  font-weight: 600;
}
.bpa2-tab-content {
  display: none;
}

/* ── Página principal ─────────────────────────────────────────── */
.bpa-page {
  display: flex;
  flex-direction: column;
  gap: 0;
  /* Não usar height:100% — colapsa quando pai não tem altura definida */
  min-height: 0;
  width: 100%;
}

/* Abas BPA — conteúdo visível quando ativa */
.bpa-aba-content {
  width: 100%;
  padding: 1rem 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* bpa-filtros-grid já existe mas bpa-card precisa de margem entre si */
.bpa-aba-content .bpa-card + .bpa-card {
  margin-top: 1rem;
}

.bpa-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1.25rem;
  background: linear-gradient(135deg, #1e3a5f 0%, #2563eb 100%);
  border-radius: 10px 10px 0 0;
  color: #fff;
  flex-shrink: 0;
}

.bpa-header-title {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.bpa-header-title i {
  font-size: 1.1rem;
  opacity: .9;
}

.bpa-header-subtitle {
  font-size: .72rem;
  font-weight: 400;
  opacity: .75;
  margin-top: .1rem;
}

.bpa-header-meta {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .78rem;
  opacity: .85;
}

/* ── Card container ───────────────────────────────────────────── */
.bpa-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

.bpa-card-body {
  padding: 1rem 1.25rem;
}

.bpa-card-title {
  font-size: .82rem;
  font-weight: 700;
  color: #374151;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: .65rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}

/* ── Tabs ─────────────────────────────────────────────────────── */
.bpa-tabs-bar {
  display: flex;
  align-items: stretch;
  background: #f8fafc;
  border-bottom: 2px solid #e2e8f0;
  overflow-x: auto;
  flex-shrink: 0;
  padding: 0 .5rem;
}

.bpa-tabs-bar::-webkit-scrollbar { height: 3px; }
.bpa-tabs-bar::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 2px; }

.bpa-tab-btn {
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: .7rem 1.1rem;
  font-size: .8rem;
  font-weight: 600;
  color: #64748b;
  background: transparent;
  border: none;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: color .15s, border-color .15s, background .15s;
  margin-bottom: -2px;
  letter-spacing: .01em;
}

.bpa-tab-btn:hover {
  color: #2563eb;
  background: rgba(37,99,235,.04);
}

.bpa-tab-btn.active {
  color: #2563eb;
  border-bottom-color: #2563eb;
  background: rgba(37,99,235,.06);
}

.bpa-tab-btn i { font-size: .85rem; }

.bpa-tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  background: #ef4444;
  color: #fff;
  border-radius: 9px;
  font-size: .65rem;
  font-weight: 700;
}

.bpa-tab-badge.info { background: #3b82f6; }
.bpa-tab-badge.warn { background: #f59e0b; }
.bpa-tab-badge.ok   { background: #10b981; }

/* ── Tab content ──────────────────────────────────────────────── */
.bpa-tab-content {
  display: none;
  padding: 1rem 1.25rem;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.bpa-tab-content.active {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* ── Filtros grid ─────────────────────────────────────────────── */
.bpa-filtros-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: .6rem .75rem;
  align-items: start;
}

.bpa-filtros-grid-4 {
  grid-template-columns: repeat(4, 1fr);
}

.bpa-filtros-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.bpa-filtros-grid-2 {
  grid-template-columns: repeat(2, 1fr);
}

.bpa-filtro-group {
  display: flex;
  flex-direction: column;
  gap: .25rem;
}

.bpa-filtro-group label {
  font-size: .73rem;
  font-weight: 600;
  color: #374151;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.bpa-filtro-group.span-2 { grid-column: span 2; }
.bpa-filtro-group.span-3 { grid-column: span 3; }
.bpa-filtro-group.span-4 { grid-column: span 4; }

/* ── Inputs e selects ─────────────────────────────────────────── */
.bpa-input,
.bpa-select {
  height: 32px;
  padding: 0 .6rem;
  font-size: .8rem;
  color: #1e293b;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  width: 100%;
  box-sizing: border-box;
}

.bpa-input:focus,
.bpa-select:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37,99,235,.15);
}

.bpa-input::placeholder { color: #94a3b8; }

.bpa-select { cursor: pointer; }

textarea.bpa-input {
  height: auto;
  padding: .45rem .6rem;
  resize: vertical;
  min-height: 56px;
}

/* ── Botões ───────────────────────────────────────────────────── */
.bpa-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  padding: 0 .85rem;
  height: 32px;
  font-size: .78rem;
  font-weight: 600;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s, box-shadow .15s, opacity .15s, transform .08s;
  letter-spacing: .01em;
}

.bpa-btn:active { transform: translateY(1px); }
.bpa-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }

.bpa-btn i { font-size: .82rem; }

.bpa-btn-primary {
  background: #2563eb;
  color: #fff;
}
.bpa-btn-primary:hover:not(:disabled) { background: #1d4ed8; box-shadow: 0 2px 6px rgba(37,99,235,.35); }

.bpa-btn-success {
  background: #10b981;
  color: #fff;
}
.bpa-btn-success:hover:not(:disabled) { background: #059669; box-shadow: 0 2px 6px rgba(16,185,129,.35); }

.bpa-btn-danger {
  background: #ef4444;
  color: #fff;
}
.bpa-btn-danger:hover:not(:disabled) { background: #dc2626; box-shadow: 0 2px 6px rgba(239,68,68,.35); }

.bpa-btn-warning {
  background: #f59e0b;
  color: #fff;
}
.bpa-btn-warning:hover:not(:disabled) { background: #d97706; box-shadow: 0 2px 6px rgba(245,158,11,.35); }

.bpa-btn-info {
  background: #0ea5e9;
  color: #fff;
}
.bpa-btn-info:hover:not(:disabled) { background: #0284c7; box-shadow: 0 2px 6px rgba(14,165,233,.35); }

.bpa-btn-secondary {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
}
.bpa-btn-secondary:hover:not(:disabled) { background: #e2e8f0; }

.bpa-btn-outline {
  background: transparent;
  color: #2563eb;
  border: 1.5px solid #2563eb;
}
.bpa-btn-outline:hover:not(:disabled) { background: rgba(37,99,235,.07); }

.bpa-btn-ghost {
  background: transparent;
  color: #64748b;
  border: 1px solid #e2e8f0;
}
.bpa-btn-ghost:hover:not(:disabled) { background: #f8fafc; color: #374151; }

.bpa-btn-sm {
  height: 26px;
  padding: 0 .55rem;
  font-size: .72rem;
}

.bpa-btn-lg {
  height: 38px;
  padding: 0 1.1rem;
  font-size: .85rem;
}

/* ── Barra de ações ───────────────────────────────────────────── */
.bpa-acoes-bar {
  display: flex;
  align-items: center;
  gap: .4rem;
  flex-wrap: wrap;
  padding: .6rem .8rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.bpa-acoes-sep {
  width: 1px;
  height: 22px;
  background: #e2e8f0;
  flex-shrink: 0;
  margin: 0 .1rem;
}

/* ── Estatísticas (cards de resumo) ───────────────────────────── */
.bpa-resumo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: .6rem;
}

.bpa-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: .8rem .6rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  text-align: center;
  gap: .3rem;
  transition: box-shadow .15s, transform .15s;
}

.bpa-stat:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
  transform: translateY(-1px);
}

.bpa-stat-value {
  font-size: 1.6rem;
  font-weight: 800;
  color: #1e293b;
  line-height: 1;
}

.bpa-stat-label {
  font-size: .68rem;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.bpa-stat-icon {
  font-size: 1.2rem;
  opacity: .7;
}

.bpa-stat.blue   { border-top: 3px solid #2563eb; }
.bpa-stat.green  { border-top: 3px solid #10b981; }
.bpa-stat.orange { border-top: 3px solid #f59e0b; }
.bpa-stat.red    { border-top: 3px solid #ef4444; }
.bpa-stat.purple { border-top: 3px solid #8b5cf6; }
.bpa-stat.teal   { border-top: 3px solid #14b8a6; }
.bpa-stat.gray   { border-top: 3px solid #94a3b8; }
.bpa-stat.indigo { border-top: 3px solid #6366f1; }

.bpa-stat.blue   .bpa-stat-value { color: #2563eb; }
.bpa-stat.green  .bpa-stat-value { color: #10b981; }
.bpa-stat.orange .bpa-stat-value { color: #f59e0b; }
.bpa-stat.red    .bpa-stat-value { color: #ef4444; }
.bpa-stat.purple .bpa-stat-value { color: #8b5cf6; }
.bpa-stat.teal   .bpa-stat-value { color: #14b8a6; }
.bpa-stat.indigo .bpa-stat-value { color: #6366f1; }

/* ── Tabelas BPA ──────────────────────────────────────────────── */
.bpa-table-wrap {
  overflow-x: auto;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
}

.bpa-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .78rem;
  background: #fff;
}

.bpa-table thead {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f8fafc;
}

.bpa-table th {
  padding: .55rem .75rem;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #475569;
  text-align: left;
  border-bottom: 2px solid #e2e8f0;
  white-space: nowrap;
}

.bpa-table td {
  padding: .5rem .75rem;
  color: #374151;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.bpa-table tr:last-child td { border-bottom: none; }

.bpa-table tbody tr:hover { background: #f8fafc; }

.bpa-table tfoot td {
  padding: .5rem .75rem;
  font-weight: 700;
  background: #f1f5f9;
  border-top: 2px solid #e2e8f0;
}

.bpa-table .col-acoes {
  text-align: right;
  white-space: nowrap;
}

.bpa-table .col-num { text-align: right; }
.bpa-table .col-center { text-align: center; }

/* ── Linhas de consistência ───────────────────────────────────── */
.bpa-row-bloqueante td { background: #fef2f2 !important; border-left: 3px solid #ef4444; }
.bpa-row-bloqueante:hover td { background: #fee2e2 !important; }
.bpa-row-alerta td { background: #fffbeb !important; border-left: 3px solid #f59e0b; }
.bpa-row-alerta:hover td { background: #fef3c7 !important; }
.bpa-row-inativo td { opacity: .5; }

/* ── Badges de status ─────────────────────────────────────────── */
.bpa-status-badge {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: .67rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}

.bpa-status-badge.nao-exportado  { background: #f1f5f9; color: #475569; }
.bpa-status-badge.em-validacao   { background: #dbeafe; color: #1d4ed8; }
.bpa-status-badge.inconsistencia { background: #fef3c7; color: #92400e; }
.bpa-status-badge.validado       { background: #d1fae5; color: #065f46; }
.bpa-status-badge.incluido       { background: #ede9fe; color: #5b21b6; }
.bpa-status-badge.gerado         { background: #dcfce7; color: #166534; }
.bpa-status-badge.baixado        { background: #e0f2fe; color: #075985; }
.bpa-status-badge.enviado        { background: #cffafe; color: #164e63; }
.bpa-status-badge.aceito         { background: #d1fae5; color: #065f46; }
.bpa-status-badge.rejeitado      { background: #fee2e2; color: #991b1b; }
.bpa-status-badge.reaberto       { background: #fce7f3; color: #9d174d; }
.bpa-status-badge.cancelado      { background: #f1f5f9; color: #94a3b8; }
.bpa-status-badge.pendente       { background: #fef9c3; color: #854d0e; }

/* ── Badges de tipo BPA ───────────────────────────────────────── */
.bpa-tipo-badge {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: 2px 7px;
  border-radius: 4px;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}

.bpa-tipo-badge.consolidado    { background: #dbeafe; color: #1e40af; }
.bpa-tipo-badge.individualizado { background: #ede9fe; color: #5b21b6; }
.bpa-tipo-badge.ambos          { background: #d1fae5; color: #065f46; }

/* ── Badges de gravidade (consistências) ──────────────────────── */
.bpa-gravidade-badge {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: .65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
  white-space: nowrap;
}

.bpa-gravidade-badge.bloqueante  { background: #fee2e2; color: #b91c1c; }
.bpa-gravidade-badge.alerta      { background: #fef3c7; color: #b45309; }
.bpa-gravidade-badge.informativa { background: #dbeafe; color: #1d4ed8; }

/* ── Badges de financiamento ──────────────────────────────────── */
.bpa-financ-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: .63rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  white-space: nowrap;
}

.bpa-financ-badge.AB   { background: #d1fae5; color: #065f46; }
.bpa-financ-badge.MAC  { background: #dbeafe; color: #1e40af; }
.bpa-financ-badge.FAEC { background: #ede9fe; color: #5b21b6; }
.bpa-financ-badge.IMAC { background: #cffafe; color: #164e63; }
.bpa-financ-badge.VS   { background: #fce7f3; color: #9d174d; }
.bpa-financ-badge.AF   { background: #fef3c7; color: #92400e; }

/* ── Badges de módulo ─────────────────────────────────────────── */
.bpa-modulo-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: .63rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  white-space: nowrap;
}

.bpa-modulo-badge.RECEPCAO   { background: #e0f2fe; color: #075985; }
.bpa-modulo-badge.TRIAGEM    { background: #d1fae5; color: #065f46; }
.bpa-modulo-badge.ATENDIMENTO { background: #ede9fe; color: #5b21b6; }
.bpa-modulo-badge.OBSERVACAO  { background: #fce7f3; color: #9d174d; }
.bpa-modulo-badge.PAC         { background: #fef3c7; color: #92400e; }
.bpa-modulo-badge.MANUAL      { background: #f1f5f9; color: #475569; }

/* ── Badges de ação/origem ────────────────────────────────────── */
.bpa-acao-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: .63rem;
  font-weight: 600;
  background: #f1f5f9;
  color: #475569;
  white-space: nowrap;
}

.bpa-orig-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: .63rem;
  font-weight: 600;
  background: #f0fdf4;
  color: #15803d;
  border: 1px solid #bbf7d0;
  white-space: nowrap;
}

/* ── Estado vazio ─────────────────────────────────────────────── */
.bpa-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: 3rem 1rem;
  color: #94a3b8;
  text-align: center;
}

.bpa-empty-state i {
  font-size: 2.5rem;
  opacity: .4;
}

.bpa-empty-state p {
  font-size: .82rem;
  margin: 0;
  max-width: 300px;
  line-height: 1.5;
}

/* ── Loading message ──────────────────────────────────────────── */
.bpa-loading-msg {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 2rem;
  color: #64748b;
  font-size: .82rem;
}

.bpa-loading-msg i { animation: spin 1s linear infinite; }

@keyframes spin { to { transform: rotate(360deg); } }

/* ── Toggle (switch on/off) ───────────────────────────────────── */
.bpa-toggle-wrap {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .78rem;
  color: #374151;
  cursor: pointer;
  user-select: none;
}

.bpa-toggle {
  position: relative;
  width: 36px;
  height: 20px;
  flex-shrink: 0;
}

.bpa-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}

.bpa-toggle-slider {
  position: absolute;
  inset: 0;
  background: #cbd5e1;
  border-radius: 20px;
  transition: background .2s;
}

.bpa-toggle-slider::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 2px;
  width: 16px;
  height: 16px;
  background: #fff;
  border-radius: 50%;
  transition: transform .2s;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}

.bpa-toggle input:checked + .bpa-toggle-slider { background: #2563eb; }
.bpa-toggle input:checked + .bpa-toggle-slider::before { transform: translateX(16px); }

/* ── Separadores e títulos de seção ───────────────────────────── */
.bpa-section-title {
  font-size: .75rem;
  font-weight: 700;
  color: #374151;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: .4rem 0 .4rem;
  border-bottom: 1.5px solid #e2e8f0;
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}

.bpa-section-title i { color: #2563eb; }

.bpa-divider {
  height: 1px;
  background: #f1f5f9;
  margin: .4rem 0;
}

/* ── Alerta/aviso inline ──────────────────────────────────────── */
.bpa-alert {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .65rem .85rem;
  border-radius: 8px;
  font-size: .79rem;
  line-height: 1.45;
}

.bpa-alert i { font-size: 1rem; flex-shrink: 0; margin-top: .05rem; }
.bpa-alert-content { flex: 1; }
.bpa-alert-title { font-weight: 700; margin-bottom: .15rem; }

.bpa-alert.info    { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e40af; }
.bpa-alert.success { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.bpa-alert.warning { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
.bpa-alert.error   { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }

/* ── Painel de simulação ──────────────────────────────────────── */
.bpa-simulacao-panel {
  background: #f0f9ff;
  border: 1.5px solid #bae6fd;
  border-radius: 10px;
  padding: 1rem 1.25rem;
  margin-top: .5rem;
}

.bpa-simulacao-panel .bpa-simulacao-title {
  font-size: .82rem;
  font-weight: 800;
  color: #0369a1;
  margin-bottom: .75rem;
  display: flex;
  align-items: center;
  gap: .4rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* ── Painel de geração bem-sucedida ───────────────────────────── */
.bpa-success-panel {
  background: #f0fdf4;
  border: 1.5px solid #86efac;
  border-radius: 10px;
  padding: 1rem 1.25rem;
}

.bpa-success-panel .bpa-success-title {
  font-size: .88rem;
  font-weight: 800;
  color: #166534;
  margin-bottom: .6rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}

/* ── Info chips ───────────────────────────────────────────────── */
.bpa-chips-row {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: .4rem 0;
}

.bpa-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: 3px 9px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  font-size: .7rem;
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
}

.bpa-chip i { font-size: .72rem; }
.bpa-chip.blue   { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }
.bpa-chip.green  { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.bpa-chip.orange { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.bpa-chip.red    { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.bpa-chip.purple { background: #f5f3ff; border-color: #ddd6fe; color: #5b21b6; }

/* ── Mini-tabela de detalhes do BPA ───────────────────────────── */
.bpa-det-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4rem .75rem;
}

.bpa-det-item {
  display: flex;
  flex-direction: column;
  gap: .1rem;
}

.bpa-det-label {
  font-size: .65rem;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.bpa-det-value {
  font-size: .8rem;
  color: #1e293b;
  font-weight: 500;
}

/* ── Linha de resumo (número BPA, competência, etc.) ─────────── */
.bpa-info-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .4rem;
  padding: .5rem .75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  font-size: .78rem;
}

.bpa-info-bar-item {
  display: flex;
  align-items: center;
  gap: .3rem;
  color: #475569;
}

.bpa-info-bar-item strong { color: #1e293b; }
.bpa-info-bar-sep { color: #cbd5e1; font-size: .7rem; }

/* ── Arquivo gerado — card ────────────────────────────────────── */
.bpa-arquivo-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  transition: box-shadow .15s;
}

.bpa-arquivo-card:hover { box-shadow: 0 3px 10px rgba(0,0,0,.07); }

.bpa-arquivo-icon {
  width: 42px;
  height: 42px;
  background: linear-gradient(135deg, #1e3a5f 0%, #2563eb 100%);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.15rem;
  flex-shrink: 0;
}

.bpa-arquivo-info { min-width: 0; }
.bpa-arquivo-nome { font-weight: 700; font-size: .82rem; color: #1e293b; truncate: auto; }
.bpa-arquivo-meta { font-size: .7rem; color: #64748b; margin-top: .15rem; }
.bpa-arquivo-acoes { display: flex; gap: .35rem; align-items: center; flex-shrink: 0; }

/* ── Regras de geração SIGTAP — tela ─────────────────────────── */
.bpa-regras-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: .75rem;
}

.bpa-regras-filtros {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}

.bpa-regras-table-wrap {
  overflow-x: auto;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
}

/* ── Modal overrides para BPA ─────────────────────────────────── */
.modal-bpa-sm  { max-width: 480px; }
.modal-bpa-md  { max-width: 640px; }
.modal-bpa-lg  { max-width: 860px; }
.modal-bpa-xl  { max-width: 1100px; }

/* ── Progresso da geração ─────────────────────────────────────── */
.bpa-progress-wrap {
  margin: .5rem 0;
}

.bpa-progress-bar {
  height: 6px;
  background: #e2e8f0;
  border-radius: 3px;
  overflow: hidden;
}

.bpa-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #2563eb, #10b981);
  border-radius: 3px;
  transition: width .3s ease;
}

.bpa-progress-label {
  font-size: .7rem;
  color: #64748b;
  margin-top: .3rem;
  text-align: right;
}

/* ── Mapa de campos do arquivo (visualização inline) ─────────── */
.bpa-arquivo-preview {
  font-family: 'Courier New', Courier, monospace;
  font-size: .7rem;
  background: #0f172a;
  color: #94a3b8;
  border-radius: 8px;
  padding: .75rem 1rem;
  overflow-x: auto;
  line-height: 1.6;
  max-height: 200px;
  overflow-y: auto;
}

.bpa-arquivo-preview .ln-hdr { color: #60a5fa; }
.bpa-arquivo-preview .ln-bpc { color: #34d399; }
.bpa-arquivo-preview .ln-bpi { color: #a78bfa; }
.bpa-arquivo-preview .ln-num { color: #fb923c; }

/* ── Audit log ────────────────────────────────────────────────── */
.bpa-audit-list {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}

.bpa-audit-item {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: .76rem;
  padding: .4rem .6rem;
  border-radius: 6px;
  background: #f8fafc;
  border: 1px solid #f1f5f9;
}

.bpa-audit-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .7rem;
  flex-shrink: 0;
  background: #e2e8f0;
  color: #64748b;
}

.bpa-audit-icon.simul  { background: #dbeafe; color: #1d4ed8; }
.bpa-audit-icon.valida { background: #d1fae5; color: #065f46; }
.bpa-audit-icon.gera   { background: #ede9fe; color: #5b21b6; }
.bpa-audit-icon.baixa  { background: #cffafe; color: #164e63; }
.bpa-audit-icon.cancel { background: #fee2e2; color: #991b1b; }
.bpa-audit-icon.reabre { background: #fce7f3; color: #9d174d; }

.bpa-audit-body { flex: 1; min-width: 0; }
.bpa-audit-acao { font-weight: 700; color: #1e293b; }
.bpa-audit-meta { color: #64748b; margin-top: .1rem; }

/* ── Número BPA destaque ──────────────────────────────────────── */
.bpa-numero-destaque {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 28px;
  padding: 0 10px;
  background: linear-gradient(135deg, #1e3a5f 0%, #2563eb 100%);
  color: #fff;
  border-radius: 6px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .05em;
}

/* ── Consistências — linha expandida ──────────────────────────── */
.bpa-consist-det {
  padding: .5rem .75rem;
  background: #fffbeb;
  border-left: 3px solid #f59e0b;
  font-size: .75rem;
  color: #78350f;
  line-height: 1.5;
}

.bpa-consist-det.bloqueante {
  background: #fef2f2;
  border-color: #ef4444;
  color: #7f1d1d;
}

/* ── Filtros compactos em linha ───────────────────────────────── */
.bpa-filtros-inline {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}

.bpa-filtros-inline label {
  font-size: .72rem;
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
}

/* ── Competência picker (mês+ano) ─────────────────────────────── */
.bpa-competencia-wrap {
  display: flex;
  align-items: center;
  gap: .3rem;
}

.bpa-competencia-wrap .bpa-select {
  width: 70px;
}

.bpa-competencia-wrap .bpa-select.ano {
  width: 80px;
}

/* ── Checkbox personalizado ───────────────────────────────────── */
.bpa-check-group {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .75rem;
}

.bpa-check-item {
  display: flex;
  align-items: center;
  gap: .35rem;
  font-size: .78rem;
  color: #374151;
  cursor: pointer;
  user-select: none;
}

.bpa-check-item input[type="checkbox"] {
  width: 15px;
  height: 15px;
  cursor: pointer;
  accent-color: #2563eb;
}

/* ── Paginação simples ────────────────────────────────────────── */
.bpa-paginacao {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .4rem;
  padding: .5rem 0;
  font-size: .75rem;
  color: #64748b;
}

.bpa-pag-btn {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid #e2e8f0;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #374151;
  font-size: .72rem;
  transition: background .15s, border-color .15s;
}

.bpa-pag-btn:hover { background: #f1f5f9; }
.bpa-pag-btn.active { background: #2563eb; color: #fff; border-color: #2563eb; }
.bpa-pag-btn:disabled { opacity: .4; cursor: not-allowed; }

/* ── Skeleton loader ──────────────────────────────────────────── */
.bpa-skeleton {
  background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);
  background-size: 200% 100%;
  animation: bpa-shimmer 1.4s infinite;
  border-radius: 4px;
}

@keyframes bpa-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.bpa-skeleton-row {
  height: 36px;
  margin-bottom: .4rem;
  border-radius: 4px;
}

/* ── Responsividade BPA ───────────────────────────────────────── */
@media (max-width: 1024px) {
  .bpa-filtros-grid-4 { grid-template-columns: repeat(3, 1fr); }
  .bpa-filtros-grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .bpa-header { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .bpa-filtros-grid,
  .bpa-filtros-grid-4,
  .bpa-filtros-grid-3,
  .bpa-filtros-grid-2 {
    grid-template-columns: repeat(2, 1fr);
  }
  .bpa-filtro-group.span-2,
  .bpa-filtro-group.span-3,
  .bpa-filtro-group.span-4 { grid-column: span 2; }
  .bpa-resumo-grid { grid-template-columns: repeat(3, 1fr); }
  .bpa-det-grid { grid-template-columns: 1fr; }
  .bpa-arquivo-card { grid-template-columns: auto 1fr; }
  .bpa-arquivo-acoes { grid-column: span 2; }
  .bpa-tab-btn { padding: .6rem .7rem; font-size: .72rem; }
}

@media (max-width: 480px) {
  .bpa-filtros-grid,
  .bpa-filtros-grid-4,
  .bpa-filtros-grid-3,
  .bpa-filtros-grid-2 {
    grid-template-columns: 1fr;
  }
  .bpa-filtro-group.span-2,
  .bpa-filtro-group.span-3,
  .bpa-filtro-group.span-4 { grid-column: span 1; }
  .bpa-resumo-grid { grid-template-columns: repeat(2, 1fr); }
  .bpa-acoes-bar { gap: .3rem; }
  .bpa-btn { padding: 0 .55rem; font-size: .72rem; }
}


/* ============================================================
   MÓDULO: RELATÓRIOS E GRÁFICOS — Estilos .rel-*
   ============================================================ */

/* ── Página principal ─────────────────────────────────────── */
.rel-page {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: .25rem 0;
}

.rel-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.rel-page-header-left {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.rel-page-header-actions {
  display: flex;
  gap: .5rem;
}

.rel-page-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 15px rgba(0,0,0,.15);
}

.rel-page-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #1e293b;
  margin: 0;
}

.rel-page-sub {
  font-size: .82rem;
  color: #64748b;
  margin: .1rem 0 0;
}

/* ── Seção de filtros ─────────────────────────────────────── */
.rel-filtros-section {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rel-filtros-titulo {
  font-size: .85rem;
  font-weight: 600;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: .05em;
  display: flex;
  align-items: center;
  gap: .4rem;
}

.rel-filtros-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: .75rem;
}

.rel-filtro-group {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.rel-label {
  font-size: .78rem;
  font-weight: 600;
  color: #475569;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.rel-label i { color: #94a3b8; width: 14px; }

.rel-input {
  height: 36px;
  padding: 0 .65rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: .83rem;
  color: #374151;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
  width: 100%;
  box-sizing: border-box;
}
.rel-input:focus {
  outline: none;
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99,102,241,.12);
}

.rel-select {
  height: 36px;
  padding: 0 .65rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: .83rem;
  color: #374151;
  background: #fff;
  cursor: pointer;
  width: 100%;
  box-sizing: border-box;
}
.rel-select:focus {
  outline: none;
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99,102,241,.12);
}

.rel-input[type="textarea"], .rel-input.textarea,
textarea.rel-input {
  height: auto;
  padding: .5rem .65rem;
  resize: vertical;
}

/* ── Barra de ações ───────────────────────────────────────── */
.rel-acoes-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
  padding-top: .75rem;
  border-top: 1px solid #f1f5f9;
}

.rel-acoes-sep {
  width: 1px;
  height: 28px;
  background: #e2e8f0;
  margin: 0 .25rem;
}

/* ── Botões ───────────────────────────────────────────────── */
.rel-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: 0 .9rem;
  height: 34px;
  border-radius: 8px;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all .18s;
  white-space: nowrap;
  text-decoration: none;
}

.rel-btn-primary {
  background: #6366f1;
  color: #fff;
  border-color: #6366f1;
}
.rel-btn-primary:hover { background: #4f46e5; border-color: #4f46e5; }

.rel-btn-success {
  background: #059669;
  color: #fff;
  border-color: #059669;
}
.rel-btn-success:hover { background: #047857; border-color: #047857; }

.rel-btn-outline {
  background: #fff;
  color: #374151;
  border-color: #d1d5db;
}
.rel-btn-outline:hover { background: #f8fafc; border-color: #6366f1; color: #6366f1; }

.rel-btn-export {
  background: #f8fafc;
  color: #475569;
  border-color: #e2e8f0;
  font-size: .78rem;
  padding: 0 .7rem;
}
.rel-btn-export:hover { background: #e0f2fe; color: #0369a1; border-color: #7dd3fc; }

.rel-btn-danger {
  background: #fef2f2;
  color: #dc2626;
  border-color: #fca5a5;
}
.rel-btn-danger:hover { background: #dc2626; color: #fff; }

.rel-btn-sm {
  height: 28px;
  padding: 0 .6rem;
  font-size: .75rem;
}

/* ── Resumo de cards ──────────────────────────────────────── */
.rel-resumo-cards {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  padding: 1rem;
  background: #f8fafc;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
}

.rel-resumo-card {
  min-width: 120px;
  padding: .6rem 1rem;
  background: #fff;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.rel-resumo-valor {
  font-size: 1.4rem;
  font-weight: 700;
  color: #6366f1;
}

.rel-resumo-label {
  font-size: .72rem;
  color: #64748b;
  margin-top: .15rem;
}

/* ── Tabela de resultados ─────────────────────────────────── */
.rel-tabela-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
}

.rel-tabela-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .85rem 1.25rem;
  border-bottom: 1px solid #f1f5f9;
  background: #f8fafc;
}

.rel-tabela-titulo {
  font-size: .875rem;
  font-weight: 600;
  color: #374151;
  display: flex;
  align-items: center;
  gap: .4rem;
}

.rel-tabela-total {
  font-size: .78rem;
  color: #64748b;
}

.rel-table-wrap {
  overflow-x: auto;
}

.rel-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .83rem;
}

.rel-table th {
  background: #f8fafc;
  padding: .55rem .75rem;
  text-align: left;
  font-weight: 600;
  font-size: .75rem;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: .04em;
  border-bottom: 2px solid #e2e8f0;
  white-space: nowrap;
}

.rel-table td {
  padding: .55rem .75rem;
  border-bottom: 1px solid #f1f5f9;
  color: #374151;
  vertical-align: middle;
}

.rel-table tr:hover td { background: #f8fafc; }
.rel-table tr:last-child td { border-bottom: none; }

/* ── Empty state ──────────────────────────────────────────── */
.rel-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 1rem;
  color: #94a3b8;
  text-align: center;
  gap: .75rem;
}
.rel-empty-state i { font-size: 2.5rem; }
.rel-empty-state p { margin: 0; font-size: .9rem; }

.rel-empty-state.rel-empty-error { color: #dc2626; }
.rel-empty-state.rel-empty-error i { color: #fca5a5; }

.rel-empty { color: #94a3b8; font-size: .82rem; text-align: center; padding: .75rem; }

/* ── Badges ───────────────────────────────────────────────── */
.rel-badge {
  display: inline-flex;
  align-items: center;
  padding: .18em .6em;
  border-radius: 99px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .02em;
  white-space: nowrap;
}
.rel-badge-default    { background: #f1f5f9; color: #64748b; }
.rel-badge-verde      { background: #dcfce7; color: #166534; }
.rel-badge-amarelo    { background: #fef9c3; color: #854d0e; }
.rel-badge-laranja    { background: #ffedd5; color: #9a3412; }
.rel-badge-vermelho   { background: #fee2e2; color: #991b1b; }
.rel-badge-azul       { background: #dbeafe; color: #1e40af; }
.rel-badge-alta       { background: #d1fae5; color: #065f46; }
.rel-badge-cancel     { background: #fef2f2; color: #991b1b; }
.rel-badge-atend      { background: #ede9fe; color: #5b21b6; }
.rel-badge-obs        { background: #fef3c7; color: #92400e; }

/* ── Loading ──────────────────────────────────────────────── */
.rel-loading-msg {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 2rem;
  color: #94a3b8;
  font-size: .88rem;
}

/* ── Painel gerencial — cards grid ───────────────────────── */
.rel-painel-filtros {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  padding: .75rem 1rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}

.rel-painel-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1rem;
}

.rel-painel-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.1rem 1.25rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  border-left: 4px solid var(--card-color, #6366f1);
  transition: box-shadow .2s, transform .2s;
}
.rel-painel-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
  transform: translateY(-1px);
}

.rel-painel-card-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: var(--card-color, #6366f1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: #fff;
  flex-shrink: 0;
  opacity: .85;
}

.rel-painel-card-valor {
  font-size: 1.5rem;
  font-weight: 800;
  color: #1e293b;
  line-height: 1;
}
.rel-painel-card-label {
  font-size: .75rem;
  font-weight: 600;
  color: #64748b;
  margin-top: .2rem;
}
.rel-painel-card-sub {
  font-size: .68rem;
  color: #94a3b8;
  margin-top: .1rem;
}

/* ── Skeleton cards ───────────────────────────────────────── */
.rel-card-skeleton {
  height: 82px;
  border-radius: 12px;
  background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);
  background-size: 200% 100%;
  animation: rel-skeleton-shimmer 1.5s infinite;
}
@keyframes rel-skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── Gráficos ─────────────────────────────────────────────── */
.rel-painel-graficos {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1rem;
}

.rel-grafico-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.1rem 1.25rem;
}

.rel-grafico-card.rel-grafico-wide {
  grid-column: 1 / -1;
}

.rel-grafico-title {
  font-size: .82rem;
  font-weight: 600;
  color: #475569;
  margin-bottom: .75rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.rel-grafico-title i { color: #6366f1; }

/* ── Ranking / Pendências ─────────────────────────────────── */
.rel-painel-ranking {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1rem;
}

.rel-ranking-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.1rem 1.25rem;
}

.rel-ranking-list {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  max-height: 280px;
  overflow-y: auto;
}

.rel-ranking-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .5rem;
  border-radius: 6px;
  font-size: .8rem;
  color: #374151;
}
.rel-ranking-item:hover { background: #f8fafc; }

.rel-ranking-pos {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #6366f1;
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.rel-ranking-label {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rel-ranking-val {
  font-weight: 700;
  color: #6366f1;
  flex-shrink: 0;
}

.rel-ranking-alerta {
  background: #fef2f2;
  border-radius: 6px;
}

/* ── Modelos ──────────────────────────────────────────────── */
.rel-modelos-filtros {
  display: flex;
  gap: .75rem;
  align-items: center;
  flex-wrap: wrap;
}

.rel-modelos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

.rel-modelo-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  transition: box-shadow .2s;
}
.rel-modelo-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.rel-modelo-card.rel-modelo-inativo { opacity: .6; }

.rel-modelo-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.rel-modelo-tipo-badge {
  font-size: .68rem;
  font-weight: 700;
  background: #ede9fe;
  color: #5b21b6;
  padding: .18em .6em;
  border-radius: 99px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.rel-modelo-acoes {
  display: flex;
  gap: .3rem;
}

.rel-modelo-nome {
  font-size: .9rem;
  font-weight: 700;
  color: #1e293b;
}

.rel-modelo-titulo {
  font-size: .78rem;
  color: #64748b;
  font-style: italic;
}

.rel-modelo-info {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  font-size: .72rem;
  color: #64748b;
}
.rel-modelo-info span { display: flex; align-items: center; gap: .2rem; }

.rel-modelo-cabecalho {
  font-size: .72rem;
  color: #94a3b8;
  font-family: monospace;
  background: #f8fafc;
  padding: .3rem .5rem;
  border-radius: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Campos dinâmicos ─────────────────────────────────────── */
.rel-campos-dinamicos {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.1rem 1.25rem;
}

.rel-campos-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: .75rem 0;
}

.rel-campo-tag {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: .25em .6em;
  cursor: pointer;
  transition: all .15s;
}
.rel-campo-tag:hover { background: #ede9fe; border-color: #a78bfa; }
.rel-campo-tag code {
  font-family: 'Courier New', monospace;
  font-size: .75rem;
  color: #5b21b6;
}

.rel-campos-hint {
  font-size: .75rem;
  color: #94a3b8;
  margin: 0;
  display: flex;
  align-items: center;
  gap: .3rem;
}

/* ── Modal de relatório/gráfico ───────────────────────────── */
.rel-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,.55);
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  backdrop-filter: blur(3px);
  animation: rel-fade-in .2s ease;
}
@keyframes rel-fade-in { from { opacity: 0; } to { opacity: 1; } }

.rel-modal {
  background: #fff;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 25px 60px rgba(0,0,0,.25);
}

.rel-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #f1f5f9;
}
.rel-modal-header h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #1e293b;
  margin: 0;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.rel-modal-header h3 i { color: #6366f1; }

.rel-modal-close {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  background: #f1f5f9;
  color: #64748b;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
  transition: background .15s, color .15s;
}
.rel-modal-close:hover { background: #fef2f2; color: #dc2626; }

.rel-modal-body {
  padding: 1.25rem;
  overflow-y: auto;
  flex: 1;
}

.rel-chart-note {
  font-size: .75rem;
  color: #94a3b8;
  text-align: center;
  margin: .5rem 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .3rem;
}

/* ── Seções de indicadores ────────────────────────────────── */
.rel-indicadores-section {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rel-section-titulo {
  font-size: .88rem;
  font-weight: 700;
  color: #374151;
  display: flex;
  align-items: center;
  gap: .4rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid #f1f5f9;
}
.rel-section-titulo i { color: #6366f1; }

.rel-indicadores-graficos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

.rel-indicadores-ranking-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1rem;
}

/* ── Print styles ─────────────────────────────────────────── */
@media print {
  .rel-acoes-bar,
  .rel-filtros-section,
  .rel-painel-filtros,
  .rel-modelos-filtros { display: none !important; }
  .rel-page { padding: 0; gap: .5rem; }
  .rel-tabela-card { border: 1px solid #ccc; }
  .rel-table th, .rel-table td { padding: .3rem .5rem; font-size: .75rem; }
}

/* ── Responsividade ───────────────────────────────────────── */
@media (max-width: 1024px) {
  .rel-filtros-grid { grid-template-columns: repeat(3, 1fr); }
  .rel-painel-cards-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
  .rel-filtros-grid { grid-template-columns: repeat(2, 1fr); }
  .rel-painel-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .rel-painel-graficos { grid-template-columns: 1fr; }
  .rel-painel-ranking { grid-template-columns: 1fr; }
  .rel-acoes-bar { gap: .3rem; }
  .rel-btn { height: 30px; font-size: .75rem; padding: 0 .65rem; }
  .rel-acoes-sep { display: none; }
  .rel-modelos-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .rel-filtros-grid { grid-template-columns: 1fr; }
  .rel-painel-cards-grid { grid-template-columns: 1fr; }
  .rel-page-header { flex-direction: column; align-items: flex-start; }
  .rel-indicadores-graficos-grid { grid-template-columns: 1fr; }
  .rel-indicadores-ranking-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   SINNC GESTÃO INTEGRADA — Redesign Visual 2025
   Novos estilos: Sidebar azul-marinho, Header, Cards, Login
   ═══════════════════════════════════════════════════════════════ */

/* ── SIDEBAR NOVA IDENTIDADE ─────────────────────────────────── */
.app-sidebar {
  background: linear-gradient(180deg, #0A2E6B 0%, #071D45 100%) !important;
}
.sb-logo { border-bottom: 1px solid rgba(14,165,233,.2) !important; }
.sb-logo:hover { background: rgba(14,165,233,.08) !important; }

.sb-logo-text strong { color: #fff !important; font-size: .88rem !important; }
.sb-logo-text small  { color: #0EA5E9 !important; font-size: .6rem !important; letter-spacing: 1px !important; text-transform: uppercase !important; }

/* Grupo header */
.sb-group-header {
  color: rgba(255,255,255,.75) !important;
  border-left: 3px solid transparent;
}
.sb-group-header:hover { 
  color: #fff !important; 
  background: rgba(14,165,233,.1) !important;
  border-left-color: rgba(14,165,233,.3) !important;
}
.sb-group.open > .sb-group-header {
  color: #0EA5E9 !important;
  background: rgba(14,165,233,.08) !important;
  border-left-color: #0EA5E9 !important;
}
.sb-group-icon { color: rgba(255,255,255,.6) !important; }
.sb-group.open > .sb-group-header .sb-group-icon { color: #0EA5E9 !important; }

/* Itens do menu */
.sb-item { 
  color: rgba(255,255,255,.75) !important;
  border-left: 3px solid transparent !important;
}
.sb-item:hover { 
  color: #fff !important; 
  background: rgba(10,94,176,.5) !important;
  border-left-color: rgba(14,165,233,.5) !important;
}
.sb-item.active {
  color: #fff !important;
  background: #0A5EB0 !important;
  border-left-color: #0EA5E9 !important;
  font-weight: 600 !important;
}
.sb-item-icon { 
  color: rgba(255,255,255,.6) !important; 
  width: 18px !important;
  text-align: center !important;
}
.sb-item.active .sb-item-icon { color: #0EA5E9 !important; }
.sb-item:hover .sb-item-icon { color: #0EA5E9 !important; }

/* Item direto (Dashboard) */
.sb-item-direct { 
  color: rgba(255,255,255,.85) !important;
  font-weight: 600 !important;
}
.sb-item-direct.active {
  color: #fff !important;
  background: #0A5EB0 !important;
  border-left: 3px solid #0EA5E9 !important;
}
.sb-item-direct:hover { 
  background: rgba(14,165,233,.12) !important;
  color: #fff !important;
}

/* Busca sidebar */
.sb-search-input { 
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(14,165,233,.2) !important;
  color: rgba(255,255,255,.9) !important;
}
.sb-search-input:focus { 
  background: rgba(255,255,255,.12) !important;
  border-color: #0EA5E9 !important;
}
.sb-search-input::placeholder { color: rgba(255,255,255,.35) !important; }
.sb-search-icon { color: rgba(255,255,255,.4) !important; }
.sb-search-clear { color: rgba(255,255,255,.5) !important; }

/* Favoritos */
.sb-group-icon-fav { color: #F59E0B !important; }
.sb-star { color: rgba(255,255,255,.2) !important; }
.sb-star:hover, .sb-star-on { color: #F59E0B !important; }
.sb-fav-count { background: #0EA5E9 !important; color: #fff !important; }

/* Divider */
.sb-divider { border-color: rgba(14,165,233,.12) !important; }

/* Flyout (sidebar recolhida) */
.sb-flyout {
  background: #0A2E6B !important;
  border: 1px solid rgba(14,165,233,.3) !important;
  box-shadow: 4px 0 20px rgba(0,0,0,.4) !important;
}
.sb-flyout-header { 
  background: rgba(14,165,233,.15) !important;
  color: #0EA5E9 !important;
  border-bottom: 1px solid rgba(14,165,233,.2) !important;
}

/* Busca resultados */
.sb-search-results { 
  background: #0A2E6B !important;
  border-top: 1px solid rgba(14,165,233,.2) !important;
}
.sb-search-group-label { color: #0EA5E9 !important; }
.sb-search-header { color: rgba(255,255,255,.6) !important; }
.sb-hl { background: rgba(14,165,233,.3) !important; color: #fff !important; }

/* Fav empty */
.sb-fav-empty { color: rgba(255,255,255,.4) !important; }
.sb-fav-empty i { color: rgba(14,165,233,.4) !important; }

/* ── HEADER NOVA IDENTIDADE ──────────────────────────────────── */
.app-header {
  background: #fff !important;
  border-bottom: 1px solid #E2E8F0 !important;
  box-shadow: 0 1px 6px rgba(10,46,107,.08) !important;
}
.header-unit {
  background: #F1F5F9 !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: .3rem .75rem !important;
  color: #0A2E6B !important;
  font-weight: 600 !important;
  font-size: .82rem !important;
}
.header-unit:hover { background: #E3EEF8 !important; }
.header-unit i { color: #0A5EB0 !important; }

.header-avatar { 
  background: linear-gradient(135deg, #0A2E6B, #0A5EB0) !important;
  color: #fff !important;
  font-weight: 700 !important;
}
.header-user-name { color: #0A2E6B !important; font-weight: 700 !important; }
.header-user-role { color: #64748B !important; font-size: .72rem !important; }

.header-logout {
  color: #0A5EB0 !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
}
.header-logout:hover { background: #0A2E6B !important; color: #fff !important; border-color: #0A2E6B !important; }

/* ── TABS BAR ─────────────────────────────────────────────────── */
.tabs-bar {
  background: #F8FAFC !important;
  border-bottom: 1px solid #E2E8F0 !important;
}
.tab-item { color: #64748B !important; }
.tab-item:hover { background: #E3EEF8 !important; color: #0A2E6B !important; }
.tab-item.active { 
  color: #0A2E6B !important;
  border-bottom-color: #0A5EB0 !important;
  font-weight: 600 !important;
}

/* ── FOOTER NOVA IDENTIDADE ─────────────────────────────────── */
.app-footer {
  background: #F8FAFC !important;
  border-top: 1px solid #E2E8F0 !important;
  color: #94A3B8 !important;
  font-size: .7rem !important;
  padding: 0 1.25rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  height: var(--footer-h) !important;
}
.footer-brand { color: #94A3B8 !important; font-size: .7rem !important; }
.footer-env.prod { 
  background: #DCFCE7 !important; 
  color: #15803D !important;
  padding: .15rem .5rem !important;
  border-radius: 4px !important;
  font-size: .65rem !important;
  font-weight: 700 !important;
}
.footer-env.homolog { 
  background: #FEF3C7 !important; 
  color: #92400E !important;
  padding: .15rem .5rem !important;
  border-radius: 4px !important;
  font-size: .65rem !important;
  font-weight: 700 !important;
}

/* ── ÁREA DE TRABALHO ────────────────────────────────────────── */
.app-content { background: #F1F5F9 !important; }

/* ── CARDS NOVA IDENTIDADE ───────────────────────────────────── */
.card {
  background: #fff !important;
  border: 1px solid #E8EFF8 !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 4px rgba(10,46,107,.06) !important;
}
.card:hover {
  box-shadow: 0 3px 12px rgba(10,46,107,.10) !important;
}
.card-header {
  background: #F8FAFC !important;
  border-bottom: 1px solid #E8EFF8 !important;
  color: #0A2E6B !important;
  font-weight: 700 !important;
  font-size: .85rem !important;
}

/* ── STAT CARDS (DASHBOARD) ──────────────────────────────────── */
.stat-card {
  background: #fff !important;
  border: 1px solid #E8EFF8 !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 4px rgba(10,46,107,.06) !important;
  transition: box-shadow .2s, transform .2s !important;
}
.stat-card:hover { 
  box-shadow: 0 4px 16px rgba(10,46,107,.12) !important; 
  transform: translateY(-2px) !important;
}

/* ── PAGE HEADER ─────────────────────────────────────────────── */
.page-header h1 { color: #0A2E6B !important; }
.page-header h2 { color: #0A2E6B !important; }

/* ── BUTTONS ─────────────────────────────────────────────────── */
.btn-primary { background: #0A5EB0 !important; border-color: #0A5EB0 !important; }
.btn-primary:hover { background: #0A2E6B !important; border-color: #0A2E6B !important; }

/* ── BADGES / ALERTS ─────────────────────────────────────────── */
.badge-primary { background: #0A5EB0 !important; }
.badge-info    { background: #0EA5E9 !important; }

/* ── FORM FOCUS ──────────────────────────────────────────────── */
.form-control:focus { border-color: #0EA5E9 !important; box-shadow: 0 0 0 3px rgba(14,165,233,.15) !important; }

/* ── LOGIN NOVA IDENTIDADE ───────────────────────────────────── */
/* A nova tela de login usa fundo humanizado (CSS específico abaixo) */
.login-page-new {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  font-family: 'Montserrat', sans-serif;
}

/* Lado esquerdo — foto da equipe + overlay azul + texto */
.login-left-new {
  position: relative;
  /* Foto real da equipe de saúde ao fundo (camada base) */
  background: #0A2E6B url('/static/img/login-equipe.jpg') no-repeat center right / cover;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem 3.5rem;
  overflow: hidden;
  color: #fff;
}
/* Overlay azul: forte à esquerda (onde fica o texto) e transparente
   à direita, deixando a equipe visível — como na referência. */
.login-left-new::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(100deg,
      rgba(8,35,82,0.97) 0%,
      rgba(10,46,107,0.93) 30%,
      rgba(12,74,150,0.72) 52%,
      rgba(14,120,200,0.34) 72%,
      rgba(14,165,233,0.12) 100%);
  z-index: 0;
}
/* Brilho suave + curvas decorativas por cima do overlay */
.login-left-new::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 12% 18%, rgba(14,165,233,.20) 0%, transparent 45%),
    radial-gradient(circle at 88% 88%, rgba(10,94,176,.26) 0%, transparent 50%);
  pointer-events: none;
  z-index: 0;
}
.login-left-new > * { position: relative; z-index: 1; }

.login-brand-new {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.login-brand-icon {
  width: 56px; height: 56px;
  background: rgba(14,165,233,.2);
  border: 2px solid rgba(14,165,233,.5);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem;
}
.login-brand-text strong {
  display: block;
  font-size: 1.5rem;
  font-weight: 900;
  color: #fff;
  letter-spacing: -.5px;
  line-height: 1;
}
.login-brand-text small {
  font-size: .75rem;
  color: #0EA5E9;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

.login-headline {
  font-size: 2.4rem;
  font-weight: 900;
  line-height: 1.1;
  margin-bottom: .75rem;
  color: #fff;
  /* sombra garante contraste sobre a foto */
  text-shadow: 0 2px 16px rgba(4,20,48,.55);
}
.login-headline span {
  color: #5CC8F5;
  text-shadow: 0 2px 16px rgba(4,20,48,.5);
}

.login-subline {
  font-size: .95rem;
  color: rgba(255,255,255,.88);
  margin-bottom: 2.5rem;
  line-height: 1.5;
  max-width: 380px;
  text-shadow: 0 1px 10px rgba(4,20,48,.5);
}

.login-features-new {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.login-feat-new {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .75rem 1rem;
  /* card translúcido mais opaco para destacar da foto */
  background: rgba(9,38,88,.55);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 4px 18px rgba(4,20,48,.28);
}
.login-feat-new-icon {
  width: 40px; height: 40px;
  background: rgba(14,165,233,.28);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  color: #7FD4F7;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.login-feat-new-title {
  font-weight: 700;
  font-size: .88rem;
  color: #fff;
  line-height: 1.2;
}
.login-feat-new-desc {
  font-size: .75rem;
  color: rgba(255,255,255,.6);
  line-height: 1.3;
}

/* Lado direito — formulário */
.login-right-new {
  background: #F8FAFC;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2.5rem 2rem;
}
.login-card-new {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(10,46,107,.12);
  padding: 2.5rem;
  width: 100%;
  max-width: 380px;
}
.login-lock-icon {
  width: 56px; height: 56px;
  background: linear-gradient(135deg, #E3EEF8, #B3D0EC);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 1.25rem;
  color: #0A5EB0;
  font-size: 1.4rem;
}
.login-card-title-new {
  font-size: 1.3rem;
  font-weight: 800;
  color: #0A2E6B;
  text-align: center;
  margin-bottom: .35rem;
}
.login-card-desc-new {
  font-size: .82rem;
  color: #64748B;
  text-align: center;
  margin-bottom: 1.5rem;
}

/* Footer da tela de login */
.login-footer-new {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid #E2E8F0;
  font-size: .72rem;
  color: #94A3B8;
}
.login-footer-brand {
  font-weight: 700;
  color: #0A5EB0;
}
.login-footer-tag {
  color: #0EA5E9;
  font-style: italic;
}

/* Responsivo login */
@media (max-width: 768px) {
  .login-page-new { grid-template-columns: 1fr; }
  .login-left-new { display: none; }
  .login-right-new { min-height: 100vh; }
}

/* ── DASHBOARD NOVO ──────────────────────────────────────────── */
.dash-perspectives {
  display: flex;
  gap: .35rem;
  background: #F1F5F9;
  border-radius: 8px;
  padding: .25rem;
  border: 1px solid #E2E8F0;
}
.dash-perspective-btn {
  border: none;
  background: transparent;
  padding: .4rem .85rem;
  border-radius: 6px;
  font-size: .8rem;
  font-weight: 600;
  color: #64748B;
  cursor: pointer;
  transition: all .18s;
  white-space: nowrap;
}
.dash-perspective-btn:hover { background: #E3EEF8; color: #0A2E6B; }
.dash-perspective-btn.active { background: #0A5EB0; color: #fff; }

.dash-period-select {
  display: flex;
  align-items: center;
  gap: .35rem;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: .35rem .75rem;
  font-size: .8rem;
  color: #0A2E6B;
  cursor: pointer;
  font-weight: 600;
}

/* Grid 4×2 UPA */
.stats-grid-4x2 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .85rem;
  margin-bottom: 1rem;
}
@media (max-width: 1200px) { .stats-grid-4x2 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .stats-grid-4x2 { grid-template-columns: 1fr; } }

/* Estado vazio */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2.5rem 1.5rem;
  color: #94A3B8;
  text-align: center;
  gap: .75rem;
}
.empty-state-icon { font-size: 2.5rem; opacity: .35; }
.empty-state-title { font-size: .9rem; font-weight: 700; color: #64748B; }
.empty-state-desc  { font-size: .78rem; color: #94A3B8; }
.empty-state.loading .empty-state-icon { animation: spin .8s linear infinite; }

/* Estado não configurado */
.not-configured { 
  background: #FFFBEB !important; 
  border: 1px dashed #FCD34D !important; 
  color: #92400E !important;
}

/* Estado falha */
.state-error { 
  background: #FFF5F5 !important; 
  border: 1px dashed #FC8181 !important;
  color: #C53030 !important;
}

/* Última atualização */
.dash-last-update {
  font-size: .72rem;
  color: #94A3B8;
  display: flex;
  align-items: center;
  gap: .3rem;
}

/* Barra de progresso ocupação */
.occ-bar-wrap { background: #E2E8F0; border-radius: 20px; height: 8px; overflow: hidden; margin: .5rem 0; }
.occ-bar { height: 100%; border-radius: 20px; transition: width .5s; }
.occ-bar.low  { background: #23B160; }
.occ-bar.mid  { background: #F59E0B; }
.occ-bar.high { background: #EF4444; }

/* Alert rápido */
.dash-alert-item {
  display: flex; align-items: center; gap: .75rem;
  padding: .6rem .9rem;
  border-radius: 8px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  cursor: pointer;
  transition: background .15s;
  font-size: .82rem;
}
.dash-alert-item:hover { background: #E3EEF8; }
.dash-alert-sev-1 { border-left: 3px solid #EF4444 !important; }
.dash-alert-sev-2 { border-left: 3px solid #F59E0B !important; }
.dash-alert-sev-3 { border-left: 3px solid #3B82F6 !important; }

/* Acesso rápido */
.quick-access-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
}
.quick-access-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .85rem .5rem;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  cursor: pointer;
  transition: all .18s;
  text-align: center;
}
.quick-access-btn:hover { background: #E3EEF8; border-color: #0A5EB0; transform: translateY(-2px); }
.quick-access-btn i { font-size: 1.3rem; color: #0A5EB0; }
.quick-access-btn span { font-size: .72rem; font-weight: 600; color: #334155; }
.quick-access-btn small { font-size: .65rem; color: #94A3B8; }
@media (max-width: 640px) { .quick-access-grid { grid-template-columns: repeat(2, 1fr); } }

/* Selo de ambiente */
.env-badge {
  font-size: .65rem;
  font-weight: 700;
  padding: .15rem .5rem;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.env-badge.demo { background: #FEF3C7; color: #92400E; }
.env-badge.homolog { background: #DBEAFE; color: #1E40AF; }
.env-badge.prod { background: #DCFCE7; color: #15803D; }


/* ── PAGE HEADER V2 — cabeçalho padronizado para telas internas ─────────── */
.page-header-v2 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding: 1rem 1.25rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
  flex-wrap: wrap;
}
.ph-left { display: flex; align-items: flex-start; gap: .85rem; flex: 1; min-width: 0; }
.ph-icon-wrap {
  width: 42px; height: 42px; min-width: 42px;
  border-radius: 10px;
  background: linear-gradient(135deg, #0A5EB0 0%, #0A2E6B 100%);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 1rem;
  box-shadow: 0 2px 8px rgba(10,46,107,.25);
}
.ph-text { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.ph-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0A2E6B;
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  line-height: 1.3;
  margin: 0;
}
.ph-subtitle {
  font-size: .8rem;
  color: #64748b;
  margin: 0;
  line-height: 1.4;
}
.ph-actions {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}
.ph-badge {
  display: inline-flex;
  align-items: center;
  padding: .2rem .55rem;
  border-radius: 20px;
  font-size: .65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .5px;
  background: #e0f2fe;
  color: #0369a1;
}
.ph-badge-success { background: #dcfce7; color: #15803d; }
.ph-badge-warning { background: #fef9c3; color: #854d0e; }
.ph-badge-danger  { background: #fee2e2; color: #b91c1c; }
.ph-badge-gray    { background: #f1f5f9; color: #475569; }

/* ── EMPTY STATES (estados vazios padronizados) ──────────────────────────── */
.empty-state {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 3rem 2rem;
  text-align: center;
  color: #94a3b8;
  gap: .75rem;
}
.empty-state .es-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: #f1f5f9;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem;
  color: #94a3b8;
  margin-bottom: .25rem;
}
.empty-state .es-title { font-size: .95rem; font-weight: 600; color: #475569; }
.empty-state .es-desc  { font-size: .82rem; color: #94a3b8; max-width: 280px; line-height: 1.5; }

.empty-state.loading .es-icon   { animation: spin 1.2s linear infinite; background: #e0f2fe; color: #0369a1; }
.empty-state.not-configured .es-icon { background: #fef9c3; color: #ca8a04; }
.empty-state.state-error .es-icon    { background: #fee2e2; color: #dc2626; }

@keyframes spin { to { transform: rotate(360deg); } }

/* ── TABELAS PADRÃO ─────────────────────────────────────────────────────── */
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .83rem;
}
.data-table thead tr {
  background: #f8fafc;
  border-bottom: 2px solid #e2e8f0;
}
.data-table thead th {
  padding: .6rem .85rem;
  font-weight: 600;
  color: #475569;
  text-align: left;
  white-space: nowrap;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .4px;
}
.data-table tbody tr {
  border-bottom: 1px solid #f1f5f9;
  transition: background .12s;
}
.data-table tbody tr:hover { background: #f8fafc; }
.data-table tbody td {
  padding: .6rem .85rem;
  color: #334155;
  vertical-align: middle;
}
.data-table tbody tr:last-child { border-bottom: none; }

/* ── CARD WRAPPER para telas internas ───────────────────────────────────── */
.screen-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
  overflow: hidden;
  margin-bottom: 1rem;
}
.screen-card-body { padding: 1.25rem; }
.screen-card-footer {
  padding: .75rem 1.25rem;
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
  display: flex; align-items: center; justify-content: space-between;
  gap: .5rem;
  flex-wrap: wrap;
  font-size: .8rem;
  color: #64748b;
}

/* ════════════════════════════════════════════════════════════
   CAMPO DE REFERÊNCIA A PACIENTE (componente compartilhado)
   Usado por Internação, Consultas, Faturamento e Financeiro.
   ════════════════════════════════════════════════════════════ */
.pacref { position: relative; margin-bottom: 1rem; }
.pacref-box { position: relative; display: flex; align-items: center; }
.pacref-icon {
  position: absolute; left: .85rem;
  color: var(--gray-400, #94a3b8); font-size: .9rem; pointer-events: none;
}
.pacref-input { padding-left: 2.35rem !important; padding-right: 2.35rem !important; }
.pacref-input.pacref-ok {
  border-color: #16a34a;
  background: #f0fdf4;
  font-weight: 600;
}
.pacref-clear {
  position: absolute; right: .5rem;
  width: 26px; height: 26px; border: 0; border-radius: 50%;
  background: var(--gray-200, #e2e8f0); color: var(--gray-600, #475569);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  font-size: .72rem; transition: background .15s;
}
.pacref-clear:hover { background: #fecaca; color: #b91c1c; }

.pacref-results {
  position: absolute; z-index: 9500; left: 0; right: 0; top: 100%;
  margin-top: 4px; max-height: 320px; overflow-y: auto;
  background: #fff; border: 1px solid var(--gray-200, #e2e8f0);
  border-radius: 10px; box-shadow: 0 10px 30px rgba(15,23,42,.14);
}
.pacref-item {
  padding: .6rem .85rem; cursor: pointer;
  border-bottom: 1px solid var(--gray-100, #f1f5f9);
  transition: background .12s;
}
.pacref-item:last-child { border-bottom: 0; }
.pacref-item:hover, .pacref-item:focus {
  background: var(--primary-50, #eff6ff); outline: none;
}
.pacref-item-nome { font-weight: 600; font-size: .88rem; color: var(--gray-800, #1e293b); }
.pacref-item-nome i { color: var(--primary, #0EA5E9); margin-right: .4rem; font-size: .8rem; }
.pacref-item-det { font-size: .75rem; color: var(--gray-500, #64748b); margin-top: .15rem; padding-left: 1.2rem; }

.pacref-msg {
  padding: .9rem; text-align: center;
  font-size: .82rem; color: var(--gray-500, #64748b);
}
.pacref-msg.pacref-erro { color: #b91c1c; }
.pacref-msg i { margin-right: .35rem; }

.pacref-selected {
  margin-top: .45rem; padding: .5rem .7rem;
  background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px;
  font-size: .8rem; color: #166534;
}
.pacref-selected i { margin-right: .35rem; }
.pacref-sel-det { display: block; font-size: .73rem; color: #15803d; margin-top: .12rem; }
.pacref-badge-inativo {
  display: inline-block; margin-left: .4rem; padding: .05rem .4rem;
  background: #fef3c7; color: #92400e; border-radius: 4px;
  font-size: .66rem; font-weight: 700; letter-spacing: .3px;
}

/* ── TOPO/RODAPÉ RECOLHÍVEIS ─────────────────────────────────── */
.barras-restaurar { display: none; }
body.barras-recolhidas .app-wrapper { grid-template-rows: 0 var(--tabs-h) 1fr 0; }
body.barras-recolhidas .app-header,
body.barras-recolhidas .app-footer { display: none !important; }
body.barras-recolhidas .tabs-bar { padding-right: 110px; }
body.barras-recolhidas .barras-restaurar {
  display: inline-flex; align-items: center; gap: .35rem;
  position: fixed; top: 7px; right: 10px; z-index: 900;
  height: 28px; padding: 0 .7rem; border-radius: 14px;
  border: 1px solid #BFDBFE; background: #fff; color: #004B8D;
  font-size: .72rem; font-weight: 700; cursor: pointer;
  box-shadow: 0 2px 8px rgba(10,46,107,.15); transition: background .15s, transform .15s;
}
body.barras-recolhidas .barras-restaurar:hover { background: #EFF6FF; transform: translateY(1px); }
body.barras-recolhidas #toast-container { top: 50px; }
body.barras-recolhidas .dg-pdf .ap-visor-area { height: calc(100vh - 130px); }
body.barras-recolhidas .dg-corpo.pdf-recolhido .dg-pdf-aba { height: calc(100vh - 108px); }
body.barras-recolhidas .dg-pdf.maximizado .ap-visor-area { height: calc(100vh - 20px) !important; }
@media (max-width: 640px) {
  body.barras-recolhidas .barras-restaurar span { display: none; }
  body.barras-recolhidas .tabs-bar { padding-right: 50px; }
}
