/* ================================================================ */
/* Portal Mapa de Serviço — estilo.css v1.4 (+ enfermagem)         */
/* ================================================================ */

:root {
  --azul-escuro: #1F4E7B;
  --azul-medio: #2E6EAB;
  --azul-suave: #E8F1FA;
  --azul-hover: #245489;
  --amarelo-sol: #FFC627;
  --amarelo-logo: #F7EF34;
  --amarelo-suave: #FFECB3;
  --amarelo-fundo: #FFF8E1;
  --laranja-quente: #FF8F00;
  --texto-escuro: #2C3E50;
  --texto-medio: #5D6D7E;
  --texto-claro: #95A5A6;
  --branco: #FFFFFF;
  --fundo-app: #F7F9FB;
  --cinza-linha: #E5E9EE;
  --verde-limpeza: #7CB342;
  --rosa-enf: #E91E63;
  --erro: #C62828;
  --cinza-cancelado: #E0E0E0;
  --texto-cancelado: #9E9E9E;
  --sombra: rgba(31, 78, 123, 0.08);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; overflow-x: hidden; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  background: var(--fundo-app);
  color: var(--texto-escuro);
  min-height: 100vh;
  -webkit-tap-highlight-color: transparent;
}

h1, h2, h3, h4, .titulo, .btn-primario, .saudacao,
.dia-cabecalho .nome, .resumo-item .valor, .rodape-marca,
.btn-escolha-titulo {
  font-family: 'Righteous', 'Inter', cursive;
  letter-spacing: 0.3px;
  font-weight: 400;
}

.ecra { min-height: 100vh; max-width: 500px; margin: 0 auto; background: var(--fundo-app); }

/* ================================================================ */
/* LOGIN, PIN, ESCOLHAS                                             */
/* ================================================================ */

.login-header {
  text-align: center;
  padding: 45px 24px 32px;
  background: var(--azul-escuro);
}
.login-header .logo-img { max-width: 200px; height: auto; margin: 0 auto 14px; display: block; }
.login-header .hashtag {
  font-family: 'Righteous', cursive;
  font-size: 13px;
  color: var(--amarelo-logo);
  letter-spacing: 0.5px;
  margin-top: 4px;
}

.login-conteudo { padding: 30px 24px 40px; }
.login-conteudo h3 { font-size: 26px; color: var(--azul-escuro); margin-bottom: 8px; }
.login-conteudo .descricao { font-size: 14px; color: var(--texto-medio); margin-bottom: 28px; line-height: 1.5; }

.form-group { margin-bottom: 20px; }
.form-group label { display: block; font-size: 13px; color: var(--azul-escuro); margin-bottom: 8px; font-weight: 600; }
.form-group input {
  width: 100%;
  padding: 14px 16px;
  border: 1.5px solid var(--cinza-linha);
  border-radius: 10px;
  font-size: 16px;
  background: white;
  font-family: 'Inter', sans-serif;
  -webkit-appearance: none;
}
.form-group input:focus {
  outline: none;
  border-color: var(--azul-medio);
  box-shadow: 0 0 0 3px rgba(46, 110, 171, 0.15);
}

.btn-primario {
  width: 100%;
  padding: 15px;
  background: var(--azul-escuro);
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 16px;
  cursor: pointer;
  margin-top: 8px;
  transition: all 0.2s;
  letter-spacing: 0.5px;
}
.btn-primario:hover:not(:disabled) { background: var(--azul-hover); color: var(--amarelo-sol); }
.btn-primario:active { transform: scale(0.98); }
.btn-primario:disabled { opacity: 0.5; cursor: not-allowed; }

.info-caixa {
  background: var(--amarelo-fundo);
  border-left: 3px solid var(--amarelo-sol);
  padding: 14px;
  border-radius: 6px;
  font-size: 13px;
  color: var(--texto-medio);
  margin-top: 24px;
  line-height: 1.6;
}

.mensagem-erro {
  background: #FEE;
  border-left: 3px solid var(--erro);
  padding: 12px 14px;
  border-radius: 6px;
  color: var(--erro);
  font-size: 13px;
  margin-top: 16px;
}

