html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  color: #1f2a2a;
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  background: #fff0e9;
}

button,
input,
select {
  font: inherit;
}

svg {
  display: block;
}

.pagina-login {
  background: #fff0e9;
}

.login-split {
  display: flex;
  min-height: 100vh;
}

.login-formulario {
  flex: 1 1 66%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 24px;
}

.login-marca {
  flex: 0 0 34%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 48px 28px 36px;
  background: #13dfc6;
  text-align: center;
}

.tenant-unimed_litoral .login-marca { background: #b1d34b; }
.tenant-unimed_tubarao .login-marca { background: #00995d; }
.tenant-hospital_saojose .login-marca { background: #5b4898; }
.tenant-maringa .login-marca { background: #13dfc6; }

.marca-centro {
  margin: auto 0;
}

.logo-cliente-grande {
  max-width: 320px;
  width: 80%;
  height: auto;
}

.logo-cliente-mobile,
.logo-manutencao {
  display: none;
  width: 180px;
  height: auto;
  margin: 0 auto 12px;
}

.boas-vindas {
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  margin: 28px 0 0;
}

.logo-blueez-branco {
  width: 168px;
  height: auto;
}

.titulo-portal {
  margin: 0 0 18px;
  color: #07407b;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-align: center;
}

.cartao-login {
  width: min(520px, 100%);
  background: #fff;
  border: 1px solid #e6e6e6;
  box-shadow: 0 1px 4px rgb(0 0 0 / 0.08);
}

.abas {
  display: flex;
}

.aba {
  flex: 1;
  border: 1px solid #dee2e6;
  border-bottom: 1px solid #dee2e6;
  background: #dee2e6;
  color: #07407b;
  font-size: 16px;
  font-weight: 600;
  padding: 12px 8px;
  cursor: pointer;
}

.aba + .aba {
  border-left: 0;
}

.aba.ativa {
  background: #fff;
  border-bottom-color: #fff;
}

.login-split .conteudo-login,
.login-split .painel-manutencao,
.form-stack,
#etapa-canal,
#etapa-senha {
  padding: 8px 28px 20px;
}

.titulo-acesso {
  margin: 14px 0 10px;
  color: #333;
  font-size: 16px;
  font-weight: 300;
}

.titulo-acesso.centro {
  text-align: center;
}

.titulo-acesso strong {
  font-weight: 700;
}

.linha-campo {
  display: grid;
  grid-template-columns: 28px 1fr;
  column-gap: 8px;
  margin-bottom: 8px;
}

.linha-campo .icone-campo {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
  color: #13dfc6;
}

.tenant-unimed_litoral .icone-campo { color: #b1d34b; }
.tenant-unimed_tubarao .icone-campo { color: #00995d; }
.tenant-hospital_saojose .icone-campo { color: #5b4898; }

.icone-campo svg,
.olho svg,
.menu-lateral svg,
.btn-lupa svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.linha-campo .rotulo,
.linha-campo .campo,
.linha-campo .campo-senha {
  grid-column: 2;
}

.rotulo {
  display: block;
  margin-bottom: 2px;
  color: #07407b;
  font-size: 13px;
  font-weight: 700;
}

.campo {
  width: 100%;
  box-sizing: border-box;
  border: 0;
  border-bottom: 1px solid #97b7d8;
  border-radius: 0;
  background: transparent;
  padding: 6px 4px;
  color: #222;
}

.campo:focus {
  outline: none;
  border-bottom-color: #07407b;
  box-shadow: 0 6px 8px -8px rgb(7 64 123 / 0.8);
}

.campo-caixa {
  border: 1px solid #d5dde3;
  border-radius: 4px;
  background: #fff;
  padding: 8px 10px;
  box-shadow: none;
}

.campo-senha {
  display: flex;
  align-items: flex-end;
}

.campo-senha .campo {
  flex: 1;
}

.olho {
  background: none;
  border: 0;
  border-bottom: 1px solid #97b7d8;
  color: #0d55a3;
  padding: 4px 2px;
  cursor: pointer;
}

.ajuda {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-left: 4px;
  border: 1px solid #07407b;
  border-radius: 50%;
  background: #fff;
  color: #07407b;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  vertical-align: middle;
  cursor: help;
  padding: 0;
}

.separador {
  margin: 8px 0;
  color: #8a8a8a;
  text-align: center;
  font-size: 13px;
}

.btn-entrar,
.btn-azul,
.btn-contorno,
.btn-sair,
.btn-lupa {
  cursor: pointer;
}

.btn-entrar {
  display: block;
  width: 100%;
  margin: 16px 0 0;
  border: 0;
  border-radius: 36px;
  background: #07407b;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  padding: 10px 16px;
  text-align: center;
  text-decoration: none;
}

.btn-entrar:hover,
.btn-azul:hover,
.btn-sair:hover {
  background: #0d55a3;
}

.btn-entrar:disabled,
.btn-azul:disabled,
.btn-contorno:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.links-login {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 16px 0 20px;
  text-align: center;
}

.links-login a {
  color: #07407b;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.alerta {
  color: #b3261e;
  font-size: 14px;
}

.texto-centro,
.carregando,
.subtitulo,
.titulo-cartao,
.titulo-manutencao {
  text-align: center;
}

.titulo-cartao,
.titulo-manutencao {
  color: #07407b;
  font-size: 20px;
}

.titulo-manutencao {
  margin-top: 0;
}

.painel-manutencao {
  padding: 28px;
}

.form-stack .btn-entrar,
#etapa-canal .btn-contorno,
.btn-contorno.bloco,
.btn-azul.bloco {
  width: 100%;
  margin: 12px 0 0;
}

.btn-contorno.bloco + .btn-contorno.bloco {
  margin-top: 8px;
}

.pagina-simples {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.cartao-simples {
  width: min(420px, 100%);
  background: #fff;
  padding: 32px 24px;
  text-align: center;
  box-shadow: 0 1px 4px rgb(0 0 0 / 0.08);
}

.cartao-simples h1 {
  margin-top: 0;
  color: #07407b;
  font-size: 22px;
}

.cartao-simples .btn-entrar {
  width: auto;
  display: inline-block;
  margin: 8px 0 0;
  padding: 10px 28px;
}

.topo {
  display: flex;
  align-items: center;
  gap: 16px;
  position: sticky;
  top: 0;
  z-index: 50;
  min-height: 64px;
  padding: 8px 20px;
  background: #fff;
  border-bottom: 3px solid #f3d2c4;
}

.marca-blueez img {
  height: 32px;
  width: auto;
}

.selo-cliente {
  height: 38px;
  width: auto;
}

.topo-usuario {
  display: flex;
  flex-direction: column;
  margin-left: auto;
  color: #333;
  font-size: 12px;
  text-align: right;
}

.btn-menu {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #07407b;
  cursor: pointer;
}

.btn-menu svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
}

.sidebar-backdrop {
  display: none;
}

.corpo-app {
  display: flex;
  align-items: stretch;
  min-height: calc(100vh - 96px);
}

.sidebar {
  flex: 0 0 188px;
  width: 188px;
  align-self: flex-start;
  position: sticky;
  top: 64px;
  margin: 0 0 36px;
  padding: 8px 0 16px;
  background: #fff;
  color: #07407b;
  border-right: 4px solid rgb(245 159 121);
  border-bottom-right-radius: 20px;
  box-shadow: 1px 1px 3px 1px #c5b8b4;
  max-height: calc(100vh - 96px);
  overflow: auto;
}

.grupo-titulo {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 16px 12px;
  border: 0;
  background: #fff;
  color: #07407b;
  font-size: 15px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.grupo-titulo span {
  min-width: 0;
}

.grupo-titulo svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: currentColor;
}

.grupo-titulo .seta {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: auto;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid currentColor;
}

.grupo-titulo:hover {
  background: #f29166;
  color: #fff;
}

.grupo.aberto > .grupo-titulo {
  background: #f29166;
}

.grupo:not(.aberto) .grupo-itens,
.grupo:not(.aberto) .aviso-idioma {
  display: none;
}

.grupo-itens {
  list-style: none;
  margin: 0;
  padding: 0;
}

.grupo-itens a,
.grupo-itens .item-menu {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px 10px 38px;
  border: 0;
  background: #fcb895;
  color: #07407b;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.grupo-itens a:hover,
.grupo-itens .item-menu:hover,
.grupo-itens a.ativo {
  background: #fff0e9;
}

.aviso-idioma {
  margin: 0;
  padding: 8px 12px 8px 38px;
  background: #fff8e8;
  color: #07407b;
  font-size: 12px;
}

body[data-perfil="paciente"] [data-item="pacientes"],
body[data-perfil="paciente"] [data-grupo="parecer"],
body[data-perfil="convenio"] [data-grupo="parecer"] {
  display: none;
}

.miolo {
  flex: 1;
  padding: 24px 28px 48px;
}

.rodape {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  height: 32px;
  display: flex;
  align-items: center;
  padding: 0 16px;
  background: #13dfc6;
  color: #fff;
  font-size: 12px;
}

.bloco h1,
.titulo-painel {
  margin: 0 0 12px;
  color: #07407b;
  font-size: 18px;
  font-weight: 600;
}

.titulo-painel em {
  font-style: italic;
  font-weight: 700;
}

.painel,
.exame-card,
.modal-caixa {
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 1px 3px rgb(0 0 0 / 0.08);
}

.painel {
  padding: 16px 18px 18px;
  margin-bottom: 12px;
}

.filtros-pacientes {
  display: flex;
  align-items: flex-end;
  gap: 18px;
}

.campo-paciente {
  flex: 1;
}

.tipos-busca {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 160px;
}

.tipos-busca legend {
  padding: 0;
  color: #07407b;
  font-size: 13px;
  font-weight: 700;
}

.tipos-busca label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  font-size: 14px;
}

.tipos-busca input {
  accent-color: #2f9e44;
}

.btn-lupa {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #13dfc6;
  border-radius: 4px;
  background: #fff;
  color: #13bfb0;
}

.tabela-wrap {
  padding-top: 12px;
}

.titulo-tabela {
  margin: 0 0 8px;
  color: #07407b;
  font-size: 16px;
}

.tabela-pacientes,
.tabela-exames {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
}

.tabela-pacientes th,
.tabela-exames th {
  padding: 8px 12px;
  border-bottom: 1px solid #e4e4e4;
  color: #07407b;
  font-size: 13px;
  font-weight: 700;
  text-align: left;
}

.tabela-pacientes td,
.tabela-exames td {
  padding: 12px;
  border-bottom: 1px solid #eee;
  color: #333;
  font-size: 14px;
  vertical-align: middle;
}

.tabela-pacientes tbody tr {
  cursor: pointer;
}

.tabela-pacientes tbody tr:hover {
  background: #f4f8fc;
}

.tabela-pacientes .nome {
  font-weight: 700;
}

.vazio {
  text-align: center;
  color: #666;
}

.cabecalho-bloco {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 12px;
}

.cabecalho-bloco h1 {
  margin-bottom: 4px;
}

.sub,
.exame-meta,
.dica {
  margin: 0;
  color: #555;
  font-size: 13px;
}

.aviso {
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 1px solid #f0d48a;
  border-radius: 6px;
  background: #fff8e8;
  font-size: 14px;
}

.aviso-perfil {
  margin: 0;
}

.grade-filtros {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
}

.alinhar-fim {
  display: flex;
  align-items: flex-end;
}

.btn-azul,
.btn-contorno {
  border-radius: 4px;
  font-weight: 700;
  padding: 8px 14px;
}

.btn-azul {
  border: 0;
  background: #07407b;
  color: #fff;
}

.btn-contorno {
  border: 1px solid #07407b;
  background: #fff;
  color: #07407b;
}

.exame-card {
  padding: 14px 16px;
  margin-bottom: 12px;
}

.exame-card h2 {
  margin: 0;
  font-size: 16px;
}

.exame-topo {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.exame-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 12px;
  font-size: 14px;
}

.ok {
  color: #07407b;
  font-weight: 700;
}

.conta {
  max-width: 640px;
}

.conta h2 {
  margin: 0 0 8px;
  color: #07407b;
  font-size: 16px;
}

.visor-laudo,
.modal {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgb(30 30 30 / 0.72);
}

.visor-laudo[hidden],
.modal[hidden],
[hidden] {
  display: none !important;
}

.visor-caixa {
  display: flex;
  flex-direction: column;
  width: min(1100px, 100%);
  height: min(88vh, 920px);
  overflow: hidden;
  border-radius: 4px;
  background: #3c3c3c;
}

.visor-barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  color: #fff;
}

.visor-acoes {
  display: flex;
  align-items: center;
  gap: 8px;
}

.visor-corpo {
  flex: 1;
  min-height: 0;
  overflow: auto;
  background: #525659;
}

.visor-corpo iframe {
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
}

.laudo-folha {
  width: min(210mm, calc(100% - 32px));
  min-height: 70vh;
  margin: 16px auto;
  padding: 14mm 12mm;
  box-sizing: border-box;
  background: #fff;
  color: #222;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12.5px;
  line-height: 1.45;
}

.laudo-rtf img,
.laudo-pict {
  max-width: 220px;
  height: auto;
}

.modal-caixa {
  width: min(480px, 100%);
  padding: 20px;
}

.lista-share {
  margin: 12px 0;
  padding: 0;
  list-style: none;
}

.lista-share li {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 0;
  border-top: 1px solid #eee;
  font-size: 13px;
  word-break: break-all;
}

@media (max-width: 991px) {
  .login-marca {
    display: none;
  }

  body.pagina-login:not(.tenant-dapi) {
    background: #13dfc6;
  }

  body.tenant-unimed_litoral.pagina-login { background: #b1d34b; }
  body.tenant-unimed_tubarao.pagina-login { background: #00995d; }
  body.tenant-hospital_saojose.pagina-login { background: #5b4898; }
  body.tenant-hospital_saojose .titulo-portal { color: #fff; }

  .logo-cliente-mobile {
    display: block;
  }

  .login-formulario {
    padding: 24px 12px 32px;
  }

  .grade-filtros,
  .filtros-pacientes,
  .cabecalho-bloco {
    grid-template-columns: 1fr;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .btn-menu {
    display: inline-flex;
  }

  .sidebar {
    position: fixed;
    z-index: 40;
    top: 64px;
    bottom: 32px;
    left: 0;
    max-height: none;
    transform: translateX(-110%);
    transition: transform 0.2s ease;
  }

  body.menu-aberto .sidebar {
    transform: none;
  }

  body.menu-aberto .sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 30;
    background: rgb(0 0 0 / 0.28);
  }
}

.tenant-unimed_litoral .btn-azul,
.tenant-unimed_litoral .btn-sair {
  background: #00995d;
}

.tenant-unimed_litoral .btn-contorno {
  color: #007a4a;
  border-color: #00995d;
}

.voltar {
  display: inline-block;
  margin-bottom: 8px;
  color: #007a4a;
  font-weight: 700;
  text-decoration: none;
}

.abas {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.atendimento {
  margin-bottom: 12px;
  border: 1px solid #d7e5df;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.atendimento-topo,
.tipo-exame-topo {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
}

.atendimento-abrir {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.atendimento-nomes,
.tipo-exame-topo div,
.sub-atendimento .tipo-exame-topo div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.atendimento-nomes span,
.tipo-exame-topo span,
.linha-exame-nome span {
  color: #5f6f6a;
  font-size: 13px;
}

.entrega {
  margin-left: auto;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 13px;
  white-space: nowrap;
}

.faixa-ok { background: #e7f6ee; }
.faixa-parcial { background: #fff6df; }
.faixa-pendente { background: #fdecec; }

.tipo-exame,
.sub-atendimento {
  margin: 0 12px 12px;
  border-radius: 8px;
}

.linha-exame {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-top: 1px solid #e6eeea;
  background: #fff;
}

.linha-exame-nome {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.em-analise {
  color: #9a6700;
  font-size: 13px;
  font-weight: 700;
}

.laudo-inst {
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid #00995d;
  color: #1c2b28;
}

.laudo-inst-marca {
  color: #00995d;
  font-size: 16px;
}

.laudo-tabela {
  width: 100%;
  margin: 8px 0 12px;
  border-collapse: collapse;
}

.laudo-tabela td {
  padding: 3px 10px 3px 0;
  border-bottom: 1px solid #e4ece8;
  vertical-align: top;
}

.laudo-tab {
  display: inline-block;
  width: 1.6em;
}

.laudo-exame {
  margin: 0 0 8px;
  font-size: 15px;
}

.login-dapi {
  display: flex;
  min-height: 100vh;
  align-items: flex-start;
  justify-content: center;
  padding: 48px 16px 32px;
  background: #f9f9f9;
}

body:not(.tenant-dapi) .login-dapi {
  display: none !important;
}

body.tenant-dapi .login-split {
  display: none !important;
}

body.tenant-dapi.pagina-login {
  background: #f9f9f9;
}

body.tenant-unimed_litoral [data-layout="classico"],
body:not(.tenant-unimed_litoral) [data-layout="litoral"] {
  display: none !important;
}

body:not(.tenant-maringa) [data-so="nascimento"],
body:not(.tenant-unimed_tubarao):not(.tenant-hospital_saojose) [data-so="token-classico"],
body:not(.tenant-unimed_litoral) [data-so="cadastro"] {
  display: none !important;
}

.abas-login {
  display: flex;
  margin: -8px -28px 12px;
}

.aba-login {
  flex: 1;
  border: 1px solid #dee2e6;
  background: #dee2e6;
  color: #07407b;
  font-size: 16px;
  font-weight: 600;
  padding: 12px 8px;
  cursor: pointer;
}

.aba-login + .aba-login {
  border-left: 0;
}

.aba-login.ativa {
  background: #fff;
  border-bottom-color: #fff;
}

.cartao-dapi {
  width: min(460px, 100%);
  padding: 28px 32px 24px;
  border: 1px solid #d7d7d7;
  border-radius: 20px;
  background: #fff;
  box-shadow: 2px 2px 5px rgb(0 0 0 / 0.2);
}

.logo-dapi {
  display: block;
  width: auto;
  max-width: 100%;
  height: 110px;
  margin: 0 auto 18px;
}

.campo-dapi {
  margin-bottom: 14px;
}

.login-dapi .rotulo {
  color: #3d3d3d;
}

.login-dapi .campo {
  border: 1px solid #d7d7d7;
  border-radius: 4px;
  background: #fff;
  padding: 8px 10px;
}

.login-dapi .campo:focus {
  border-bottom-color: #d7d7d7;
  box-shadow: 0 0 5px #c0c0c0;
}

.login-dapi .btn-entrar {
  width: auto;
  margin: 8px 0 0 6%;
  border-radius: 4px;
  padding: 8px 22px;
}

.login-dapi .painel-manutencao {
  padding: 8px 0 0;
}

.links-dapi {
  margin: 16px 0 0;
  color: #3d3d3d;
  font-size: 14px;
}

.links-dapi a {
  color: #2196f3;
}

.logo-blueez-azul {
  display: block;
  height: 64px;
  margin: 18px auto 0;
}

.cartao-login.texto-centro {
  padding: 28px;
}

.cartao-login.texto-centro .btn-entrar {
  display: inline-block;
  width: auto;
  margin-top: 12px;
}
