/* Acabamento compartilhado dos painéis de acompanhamento da home.
   Fundo, blur e borda vêm de .glass, como nos demais cards. */
.portal-refinado main .home-painel {
  min-width: 0;
  padding: 1.25rem;
  border-radius: var(--card-border-radius);
  color: var(--clr-dark);
}
.home-painel .home-painel-cabecalho {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  margin-bottom: 1rem;
}
.home-painel-cabecalho > div {
  min-width: 0;
  flex: 1;
}
.home-painel .home-painel-icone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.6rem;
  width: 2.6rem;
  height: 2.6rem;
  padding: 0;
  border-radius: 0.8rem;
  color: var(--clr-primary);
  background: color-mix(in srgb, var(--clr-primary) 10%, transparent);
  font-size: 1.4rem;
  line-height: 1;
}
.portal-refinado main .home-painel-cabecalho :is(h2, h3) {
  margin: 0;
  color: var(--clr-dark);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.home-painel .home-painel-cabecalho p {
  margin: 0.3rem 0 0;
  color: var(--clr-info-dark);
  font-size: 0.8rem;
  line-height: 1.5;
}
.home-painel :is(#listaPrazosProximos, #dashboardPedidosAtencao) {
  margin: 0;
  padding: 0;
}
.home-painel .dashboard-pedido,
.home-painel #listaPrazosProximos > li:not(.prazo-carregando) {
  border-top: 1px solid var(--clr-border);
}
.home-painel .dashboard-pedido,
.home-painel #listaPrazosProximos a {
  padding: 0.85rem 0.65rem;
  border-radius: 0.65rem;
}
.home-painel :is(.dashboard-pedido, #listaPrazosProximos a):hover {
  background: color-mix(in srgb, var(--clr-primary) 6%, transparent);
  color: var(--clr-dark);
}
.home-painel :is(.dashboard-pedido, #listaPrazosProximos a):focus-visible {
  outline: 2px solid var(--clr-primary);
  outline-offset: 2px;
}
.home-painel :is(.prazo-info strong, .dashboard-pedido strong) {
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.5;
}
.home-painel :is(.prazo-info small, .dashboard-pedido div:first-child > span) {
  margin-top: 0.25rem;
  color: var(--clr-info-dark);
  font-size: 0.75rem;
  line-height: 1.5;
}
.home-painel :is(.prazo-badge, .dashboard-badge) {
  padding: 0.3rem 0.55rem;
  border-radius: 0.5rem;
  font-size: 0.72rem;
  line-height: 1.4;
}
.home-painel :is(.dashboard-vazio, #estadoPrazosProximos) {
  padding: 0.75rem 0.65rem;
  color: var(--clr-info-dark);
  font-size: 0.82rem;
  line-height: 1.5;
}
.home-painel .prazo-carregando,
.home-painel #dashboardPedidosAtencao > see-spinner {
  display: flex;
  padding: 1rem 0;
}
.home-painel #carregarPrazosProximos {
  min-height: 2.5rem;
  padding: 0.6rem 0.85rem;
  border-radius: 0.65rem;
}
@media (max-width: 540px) {
  .portal-refinado main .home-painel { padding: 1rem; }
  .home-painel .home-painel-cabecalho { gap: 0.65rem; }
}

#datasComemorativas.home-painel { margin: 1.5rem 0; }
#datasComemorativas .datas-comemorativas-lista { list-style: none; gap: 0; margin: 0; padding: 0; }
#datasComemorativas .data-comemorativa-item {
  padding: .85rem .65rem;
  gap: .8rem;
  border: 0;
  border-top: 1px solid var(--clr-border);
  border-radius: .65rem;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: none;
  transition: background-color 160ms ease;
}
#datasComemorativas .data-comemorativa-item:hover {
  background: color-mix(in srgb, var(--clr-primary) 6%, transparent);
  box-shadow: none;
  transform: none;
}
#datasComemorativas .data-comemorativa-icone {
  width: 1.35rem;
  height: 1.35rem;
  background: transparent;
  color: var(--clr-dark-variant);
  font-size: 1.35rem;
  line-height: 1;
}
#datasComemorativas .data-comemorativa-conteudo strong { font-size: .85rem; line-height: 1.5; }
#datasComemorativas .data-comemorativa-conteudo span { font-size: .75rem; margin-top: .25rem; }
#datasComemorativas .datas-comemorativas-estado { padding: .75rem .65rem; color: var(--clr-info-dark); font-size: .82rem; line-height: 1.5; }