.pin-boxes { display: flex; gap: 8px; justify-content: center; margin: 24px 0; }
.pin-box {
  width: 44px; height: 54px;
  border: 2px solid var(--cinza-linha);
  border-radius: 10px;
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  color: var(--azul-escuro);
  background: white;
  font-family: 'Righteous', cursive;
  -webkit-appearance: none;
}
.pin-box:focus {
  outline: none;
  border-color: var(--azul-medio);
  background: var(--azul-suave);
  box-shadow: 0 0 0 3px rgba(46, 110, 171, 0.15);
}
.pin-box.preenchida { border-color: var(--azul-medio); background: var(--azul-suave); }

.link-secundario {
  display: block;
  text-align: center;
  color: var(--azul-medio);
  font-size: 13px;
  margin-top: 12px;
  text-decoration: none;
  padding: 8px;
  font-weight: 500;
}
.link-secundario:hover { color: var(--azul-escuro); text-decoration: underline; }

/* ================================================================ */
/* BOTÕES DE ESCOLHA (papel + cliente)                              */
/* ================================================================ */

.btn-escolha {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  background: white;
  border: 2px solid var(--cinza-linha);
  border-radius: 12px;
  cursor: pointer;
  margin-bottom: 12px;
  transition: all 0.2s;
  text-align: left;
  font-family: 'Inter', sans-serif;
}
.btn-escolha:hover {
  border-color: var(--azul-medio);
  background: var(--azul-suave);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px var(--sombra);
}

.btn-escolha-icone {
  display: none;
}

