/* ══════════════════════════════════════════
   VARIABLES & RESET
══════════════════════════════════════════ */
:root {
  /* Marca */
  --primary:        #1a4480;
  --primary-dark:   #0f2d54;
  --primary-light:  #dce8f5;
  --secondary:      #2c6ea6;
  /* Semânticas */
  --success:        #276749;
  --success-light:  #e6f4ec;
  --warning:        #7a4f00;
  --warning-light:  #fdf5e6;
  --danger:         #991b1b;   /* convergido (era #9b1c1c); dark reds usam este token */
  --danger-bright:  #dc2626;   /* vermelho de alerta/ativo (mais brilhante) */
  --danger-light:   #fdf0f0;
  --neutral:        #5a6472;
  --neutral-light:  #f0f2f5;
  /* Superfícies e texto */
  --bg:             #eaecf0;
  --card-bg:        #ffffff;
  --text:           #1a1a1a;
  --text-muted:     #5a6472;
  --text-faint:     #64748b;   /* texto secundário/hint — contraste AA (substitui #94a3b8) */
  --border:         #c8cdd4;
  /* Aliases — nomes alternativos referenciados por regras antigas que apontavam
     para tokens nunca definidos; sem isto, essas regras ficavam silenciosamente mortas */
  --hover-bg:       #f1f5f9;
  --hover:          var(--hover-bg);
  --bg-hover:       var(--hover-bg);
  --bg-card:        var(--card-bg);
  --surface:        #f8fafc;
  --text-primary:   var(--text);
  --text-main:      var(--text);
  --text-secondary: var(--text-muted);
  /* Raio — subido de 3/2 para 6/4 (linguagem mais moderna, alinha com telas novas) */
  --radius:         6px;
  --radius-sm:      4px;
  /* Sombras */
  --shadow-sm:      0 1px 2px rgba(0,0,0,0.07);
  --shadow:         0 1px 4px rgba(0,0,0,0.09);
  --shadow-lg:      0 2px 10px rgba(0,0,0,0.13);
  /* Escala tipográfica — consolida os ~24 tamanhos ad-hoc num conjunto único */
  --fs-3xs:   9px;
  --fs-2xs:  10px;
  --fs-xs:   11px;
  --fs-sm:   12px;
  --fs-base: 13px;
  --fs-md:   15px;
  --fs-lg:   18px;
  --fs-xl:   22px;
  --fs-2xl:  28px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: 'Inter', system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  font-size: var(--fs-base);
}

/* ══════════════════════════════════════════
   PAGE SYSTEM
══════════════════════════════════════════ */
.page { display: none; min-height: 100vh; }
.page.active { display: flex; flex-direction: column; }

/* ══════════════════════════════════════════
   LOGIN PAGE
══════════════════════════════════════════ */
.login-wrap {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: linear-gradient(180deg, #eef3f9 0%, var(--bg) 58%);
  padding: 24px;
}
.login-card {
  width: 100%; max-width: 384px;
  background: var(--card-bg); border: 1px solid var(--border);
  border-radius: 12px; padding: 40px 34px;
  box-shadow: 0 12px 44px rgba(15,45,84,0.10), 0 1px 3px rgba(0,0,0,0.04);
  display: flex; flex-direction: column; gap: 16px;
}
.login-logo {
  display: flex; align-items: center; gap: 10px;
  justify-content: center; margin-bottom: 0;
}
.login-logo-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 11px; flex-shrink: 0;
  background: var(--primary); color: #fff;
}
.login-logo-badge svg { width: 22px; height: 22px; }
.login-logo-text { font-size: var(--fs-xl); font-weight: 400; color: var(--primary-dark); letter-spacing: -0.01em; }
.login-logo-text strong { font-weight: 800; }
.login-alpha {
  font-size: 9px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--warning); background: #fef3c7; border: 1px solid #fde68a;
  padding: 2px 7px; border-radius: 20px;
}
.login-tagline {
  text-align: center; margin: -4px 0 6px; font-size: var(--fs-sm);
  color: var(--text-faint); font-weight: 500;
}
.login-title {
  font-size: var(--fs-md); font-weight: 700; color: var(--text);
  text-align: center; margin: 0;
}
.login-card .form-group { gap: 6px; }
.login-card .form-group label { font-size: var(--fs-xs); }
.login-card input {
  width: 100%; padding: 11px 12px; font-size: var(--fs-base);
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: #fff; color: var(--text); font-family: inherit;
  box-sizing: border-box; outline: none;
  transition: border-color .12s, box-shadow .12s;
}
.login-card input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(26,68,128,0.12); }
.login-card .btn-large { width: 100%; justify-content: center; margin-top: 6px; padding: 12px 24px; font-size: var(--fs-base); }
.login-switch {
  text-align: center; font-size: var(--fs-sm); color: var(--text-muted); margin: 0;
}
.login-switch a { color: var(--primary); text-decoration: none; font-weight: 600; }
.login-switch a:hover { text-decoration: underline; }
.login-privacy {
  text-align: center; font-size: var(--fs-xs); color: var(--text-muted);
  margin-top: 20px; opacity: 0.7;
}
.login-privacy a { color: var(--text-muted); text-decoration: underline; }
.login-privacy a:hover { color: var(--primary); }

/* ── Marca alternável (round padrão; sala vermelha sob html.sv-host) ── */
.brand-sv { display: none; }
html.sv-host .brand-round { display: none; }
html.sv-host .brand-sv { display: inline; }
html.sv-host .login-logo .brand-sv { display: inline-flex; align-items: center; }

