:root{
  --brand: #4f46e5;
  --brand-2: #06b6d4;
  --bg: #0b1220;
  --card: #0f172a;
  --muted: #94a3b8;
}

body{ background: var(--bg); color: #e2e8f0; }

body[data-theme="light"]{
  --bg: #f5f7fb;
  --card: #ffffff;
  --muted: #475569;
  color: #0f172a;
}
body[data-theme="light"] .sidebar{
  background: linear-gradient(180deg, rgba(79,70,229,.10), rgba(6,182,212,.06));
  border-right: 1px solid rgba(15,23,42,.10);
}
body[data-theme="light"] .sidebar .nav-link{ color:#0f172a; }
body[data-theme="light"] .sidebar .nav-link:hover{ background: rgba(15,23,42,.06); color:#0f172a; }
body[data-theme="light"] .sidebar .nav-link.active{
  background: rgba(79,70,229,.12);
  border: 1px solid rgba(79,70,229,.18);
  color:#0f172a;
}
body[data-theme="light"] .card{
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 10px 30px rgba(2,6,23,.08);
}
body[data-theme="light"] .table{ color:#0f172a; }
body[data-theme="light"] .form-control,
body[data-theme="light"] .form-select{
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.16);
  color:#0f172a;
}

body[data-theme="light"] .topbar .fw-semibold,
body[data-theme="light"] .sidebar .brand{
  color: #0f172a;
}
body[data-theme="light"] .text-secondary{
  color: #64748b !important;
}
body[data-theme="light"] .badge-soft{
  color: #0f172a;
  background: rgba(15,23,42,.08);
  border-color: rgba(15,23,42,.12);
}
body[data-theme="light"] .table thead th{
  color: #334155;
  border-bottom-color: rgba(15,23,42,.12);
}
body[data-theme="light"] .table td,
body[data-theme="light"] .table th{
  border-top-color: rgba(15,23,42,.08);
}
body[data-theme="light"] .card .card-header{
  color: #0f172a;
  border-bottom-color: rgba(15,23,42,.1);
}
body[data-theme="light"] .btn-outline-light{
  --bs-btn-color: #0f172a;
  --bs-btn-border-color: rgba(15,23,42,.22);
  --bs-btn-hover-bg: rgba(15,23,42,.06);
  --bs-btn-hover-border-color: rgba(15,23,42,.28);
  --bs-btn-hover-color: #0f172a;
}

.app-shell{
  min-height: 100vh;
  display: grid;
  grid-template-columns: 280px 1fr;
}

.sidebar{
  background: linear-gradient(180deg, rgba(79,70,229,.22), rgba(6,182,212,.08));
  border-right: 1px solid rgba(148,163,184,.12);
  padding: 18px;
}

.sidebar .brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight: 700;
  letter-spacing:.2px;
}

.sidebar .nav-link{
  color: #cbd5e1;
  border-radius: 10px;
  padding: 10px 12px;
  margin: 2px 0;
}

.sidebar .nav-link:hover{
  background: rgba(148,163,184,.10);
  color:#fff;
}

.sidebar .nav-link.active{
  background: rgba(79,70,229,.25);
  color:#fff;
  border: 1px solid rgba(79,70,229,.35);
}

.content{
  padding: 22px 22px 40px;
}

.topbar{
  display:flex;
  align-items:center;
  justify-content: space-between;
  margin-bottom: 18px;
}

.card{
  background: rgba(15,23,42,.8);
  border: 1px solid rgba(148,163,184,.12);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  border-radius: 14px;
}

.card .card-header{
  background: transparent;
  border-bottom: 1px solid rgba(148,163,184,.12);
}

/* Botão de tema sempre visível no topo (médicos e demais perfis) */
.btn-theme-toggle{
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.5);
  color: #ffffff !important;
  font-weight: 600;
  min-width: 5.5rem;
}
.btn-theme-toggle:hover{
  background: rgba(255,255,255,.28);
  border-color: rgba(255,255,255,.65);
  color: #ffffff !important;
}
body[data-theme="light"] .btn-theme-toggle{
  background: rgba(15,23,42,.06);
  border: 1px solid rgba(15,23,42,.22);
  color: #0f172a !important;
}
body[data-theme="light"] .btn-theme-toggle:hover{
  background: rgba(15,23,42,.1);
  color: #0f172a !important;
}

/* Sair — destaque na sidebar (login) */
.btn-logout-sidebar{
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.6rem 0.85rem;
  border-radius: 12px;
  border: 2px solid rgba(252,165,165,.55);
  background: linear-gradient(135deg, rgba(220,38,38,.35), rgba(185,28,28,.22));
  color: #fecaca;
  box-shadow: 0 6px 18px rgba(220,38,38,.22);
  letter-spacing: 0.02em;
}
.btn-logout-sidebar:hover{
  background: linear-gradient(135deg, rgba(220,38,38,.5), rgba(185,28,28,.35));
  color: #ffffff;
  border-color: rgba(254,202,202,.85);
  box-shadow: 0 8px 22px rgba(220,38,38,.3);
}
body[data-theme="light"] .btn-logout-sidebar{
  border: 2px solid #dc2626;
  background: linear-gradient(135deg, #fee2e2, #fecaca);
  color: #991b1b;
  box-shadow: 0 6px 16px rgba(220,38,38,.12);
}
body[data-theme="light"] .btn-logout-sidebar:hover{
  background: linear-gradient(135deg, #fecaca, #fca5a5);
  color: #7f1d1d;
  border-color: #b91c1c;
}

.btn-brand{
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
  border: 0;
  color: #fff;
}
.btn-brand:hover{ filter: brightness(1.05); color:#fff; }

/* Fila da unidade — atalho Prontuário (todas as secções: em atendimento, observação, medicação, procedimentos, internamento, etc.) */
.table-fila-unidade .btn-fila-prontuario{
  --bs-btn-color: #fff;
  --bs-btn-bg: #198754;
  --bs-btn-border-color: #198754;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #157347;
  --bs-btn-hover-border-color: #146c43;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #146c43;
  --bs-btn-active-border-color: #13653f;
  color: #fff !important;
  background-color: #198754 !important;
  background-image: none !important;
  border-color: #198754 !important;
}
.table-fila-unidade .btn-fila-prontuario:hover,
.table-fila-unidade .btn-fila-prontuario:focus-visible{
  color: #fff !important;
  background-color: #157347 !important;
  background-image: none !important;
  border-color: #146c43 !important;
}

.badge-soft{
  background: rgba(148,163,184,.14);
  border: 1px solid rgba(148,163,184,.20);
  color: #e2e8f0;
}

/* Modal escuro (melhor legibilidade) */
.modal-dark{
  color: #e2e8f0;
}
.modal-dark .text-secondary{
  color: rgba(226,232,240,.78) !important;
}
.modal-dark #chegada_paciente_titulo,
.modal-dark #tf_paciente_nome,
.modal-dark #rc_paciente_nome{
  color: #ffffff !important;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .2px;
}
.modal-dark .form-label,
.modal-dark .form-check-label,
.modal-dark .form-text{
  color: #e2e8f0 !important;
}
.modal-dark .form-check-input{
  border-color: rgba(226,232,240,.45);
}
.modal-dark .form-select,
.modal-dark .form-control{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(226,232,240,.18);
  color: #ffffff;
}
.modal-dark .form-select option{
  color: #0f172a;
}

.table{
  color:#e2e8f0;
}
.table thead th{
  color:#cbd5e1;
  border-bottom: 1px solid rgba(148,163,184,.18);
}
.table td, .table th{
  border-top: 1px solid rgba(148,163,184,.12);
}

/* Classificação de risco (triagem) — chips e linha destacada em listas */
.risco-chip{
  display:inline-flex;
  align-items:center;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
  padding:.28rem .6rem;
  border-radius:999px;
  border:1px solid transparent;
  white-space:nowrap;
  line-height:1.1;
}
.risco-sem{
  color:#94a3b8;
  background:rgba(148,163,184,.14);
  border-color:rgba(148,163,184,.28);
}
.risco-vermelho{ color:#fff; background:#b91c1c; border-color:rgba(254,202,202,.45); box-shadow:0 0 0 1px rgba(0,0,0,.12); }
.risco-laranja{ color:#0f172a; background:#ea580c; border-color:rgba(253,186,116,.7); }
.risco-amarelo{ color:#422006; background:#ca8a04; border-color:rgba(253,224,71,.75); }
.risco-verde{ color:#052e16; background:#16a34a; border-color:rgba(187,247,208,.85); }
.risco-azul{ color:#082f49; background:#0ea5e9; border-color:rgba(186,230,253,.9); }

.table tbody tr.risco-linha td:first-child{
  box-shadow:inset 4px 0 0 0 var(--risco-bar, rgba(148,163,184,.5));
}
tr.risco-linha-vermelho{ --risco-bar:#ef4444; background:linear-gradient(90deg, rgba(239,68,68,.16), transparent 55%); }
tr.risco-linha-laranja{ --risco-bar:#f97316; background:linear-gradient(90deg, rgba(249,115,22,.14), transparent 55%); }
tr.risco-linha-amarelo{ --risco-bar:#eab308; background:linear-gradient(90deg, rgba(234,179,8,.16), transparent 55%); }
tr.risco-linha-verde{ --risco-bar:#22c55e; background:linear-gradient(90deg, rgba(34,197,94,.11), transparent 55%); }
tr.risco-linha-azul{ --risco-bar:#38bdf8; background:linear-gradient(90deg, rgba(56,189,248,.12), transparent 55%); }

/* Bootstrap pinta o background em td/th, então aplica o gradiente nas células também */
.table tbody tr.risco-linha-vermelho > *{ background:linear-gradient(90deg, rgba(239,68,68,.16), transparent 55%) !important; }
.table tbody tr.risco-linha-laranja > *{ background:linear-gradient(90deg, rgba(249,115,22,.14), transparent 55%) !important; }
.table tbody tr.risco-linha-amarelo > *{ background:linear-gradient(90deg, rgba(234,179,8,.16), transparent 55%) !important; }
.table tbody tr.risco-linha-verde > *{ background:linear-gradient(90deg, rgba(34,197,94,.11), transparent 55%) !important; }
.table tbody tr.risco-linha-azul > *{ background:linear-gradient(90deg, rgba(56,189,248,.12), transparent 55%) !important; }

/* DataTables também aplica striping nas células; reforça o seletor */
table.dataTable tbody tr.risco-linha-vermelho > *,
.dataTable tbody tr.risco-linha-vermelho > *{ background:linear-gradient(90deg, rgba(239,68,68,.16), transparent 55%) !important; }
table.dataTable tbody tr.risco-linha-laranja > *,
.dataTable tbody tr.risco-linha-laranja > *{ background:linear-gradient(90deg, rgba(249,115,22,.14), transparent 55%) !important; }
table.dataTable tbody tr.risco-linha-amarelo > *,
.dataTable tbody tr.risco-linha-amarelo > *{ background:linear-gradient(90deg, rgba(234,179,8,.16), transparent 55%) !important; }
table.dataTable tbody tr.risco-linha-verde > *,
.dataTable tbody tr.risco-linha-verde > *{ background:linear-gradient(90deg, rgba(34,197,94,.11), transparent 55%) !important; }
table.dataTable tbody tr.risco-linha-azul > *,
.dataTable tbody tr.risco-linha-azul > *{ background:linear-gradient(90deg, rgba(56,189,248,.12), transparent 55%) !important; }

body[data-theme="light"] tr.risco-linha-vermelho{ background:linear-gradient(90deg, rgba(239,68,68,.12), transparent 58%); }
body[data-theme="light"] tr.risco-linha-laranja{ background:linear-gradient(90deg, rgba(249,115,22,.10), transparent 58%); }
body[data-theme="light"] tr.risco-linha-amarelo{ background:linear-gradient(90deg, rgba(234,179,8,.14), transparent 58%); }
body[data-theme="light"] tr.risco-linha-verde{ background:linear-gradient(90deg, rgba(34,197,94,.08), transparent 58%); }
body[data-theme="light"] tr.risco-linha-azul{ background:linear-gradient(90deg, rgba(56,189,248,.10), transparent 58%); }

body[data-theme="light"] .table tbody tr.risco-linha-vermelho > *{ background:linear-gradient(90deg, rgba(239,68,68,.12), transparent 58%) !important; }
body[data-theme="light"] .table tbody tr.risco-linha-laranja > *{ background:linear-gradient(90deg, rgba(249,115,22,.10), transparent 58%) !important; }
body[data-theme="light"] .table tbody tr.risco-linha-amarelo > *{ background:linear-gradient(90deg, rgba(234,179,8,.14), transparent 58%) !important; }
body[data-theme="light"] .table tbody tr.risco-linha-verde > *{ background:linear-gradient(90deg, rgba(34,197,94,.08), transparent 58%) !important; }
body[data-theme="light"] .table tbody tr.risco-linha-azul > *{ background:linear-gradient(90deg, rgba(56,189,248,.10), transparent 58%) !important; }

body[data-theme="light"] table.dataTable tbody tr.risco-linha-vermelho > *,
body[data-theme="light"] .dataTable tbody tr.risco-linha-vermelho > *{ background:linear-gradient(90deg, rgba(239,68,68,.12), transparent 58%) !important; }
body[data-theme="light"] table.dataTable tbody tr.risco-linha-laranja > *,
body[data-theme="light"] .dataTable tbody tr.risco-linha-laranja > *{ background:linear-gradient(90deg, rgba(249,115,22,.10), transparent 58%) !important; }
body[data-theme="light"] table.dataTable tbody tr.risco-linha-amarelo > *,
body[data-theme="light"] .dataTable tbody tr.risco-linha-amarelo > *{ background:linear-gradient(90deg, rgba(234,179,8,.14), transparent 58%) !important; }
body[data-theme="light"] table.dataTable tbody tr.risco-linha-verde > *,
body[data-theme="light"] .dataTable tbody tr.risco-linha-verde > *{ background:linear-gradient(90deg, rgba(34,197,94,.08), transparent 58%) !important; }
body[data-theme="light"] table.dataTable tbody tr.risco-linha-azul > *,
body[data-theme="light"] .dataTable tbody tr.risco-linha-azul > *{ background:linear-gradient(90deg, rgba(56,189,248,.10), transparent 58%) !important; }

.form-control, .form-select{
  background: rgba(2,6,23,.65);
  border: 1px solid rgba(148,163,184,.18);
  color:#e2e8f0;
}
.form-control:focus, .form-select:focus{
  border-color: rgba(79,70,229,.6);
  box-shadow: 0 0 0 .25rem rgba(79,70,229,.18);
}

.auth-bg{
  background: radial-gradient(1200px 600px at 10% 10%, rgba(79,70,229,.35), transparent 55%),
              radial-gradient(1000px 500px at 90% 10%, rgba(6,182,212,.26), transparent 55%),
              #070b14;
  min-height: 100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 24px;
}

.auth-card{
  width: min(980px, 100%);
  overflow:hidden;
}
.auth-split{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
}
@media (max-width: 992px){
  .app-shell{ grid-template-columns: 1fr; }
  .sidebar{ position: sticky; top:0; z-index:10; }
  .auth-split{ grid-template-columns: 1fr; }
}