.btn-escolha-texto {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.btn-escolha-titulo {
  font-size: 18px;
  color: var(--azul-escuro);
  margin-bottom: 3px;
}

.btn-escolha-desc {
  font-size: 12px;
  color: var(--texto-medio);
  font-weight: 500;
}

/* ================================================================ */
/* MAPA HEADER                                                      */
/* ================================================================ */

.mapa-header { background: var(--azul-escuro); color: white; padding: 20px 20px 24px; }
.mapa-header .top-linha { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.mapa-header .saudacao {
  font-size: 20px;
  color: white;
  display: flex;
  align-items: center;
  gap: 8px;
}
.mapa-header .saudacao .sol-icone { width: 26px; height: 26px; vertical-align: middle; }
.mapa-header .configuracoes {
  background: rgba(255,255,255,0.15);
  border: none;
  width: 40px; height: 40px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 18px;
  color: white;
  position: relative;
}
.mapa-header .configuracoes:hover { background: rgba(255, 198, 39, 0.3); color: var(--amarelo-sol); }
.mapa-header .configuracoes.tem-notificacao::after {
  content: '';
  position: absolute;
  top: 3px; right: 3px;
  width: 10px; height: 10px;
  background: var(--erro);
  border-radius: 50%;
  border: 2px solid var(--azul-escuro);
}
.mapa-header .subtitulo-mapa {
  font-size: 12px;
  opacity: 0.85;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

/* ================================================================ */
/* NAVEGAÇÃO SEMANA                                                 */
/* ================================================================ */

.selecao-semana {
  background: white;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--cinza-linha);
}
.selecao-semana button.seta {
  background: var(--azul-suave);
  border: none;
  width: 36px; height: 36px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 16px;
  color: var(--azul-escuro);
  font-weight: 700;
}
.selecao-semana button.seta:hover { background: var(--azul-escuro); color: var(--amarelo-sol); }
.selecao-semana .info { text-align: center; flex: 1; }
.selecao-semana .info .semana { font-size: 15px; font-weight: 700; color: var(--azul-escuro); }
.selecao-semana .info .datas { font-size: 12px; color: var(--texto-medio); margin-top: 2px; }

.toggle-vista {
  display: flex;
  background: var(--azul-suave);
  border-radius: 8px;
  padding: 3px;
  margin: 12px 20px;
  gap: 3px;
}
.toggle-vista button {
  flex: 1;
  padding: 10px;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--texto-medio);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: 'Inter', sans-serif;
}
.toggle-vista button.ativo {
  background: var(--azul-escuro);
  color: white;
  box-shadow: 0 1px 3px var(--sombra);
}
.toggle-vista button:not(.ativo):hover { background: rgba(46, 110, 171, 0.15); }

.aviso-atualizacao { padding: 8px 20px; font-size: 11px; color: var(--texto-claro); text-align: center; }

/* ================================================================ */
/* RESUMO SEMANA                                                    */
/* ================================================================ */

.resumo-semana {
  background: white;
  border-radius: 12px;
  padding: 16px;
  margin: 0 16px 16px;
  display: flex;
  justify-content: space-around;
  box-shadow: 0 1px 3px var(--sombra);
  border-top: 3px solid var(--azul-medio);
}
.resumo-item { text-align: center; }
.resumo-item .valor {
  font-family: 'Righteous', cursive;
  font-size: 26px;
  color: var(--azul-escuro);
  line-height: 1;
}
.resumo-item .label {
  font-size: 11px;
  color: var(--texto-medio);
  margin-top: 4px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ================================================================ */
/* VISTA LISTA                                                      */
/* ================================================================ */

.vista-lista { padding: 0 16px 20px; }
.dia-grupo { margin-bottom: 20px; }
.dia-cabecalho { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; padding: 0 4px; }
.dia-cabecalho .nome { font-size: 16px; color: var(--azul-escuro); text-transform: uppercase; letter-spacing: 1px; }
.dia-cabecalho .data { font-size: 12px; color: var(--texto-medio); }
.dia-cabecalho .contagem {
  margin-left: auto;
  background: var(--amarelo-fundo);
  color: var(--laranja-quente);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 12px;
}
.dia-vazio {
  background: white;
  padding: 14px;
  border-radius: 10px;
  text-align: center;
  color: var(--texto-claro);
  font-size: 13px;
  font-style: italic;
  border: 1px dashed var(--cinza-linha);
}

.servico-cartao {
  background: white;
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 8px;
  box-shadow: 0 1px 3px var(--sombra);
  display: flex;
  align-items: center;
  gap: 14px;
  border-left: 4px solid var(--azul-medio);
}
.servico-cartao.tipo-limp { border-left-color: var(--verde-limpeza); }
.servico-cartao.tipo-enf { border-left-color: var(--rosa-enf); }

/* Serviço cancelado — texto riscado, tudo cinza */
.servico-cartao.cancelado {
  background: #FAFAFA;
  border-left-color: var(--cinza-cancelado);
  opacity: 0.85;
}
.servico-cartao.cancelado .servico-cliente,
.servico-cartao.cancelado .servico-horario .inicio,
.servico-cartao.cancelado .servico-horario .fim,
.servico-cartao.cancelado .servico-prestador {
  text-decoration: line-through;
  color: var(--texto-cancelado);
}
.servico-cartao.cancelado .servico-tipo {
  background: var(--cinza-cancelado);
  color: var(--texto-cancelado);
}

.servico-badge-cancelado {
  display: inline-block;
  background: var(--erro);
  color: white;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  margin-left: 6px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

/* Serviço sem prestador atribuído (vista familiar) */
.servico-cartao.sem-prestador {
  border-left-color: var(--amarelo-sol);
  background: #FFFDF7;
}

.servico-aviso-atribuir {
  display: block;
  color: var(--laranja-quente);
  font-size: 12px;
  font-style: italic;
  margin-top: 4px;
}

.servico-horario {
  flex-shrink: 0;
  width: 78px;
  text-align: center;
  padding-right: 12px;
  border-right: 1px solid var(--cinza-linha);
}
.servico-horario .inicio {
  font-family: 'Righteous', cursive;
  font-size: 18px;
  color: var(--azul-escuro);
  line-height: 1;
}
.servico-horario .fim { font-size: 11px; color: var(--texto-medio); margin-top: 4px; }
.servico-horario .duracao {
  font-size: 10px;
  color: var(--laranja-quente);
  margin-top: 6px;
  padding-top: 5px;
  border-top: 1px dotted var(--cinza-linha);
  font-weight: 700;
}

.servico-info { flex: 1; min-width: 0; }
.servico-cliente {
  font-size: 14px;
  font-weight: 600;
  color: var(--texto-escuro);
  margin-bottom: 5px;
  word-wrap: break-word;
}
.servico-tipo {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 10px;
  background: var(--azul-suave);
  color: var(--azul-escuro);
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.servico-tipo.limp { background: #E8F5E9; color: #558B2F; }
.servico-tipo.enf { background: #FCE4EC; color: #C2185B; }

.servico-prestador {
  font-size: 12px;
  color: var(--azul-medio);
  margin-top: 5px;
  font-weight: 600;
}
.servico-prestador::before {
  content: "👤 ";
  font-size: 11px;
}

.servico-notas {
  font-size: 11px;
  color: var(--texto-medio);
  margin-top: 5px;
  font-style: italic;
}

.servico-motivo {
  font-size: 12px;
  color: var(--erro);
  margin-top: 6px;
  font-weight: 600;
  background: #FEECEC;
  padding: 4px 8px;
  border-radius: 6px;
  display: inline-block;
}
.servico-motivo::before {
  content: "❌ ";
}

/* ================================================================ */
/* VISTA GRELHA                                                     */
/* ================================================================ */

.vista-grelha { padding: 0 16px 20px; }
.grelha-tabela {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 3px var(--sombra);
  font-size: 11px;
}
.grelha-cabec {
  display: grid;
  grid-template-columns: 40px repeat(7, 1fr);
  background: var(--azul-escuro);
  color: white;
  font-family: 'Righteous', cursive;
}
.grelha-cabec > div {
  padding: 8px 4px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.15);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.grelha-cabec > div:last-child { border-right: none; }
.grelha-cabec .dia-num {
  font-size: 9px;
  color: rgba(255,255,255,0.7);
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  margin-top: 2px;
}
.grelha-linha {
  display: grid;
  grid-template-columns: 40px repeat(7, 1fr);
  border-top: 1px solid var(--cinza-linha);
  min-height: 32px;
}
.grelha-hora {
  padding: 6px 4px;
  text-align: center;
  font-size: 10px;
  color: var(--texto-medio);
  border-right: 1px solid var(--cinza-linha);
  background: var(--fundo-app);
  font-weight: 600;
}
.grelha-cell { border-right: 1px solid var(--cinza-linha); min-height: 32px; padding: 2px; }
.grelha-cell:last-child { border-right: none; }
.grelha-cell.ocupado {
  background: #CFE5FA;
  color: var(--texto-escuro);
  font-size: 9px;
  font-weight: 600;
  padding: 3px 4px;
  line-height: 1.15;
  word-wrap: break-word;
  overflow-wrap: break-word;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.grelha-cell.ocupado-alt {
  background: #A2C6E8;
  color: var(--texto-escuro);
  font-size: 9px;
  font-weight: 600;
  padding: 3px 4px;
  line-height: 1.15;
  word-wrap: break-word;
  overflow-wrap: break-word;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.grelha-cell.cancelado {
  background: var(--cinza-cancelado);
  color: var(--texto-cancelado);
  text-decoration: line-through;
}

/* ================================================================ */
/* RODAPÉ                                                           */
/* ================================================================ */

.rodape {
  text-align: center;
  padding: 24px 20px;
  border-top: 1px solid var(--cinza-linha);
  margin-top: 10px;
  background: white;
}
.rodape-logo { max-width: 130px; height: auto; margin: 0 auto 10px; display: block; }
.rodape-texto { font-size: 11px; color: var(--texto-medio); line-height: 1.6; }
.rodape-texto a {
  color: var(--azul-medio);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px dotted var(--azul-medio);
}
.rodape-texto a:hover { color: var(--laranja-quente); border-bottom-color: var(--laranja-quente); }

/* ================================================================ */
/* MENU MODAL                                                       */
/* ================================================================ */

.menu-modal {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.5);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.menu-conteudo {
  background: white;
  border-radius: 12px;
  padding: 24px;
  max-width: 320px;
  width: 100%;
  box-shadow: 0 20px 40px rgba(0,0,0,0.3);
}
.menu-conteudo h3 { color: var(--azul-escuro); margin-bottom: 16px; text-align: center; }
.menu-item {
  display: block;
  width: 100%;
  padding: 12px 14px;
  margin-bottom: 8px;
  background: var(--azul-suave);
  color: var(--azul-escuro);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  font-family: 'Inter', sans-serif;
  text-align: left;
  font-weight: 500;
}
.menu-item:hover { background: var(--azul-escuro); color: var(--amarelo-sol); }
.menu-item-notificacao {
  background: var(--amarelo-fundo);
  color: var(--laranja-quente);
  font-weight: 700;
}
.menu-item-notificacao:hover { background: var(--laranja-quente); color: white; }
.menu-fechar {
  display: block;
  width: 100%;
  padding: 10px;
  margin-top: 12px;
  background: transparent;
  color: var(--texto-medio);
  border: 1px solid var(--cinza-linha);
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  font-family: 'Inter', sans-serif;
}

/* ================================================================ */
/* OVERLAY LOADING                                                  */
/* ================================================================ */

.overlay-loading {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(31, 78, 123, 0.7);
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
}
.spinner {
  width: 48px; height: 48px;
  border: 4px solid rgba(255,255,255,0.3);
  border-top-color: var(--amarelo-sol);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
.overlay-loading-conteudo { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.overlay-loading-msg { color: white; font-size: 13px; margin: 0; min-height: 16px; text-align: center; padding: 0 24px; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ================================================================ */
/* PAINEL DE ADMINISTRAÇÃO                                         */
/* ================================================================ */

.admin-cartoes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 0 16px 16px;
}
.admin-cartao {
  background: white;
  border-radius: 12px;
  padding: 14px 16px;
  box-shadow: 0 1px 3px var(--sombra);
  cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.15s;
}
.admin-cartao:hover { transform: translateY(-1px); box-shadow: 0 4px 12px var(--sombra); }
.admin-cartao.ativo { border-color: var(--azul-medio); }
.admin-cartao-largo { grid-column: span 2; }
.admin-cartao-label {
  font-size: 11px;
  color: var(--texto-medio);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
  margin-bottom: 4px;
}
.admin-cartao-valor {
  font-family: 'Righteous', cursive;
  font-size: 28px;
  line-height: 1;
}
.admin-cartao-valor.aprovado { color: var(--verde-limpeza); }
.admin-cartao-valor.pendente { color: var(--texto-claro); }
.admin-cartao-valor.assinalado { color: var(--laranja-quente); }
.admin-cartao-valor.naoaprovado { color: var(--erro); }

.admin-lista-detalhe {
  background: white;
  border-radius: 12px;
  margin: 0 16px 16px;
  overflow: hidden;
  box-shadow: 0 1px 3px var(--sombra);
}
.admin-lista-cabec, .admin-lista-linha {
  display: grid;
  grid-template-columns: 1.3fr 0.8fr 1.3fr;
  gap: 8px;
  padding: 10px 14px;
  font-size: 12px;
}
.admin-lista-cabec {
  color: var(--texto-claro);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
  border-bottom: 1px solid var(--cinza-linha);
}
.admin-lista-linha { border-top: 1px solid var(--cinza-linha); }
.admin-lista-linha:first-of-type { border-top: none; }
.admin-lista-motivo { color: var(--erro); font-size: 11px; }
.admin-lista-vazia {
  padding: 20px;
  text-align: center;
  color: var(--texto-claro);
  font-size: 13px;
  font-style: italic;
}

/* ================================================================ */
/* DISPONIBILIDADE / INDISPONIBILIDADE                              */
/* ================================================================ */

.btn-secundario {
  display: block;
  width: calc(100% - 32px);
  margin: 0 16px 16px;
  padding: 12px;
  background: transparent;
  border: 1.5px dashed var(--azul-medio);
  border-radius: 10px;
  color: var(--azul-medio);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  font-family: 'Inter', sans-serif;
}
.btn-secundario:hover { background: var(--azul-suave); }

.btn-apagar {
  width: 100%;
  padding: 12px;
  margin-top: 8px;
  background: transparent;
  border: 1.5px solid var(--erro);
  border-radius: 10px;
  color: var(--erro);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  font-family: 'Inter', sans-serif;
}
.btn-apagar:hover { background: #FEECEC; }

.disp-form {
  background: white;
  border-radius: 12px;
  padding: 16px;
  margin: 0 16px 16px;
  box-shadow: 0 1px 3px var(--sombra);
}
.disp-form-label {
  font-size: 12px;
  color: var(--texto-medio);
  font-weight: 600;
  margin: 0 0 8px;
}
.disp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.disp-chip {
  font-size: 12px;
  padding: 7px 12px;
  border-radius: 16px;
  border: 1.5px solid var(--cinza-linha);
  background: transparent;
  color: var(--texto-medio);
  cursor: pointer;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
}
.disp-chip.ativo { background: var(--azul-escuro); color: white; border-color: var(--azul-escuro); }

.disp-form-linha { display: flex; gap: 10px; }
.disp-form-linha .form-group { flex: 1; }

.disp-toggle-interno { margin: 0 0 14px; }

.disp-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--texto-escuro);
  margin-bottom: 14px;
  font-weight: 500;
}
.disp-check input { width: 18px; height: 18px; }

.disp-janela-item, .disp-indisp-item {
  display: flex;
  align-items: center;
  gap: 10px;
  background: white;
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 8px;
  box-shadow: 0 1px 3px var(--sombra);
}
.disp-janela-item { cursor: pointer; }
.disp-janela-item:hover { background: var(--azul-suave); }
.disp-janela-info, .disp-indisp-info { flex: 1; min-width: 0; }
.disp-janela-dias { font-size: 14px; font-weight: 600; color: var(--texto-escuro); margin-bottom: 3px; }
.disp-janela-horario { font-size: 12px; color: var(--texto-medio); }
.disp-chevron { color: var(--texto-claro); font-size: 18px; }

.disp-badge-categoria {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 12px;
  white-space: nowrap;
}
.categoria-ferias { background: var(--amarelo-fundo); color: var(--laranja-quente); }
.categoria-folga-fixa { background: var(--azul-suave); color: var(--azul-escuro); }
.categoria-folga-rotativa { background: #E8F5E9; color: #558B2F; }
.categoria-outro { background: #F3E5F5; color: #8E24AA; }

.disp-apagar-x {
  background: transparent;
  border: none;
  color: var(--texto-claro);
  font-size: 20px;
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
}
.disp-apagar-x:hover { color: var(--erro); }

.disp-vazio {
  background: white;
  padding: 16px;
  border-radius: 10px;
  text-align: center;
  color: var(--texto-claro);
  font-size: 13px;
  font-style: italic;
  border: 1px dashed var(--cinza-linha);
  margin-bottom: 8px;
}

.disp-confirmacao-texto {
  font-size: 13px;
  color: var(--azul-escuro);
  line-height: 1.5;
  margin: 0 0 12px;
}
#disp-confirmacao-funcionario {
  background: var(--azul-suave);
  border-radius: 12px;
  padding: 16px;
  margin: 0 16px 16px;
}

/* ================================================================ */
/* APROVAÇÃO — banner + estado por cartão (vista prestador)         */
/* ================================================================ */

#banner-aprovacao {
  background: var(--amarelo-fundo);
  border-radius: 12px;
  padding: 14px 16px;
  margin: 0 16px 16px;
}
.banner-aprovacao-texto {
  font-size: 13px;
  color: var(--laranja-quente);
  margin: 0 0 10px;
  font-weight: 600;
}

.servico-aprovacao {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
  flex-wrap: wrap;
}
.servico-badge-aprovacao {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 12px;
  white-space: nowrap;
}
.ap-pendente { background: #EEEEEE; color: var(--texto-medio); }
.ap-aprovado { background: #E8F5E9; color: var(--verde-limpeza); }
.ap-assinalado { background: var(--amarelo-fundo); color: var(--laranja-quente); }
.ap-atraso { background: #FEECEC; color: var(--erro); }

.servico-link-assinalar {
  font-size: 12px;
  color: var(--azul-medio);
  text-decoration: underline;
}
.servico-motivo-problema {
  font-size: 12px;
  color: var(--laranja-quente);
  font-style: italic;
}

/* ================================================================ */
/* ENFERMAGEM (v1.4)                                                */
/* ================================================================ */
.enf-tabs button { padding: 10px 4px; font-size: 12px; }
.enf-carregar { text-align: center; padding: 40px 16px; color: var(--texto-medio); font-size: 13px; }
.enf-spin { margin: 0 auto 12px; border-color: var(--azul-suave); border-top-color: var(--azul-escuro); }
.enf-so-meus { margin: 0 20px 12px; }
.enf-turno { cursor: pointer; }
.enf-turno.enf-meu { border-left-color: var(--amarelo-sol); background: var(--amarelo-fundo); box-shadow: 0 2px 8px rgba(255,198,39,.25); }
.enf-turno.enf-falta { border-left-color: var(--erro); background: #FFF5F5; }
.enf-turno.enf-passou { opacity: .6; }
.enf-eu { background: var(--amarelo-sol); color: var(--azul-escuro); font-size: 10px; padding: 1px 7px; border-radius: 8px; margin-left: 4px; }
.enf-a-atribuir { font-size: 12px; color: var(--erro); font-weight: 700; margin-top: 5px; }
.enf-hoje .dia-cabecalho .nome { color: var(--laranja-quente); }
.enf-modal-conteudo { max-width: 440px; max-height: 88vh; overflow-y: auto; }
.enf-modal-cab { display: flex; flex-direction: column; gap: 3px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--cinza-linha); }
.enf-modal-cab b { font-family: 'Righteous', 'Inter', sans-serif; font-weight: 400; font-size: 19px; color: var(--azul-escuro); }
.enf-modal-cab span { font-size: 13px; color: var(--texto-medio); }
.enf-desc { font-size: 13px; color: var(--texto-medio); margin-bottom: 14px; line-height: 1.5; }
.enf-campo, .enf-modal-conteudo select { width: 100%; min-height: 48px; padding: 10px 12px; border-radius: 10px; border: 1.5px solid var(--cinza-linha); font-size: 16px; background: #fff; font-family: 'Inter', sans-serif; }
.enf-info { margin: 0 16px 12px; }
.enf-disp-lista { padding: 0 16px 90px; }
.enf-disp-dia { display: grid; grid-template-columns: 52px 1fr; gap: 4px 10px; align-items: center; background: #fff; border-radius: 12px; padding: 10px 12px; margin-bottom: 8px; box-shadow: 0 1px 3px var(--sombra); }
.enf-disp-dia.fds { background: #FBFCFE; }
.enf-disp-data { text-align: center; }
.enf-disp-data b { display: block; font-family: 'Righteous', 'Inter', sans-serif; font-weight: 400; font-size: 22px; color: var(--azul-escuro); line-height: 1; }
.enf-disp-data span { font-size: 11px; color: var(--texto-medio); text-transform: uppercase; font-weight: 600; }
.enf-disp-dia.fds .enf-disp-data span { color: var(--laranja-quente); }
.enf-disp-chips { display: flex; gap: 6px; }
.enf-chip { flex: 1; min-height: 52px; border-radius: 10px; border: 1.5px solid var(--cinza-linha); background: #fff; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; font-family: 'Inter', sans-serif; }
.enf-chip small { font-size: 10px; color: var(--texto-medio); font-weight: 600; text-transform: uppercase; }
.enf-chip b { font-family: 'Righteous', 'Inter', sans-serif; font-weight: 400; font-size: 18px; color: var(--texto-claro); }
.enf-chip.vS { background: #E8F5E9; border-color: #7CB342; } .enf-chip.vS b { color: #2E7D32; }
.enf-chip.vN { background: #FFEBEE; border-color: #E57373; } .enf-chip.vN b { color: var(--erro); }
.enf-disp-outras { grid-column: 1 / -1; font-size: 11px; color: var(--azul-medio); padding-top: 4px; border-top: 1px dotted var(--cinza-linha); }
.enf-barra-fixa { position: sticky; bottom: 0; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: linear-gradient(transparent, var(--fundo-app) 30%); }
.enf-mat-linha { display: grid; grid-template-columns: 1fr 64px 48px; gap: 6px; }
.enf-mat-linha input { padding: 12px 10px; }
.enf-btn-add { border: none; border-radius: 10px; background: var(--amarelo-sol); color: var(--azul-escuro); font-size: 22px; font-weight: 700; cursor: pointer; }
.enf-mat-item { display: flex; justify-content: space-between; align-items: center; background: var(--amarelo-fundo); border-radius: 8px; padding: 8px 10px; margin-top: 6px; font-size: 13px; }
.enf-acoes { display: flex; gap: 8px; margin-top: 10px; }
.enf-acoes button { flex: 1; min-height: 42px; border-radius: 10px; font-weight: 700; font-size: 14px; cursor: pointer; font-family: 'Inter', sans-serif; }
.enf-btn-ok { background: var(--verde-limpeza); color: #fff; border: none; }
.enf-btn-nao { background: #fff; color: var(--erro); border: 1.5px solid var(--erro); }
.enf-aviso { background: #fff; border-radius: 10px; padding: 12px 14px; margin-bottom: 8px; font-size: 13px; font-weight: 600; box-shadow: 0 1px 3px var(--sombra); border-left: 4px solid var(--texto-claro); cursor: pointer; }
.enf-aviso.n-alto { border-left-color: var(--erro); color: var(--erro); }
.enf-aviso.n-medio { border-left-color: var(--laranja-quente); color: #B26A00; }
.enf-aviso.n-baixo { border-left-color: var(--amarelo-sol); color: var(--texto-medio); }