/* ── Tema sala vermelha na tela de login ── */
html.sv-host .login-wrap {
  background: linear-gradient(180deg, #fdecea 0%, var(--bg) 58%);
}
html.sv-host .login-logo-badge.sv-badge {
  background: var(--danger-bright);
}
html.sv-host .login-logo-text { color: var(--danger); }
html.sv-host .login-card input:focus {
  border-color: var(--danger-bright);
  box-shadow: 0 0 0 3px rgba(220,38,38,0.14);
}
html.sv-host .login-card .btn-primary {
  background: var(--danger-bright); border-color: var(--danger);
}
html.sv-host .login-card .btn-primary:hover:not(:disabled) { background: var(--danger); }
html.sv-host .login-switch a,
html.sv-host .login-privacy a:hover { color: var(--danger-bright); }

/* Banner de verificação de email (gate suave, topo do app) */
.verify-banner {
  display: flex; align-items: center; gap: 12px; justify-content: center; flex-wrap: wrap;
  background: #fef3c7; color: var(--warning); border-bottom: 1px solid #fde68a;
  padding: 8px 16px; font-size: var(--fs-sm); font-weight: 500;
}
.verify-banner-btn {
  background: var(--warning); color: #fff; border: none; border-radius: var(--radius-sm);
  padding: 5px 12px; font-size: var(--fs-xs); font-weight: 700; cursor: pointer; font-family: inherit;
}
.verify-banner-btn:disabled { opacity: .6; cursor: default; }
.verify-banner-close {
  background: none; border: none; color: var(--warning); cursor: pointer; font-size: 14px;
  padding: 2px 6px; opacity: .65; font-family: inherit; line-height: 1;
}
.verify-banner-close:hover { opacity: 1; }

/* ══════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════ */
.btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 16px; border-radius: var(--radius);
  font-size: var(--fs-base); font-weight: 500; cursor: pointer;
  border: 1px solid transparent; transition: background 0.12s, border-color 0.12s;
  text-decoration: none; white-space: nowrap; letter-spacing: 0.1px;
}
.btn:disabled { opacity: 0.55; cursor: not-allowed; }
.btn-primary { background: var(--primary); color: #fff; border-color: var(--primary-dark); }
.btn-primary:hover:not(:disabled) { background: var(--primary-dark); }
.btn-outline { background: #fff; color: var(--primary); border: 1px solid var(--primary); }
.btn-outline:hover { background: var(--primary-light); }
.btn-ghost { background: transparent; color: var(--text-muted); border-color: transparent; }
.btn-ghost:hover { background: var(--neutral-light); color: var(--text); }
.btn-danger { background: var(--danger); color: #fff; border-color: #7a1515; }
.btn-danger:hover { background: #7a1515; }
.btn-teal { background: #155e75; color: #fff; border-color: #0e4057; }
.btn-teal:hover:not(:disabled) { background: #0e4057; }
.btn-sm { padding: 5px 12px; font-size: var(--fs-sm); }
.btn-large { padding: 10px 24px; font-size: 14px; }
.btn-icon { padding: 6px 10px; }

/* ── SVG Icons ── */
.ico {
  display: inline-block; vertical-align: middle;
  width: 14px; height: 14px; flex-shrink: 0;
}
.ico-sm  { width: 12px; height: 12px; }
.ico-lg  { width: 20px; height: 20px; }
.ico-xl  { width: 48px; height: 48px; stroke-width: 1.2; }
.ico-hospital  { }
.ico-emergency { }
.logo-icon .ico  { width: 18px; height: 18px; }
.search-icon .ico { width: 13px; height: 13px; }
.mode-opt-icon .ico { width: 20px; height: 20px; }
.empty-icon .ico { width: 56px; height: 56px; stroke-width: 1.2; opacity: 0.25; }
.boot-logo .ico { width: 48px; height: 48px; stroke: #0ea5e9; }
.processing-dots-icon .ico { width: 14px; height: 14px; }
.btn > .ico { margin-right: 2px; }
.btn-section-edit .ico, .btn-inline-edit .ico { }

/* ══════════════════════════════════════════
   EMPTY STATE
══════════════════════════════════════════ */
.empty-state {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 14px; padding: 80px 24px; text-align: center;
}
.empty-state.hidden { display: none; }
.empty-icon { line-height: 1; opacity: 0.5; }
.empty-state h2 { font-size: var(--fs-lg); font-weight: 600; color: var(--text); }
.empty-state p { font-size: var(--fs-base); color: var(--text-muted); max-width: 300px; }

/* ══════════════════════════════════════════
   HEADERS (shared)
══════════════════════════════════════════ */
.input-header {
  background: var(--primary-dark); border-bottom: 2px solid #0a1e38;
  padding: 0 24px; display: flex; align-items: center;
  justify-content: space-between; gap: 16px;
  position: sticky; top: 0; z-index: 10; height: 48px; flex-shrink: 0;
}
.btn-back { font-size: var(--fs-sm); font-weight: 500; color: rgba(255,255,255,.75); background: transparent; border-color: transparent; }
.btn-back:hover { color: #fff; background: rgba(255,255,255,.1); border-color: transparent; }
/* btn-back sobrescreve o ghost genérico de header */
.dash-header .btn-back,
.emerg-header .btn-back,
.emerg-input-header .btn-back,
.input-header .btn-back { background: transparent; border-color: transparent; }
.input-page-hint {
  font-size: var(--fs-xs); color: rgba(255,255,255,.45); letter-spacing: 0.2px;
}
.input-page-hint kbd {
  display: inline-block; padding: 0 5px; border-radius: 3px;
  border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.7); font-size: var(--fs-2xs); font-family: inherit;
}

.logo {
  display: flex; align-items: center; gap: 8px;
  font-size: 16px; color: #fff; text-decoration: none;
}
.logo-icon { font-size: var(--fs-lg); }
.logo-text { font-weight: 400; letter-spacing: 0.2px; color: rgba(255,255,255,.85); }
.logo-text strong { color: #fff; font-weight: 700; }

/* ══════════════════════════════════════════
   INPUT PAGE
══════════════════════════════════════════ */
.banner-existing {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.15); color: rgba(255,255,255,.9);
  padding: 4px 12px; border-radius: var(--radius); font-size: var(--fs-sm);
}
.banner-existing.hidden { display: none; }

.input-main {
  flex: 1; display: flex; align-items: flex-start;
  justify-content: center; padding: 32px 24px;
}

.input-card {
  background: var(--card-bg); border: 1px solid var(--border);
  box-shadow: var(--shadow); padding: 32px; width: 100%; max-width: 760px;
  display: flex; flex-direction: column; gap: 20px; border-radius: var(--radius);
}
.input-card-header h1 { font-size: 20px; font-weight: 700; color: var(--text); margin-bottom: 4px; }
.subtitle { color: var(--text-muted); font-size: var(--fs-base); line-height: 1.55; }

/* ── Abas da página de novo atendimento ── */
.emerg-input-tab-bar {
  display: flex; gap: 0; border-bottom: 1px solid var(--border);
  margin-top: 12px; margin-bottom: 4px;
}
.emerg-input-tab {
  padding: 8px 18px; font-size: var(--fs-base); font-weight: 500;
  color: var(--text-muted); background: none; border: none;
  border-bottom: 2px solid transparent; cursor: pointer;
  transition: color .15s, border-color .15s; margin-bottom: -1px;
}
.emerg-input-tab:hover { color: var(--text); }
.emerg-input-tab.emerg-input-tab-active { color: var(--danger-bright); border-bottom-color: var(--danger-bright); }

/* ── Formulário manual ── */
.emerg-manual-row {
  display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap;
}
.emerg-manual-col-grow { flex: 1; min-width: 180px; }
.emerg-manual-col-fixed { flex-shrink: 0; }

.emerg-manual-sexo-row { display: flex; gap: 6px; }
.emerg-manual-sexo-btn {
  padding: 5px 14px; font-size: var(--fs-base); font-weight: 600;
  border: 1px solid var(--border); border-radius: var(--radius);
  background: var(--card-bg); color: var(--text-muted); cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.emerg-manual-sexo-btn.active {
  background: var(--primary); color: #fff; border-color: var(--primary);
}

/* ── Chips de triagem e status ── */
.emerg-manual-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.emerg-manual-chip {
  padding: 5px 14px; font-size: var(--fs-sm); font-weight: 600; text-transform: uppercase;
  letter-spacing: .04em; border-radius: 20px; cursor: pointer;
  border: 2px solid transparent; background: var(--hover); color: var(--text-muted);
  transition: all .15s;
}
.emerg-manual-chip:hover { filter: brightness(1.1); }
.emerg-chip-vermelho { border-color: var(--danger-bright); }
.emerg-chip-laranja  { border-color: #ea580c; }
.emerg-chip-amarelo  { border-color: #ca8a04; }
.emerg-chip-verde    { border-color: #16a34a; }
.emerg-chip-azul     { border-color: #2563eb; }
.emerg-manual-chip-active.emerg-chip-vermelho { background: var(--danger-bright); color: #fff; }
.emerg-manual-chip-active.emerg-chip-laranja  { background: #ea580c; color: #fff; }
.emerg-manual-chip-active.emerg-chip-amarelo  { background: #ca8a04; color: #fff; }
.emerg-manual-chip-active.emerg-chip-verde    { background: #16a34a; color: #fff; }
.emerg-manual-chip-active.emerg-chip-azul     { background: #2563eb; color: #fff; }
.emerg-chip-status { border-color: var(--border); }
.emerg-manual-chip-active.emerg-chip-observacao { background: #b45309; color: #fff; border-color: #b45309; }
.emerg-manual-chip-active.emerg-chip-reanimacao { background: var(--danger-bright); color: #fff; border-color: var(--danger-bright); }
.emerg-manual-chip-active.emerg-chip-medicacao  { background: #1e40af; color: #fff; border-color: #1e40af; }

.input-context-strip {
  display: flex; flex-wrap: wrap; gap: 8px 4px; align-items: center;
  padding: 8px 12px; border-radius: var(--radius);
  background: var(--neutral-light); border: 1px solid var(--border);
  font-size: var(--fs-xs); color: var(--text-muted);
}
.input-context-item { white-space: nowrap; }
.input-context-item strong { color: var(--text); }
.input-context-sep { color: var(--border); font-size: 14px; }

.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group label { font-size: var(--fs-sm); font-weight: 600; color: var(--text); text-transform: uppercase; letter-spacing: 0.4px; }

textarea {
  width: 100%; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: var(--radius);
  font-family: 'Inter', monospace; font-size: var(--fs-base); line-height: 1.65;
  resize: vertical; color: var(--text); background: #fcfcfc;
  transition: border-color 0.12s;
}
textarea:focus { outline: none; border-color: var(--primary); background: #fff; }
textarea::placeholder { color: #9ca3af; }

.char-count { font-size: var(--fs-xs); color: var(--text-muted); text-align: right; }
.label-required { color: var(--danger); }
.label-optional { color: var(--text-muted); font-weight: 400; font-size: var(--fs-xs); text-transform: none; letter-spacing: 0; margin-left: 4px; }
.field-hint { font-size: var(--fs-xs); color: var(--text-muted); margin-bottom: 4px; line-height: 1.5; }
.form-divider {
  display: flex; align-items: center; gap: 10px;
  color: var(--text-muted); font-size: var(--fs-xs); font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.6px;
}
.form-divider::before, .form-divider::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}
.form-divider-toggle { cursor: pointer; user-select: none; }
.form-divider-toggle:hover { color: var(--text); }
.form-divider-chevron { font-size: var(--fs-3xs); transition: transform .2s; }
#exames-section { overflow: hidden; transition: max-height .25s ease, opacity .2s; max-height: 600px; opacity: 1; }
#exames-section.exames-collapsed { max-height: 0; opacity: 0; pointer-events: none; }
.lab-source-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: var(--fs-2xs); font-weight: 600;
  background: var(--success-light); color: var(--success); border: 1px solid #b2d8c2;
  padding: 1px 7px; border-radius: var(--radius); margin-left: 6px;
}
.lab-source-evo { background: var(--primary-light); color: var(--primary); border-color: #aac8e8; }

.input-actions { display: flex; gap: 10px; align-items: center; }

.error-box {
  background: var(--danger-light); border: 1px solid #e8b4b4; border-left: 3px solid var(--danger);
  border-radius: var(--radius); padding: 10px 14px;
  color: var(--danger); font-size: var(--fs-base);
}
.error-box.hidden { display: none; }

/* ══════════════════════════════════════════
   EVOLUTION PAGE
══════════════════════════════════════════ */
#page-evolution { display: none; flex-direction: column; min-height: 100vh; }
#page-evolution.active { display: flex; }
.evolution-page-main {
  flex: 1; display: flex; flex-direction: column;
  padding: 20px 28px 28px; max-width: 900px; width: 100%; margin: 0 auto; box-sizing: border-box;
}
.evolution-page-meta {
  font-size: var(--fs-sm); font-weight: 600; color: var(--text-muted);
  margin-bottom: 12px; letter-spacing: 0.2px; text-transform: uppercase;
}
.evolution-page-textarea {
  flex: 1; width: 100%; min-height: calc(100vh - 140px);
  padding: 20px 24px; box-sizing: border-box;
  font-family: 'Courier New', Courier, monospace; font-size: var(--fs-base); line-height: 1.8;
  color: var(--text); background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius); resize: none; outline: none;
  box-shadow: var(--shadow);
}
.evolution-page-textarea:focus { border-color: var(--primary); }

.copy-verdana-hint {
  position: absolute; top: calc(100% + 4px); left: 50%;
  transform: translateX(-50%) translateY(-4px);
  font-size: var(--fs-2xs); color: var(--text-muted); white-space: nowrap;
  background: #fff; border: 1px solid var(--border);
  border-radius: 4px; padding: 2px 7px;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
  opacity: 0; transition: opacity 0.2s, transform 0.2s;
  pointer-events: none; z-index: 10;
}
.copy-verdana-hint.visible {
  opacity: 1; transform: translateX(-50%) translateY(0);
}

/* ══════════════════════════════════════════
   TABLE PAGE
══════════════════════════════════════════ */
#page-table { display: none; flex-direction: column; min-height: 100vh; background: var(--bg); }
#page-table.active { display: flex; }
.table-page-main { flex: 1; padding: 24px 28px 40px; overflow-x: auto; }
.rt-header {
  display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 14px;
}
.rt-title-block { display: flex; flex-direction: column; gap: 2px; }
.rt-logo { font-size: 14px; font-weight: 700; color: var(--primary); }
.rt-date { font-size: var(--fs-xs); color: var(--text-muted); }
.rt-count { font-size: var(--fs-xs); color: var(--text-muted); }

.round-table {
  width: 100%; border-collapse: collapse;
  font-size: var(--fs-sm); font-family: 'Inter', sans-serif;
  background: #fff; border: 1px solid var(--border);
}
.round-table thead tr { background: var(--primary-dark); }
.round-table thead th {
  color: #fff; font-weight: 600; font-size: var(--fs-xs); text-transform: uppercase;
  letter-spacing: .4px; padding: 8px 10px; text-align: left;
  border-right: 1px solid rgba(255,255,255,.15);
}
.round-table thead th:last-child { border-right: none; }
.round-table tbody tr:not(.rt-setor-row):nth-child(even) { background: #f7f8fa; }
.round-table tbody tr:not(.rt-setor-row):hover { background: #f0f5fb; }

/* Sector separator rows */
.rt-setor-row td {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px;
  padding: 5px 10px; border: none; border-bottom: 1px solid;
}
.rt-setor-row { border-top: 2px solid; }
.rt-setor-clinica    { background: #dce8f5; border-color: #aac8e8; }
.rt-setor-clinica td { color: #1a4480; border-bottom-color: #aac8e8; }
.rt-setor-cirurgica  { background: #e6f4ec; border-color: #b2d8c2; }
.rt-setor-cirurgica td { color: #276749; border-bottom-color: #b2d8c2; }
.rt-setor-emergencia { background: #fdf0f0; border-color: #e8b4b4; }
.rt-setor-emergencia td { color: #9b1c1c; border-bottom-color: #e8b4b4; }
.rt-setor-none       { background: #f0f2f5; border-color: var(--border); }
.rt-setor-none td    { color: var(--text-muted); border-bottom-color: var(--border); }
.round-table tbody td {
  padding: 9px 10px; vertical-align: top; line-height: 1.5;
  border: 1px solid #dde1e6; min-width: 80px;
}
.round-table tbody td:focus { outline: 2px solid var(--primary); outline-offset: -2px; background: #fffde7; }
.rt-col-id   { width: 11%; }
.rt-col-dx   { width: 22%; }
.rt-col-exam { width: 24%; }
.rt-col-pend { width: 21%; }
.rt-col-ev   { width: 22%; }
.rt-muted { font-size: var(--fs-xs); color: var(--text-muted); }
.rt-ssvv-line {
  font-size: var(--fs-2xs); color: var(--text-muted);
  margin-bottom: 5px; padding-bottom: 4px;
  border-bottom: 1px dashed var(--border);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rt-evo-input { min-height: 1.5em; outline: none; }
.rt-evo-input:focus { outline: none; }
.round-table tbody td:has(.rt-evo-input):focus-within {
  outline: 2px solid var(--primary); outline-offset: -2px; background: #fffde7;
}
.rt-atb-header { display: inline-block; margin-top: 4px; font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); }

/* ── Print ── */
/* Orientação padrão A4 paisagem — aplicada globalmente para que o diálogo de impressão abra já no modo correto */
@page { size: A4 landscape; margin: 8mm; }

@media print {

  body > *:not(#page-table) { display: none !important; }
  #page-table { display: block !important; background: #fff; }
  .table-page-header { display: none !important; }
  .table-page-main   { padding: 0; overflow: visible; }

  /* Cabeçalho da folha — compacto, linha única */
  .rt-header      { margin-bottom: 5px; align-items: center; }
  .rt-logo        { font-size: var(--fs-2xs); }
  .rt-date        { font-size: 8.5px; }
  .rt-count       { font-size: 8.5px; }
  .rt-title-block { flex-direction: row; gap: 8px; align-items: baseline; }

  /* Tabela */
  .round-table {
    font-size: var(--fs-3xs);
    line-height: 1.35;
    page-break-inside: auto;
    border-collapse: collapse;
    width: 100%;
  }

  /* thead repete automaticamente em cada página impressa */
  .round-table thead {
    display: table-header-group;
  }
  .round-table thead th {
    background: var(--primary-dark) !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    padding: 4px 5px;
    font-size: 8px;
  }

  /* Colunas otimizadas para A4 paisagem — evolução menor, exames e pendências maiores */
  .rt-col-id   { width: 12%; }
  .rt-col-dx   { width: 21%; }
  .rt-col-exam { width: 29%; }
  .rt-col-pend { width: 25%; }
  .rt-col-ev   { width: 13%; }

  /* Células de dados */
  .round-table tbody td {
    padding: 4px 5px;
    line-height: 1.35;
    word-break: break-word;
    vertical-align: top;
  }

  /* Linhas pares */
  .round-table tbody tr:not(.rt-setor-row):nth-child(even) {
    background: #f4f6f8 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Linha de paciente não quebra entre páginas */
  .round-table tbody tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Linha de setor não fica sozinha no final de página */
  .rt-setor-row {
    break-after: avoid;
    page-break-after: avoid;
  }
  .rt-setor-row td { padding: 3px 5px; font-size: 7.5px; }

  /* Quebra de página explícita injetada por JS antes de imprimir */
  .rt-break-before {
    break-before: page !important;
    page-break-before: always !important;
  }

  /* Preserva cores de setor na impressão */
  .rt-setor-clinica    { background: #dce8f5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rt-setor-cirurgica  { background: #e6f4ec !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rt-setor-emergencia { background: #fdf0f0 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rt-setor-none       { background: #f0f2f5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ══════════════════════════════════════════
   DASHBOARD HEADER
══════════════════════════════════════════ */
.dash-header {
  background: var(--primary-dark); border-bottom: 2px solid #0a1e38;
  padding: 0 24px; display: flex; align-items: center;
  justify-content: space-between; gap: 16px;
  position: sticky; top: 0; z-index: 10; height: 48px;
}
.dash-header-left { display: flex; align-items: center; gap: 10px; }
.dash-header-right { display: flex; align-items: center; gap: 8px; }

#sync-indicator {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
  transition: background 0.3s, box-shadow 0.3s;
  cursor: default;
}
#sync-indicator[data-state="ok"]      { background: #4ade80; box-shadow: 0 0 0 2px rgba(74,222,128,.25); }
#sync-indicator[data-state="pending"] { background: #facc15; box-shadow: 0 0 0 2px rgba(250,204,21,.25); animation: sync-pulse 1s infinite; }
#sync-indicator[data-state="error"]   { background: #f87171; box-shadow: 0 0 0 2px rgba(248,113,113,.25); cursor: pointer; }
@keyframes sync-pulse { 0%,100% { opacity:1; } 50% { opacity:.4; } }

.badge-count {
  background: rgba(255,255,255,.18); color: rgba(255,255,255,.9);
  padding: 1px 8px; border-radius: var(--radius); font-size: var(--fs-xs); font-weight: 700;
  border: 1px solid rgba(255,255,255,.2);
}
.analise-progress-badge {
  font-size: var(--fs-xs); font-weight: 600; padding: 2px 10px;
  border-radius: var(--radius); border: 1px solid;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.2);
  animation: pulse-badge 1.4s ease-in-out infinite;
}
.analise-progress-badge.hidden { display: none; animation: none; }
@keyframes pulse-badge {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.55; }
}

.search-wrap {
  display: flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--radius); padding: 5px 12px;
}
.search-wrap input {
  border: none; background: transparent; outline: none;
  font-size: var(--fs-sm); color: rgba(255,255,255,.9); width: 220px;
}
.search-wrap input::placeholder { color: rgba(255,255,255,.45); }
.search-icon { font-size: var(--fs-sm); color: rgba(255,255,255,.55); }

.dash-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 6px 24px; background: #f7f8fa;
  border-bottom: 1px solid var(--border); font-size: var(--fs-sm);
}
.toolbar-right { display: flex; align-items: center; gap: 10px; }
.sort-controls { display: flex; align-items: center; gap: 6px; color: var(--text-muted); }
.sort-controls select {
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 3px 8px; font-size: var(--fs-sm); font-family: inherit;
  background: var(--card-bg); color: var(--text); cursor: pointer;
}
.filter-info { color: var(--text-muted); font-size: var(--fs-sm); }
.btn-ghost-danger {
  background: transparent; color: var(--danger); border: 1px solid transparent; font-size: var(--fs-sm);
}
.btn-ghost-danger:hover { background: var(--danger-light); border-color: #e8b4b4; }

/* ══════════════════════════════════════════
   DASHBOARD CARDS
══════════════════════════════════════════ */
.dash-main { flex: 1; padding: 20px 24px; }

.cards-grid {
  columns: 300px;
  column-gap: 12px;
}
.cards-grid > * {
  break-inside: avoid;
  margin-bottom: 12px;
  display: block;
}

/* Sort agrupado (setor/evolução): grid alinhado em linhas, com o divisor
   ocupando a largura toda. Sem multicol → sem o bug de duplicação do primeiro
   card no Safari. O mosaico (columns) fica só no sort "recente". */
.cards-grid--grouped {
  columns: auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 12px;
  align-items: start;
}
.cards-grid--grouped > * { margin: 0; }
.cards-grid--grouped .dash-setor-divider { grid-column: 1 / -1; margin: 0; }

/* Divisor de setor no dashboard (sort por leito) */
.dash-setor-divider {
  column-span: all;
  display: flex; align-items: center; gap: 10px;
  margin: 4px 0 2px;
  cursor: pointer;
  user-select: none;
}
.dash-setor-divider::before,
.dash-setor-divider::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}
.dash-setor-divider span {
  font-size: var(--fs-2xs); font-weight: 800; letter-spacing: 0.08em;
  text-transform: uppercase; padding: 2px 10px; border-radius: 20px;
  white-space: nowrap; display: flex; align-items: center; gap: 6px;
}
.dash-setor-clinica span    { color: #1a4480; background: #e8f0fb; }
.dash-setor-cirurgica span  { color: #7c3aed; background: #f3eeff; }
.dash-setor-emergencia span { color: var(--danger); background: #fef2f2; }
.dash-setor-none span       { color: var(--text-muted); background: var(--bg-card); }
.dash-evo-pendente span     { color: #92400e; background: #fef3c7; }
.dash-evo-copiado span      { color: #166534; background: #dcfce7; }
.dash-evo-finalizado span   { color: #475569; background: #f1f5f9; }
.setor-count { font-weight: 500; opacity: 0.65; font-style: normal; }
.dash-setor-divider.collapsed { margin-bottom: 4px; }
.dash-emerg-reanimacao span { color: var(--danger); background: #fee2e2; }
.dash-emerg-observacao span { color: #b45309; background: #fef3c7; }
.dash-emerg-medicacao span  { color: #1e40af; background: #dbeafe; }

.patient-card {
  background: var(--card-bg); border: 1px solid var(--border);
  box-shadow: var(--shadow-sm); cursor: pointer;
  transition: border-color 0.12s, box-shadow 0.12s;
  display: flex; flex-direction: column; border-radius: var(--radius);
  overflow: hidden;
}
.patient-card:hover {
  border-color: var(--primary); box-shadow: var(--shadow);
}

.card-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 10px 14px 8px; background: #f7f8fa;
  border-bottom: 1px solid var(--border);
}
/* Setor select */
.card-setor-wrap { margin: 2px 0 4px; }
.setor-select {
  appearance: none; -webkit-appearance: none;
  border: 1px solid var(--border); border-radius: var(--radius);
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px;
  padding: 2px 8px; cursor: pointer; font-family: inherit;
  background: var(--neutral-light); color: var(--text-muted);
  transition: background 0.12s, color 0.12s, border-color 0.12s;
}
.setor-select:focus { outline: none; }
.setor-none      { background: var(--neutral-light); color: var(--text-muted); border-color: var(--border); }
.setor-clinica   { background: #dce8f5; color: #1a4480; border-color: #aac8e8; }
.setor-cirurgica { background: #e6f4ec; color: #276749; border-color: #b2d8c2; }
.setor-emergencia{ background: #fdf0f0; color: #9b1c1c; border-color: #e8b4b4; }

.setor-select-card {
  border: none; background: transparent; padding: 0;
  font-size: var(--fs-3xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px;
  cursor: pointer; font-family: inherit; margin-right: 4px;
  color: var(--text-muted);
}
.setor-select-card.setor-clinica    { color: #1a4480; }
.setor-select-card.setor-cirurgica  { color: #276749; }
.setor-select-card.setor-emergencia { color: #9b1c1c; }
.setor-select-card:focus { outline: none; }

.setor-select-modal {
  font-size: var(--fs-2xs); padding: 2px 8px;
  border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.12); color: rgba(255,255,255,.85);
}
.setor-select-modal.setor-none     { background: rgba(255,255,255,.08); color: rgba(255,255,255,.55); }
.setor-select-modal.setor-clinica  { background: rgba(220,232,245,.18); color: #c8dfee; border-color: rgba(255,255,255,.3); }
.setor-select-modal.setor-cirurgica{ background: rgba(39,103,73,.3);    color: #a8d8bc; border-color: rgba(255,255,255,.3); }
.setor-select-modal.setor-emergencia{background: rgba(155,28,28,.3);   color: #f0b4b4; border-color: rgba(255,255,255,.3); }
.setor-select-modal option { background: #0f2d54; color: #fff; }

/* ── Leito/setor chip + popover ── */
.card-leito-area { position: relative; margin-bottom: 1px; }

.leito-chip {
  display: inline-flex; align-items: center; gap: 5px;
  cursor: pointer; border-radius: 6px; padding: 2px 4px;
  transition: background .12s;
}
.leito-chip:hover { background: rgba(0,0,0,.05); }

.leito-setor-badge {
  font-size: var(--fs-3xs); font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
  padding: 1px 5px; border-radius: 4px; border: 1px solid transparent;
}
.setor-badge-none      { background: var(--neutral-light); color: var(--text-muted); border-color: var(--border); }
.setor-badge-clinica   { background: #dce8f5; color: #1a4480; border-color: #aac8e8; }
.setor-badge-cirurgica { background: #e6f4ec; color: #276749; border-color: #b2d8c2; }
.setor-badge-emergencia{ background: #fdf0f0; color: #9b1c1c; border-color: #e8b4b4; }

.leito-num {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .5px; color: var(--text-muted);
}

.leito-popover {
  position: absolute; top: calc(100% + 4px); left: 0; z-index: 120;
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  padding: 10px; box-shadow: 0 4px 16px rgba(0,0,0,.13);
  min-width: 200px;
}
.leito-pop-row { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.leito-pop-label {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .4px; color: var(--text-muted); white-space: nowrap;
}
.leito-pop-input {
  flex: 1; padding: 4px 8px; font-size: var(--fs-sm); font-weight: 600;
  border: 1px solid var(--border); border-radius: 5px;
  background: var(--neutral-light); color: var(--text);
  outline: none; font-family: inherit;
}
.leito-pop-input:focus { border-color: var(--primary); background: #fff; }
.leito-pop-setores { display: flex; gap: 4px; flex-wrap: wrap; }
.leito-setor-btn {
  flex: 1; padding: 4px 6px; font-size: var(--fs-2xs); font-weight: 600;
  border: 1px solid var(--border); border-radius: 5px; cursor: pointer;
  background: var(--neutral-light); color: var(--text-muted);
  font-family: inherit; transition: background .12s, color .12s, border-color .12s;
}
.leito-setor-btn:hover            { background: #e8edf5; color: var(--text); }
.leito-setor-btn-active           { font-weight: 700; }
.setor-btn-none.leito-setor-btn-active     { background: #e8edf5; color: var(--text); border-color: #aab; }
.setor-btn-clinica.leito-setor-btn-active  { background: #dce8f5; color: #1a4480; border-color: #aac8e8; }
.setor-btn-cirurgica.leito-setor-btn-active{ background: #e6f4ec; color: #276749; border-color: #b2d8c2; }
.setor-btn-emergencia.leito-setor-btn-active{ background: #fdf0f0; color: #9b1c1c; border-color: #e8b4b4; }

/* Modal leito area */
.modal-leito-area { position: relative; }
.leito-chip-modal:hover { background: rgba(255,255,255,.1) !important; }
.leito-num-modal { color: rgba(255,255,255,.9) !important; }

/* Setor badge — modal (dark header) */
.modal-setor-badge { border-color: rgba(255,255,255,.25) !important; }
.setor-badge-modal-none      { background: rgba(255,255,255,.1);  color: rgba(255,255,255,.55); }
.setor-badge-modal-clinica   { background: rgba(168,216,188,.2);  color: #c8dfee; }
.setor-badge-modal-cirurgica { background: rgba(39,103,73,.35);   color: #a8d8bc; }
.setor-badge-modal-emergencia{ background: rgba(155,28,28,.35);   color: #f0b4b4; }

/* Popover anchored below the chip — same light style as card */
.leito-popover-modal { top: calc(100% + 6px); }
.leito-pop-label-modal { color: var(--text-muted); }
.leito-pop-input-modal {
  background: #fff; color: var(--text);
  border-color: var(--border);
}
.leito-pop-input-modal:focus { border-color: var(--primary); }
.leito-input { width: 60px; padding: 1px 5px; font-size: var(--fs-xs); font-weight: 700;
  border: 1px solid var(--primary); border-radius: var(--radius);
  background: #fff; color: var(--text); outline: none; font-family: inherit; }
.leito-input:focus { border-color: var(--primary-dark); }
.leito-input-modal { background: rgba(255,255,255,.15); color: #fff; border-color: rgba(255,255,255,.5); }
.leito-input-modal:focus { border-color: rgba(255,255,255,.85); background: rgba(255,255,255,.22); }
.card-nome { font-size: 14px; font-weight: 600; color: var(--text); }
.card-gmr {
  display: inline-block; margin-left: 6px; vertical-align: middle;
  font-size: var(--fs-3xs); font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  color: var(--danger); border: 1px solid var(--danger);
  border-radius: 3px; padding: 0 4px; line-height: 1.45;
}
.card-idade { font-size: var(--fs-sm); color: var(--text-muted); margin-top: 1px; }
.card-idade-sufixo { font-size: var(--fs-xs); color: var(--text-muted); pointer-events: none; user-select: none; }

.card-status-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.status-ok   { background: var(--success); }
.status-warn { background: #c07a00; }
.status-crit { background: var(--danger); }

.card-body { padding: 10px 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; }

.card-muc {
  font-size: var(--fs-sm); font-weight: 500; color: var(--primary-dark);
  background: var(--primary-light); padding: 5px 8px;
  border-left: 3px solid var(--primary); line-height: 1.4;
  border-radius: 0 var(--radius) var(--radius) 0;
}
.card-muc-label {
  font-size: var(--fs-3xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; color: var(--primary);
}

.card-comorbidades { display: flex; flex-wrap: wrap; gap: 4px; }
.tag {
  font-size: var(--fs-2xs); font-weight: 500; padding: 2px 6px;
  border-radius: var(--radius); background: var(--neutral-light);
  color: var(--text-muted); border: 1px solid var(--border);
}
.tag-more { background: var(--border); color: var(--text-muted); }

.card-vitals { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.vital-item {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--neutral-light); padding: 4px 8px; font-size: var(--fs-xs);
  border: 1px solid var(--border); border-radius: var(--radius);
}
.vital-label { color: var(--text-muted); font-weight: 500; }
.vital-value { font-weight: 700; }
.vital-ok   { color: var(--success); }
.vital-warn { color: #b05a00; }
.vital-crit { color: var(--danger); }
.vital-na   { color: var(--text-muted); font-style: italic; }

.card-labs { padding-top: 0; }
.labs-mini-divider {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 6px;
}
.labs-mini-divider::before,
.labs-mini-divider::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}
.labs-mini-date {
  font-size: var(--fs-3xs); font-weight: 600; color: var(--text-muted);
  white-space: nowrap; letter-spacing: 0.2px;
}
.labs-mini-pills { display: flex; flex-wrap: wrap; gap: 4px; }
.labs-ver-todos { cursor: pointer; font-weight: 500 !important; opacity: 0.7; transition: opacity 0.15s; }
.labs-ver-todos:hover { opacity: 1; }
.card-atb  { padding: 0 14px 10px; }
.card-atb-pill {
  font-size: var(--fs-2xs); padding: 2px 7px; border-radius: var(--radius);
  font-weight: 600; border: 1px solid #b8c4e8;
  background: #eef1fb; color: #2d4a9a;
}
/* Curso prolongado (>10 dias) — sinaliza stewardship */
.card-atb-pill-long { background: var(--warning-light); color: #7a4f00; border-color: #d4ad70; }

/* Bloco de suporte de reanimação no card de emergência */
.card-rean { padding: 0 14px 10px; }
.card-rean-pill {
  font-size: var(--fs-2xs); padding: 2px 7px; border-radius: var(--radius);
  font-weight: 600; border: 1px solid transparent; white-space: nowrap;
}
.rean-vent { background: #eef2ff; color: #3730a3; border-color: #c7d2fe; }
.rean-vaso { background: #fef2f2; color: var(--danger); border-color: #fca5a5; }
.rean-sed  { background: #f5f3ff; color: #6d28d9; border-color: #ddd6fe; }
.rean-lac  { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.rean-inv  { background: #f0fdfa; color: #0f766e; border-color: #99f6e4; }

/* Beira leito section on card */
.card-beira-leito {
  border-top: 1px solid var(--border);
  padding-top: 7px;
}
.card-bl-label {
  font-size: var(--fs-3xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; color: #059669; margin-bottom: 4px;
}
.card-bl-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 3px;
}
.card-bl-list li {
  font-size: var(--fs-sm); color: var(--text); line-height: 1.35;
  padding-left: 10px; position: relative;
}
.card-bl-list li::before {
  content: '›'; position: absolute; left: 0;
  color: #059669; font-weight: 700;
}
.lab-pill {
  position: relative;
  font-size: var(--fs-2xs); padding: 2px 7px; border-radius: var(--radius);
  font-weight: 600; border: 1px solid;
}
.labs-mini-date {
  font-size: var(--fs-3xs); font-weight: 500; color: var(--text-muted);
  margin-right: 4px; opacity: 0.8; white-space: nowrap;
}
.lab-ok      { background: var(--success-light); color: var(--success);  border-color: #b2d8c2; }
.lab-warn    { background: var(--warning-light); color: #7a4f00; border-color: #d4ad70; }
.lab-orange  { background: #fff0e6; color: #c05000; border-color: #f0b080; }
.lab-crit    { background: var(--danger); color: #fff; border-color: var(--danger); font-weight: 700; }
.lab-neutral { background: var(--neutral-light); color: var(--text-muted); border-color: var(--border); }

.card-ssvv {
  padding: 7px 10px; border: 1px solid var(--border);
  border-radius: var(--radius); border-left-width: 3px;
}
.card-ssvv.ssvv-ok   { background: var(--success-light); border-left-color: var(--success); }
.card-ssvv.ssvv-warn { background: var(--warning-light); border-left-color: #c07a00; }
.card-ssvv.ssvv-crit { background: var(--danger-light);  border-left-color: var(--danger); }
.card-ssvv-label {
  font-size: var(--fs-3xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px;
}
.ssvv-ok   .card-ssvv-label { color: var(--success); }
.ssvv-warn .card-ssvv-label { color: #7a4f00; }
.ssvv-crit .card-ssvv-label { color: var(--danger); }
.card-ssvv:not(.ssvv-ok):not(.ssvv-warn):not(.ssvv-crit) .card-ssvv-label { color: var(--text-muted); }
.card-ssvv-text { font-size: var(--fs-sm); color: var(--text); line-height: 1.45; cursor: text; }
.card-ssvv-text:hover { background: #f1f5f9; border-radius: 4px; }
.card-ssvv-na { color: var(--text-muted); font-style: italic; }

.meds-uso-strip {
  display: flex; align-items: flex-start; gap: 8px;
  background: var(--neutral-light); padding: 6px 10px;
  border: 1px solid var(--border); border-radius: var(--radius);
}
.meds-uso-label {
  font-size: var(--fs-3xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; color: var(--text-muted); white-space: nowrap;
  padding-top: 2px; flex-shrink: 0;
}
.meds-uso-list { display: flex; flex-wrap: wrap; gap: 4px; }
.meds-uso-item {
  font-size: var(--fs-xs); color: var(--text); background: var(--card-bg);
  border: 1px solid var(--border); border-radius: var(--radius); padding: 1px 6px;
}

.atb-list { display: flex; flex-direction: column; gap: 6px; }
.atb-item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--radius);
  border-left-width: 3px;
}
.atb-info { flex: 1; min-width: 0; }
.atb-ativo    { background: var(--success-light); border-left-color: var(--success); }
.atb-suspenso { background: #f7f8fa; border-left-color: var(--border); }
.atb-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 5px;
}
.atb-ativo   .atb-dot { background: var(--success); }
.atb-suspenso .atb-dot { background: var(--text-muted); }
.atb-nome { font-size: var(--fs-base); font-weight: 600; color: var(--text); margin-bottom: 2px; }
.atb-dose { font-weight: 400; color: var(--text-muted); font-size: var(--fs-sm); margin-left: 4px; }
.atb-datas { font-size: var(--fs-xs); color: var(--text-muted); }
.atb-badge-ativo {
  background: var(--success-light); color: var(--success); font-weight: 700;
  padding: 1px 6px; border-radius: var(--radius); font-size: var(--fs-2xs);
  border: 1px solid #b2d8c2;
}

.meds-uso-list-block {
  display: flex; flex-direction: column; gap: 3px;
  background: var(--neutral-light); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 8px 12px;
}
.meds-uso-line { font-size: var(--fs-base); color: var(--text); line-height: 1.5; }

.historia-text {
  font-size: var(--fs-base); line-height: 1.65; color: var(--text);
  background: #f5f8fc; border: 1px solid #c0d4e8; border-left: 3px solid var(--secondary);
  border-radius: 0 var(--radius) var(--radius) 0; padding: 10px 14px;
}

.imagem-list { display: flex; flex-direction: column; gap: 6px; }
.imagem-item {
  background: var(--neutral-light); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 8px 12px;
  position: relative;
}
.imagem-item-actions {
  position: absolute; top: 6px; right: 6px;
  display: flex; gap: 2px; align-items: center;
  opacity: 0; transition: opacity .15s;
}
.imagem-item:hover .imagem-item-actions { opacity: 1; }
.imagem-tipo {
  font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.3px; color: var(--primary); margin-bottom: 3px;
  padding-right: 44px; /* room for the buttons */
}
.imagem-data { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--text-muted); margin-left: 6px; }
.imagem-achados { font-size: var(--fs-base); color: var(--text); line-height: 1.5; }

.btn-add-exam {
  background: none; border: 1px solid var(--primary); color: var(--primary);
  border-radius: var(--radius); font-size: var(--fs-xs); font-weight: 600; padding: 2px 8px;
  cursor: pointer; flex-shrink: 0; order: 99;
}
.btn-add-exam:hover { background: var(--primary-light); }

/* Botão Monitorar culturas */
.btn-cult-monitor { order: 0; }
.btn-cult-monitor-ativo {
  background: #e0f2fe; border-color: #0369a1 !important;
  color: #0369a1 !important;
}
.btn-cult-monitor-ativo:hover { background: #bae6fd !important; }

/* Linha de status do monitor (última verificação) */
.cult-monitor-status {
  font-size: var(--fs-xs); color: var(--text-muted);
  padding: 4px 0 6px; border-bottom: 1px solid var(--border);
  margin-bottom: 4px;
}
.cult-monitor-info { font-style: italic; }

/* Botão Reimportar no BitLab */
.btn-bitlab-reimport {
  background: #fffbeb !important; border-color: #f59e0b !important;
  color: #92400e !important;
}
.btn-bitlab-reimport:hover { background: #fef3c7 !important; }

.lab-title-actions { display: flex; align-items: center; gap: 6px; }

/* BitLab panel */
.bitlab-panel {
  margin: 8px 0 12px; padding: 12px; background: #f8f9ff;
  border: 1px solid #d0d8ff; border-radius: var(--radius);
}
.bitlab-panel.hidden { display: none; }
.bitlab-search-row { display: flex; gap: 8px; }
.bitlab-search-input {
  flex: 1; padding: 6px 10px; border: 1px solid var(--border);
  border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit;
}
.bitlab-results { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.bitlab-results.hidden { display: none; }
.bitlab-item {
  display: flex; align-items: flex-start; justify-content: space-between;
  background: white; border: 1px solid var(--border); border-radius: var(--radius);
  padding: 8px 12px; gap: 10px;
}
.bitlab-item-info { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; }
.bitlab-item-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.btn-bitlab-preview {
  background: none; border: none; cursor: pointer; padding: 0;
  font-size: var(--fs-xs); color: var(--primary); text-decoration: underline;
  flex-shrink: 0;
}
.btn-bitlab-preview:hover { color: var(--primary-dark, #0369a1); }
.bitlab-preview-list {
  display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px;
}
.bitlab-preview-list.hidden { display: none; }
.bitlab-exam-pill {
  font-size: var(--fs-xs); padding: 2px 8px; border-radius: 10px; font-weight: 500;
}
.bitlab-exam-pill.ready   { background: #d1fae5; color: #065f46; }
.bitlab-exam-pill.pending { background: #fef3c7; color: #92400e; }
.bitlab-item-req { font-weight: 600; font-size: var(--fs-sm); color: var(--primary); flex-shrink: 0; }
.bitlab-item-dt { font-size: var(--fs-sm); color: var(--text-muted); flex-shrink: 0; }
.bitlab-item-pac { font-size: var(--fs-sm); color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bitlab-empty { font-size: var(--fs-sm); color: var(--text-muted); padding: 8px 0; }
.btn-bitlab-more {
  display: block; width: 100%; margin-top: 6px; padding: 6px;
  background: none; border: 1px dashed var(--border); border-radius: 6px;
  font-size: var(--fs-sm); color: var(--text-muted); cursor: pointer; text-align: center;
}
.btn-bitlab-more:hover { border-color: var(--primary); color: var(--primary); background: var(--bg-hover, #f0f4ff); }
.bitlab-item-micro { flex-direction: column; align-items: stretch; gap: 6px; }
.bitlab-item-micro .bitlab-item-info { flex-direction: column; gap: 4px; }
.bitlab-item-top { display: flex; align-items: center; gap: 10px; }
.bitlab-item-micro > .btn { align-self: flex-end; }
.bitlab-item-actions { display: flex; gap: 6px; align-self: flex-end; align-items: center; }
.bitlab-micro-exames { display: flex; flex-wrap: wrap; gap: 4px; }
.bitlab-micro-exam { font-size: var(--fs-xs); padding: 2px 7px; border-radius: 10px; font-weight: 500; }
.bitlab-micro-exam.pronto { background: #d1fae5; color: #065f46; }
.bitlab-micro-exam.andamento { background: #fef3c7; color: #92400e; }
.emerg-monitor-badge {
  display: inline-flex; align-items: center; gap: 3px;
  background: var(--danger); color: white; font-size: var(--fs-2xs); font-weight: 700;
  padding: 2px 7px; border-radius: 10px; animation: pulse-badge 2s infinite;
  cursor: pointer;
}
.emerg-monitor-badge.hidden { display: none; }
@keyframes pulse-badge { 0%,100% { opacity: 1; } 50% { opacity: 0.6; } }
.btn-remove-exam {
  background: none; border: none; color: var(--text-muted); font-size: var(--fs-xs);
  cursor: pointer; padding: 0 2px; margin-left: 4px; opacity: 0.5;
}
.btn-remove-exam:hover { opacity: 1; color: var(--danger); }
.add-exam-form {
  margin-top: 8px; padding: 10px 12px;
  background: #f5f8fc; border: 1px solid #c0d4e8;
  border-radius: var(--radius); display: flex; flex-direction: column; gap: 7px;
}
.add-exam-form.hidden { display: none; }
.add-exam-row { display: flex; gap: 7px; flex-wrap: wrap; }
.add-exam-input {
  flex: 1; min-width: 120px; padding: 5px 9px; font-size: var(--fs-sm);
  border: 1px solid var(--border); border-radius: var(--radius);
  background: white; outline: none;
}
.add-exam-input:focus { border-color: var(--primary); }
.add-exam-date { max-width: 80px; flex: 0 0 80px; }
.add-exam-textarea {
  width: 100%; padding: 5px 9px; font-size: var(--fs-sm); font-family: inherit;
  border: 1px solid var(--border); border-radius: var(--radius);
  background: white; resize: vertical; outline: none; box-sizing: border-box;
}
.add-exam-textarea:focus { border-color: var(--primary); }
.img-laudo-spinner {
  position: absolute; bottom: 6px; right: 8px;
  font-size: var(--fs-xs); color: var(--primary); background: white;
  padding: 1px 6px; border-radius: 4px; pointer-events: none;
  border: 1px solid var(--border);
}
.add-exam-actions { display: flex; gap: 7px; }
.add-exam-hint { font-size: var(--fs-xs); color: var(--text-muted); margin: 0 0 3px; }
.add-exam-error {
  font-size: var(--fs-sm); color: var(--danger); margin-top: 3px;
  background: var(--danger-light); border: 1px solid #e8b4b4;
  border-radius: var(--radius); padding: 5px 9px;
}
.add-exam-error.hidden { display: none; }

/* Group labels inside Pendências modal section */
.pend-empty-hint { font-size: var(--fs-sm); color: var(--text-faint); padding: 4px 2px; }
.pend-group-label {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; padding: 6px 2px 4px; margin-top: 6px;
  display: flex; align-items: center; gap: 5px;
}
.pend-group-label .bl-badge { display: none; } /* sem badge no label de grupo */
.pend-group-label:first-child { margin-top: 0; }
.pend-group-bl    { color: #059669; }
.pend-group-other { color: #d97706; }

/* Toggle beira leito button on each pendência row */
.pend-bl-toggle {
  background: none; border: none; cursor: pointer;
  padding: 0; flex-shrink: 0; display: flex; align-items: center;
  margin-top: 2px;
}
.pend-bl-on  .bl-badge { opacity: 1; }
.pend-bl-off .bl-badge { opacity: 0.2; filter: grayscale(1); }
.pend-bl-toggle:hover .bl-badge { opacity: 0.8; filter: none; }
.bl-badge {
  font-size: var(--fs-3xs); font-weight: 700; letter-spacing: 0.3px;
  background: #f59e0b; color: #fff; border-radius: 3px;
  padding: 1px 4px; line-height: 1.4; font-family: inherit;
}

/* Checkboxes verde/vermelho substituindo checkbox nos itens beira leito */
.pend-bl-resolve {
  display: flex; flex-direction: row; gap: 3px; flex-shrink: 0; align-items: center;
}
.pend-bl-cb {
  height: 16px; min-width: 16px;
  border-radius: 3px; border: 1.5px solid;
  background: transparent;
  cursor: pointer; padding: 0 4px;
  display: flex; align-items: center; justify-content: center;
  font-size: var(--fs-2xs); font-weight: 800; line-height: 1;
  transition: background .12s, color .12s;
}
.pend-bl-cb:disabled { opacity: 0.4; cursor: not-allowed; }
.pend-bl-cb-melhora                    { border-color: #059669; color: #059669; }
.pend-bl-cb-melhora:hover:not(:disabled),
.pend-bl-cb-melhora.checked            { background: #059669; color: #fff; }
.pend-bl-cb-neutro                     { border-color: #9ca3af; color: #9ca3af; }
.pend-bl-cb-neutro:hover:not(:disabled),
.pend-bl-cb-neutro.checked             { background: #9ca3af; color: #fff; }
.pend-bl-cb-piora                      { border-color: var(--danger-bright); color: var(--danger-bright); }
.pend-bl-cb-piora:hover:not(:disabled),
.pend-bl-cb-piora.checked              { background: var(--danger-bright); color: #fff; }
/* Relato: ação única "Incluir" (vai pro NO MOMENTO como relato do paciente) */
.pend-bl-cb-relato                     { border-color: #6d28d9; color: #6d28d9; padding: 0 8px; letter-spacing: .02em; text-transform: uppercase; }
.pend-bl-cb-relato:hover:not(:disabled),
.pend-bl-cb-relato.checked             { background: #6d28d9; color: #fff; }
.pend-bl-spin { width: 10px; height: 10px; margin-top: 2px; }

/* Formulário de adicionar pendência — sempre visível */
.pend-add-row {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--border);
}
.pend-add-input { flex: 1; min-width: 160px; }
.atb-add-row { flex-wrap: wrap; }
.atb-add-row .add-exam-input { flex: 1; min-width: 130px; }
.atb-multi-add {
  margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--border);
}

/* Checkbox label when adding new pendência */
.pend-bl-check-label {
  display: flex; align-items: center; gap: 5px;
  font-size: var(--fs-sm); color: var(--text-muted); cursor: pointer; white-space: nowrap;
}

.pendencias-list {
  display: flex; flex-direction: column; gap: 6px;
}
.pendencia-item {
  display: flex; gap: 10px; align-items: flex-start; font-size: var(--fs-base); line-height: 1.5;
  padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--radius);
  border-left: 3px solid #f59e0b; background: #fffdf5;
}
.pendencia-done {
  opacity: 0.55; border-left-color: var(--success); background: var(--success-light);
}
.pendencia-nao-resolvida {
  opacity: 0.65; border-left-color: #ef4444; background: #fef2f2;
}
.pendencia-sem-mudanca {
  opacity: 0.55; border-left-color: #9ca3af; background: #f9fafb;
}
.pendencia-check {
  background: none; border: 1.5px solid #d97706; border-radius: 3px;
  color: transparent; font-size: var(--fs-3xs); width: 15px; height: 15px;
  cursor: pointer; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  padding: 0; margin-top: 2px; transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.pendencia-check:hover { border-color: var(--success); color: var(--success); }
.pendencia-checked {
  background: var(--success); border-color: var(--success); color: #fff;
}
.pendencia-checked:hover { background: #15803d; border-color: #15803d; }
.pendencia-strike { text-decoration: line-through; color: var(--text-muted); }
.btn-suspender-atb {
  background: none; border: 1px solid #b05a00; color: #b05a00;
  border-radius: var(--radius); font-size: var(--fs-2xs); font-weight: 600; padding: 1px 7px;
  cursor: pointer; white-space: nowrap;
}
.btn-suspender-atb:hover { background: #fff3e0; }

.evolucao-hoje-date {
  font-size: var(--fs-2xs); font-weight: 600; color: var(--primary);
  background: var(--primary-light); padding: 1px 7px;
  border-radius: var(--radius); margin-left: 8px; text-transform: none;
  border: 1px solid #aac8e8;
}
.evolucao-hoje-wrap { position: relative; }
.ef-textarea-wrap { display: flex; flex-direction: column; gap: 6px; }
.ef-textarea {
  width: 100%; box-sizing: border-box;
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 10px 12px; font-family: inherit; font-size: var(--fs-base);
  line-height: 1.55; color: var(--text); resize: vertical;
  background: #f8fafc; transition: border-color 0.15s;
}
.ef-textarea:focus { border-color: var(--primary); outline: none; background: #fff; }
.ef-actions { display: flex; align-items: center; gap: 8px; }
.btn-ef-formatar {
  display: flex; align-items: center; gap: 5px;
  background: none; border: 1px solid var(--border); border-radius: var(--radius);
  padding: 5px 12px; font-size: var(--fs-sm); font-weight: 600;
  color: var(--primary); cursor: pointer; transition: background 0.12s, border-color 0.12s;
}
.btn-ef-formatar:hover { background: #eff6ff; border-color: var(--primary); }
.btn-ef-formatar:disabled { opacity: 0.45; cursor: not-allowed; }

/* Ações do exame físico — primária (Atualizar) vs secundária (Recompor) */
.btn-ef-action {
  display: inline-flex; align-items: center; gap: 5px;
  border-radius: var(--radius); padding: 6px 12px;
  font-size: var(--fs-sm); font-weight: 600; cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.btn-ef-action:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-ef-primary { background: var(--primary); color: #fff; border: 1px solid var(--primary); }
.btn-ef-primary:hover:not(:disabled) { background: var(--primary-dark); border-color: var(--primary-dark); }
.btn-ef-ghost { background: none; color: var(--text-muted); border: 1px solid var(--border); }
.btn-ef-ghost:hover:not(:disabled) { background: var(--hover-bg); color: var(--primary); border-color: var(--primary); }
.ef-hint {
  margin: 8px 0 0; font-size: var(--fs-xs); color: var(--text-faint); line-height: 1.45;
}
.ef-hint-ia {
  display: inline-block; font-size: var(--fs-3xs); font-weight: 800; letter-spacing: .04em;
  background: var(--primary-light); color: var(--primary-dark);
  border-radius: 3px; padding: 1px 5px; margin-right: 5px; vertical-align: middle;
}

/* Preview das mudanças de EF (antes → depois), confirmar antes de aplicar */
.ef-preview {
  margin-top: 10px; border: 1px solid var(--primary-light); border-radius: var(--radius);
  background: var(--surface); padding: 10px 12px;
}
.ef-preview-title {
  font-size: var(--fs-xs); font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .03em; margin-bottom: 8px;
}
.ef-diff-row { display: flex; gap: 8px; align-items: baseline; padding: 5px 0; border-top: 1px solid var(--border); }
.ef-diff-row:first-of-type { border-top: none; }
.ef-diff-sys {
  flex-shrink: 0; min-width: 44px; font-size: var(--fs-xs); font-weight: 800;
  color: var(--primary-dark); text-transform: uppercase;
}
.ef-diff-vals { display: flex; flex-direction: column; gap: 2px; font-size: var(--fs-sm); line-height: 1.4; }
.ef-diff-before { color: var(--text-faint); text-decoration: line-through; }
.ef-diff-after { color: var(--text); font-weight: 600; }
.ef-preview-actions { display: flex; gap: 8px; margin-top: 10px; }

/* Cabeçalho do EF — ações no canto superior direito (como o registrar pendências) */
.ef-header { display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin-bottom: 6px; }
.ef-header .evolucao-save-indicator { margin-right: auto; }

/* Recompor EF — botão só com ícone de atualizar */
.btn-ef-recompor {
  display: inline-flex; align-items: center; justify-content: center;
  background: none; border: none; cursor: pointer; padding: 2px; margin-left: 2px;
  color: var(--text-muted); opacity: 0.7; transition: opacity 0.15s, color 0.15s;
}
.btn-ef-recompor:hover:not(:disabled) { opacity: 1; color: var(--primary); }
.btn-ef-recompor:disabled { opacity: 0.3; cursor: default; }
.btn-ef-recompor svg { display: block; }
.analise-wrap { position: relative; }
.analise-textarea { min-height: 170px !important; }

/* ── Análise split view ── */
.analise-body-wrap { display: flex; gap: 0; }
.analise-body-wrap .analise-wrap { flex: 1; min-width: 0; }

/* Pin container — fica sticky logo abaixo da nav bar */
.analise-pin-container {
  position: sticky;
  top: 0;
  z-index: 25;
  background: var(--bg);
  border-bottom: 2px solid var(--primary);
  max-height: 35vh;
  overflow-y: auto;
}
.analise-pin-container.hidden { display: none; }
.analise-pin-header {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 16px 6px;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  position: sticky; top: 0; z-index: 1;
}
.analise-pin-label {
  font-size: var(--fs-xs); font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; color: var(--text-muted); flex: 1;
}
.btn-analise-edit-pin {
  background: none; border: 1px solid var(--border); border-radius: var(--radius);
  font-size: var(--fs-xs); color: var(--text-muted); cursor: pointer; padding: 2px 8px;
  display: flex; align-items: center; gap: 4px; font-family: inherit;
}
.btn-analise-edit-pin:hover { color: var(--text); border-color: var(--text-muted); }
.analise-pin-body { padding: 0 16px 8px; }
.analise-pinned-placeholder {
  padding: 10px 16px;
  font-size: var(--fs-sm); color: var(--text-muted); font-style: italic;
}
/* ── Análise — display estruturado ── */
.analise-display {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #f8fafc;
  overflow: hidden;
}
.analise-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 28px 16px;
  color: var(--text-muted);
}
.analise-empty-msg {
  font-size: var(--fs-sm);
  margin: 0;
  opacity: 0.7;
}
.btn-gerar-analise-btn {
  background: var(--primary); color: #fff;
  border: 1px solid var(--primary-dark);
  border-radius: var(--radius);
  font-size: var(--fs-base); font-weight: 600; font-family: inherit;
  padding: 8px 18px; cursor: pointer;
  display: flex; align-items: center; gap: 7px;
  transition: background 0.12s;
}
.btn-gerar-analise-btn:hover { background: var(--primary-dark); }
.btn-gerar-analise-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* Botão pin da análise */
.btn-pin-analise {
  background: none; border: none; padding: 3px 5px; cursor: pointer;
  color: var(--text-muted); border-radius: 4px; line-height: 1;
  display: flex; align-items: center;
}
.btn-pin-analise:hover { color: var(--primary); background: var(--hover-bg, #f1f5f9); }
.btn-pin-analise.active { color: var(--primary); }
/* Pin na borda direita da section title — aparece após a linha divisória */
.btn-pin-analise-sec { order: 99; flex-shrink: 0; }
.btn-analise-manual {
  background: none; border: none; padding: 0;
  font-size: var(--fs-sm); color: var(--text-muted); cursor: pointer;
  text-decoration: underline; font-family: inherit;
}
.btn-analise-manual:hover { color: var(--text); }
.analise-section-label {
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #64748b;
  padding: 10px 14px 4px;
}
.analise-resumo-box {
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
  margin-bottom: 2px;
}
.analise-resumo-text {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--text);
  padding: 2px 14px 0;
  white-space: pre-line;
}
.analise-problemas-box { padding: 4px 0 8px; display: flex; flex-direction: column; gap: 5px; }
.analise-empty {
  font-size: var(--fs-base);
  color: var(--text-faint);
  padding: 8px 14px;
}

/* Problema item */
.analise-problemas-box > .analise-section-label { margin-bottom: 6px; }

.analise-problema-item {
  background: var(--bg-card, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px;
  overflow: hidden;
  transition: border-color .12s;
}
.analise-problema-item:first-of-type { border-top: 1px solid var(--border, #e2e8f0); }
.analise-problema-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  cursor: pointer;
  user-select: none;
  transition: background .12s;
}
.analise-problema-header:hover { background: #f8fafc; }
.analise-problema-header.open  { background: #f0f6ff; }
.analise-problema-item:has(.analise-problema-header.open) { border-color: var(--primary, #1e3a5f); }
.analise-problema-num {
  flex-shrink: 0;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: var(--primary, #1e3a5f);
  color: #fff;
  font-size: var(--fs-2xs);
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.analise-problema-name {
  flex: 1;
  font-size: var(--fs-base);
  font-weight: 500;
  color: #1e293b;
  line-height: 1.3;
}
.analise-prob-ctrl-group {
  display: flex;
  gap: 2px;
  flex-shrink: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .12s;
}
/* Controles (editar/mover/excluir) aparecem só ao passar o mouse na linha */
.analise-problema-item:hover .analise-prob-ctrl-group,
.analise-problema-item:focus-within .analise-prob-ctrl-group {
  opacity: 1;
  pointer-events: auto;
}
.btn-prob-ctrl {
  background: none;
  border: 1px solid transparent;
  border-radius: 4px;
  color: var(--text-faint);
  font-size: var(--fs-2xs);
  width: 22px; height: 22px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .1s, color .1s, border-color .1s;
}
.btn-prob-ctrl:hover { background: #e2e8f0; border-color: #cbd5e1; color: #1e293b; }
.analise-problema-chevron {
  flex-shrink: 0;
  font-size: 16px;
  color: #cbd5e1;
  transition: transform .2s;
  line-height: 1;
}
.analise-problema-header.open .analise-problema-chevron {
  transform: rotate(90deg);
}
.analise-problema-bullets {
  padding: 4px 12px 10px 40px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  border-top: 1px solid #e9eef5;
  background: #f8fafc;
}
.analise-bullet {
  font-size: 12.5px;
  color: #334155;
  line-height: 1.5;
}
.analise-bullet-empty { color: var(--text-faint); font-style: italic; }

/* Add problem */
.btn-add-problema {
  display: block;
  width: calc(100% - 28px);
  margin: 8px 14px 4px;
  padding: 7px 12px;
  border: 1.5px dashed #cbd5e1;
  border-radius: var(--radius);
  background: none;
  color: #64748b;
  font-size: var(--fs-base);
  font-weight: 500;
  cursor: pointer;
  text-align: left;
  transition: border-color .15s, color .15s, background .15s;
}
.btn-add-problema:hover {
  border-color: #0ea5e9;
  color: #0ea5e9;
  background: #f0f9ff;
}
.add-problema-form {
  margin: 4px 14px 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.add-prob-input {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 13.5px;
  font-family: inherit;
  color: var(--text);
  background: #fff;
  box-sizing: border-box;
}
.add-prob-input:focus { outline: none; border-color: #0ea5e9; }
.add-prob-bullets {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: var(--fs-base);
  font-family: inherit;
  color: var(--text);
  background: #fff;
  resize: vertical;
  box-sizing: border-box;
}
.add-prob-bullets:focus { outline: none; border-color: #0ea5e9; }
.add-prob-actions { display: flex; gap: 8px; }

/* Collapsible lab section toggle button */
.btn-toggle-section {
  background: none;
  border: none;
  font-size: var(--fs-xs);
  color: #64748b;
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
  flex-shrink: 0;
}
.btn-toggle-section:hover { color: #0ea5e9; }

/* Lab sub-tables (gasometria, urina) */
.lab-subtable-header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 0 4px;
  margin-top: 8px;
  cursor: pointer;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--text-faint);
  user-select: none;
  border-top: 1px solid #f1f5f9;
}
.lab-subtable-header:hover { color: #64748b; }
.lab-subtable-chevron {
  font-size: var(--fs-xs);
  color: #cbd5e1;
  transition: transform .2s;
  margin-left: auto;
}
.lab-subtable-header.open .lab-subtable-chevron { transform: rotate(90deg); }
.lab-subtable-content { margin-top: 2px; }
.lab-subtable-content.hidden { display: none; }

/* Edição inline do resumo */
.analise-section-label {
  display: flex;
  align-items: center;
  gap: 6px;
}
.btn-inline-edit {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-faint);
  font-size: var(--fs-sm);
  padding: 2px 4px;
  border-radius: 4px;
  line-height: 1;
  transition: color .15s, background .15s;
}
.btn-inline-edit:hover { color: #0ea5e9; background: #e0f2fe; }
.resumo-edit-wrap { padding: 4px 14px 10px; }
.resumo-edit-ta {
  width: 100%;
  min-height: 72px;
  padding: 8px 10px;
  border: 1px solid #0ea5e9;
  border-radius: var(--radius);
  font-size: 13.5px;
  font-family: inherit;
  color: var(--text);
  background: #fff;
  resize: vertical;
  box-sizing: border-box;
}
.resumo-edit-ta:focus { outline: none; }
.resumo-edit-actions { display: flex; gap: 8px; margin-top: 8px; }

/* Edição inline de problema */
.prob-edit-form {
  padding: 10px 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #f0f9ff;
  border-left: 3px solid #0ea5e9;
}
.prob-edit-delete { margin-left: auto; }

/* Botão excluir problema */
.btn-prob-delete { color: #ef4444 !important; border-color: #fecaca !important; }
.btn-prob-delete:hover { background: #fee2e2 !important; }
.evolucao-hoje-textarea {
  width: 100%; min-height: 110px; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: var(--radius);
  font-family: 'Inter', sans-serif; font-size: var(--fs-base); line-height: 1.65;
  resize: vertical; color: var(--text); background: #fcfcfc;
  transition: border-color 0.12s;
}
.evolucao-hoje-textarea:focus { outline: none; border-color: var(--primary); background: #fff; }
.evolucao-hoje-textarea::placeholder { color: #9ca3af; }
.evolucao-save-indicator {
  position: absolute; bottom: 8px; right: 10px;
  font-size: var(--fs-2xs); font-weight: 600; transition: opacity 0.3s;
}
.evolucao-save-indicator.saving { color: var(--text-muted); }
.evolucao-save-indicator.saved  { color: var(--success); }

.evolucoes-anteriores-list { display: flex; flex-direction: column; gap: 6px; }
.evolucao-anterior-item {
  border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
}
.evolucao-anterior-header {
  display: flex; justify-content: space-between; align-items: center;
  background: var(--neutral-light); padding: 5px 10px;
  cursor: pointer; user-select: none;
}
.evolucao-anterior-header:hover { background: #e4e8ed; }
.evolucao-anterior-data {
  font-size: var(--fs-2xs); font-weight: 700; color: var(--primary);
  text-transform: uppercase; letter-spacing: 0.4px;
}
.evolucao-anterior-header-right { display: flex; align-items: center; gap: 8px; }
.evolucao-anterior-chevron { font-size: var(--fs-2xs); color: var(--text-muted); }
.evolucao-anterior-body { border-top: 1px solid var(--border); }
.evolucao-anterior-body.collapsed { display: none; }
.evolucao-anterior-texto {
  padding: 8px 12px; font-size: var(--fs-base); line-height: 1.65;
  color: var(--text); white-space: pre-wrap;
}
.evolucao-anterior-conduta { border-top: 1px solid var(--border); padding: 8px 12px; }
.evolucao-conduta-label {
  display: block; font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; color: var(--text-muted); margin-bottom: 4px;
}
.evolucao-conduta-texto {
  margin: 0; font-family: inherit; font-size: var(--fs-base); line-height: 1.65;
  color: var(--text); white-space: pre-wrap;
}
.evolucao-save-hint { font-size: var(--fs-xs); color: var(--text-muted); }

.gerar-evolucao-section { border-top: 1px solid var(--border); padding-top: 20px; }
.btn-update-from-evo {
  background: none; border: none; cursor: pointer; font-size: var(--fs-xs);
  color: var(--text-muted); padding: 2px 6px; border-radius: 4px;
  font-family: inherit; transition: color 0.15s, background 0.15s;
  white-space: nowrap;
}
.btn-update-from-evo:hover { color: var(--primary); background: var(--bg-hover, #f1f5f9); }
.update-evo-panel {
  margin-top: 10px; padding: 12px 14px;
  background: #fff; color: var(--text-main, #1e293b);
  border: 1px solid rgba(255,255,255,0.2); border-radius: 8px;
  display: flex; flex-direction: column; gap: 8px;
}
.update-evo-panel .add-exam-hint { color: #64748b; }
.update-evo-panel .add-exam-textarea { color: #1e293b; background: #fff; }
.gerar-evolucao-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gerar-actions-sep {
  width: 1px; height: 22px; background: var(--border); flex-shrink: 0; margin: 0 4px;
}
.evolucoes-log { margin-top: 18px; border-top: 1px solid var(--border); padding-top: 14px; }
.evolucoes-log-title {
  font-size: var(--fs-2xs); font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: 0.6px; margin-bottom: 8px;
}
.btn-gerar-evolucao {
  background: var(--primary); color: white; border: 1px solid var(--primary-dark);
  border-radius: var(--radius); font-size: var(--fs-base); font-weight: 600;
  padding: 9px 20px; cursor: pointer; display: flex; align-items: center; gap: 7px;
  transition: background 0.12s;
}
.btn-gerar-evolucao:hover { background: var(--primary-dark); }
.btn-gerar-evolucao:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-ver-evolucao {
  background: #059669; color: #fff; border: none;
  border-radius: var(--radius); font-size: var(--fs-base); font-weight: 600;
  padding: 8px 16px; cursor: pointer; font-family: inherit;
  transition: background 0.12s;
}
.btn-ver-evolucao:hover { background: #047857; }
.btn-encerrar-dia {
  background: none; color: var(--text-muted); border: 1px solid var(--border);
  border-radius: var(--radius); font-size: var(--fs-base); font-weight: 500;
  padding: 9px 14px; cursor: pointer; font-family: inherit; transition: all 0.12s;
}
.btn-encerrar-dia:hover { border-color: var(--danger); color: var(--danger); background: var(--danger-light); }
.btn-novo-dia {
  background: none; color: var(--primary); border: 1px solid var(--border);
  border-radius: var(--radius); font-size: var(--fs-base); font-weight: 500;
  padding: 9px 14px; cursor: pointer; font-family: inherit; transition: all 0.12s;
}
.btn-novo-dia:hover { background: var(--primary-light, #e8f0fe); border-color: var(--primary); }

/* Grupo Gerar evolução + sub-menu */
.gerar-btn-group { display: flex; align-items: center; gap: 6px; }
.gerar-main-wrap { position: relative; }
.btn-regenerar {
  background: none; border: 1px solid var(--border); border-radius: 50%;
  color: var(--text-muted); font-size: var(--fs-md); width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background 0.12s, color 0.12s; flex-shrink: 0;
}
.btn-regenerar:hover { background: var(--bg-hover, #f0f4ff); color: var(--primary); border-color: var(--primary); }
.btn-regenerar:disabled { opacity: 0.4; cursor: not-allowed; }

/* Split button unificado */
.btn-gerar-split {
  display: flex; align-items: stretch;
  background: var(--primary); border: 1px solid var(--primary-dark);
  border-radius: var(--radius); overflow: hidden;
  transition: background 0.15s, border-color 0.15s;
}
.btn-gerar-split--done { background: #059669; border-color: #047857; }
.btn-gerar-split-main {
  background: none; border: none; color: white;
  font-family: inherit; font-size: var(--fs-base); font-weight: 600;
  padding: 9px 18px; cursor: pointer; display: flex; align-items: center; gap: 7px;
  transition: background 0.12s;
}
.btn-gerar-split-main:hover { background: rgba(0,0,0,0.12); }
.btn-gerar-split-main:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-gerar-split-arrow {
  background: none; border: none; border-left: 1px solid rgba(255,255,255,0.25);
  color: white; padding: 0 10px; cursor: pointer; font-size: var(--fs-xs);
  display: flex; align-items: center; transition: background 0.12s;
}
.btn-gerar-split-arrow:hover { background: rgba(0,0,0,0.12); }
.btn-gerar-split-main.hidden + .btn-gerar-split-arrow { display: none; }

/* Estado pós-geração: botão fica verde */
.btn-gerar-split-main.emerg-evo-gerada,
.btn-gerar-split-arrow.emerg-evo-gerada {
  background: none;
}
.btn-gerar-split-main.emerg-evo-gerada:hover,
.btn-gerar-split-arrow.emerg-evo-gerada:hover { background: rgba(0,0,0,0.12); }
.btn-gerar-split:has(.emerg-evo-gerada) {
  background: #059669; border-color: #047857;
}

/* Botão separado "Evolução do plantão" — ação benigna (ver passagem), estilo neutro */
.emerg-plantao-btn-sep {
  background: var(--card-bg); color: var(--text); border: 1px solid var(--border);
  border-radius: var(--radius); font-size: var(--fs-base); font-weight: 600;
  padding: 9px 16px; cursor: pointer; font-family: inherit;
  transition: background 0.12s, border-color 0.12s;
}
.emerg-plantao-btn-sep:hover { background: var(--hover-bg); border-color: #adb5bd; }

/* Sub-menu flutuante */
.gerar-sub-menu {
  position: absolute; top: calc(100% + 4px); left: 0; z-index: 200;
  background: white; border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: 0 4px 16px rgba(0,0,0,0.10); min-width: 160px; overflow: hidden;
}
.gerar-sub-item {
  width: 100%; background: none; border: none; text-align: left;
  font-family: inherit; font-size: var(--fs-base); font-weight: 600; cursor: pointer;
  padding: 10px 16px; display: flex; align-items: center; gap: 7px; transition: background 0.1s;
}
/* Botão Gerar Alta */
.btn-gerar-alta-modal {
  color: #7c3aed; background: none; border: 1px solid var(--border);
  border-radius: var(--radius); font-family: inherit; font-size: var(--fs-base);
  font-weight: 600; cursor: pointer; padding: 9px 14px;
  display: flex; align-items: center; gap: 6px; transition: all 0.12s;
}
.btn-gerar-alta-modal:hover { background: #f5f3ff; border-color: #c4b5fd; }
.btn-gerar-alta-modal:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-gerar-alta-modal.btn-ver-alta-mode { color: #6d28d9; background: #ede9fe; border-color: #c4b5fd; }
.btn-gerar-alta-modal.btn-ver-alta-mode:hover { background: #ddd6fe; }

/* Página de alta */
.alta-page-main {
  flex: 1; display: flex; flex-direction: column;
  padding: 20px 28px 28px; width: 100%; max-width: 1300px; margin: 0 auto; box-sizing: border-box;
}
.alta-layout {
  flex: 1; display: flex; gap: 20px; align-items: flex-start;
}
.alta-col-pods {
  flex: 1; min-width: 0; display: flex; flex-direction: column;
}
.alta-col-side {
  width: 340px; flex-shrink: 0; display: flex; flex-direction: column; gap: 14px;
}
.alta-textarea {
  width: 100%; box-sizing: border-box;
  padding: 16px 18px;
  font-family: 'Courier New', Courier, monospace; font-size: var(--fs-sm); line-height: 1.7;
  color: var(--text); background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius); resize: vertical; outline: none;
  box-shadow: var(--shadow);
}
.alta-col-pods .alta-textarea {
  min-height: calc(100vh - 200px);
  border-top: none; border-radius: 0 0 var(--radius) var(--radius);
}
.alta-pods-header {
  background: #f8f9fb; border: 1px solid var(--border);
  border-radius: var(--radius) var(--radius) 0 0;
  border-bottom: none;
}
.alta-textarea:focus { border-color: var(--primary); }

.alta-box {
  border: 1px solid var(--border); border-radius: var(--radius);
  overflow: hidden; box-shadow: var(--shadow);
}
.alta-box-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 12px; background: #f8f9fb; border-bottom: 1px solid var(--border);
}
.alta-box-title { font-size: var(--fs-xs); font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.3px; }
.alta-box-badge {
  display: inline-block; background: #dbeafe; color: #1d4ed8;
  font-size: var(--fs-3xs); font-weight: 700; border-radius: 3px; padding: 1px 5px; margin-left: 6px;
  text-transform: uppercase; letter-spacing: 0.3px;
}
.alta-textarea-side {
  border: none; border-radius: 0; box-shadow: none; resize: none;
  min-height: 80px; overflow: hidden;
}
.alta-box-informe {
  border-color: var(--primary);
}
.alta-box-informe .alta-box-header {
  background: #e8f0fc;
  border-bottom-color: var(--primary);
}
.alta-box-informe .alta-box-title {
  color: var(--primary);
}
.alta-ta-informe {
  min-height: 64px;
  font-size: var(--fs-base);
  line-height: 1.55;
}

.alta-generating-bar {
  display: flex; align-items: center; gap: 10px;
  font-size: var(--fs-base); color: var(--text-muted);
  padding: 0 0 14px;
}

/* ── Conduta chips ── */
.conduta-chips-row {
  display: flex; flex-wrap: wrap; gap: 6px;
  min-height: 0; margin-bottom: 6px;
}
.conduta-chips-row:empty { margin-bottom: 0; }
.conduta-chip {
  background: #f0f4ff; color: #2d4a8a;
  border: 1px solid #c7d5f5; border-radius: 20px;
  padding: 3px 12px; font-size: var(--fs-sm); font-weight: 500;
  cursor: pointer; transition: background 0.12s, opacity 0.12s;
  white-space: nowrap;
}
.conduta-chip:hover { background: #dce8ff; }
.conduta-chips-emerg .conduta-chip { background: #fff5f5; color: var(--danger); border-color: #fecaca; }
.conduta-chips-emerg .conduta-chip:hover { background: #fee2e2; }
.conduta-chip-used { opacity: 0.4; cursor: default; }
.conduta-chip-loading { font-size: var(--fs-sm); color: var(--text-muted); font-style: italic; }
.chips-more-btn {
  background: none; border: 1px dashed #c7d5f5; border-radius: 20px;
  padding: 3px 10px; font-size: var(--fs-sm); color: #6b82b8; cursor: pointer;
  white-space: nowrap; transition: background 0.12s, color 0.12s;
}
.chips-more-btn:hover { background: #f0f4ff; color: #2d4a8a; }
.chips-more-hidden { display: none; }
.chips-more-hidden.chips-more-visible { display: contents; }
.chips-more-wrap { display: contents; }
.conduta-chip-alta {
  background: #f0fdf4; color: #166534;
  border-color: #86efac; font-weight: 600;
}
.conduta-chip-alta:hover { background: #dcfce7; }
.conduta-chip-alert {
  background: #fee2e2; color: var(--danger);
  border-color: #fca5a5; font-weight: 600;
}
.conduta-chip-alert:hover:not(:disabled) { background: #fecaca; }
.conduta-chip-alert-warn {
  background: #fff7ed; color: #c2410c;
  border-color: #fdba74; font-weight: 600;
}
.conduta-chip-alert-warn:hover:not(:disabled) { background: #ffedd5; }

.conduta-wrap { position: relative; }
.conduta-actions { display: flex; align-items: center; gap: 10px; margin-top: 8px; flex-wrap: wrap; }
.btn-suggest {
  background: var(--secondary); color: white;
  border: 1px solid var(--primary-dark); border-radius: var(--radius);
  font-size: var(--fs-sm); font-weight: 600; padding: 5px 14px;
  cursor: pointer; display: flex; align-items: center; gap: 6px; transition: background 0.12s;
}
.btn-suggest:hover { background: var(--primary); }
.btn-suggest:disabled { opacity: 0.5; cursor: not-allowed; }

.ssvv-resumo-box {
  background: var(--warning-light); border: 1px solid #d4b070; border-left: 3px solid #c07a00;
  border-radius: 0 var(--radius) var(--radius) 0; padding: 10px 14px;
}
.ssvv-resumo-label {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; color: #7a4f00; margin-bottom: 5px;
}
.ssvv-resumo-text {
  font-size: var(--fs-base); color: var(--text); line-height: 1.6; font-weight: 500;
}
.ssvv-na {
  color: var(--text-muted); font-style: italic; font-size: var(--fs-base);
  background: var(--neutral-light); border-color: var(--border);
}

/* Card inline edit — MUC & SSVV */
.card-box-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 3px;
}
.card-edit-btn {
  background: none; border: none; padding: 0 2px; cursor: pointer;
  font-size: var(--fs-2xs); font-weight: 600; color: var(--primary);
  opacity: 0.55; letter-spacing: 0.2px; line-height: 1;
  font-family: inherit; transition: opacity 0.15s;
  display: flex; align-items: center; gap: 2px;
}
.card-edit-btn:hover { opacity: 1; }
.card-inline-value { display: block; }
.card-inline-edit { margin-top: 5px; }
.card-inline-input {
  width: 100%; padding: 4px 6px; font-size: var(--fs-sm);
  border: 1px solid var(--primary); border-radius: var(--radius-sm);
  background: #fff; color: var(--text); outline: none;
  font-family: inherit; box-sizing: border-box;
}
.card-inline-textarea {
  width: 100%; padding: 4px 6px; font-size: var(--fs-sm);
  border: 1px solid var(--primary); border-radius: var(--radius-sm);
  background: #fff; color: var(--text); outline: none;
  font-family: inherit; resize: vertical; box-sizing: border-box;
}

/* Card exames panel */
.btn-card-exames {
  background: none; border: 1px solid var(--primary); border-radius: var(--radius-sm);
  color: var(--primary); font-size: var(--fs-2xs); font-weight: 600; padding: 2px 8px;
  cursor: pointer; transition: background 0.15s;
}
.btn-card-exames:hover { background: var(--primary-light); }
.card-exames-panel {
  padding: 10px 14px 12px; border-top: 1px solid var(--border);
  background: #f7f8fa; display: flex; flex-direction: column; gap: 8px;
}
.card-exames-panel.hidden { display: none; }
.card-exames-textarea {
  width: 100%; padding: 6px 8px; font-size: var(--fs-sm); font-family: inherit;
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: #fff; color: var(--text); resize: vertical; box-sizing: border-box;
  outline: none;
}
.card-exames-textarea:focus { border-color: var(--primary); }
.card-exames-actions { display: flex; align-items: center; gap: 10px; }
.card-exames-msg { font-size: var(--fs-xs); font-weight: 500; }
.card-exames-ok  { color: var(--success); }
.card-exames-err { color: var(--danger); }

.card-footer {
  padding: 7px 14px; border-top: 1px solid var(--border);
  font-size: var(--fs-xs); color: var(--text-muted);
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px; flex-wrap: wrap;
  background: #f7f8fa;
}
.card-footer-date { font-style: italic; white-space: nowrap; }
.card-footer-right {
  display: flex; align-items: center; gap: 8px;
  flex-wrap: wrap; justify-content: flex-end; margin-left: auto;
}
.card-footer-action { color: var(--primary); font-weight: 600; white-space: nowrap; }

/* Monitor de culturas — badge no card */
.cult-monitor-badge {
  display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
  font-size: var(--fs-2xs); font-weight: 600; cursor: pointer;
  color: #0369a1; background: #e0f2fe;
  border: 1px solid #bae6fd; border-radius: 20px;
  padding: 2px 8px 2px 7px;
}
.cult-monitor-badge::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: #0ea5e9; flex-shrink: 0;
}
/* Estado "cultura nova": importada pelo monitor e ainda não vista */
.cult-monitor-badge.cult-nova {
  color: #166534; background: #dcfce7; border-color: #bbf7d0; font-weight: 700;
}
.cult-monitor-badge.cult-nova::before { background: #16a34a; }

/* Badge UTI transfer — card */
.uti-transfer-badge {
  white-space: nowrap;
  font-size: var(--fs-2xs); font-weight: 600;
  color: #7c3aed; background: #ede9fe;
  border: 1px solid #c4b5fd; border-radius: 20px;
  padding: 2px 8px;
}

/* Badge UTI transfer — modal */
.modal-uti-badge {
  display: inline-block;
  font-size: var(--fs-xs); font-weight: 600;
  color: #7c3aed; background: #ede9fe;
  border: 1px solid #c4b5fd; border-radius: 5px;
  padding: 2px 8px;
}

/* Status dot wrapper — contém o dot e os estados de IA */
.card-status-wrap {
  flex-shrink: 0; position: relative;
  width: 16px; height: 16px; margin-top: 2px;
  display: flex; align-items: center; justify-content: center;
}

/* Generating: anel giratório ao redor do dot */
@keyframes card-ai-spin { to { transform: rotate(360deg); } }
.card-status-wrap.ai-gen::before {
  content: '';
  position: absolute; inset: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(26, 68, 128, 0.15);
  border-top-color: var(--primary);
  animation: card-ai-spin 0.9s linear infinite;
}

/* Done: halo verde sutil ao redor do dot */
.card-status-wrap.ai-done::before {
  content: '';
  position: absolute; inset: -2px;
  border-radius: 50%;
  border: 1.5px solid #52a870;
  opacity: 0.65;
}
.card-status-wrap.ai-done { cursor: pointer; }
.card-status-wrap.ai-done:hover::before { opacity: 1; inset: -3px; }

/* Alta pronta: badge ✓ roxo */
.card-status-wrap.ai-alta-done { cursor: pointer; }
.card-status-wrap.ai-alta-done::after {
  content: '✓';
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: var(--fs-2xs); font-weight: 800; color: #fff;
  background: #7c3aed; border-radius: 50%;
  z-index: 1;
}
.card-status-wrap.ai-alta-done:hover::after { background: #6d28d9; }

/* Copied: badge ✓ verde sólido */
.card-status-wrap.ai-copied { cursor: pointer; }
.card-status-wrap.ai-copied::after {
  content: '✓';
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: var(--fs-2xs); font-weight: 800; color: #fff;
  background: #16a34a; border-radius: 50%;
  z-index: 1;
}
/* Card com fundo verde bem suave */
.card-evo-copiada {
  border-left: 3px solid #16a34a !important;
  background: linear-gradient(135deg, #f0fdf4 0%, #fff 60%) !important;
}

.card-dia-encerrado {
  opacity: 0.6;
  border-left: 3px solid #94a3b8 !important;
  background: var(--bg-card) !important;
  filter: grayscale(100%);
}
.card-dia-encerrado:hover {
  opacity: 0.85;
  filter: grayscale(40%);
}

.no-results {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 64px 24px; color: var(--text-muted);
}
.no-results span { font-size: 36px; }
.no-results p { font-size: 14px; }
.no-results.hidden { display: none; }

/* ══════════════════════════════════════════
   MODAL
══════════════════════════════════════════ */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(10,20,38,0.65);
  display: flex; align-items: flex-start; justify-content: center;
  padding: 24px; z-index: 100; overflow: hidden;
}
.modal-overlay.hidden { display: none; }

.modal-container {
  background: var(--card-bg); border: 1px solid var(--border);
  border-radius: var(--radius); width: 100%; max-width: 1000px; position: relative;
  box-shadow: var(--shadow-lg); animation: modal-in 0.18s ease;
  max-height: calc(100vh - 48px); overflow-y: auto;
}
@keyframes modal-in {
  from { transform: translateY(16px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

.modal-close {
  position: absolute; top: 12px; right: 12px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--radius); width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: var(--fs-base); color: rgba(255,255,255,.7);
  transition: background 0.12s; z-index: 1;
}
.modal-close:hover { background: rgba(255,255,255,.22); color: #fff; }

.modal-tab-bar {
  display: flex; background: var(--card-bg);
  border-bottom: 2px solid var(--border);
  padding: 0 20px;
  position: sticky; top: var(--pin-h, 0px); z-index: 20;
}
.modal-tab {
  padding: 10px 16px; font-size: var(--fs-base); font-weight: 600;
  border: none; border-bottom: 3px solid transparent;
  background: none; cursor: pointer; color: var(--text-muted);
  margin-bottom: -2px; transition: color 0.15s, border-color 0.15s;
  font-family: inherit;
}
.modal-tab:hover { color: var(--primary); }
.modal-tab.modal-tab-active { color: var(--primary); border-bottom-color: var(--primary); }
.modal-tab-pane { display: contents; }
.modal-tab-pane.hidden { display: none; }

/* Índice de seções — subordinado às abas de domínio: barra tintada com pills */
.modal-nav-bar {
  display: flex; gap: 4px; align-items: center; flex-wrap: wrap;
  background: var(--hover-bg);
  border-bottom: 1px solid var(--border);
  padding: 5px 24px;
  position: sticky; top: calc(var(--pin-h, 0px) + var(--tab-h, 41px)); z-index: 15;
}
.modal-nav-bar::before {
  content: 'Seções'; font-size: var(--fs-3xs); font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em; color: var(--text-faint);
  margin-right: 4px; white-space: nowrap;
}
.modal-nav-link {
  background: none; border: 1px solid transparent; border-radius: 999px;
  padding: 4px 11px; font-size: var(--fs-2xs); font-weight: 600;
  color: var(--text-muted); cursor: pointer;
  text-transform: uppercase; letter-spacing: 0.04em;
  white-space: nowrap; transition: background .12s, color .12s, border-color .12s;
  font-family: inherit;
}
.modal-nav-link:hover { color: var(--primary); background: var(--card-bg); border-color: var(--border); }
.modal-nav-link-active { color: var(--primary); background: var(--card-bg); border-color: #b8c4e8; box-shadow: var(--shadow-sm); }

.modal-header-pills {
  margin-top: 10px; display: flex; flex-direction: column; gap: 5px;
  border-top: 1px solid rgba(255,255,255,0.12); padding-top: 10px;
}
.modal-header-pill-row {
  display: flex; align-items: flex-start; gap: 8px; flex-wrap: wrap; position: relative;
}
.header-pill-label {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
  color: rgba(255,255,255,0.5); white-space: nowrap; padding-top: 3px; min-width: 80px;
}
.header-pill-list { display: flex; flex-wrap: wrap; gap: 4px; flex: 1; }
.header-pill-tag {
  font-size: var(--fs-xs); background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.9);
  border-radius: 20px; padding: 2px 8px; border: 1px solid rgba(255,255,255,0.18);
}
.header-pill-empty { font-size: var(--fs-sm); color: rgba(255,255,255,0.3); padding-top: 2px; }
/* Alergias vazias: rótulo explícito (segurança) em vez de "—" */
.header-pill-nkda { color: rgba(255,255,255,0.55); font-style: italic; }
/* Uso contínuo colapsável — contador clicável que revela as pills */
.header-pill-toggle {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: var(--fs-xs); font-family: inherit; cursor: pointer;
  background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.9);
  border: 1px solid rgba(255,255,255,0.18); border-radius: 20px; padding: 2px 10px;
}
.header-pill-toggle:hover { background: rgba(255,255,255,0.2); }
.header-pill-toggle .hpt-chevron { font-size: var(--fs-3xs); transition: transform .15s; }
.header-pill-collapsible:not(.collapsed) .hpt-chevron { transform: rotate(180deg); }
.header-pill-tags-wrap { display: flex; flex-wrap: wrap; gap: 4px; }
.header-pill-collapsible.collapsed .header-pill-tags-wrap { display: none; }
.header-pill-label-alerg { color: #fca5a5; }
.header-pill-tag-alerg { background: rgba(239,68,68,0.25); border-color: rgba(239,68,68,0.5); color: #fca5a5; font-weight: 600; }
.btn-header-pill-edit {
  background: none; border: none; cursor: pointer; opacity: 0.4;
  color: #fff; padding: 1px 3px; transition: opacity 0.15s; flex-shrink: 0; margin-top: 1px;
}
.btn-header-pill-edit:hover { opacity: 0.9; }
.header-edit-panel {
  width: 100%; margin-top: 4px;
  background: rgba(255,255,255,0.97) !important;
  border-color: rgba(255,255,255,0.3) !important;
  color: var(--text) !important;
}
.header-edit-panel input,
.header-edit-panel select,
.header-edit-panel textarea,
.header-edit-panel .edit-list-item { color: var(--text); background: white; }
.modal-patient-header {
  background: var(--primary-dark);
  color: #fff; padding: 20px 28px; border-radius: var(--radius) var(--radius) 0 0;
  border-bottom: 2px solid #0a1e38;
}
.modal-leito {
  display: flex; align-items: center; gap: 6px;
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: 1px;
  margin-bottom: 3px;
}
.modal-leito > span:first-child { opacity: 0.65; }
.modal-nome-wrap { display: flex; align-items: center; margin-bottom: 3px; }
.modal-nome-display {
  font-size: 19px; font-weight: 600;
  cursor: pointer;
  border-bottom: 1px dashed transparent;
  transition: border-color .15s;
}
.modal-nome-display:hover { border-color: rgba(255,255,255,0.6); }
.modal-nome-input {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.4);
  border-radius: 4px;
  color: #fff;
  font-size: 19px;
  font-weight: 600;
  font-family: inherit;
  padding: 2px 8px;
  width: 280px;
  outline: none;
}
.modal-nome-input:focus { border-color: rgba(255,255,255,0.8); background: rgba(255,255,255,0.18); }
.modal-meta { font-size: var(--fs-base); opacity: 0.8; display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.modal-idade-wrap { display: inline-flex; align-items: center; }
.modal-idade-display {
  cursor: pointer;
  border-bottom: 1px dashed rgba(255,255,255,0.3);
  padding-bottom: 1px;
  transition: border-color .15s;
}
.modal-idade-display:hover { border-color: rgba(255,255,255,0.7); }
.modal-idade-input {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.4);
  border-radius: 4px;
  color: #fff;
  font-size: var(--fs-base);
  font-family: inherit;
  padding: 2px 7px;
  width: 110px;
  outline: none;
}
.modal-idade-input:focus { border-color: rgba(255,255,255,0.8); background: rgba(255,255,255,0.18); }

.modal-idade-sufixo { font-size: var(--fs-sm); opacity: 0.7; pointer-events: none; user-select: none; }
.modal-sexo-wrap { display: flex; align-items: center; gap: 4px; position: relative; }
.sexo-symbol {
  font-size: var(--fs-md); opacity: 0.9; line-height: 1;
  border-bottom: 1px dashed rgba(255,255,255,0.3);
  padding-bottom: 1px; transition: opacity .15s, border-color .15s;
}
.sexo-symbol:hover { opacity: 1; border-color: rgba(255,255,255,0.7); }
.sexo-picker {
  display: flex; gap: 3px; position: absolute; top: calc(100% + 6px); left: 0;
  background: var(--primary-dark); border: 1px solid rgba(255,255,255,0.2);
  border-radius: var(--radius-sm); padding: 4px; z-index: 20;
}
.sexo-picker.hidden { display: none; }
.sexo-btn {
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.25);
  color: rgba(255,255,255,0.75); border-radius: var(--radius-sm);
  font-size: 14px; padding: 2px 8px; cursor: pointer;
  font-family: inherit; transition: all 0.15s; line-height: 1.4;
}
.sexo-btn:hover { background: rgba(255,255,255,0.25); color: #fff; }
.sexo-btn.sexo-active { background: #fff; color: var(--primary-dark); border-color: #fff; }
.modal-muc-banner {
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--radius); padding: 6px 12px; margin-top: 12px; font-size: var(--fs-sm);
}
.modal-muc-banner-label { font-size: var(--fs-2xs); text-transform: uppercase; letter-spacing: 0.5px; opacity: 0.7; margin-bottom: 2px; }
.modal-muc-banner-value { display: flex; align-items: center; gap: 6px; font-weight: 500; }
.modal-muc-banner .section-edit-panel { margin-top: 8px; }

/* ── Ícone de critérios de alta ── */
.discharge-info-wrap {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  margin-left: 5px;
  cursor: default;
}
.discharge-info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 4px;
  background: #dbeafe;
  color: #1d4ed8;
  flex-shrink: 0;
  user-select: none;
  transition: background 0.12s, color 0.12s;
}
.discharge-info-wrap:hover .discharge-info-icon {
  background: #1d4ed8;
  color: #fff;
}
/* Tooltip global — posicionado via JS, sempre aberto para baixo */
.discharge-info-tooltip {
  display: none;
  position: absolute;
  background: #1e293b;
  color: #f1f5f9;
  border-radius: 8px;
  padding: 12px 14px;
  width: 310px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.28);
  z-index: 99999;
  pointer-events: none;
}
.discharge-info-title {
  font-size: var(--fs-sm);
  font-weight: 700;
  margin-bottom: 2px;
  color: #93c5fd;
}
.discharge-info-subtitle {
  font-size: var(--fs-2xs);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-faint);
  margin-bottom: 8px;
}
.discharge-info-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.discharge-info-list li {
  font-size: var(--fs-xs);
  line-height: 1.4;
  padding-left: 18px;
  position: relative;
  color: #e2e8f0;
  display: flex;
  align-items: baseline;
  gap: 5px;
  padding-left: 0;
}
.dc-icon {
  flex-shrink: 0;
  font-size: var(--fs-2xs);
  width: 14px;
  text-align: center;
}
.dc-met .dc-icon     { color: #4ade80; }
.dc-unmet .dc-icon   { color: #f87171; }
.dc-unknown .dc-icon { color: #eab308; }  /* amarelo — não detectado */
.dc-nc .dc-icon      { color: #60a5fa; }
.dc-met     { color: #d1fae5; }
.dc-unmet   { color: #e2e8f0; }
.dc-unknown { color: #fef9c3; }           /* amarelo claro — não detectado */
.dc-nc      { color: #bfdbfe; }
.discharge-info-divider {
  border-top: 1px solid rgba(255,255,255,0.12);
  margin: 10px 0;
}

.modal-body { padding: 20px 28px; display: flex; flex-direction: column; gap: 22px; }

.modal-section {}
.modal-section-title {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.9px; color: var(--text-muted); margin-bottom: 10px;
  display: flex; align-items: center; gap: 8px;
}
.modal-section-title::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}

.btn-section-edit, .btn-inline-edit {
  background: none; border: none; cursor: pointer; font-size: var(--fs-xs);
  opacity: 0.3; padding: 0 2px; order: 99; flex-shrink: 0;
}
.btn-section-edit:hover, .btn-inline-edit:hover { opacity: 1; }
.section-edit-panel {
  margin-top: 8px; padding: 10px 12px;
  background: #f5f8fc; border: 1px solid #c0d4e8;
  border-radius: var(--radius); display: flex; flex-direction: column; gap: 7px;
}
.section-edit-panel.hidden { display: none; }
.edit-list { display: flex; flex-direction: column; gap: 3px; }
.edit-list-item {
  display: flex; justify-content: space-between; align-items: center;
  font-size: var(--fs-base); padding: 4px 8px;
  background: white; border: 1px solid var(--border); border-radius: var(--radius);
}
.btn-remove-item {
  background: none; border: none; color: var(--text-muted); font-size: var(--fs-sm);
  cursor: pointer; padding: 0 3px; flex-shrink: 0; opacity: 0.45;
}
.btn-remove-item:hover { opacity: 1; color: var(--danger); }
.section-empty { font-size: var(--fs-base); color: var(--text-muted); font-style: italic; }
.item-actions { display: flex; align-items: center; gap: 2px; flex-shrink: 0; margin-left: auto; }
.item-edit-form {
  margin-top: 6px; padding: 9px 11px;
  background: #f5f8fc; border: 1px solid #c0d4e8;
  border-radius: var(--radius); display: flex; flex-direction: column; gap: 6px;
}
.item-edit-form.hidden { display: none; }
.pendencia-content { flex: 1; min-width: 0; }
.pendencia-item { align-items: flex-start; }

.comorbidades-grid { display: flex; flex-wrap: wrap; gap: 6px; }
.comorbidade-tag {
  background: var(--neutral-light); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 4px 10px; font-size: var(--fs-base); font-weight: 500;
}

.vitals-table, .labs-table {
  width: 100%; border-collapse: collapse; font-size: var(--fs-sm);
}
.vitals-table th, .labs-table th {
  text-align: left; padding: 6px 10px; background: #f0f2f5;
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;
  color: var(--text-muted); border-bottom: 1px solid var(--border);
  border-top: 1px solid var(--border);
}
.labs-table-dated .lab-date-header {
  text-align: center; background: #f5f8fc; color: var(--primary);
  border-left: 1px solid var(--border); min-width: 90px;
}
.labs-table-dated .lab-date-latest {
  background: #dbeafe; color: var(--primary-dark); font-weight: 800;
}
.lab-date-header-inner { position: relative; display: flex; flex-direction: column; align-items: center; gap: 1px; }
.lab-date-main { display: block; }
.lab-date-time { font-size: var(--fs-3xs); font-weight: 400; opacity: 0.72; display: block; }
.lab-date-header-inner .btn-lab-col-delete { position: absolute; top: -4px; right: -10px; }
.vitals-table td, .labs-table td {
  padding: 7px 10px; border-bottom: 1px solid var(--border);
}
/* densidade: tabela de labs usa linhas mais compactas para caber mais exames */
.labs-table td { padding-top: 5px; padding-bottom: 5px; }
.labs-table-dated td + td {
  text-align: center; border-left: 1px solid var(--border);
}

/* ── Tabela com rolagem horizontal (> 4 datas) ─────────────────────── */
.labs-table-scroll-wrap {
  overflow-x: auto;
  position: relative;
  border-radius: 6px;
  /* Gradiente sutil indicando conteúdo à direita do scroll */
  background:
    linear-gradient(to right, white 30%, transparent),
    linear-gradient(to left,  #eef4ff 40px, transparent) right;
  background-color: white;
  background-size: 60px 100%, 60px 100%;
  background-repeat: no-repeat;
  background-attachment: local, scroll;
}
.labs-table-dated.labs-scroll-mode {
  width: auto;
  min-width: 100%;
}
/* Coluna do nome do exame — sticky esquerda */
.labs-table-dated.labs-scroll-mode .lab-name-header,
.labs-table-dated.labs-scroll-mode .lab-name-cell {
  position: sticky;
  left: 0;
  z-index: 2;
  background: #f7f8fa;
  box-shadow: 2px 0 5px -1px rgba(0,0,0,0.08);
}
.labs-table-dated.labs-scroll-mode .lab-name-header {
  background: #f0f2f5;
}
/* Coluna mais recente — sticky direita */
.labs-table-dated.labs-scroll-mode .lab-date-latest,
.labs-table-dated.labs-scroll-mode .lab-cell-latest {
  position: sticky;
  right: 0;
  z-index: 2;
  background: #eef4ff;
  border-left: 2px solid #93c5fd !important;
}
.labs-table-dated.labs-scroll-mode .lab-date-latest {
  background: #dbeafe;
}
/* Hover sobre linhas não deve sobrepor o fundo sticky */
.labs-table-dated.labs-scroll-mode tr:hover .lab-name-cell { background: #edf0f5; }
.labs-table-dated.labs-scroll-mode tr:hover .lab-cell-latest { background: #e0ecff; }
/* Ícone de edição SVG — flat, sem emoji */
.icon-edit {
  width: 11px;
  height: 11px;
  vertical-align: middle;
  margin-top: -1px;
  flex-shrink: 0;
}

/* Célula de exame editável ao clicar */
.lab-cell-editable { cursor: default; position: relative; }
.lab-cell-edit-btn {
  display: none; position: absolute; top: 50%; right: 2px; transform: translateY(-50%);
  background: none; border: none; cursor: pointer;
  font-size: var(--fs-xs); color: var(--text-muted); padding: 2px 3px; line-height: 1;
  opacity: 0.6;
}
.lab-cell-edit-btn:hover { opacity: 1; color: var(--primary); }
.lab-row:hover .lab-cell-edit-btn { display: block; }
.lab-cell-input { caret-color: #0ea5e9; }

.lab-name-cell { font-weight: 500; white-space: nowrap; color: var(--text); }
.vitals-table tr:last-child td, .labs-table tr:last-child td { border-bottom: none; }
.vitals-table tr:hover td, .labs-table tr:hover td { background: #f7f8fa; }
.btn-lab-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  width: 14px;
  height: 14px;
  background: none;
  border: none;
  color: var(--text-faint);
  font-size: var(--fs-2xs);
  line-height: 1;
  cursor: pointer;
  padding: 0;
  border-radius: 50%;
  margin-right: 5px;
  vertical-align: middle;
  flex-shrink: 0;
  transition: color 0.15s, background 0.15s;
}
.btn-lab-delete:hover { color: #ef4444; background: #fee2e2; }
.labs-table tr:hover .btn-lab-delete { visibility: visible; }

/* Delete column button (date header) */
.btn-lab-col-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  width: 14px;
  height: 14px;
  background: none;
  border: none;
  color: var(--text-faint);
  font-size: var(--fs-2xs);
  line-height: 1;
  cursor: pointer;
  padding: 0;
  border-radius: 50%;
  margin-left: 4px;
  vertical-align: middle;
  transition: color 0.15s, background 0.15s;
}
.btn-lab-col-delete:hover { color: #ef4444; background: #fee2e2; }
.labs-table th:hover .btn-lab-col-delete { visibility: visible; }

/* Chartable lab rows */
.lab-row-chartable { cursor: pointer; }
.lab-row-chartable:hover td { background: var(--primary-light) !important; }
.lab-row-chart-open td { background: var(--primary-light) !important; }
.lab-chart-icon {
  display: inline-block; margin-left: 5px; font-size: var(--fs-xs);
  font-style: normal; opacity: 1; vertical-align: middle; font-weight: 700;
  transition: opacity 0.15s;
}
.lab-chart-icon.trend-good { color: var(--success); }
.lab-chart-icon.trend-bad  { color: var(--danger); }
/* seta neutra (variação dentro do ruído) fica recuada para não competir */
.lab-chart-icon.trend-flat { color: var(--text-muted); opacity: 0.35; font-weight: 400; }
.lab-row-chartable:hover .lab-chart-icon,
.lab-row-chart-open .lab-chart-icon { opacity: 1; }
.lab-chart-row td { padding: 0 !important; border-bottom: 1px solid var(--border); }
.lab-chart-cell {
  padding: 10px 12px !important;
  background: #fafbfc;
  border-top: 1px solid var(--border);
}
/* Gráfico inline em modo rolagem: conteúdo fixado à esquerda da área visível,
   para aparecer junto da linha clicada sem herdar a rolagem horizontal da tabela. */
.lab-chart-cell-scroll { padding: 0 !important; }
.lab-chart-sticky {
  position: sticky;
  left: 0;
  box-sizing: border-box;
  background: #fafbfc;
  padding: 8px 12px 12px;
}
.lab-chart-panel-title {
  font-size: var(--fs-xs); font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px;
}
.value-ok     { color: var(--success);  font-weight: 700; }
.value-warn   { color: #b05a00;         font-weight: 700; }
.value-orange { color: #c05000;         font-weight: 700; }
.value-crit   { color: var(--danger);   font-weight: 700; }

/* Heatmap: tom de fundo sutil nas células graves (crit/laranja) para a
   trajetória de gravidade "acender" ao varrer a linha. warn/ok ficam só no texto. */
.labs-table td.value-crit   { background: var(--danger-light); }
.labs-table td.value-orange { background: var(--warning-light); }
/* Células vazias (—) recuam para os valores reais dominarem */
.lab-cell-empty { color: var(--text-faint); opacity: 0.45; }

/* TFG tooltip inside creatinine cells */
.has-tfg { position: relative; }
.tfg-tip {
  display: none;
  position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translateX(-50%);
  background: var(--primary-dark); color: #fff;
  font-size: var(--fs-2xs); font-weight: 600; white-space: nowrap;
  padding: 3px 8px; border-radius: var(--radius-sm);
  pointer-events: none; z-index: 10;
}
.tfg-tip::after {
  content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  border: 4px solid transparent; border-top-color: var(--primary-dark);
}
.has-tfg:hover .tfg-tip { display: block; }
.tfg-tip.value-ok   { background: var(--success); }
.tfg-tip.value-ok::after   { border-top-color: var(--success); }
.tfg-tip.value-warn { background: #b05a00; }
.tfg-tip.value-warn::after { border-top-color: #b05a00; }
.tfg-tip.value-crit { background: var(--danger); }
.tfg-tip.value-crit::after { border-top-color: var(--danger); }
.tfg-tip-na { background: var(--text-muted) !important; }
.tfg-tip-na::after { border-top-color: var(--text-muted) !important; }
.value-na   { color: var(--text-muted); font-style: italic; }

.evolution-box {
  background: var(--warning-light); border: 1px solid #d4b070; border-left: 3px solid #c07a00;
  border-radius: 0 var(--radius) var(--radius) 0; padding: 12px 16px;
}
.evolution-notice {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; color: #7a4f00; margin-bottom: 8px;
  display: flex; align-items: center; gap: 6px;
}
.evolution-text { font-size: var(--fs-base); line-height: 1.75; color: var(--text); white-space: pre-wrap; }

.plano-box {
  background: var(--success-light); border: 1px solid #b2d8c2; border-left: 3px solid var(--success);
  border-radius: 0 var(--radius) var(--radius) 0; padding: 12px 16px;
}
.plano-text { font-size: var(--fs-base); line-height: 1.75; color: var(--text); white-space: pre-wrap; }

.meds-list { display: flex; flex-direction: column; gap: 4px; }
.med-item {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: var(--fs-base); padding: 5px 10px;
  background: var(--neutral-light); border-radius: var(--radius);
  border: 1px solid var(--border);
}
.med-bullet { color: var(--primary); font-weight: 700; flex-shrink: 0; }

.modal-footer {
  padding: 12px 28px; border-top: 1px solid var(--border);
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
  background: #f7f8fa; border-radius: 0 0 var(--radius) var(--radius);
}
.modal-footer .btn-danger {
  background: none; color: var(--danger); border-color: var(--danger);
  font-weight: 500;
}
.modal-footer .btn-danger:hover { background: var(--danger-light, #fee2e2); }
.modal-footer .btn-ghost {
  color: var(--text-muted); border-color: var(--border); background: #fff;
}
.modal-footer .btn-ghost:hover { background: var(--hover-bg); color: var(--text); border-color: #adb5bd; }

/* ══════════════════════════════════════════
   SPINNER / LOADING
══════════════════════════════════════════ */
.spinner {
  width: 16px; height: 16px; border: 2px solid rgba(255,255,255,0.3);
  border-top-color: #fff; border-radius: 50%; animation: spin 0.7s linear infinite;
}
.spinner.hidden { display: none; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ══════════════════════════════════════════
   CULTURAS
══════════════════════════════════════════ */
.cultura-add-panel {
  margin-top: 10px;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.cultura-item {
  padding: 10px 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-bottom: 8px;
}
.cultura-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.cultura-header-left {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.cultura-material {
  font-weight: 600;
  font-size: var(--fs-base);
  color: var(--text);
}
.cultura-data {
  font-size: var(--fs-sm);
  color: var(--text-muted);
  background: var(--bg);
  padding: 1px 6px;
  border-radius: 4px;
}
.cultura-badge {
  font-size: var(--fs-xs);
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
  text-transform: capitalize;
}
.cultura-res-positiva  { background: #7f1d1d; color: #fca5a5; }
.cultura-res-negativa  { background: #14532d; color: #86efac; }
.cultura-res-pendente  { background: #78350f; color: #fcd34d; }
.cultura-res-contaminacao { background: #312e81; color: #c4b5fd; }

.cultura-perfil-badge {
  font-size: var(--fs-2xs);
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 8px;
  background: #7c2d12;
  color: #fdba74;
  letter-spacing: .4px;
}
.cultura-germe {
  margin-top: 6px;
  font-size: var(--fs-base);
  font-weight: 600;
  color: #f87171;
}
.cultura-antibiograma {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cultura-atb-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  line-height: 1.5;
}
.cultura-atb-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  font-size: var(--fs-2xs);
  font-weight: 800;
  flex-shrink: 0;
}
.cultura-atb-label.sensivel     { background: #14532d; color: #86efac; }
.cultura-atb-label.intermediario{ background: #78350f; color: #fcd34d; }
.cultura-atb-label.resistente   { background: #7f1d1d; color: #fca5a5; }

.cultura-obs {
  margin-top: 6px;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  font-style: italic;
}
.cultura-manual-details {
  margin-top: 10px;
  border-top: 1px solid var(--border);
  padding-top: 10px;
}
.cultura-manual-details summary {
  cursor: pointer;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  user-select: none;
}
.cultura-manual-form {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ══════════════════════════════════════════
   SOROLOGIAS
══════════════════════════════════════════ */
.sorol-item {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 6px;
  position: relative;
}
.sorol-main {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.sorol-nome {
  font-size: var(--fs-base); font-weight: 600; color: var(--text-primary);
}
.sorol-data {
  font-size: var(--fs-sm); color: var(--text-muted);
}
.sorol-valor {
  font-size: var(--fs-sm); color: var(--text-secondary);
  margin-left: auto;
}
.sorol-obs {
  margin-top: 4px; font-size: var(--fs-sm); color: var(--text-muted); font-style: italic;
}
.sorol-item .item-actions {
  position: absolute; top: 6px; right: 8px;
  display: flex; gap: 4px; opacity: 0; transition: opacity 0.15s;
}
.sorol-item:hover .item-actions { opacity: 1; }

/* Badges de resultado */
.sorol-badge {
  font-size: var(--fs-xs); font-weight: 600; padding: 1px 7px;
  border-radius: 10px; border: 1px solid;
}
.sorol-reagente  { background: rgba(220,38,38,0.15); border-color: rgba(220,38,38,0.4); color: #fca5a5; }
.sorol-nreagente { background: rgba(34,197,94,0.15);  border-color: rgba(34,197,94,0.4);  color: #86efac; }
.sorol-indet     { background: rgba(234,179,8,0.15);  border-color: rgba(234,179,8,0.4);  color: #fde68a; }
.sorol-pend      { background: rgba(99,102,241,0.15); border-color: rgba(99,102,241,0.4); color: #a5b4fc; }

/* ══════════════════════════════════════════
   PROCESSING CARD (skeleton placeholder)
══════════════════════════════════════════ */
.processing-card {
  cursor: default !important;
  pointer-events: none;
  animation: pcPulse 2s ease-in-out infinite;
}
@keyframes pcPulse {
  0%, 100% { border-color: var(--border); box-shadow: var(--shadow-sm); }
  50%       { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(26,68,128,0.12); }
}

/* Generic shimmer bar */
.sk {
  border-radius: 4px;
  background: linear-gradient(90deg, #e8edf2 25%, #d0d8e4 50%, #e8edf2 75%);
  background-size: 300% 100%;
  animation: sk-shimmer 1.6s ease-in-out infinite;
}
@keyframes sk-shimmer {
  0%   { background-position: 300% 0; }
  100% { background-position: -300% 0; }
}

/* Header shims — same background as real card-header (#f7f8fa) */
.sk-header { gap: 8px; }
.sk-leito  { height: 10px; width: 52px; margin-bottom: 5px; }
.sk-setor  { height: 16px; width: 68px; border-radius: 6px; margin-bottom: 6px; }
.sk-nome   { height: 17px; width: 78%; margin-bottom: 4px; }
.sk-idade  { height: 12px; width: 38%; }
.sk-dot    { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 5px; }

/* MUC shims — tinted blue like real card-muc */
.sk-muc-wrap {
  background: var(--primary-light);
  border-left: 3px solid var(--primary);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 6px 8px;
  display: flex; flex-direction: column; gap: 5px;
}
.sk-muc-wrap .sk {
  background: linear-gradient(90deg, rgba(26,68,128,.10) 25%, rgba(26,68,128,.20) 50%, rgba(26,68,128,.10) 75%);
  background-size: 300% 100%;
}
.sk-muc-label { height: 9px;  width: 55px; }
.sk-muc-line  { height: 13px; width: 88%; }
.sk-muc-line.short { width: 58%; }

/* SSVV shims */
.sk-ssvv-wrap {
  padding: 7px 10px;
  border: 1px solid var(--border); border-left-width: 3px;
  border-radius: var(--radius);
  display: flex; flex-direction: column; gap: 5px;
}
.sk-ssvv-label { height: 9px;  width: 48px; }
.sk-ssvv-line  { height: 12px; width: 90%; }

/* Footer shims — same background as real card-footer (#f7f8fa) */
.sk-footer { gap: 0; }
.sk-ft-date { height: 10px; width: 90px; }
.sk-ft-btn  { height: 22px; width: 66px; border-radius: var(--radius); }
.sk-ft-link { height: 10px; width: 72px; }

.processing-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  font-style: italic;
  padding: 8px 14px 10px;
}
.processing-dots-icon { animation: spin 1.5s linear infinite; display: inline-block; }

/* ══════════════════════════════════════════
   TOAST NOTIFICATION
══════════════════════════════════════════ */
.dash-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  padding: 12px 24px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
  z-index: 9999;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4);
  max-width: 480px;
  text-align: center;
  animation: toastIn .2s ease;
}
.dash-toast.hidden { display: none !important; }
.dash-toast-error  { background: #7f1d1d; color: #fecaca; }
.dash-toast-info   { background: #1e3a5f; color: #bfdbfe; }
.dash-toast-ok     { background: #14532d; color: #bbf7d0; }
@keyframes toastIn { from { opacity:0; transform: translateX(-50%) translateY(12px); } to { opacity:1; transform: translateX(-50%) translateY(0); } }

/* ══════════════════════════════════════════
   UTILITIES
══════════════════════════════════════════ */
.hidden { display: none !important; }
.text-muted { color: var(--text-muted); }

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media (max-width: 640px) {
  .input-main { padding: 12px; }
  .input-card { padding: 20px 16px; }
  .dash-header { flex-direction: column; align-items: stretch; gap: 8px; height: auto; padding: 10px 16px; }
  .dash-header-right { flex-wrap: wrap; }
  .search-wrap input { width: 100%; }
  .cards-grid { columns: 1; }
  .modal-patient-header { padding: 16px 20px; }
  .modal-body { padding: 16px 20px; }
  .modal-footer { padding: 10px 20px; }
  .vitals-table, .labs-table { font-size: var(--fs-xs); }
}

/* ══════════════════════════════════════════
   MODE SELECTOR
══════════════════════════════════════════ */
.mode-chevron { font-size: var(--fs-xs); opacity: .7; margin-left: 2px; }
.mode-switcher-trigger { cursor: pointer; }
.mode-switcher-trigger:hover .mode-chevron { opacity: 1; }

.mode-selector {
  position: fixed;
  top: 52px;
  left: 16px;
  z-index: 1000;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  overflow: hidden;
  min-width: 260px;
}
.mode-option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  cursor: pointer;
  transition: background .12s;
  border-bottom: 1px solid var(--border);
}
.mode-option:last-child { border-bottom: none; }
.mode-option:hover { background: #f1f5f9; }
.mode-option.active { background: var(--primary-light); }
.mode-opt-icon { font-size: var(--fs-xl); flex-shrink: 0; }
.mode-opt-text strong { display: block; font-size: 13.5px; color: var(--text); }
.mode-opt-text small { font-size: var(--fs-xs); color: var(--text-muted); }

/* ══════════════════════════════════════════
   EMERGENCY HEADER
══════════════════════════════════════════ */
.emerg-header { background: #7f1d1d; border-bottom-color: #5c1414; }
.emerg-input-header { background: #7f1d1d; border-bottom-color: #5c1414; }
.btn-emerg-add { background: var(--danger-bright); color: #fff; border-color: var(--danger); }
.btn-emerg-add:hover:not(:disabled) { background: var(--danger); }

/* Botões ghost dentro de headers escuros (azul e vermelho) */
/* ── Sistema unificado de botões em headers escuros ── */

/* Ghost base: todos os headers escuros */
.dash-header .btn-ghost,
.emerg-header .btn-ghost,
.emerg-input-header .btn-ghost,
.input-header .btn-ghost,
.input-header .btn-encerrar-dia {
  color: rgba(255,255,255,.82);
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.22);
}
.dash-header .btn-ghost:hover,
.emerg-header .btn-ghost:hover,
.emerg-input-header .btn-ghost:hover,
.input-header .btn-ghost:hover {
  color: #fff;
  background: rgba(255,255,255,.2);
  border-color: rgba(255,255,255,.42);
}
.input-header .btn-encerrar-dia:hover {
  color: #fca5a5;
  background: rgba(239,68,68,.22);
  border-color: rgba(239,68,68,.5);
}

/* Rótulo de seção dentro do menu do usuário (ex.: "Ações do round") */
.user-menu-label {
  font-size: var(--fs-3xs); font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--text-faint);
  padding: 6px 14px 2px;
}

/* CTA round clínico: branco sólido */
.dash-header .btn-primary {
  background: rgba(255,255,255,.92);
  color: var(--primary-dark);
  border-color: transparent;
  font-weight: 600;
}
.dash-header .btn-primary:hover:not(:disabled) { background: #fff; color: var(--primary-dark); }

/* CTA sala vermelha: branco com texto vermelho */
.emerg-header .btn-emerg-add {
  background: rgba(255,255,255,.92);
  color: var(--danger);
  border-color: transparent;
  font-weight: 600;
}
.emerg-header .btn-emerg-add:hover:not(:disabled) { background: #fff; color: #7f1d1d; }

/* CTA input-header (Receituário) */
.input-header .btn-primary {
  background: rgba(255,255,255,.92);
  color: var(--primary-dark);
  border-color: transparent;
  font-weight: 600;
}
.input-header .btn-primary:hover:not(:disabled) { background: #fff; color: var(--primary-dark); }
.input-header .btn-primary:disabled {
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.38);
  border-color: transparent;
}

/* ══════════════════════════════════════════
   EMERGENCY TRIAGEM COLORS
══════════════════════════════════════════ */
.emerg-card { border-left: 4px solid #94a3b8; }
.emerg-card:hover { border-color: var(--danger); }
/* Borda lateral por risco NEWS2 — board escaneável por gravidade (#10) */
.emerg-card-risk-alto   { border-left-color: var(--danger); }
.emerg-card-risk-medio  { border-left-color: #c07a00; }
.emerg-card-risk-baixo  { border-left-color: var(--success); }
.emerg-card-risk-minimo { border-left-color: var(--success); }
.emerg-card .card-atb-pill { background: #fff1f1; color: var(--danger); border-color: #fca5a5; }
.emerg-card .card-atb-pill-long { background: var(--warning-light); color: #7a4f00; border-color: #d4ad70; }
/* Rótulo de grupo leve no card (sem régua de largura total) (#11) */
.emerg-card-grp-label {
  font-size: var(--fs-3xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .4px; color: var(--text-muted); margin: 9px 0 5px;
}
.emerg-triagem-vermelho { border-left-color: var(--danger-bright); }
.emerg-triagem-laranja  { border-left-color: #ea580c; }
.emerg-triagem-amarelo  { border-left-color: #ca8a04; }
.emerg-triagem-verde    { border-left-color: #16a34a; }
.emerg-triagem-azul     { border-left-color: #2563eb; }

.emerg-triagem-label { font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.emerg-triagem-vermelho .emerg-triagem-label,
.emerg-modal-header.emerg-triagem-vermelho .emerg-triagem-label { color: var(--danger-bright); }
.emerg-triagem-laranja .emerg-triagem-label,
.emerg-modal-header.emerg-triagem-laranja .emerg-triagem-label { color: #ea580c; }
.emerg-triagem-amarelo .emerg-triagem-label,
.emerg-modal-header.emerg-triagem-amarelo .emerg-triagem-label { color: #ca8a04; }
.emerg-triagem-verde .emerg-triagem-label,
.emerg-modal-header.emerg-triagem-verde .emerg-triagem-label { color: #16a34a; }
.emerg-triagem-azul .emerg-triagem-label,
.emerg-modal-header.emerg-triagem-azul .emerg-triagem-label { color: #2563eb; }

/* Abas do modal de emergência — vermelho, não azul */
.emerg-tabs .modal-tab:hover { color: var(--danger); }
.emerg-tabs .modal-tab.modal-tab-active { color: var(--danger); border-bottom-color: var(--danger); }

/* ══════════════════════════════════════════
   EMERGENCY STATUS BADGE
══════════════════════════════════════════ */
.emerg-status-badge {
  font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; padding: 2px 7px;
  border-radius: 999px; white-space: nowrap;
  border: 1px solid currentColor;
}
.emerg-status-reanimacao { color: var(--danger); background: #fee2e2; }
.emerg-status-observacao { color: #b45309; background: #fef3c7; }
.emerg-status-medicacao  { color: #1e40af; background: #dbeafe; }

/* ══════════════════════════════════════════
   EMERGENCY CARD — redesenho
══════════════════════════════════════════ */
.emerg-card-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 12px 7px; background: #f7f8fa;
  border-bottom: 1px solid var(--border);
}
.emerg-card-hora { font-size: 11.5px; color: var(--text-muted); font-variant-numeric: tabular-nums; }

/* Body */
.emerg-card-body { padding: 10px 12px; }
.emerg-card-nome { font-size: 14px; font-weight: 600; color: var(--text); }
.emerg-card-demo { font-size: 11.5px; color: var(--text-muted); margin-top: 2px; }
.emerg-card-queixa { font-size: 12.5px; color: var(--text); margin-top: 8px; line-height: 1.45; }
.emerg-card-hipotese { font-size: var(--fs-sm); color: var(--text-muted); margin-top: 3px; line-height: 1.4; }
.emerg-card-sv {
  margin-top: 7px; font-variant-numeric: tabular-nums;
  display: flex; flex-wrap: wrap; gap: 4px 10px;
}
.ev-vital { font-size: 12.5px; color: var(--text); white-space: nowrap; }
.ev-lbl   { font-size: var(--fs-3xs); font-weight: 700; color: var(--text-faint); text-transform: uppercase; letter-spacing: .3px; }
.ev-vital.ev-warn { color: #b45309; font-weight: 600; }
.ev-vital.ev-warn .ev-lbl { color: #b45309; }
.ev-vital.ev-crit { color: var(--danger); font-weight: 700; }
.ev-vital.ev-crit .ev-lbl { color: var(--danger); }

/* Footer */
.emerg-card-footer {
  padding: 6px 12px; border-top: 1px solid var(--border);
  font-size: var(--fs-xs); color: var(--text-muted);
  display: flex; align-items: center; gap: 8px; background: #f7f8fa;
}
.emerg-card-footer-date { flex: 1; font-style: italic; }
.emerg-card-action { color: var(--danger); font-weight: 600; }

/* ══════════════════════════════════════════
   EMERGENCY MODAL WRAP — overrides azul → vermelho
   Escopo: qualquer classe compartilhada com round clínico
══════════════════════════════════════════ */

/* Botões "+ Adicionar" */
.emerg-modal-wrap .btn-add-exam { border-color: var(--danger); color: var(--danger); }
.emerg-modal-wrap .btn-add-exam:hover { background: #fff1f1; border-color: var(--danger); }

/* Botão "Formatar / Gerar EF" */
.emerg-modal-wrap .btn-ef-formatar { color: var(--danger); }
.emerg-modal-wrap .btn-ef-formatar:hover { background: #fff1f1; border-color: var(--danger); }
/* EF (observação/medicação): tema vermelho da sala vermelha nos botões novos */
.emerg-modal-wrap .btn-registrar-bl-link { color: var(--danger); }
.emerg-modal-wrap .btn-ef-recompor:hover:not(:disabled) { color: var(--danger); }
.emerg-modal-wrap .btn-ef-primary { background: var(--danger); border-color: var(--danger); }
.emerg-modal-wrap .btn-ef-primary:hover:not(:disabled) { background: var(--danger-bright); border-color: var(--danger-bright); }

/* Split button "Gerar evolução" — vermelho no estado a gerar, verde quando pronto.
   Texto branco FORÇADO para evitar qualquer caso de vermelho-no-vermelho (invisível). */
.emerg-modal-wrap .btn-gerar-split { background: var(--danger); border-color: #7f1d1d; }
.emerg-modal-wrap .btn-gerar-split:has(.emerg-evo-gerada) { background: #047857; border-color: #065f46; }
.emerg-modal-wrap .btn-gerar-split-main,
.emerg-modal-wrap .btn-gerar-split-arrow,
.emerg-modal-wrap .btn-gerar-split-main span { color: #fff !important; }

/* Nav links âncoras */
.emerg-modal-wrap .modal-nav-link:hover { color: var(--danger); background: var(--card-bg); border-color: #e6bcbc; }
.emerg-modal-wrap .modal-nav-link-active { color: var(--danger); background: var(--card-bg); border-color: #e6bcbc; box-shadow: var(--shadow-sm); }

/* BitLab */
.emerg-modal-wrap .bitlab-item-req { color: var(--danger); }
.emerg-modal-wrap .btn-bitlab-more:hover { border-color: var(--danger); color: var(--danger); background: #fff1f1; }
.emerg-modal-wrap .btn-bitlab-preview:hover { color: #7f1d1d; }

/* Sinais vitais — hora badge e botão + */
.emerg-modal-wrap .sv-hora-badge { color: var(--danger); }
.emerg-modal-wrap .sv-reg-btn { background: var(--danger); }
.emerg-modal-wrap .sv-input:focus { border-color: var(--danger); }

/* Análise — tabs texto/problemas e estado aberto */
.emerg-modal-wrap .btn-split-analise:hover,
.emerg-modal-wrap .btn-split-analise.active { background: var(--danger); border-color: #7f1d1d; color: #fff; }
.emerg-modal-wrap .analise-problema-header.open { background: #fff1f1; }
.emerg-modal-wrap .analise-problema-item:has(.analise-problema-header.open) { border-color: var(--danger); }

/* Diluição — resultado do cálculo */
.emerg-modal-wrap .dil-builder-result { color: var(--danger); }

/* Lab source tag (evolução anterior) */
.emerg-modal-wrap .lab-source-evo { background: #fff1f1; color: var(--danger); border-color: #fca5a5; }

/* Radio buttons e checkboxes */
.emerg-modal-wrap input[type="radio"],
.emerg-modal-wrap input[type="checkbox"] { accent-color: var(--danger); }

/* Círculos numerados dos problemas ativos */
.emerg-modal-wrap .analise-problema-num { background: var(--danger); }

/* Hipótese diagnóstica — item principal, drag-over, badge, input, botão */
.emerg-modal-wrap .hipotese-item-main { border-color: var(--danger); background: #fff1f1; }
.emerg-modal-wrap .hipotese-item.drag-over { border-color: var(--danger); background: #fee2e2; box-shadow: 0 0 0 2px rgba(153,27,27,.15); }
.emerg-modal-wrap .hipotese-badge-main { background: var(--danger); }
.emerg-modal-wrap .hipotese-add-input:focus { border-color: var(--danger); }
.emerg-modal-wrap .hipotese-add-btn { background: var(--danger); }

/* Focus rings em todos os inputs/textareas */
.emerg-modal-wrap textarea:focus,
.emerg-modal-wrap input[type="text"]:focus,
.emerg-modal-wrap input[type="number"]:focus,
.emerg-modal-wrap input[type="time"]:focus,
.emerg-modal-wrap .add-exam-input:focus,
.emerg-modal-wrap .add-exam-textarea:focus,
.emerg-modal-wrap .evolucao-hoje-textarea:focus,
.emerg-modal-wrap .ef-textarea:focus,
.emerg-modal-wrap .sistema-input:focus,
.emerg-modal-wrap .sistema-textarea:focus { border-color: var(--danger); }

/* ── Alocação row ── */
/* ══════════════════════════════════════════
   EMERGENCY MODAL
══════════════════════════════════════════ */
.emerg-modal-header { padding: 16px 20px 12px; background: #7f1d1d; border-bottom-color: #5c1414; }

/* Linha de triagem + hora de chegada editáveis no header */
.emerg-header-top-row { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.emerg-triagem-select {
  appearance: none; -webkit-appearance: none;
  background: transparent; border: none; outline: none;
  color: inherit; font-size: var(--fs-xs); font-weight: 800;
  text-transform: uppercase; letter-spacing: .07em;
  cursor: pointer; padding: 0; font-family: inherit; opacity: .8;
}
.emerg-triagem-select:hover { opacity: 1; }
.emerg-header-top-row .emerg-status-select {
  appearance: none; -webkit-appearance: none;
  flex: none; border: none; outline: none;
  color: inherit; font-size: var(--fs-xs); font-weight: 800;
  text-transform: uppercase; letter-spacing: .07em;
  cursor: pointer; padding: 0; font-family: inherit; opacity: .8;
  background: transparent;
}
.emerg-header-top-row .emerg-status-select:hover { opacity: 1; }
.emerg-triagem-select option { background: #7f1d1d; color: #fff; font-weight: 600; text-transform: uppercase; }
.emerg-header-top-sep { opacity: .45; font-size: var(--fs-xs); }
.emerg-hora-chegada-input {
  background: transparent; border: none;
  border-bottom: 1px dashed rgba(255,255,255,.35);
  color: inherit; font-size: var(--fs-xs); font-weight: 700;
  outline: none; padding: 0 1px; width: 60px;
  cursor: pointer; font-family: inherit; font-variant-numeric: tabular-nums;
}
.emerg-hora-chegada-input:focus { border-bottom-color: rgba(255,255,255,.8); }
.emerg-hora-chegada-input::-webkit-calendar-picker-indicator { filter: invert(1); opacity: .5; cursor: pointer; }
.emerg-field-box {
  background: #f8fafc; border: 1px solid var(--border);
  border-radius: var(--radius); padding: 10px 13px;
  font-size: 13.5px; line-height: 1.6; color: var(--text);
  white-space: pre-line;
}
.emerg-hipotese { font-weight: 600; font-size: 14px; }
.emerg-diferenciais { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.emerg-diferencial-tag {
  font-size: 11.5px; background: #f1f5f9; border: 1px solid #cbd5e1;
  border-radius: 999px; padding: 2px 10px; color: var(--text-muted);
}
.emerg-sv-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 8px;
}
.emerg-sv-item {
  background: #f8fafc; border: 1px solid var(--border);
  border-radius: var(--radius); padding: 8px 10px;
  display: flex; flex-direction: column; gap: 2px;
}
.emerg-sv-label { font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); }
.emerg-sv-val { font-size: 13.5px; font-weight: 600; color: var(--text); }
.emerg-imagem-item { font-size: var(--fs-base); padding: 4px 0; border-bottom: 1px solid #f1f5f9; line-height: 1.5; }
.emerg-imagem-item:last-child { border-bottom: none; }
.emerg-imagem-item-editable { display: flex; align-items: flex-start; gap: 8px; }
.btn-remove-emerg-img {
  flex-shrink: 0; background: none; border: none; cursor: pointer;
  color: var(--text-muted); font-size: var(--fs-xs); padding: 2px 4px;
  border-radius: 4px; line-height: 1; margin-top: 1px;
}
.btn-remove-emerg-img:hover { color: #ef4444; background: #fee2e2; }
.emerg-tag-editable { display: inline-flex; align-items: center; gap: 4px; }
.tag-remove-btn {
  background: none; border: none; cursor: pointer; padding: 0 2px;
  color: var(--text-muted); font-size: var(--fs-base); line-height: 1;
}
.tag-remove-btn:hover { color: #ef4444; }
.emerg-add-tag-row { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.emerg-add-tag-input { flex: 1; height: 32px; }
.modal-section-title-row {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
}
.modal-section-title-row .modal-section-title { margin-bottom: 0; }
.emerg-status-select {
  flex: 1; padding: 7px 10px; border: 1px solid var(--border);
  border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit;
  background: #fff; color: var(--text); cursor: pointer; font-weight: 600;
}
.emerg-status-select-reanimacao { border-color: #fca5a5; background: #fee2e2; color: var(--danger); }
.emerg-status-select-observacao { border-color: #fcd34d; background: #fef3c7; color: #b45309; }
.emerg-status-select-medicacao  { border-color: #93c5fd; background: #dbeafe; color: #1e40af; }
.tags-wrap { display: flex; flex-wrap: wrap; gap: 6px; }

/* ── Análise por sistema (Reanimação) — tabs ── */
.emerg-reanim-title { color: var(--danger); margin-bottom: 10px; }

.emerg-sistema-tabs-bar {
  display: flex; flex-wrap: wrap; gap: 2px;
  border-bottom: 2px solid var(--border); margin-bottom: 14px;
}
.emerg-sistema-tab-btn {
  background: none; border: none; border-bottom: 2px solid transparent;
  margin-bottom: -2px; padding: 6px 11px; font-size: var(--fs-sm); font-family: inherit;
  color: var(--text-muted); cursor: pointer; border-radius: 4px 4px 0 0;
  transition: color .15s, border-color .15s, background .15s;
}
.emerg-sistema-tab-btn:hover  { color: var(--text); background: rgba(0,0,0,.04); }
.emerg-sistema-tab-btn.active { color: var(--danger); border-bottom-color: var(--danger); font-weight: 600; }

.emerg-sistema-panel.hidden { display: none; }

/* ── Sistema field grid ── */
.sistema-fields-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
.sistema-field { display: flex; flex-direction: column; gap: 4px; }
.sistema-field label {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--text-muted);
}
.sistema-field-wide  { grid-column: 1 / -1; }
.sistema-field-2col  { grid-column: span 2; }
.emerg-pps-chip { cursor: default; }
.emerg-alergia-chip { min-width: 80px; max-width: 180px; }
.emerg-alergia-chip .emerg-metric-val { font-size: var(--fs-sm); font-weight: 500; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 140px; }
.emerg-alergia-filled .emerg-metric-val { color: var(--danger-bright); font-weight: 700; }
.emerg-alergia-chip .emerg-metric-input { width: 140px; }
.emerg-alergia-row {
  display: flex; align-items: center; gap: 6px;
  padding: 4px 8px; border-radius: 6px; cursor: pointer;
  margin-top: 2px;
}
.emerg-alergia-row:hover { background: var(--bg-hover); }
/* Alergias pill row inside emergency header-info */
.emerg-alergia-pill-row { margin-top: 4px; padding: 2px 0; }
.emerg-alergia-pill-row .header-pill-label { min-width: 70px; }
/* Monitor badge hover preview */
.monitor-preview-pop {
  position: fixed; z-index: 9999;
  background: #1e293b; border: 1px solid rgba(255,255,255,0.15);
  border-radius: 8px; padding: 8px 10px;
  max-width: 280px; display: flex; flex-wrap: wrap; gap: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.5);
  pointer-events: none;
}
.monitor-preview-pop.hidden { display: none; }
.monitor-preview-title {
  width: 100%; font-size: var(--fs-2xs); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em;
  color: rgba(255,255,255,0.45); margin-bottom: 2px;
}
.monitor-preview-empty { font-size: var(--fs-sm); color: rgba(255,255,255,0.35); }
.emerg-pps-select {
  background: none; border: none; outline: none; font-size: var(--fs-base); font-weight: 600;
  color: var(--text-primary); cursor: pointer; padding: 0; font-family: inherit;
  max-width: 52px;
}
.emerg-pps-chip { display: flex; align-items: center; gap: 2px; }
.tronco-checks { display: flex; gap: 14px; flex-wrap: wrap; padding-top: 2px; }
.tronco-check-label { display: flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--text); cursor: pointer; user-select: none; }
.tronco-check-label input[type="checkbox"] { width: 14px; height: 14px; accent-color: var(--primary); cursor: pointer; }

.sistema-input {
  width: 100%; padding: 6px 8px; border: 1px solid var(--border);
  border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit;
  background: #fafafa; color: var(--text); box-sizing: border-box;
}
.sistema-input:focus { outline: none; border-color: var(--danger); background: #fff; }

select.sistema-input { cursor: pointer; }

.sistema-textarea {
  width: 100%; min-height: 58px; padding: 6px 8px;
  border: 1px solid var(--border); border-radius: var(--radius);
  font-size: var(--fs-base); font-family: inherit; line-height: 1.5;
  background: #fafafa; color: var(--text); resize: vertical; box-sizing: border-box;
}
.sistema-textarea:focus { outline: none; border-color: var(--danger); background: #fff; }

/* ── VMI parameters block ── */
.vmi-section {
  background: #fff8f8; border: 1px solid #fecaca;
  border-radius: var(--radius); padding: 10px 12px;
}
.vmi-label {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--danger); margin-bottom: 2px;
}
.tag-neutral { background: #f1f5f9; border: 1px solid #cbd5e1; color: var(--text-muted); }

/* ── Métricas no cabeçalho do modal de emergência (peso/altura) ── */
/* Linha de métricas — pills uniformes de linha única, compactos */
.emerg-metrics-row { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; align-items: center; }
.emerg-metric-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 9px; min-height: 24px;
  background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px; cursor: pointer; transition: background .15s, opacity .15s;
}
.emerg-metric-chip:hover { background: rgba(255,255,255,.22); }
.emerg-metric-label {
  font-size: var(--fs-3xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; opacity: .6;
}
.emerg-metric-val { font-size: var(--fs-sm); font-weight: 600; }
.emerg-metric-input {
  width: 48px; background: transparent; border: none;
  border-bottom: 1px solid rgba(255,255,255,.6);
  color: inherit; font-size: var(--fs-sm); font-weight: 600;
  outline: none; padding: 0;
}
.emerg-metric-input::-webkit-inner-spin-button,
.emerg-metric-input::-webkit-outer-spin-button { -webkit-appearance: none; }
/* Peso/Alt agora em linha única (não mais stacked) */
.emerg-metric-data { cursor: default; }
.emerg-metric-data .emerg-metric-val { cursor: pointer; }
.emerg-metric-data .emerg-metric-val:hover { opacity: .7; }
.emerg-metric-chip.metric-empty { opacity: .45; }
.emerg-metric-chip.metric-empty:hover { opacity: .75; }
.emerg-metric-metodo {
  font-size: var(--fs-3xs); background: transparent; border: none;
  color: rgba(255,255,255,.55); cursor: pointer; padding: 0;
  font-family: inherit; outline: none; max-width: 60px;
  appearance: none; -webkit-appearance: none;
}
.emerg-metric-metodo option { color: var(--text); }
.emerg-metric-metodo option { color: var(--text); background: var(--card-bg); }
.drug-dil-input {
  font-size: var(--fs-xs); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 2px 5px; width: 110px; font-family: inherit; color: var(--text);
  background: var(--card-bg);
}

/* ── Header ant/med info ── */
.emerg-header-info { margin-top: 10px; display: flex; flex-direction: column; gap: 4px; }
.emerg-header-info-row {
  display: flex; align-items: flex-start; gap: 8px; min-height: 22px;
}
.emerg-header-info-label {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  opacity: .65; min-width: 34px; padding-top: 3px; flex-shrink: 0;
}
.emerg-header-tags { display: flex; flex-wrap: wrap; gap: 4px; flex: 1; }
.emerg-header-tag {
  font-size: var(--fs-xs); padding: 2px 8px;
  background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px; color: inherit; white-space: nowrap;
}
.emerg-header-empty { font-size: var(--fs-xs); opacity: .45; padding-top: 3px; font-style: italic; }
.emerg-header-edit-btn {
  flex-shrink: 0; background: none; border: none; cursor: pointer;
  font-size: var(--fs-xs); opacity: .5; padding: 1px 4px; color: inherit;
}
.emerg-header-edit-btn:hover { opacity: 1; }
.emerg-header-info .section-edit-panel {
  background: rgba(255,255,255,.92); border-color: rgba(255,255,255,.5);
  margin-top: 2px; margin-bottom: 4px; color: var(--text);
}
.emerg-header-info .section-edit-panel input,
.emerg-header-info .section-edit-panel textarea,
.emerg-header-info .section-edit-panel select,
.emerg-header-info .section-edit-panel label,
.emerg-header-info .section-edit-panel .edit-list-item { color: var(--text); background: #fff; }

/* ── Drug list table ── */
.drug-list-table {
  width: 100%; border-collapse: collapse; font-size: var(--fs-sm); margin-bottom: 6px;
}
.drug-list-table th, .drug-list-table td {
  text-align: left; padding: 4px 6px; border-bottom: 1px solid var(--border);
}
.drug-list-table th { color: var(--text-muted); font-weight: 600; font-size: var(--fs-xs); }
.drug-col-nome { min-width: 90px; vertical-align: middle; }
.drug-conc { display: block; font-size: var(--fs-2xs); color: var(--text-muted); margin-top: 1px; letter-spacing: .01em; }
.drug-col-dose { min-width: 70px; }
.drug-dose-wrap { display: flex; align-items: center; gap: 3px; }
.drug-dose-input {
  width: 50px; padding: 2px 4px; font-size: var(--fs-sm); text-align: right;
  border: 1px solid transparent; border-radius: 4px;
  background: transparent; color: var(--text);
  transition: border-color .15s, background .15s;
}
.drug-dose-input:hover { border-color: var(--border); }
.drug-dose-input:focus { border-color: var(--primary); background: #fff; outline: none; }
.drug-dose-input::-webkit-inner-spin-button,
.drug-dose-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.drug-dose-unit { font-size: var(--fs-xs); color: var(--text-muted); white-space: nowrap; }
.drug-col-dil  { min-width: 90px; }
.drug-col-calc { color: var(--danger); font-weight: 600; }
.drug-dose-green  { color: #15803d !important; }
.drug-dose-yellow { color: #b45309 !important; }
.drug-dose-red    { color: var(--danger-bright) !important; }
.drug-del-btn  {
  background: none; border: none; color: var(--danger, #ef4444);
  cursor: pointer; font-size: var(--fs-md); padding: 0 4px; line-height: 1;
}
.drug-del-btn:hover { color: var(--danger); }
.drug-asst-btn {
  background: none; border: 1px solid var(--border); border-radius: 3px;
  padding: 1px 4px; font-size: var(--fs-xs); cursor: pointer; color: var(--text-muted);
  line-height: 1.4; flex-shrink: 0; transition: background .15s, color .15s;
  white-space: nowrap;
}
.drug-asst-btn:hover { background: var(--hover-bg); color: var(--primary); }
.drug-dil-btn {
  background: none; border: none; border-radius: 3px;
  padding: 0 3px; font-size: var(--fs-xs); cursor: pointer;
  color: var(--text-muted); opacity: .4; line-height: 1; flex-shrink: 0;
  transition: opacity .15s, color .15s;
}
.drug-dil-btn:hover       { opacity: 1; color: var(--danger); }
.drug-dil-btn.drug-dil-btn-set { opacity: .7; color: var(--danger); }
.drug-add-form { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.drug-input-nome { flex: 2; min-width: 100px; }
.drug-input-dose { flex: 1; min-width: 60px; }

/* ── Drug / antibiotic autocomplete ── */
.drug-ac-wrap { position: relative; }
.drug-ac-wrap > input { width: 100%; }
.drug-ac-dropdown {
  position: absolute; top: calc(100% + 2px); left: 0; right: 0; z-index: 300;
  background: white; border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: 0 4px 14px rgba(0,0,0,.12);
  max-height: 180px; overflow-y: auto;
}
.drug-ac-dropdown.hidden { display: none; }
.drug-ac-item {
  padding: 7px 10px; font-size: var(--fs-base); cursor: pointer; color: var(--text);
  border-bottom: 1px solid #f1f5f9;
}
.drug-ac-item:last-child { border-bottom: none; }
.drug-ac-item:hover { background: #f1f5f9; }
.drug-list-empty { color: var(--text-muted); font-size: var(--fs-sm); margin: 2px 0 6px; }

/* ── Diluição popover ── */
.dil-popover {
  position: fixed; z-index: 9999;
  background: #fff; border: 1px solid var(--border);
  border-radius: 10px; box-shadow: 0 8px 28px rgba(0,0,0,.18);
  padding: 14px; width: 270px;
  display: flex; flex-direction: column; gap: 8px;
}
.dil-popover.hidden { display: none; }
.dil-popover-title {
  font-size: var(--fs-xs); font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .05em;
}
.dil-pop-calc { font-size: var(--fs-base); font-weight: 700; color: var(--danger); min-height: 18px; }
.dil-pop-dica {
  font-size: var(--fs-xs); color: var(--text-muted); line-height: 1.45;
  background: #f8fafc; border-radius: 6px; padding: 7px 9px;
  border-left: 3px solid #e2e8f0;
}
/* ── Dilution builder ── */
.dil-builder {
  background: #f8fafc; border: 1px solid var(--border);
  border-radius: 8px; padding: 10px 10px 8px; display: flex; flex-direction: column; gap: 6px;
}
.dil-builder-row {
  display: flex; align-items: center; gap: 6px;
}
.dil-builder-lbl {
  font-size: var(--fs-xs); font-weight: 600; color: var(--text-muted);
  min-width: 58px; flex-shrink: 0;
}
.dil-amp-sel {
  flex: 1; font-size: var(--fs-sm); padding: 4px 6px;
  border: 1px solid var(--border); border-radius: 5px;
  background: #fff; color: var(--text); cursor: pointer;
}
.dil-amp-n, .dil-diluente {
  width: 54px; font-size: var(--fs-base); padding: 4px 6px; text-align: right;
  border: 1px solid var(--border); border-radius: 5px; background: #fff;
}
.dil-builder-unit { font-size: var(--fs-xs); color: var(--text-muted); }
.dil-builder-result {
  font-size: var(--fs-base); font-weight: 700; color: #1e40af;
  padding-top: 4px; border-top: 1px solid var(--border); margin-top: 2px;
}
.dil-manual-label { font-size: var(--fs-2xs); color: var(--text-muted); font-weight: 600; letter-spacing: .03em; }
.dil-manual-input { font-size: var(--fs-sm) !important; padding: 4px 7px !important; }

/* ── Balanço hídrico ── */
.bh-row { display: flex; align-items: center; gap: 8px; }
.bh-periodo-select {
  font-size: var(--fs-sm); padding: 2px 4px; border: 1px solid var(--border);
  border-radius: 4px; background: var(--bg-input, #fff); color: var(--text-main);
  cursor: pointer; height: 28px;
}
.balanco-display {
  font-size: var(--fs-xl); font-weight: 700; padding: 6px 0; line-height: 1;
}
.balanco-pos { color: var(--danger-bright); }
.balanco-neg { color: #16a34a; }

/* ── Ânion-gap display ── */
.ag-display { font-size: 16px; font-weight: 700; padding: 4px 0; }
.pf-severe   { color: var(--danger-bright); }
.pf-moderate { color: #ea580c; }
.pf-mild     { color: #ca8a04; }

/* ── Lab grid nos sistemas ── */
.lab-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 8px;
}
.lab-grid-item { display: flex; flex-direction: column; gap: 3px; }
.lab-grid-item label {
  font-size: var(--fs-2xs); font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .04em;
}
.lab-grid-input { width: 100%; padding: 4px 6px; font-size: var(--fs-base); }
.lab-grid-title {
  display: block; font-size: var(--fs-2xs); font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .05em; margin-bottom: 8px;
}

/* ── IBW calculator ── */
.ibw-row { width: 100%; }
.ibw-input-row { display: flex; align-items: center; gap: 6px; margin-top: 4px; flex-wrap: wrap; }
.ibw-input { width: 72px !important; }
.ibw-display { font-size: var(--fs-base); color: var(--danger); font-weight: 600; }

/* ── Range input group (PAM, FC, Temp) ── */
.range-group {
  display: flex; align-items: center; gap: 6px;
}
.range-label {
  font-size: var(--fs-xs); font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .06em;
  min-width: 28px; flex-shrink: 0;
}
.range-inputs {
  display: flex; align-items: center; gap: 4px; flex: 1;
}
.range-input-sm {
  width: 52px !important; text-align: center; padding: 6px 4px !important;
}
.range-sep {
  font-size: 14px; font-weight: 600; color: var(--text-muted); user-select: none;
}
.range-unit {
  font-size: var(--fs-sm); color: var(--text-muted); white-space: nowrap;
}

/* ── Invasivos list ── */
.invasivos-list { display: flex; flex-direction: column; gap: 6px; }
.invasivo-row {
  display: flex; align-items: flex-start; gap: 6px;
  padding: 6px 8px; background: #f8f9fa; border-radius: var(--radius);
  border: 1px solid var(--border);
}
.invasivo-fields { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; }
.invasivo-sel-tipo  { width: 140px !important; }
.invasivo-input-nome { flex: 1; min-width: 100px; }
.invasivo-input-data { width: 130px !important; }
.invasivo-sel-sitio  { width: 130px !important; }
.invasivo-sel-lumens { width: 100px !important; }

/* ── Nível de consciência toggle ── */
.sistema-toggle-row { display: flex; gap: 16px; align-items: center; }
.sistema-radio-label {
  display: flex; align-items: center; gap: 5px;
  font-size: var(--fs-base); cursor: pointer; font-weight: 500;
}

/* ── ECG entries ── */
.emerg-ecg-item {
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 8px 10px; margin-bottom: 6px; background: #fafafa;
}
.emerg-ecg-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 4px; gap: 8px;
}
.emerg-ecg-date {
  font-size: var(--fs-xs); font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .05em;
}
.emerg-ecg-actions { display: flex; gap: 4px; flex-shrink: 0; }
.emerg-ecg-achados { font-size: var(--fs-base); color: var(--text); line-height: 1.5; white-space: pre-wrap; }

/* ── btn-xs (smaller than btn-sm) ── */
.btn-xs { padding: 2px 8px; font-size: var(--fs-xs); }

/* ── Probabilidades diagnósticas ── */
.prob-fonte {
  font-size: var(--fs-2xs); font-weight: 400; color: var(--text-muted);
  margin-left: 8px; font-style: italic;
}
.prob-loading { display: flex; align-items: center; gap: 8px; color: var(--text-muted); font-size: var(--fs-base); padding: 8px 0; }
.prob-error { font-size: var(--fs-sm); color: #ef4444; padding: 6px 0; }
.prob-item {
  padding: 10px 0 12px;
  border-bottom: 1px solid #f1f5f9;
}
.prob-item:last-child { border-bottom: none; }
.prob-header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5px; }
.prob-diag { font-size: 13.5px; font-weight: 600; color: var(--text); }
.prob-pct { font-size: var(--fs-lg); font-weight: 700; }
.prob-nivel-alta     .prob-pct { color: var(--danger-bright); }
.prob-nivel-moderada .prob-pct { color: #d97706; }
.prob-nivel-baixa    .prob-pct { color: #0891b2; }
.prob-nivel-improvavel .prob-pct { color: var(--text-muted); }
.prob-bar-wrap {
  height: 6px; background: #f1f5f9; border-radius: 999px;
  overflow: hidden; margin-bottom: 7px;
}
.prob-bar { height: 100%; border-radius: 999px; transition: width .4s ease; }
.prob-bar-alta      { background: var(--danger-bright); }
.prob-bar-moderada  { background: #d97706; }
.prob-bar-baixa     { background: #0891b2; }
.prob-bar-improvavel{ background: #94a3b8; }
.prob-detail { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin-bottom: 5px; }
.prob-pre { font-size: var(--fs-xs); color: var(--text-muted); margin-right: 4px; }
.prob-lr-tag {
  font-size: var(--fs-xs); border-radius: 4px; padding: 1px 7px;
  border: 1px solid transparent;
}
.prob-lr-aumenta { background: #fef2f2; border-color: #fca5a5; color: var(--danger-bright); }
.prob-lr-reduz   { background: #f0fdf4; border-color: #86efac; color: #16a34a; }
.prob-resumo { font-size: var(--fs-sm); color: var(--text-muted); font-style: italic; margin-top: 3px; }
.prob-unavail { font-size: var(--fs-sm); color: var(--text-muted); font-style: italic; padding: 4px 0; }
.prob-prepost { font-size: var(--fs-sm); color: var(--text-muted); margin-bottom: 8px; }
.prob-cat { margin-bottom: 7px; }
.prob-cat-label { font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); margin-bottom: 4px; }
.prob-cat-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.prob-fonte-tag { font-size: var(--fs-2xs); color: var(--text-muted); margin-top: 8px; font-style: italic; }

/* ── Probability hover panel ── */
.prob-trigger { position: relative; cursor: default; }
.prob-hover-panel {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  width: 264px;
  z-index: 300;
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  border-left-width: 4px;
  box-shadow: 0 8px 28px rgba(0,0,0,.13);
  pointer-events: none;
  overflow: hidden;
}
.prob-trigger:hover .prob-hover-panel { display: block; }
.emerg-diferenciais .prob-trigger .prob-hover-panel { left: auto; right: 0; }

/* accent colour by level */
.prob-level-alta       { border-left-color: var(--danger-bright); }
.prob-level-moderada   { border-left-color: #d97706; }
.prob-level-baixa      { border-left-color: #0891b2; }
.prob-level-improvavel { border-left-color: var(--text-faint); }

.prob-panel-inner { padding: 11px 13px; }

.prob-top-row {
  display: flex; justify-content: space-between;
  align-items: flex-start; margin-bottom: 7px;
}
.prob-label-sca {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--text-muted); padding-top: 4px;
}
.prob-big-pct { font-size: 30px; font-weight: 800; line-height: 1; }
.prob-level-alta       .prob-big-pct { color: var(--danger-bright); }
.prob-level-moderada   .prob-big-pct { color: #d97706; }
.prob-level-baixa      .prob-big-pct { color: #0891b2; }
.prob-level-improvavel .prob-big-pct { color: var(--text-faint); }

.prob-bar-track {
  height: 4px; background: #f1f5f9;
  border-radius: 999px; overflow: hidden; margin-bottom: 6px;
}
.prob-bar-fill { height: 100%; border-radius: 999px; }
.prob-fill-alta       { background: var(--danger-bright); }
.prob-fill-moderada   { background: #d97706; }
.prob-fill-baixa      { background: #0891b2; }
.prob-fill-improvavel { background: #94a3b8; }

.prob-meta { font-size: 10.5px; color: var(--text-muted); margin-bottom: 8px; }

.prob-chips { display: flex; flex-wrap: wrap; gap: 3px; margin-bottom: 8px; }
.prob-chip {
  font-size: 10.5px; border-radius: 4px;
  padding: 2px 6px; border: 1px solid transparent;
}
.prob-chip-aumenta { background: #fef2f2; border-color: #fca5a5; color: var(--danger); }
.prob-chip-reduz   { background: #f0fdf4; border-color: #86efac; color: #15803d; }

.prob-src { font-size: 9.5px; color: #cbd5e1; text-align: right; }

/* ══════════════════════════════════════════
   LISTA REORDENÁVEL DE HIPÓTESES (Sala Vermelha)
══════════════════════════════════════════ */
.hipotese-list { display: flex; flex-direction: column; gap: 5px; }

.hipotese-item {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg-card, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px;
  padding: 8px 10px;
  transition: background 0.12s, border-color 0.12s, opacity 0.12s;
  user-select: none;
}
.hipotese-item-main {
  border-color: var(--primary, #1e3a5f);
  background: #f0f6ff;
}
.hipotese-item.dragging   { opacity: 0.35; }
.hipotese-item.drag-over  {
  border-color: var(--primary, #1e3a5f);
  background: #e4eeff;
  box-shadow: 0 0 0 2px rgba(30,58,95,.15);
}

.hipotese-drag-handle {
  cursor: grab;
  color: #cbd5e1;
  line-height: 1;
  flex-shrink: 0;
  padding: 0 2px;
  display: inline-flex;
  align-items: center;
}
.hipotese-drag-handle:active { cursor: grabbing; }

.hipotese-item-content {
  flex: 1;
  min-width: 0;
  position: relative; /* ancora o prob-hover-panel */
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

.hipotese-item-text {
  font-size: var(--fs-base);
  font-weight: 500;
  color: var(--text, #1e293b);
}

.hipotese-badge-main {
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  background: var(--primary, #1e3a5f);
  color: #fff;
  border-radius: 4px;
  padding: 2px 6px;
  flex-shrink: 0;
}

.hipotese-del-btn {
  background: none;
  border: none;
  color: #cbd5e1;
  cursor: pointer;
  font-size: 17px;
  line-height: 1;
  padding: 0 3px;
  flex-shrink: 0;
  transition: color 0.12s;
}
.hipotese-del-btn:hover { color: var(--danger-bright); }

/* Input de adição */
.btn-recalc-prob {
  display: inline-flex; align-items: center; gap: 5px;
  margin: 4px 0 6px; padding: 5px 12px;
  font-size: var(--fs-sm); font-family: inherit; cursor: pointer;
  background: #fffbeb; border: 1px solid #fcd34d;
  border-radius: var(--radius); color: #b45309;
  transition: background .15s, border-color .15s;
}
.btn-recalc-prob:hover { background: #fef3c7; border-color: #f59e0b; }

.hipotese-add-row {
  display: flex;
  gap: 7px;
  margin-top: 3px;
}
.hipotese-add-input {
  flex: 1;
  border: 1.5px dashed #cbd5e1;
  border-radius: 8px;
  padding: 7px 11px;
  font-size: var(--fs-base);
  background: transparent;
  color: var(--text, #1e293b);
  transition: border-color 0.15s;
}
.hipotese-add-input::placeholder { color: var(--text-faint); }
.hipotese-add-input:focus {
  outline: none;
  border-color: var(--primary, #1e3a5f);
  border-style: solid;
}
.hipotese-add-btn {
  background: var(--primary, #1e3a5f);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 7px 13px;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.12s;
}
.hipotese-add-btn:hover { opacity: .85; }

/* prob-hover-panel ajustado para dentro da lista */
.hipotese-item-content .prob-hover-panel {
  top: calc(100% + 4px);
  left: 0;
  right: auto;
  z-index: 400;
}

/* ── Indicador de LR inline (⚡) ── */
.hipotese-lr-dot {
  display: inline-flex;
  align-items: center;
  font-size: var(--fs-xs);
  line-height: 1;
  padding: 1px 4px;
  border-radius: 4px;
  flex-shrink: 0;
  cursor: default;
  font-style: normal;
  user-select: none;
}
.hipotese-lr-dot-alta       { background: #fee2e2; color: var(--danger-bright); }
.hipotese-lr-dot-moderada   { background: #fef3c7; color: #d97706; }
.hipotese-lr-dot-baixa      { background: #e0f2fe; color: #0891b2; }
.hipotese-lr-dot-improvavel { background: #f1f5f9; color: var(--text-faint); }

.hipotese-wells-btn {
  background: none;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 3px 6px;
  cursor: pointer;
  flex-shrink: 0;
  color: #475569;
  transition: background 0.12s, border-color 0.12s;
  display: inline-flex;
  align-items: center;
}
.hipotese-wells-btn:hover {
  background: #eff6ff;
  border-color: #93c5fd;
  color: #1d4ed8;
}

/* ══════════════════════════════════════════
   CALCULADORA DE INSULINA (round clínico)
══════════════════════════════════════════ */
.ins-panel { max-width: 540px; }
.ins-btn-active { color: #1a4480; font-weight: 700; }

/* Toggle modo */
.ins-modo-toggle {
  display: flex; gap: 0; margin-bottom: 16px;
  border: 1px solid var(--border); border-radius: 8px; overflow: hidden;
}
.ins-modo-btn {
  flex: 1; padding: 7px 0; font-size: var(--fs-base); font-weight: 500;
  background: #f8fafc; color: var(--text-muted); border: none; cursor: pointer;
  transition: background .12s, color .12s;
}
.ins-modo-btn:first-child { border-right: 1px solid var(--border); }
.ins-modo-btn.active { background: var(--primary); color: #fff; font-weight: 600; }
.ins-modo-btn:not(.active):hover { background: #f1f5f9; color: var(--text); }

/* Grid de doses atuais */
.ins-doses-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-bottom: 4px;
}
.ins-dose-cell { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.ins-dose-unit { font-size: var(--fs-xs); color: var(--text-muted); }

/* Prescrição: antes → depois */
.ins-presc-prev { font-size: var(--fs-sm); color: var(--text-muted); margin-right: 4px; }
.ins-presc-up   { color: #c2410c; }
.ins-presc-down { color: #166534; }
.ins-section { padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid #f1f5f9; }
.ins-section:last-of-type { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.ins-section-title {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; color: var(--text-muted); margin-bottom: 10px;
}
.ins-row { display: flex; align-items: center; gap: 10px; margin-bottom: 7px; }
.ins-label { font-size: var(--fs-base); color: var(--text); min-width: 72px; flex-shrink: 0; }
.ins-input {
  width: 80px; padding: 5px 8px;
  border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base);
}
.ins-select {
  flex: 1; padding: 5px 8px;
  border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base);
}
.ins-tdd-banner {
  font-size: 14px; color: var(--primary); font-weight: 600;
  background: #eff6ff; border-radius: 6px; padding: 6px 12px;
  margin-bottom: 10px;
}

.ins-hgt-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 8px; }
.ins-hgt-cell { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.ins-hgt-label { font-size: var(--fs-xs); color: var(--text-muted); }
.ins-hgt-input {
  width: 100%; padding: 5px 4px; text-align: center;
  border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base);
}
.ins-hgt-badge { font-size: var(--fs-xs); font-weight: 600; padding: 1px 7px; border-radius: 10px; }
.ins-hgt-crit { background: #fee2e2; color: var(--danger); }
.ins-hgt-high { background: #fff7ed; color: #c2410c; }
.ins-hgt-ok   { background: #f0fdf4; color: #166534; }
.ins-hgt-summary { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.ins-avg { font-size: var(--fs-sm); font-weight: 500; padding: 5px 10px; border-radius: 6px; margin-bottom: 6px; }
.ins-avg-ok   { background: #f0fdf4; color: #166534; }
.ins-avg-high { background: #fff7ed; color: #c2410c; }
.ins-avg-hipo { background: #fee2e2; color: var(--danger); }

.ins-note {
  font-size: var(--fs-sm); color: #92400e; background: #fef3c7;
  padding: 6px 10px; border-radius: 6px; margin-bottom: 8px; border-left: 3px solid #f59e0b;
}
.ins-prescription {
  background: #f8fafc; border-radius: 8px; padding: 10px 12px;
}
.ins-presc-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 5px 0; border-bottom: 1px solid #f1f5f9;
}
.ins-presc-row:last-child { border-bottom: none; }
.ins-presc-label { font-size: var(--fs-base); color: var(--text-muted); }
.ins-presc-val { font-size: 14px; font-weight: 700; color: var(--primary); }

.ins-corr-table { width: 100%; border-collapse: collapse; font-size: var(--fs-base); }
.ins-corr-table th {
  background: #f1f5f9; padding: 5px 8px; text-align: left;
  font-size: var(--fs-xs); text-transform: uppercase; color: var(--text-muted); font-weight: 600;
}
.ins-corr-table td { padding: 5px 8px; border-bottom: 1px solid #f1f5f9; }
.ins-corr-table tr:last-child td { border-bottom: none; color: var(--danger); font-weight: 600; }
.ins-ref { font-size: var(--fs-2xs); color: var(--text-muted); margin-top: 6px; }
.ins-empty { font-size: var(--fs-base); color: var(--text-muted); text-align: center; padding: 20px 0; }
.ins-btn-conduta { width: 100%; margin-top: 4px; }

/* ══════════════════════════════════════════
   WELLS PE CALCULATOR OVERLAY
══════════════════════════════════════════ */
.wells-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.wells-panel {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 40px rgba(0,0,0,.22);
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.wells-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px 12px;
  border-bottom: 1px solid #e2e8f0;
  position: sticky;
  top: 0;
  background: #fff;
  border-radius: 14px 14px 0 0;
}
.wells-title {
  font-weight: 700;
  font-size: 14.5px;
  color: var(--primary, #1a4480);
  letter-spacing: -.01em;
}
.wells-close-btn {
  background: none;
  border: none;
  font-size: var(--fs-xl);
  color: var(--text-faint);
  cursor: pointer;
  line-height: 1;
  padding: 0 4px;
  transition: color .12s;
}
.wells-close-btn:hover { color: var(--danger-bright); }

.wells-body {
  padding: 14px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.wells-criteria {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.wells-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid #f1f5f9;
  background: #f8fafc;
  cursor: pointer;
  transition: background .12s, border-color .12s;
  user-select: none;
}
.wells-row:hover { background: #eff6ff; border-color: #bfdbfe; }
.wells-row.wells-checked {
  background: #eff6ff;
  border-color: #93c5fd;
}
.wells-row input[type="checkbox"] {
  width: 16px; height: 16px;
  accent-color: var(--primary, #1a4480);
  flex-shrink: 0;
  cursor: pointer;
}
.wells-row-label {
  flex: 1;
  font-size: 12.5px;
  color: #334155;
  line-height: 1.4;
}
.wells-auto-tag {
  font-size: var(--fs-3xs);
  font-weight: 700;
  text-transform: uppercase;
  background: #dbeafe;
  color: #1d4ed8;
  border-radius: 3px;
  padding: 1px 4px;
  margin-left: 4px;
  vertical-align: middle;
  letter-spacing: .04em;
}
.wells-row-pts {
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--primary, #1a4480);
  min-width: 36px;
  text-align: right;
  flex-shrink: 0;
}

.wells-result {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-top: 1px solid #e2e8f0;
  padding-top: 12px;
}

.wells-score-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
}
.wells-score-label {
  font-size: var(--fs-sm);
  color: #64748b;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.wells-score-val {
  font-size: var(--fs-2xl);
  font-weight: 800;
  color: var(--primary, #1a4480);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.wells-tier {
  display: flex;
  flex-direction: column;
  gap: 2px;
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 12.5px;
}
.wells-tier strong { font-size: 13.5px; }
.wells-tier span   { color: #475569; }
.wells-tier-cat    { font-weight: 700; font-size: 12.5px !important; }
.wells-tier-detail { font-size: 11.5px !important; }

.wells-color-green  { background: #f0fdf4; border: 1px solid #86efac; }
.wells-color-green strong, .wells-color-green .wells-tier-cat { color: #166534; }
.wells-color-orange { background: #fffbeb; border: 1px solid #fcd34d; }
.wells-color-orange strong, .wells-color-orange .wells-tier-cat { color: #92400e; }
.wells-color-red    { background: #fef2f2; border: 1px solid #fca5a5; }
.wells-color-red strong, .wells-color-red .wells-tier-cat { color: var(--danger); }
.wells-color-gray   { background: #f8fafc; border: 1px solid #cbd5e1; }
.wells-color-gray strong, .wells-color-gray .wells-tier-cat { color: #475569; }

/* ── Pericardite (ESC 2015) ── */
.perica-stemi-banner {
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 6px;
  padding: 9px 11px;
  font-size: var(--fs-sm);
  line-height: 1.45;
  color: #7f1d1d;
  margin-bottom: 12px;
}
.perica-stemi-banner strong { display: block; margin-bottom: 2px; }
.perica-stemi-banner em { font-style: italic; font-weight: 600; }
.perica-group-label {
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 14px 0 6px;
}
.perica-red-row.perica-red-checked { background: #fff7ed; }
.perica-red-summary {
  font-size: 12.5px;
  color: #9a3412;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 6px;
  padding: 7px 10px;
  margin-top: 8px;
}
.perica-apply-btn { width: 100%; margin-top: 12px; }

.wells-ref {
  font-size: 10.5px;
  color: var(--text-faint);
  font-style: italic;
  margin-top: 2px;
}

/* ── PPS Calculator ── */
.pps-calc-btn {
  background: none; border: none; cursor: pointer; font-size: var(--fs-base);
  color: rgba(255,255,255,0.55); padding: 0 0 0 3px; line-height: 1;
  transition: color .15s;
}
.pps-calc-btn:hover { color: #fff; }
.pps-panel { max-width: 480px; max-height: 85vh; }
.pps-body {
  overflow-y: auto; padding: 0 16px 12px;
  display: flex; flex-direction: column; gap: 10px;
}
.pps-domains { display: flex; flex-direction: column; gap: 10px; }
.pps-domain {}
.pps-domain-label {
  font-size: 10.5px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: #64748b;
  margin-bottom: 4px; padding-top: 8px; border-top: 1px solid #f1f5f9;
}
.pps-domain:first-child .pps-domain-label { border-top: none; padding-top: 0; }
.pps-domain-options { display: flex; flex-direction: column; gap: 2px; }
.pps-option {
  display: flex; align-items: center; gap: 8px;
  padding: 5px 8px; border-radius: 5px;
  cursor: pointer; font-size: var(--fs-base);
  transition: background .12s;
}
.pps-option:hover { background: #f8fafc; }
.pps-option-checked { background: #eff6ff; }
.pps-option input[type="radio"] { accent-color: #2563eb; width: 14px; height: 14px; flex-shrink: 0; cursor: pointer; }
.pps-option-label { flex: 1; }
.pps-result {
  background: #f8fafc; border-radius: 8px; padding: 10px 12px;
  display: flex; flex-direction: column; gap: 6px;
}
.pps-result-empty { color: var(--text-muted); font-size: var(--fs-base); font-style: italic; text-align: center; }
.pps-score-display {
  display: flex; align-items: center; gap: 10px;
  font-weight: 700; font-size: 14px;
}
.pps-score-num { font-size: var(--fs-2xl); line-height: 1; }
.pps-score-detail { font-size: var(--fs-sm); color: var(--text-muted); }
.pps-apply-btn { width: 100%; margin-top: 2px; }

/* ── Culturas pendentes pills (aba Infeccioso) ── */
.cult-pendente-pills { display: flex; flex-wrap: wrap; gap: 5px; min-height: 22px; margin-bottom: 2px; }
.cult-pendente-pill {
  display: inline-flex; align-items: center; gap: 4px;
  background: #fef9c3; border: 1px solid #fde68a; border-radius: 12px;
  padding: 2px 8px 2px 10px; font-size: var(--fs-sm); color: #78350f;
}
.cult-pill-data { color: #a16207; font-size: var(--fs-xs); }
.cult-pill-remove {
  background: none; border: none; cursor: pointer; font-size: var(--fs-base);
  color: #a16207; line-height: 1; padding: 0; opacity: .7;
}
.cult-pill-remove:hover { opacity: 1; }
.cultura-pendente-form { padding: 6px 0; }

/* ── GBS radio groups ── */
.gbs-group-label {
  font-size: var(--fs-2xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: #64748b;
  padding: 8px 0 2px; margin-top: 4px;
  border-top: 1px solid #f1f5f9;
}
.gbs-group-label:first-child { border-top: none; margin-top: 0; padding-top: 0; }
.gbs-radio-row input[type="radio"] {
  accent-color: #2563eb;
  width: 14px; height: 14px; flex-shrink: 0; cursor: pointer;
}

/* ══════════════════════════════════════════
   SINAIS VITAIS — tabela com timeline
══════════════════════════════════════════ */
.sv-table-wrap { width: 100%; }

.sv-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 10px;
}

.sv-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  font-size: 12.5px;
}

.sv-table thead th {
  padding: 7px 10px;
  text-align: left;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--text-muted, #64748b);
  background: var(--bg, #f8fafc);
  border-bottom: 1px solid var(--border, #e2e8f0);
  white-space: nowrap;
}
.sv-table thead th:first-child { border-radius: 10px 0 0 0; }
.sv-table thead th:last-child  { border-radius: 0 10px 0 0; }

.sv-table tbody tr + tr { border-top: 1px solid #f1f5f9; }

.sv-row td {
  padding: 7px 10px;
  color: var(--text, #1e293b);
  vertical-align: middle;
  white-space: nowrap;
}

/* PAM inline na célula de PA */
.sv-pa-cell { white-space: nowrap; }
.sv-pam {
  font-size: var(--fs-xs);
  color: var(--text-muted, #64748b);
  font-weight: 500;
}
.sv-pam-label {
  font-size: var(--fs-2xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #64748b;
  background: #f1f5f9;
  border-radius: 3px;
  padding: 1px 3px;
}

/* Linha de chegada/triagem */
.sv-row-chegada td { background: #f8fafc; color: var(--text-muted, #64748b); }
.sv-hora-cell { display: flex; align-items: center; gap: 5px; }
.sv-hora-badge {
  font-size: var(--fs-sm);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--primary, #1e3a5f);
  min-width: 36px;
}
.sv-badge-chegada {
  font-size: var(--fs-3xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  background: #e2e8f0;
  color: #64748b;
  border-radius: 3px;
  padding: 1px 5px;
}

.sv-del-btn {
  background: none; border: none; color: #cbd5e1;
  cursor: pointer; font-size: var(--fs-md); padding: 0 3px;
  line-height: 1; transition: color .12s;
}
.sv-del-btn:hover { color: var(--danger-bright); }
.sv-edit-btn {
  background: none; border: none; color: #cbd5e1;
  cursor: pointer; font-size: var(--fs-base); padding: 0 3px;
  line-height: 1; transition: color .12s;
}
.sv-edit-btn:hover { color: #0891b2; }
.sv-save-btn {
  background: none; border: none; color: #86efac;
  cursor: pointer; font-size: var(--fs-md); padding: 0 3px;
  line-height: 1; font-weight: 700; transition: color .12s;
}
.sv-save-btn:hover { color: #16a34a; }
.sv-actions-cell { white-space: nowrap; }
.sv-row-editing td { background: #fafcff; }
.sv-row-editing .sv-input { width: 100%; min-width: 44px; }

/* SpO₂ + select O₂ */
.sv-spo2-td { display: flex; align-items: center; gap: 3px; padding: 0 !important; }
.sv-spo2-td .sv-input { flex: 1; min-width: 36px; }
.sv-o2-select {
  flex-shrink: 0; font-size: var(--fs-2xs); font-weight: 600;
  padding: 1px 2px; border: 1px solid #cbd5e1; border-radius: 4px;
  background: #f8fafc; color: var(--text-faint); cursor: pointer;
  max-width: 56px; transition: border-color .12s, color .12s;
}
.sv-o2-select:focus { outline: none; border-color: #0891b2; }
.sv-o2-select-active { border-color: #0891b2 !important; background: #e0f2fe !important; color: #0369a1 !important; }
.emerg-modal-wrap .sv-o2-select:focus { border-color: var(--danger); }
.sv-input-gcs { max-width: 52px; }
.sv-gcs-cell { font-variant-numeric: tabular-nums; }
.sv-gcs-grave { color: var(--danger); font-weight: 700; }
.sv-gcs-mod   { color: #b45309; font-weight: 600; }
.sv-gcs-leve  { color: #92400e; }
.sv-o2-badge {
  display: inline-block; font-size: var(--fs-3xs); font-weight: 700;
  background: #0891b2; color: #fff; border-radius: 3px;
  padding: 0 3px; vertical-align: middle; line-height: 1.5;
}

/* Linha de adição (tfoot) */
.sv-add-row td {
  padding: 6px 6px;
  background: #f8fafc;
  border-top: 1px dashed #e2e8f0;
}
.sv-add-row td:first-child { border-radius: 0 0 0 10px; }
.sv-add-row td:last-child  { border-radius: 0 0 10px 0; }

.sv-input {
  width: 100%;
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 5px 7px;
  font-size: 12.5px;
  background: #fff;
  color: var(--text, #1e293b);
  font-variant-numeric: tabular-nums;
  transition: border-color .15s;
}
.sv-input::placeholder { color: #cbd5e1; }
.sv-input:focus { outline: none; border-color: var(--primary, #1e3a5f); }
.sv-input-hora { font-weight: 700; text-align: center; }

.sv-reg-btn {
  width: 100%;
  background: var(--primary, #1e3a5f);
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 5px 8px;
  font-size: var(--fs-md);
  cursor: pointer;
  transition: opacity .12s;
}
.sv-reg-btn:hover { opacity: .85; }

/* ══════════════════════════════════════════
   PROFILE MODAL
══════════════════════════════════════════ */
.profile-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.profile-modal-overlay.hidden { display: none; }

.profile-modal {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
  width: 100%;
  max-width: 440px;
  padding: 28px 28px 24px;
  position: relative;
}

.profile-modal-close {
  position: absolute;
  top: 14px; right: 14px;
  background: none; border: none;
  font-size: var(--fs-lg); color: var(--text-faint); cursor: pointer;
  line-height: 1;
}
.profile-modal-close:hover { color: #334155; }

.profile-modal-header {
  margin-bottom: 20px;
}
.profile-modal-title {
  display: block;
  font-size: var(--fs-lg);
  font-weight: 700;
  color: #1e293b;
}
.profile-modal-username {
  display: block;
  font-size: var(--fs-base);
  color: #64748b;
  margin-top: 2px;
}

.profile-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 2px solid #e2e8f0;
  margin-bottom: 20px;
}
.profile-tab-btn {
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  padding: 6px 14px 9px;
  font-size: 14px;
  font-weight: 500;
  color: #64748b;
  cursor: pointer;
  transition: color .15s, border-color .15s;
  border-radius: 4px 4px 0 0;
}
.profile-tab-btn:hover { color: #1e293b; }
.profile-tab-btn.active {
  color: #0369a1;
  border-bottom-color: #0369a1;
  font-weight: 600;
}

.profile-tab-content.hidden { display: none; }

.profile-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.profile-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.profile-field label {
  font-size: var(--fs-base);
  font-weight: 600;
  color: #475569;
}
.profile-field input {
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 14px;
  color: #1e293b;
  background: #f8fafc;
  transition: border-color .15s;
}
.profile-field input:focus {
  outline: none;
  border-color: #0ea5e9;
  background: #fff;
}

.profile-msg {
  font-size: var(--fs-base);
  min-height: 18px;
  border-radius: 6px;
  padding: 0;
}
.profile-msg-ok  { color: #16a34a; font-weight: 500; }
.profile-msg-err { color: var(--danger-bright); font-weight: 500; }
.profile-msg.success { color: #16a34a; font-weight: 500; }
.profile-msg.error   { color: var(--danger-bright); font-weight: 500; }
.profile-dados-desc  { font-size: var(--fs-base); color: var(--text-muted); margin-bottom: 16px; line-height: 1.5; }
.profile-dados-hint  { font-size: var(--fs-sm); color: var(--text-muted); margin-top: 10px; opacity: 0.8; }

/* ══════════════════════════════════════════
   ADMIN PANEL
══════════════════════════════════════════ */
.admin-main {
  max-width: 1100px;
  margin: 0 auto;
  padding: 24px 16px 40px;
}

.admin-header-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 16px;
}
.admin-title {
  font-size: 20px;
  font-weight: 700;
  color: #1e293b;
  margin: 0;
}
.admin-count {
  font-size: var(--fs-base);
  color: #64748b;
}
#btn-admin-new-user { margin-left: auto; align-self: center; }

/* Formulário de criação de usuário */
.admin-create-box {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 18px 20px;
  margin-bottom: 18px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.admin-create-box.hidden { display: none; }
.admin-create-title { font-size: var(--fs-md); font-weight: 700; color: #1e293b; margin: 0 0 14px; }
.admin-create-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px 16px;
}
.admin-create-grid .form-group { margin: 0; }
.admin-create-grid input {
  width: 100%; padding: 9px 11px; font-size: var(--fs-base);
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: #fff; color: var(--text); font-family: inherit;
  box-sizing: border-box; outline: none;
}
.admin-create-grid input:focus { border-color: var(--primary); }
.admin-req { color: var(--danger); }
.admin-create-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }

/* Senha temporária */
.admin-temp-pwd-box {
  background: #fef9c3;
  border: 1.5px solid #fbbf24;
  border-radius: 10px;
  padding: 16px 20px;
  margin-bottom: 18px;
}
.admin-temp-pwd-box.hidden { display: none; }
.admin-temp-pwd-inner { display: flex; flex-direction: column; gap: 8px; }
.admin-temp-pwd-code {
  display: inline-block;
  background: #1e293b;
  color: #f1f5f9;
  font-family: 'Courier New', monospace;
  font-size: 20px;
  letter-spacing: .1em;
  padding: 8px 16px;
  border-radius: 6px;
  user-select: all;
}
.admin-temp-pwd-hint { font-size: var(--fs-sm); color: #92400e; margin: 0; }

.admin-table-wrap {
  overflow-x: auto;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
  background: #fff;
}
.admin-table th {
  background: #f1f5f9;
  color: #475569;
  font-weight: 600;
  font-size: var(--fs-sm);
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1.5px solid #e2e8f0;
  white-space: nowrap;
}
.admin-table td {
  padding: 11px 12px;
  border-bottom: 1px solid #f1f5f9;
  color: #334155;
  vertical-align: middle;
}
.admin-table tr:last-child td { border-bottom: none; }
.admin-table tr:hover td { background: #f8fafc; }
.admin-row-disabled td { color: var(--text-faint); }

.admin-cell-mono { font-variant-numeric: tabular-nums; font-size: 12.5px; }
.admin-cell-center { text-align: center; }
.admin-actions-cell { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }

.admin-badge {
  display: inline-block;
  font-size: var(--fs-xs);
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 100px;
  white-space: nowrap;
}
.admin-badge-on    { background: #dcfce7; color: #15803d; }
.admin-badge-off   { background: #fee2e2; color: var(--danger); }
.admin-badge-admin { background: #e0f2fe; color: #0369a1; }

.admin-loading { text-align: center; padding: 24px; color: var(--text-faint); }
.admin-error   { text-align: center; padding: 24px; color: var(--danger-bright); }

.btn-ghost-danger {
  background: none;
  border: 1.5px solid #fca5a5;
  color: var(--danger-bright);
  border-radius: 6px;
  padding: 4px 10px;
  font-size: var(--fs-base);
  cursor: pointer;
  transition: background .12s;
}
.btn-ghost-danger:hover { background: #fee2e2; }

/* Botão de registrar status das pendências */
.evolucao-hoje-header {
  display: flex; justify-content: flex-end; margin-bottom: 4px;
}
.btn-registrar-bl-link {
  background: none; border: none; padding: 0;
  font-size: var(--fs-xs); font-weight: 500; color: var(--primary);
  cursor: pointer; font-family: inherit; opacity: 0.7;
  transition: opacity 0.15s;
}
.btn-registrar-bl-link:hover:not(:disabled) { opacity: 1; text-decoration: underline; }
.btn-registrar-bl-link:disabled { opacity: 0.3; cursor: default; }

/* ══════════════════════════════════════════
   USER MENU DROPDOWN
══════════════════════════════════════════ */
.user-menu-wrap {
  position: relative;
}

.user-avatar-btn {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  border: 1.5px solid rgba(255,255,255,.35);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background .15s, border-color .15s;
}
.user-avatar-btn:hover {
  background: rgba(255,255,255,.28);
  border-color: rgba(255,255,255,.6);
}

.user-avatar-initials {
  font-size: var(--fs-base);
  font-weight: 700;
  color: #fff;
  letter-spacing: .5px;
  line-height: 1;
  pointer-events: none;
}

.user-menu-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 200px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  z-index: 9999;
  overflow: hidden;
  animation: menuFadeIn .12s ease;
}
@keyframes menuFadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.user-menu-name {
  padding: 12px 14px 10px;
  font-size: var(--fs-base);
  font-weight: 600;
  color: #1e293b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-menu-divider {
  height: 1px;
  background: #f1f5f9;
  margin: 0;
}

/* Seletor de workspace no menu do usuário */
.ws-label {
  font-size: var(--fs-2xs); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--text-faint); padding: 4px 14px 2px;
}
.ws-item .ws-check { width: 12px; flex-shrink: 0; color: var(--primary); font-weight: 700; }
.ws-item .ws-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ws-item.ws-active .ws-name { font-weight: 700; color: var(--primary-dark); }
.ws-item .ws-code {
  font-size: var(--fs-3xs); font-family: monospace; color: var(--text-faint);
  background: var(--surface); border: 1px solid var(--border); border-radius: 4px; padding: 1px 5px; flex-shrink: 0;
}
.ws-action { color: var(--primary) !important; font-weight: 600 !important; }

.user-menu-item {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  padding: 10px 14px;
  background: none;
  border: none;
  text-align: left;
  font-size: 13.5px;
  font-weight: 500;
  color: #334155;
  cursor: pointer;
  transition: background .1s;
}
.user-menu-item .ico {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  color: #64748b;
}
.user-menu-item:hover {
  background: #f8fafc;
}
.user-menu-item-danger {
  color: var(--danger-bright);
}
.user-menu-item-danger .ico {
  color: var(--danger-bright);
}
.user-menu-item-danger:hover {
  background: #fff1f1;
}

/* ── NEWS2 badges ── */
.news2-badge {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 2px 7px; border-radius: 10px;
  font-size: var(--fs-xs); font-weight: 700; white-space: nowrap;
  border: 1px solid transparent;
}

/* Badge compacto no card */
.news2-card-badge {
  display: inline-flex; align-items: center;
  padding: 1px 6px; border-radius: 8px;
  font-size: var(--fs-xs); font-weight: 700;
  border: 1px solid transparent;
}

/* Variantes de cor — devem ficar DEPOIS das bases para override correto de border-color */
.news2-alto   { background: #fef2f2; color: var(--danger); border-color: #fca5a5; }
.news2-medio  { background: #fffbeb; color: #92400e; border-color: #fcd34d; }
.news2-baixo  { background: #f0fdf4; color: #166534; border-color: #86efac; }
.news2-minimo { background: #f8fafc; color: #475569; border-color: #cbd5e1; }

/* Chip NEWS2 no header do modal */
.emerg-news2-chip { cursor: default; }
.emerg-news2-chip .emerg-metric-val { display: flex; align-items: center; gap: 4px; }
.news2-chip-risk { font-size: var(--fs-2xs); font-weight: 400; opacity: .8; }
/* Score translúcido no header escuro — texto colorido por severidade (não fill claro) */
.news2-chip-alto   { color: #fca5a5; border-color: rgba(252,165,165,.55) !important; }
.news2-chip-medio  { color: #fcd34d; border-color: rgba(252,211,77,.55) !important; }
.news2-chip-baixo  { color: #86efac; border-color: rgba(134,239,172,.5) !important; }
.news2-chip-minimo { color: #cbd5e1; border-color: rgba(203,213,225,.4) !important; }

/* NEWS2 floating tooltip */
#news2-tooltip {
  display: none; position: absolute; z-index: 9999;
  background: #1e293b; color: #f1f5f9;
  border-radius: 8px; padding: 10px 13px;
  font-size: var(--fs-sm); min-width: 180px;
  box-shadow: 0 6px 20px rgba(0,0,0,.35);
  pointer-events: none;
}
.n2tt-header {
  display: flex; align-items: center; justify-content: space-between;
  font-weight: 700; font-size: 14px; margin-bottom: 8px;
  padding-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,.12);
}
.n2tt-risk { font-size: var(--fs-xs); font-weight: 600; padding: 1px 7px; border-radius: 10px; }
.n2tt-risk-alto   { background: var(--danger); color: #fef2f2; }
.n2tt-risk-medio  { background: #92400e; color: #fffbeb; }
.n2tt-risk-baixo  { background: #166534; color: #f0fdf4; }
.n2tt-risk-minimo { background: #334155; color: #f8fafc; }
.n2tt-body { display: flex; flex-direction: column; gap: 3px; }
.n2tt-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.n2tt-label { color: var(--text-faint); font-size: 11.5px; }
.n2tt-val { font-weight: 700; font-size: var(--fs-sm); min-width: 24px; text-align: right; }
.n2tt-val-high { color: #fca5a5; }
.n2tt-val-med  { color: #fcd34d; }
.n2tt-val-low  { color: #86efac; }
.n2tt-val-ok   { color: #64748b; }
.n2tt-note { margin-top: 7px; font-size: 10.5px; color: #fcd34d; padding-top: 5px; border-top: 1px solid rgba(255,255,255,.1); }
.n2tt-footer { margin-top: 6px; font-size: var(--fs-2xs); color: #475569; padding-top: 5px; border-top: 1px solid rgba(255,255,255,.08); }

/* Score badges no card (NEWS2 + SIRS) */
.emerg-card-scores { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.sirs-pos { background: #fef2f2; color: var(--danger); border-color: #fca5a5; }
.sirs-neg { background: #f8fafc; color: #475569; border-color: #cbd5e1; }

/* SIRS chip (modal) — translúcido com texto colorido, igual ao NEWS2 */
.emerg-sirs-chip { cursor: default; }
.sirs-chip-pos { color: #fca5a5; border-color: rgba(252,165,165,.55) !important; }
.sirs-chip-neg { color: #cbd5e1; border-color: rgba(203,213,225,.4) !important; }

/* SIRS floating tooltip */
#sirs-tooltip {
  display: none; position: absolute; z-index: 9999;
  background: #1e293b; color: #f1f5f9;
  border-radius: 8px; padding: 10px 13px;
  font-size: var(--fs-sm); min-width: 220px;
  box-shadow: 0 6px 20px rgba(0,0,0,.35);
  pointer-events: none;
}
.sirs-tt-met  { color: #fca5a5; font-weight: 700; margin-right: 6px; }
.sirs-tt-ok   { color: #64748b; margin-right: 6px; }
.sirs-tt-nd   { color: #475569; margin-right: 6px; }
.sirs-tt-ref  { font-size: var(--fs-2xs); color: #64748b; margin-left: auto; }
.sirs-tt-pos-badge { background: var(--danger); color: #fef2f2; font-size: var(--fs-xs); font-weight: 600; padding: 1px 7px; border-radius: 10px; }
.sirs-tt-neg-badge { background: #334155; color: #f8fafc;  font-size: var(--fs-xs); font-weight: 600; padding: 1px 7px; border-radius: 10px; }

/* ACVPU / O₂ row no painel de sinais vitais */
.sv-extra-row {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 4px 2px; flex-wrap: wrap;
  border-top: 1px solid var(--border); margin-top: 2px;
}
.sv-extra-label {
  font-size: var(--fs-xs); color: var(--text-muted); font-weight: 600; white-space: nowrap;
}
.sv-extra-select {
  font-size: var(--fs-sm); padding: 2px 6px; border: 1px solid var(--border);
  border-radius: 4px; background: #fff; color: var(--text); cursor: pointer;
}

/* ══════════════════════════════════════════
   SOFA / SAPS II — aba Scores
══════════════════════════════════════════ */
.scores-tab {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 4px 0;
}
.score-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}
.score-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  background: #f8fafc;
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
  user-select: none;
  transition: background .15s;
}
.score-card-head:hover { background: #f1f5f9; }
.score-card-head-left {
  display: flex;
  align-items: center;
  gap: 6px;
}
.score-chevron {
  font-size: var(--fs-lg);
  color: var(--text-muted);
  line-height: 1;
  transition: transform .2s;
  min-width: 14px;
  text-align: center;
}
.score-name {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--text);
}
.score-fullname {
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
.score-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px;
  border-radius: 20px;
  font-size: var(--fs-sm);
  font-weight: 600;
  white-space: nowrap;
}
.score-badge-num {
  font-size: var(--fs-lg);
  font-weight: 800;
  line-height: 1;
}
.score-badge-txt { font-weight: 500; }
.score-badge-green  { background: #f0fdf4; color: #166534; border: 1px solid #86efac; }
.score-badge-yellow { background: #fefce8; color: #854d0e; border: 1px solid #fde047; }
.score-badge-orange { background: #fff7ed; color: #9a3412; border: 1px solid #fdba74; }
.score-badge-red    { background: #fef2f2; color: var(--danger); border: 1px solid #fca5a5; }
.score-badge-empty  { font-size: var(--fs-xs); color: var(--text-muted); font-style: italic; }

.score-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}
.score-table thead th {
  padding: 5px 10px;
  text-align: left;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--text-muted);
  background: #f8fafc;
  border-bottom: 1px solid var(--border);
}
.score-table tbody tr:nth-child(even) { background: #fafafa; }
.score-table tbody tr:hover { background: #f1f5f9; }
.score-td-sys {
  padding: 5px 10px;
  color: var(--text-muted);
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
  width: 110px;
}
.score-td-var {
  padding: 5px 10px;
  color: var(--text);
  white-space: nowrap;
}
.score-td-sel { padding: 3px 8px; }
.score-td-sel .score-select {
  width: 100%;
  min-width: 140px;
  font-size: var(--fs-sm);
  padding: 3px 6px;
}
.score-td-pts {
  padding: 5px 10px;
  text-align: center;
  font-size: var(--fs-base);
  width: 40px;
}
.score-dash { color: #cbd5e1; }
.score-auto-tag {
  display: inline-block;
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  background: #dbeafe;
  color: #1d4ed8;
  border-radius: 3px;
  padding: 1px 4px;
  margin-left: 4px;
  vertical-align: middle;
}
.score-select-auto {
  background: #eff6ff !important;
  border-color: #bfdbfe !important;
}
.score-table tfoot td {
  border-top: 2px solid var(--border);
  padding: 6px 10px;
  background: #f8fafc;
}
.score-tfoot-lbl {
  font-weight: 700;
  font-size: var(--fs-sm);
  color: var(--text-muted);
}
.score-tfoot-val {
  text-align: center;
  font-size: 14px;
}
.score-ref {
  font-size: 10.5px;
  color: var(--text-faint);
  font-style: italic;
  padding: 4px 12px 6px;
  margin: 0;
}
.emerg-modal-wrap .sv-extra-select:focus { outline: none; border-color: var(--danger); }

/* ══════════════════════════════════════════
   RECEITUÁRIO
══════════════════════════════════════════ */

.receituario-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 1500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.receituario-overlay.hidden { display: none; }

.receituario-modal {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,.22);
  width: calc(100vw - 32px);
  max-width: 1200px;
  height: calc(100vh - 32px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Header */
.receituario-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px 12px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.rec-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.rec-title {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--text);
  flex-shrink: 0;
}
.rec-paciente-nome {
  font-size: var(--fs-base);
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rec-paciente-nome:not(:empty)::before { content: '— '; }
.rec-close-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-muted);
  padding: 4px;
  border-radius: 4px;
  display: flex;
  flex-shrink: 0;
}
.rec-close-btn:hover { background: var(--hover-bg); color: var(--text); }

/* Body: dois painéis */
.receituario-modal-body {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* Painel esquerdo */
.rec-left {
  display: flex;
  flex-direction: column;
  flex: 0 0 52%;
  border-right: 1px solid var(--border);
  min-height: 0;
}
.rec-search {
  margin: 14px 14px 10px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 14px;
  outline: none;
  flex-shrink: 0;
}
.rec-search:focus { border-color: var(--primary); }

.rec-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 0 14px 10px;
  flex-shrink: 0;
}
.rec-tab {
  padding: 5px 13px;
  font-size: 12.5px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 20px;
  cursor: pointer;
  color: var(--text-muted);
  white-space: nowrap;
  transition: all .12s;
}
.rec-tab:hover { background: #e2e8f0; color: var(--text); }
.rec-tab.rec-tab-active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
  font-weight: 600;
}

.rec-med-list {
  flex: 1;
  overflow-y: auto;
  padding: 0 10px 10px;
}
.rec-med-btn {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 10px 12px;
  background: none;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  text-align: left;
  gap: 8px;
  transition: background .1s;
}
.rec-med-btn:hover { background: var(--hover-bg); }
.rec-med-btn.rec-med-btn-added { background: #eff6ff; }
.rec-med-cat-label {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  background: var(--bg);
  border-radius: 4px;
  padding: 2px 6px;
  flex-shrink: 0;
}
.rec-med-nome {
  font-size: 14px;
  color: var(--text);
  flex: 1;
}
.rec-med-btn.rec-med-btn-added .rec-med-nome { color: var(--primary); font-weight: 600; }
.rec-med-check {
  font-size: var(--fs-base);
  color: var(--text-muted);
  flex-shrink: 0;
  font-weight: 700;
}
.rec-med-btn.rec-med-btn-added .rec-med-check { color: var(--primary); }
.rec-empty {
  padding: 24px 12px;
  font-size: var(--fs-base);
  color: var(--text-muted);
  text-align: center;
}

/* Painel direito */
.rec-right {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.rec-right-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 16px 10px;
  flex-shrink: 0;
}
.rec-right-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}
.rec-right-count {
  font-size: var(--fs-sm);
  color: var(--text-muted);
}
.rec-preview {
  flex: 1;
  overflow-y: auto;
  padding: 0 12px 10px;
}
.rec-preview-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  gap: 12px;
  color: var(--text-muted);
  font-size: 14px;
  text-align: center;
  padding: 40px 20px;
}
.rec-preview-empty svg { opacity: .3; }

.rec-item {
  background: #f8fafc;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 8px;
}
.rec-item-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  gap: 6px;
}
.rec-item-nome {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.3;
}
.rec-item-remove {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-faint);
  font-size: var(--fs-sm);
  padding: 2px 4px;
  border-radius: 3px;
  flex-shrink: 0;
}
.rec-item-remove:hover { background: #fee2e2; color: var(--danger-bright); }
.rec-item-pos {
  width: 100%;
  font-size: var(--fs-base);
  color: #374151;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  padding: 7px 9px;
  resize: vertical;
  font-family: inherit;
  line-height: 1.5;
  box-sizing: border-box;
  background: #fff;
}
.rec-item-pos:focus { outline: none; border-color: var(--primary); }

.rec-right-footer {
  padding: 12px 16px 16px;
  border-top: 1px solid var(--border);
  flex-shrink: 0;
}
.rec-right-footer .btn {
  width: 100%;
  justify-content: center;
  gap: 6px;
}
.btn-success-flash {
  background: #16a34a !important;
  border-color: #16a34a !important;
}

/* Botão no header do modal do paciente */
.rec-modal-btn {
  opacity: .75;
}
.rec-modal-btn:hover { opacity: 1; }

/* Responsive */
@media (max-width: 600px) {
  .receituario-modal-body { flex-direction: column; }
  .rec-left { flex: 0 0 auto; max-height: 40vh; border-right: none; border-bottom: 1px solid var(--border); }
  .rec-right { flex: 1; }
}

/* ══════════════════════════════════════════
   AUXILIAR DE PROCEDIMENTOS
══════════════════════════════════════════ */
.proc-modal-wrap {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 1500;
  display: flex; align-items: center; justify-content: center;
}
.proc-modal {
  background: #fff;
  border-radius: 8px;
  width: 920px; max-width: 96vw; height: 86vh; max-height: 86vh;
  display: flex; flex-direction: column;
  box-shadow: 0 20px 60px rgba(0,0,0,.3);
}
.proc-modal-header {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px;
  background: var(--primary);
  border-radius: 8px 8px 0 0;
}
.proc-modal-title { font-weight: 700; font-size: 14px; color: #fff; }
.proc-pac-chip {
  font-size: var(--fs-sm); color: rgba(255,255,255,.75);
  background: rgba(255,255,255,.12);
  border-radius: 20px; padding: 2px 8px;
}
.proc-close-btn {
  margin-left: auto; background: none; border: none;
  color: rgba(255,255,255,.8); font-size: var(--fs-xl); cursor: pointer;
  line-height: 1; padding: 0 2px;
}
.proc-close-btn:hover { color: #fff; }

.proc-modal-body { display: flex; flex: 1; overflow: hidden; }

/* Nav lateral */
.proc-nav {
  width: 155px; flex-shrink: 0;
  border-right: 1px solid var(--border);
  padding: 8px 6px;
  display: flex; flex-direction: column; gap: 3px;
  overflow-y: auto;
}
.proc-nav-item {
  display: flex; flex-direction: column; align-items: flex-start;
  padding: 7px 9px; border-radius: 5px;
  border: 1px solid transparent;
  background: none; cursor: pointer; text-align: left; width: 100%;
  gap: 1px;
}
.proc-nav-item:hover { background: var(--hover-bg); }
.proc-nav-item.active { background: #eff6ff; border-color: #bfdbfe; }
.proc-nav-sigla {
  font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .06em;
  color: var(--primary); opacity: .65;
}
.proc-nav-item.active .proc-nav-sigla { opacity: 1; }
.proc-nav-nome { font-size: var(--fs-sm); line-height: 1.3; color: var(--text); }
.proc-nav-item.active .proc-nav-nome { color: var(--primary); font-weight: 600; }

/* Conteúdo */
.proc-content {
  flex: 1; overflow-y: auto; padding: 16px;
  display: flex; flex-direction: column; gap: 14px;
}
.proc-form-title { font-size: var(--fs-md); font-weight: 700; color: var(--primary); }
.proc-fields { display: flex; flex-direction: column; gap: 10px; }

.proc-field { display: flex; flex-direction: column; gap: 4px; }
.proc-field-label {
  font-size: var(--fs-xs); font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .05em;
}
.proc-select, .proc-input {
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 6px 8px; font-size: var(--fs-base); width: 100%; background: #fff; font-family: inherit;
}
.proc-select:focus, .proc-input:focus { outline: none; border-color: var(--primary); }
.proc-hint { font-size: var(--fs-xs); color: var(--text-muted); margin-top: 2px; }

.proc-pills { display: flex; flex-wrap: wrap; gap: 5px; }
.proc-pill {
  padding: 4px 11px; border-radius: 20px;
  border: 1px solid var(--border); background: #f8f9fa;
  font-size: var(--fs-sm); cursor: pointer; color: var(--text); white-space: nowrap;
  font-family: inherit;
}
.proc-pill:hover { border-color: var(--primary); color: var(--primary); }
.proc-pill.selected { background: var(--primary); border-color: var(--primary); color: #fff; }

/* Caixa de doses (IOT) */
.proc-dose-box {
  background: #fffbeb; border: 1px solid #fde68a;
  border-radius: 5px; padding: 10px 12px;
  display: flex; flex-direction: column; gap: 5px;
}
.proc-dose-title {
  font-size: var(--fs-2xs); font-weight: 700; color: #92400e;
  text-transform: uppercase; letter-spacing: .05em; margin-bottom: 2px;
}
.proc-dose-row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.proc-dose-nome { font-size: var(--fs-base); font-weight: 600; min-width: 110px; }
.proc-dose-val  { font-size: var(--fs-base); font-weight: 700; color: var(--primary); }
.proc-dose-apres { font-size: var(--fs-xs); color: var(--text-muted); }
.proc-dose-section-label { font-size: var(--fs-2xs); font-weight: 700; color: #92400e; text-transform: uppercase; letter-spacing: .05em; margin-top: 4px; }
.proc-dose-row--sel { background: rgba(26,68,128,.06); border-radius: 4px; padding: 2px 4px; margin: 0 -4px; }
.proc-dose-tag { font-size: var(--fs-2xs); font-weight: 700; color: var(--primary); background: var(--primary-light); border-radius: 20px; padding: 1px 7px; margin-left: auto; }

/* Preview */
.proc-preview-section {
  display: flex; flex-direction: column; gap: 6px;
  border-top: 1px solid var(--border); padding-top: 12px;
  flex: 1; min-height: 0;
}
.proc-preview-tabs { display: flex; gap: 0; }
.proc-preview-tab {
  padding: 5px 14px;
  border: 1px solid var(--border); background: #f8f9fa;
  font-size: var(--fs-sm); cursor: pointer; color: var(--text-muted); font-family: inherit;
}
.proc-preview-tab:first-child { border-radius: 4px 0 0 4px; }
.proc-preview-tab:last-child  { border-radius: 0 4px 4px 0; border-left: none; }
.proc-preview-tab.active { background: var(--primary); border-color: var(--primary); color: #fff; }
.proc-preview-ta {
  flex: 1; min-height: 160px; max-height: 280px; resize: none;
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 10px; font-size: var(--fs-sm); line-height: 1.55;
  font-family: inherit; background: #f8f9fa; color: var(--text);
}

/* Footer */
.proc-modal-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 16px; border-top: 1px solid var(--border);
  background: #f8f9fa; border-radius: 0 0 8px 8px; gap: 8px;
}
.proc-footer-right { display: flex; gap: 8px; }
.proc-btn-mat {
  padding: 7px 13px; border: 1px solid var(--border);
  border-radius: var(--radius); background: #fff; font-size: var(--fs-base);
  cursor: pointer; color: var(--text); font-family: inherit;
}
.proc-btn-mat:hover { border-color: var(--primary); color: var(--primary); }
.proc-btn-txt {
  padding: 7px 16px; border: none; border-radius: var(--radius);
  background: var(--primary); color: #fff;
  font-size: var(--fs-base); font-weight: 600; cursor: pointer; font-family: inherit;
}
.proc-btn-txt:hover { background: var(--primary-dark); }

/* Botão de acesso no header */
.proc-header-btn { gap: 4px; }

@media (max-width: 700px) {
  .proc-modal-body { flex-direction: column; }
  .proc-nav { width: 100%; flex-direction: row; overflow-x: auto; border-right: none; border-bottom: 1px solid var(--border); padding: 6px; flex-wrap: nowrap; }
  .proc-nav-item { flex-direction: row; align-items: center; white-space: nowrap; }
  .proc-nav-sigla { display: none; }
}
