/* ============================================================
   SINNC UPA24H — Design System Institucional
   Paleta: Azul #004B8D | Verde #23B160 | Laranja #F7941D
   ============================================================ */

/* ── VARIÁVEIS ────────────────────────────────────────────── */
:root {
  --primary:       #004B8D;
  --primary-dark:  #003670;
  --primary-light: #0060B6;
  --primary-50:    #E3EEF8;
  --primary-100:   #B3D0EC;
  --secondary:     #23B160;
  --secondary-dark:#1A8A4A;
  --secondary-50:  #E8F8EF;
  --accent:        #F7941D;
  --accent-dark:   #D97A10;
  --accent-50:     #FEF3E2;

  --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, #002B5E 0%, var(--primary-dark) 60%, #001a3e 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(255,255,255,.2); 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; }

/* ── 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;
}
.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 ───────────────────────────────────────────────── */
#toast-container {
  position: fixed; bottom: 1.25rem; right: 1.25rem;
  z-index: 9999;
  display: flex; flex-direction: column; gap: .5rem;
}
.toast {
  display: flex; align-items: center; gap: .6rem;
  padding: .82rem 1rem;
  border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(0,0,0,.16);
  font-size: .82rem; font-weight: 500;
  min-width: 260px; max-width: 380px;
  animation: slideInRight .3s cubic-bezier(.34,1.4,.64,1), fadeOut .35s ease 3.2s forwards;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(0,0,0,.06);
}
@keyframes slideInRight { from { opacity: 0; transform: translateX(40px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes fadeOut { to { opacity: 0; transform: translateX(20px) scale(.95); } }
.toast.success { background: rgba(232,245,233,.97); color: #2E7D32; border-left: 4px solid #2E7D32; }
.toast.error   { background: rgba(255,235,238,.97); color: #C62828; border-left: 4px solid #C62828; }
.toast.warning { background: rgba(255,248,225,.97); color: #F57F17; border-left: 4px solid #F57F17; }
.toast.info    { background: rgba(227,242,253,.97); color: #1565C0; border-left: 4px solid #1565C0; }

/* ── 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 ────────────────────────────────────────────── */
.painel-page {
  background: linear-gradient(135deg, #001A3E 0%, #002D6B 50%, #001A3E 100%);
  min-height: 100vh;
  padding: 1.5rem;
  color: white;
}
.painel-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255,255,255,.15);
}
.painel-title { font-size: 1.5rem; 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; }

/* ══════════════════════════════════════════════════════════════
   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: .4rem;
}
/* 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;
  flex-wrap: nowrap;
  gap: .3rem;
  align-items: center;
  justify-content: flex-end;
}
.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); }
/* Botão Imprimir — ícone puro */
.pac-btn-acao[title="Imprimir"] { opacity: .75; }
.pac-btn-acao[title="Imprimir"]:hover { opacity: 1; }

/* 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 — Full Screen
══════════════════════════════════════════════════════════════ */
.painel-fullscreen-mode { overflow: hidden; }
.painel-fullscreen-mode #sidebar,
.painel-fullscreen-mode #tabs-bar,
.painel-fullscreen-mode header,
.painel-fullscreen-mode .main-header { display: none !important; }
.painel-fullscreen-mode #app { width: 100vw !important; height: 100vh !important; padding: 0 !important; }

.painel-tv-wrapper {
  width: 100vw; height: 100vh;
  background: #0a1628; color: #fff;
  display: flex; flex-direction: column;
  font-family: 'Segoe UI', system-ui, sans-serif;
  overflow: hidden;
}

/* HEADER */
.painel-tv-header {
  background: linear-gradient(90deg, #0d1e3d, #0a2a5e);
  padding: .75rem 1.5rem; display: flex; align-items: center; gap: 1.5rem;
  border-bottom: 2px solid #1e3a6e; flex-shrink: 0;
}
.painel-tv-logo { display: flex; align-items: center; gap: .75rem; }
.painel-tv-logo-icon { flex-shrink: 0; }
.painel-tv-brand { font-size: 1.6rem; font-weight: 900; letter-spacing: 1px; color: #fff; line-height: 1; }
.painel-tv-brand-sub { font-size: .85rem; font-weight: 600; color: #90caf9; }
.painel-tv-24 { color: #FFD54F; font-weight: 900; }
.painel-tv-sep { width: 1px; height: 40px; background: rgba(255,255,255,.2); flex-shrink: 0; }
.painel-tv-unidade { display: flex; align-items: center; gap: .6rem; }
.painel-tv-unidade-icon { font-size: 1.4rem; color: #64b5f6; }
.painel-tv-unidade-label { font-size: .7rem; color: #90caf9; }
.painel-tv-unidade-nome { font-size: .95rem; font-weight: 700; }
.painel-tv-datetime { display: flex; flex-direction: column; gap: .2rem; align-items: flex-end; }
.painel-tv-date-row, .painel-tv-time-row {
  display: flex; align-items: center; gap: .4rem; font-size: .85rem;
}
.painel-tv-date-row { color: #90caf9; }
.painel-tv-time-row { font-size: 1.4rem; font-weight: 800; color: #FFD54F; }

/* MAIN GRID */
.painel-tv-main {
  display: grid; grid-template-columns: 1fr 380px;
  gap: 0; flex: 1; overflow: hidden; padding: .75rem;
}
.painel-tv-left { display: flex; flex-direction: column; gap: .75rem; overflow: hidden; }
.painel-tv-right { display: flex; flex-direction: column; gap: .75rem; padding-left: .75rem; overflow: hidden; }

/* SECTION TITLE */
.painel-tv-section-title {
  font-size: .78rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.5px; color: #90caf9; margin-bottom: .6rem;
  display: flex; align-items: center; gap: .4rem;
}
.painel-tv-pulse { animation: pulseSq 1.2s ease-in-out infinite; }
@keyframes pulseSq { 0%,100%{opacity:1} 50%{opacity:.4} }

/* CHAMANDO AGORA */
.painel-tv-chamando { flex-shrink: 0; }
.painel-tv-chamadas-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: .75rem;
}
.painel-tv-chamada-card {
  background: linear-gradient(135deg, #0d1e3d, #112244);
  border: 1.5px solid #1e3a6e; border-radius: 14px; padding: 1rem;
}
.painel-tv-chamada-principal {
  border-color: #1565C0; background: linear-gradient(135deg, #0a1628, #0d2a5e);
  box-shadow: 0 0 20px rgba(21,101,192,.3);
}
.painel-tv-chamada-empty {
  grid-column: 1/-1; text-align: center; padding: 2rem;
  border-style: dashed; opacity: .5;
}
.painel-tv-empty-icon { font-size: 2rem; margin-bottom: .5rem; color: #4a6fa5; }
.painel-tv-empty-text { color: #6b7280; }

.painel-tv-ch-row { display: flex; gap: .5rem; margin-bottom: .5rem; }
.painel-tv-ch-col { flex: 1; }
.painel-tv-ch-col-right { text-align: right; }
.painel-tv-ch-label { font-size: .6rem; text-transform: uppercase; letter-spacing: 1px; color: #90caf9; margin-bottom: .2rem; }
.painel-tv-ch-senha { font-size: 2.4rem; font-weight: 900; color: #FFD54F; letter-spacing: 2px; line-height: 1; }
.painel-tv-ch-paciente { font-size: 1.1rem; font-weight: 700; color: #fff; }
.painel-tv-ch-risco {
  display: inline-block; padding: .25rem .6rem; border-radius: 6px;
  font-size: .75rem; font-weight: 800; color: #fff; text-transform: uppercase; letter-spacing: .5px;
}
.painel-tv-ch-tempo { font-size: 1rem; font-weight: 700; color: #fff; display: flex; align-items: center; gap: .3rem; }
.painel-tv-ch-sala { font-size: .9rem; font-weight: 600; color: #64b5f6; display: flex; align-items: center; gap: .3rem; }
.painel-tv-ch-live { display: flex; align-items: center; gap: .4rem; justify-content: flex-end; }
.painel-tv-live-dot {
  width: 8px; height: 8px; border-radius: 50%; background: #22c55e;
  animation: livePulse 1.5s ease-in-out infinite;
}
@keyframes livePulse { 0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.5)} 50%{box-shadow:0 0 0 6px rgba(34,197,94,0)} }

/* PRÓXIMOS */
.painel-tv-proximos { flex: 1; overflow: hidden; display: flex; flex-direction: column; }
.painel-tv-proximos-table-wrap { flex: 1; overflow-y: auto; border-radius: 10px; }
.painel-tv-proximos-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.painel-tv-proximos-table thead tr { background: #0d1e3d; }
.painel-tv-proximos-table th {
  padding: .5rem .75rem; text-align: left; font-size: .68rem;
  text-transform: uppercase; letter-spacing: 1px; color: #90caf9; font-weight: 700;
}
.painel-tv-proximos-table tbody tr { border-bottom: 1px solid rgba(255,255,255,.05); }
.painel-tv-proximos-table tbody tr:hover { background: rgba(255,255,255,.03); }
.painel-tv-proximos-table td { padding: .5rem .75rem; color: #e2e8f0; }
.painel-tv-prox-senha {
  display: inline-block; background: #1e3a6e; color: #FFD54F;
  font-weight: 800; padding: .2rem .55rem; border-radius: 6px; font-size: .85rem;
}
.painel-tv-prox-risco {
  display: inline-block; padding: .15rem .45rem; border-radius: 4px;
  font-size: .65rem; font-weight: 800; color: #fff; text-transform: uppercase;
}

/* VIDEO */
.painel-tv-video { flex-shrink: 0; }
.painel-tv-video-box {
  background: #0d1e3d; border: 1.5px solid #1e3a6e; border-radius: 12px;
  aspect-ratio: 16/9; max-height: 160px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; overflow: hidden; position: relative;
}
.painel-tv-video-play { display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.painel-tv-video-btn {
  width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center; font-size: 1.2rem; color: #fff;
}
.painel-tv-video-caption { font-size: .8rem; color: #90caf9; text-align: center; padding: .5rem; }
.painel-tv-video-marquee {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: rgba(0,0,0,.6); padding: .35rem .75rem; font-size: .72rem; color: #FFD54F;
  overflow: hidden; white-space: nowrap;
}
.painel-tv-video-marquee span {
  display: inline-block; animation: marquee 30s linear infinite;
}
@keyframes marquee { 0%{transform:translateX(100vw)} 100%{transform:translateX(-100%)} }

/* RESUMO */
.painel-tv-resumo-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: .5rem;
}
.painel-tv-resumo-card {
  background: #0d1e3d; border: 1.5px solid #1e3a6e; border-radius: 10px;
  padding: .65rem .75rem; text-align: center;
  border-top: 3px solid var(--card-color, #1565C0);
}
.painel-tv-resumo-icon { font-size: 1.1rem; margin-bottom: .2rem; color: var(--card-color, #64b5f6); }
.painel-tv-resumo-label { font-size: .58rem; text-transform: uppercase; letter-spacing: .8px; color: #90caf9; }
.painel-tv-resumo-num { font-size: 1.8rem; font-weight: 900; color: #fff; line-height: 1; }

/* LEGENDA */
.painel-tv-legenda { flex-shrink: 0; }
.painel-tv-legenda-grid { display: flex; gap: .4rem; flex-wrap: wrap; }
.painel-tv-leg-item {
  flex: 1; min-width: 50px; border-radius: 8px; padding: .45rem .5rem;
  text-align: center; display: flex; flex-direction: column; gap: .15rem;
}
.painel-tv-leg-cor { font-size: .65rem; font-weight: 800; color: #fff; letter-spacing: .5px; text-transform: uppercase; }
.painel-tv-leg-desc { font-size: .55rem; color: rgba(255,255,255,.8); }

/* FOOTER */
.painel-tv-footer {
  display: flex; align-items: center; justify-content: space-between;
  background: #0d1e3d; padding: .5rem 1.5rem; border-top: 1px solid #1e3a6e;
  font-size: .68rem; color: #90caf9; flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════
   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 {
  display: flex;
  gap: .5rem;
  padding: .55rem 0;
  border-bottom: 1px solid #ede9fe;
}
.ia-sb-item-atual {
  background: #f0fdf4;
  margin: 0 -.75rem;
  padding: .55rem .75rem;
  border-left: 3px solid #10b981;
}
.ia-sb-item-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  margin-top: 4px;
  flex-shrink: 0;
}
.ia-sb-item-body { flex: 1; min-width: 0; }
.ia-sb-item-date {
  display: flex;
  align-items: center;
  gap: .3rem;
  flex-wrap: wrap;
  font-size: .72rem;
  color: var(--gray-500);
  margin-bottom: .2rem;
}
.ia-sb-item-queixa {
  font-weight: 600;
  color: var(--gray-800);
  font-size: .8rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ia-sb-item-field {
  color: var(--gray-600);
  font-size: .75rem;
  margin-top: .15rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ia-sb-item-status { margin-top: .2rem; }
.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 */
.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;
}
.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 {
  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: .55rem .75rem .55rem .9rem;
  cursor: pointer;
  color: rgba(255,255,255,.45);
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: color .15s, background .15s;
  user-select: none;
  border-radius: 6px;
  margin: 1px .5rem 0;
  white-space: nowrap;
  overflow: hidden;
}
.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: center; gap: .55rem;
  overflow: hidden;
}
.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;
}

/* 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; }
.app-sidebar.collapsed .sb-group-label { opacity: 0; width: 0; }
.app-sidebar.collapsed .sb-group-arrow { opacity: 0; width: 0; }
.app-sidebar.collapsed .sb-group-header { justify-content: center; padding: .55rem 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; padding-left: 0; }
.app-sidebar.collapsed .sb-item-direct span { opacity: 0; width: 0; }
.app-sidebar.collapsed .sb-divider { margin: .25rem .75rem .5rem; }

/* 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;
}

/* ═══════════════════════════════════════════════════════════
   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 */
.tri-col-side { display: flex; flex-direction: column; gap: .85rem; }
.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 */
.tri-hist-item {
  padding: .5rem 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: .78rem;
}
.tri-hist-item:last-child { border-bottom: none; }
.tri-hist-data { color: #94a3b8; font-size: .72rem; }
.tri-hist-queixa { color: #374151; font-weight: 600; }
.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;
}