/* Reflexo curto, seguido de uma pausa; respeita a redução de movimento. */
@media (prefers-reduced-motion: no-preference) {
  @supports (background-clip: text) or (-webkit-background-clip: text) {
    #boasVindas.saudacao-dashboard:not(:empty) {
      width: fit-content;
      background-image: linear-gradient(105deg, var(--clr-dark) 34%, #007aff 48%, var(--clr-dark) 64%);
      background-size: 400% 100%;
      background-clip: text;
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      animation: saudacao-brilho 9s ease-in-out 800ms infinite both;
    }
  }
}
@keyframes saudacao-brilho {
  0% { background-position: 100% 0; }
  30%, 100% { background-position: 0% 0; }
}
@media print {
  #boasVindas.saudacao-dashboard { background: none; -webkit-text-fill-color: currentColor; animation: none; }
}
@media (prefers-reduced-motion: reduce) {
  #datasComemorativas .data-comemorativa-item { transition: none; }
}



/* Datas comemorativas e tarefas lado a lado, sem afetar os demais painéis. */
.home-paineis-dupla { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; margin:1.5rem 0; align-items:stretch; }
.home-paineis-dupla #datasComemorativas.home-painel { margin:0; }
#tarefasDashboard { display:flex; flex-direction:column; min-width:0; }
#tarefasDashboardLista { flex:1; }
.tarefas-dashboard-lista { list-style:none; padding:0; margin:0; }
.tarefas-dashboard-item { display:flex; align-items:flex-start; gap:.65rem; padding:.7rem .35rem; border-top:1px solid var(--clr-border); }
.tarefas-dashboard-item input { flex:0 0 auto; width:1.1rem; height:1.1rem; margin-top:.2rem; accent-color:var(--clr-primary); cursor:pointer; }
.tarefas-dashboard-item div { min-width:0; }
.tarefas-dashboard-item strong { display:block; font-size:.85rem; overflow-wrap:anywhere; }
.tarefas-dashboard-item small { display:block; font-size:.75rem; margin-top:.2rem; color:var(--clr-info-dark); }
.tarefas-dashboard-item.atrasada small { color:var(--clr-danger); font-weight:700; }
.tarefas-dashboard-estado { font-size:.85rem; color:var(--clr-info-dark); padding:.75rem .35rem; }
.tarefas-dashboard-ver-todas { display:inline-flex; align-items:center; gap:.25rem; width:fit-content; margin-top:1rem; font-size:.82rem; font-weight:600; color:var(--clr-primary); text-decoration:none; }
.tarefas-dashboard-ver-todas .material-symbols-outlined { font-size:1.1rem; }
@media(max-width:800px) { .home-paineis-dupla { grid-template-columns:minmax(0,1fr); } }


/* Evita que estilos globais de inputs escondam o checkbox na dashboard. */
#tarefasDashboard .tarefas-dashboard-item input[type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-grid !important;
  place-content: center;
  position: static !important;
  visibility: visible !important;
  opacity: 1 !important;
  flex: 0 0 19px !important;
  width: 19px !important;
  height: 19px !important;
  min-width: 19px !important;
  min-height: 19px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  border: 2px solid var(--clr-primary) !important;
  border-radius: 5px !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer;
}
#tarefasDashboard .tarefas-dashboard-item input[type="checkbox"]::before {
  content: "";
  width: 10px;
  height: 6px;
  border: solid #fff;
  border-width: 0 0 2px 2px;
  transform: rotate(-45deg) scale(0);
  transition: transform .1s ease;
}
#tarefasDashboard .tarefas-dashboard-item input[type="checkbox"]:checked {
  background: var(--clr-primary) !important;
}
#tarefasDashboard .tarefas-dashboard-item input[type="checkbox"]:checked::before {
  transform: rotate(-45deg) scale(1);
}
#tarefasDashboard .tarefas-dashboard-item input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--clr-primary);
  outline-offset: 3px;
}

/* Painel de tarefas ao lado dos atalhos, com rolagem interna. */
.home-dashboard-topo #tarefasDashboard { margin:0; height:clamp(230px, 29vw, 300px); min-height:0; overflow:hidden; }
.home-dashboard-topo #tarefasDashboardLista { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:thin; }
.home-dashboard-topo #tarefasDashboard .home-painel-cabecalho { flex:0 0 auto; }
.home-dashboard-topo #tarefasDashboard .tarefas-dashboard-ver-todas { flex:0 0 auto; margin-top:.6rem; }
.home-paineis-dupla:has(> #datasComemorativas:only-child) { grid-template-columns:minmax(0,1fr); }

/* Mesma altura compacta dos atalhos, preservando a lista rolável. */
.home-dashboard-topo #tarefasDashboard { height:clamp(220px, 25vw, 270px); }
@media(max-width:540px) {
  .home-dashboard-topo #tarefasDashboard { height:270px; }
}

/* Painéis sem contorno: a separação vem da superfície e do espaçamento. */
.portal-refinado main .home-painel,
.portal-refinado main .dashboard-fila.home-painel {
  border: 0;
  box-shadow: 0 3px 12px rgba(30, 49, 74, 0.045);
}


/* Home mobile: ritmo vertical único, sem somar gap do grid e margens dos painéis. */
@media (max-width: 786px) {
  .portal-refinado main:has(#dashboardAtendimento) {
    row-gap: 0;
    align-content: start;
  }

  .portal-refinado main:has(#dashboardAtendimento) > .home-dashboard-topo,
  .portal-refinado main:has(#dashboardAtendimento) > .home-paineis-dupla,
  .portal-refinado main:has(#dashboardAtendimento) > #dashboardGraficos,
  .portal-refinado main:has(#dashboardAtendimento) > #dashboardAtendimento {
    margin-top: 1.25rem;
    margin-bottom: 0;
  }

  .portal-refinado main:has(#dashboardAtendimento) > .home-paineis-dupla {
    gap: 1.25rem;
  }

  .portal-refinado main:has(#dashboardAtendimento) > .home-paineis-dupla #datasComemorativas {
    margin: 0;
  }

  .portal-refinado main:has(#dashboardAtendimento) > #dashboardAtendimento .dashboard-fila {
    margin-top: 1rem;
  }

  .portal-refinado:has(#dashboardAtendimento) .right {
    margin-top: 0;
  }

  .portal-refinado:has(#dashboardAtendimento) .right > .right-widget {
    margin-top: 1.25rem;
    margin-bottom: 0;
  }

  .portal-refinado:has(#dashboardAtendimento) .right > .equipe-online {
    margin-top: 1.25rem;
  }
}

/* Calendário: mesmo acabamento leve dos outros widgets; controles mantêm bordas. */
.portal-refinado .right .calendario > .box.glass {
  border: 0;
  box-shadow: 0 3px 12px rgba(30, 49, 74, 0.045);
}


/* No celular, a barra lateral segue imediatamente o conteúdo principal.
   Evita que linhas do grid externo reservem altura desnecessária. */
@media (max-width: 786px) {
  body.portal-refinado:has(#dashboardAtendimento) .container {
    display: block;
  }

  body.portal-refinado:has(#dashboardAtendimento) .container > main {
    margin-bottom: 0;
    padding-bottom: 0;
  }

  body.portal-refinado:has(#dashboardAtendimento) .container > .right {
    display: flow-root;
    margin: 0;
    padding-top: 1.25rem;
  }

  body.portal-refinado:has(#dashboardAtendimento) .container > .right > .equipe-online {
    margin-top: 0;
  }
}
