:root {
  --nutri-wine: #62142d;
  --nutri-wine-dark: #501125;
  --nutri-wine-soft: #f8edf2;
  --nutri-olive: #818c41;
  --nutri-olive-dark: #5f692f;
  --nutri-olive-soft: #f3f5e8;
  --nutri-gray: #a7a7aa;
  --nutri-dark: #251820;
  --nutri-soft: #fbf8f6;
  --nutri-border: #eadde2;
  --bs-success: var(--nutri-olive);
  --bs-success-rgb: 129, 140, 65;
}


html {
  scroll-behavior: smooth;
}

.landing-anchor-section {
  scroll-margin-top: 96px;
}

.landing-nav-link {
  border: 1px solid transparent;
  border-radius: 999px;
  padding-left: .85rem !important;
  padding-right: .85rem !important;
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.landing-nav-link:hover,
.landing-nav-link.active-menu {
  color: var(--nutri-wine) !important;
  background: rgba(243, 245, 232, .95);
  border-color: rgba(129, 140, 65, .28);
  transform: translateY(-1px);
}

body {
  background: linear-gradient(180deg, #fff 0%, #fbf8f6 45%, #f3f5e8 100%);
  color: var(--nutri-dark);
}

main {
  min-height: calc(100vh - 82px);
}

.navbar {
  border-color: rgba(98, 20, 45, .12) !important;
  box-shadow: 0 .5rem 1.4rem rgba(80, 17, 37, .05);
}

.navbar-brand {
  letter-spacing: -0.02em;
}

.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  min-width: 0;
  color: var(--nutri-wine) !important;
  text-decoration: none;
}

.brand-logo {
  width: 48px;
  height: 54px;
  object-fit: contain;
  flex: 0 0 auto;
  filter: drop-shadow(0 .35rem .65rem rgba(98, 20, 45, .12));
}

.brand-copy {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}

.brand-copy strong {
  color: var(--nutri-wine);
  font-size: 1.08rem;
  font-weight: 850;
}

.brand-copy small {
  color: var(--nutri-olive);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.nav-link {
  color: #55414b;
  font-weight: 650;
}

.nav-link:hover,
.nav-link:focus {
  color: var(--nutri-wine);
}

.hero-section {
  background:
    radial-gradient(circle at 12% 0%, rgba(129, 140, 65, .22), transparent 32%),
    radial-gradient(circle at 86% 10%, rgba(98, 20, 45, .14), transparent 28%),
    linear-gradient(135deg, #fff 0%, #fbf8f6 48%, #f3f5e8 100%);
  border-bottom: 1px solid var(--nutri-border);
}

.hero-card,
.card,
.metric-card,
.mini-card,
.empty-state,
.evolution-card,
.evolution-item {
  border-radius: 22px;
}

.hero-card {
  background: rgba(255, 255, 255, .9);
  border: 1px solid var(--nutri-border);
  padding: 2rem;
  box-shadow: 0 1.4rem 3rem rgba(80, 17, 37, .08);
}

.hero-logo {
  max-width: 310px;
  width: 100%;
  display: block;
  margin: 0 auto 1.4rem;
  border-radius: 18px;
}

.login-logo {
  max-width: 230px;
  width: 100%;
  display: block;
  margin: 0 auto 1.25rem;
}

.eyebrow {
  color: var(--nutri-wine);
  text-transform: uppercase;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .12em;
}

.feature-pill {
  background: linear-gradient(135deg, var(--nutri-olive-soft), #fff);
  border: 1px solid rgba(129, 140, 65, .25);
  border-radius: 16px;
  padding: 1rem;
  font-weight: 800;
  text-align: center;
  color: var(--nutri-olive-dark);
}

.appointment-card {
  border: 1px solid var(--nutri-border);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.appointment-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 1rem 2rem rgba(80, 17, 37, .09);
  border-color: rgba(98, 20, 45, .22);
}

.slot-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: var(--nutri-wine-soft);
  color: var(--nutri-wine);
  font-size: 1.4rem;
}

.page-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.metric-card,
.mini-card {
  background: #fff;
  border: 1px solid var(--nutri-border);
  padding: 1.25rem;
  box-shadow: 0 .4rem 1rem rgba(80, 17, 37, .05);
}

.metric-card span,
.mini-card span {
  display: block;
  color: #75666d;
  font-weight: 650;
  margin-bottom: .5rem;
}

.metric-card strong {
  font-size: 2rem;
  line-height: 1;
  color: var(--nutri-wine);
}

.mini-card strong {
  font-size: 1.4rem;
  color: var(--nutri-olive-dark);
}

.empty-state {
  background: #fff;
  border: 1px dashed rgba(98, 20, 45, .24);
  padding: 3rem 1.5rem;
  text-align: center;
}

.sticky-card {
  position: sticky;
  top: 100px;
}

.status-agendada,
.status-disponivel {
  background: var(--nutri-olive-soft);
  color: var(--nutri-olive-dark);
}

.status-realizada,
.status-reservado {
  background: var(--nutri-wine-soft);
  color: var(--nutri-wine);
}

.status-cancelada,
.status-bloqueado {
  background: #ffe7e7;
  color: #9d2424;
}

.form-section-title {
  font-weight: 850;
  color: var(--nutri-wine);
  margin: 1.6rem 0 .8rem;
  padding-bottom: .35rem;
  border-bottom: 1px solid var(--nutri-border);
}

.evolution-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  border: 1px solid var(--nutri-border);
  background: #fff;
  padding: 1rem;
}

.evolution-item {
  border: 1px solid rgba(129, 140, 65, .25);
  background: var(--nutri-olive-soft);
  padding: 1rem;
}

.evolution-item span,
.evolution-item small {
  display: block;
}

.data-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
}

.data-grid div,
.text-block-grid div {
  background: #fffdfc;
  border: 1px solid var(--nutri-border);
  border-radius: 14px;
  padding: .9rem;
}

.data-grid span,
.text-block-grid span {
  display: block;
  color: #75666d;
  font-size: .85rem;
  font-weight: 750;
  margin-bottom: .25rem;
}

.data-grid strong {
  font-size: 1.05rem;
}

.text-block-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
}

.text-block-grid p {
  margin-bottom: 0;
  white-space: pre-wrap;
}


.whatsapp-float-icon {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1040;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.whatsapp-icon-circle {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: #25d366;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 .9rem 1.8rem rgba(80, 17, 37, .22);
  border: 3px solid rgba(255, 255, 255, .92);
  transition: transform .25s ease, box-shadow .25s ease;
}

.whatsapp-icon-svg {
  width: 36px;
  height: 36px;
  fill: #fff;
}

.whatsapp-tooltip {
  position: absolute;
  right: 74px;
  bottom: 7px;
  width: min(330px, calc(100vw - 115px));
  background: rgba(255, 255, 255, .97);
  color: var(--nutri-wine);
  border: 1px solid rgba(129, 140, 65, .35);
  border-radius: 22px 22px 4px 22px;
  padding: .85rem 1rem;
  font-family: var(--font-display);
  font-size: 1.05rem;
  line-height: 1.25;
  box-shadow: 0 .8rem 1.7rem rgba(80, 17, 37, .18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px) scale(.98);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
  pointer-events: none;
}

.whatsapp-tooltip::after {
  content: "";
  position: absolute;
  right: -8px;
  bottom: 18px;
  width: 16px;
  height: 16px;
  background: rgba(255, 255, 255, .97);
  border-right: 1px solid rgba(129, 140, 65, .35);
  border-bottom: 1px solid rgba(129, 140, 65, .35);
  transform: rotate(-45deg);
}

.whatsapp-float-icon:hover .whatsapp-icon-circle {
  transform: translateY(-3px) scale(1.04);
  box-shadow: 0 1.1rem 2.1rem rgba(80, 17, 37, .25);
}

.whatsapp-float-icon:hover .whatsapp-tooltip,
.whatsapp-float-icon:focus-visible .whatsapp-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

@media (max-width: 576px) {
  .whatsapp-float-icon {
    right: 14px;
    bottom: 14px;
  }

  .whatsapp-icon-circle {
    width: 56px;
    height: 56px;
  }

  .whatsapp-icon-svg {
    width: 32px;
    height: 32px;
  }

  .whatsapp-tooltip {
    right: 66px;
    width: min(280px, calc(100vw - 94px));
    font-size: .98rem;
    padding: .75rem .9rem;
  }
}

.form-control,
.form-select {
  border-color: #e0d2d7;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--nutri-olive);
  box-shadow: 0 0 0 .2rem rgba(129, 140, 65, .18);
}

.btn-success {
  --bs-btn-bg: var(--nutri-wine);
  --bs-btn-border-color: var(--nutri-wine);
  --bs-btn-hover-bg: var(--nutri-wine-dark);
  --bs-btn-hover-border-color: var(--nutri-wine-dark);
  --bs-btn-active-bg: var(--nutri-wine-dark);
  --bs-btn-active-border-color: var(--nutri-wine-dark);
  --bs-btn-disabled-bg: #8b596c;
  --bs-btn-disabled-border-color: #8b596c;
}

.btn-outline-success {
  --bs-btn-color: var(--nutri-olive-dark);
  --bs-btn-border-color: var(--nutri-olive);
  --bs-btn-hover-bg: var(--nutri-olive);
  --bs-btn-hover-border-color: var(--nutri-olive);
  --bs-btn-active-bg: var(--nutri-olive-dark);
  --bs-btn-active-border-color: var(--nutri-olive-dark);
}

.text-success {
  color: var(--nutri-olive-dark) !important;
}

.text-bg-success {
  background-color: var(--nutri-olive) !important;
  color: #fff !important;
}

.badge.text-bg-light {
  background: var(--nutri-wine-soft) !important;
  color: var(--nutri-wine) !important;
}

.card {
  border-color: var(--nutri-border);
}

.table thead th {
  color: var(--nutri-wine);
}

.modal-content {
  border-radius: 22px;
  border-color: var(--nutri-border);
}

.modal-header {
  border-bottom-color: var(--nutri-border);
}

.modal-footer {
  border-top-color: var(--nutri-border);
}

.bg-light {
  background-color: var(--nutri-soft) !important;
}

@media (max-width: 768px) {
  .page-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .sticky-card {
    position: static;
  }

  .data-grid,
  .text-block-grid {
    grid-template-columns: 1fr;
  }

  .evolution-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .hero-card {
    padding: 1.25rem;
  }

  .hero-logo {
    max-width: 250px;
  }

  .brand-copy strong {
    font-size: .98rem;
  }

  .brand-copy small {
    font-size: .62rem;
    letter-spacing: .18em;
  }

  .brand-logo {
    width: 42px;
    height: 48px;
  }

  .table {
    min-width: 760px;
  }
}

.patient-avatar {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  object-fit: cover;
  border: 2px solid var(--nutri-olive-soft);
  box-shadow: 0 .35rem .7rem rgba(80, 17, 37, .08);
  flex: 0 0 auto;
}

.patient-avatar-placeholder,
.profile-photo-placeholder {
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--nutri-wine-soft), var(--nutri-olive-soft));
  color: var(--nutri-wine);
  font-weight: 900;
}

.profile-edit-header {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1rem;
  border: 1px solid var(--nutri-border);
  border-radius: 20px;
  background: #fffdfc;
}

.profile-photo-preview {
  width: 120px;
  height: 120px;
  border-radius: 24px;
  object-fit: cover;
  border: 3px solid var(--nutri-olive-soft);
  box-shadow: 0 .8rem 1.5rem rgba(80, 17, 37, .08);
  flex: 0 0 auto;
  font-size: 2.8rem;
}

.patients-table {
  min-width: 1180px;
}

.evolution-thumbs {
  display: flex;
  gap: .35rem;
  align-items: center;
}

.evolution-thumbs img {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow: 0 .35rem .7rem rgba(80, 17, 37, .12);
}

.evolution-photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.evolution-photo-grid a {
  display: block;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--nutri-border);
  background: #fff;
}

.evolution-photo-grid img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  display: block;
}

.profile-metric .patient-avatar {
  width: 44px;
  height: 44px;
}

@media (max-width: 768px) {
  .profile-edit-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .profile-photo-preview {
    width: 100px;
    height: 100px;
  }

  .evolution-photo-grid {
    grid-template-columns: 1fr;
  }

  .evolution-photo-grid img {
    height: 230px;
  }
}

.meal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}

.meal-card {
  border: 1px solid var(--nutri-border);
  border-radius: 20px;
  padding: 1rem;
  background: #fffdfc;
  box-shadow: 0 .7rem 1.4rem rgba(80, 17, 37, .06);
}

.meal-badge {
  display: inline-flex;
  align-items: center;
  padding: .28rem .65rem;
  border-radius: 999px;
  background: var(--nutri-olive-soft);
  color: var(--nutri-wine);
  font-weight: 800;
  font-size: .78rem;
}

.meal-text {
  white-space: pre-line;
  color: #3d3035;
}

.compact-empty {
  padding: 2rem;
  min-height: auto;
}

.only-print {
  display: none;
}

.print-actions {
  display: flex;
  justify-content: flex-end;
  gap: .6rem;
  margin: 1rem 0;
}

.print-actions button {
  border: 1px solid var(--nutri-olive);
  background: var(--nutri-wine);
  color: #fff;
  border-radius: 999px;
  padding: .55rem 1rem;
  font-weight: 800;
}

.print-body {
  background: #f6f1ee;
  color: #251820;
}

.print-page {
  max-width: 980px;
  margin: 1.2rem auto;
  background: #fff;
  padding: 1.2rem;
  border-radius: 18px;
  box-shadow: 0 1rem 2rem rgba(80, 17, 37, .08);
}

.print-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  border-bottom: 2px solid var(--nutri-border);
  padding-bottom: .85rem;
  margin-bottom: .85rem;
}

.print-header img {
  width: 138px;
  max-height: 88px;
  object-fit: contain;
}

.print-header h1 {
  color: var(--nutri-wine);
  font-size: 1.5rem;
  margin: 0 0 .25rem;
}

.print-header p {
  margin: .08rem 0;
  color: #54444b;
}

.print-patient-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .5rem;
  margin-bottom: .85rem;
  font-size: .86rem;
}

.print-patient-summary span,
.print-data-grid div,
.print-text-grid div {
  border: 1px solid var(--nutri-border);
  border-radius: 12px;
  padding: .55rem;
  background: #fffdfc;
}

.print-meal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
}

.print-meal-card {
  border: 1px solid var(--nutri-border);
  border-radius: 14px;
  padding: .65rem;
  background: #fffdfc;
  break-inside: avoid;
}

.print-meal-title {
  display: flex;
  justify-content: space-between;
  gap: .5rem;
  align-items: center;
  color: var(--nutri-wine);
  font-size: 1rem;
}

.print-meal-card h2 {
  font-size: 1rem;
  margin: .35rem 0;
  color: var(--nutri-olive-dark);
}

.print-meal-card p {
  font-size: .84rem;
  white-space: pre-line;
  margin: .25rem 0;
}

.print-section {
  margin-top: .8rem;
  break-inside: avoid;
}

.print-section h2 {
  font-size: 1rem;
  color: var(--nutri-wine);
  border-bottom: 1px solid var(--nutri-border);
  padding-bottom: .25rem;
  margin-bottom: .5rem;
}

.print-data-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .45rem;
}

.print-data-grid span,
.print-text-grid span {
  display: block;
  font-size: .76rem;
  color: #75666d;
  font-weight: 800;
}

.print-data-grid strong {
  font-size: .9rem;
}

.print-text-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem;
}

.print-text-grid p {
  font-size: 1rem;
  white-space: pre-wrap;
  margin: .2rem 0 0;
}

.print-photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .5rem;
}

.print-photo-grid img {
  width: 100%;
  height: 170px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid var(--nutri-border);
}

.print-footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid var(--nutri-border);
  margin-top: 1rem;
  padding-top: .6rem;
  font-size: .76rem;
  color: #75666d;
}

@media print {
  @page {
    size: A4;
    margin: 8mm;
  }

  body,
  .print-body {
    background: #fff !important;
  }

  .no-print,
  .navbar,
  .whatsapp-float-icon,
  .alert,
  .btn,
  form.no-print {
    display: none !important;
  }

  .only-print {
    display: flex !important;
  }

  .print-page {
    max-width: none;
    margin: 0;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .print-header {
    padding-bottom: .45rem;
    margin-bottom: .55rem;
  }

  .print-header img {
    width: 110px;
    max-height: 70px;
  }

  .print-header h1 {
    font-size: 1.15rem;
  }

  .print-header p,
  .print-patient-summary,
  .print-meal-card p,
  .print-text-grid p {
    font-size: .68rem;
  }

  .print-meal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .32rem;
  }

  .print-meal-card {
    padding: .38rem;
    border-radius: 8px;
  }

  .print-meal-card h2,
  .print-section h2 {
    font-size: .78rem;
    margin: .18rem 0;
  }

  .print-data-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .25rem;
  }

  .print-data-grid div,
  .print-text-grid div,
  .print-patient-summary span {
    padding: .28rem;
    border-radius: 6px;
  }

  .print-data-grid span,
  .print-text-grid span {
    font-size: .62rem;
  }

  .print-data-grid strong {
    font-size: .68rem;
  }

  .print-text-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem;
  }

  .print-section {
    margin-top: .35rem;
  }

  .print-photo-grid img {
    height: 115px;
  }

  .print-footer {
    font-size: .62rem;
    margin-top: .45rem;
    padding-top: .3rem;
  }

  main {
    min-height: auto;
  }

  .container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
  }

  .page-heading,
  .col-lg-4,
  .sticky-card {
    display: none !important;
  }

  .col-lg-8,
  .row,
  .card,
  .card-body {
    width: 100% !important;
    max-width: none !important;
    display: block !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
  }

  .meal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem;
  }

  .meal-card {
    padding: .45rem;
    border-radius: 8px;
    box-shadow: none;
    break-inside: avoid;
  }

  .meal-card .form-section-title {
    margin: .4rem 0 .2rem;
    font-size: .68rem;
  }

  .meal-card h3,
  .meal-text,
  .meal-card p,
  .small {
    font-size: .68rem !important;
  }

  .meal-badge {
    font-size: .62rem;
    padding: .15rem .35rem;
  }
}

.print-document-header {
  align-items: center;
  gap: 1rem;
  border-bottom: 2px solid var(--nutri-border);
  padding-bottom: .55rem;
  margin-bottom: .7rem;
}

.print-document-header img {
  width: 110px;
  max-height: 70px;
  object-fit: contain;
}

.print-document-header h1 {
  color: var(--nutri-wine);
  font-size: 1.1rem;
  margin: 0;
}

.print-document-header p {
  margin: .1rem 0 0;
  font-size: .72rem;
}

.patient-avatar-lg {
  width: 72px;
  height: 72px;
  font-size: 1.8rem;
}

.schedule-mini-card {
  border: 1px solid var(--nutri-border);
  background: var(--nutri-cream);
  border-radius: 14px;
  padding: .7rem .8rem;
  display: flex;
  flex-direction: column;
  gap: .1rem;
}

.schedule-mini-card strong {
  color: var(--nutri-wine);
}

.schedule-mini-card span,
.schedule-mini-card small {
  color: var(--nutri-muted);
}


.schedule-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding: .55rem;
  border: 1px solid var(--nutri-border);
  border-radius: 16px;
  background: var(--nutri-cream);
}

.slot-type-online {
  background: var(--nutri-wine-soft) !important;
  color: var(--nutri-wine) !important;
}

.slot-type-presencial {
  background: var(--nutri-olive-soft) !important;
  color: var(--nutri-olive-dark) !important;
}

.schedule-slot-grid {
  max-height: 520px;
  overflow-y: auto;
  padding-right: .25rem;
}

.schedule-slot-option {
  width: 100%;
  cursor: pointer;
}

.schedule-slot-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.schedule-slot-option span {
  display: flex;
  flex-direction: column;
  gap: .18rem;
  min-height: 120px;
  padding: 1rem;
  border: 1px solid var(--nutri-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 .7rem 1.4rem rgba(80, 17, 37, .05);
  transition: .2s ease;
}

.schedule-slot-option strong {
  color: var(--nutri-wine);
  font-size: 1rem;
}

.schedule-slot-option small {
  color: var(--nutri-muted);
}

.schedule-slot-option em {
  width: fit-content;
  font-style: normal;
  font-size: .74rem;
  font-weight: 800;
  color: var(--nutri-wine);
  background: var(--nutri-olive-soft);
  border-radius: 999px;
  padding: .18rem .55rem;
}

.schedule-slot-option:hover span,
.schedule-slot-option input:checked + span {
  border-color: var(--nutri-olive);
  box-shadow: 0 1rem 1.8rem rgba(80, 17, 37, .1);
  transform: translateY(-2px);
}

.schedule-slot-option input:checked + span {
  outline: 3px solid rgba(129, 140, 65, .18);
}

.empty-state {
  border: 1px dashed var(--nutri-border);
  border-radius: 20px;
  background: var(--nutri-cream);
}

.calendar-month-badge {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .15rem;
  border: 1px solid rgba(129, 140, 65, .28);
  border-radius: 18px;
  background: #fff;
  padding: .8rem 1rem;
  box-shadow: 0 .7rem 1.3rem rgba(80, 17, 37, .06);
  min-width: 190px;
}

.calendar-month-badge span {
  color: #75666d;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.calendar-month-badge strong {
  color: var(--nutri-wine);
  font-size: 1.05rem;
  text-transform: capitalize;
}

.calendar-wrapper {
  background: rgba(255, 255, 255, .92);
  border: 1px solid var(--nutri-border);
  border-radius: 26px;
  box-shadow: 0 1.2rem 2.5rem rgba(80, 17, 37, .08);
  padding: 1.25rem;
}

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  align-items: center;
  justify-content: flex-end;
  margin-bottom: 1rem;
  color: #65545d;
  font-size: .92rem;
  font-weight: 700;
}

.legend-dot {
  display: inline-block;
  width: .8rem;
  height: .8rem;
  border-radius: 50%;
  margin-right: .35rem;
  vertical-align: -1px;
}

.legend-available { background: var(--nutri-olive); }
.legend-unavailable { background: #f6b5b5; }
.legend-selected { background: var(--nutri-wine); }

.booking-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .65rem;
}

.calendar-weekday {
  color: var(--nutri-wine);
  font-weight: 850;
  font-size: 1rem;
  text-transform: uppercase;
  text-align: center;
  letter-spacing: .05em;
  padding: .35rem .15rem;
}

.calendar-day {
  position: relative;
  min-height: 92px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: .55rem;
  border-radius: 20px;
  padding: .85rem;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  border: 1px solid transparent;
}

.calendar-day:hover {
  transform: translateY(-2px);
  box-shadow: 0 .85rem 1.45rem rgba(80, 17, 37, .12);
}

.calendar-day-number {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  font-weight: 900;
  font-size: 1.05rem;
}

.calendar-day small {
  font-size: .74rem;
  font-weight: 850;
  line-height: 1.15;
}

.calendar-available {
  background: linear-gradient(135deg, rgba(129, 140, 65, .18), rgba(243, 245, 232, .98));
  border-color: rgba(129, 140, 65, .34);
  color: var(--nutri-olive-dark);
}

.calendar-available .calendar-day-number {
  background: var(--nutri-olive);
  color: #fff;
}

.calendar-unavailable {
  background: linear-gradient(135deg, #fff1f1, #ffe6e6);
  border-color: #ffd0d0;
  color: #9d2424;
}

.calendar-unavailable .calendar-day-number {
  background: #ffd4d4;
  color: #8b2020;
}

.calendar-selected {
  border-color: var(--nutri-wine) !important;
  outline: 3px solid rgba(98, 20, 45, .15);
  box-shadow: 0 .9rem 1.8rem rgba(98, 20, 45, .12);
}

.calendar-selected::after {
  content: 'Selecionada';
  position: absolute;
  top: .55rem;
  right: .55rem;
  border-radius: 999px;
  background: var(--nutri-wine);
  color: #fff;
  font-size: .62rem;
  font-weight: 850;
  padding: .18rem .45rem;
}

.calendar-empty {
  min-height: 92px;
  background: transparent;
  border: 0;
}

.calendar-help-state {
  background: linear-gradient(135deg, #fff, var(--nutri-olive-soft));
}

@media (max-width: 767.98px) {
  .calendar-wrapper {
    padding: .85rem;
    border-radius: 20px;
  }

  .calendar-legend {
    justify-content: flex-start;
    font-size: 1rem;
  }

  .booking-calendar {
    gap: .35rem;
  }

  .calendar-weekday {
    font-size: .68rem;
  }

  .calendar-day,
  .calendar-empty {
    min-height: 72px;
    border-radius: 14px;
    padding: .45rem;
  }

  .calendar-day-number {
    width: 28px;
    height: 28px;
    border-radius: 10px;
    font-size: .9rem;
  }

  .calendar-day small {
    font-size: .58rem;
  }

  .calendar-selected::after {
    display: none;
  }
}

/* Agenda pública em layout dividido: calendário compacto + horários selecionados */
.booking-split-grid {
  display: grid;
  grid-template-columns: minmax(300px, 420px) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

.calendar-compact-card {
  padding: 1rem;
  position: sticky;
  top: 92px;
}

.calendar-legend-compact {
  justify-content: flex-start;
  font-size: 1rem;
  margin-bottom: .8rem;
}

.booking-calendar-compact {
  gap: .38rem;
}

.booking-calendar-compact .calendar-weekday {
  font-size: .68rem;
  padding: .22rem .1rem;
}

.booking-calendar-compact .calendar-day,
.booking-calendar-compact .calendar-empty {
  min-height: 48px;
  border-radius: 14px;
  padding: .35rem;
  align-items: center;
  justify-content: center;
}

.booking-calendar-compact .calendar-day-number {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  font-size: .9rem;
}

.booking-calendar-compact .calendar-day small,
.booking-calendar-compact .calendar-selected::after {
  display: none;
}

.available-panel {
  background: rgba(255, 255, 255, .92);
  border: 1px solid var(--nutri-border);
  border-radius: 26px;
  box-shadow: 0 1.2rem 2.5rem rgba(80, 17, 37, .08);
  padding: 1.25rem;
}

.available-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.available-date-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: 1.1rem;
}

.available-date-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  color: var(--nutri-olive-dark);
  text-decoration: none;
  background: linear-gradient(135deg, rgba(129, 140, 65, .15), rgba(243, 245, 232, .95));
  border: 1px solid rgba(129, 140, 65, .28);
  border-radius: 18px;
  padding: .85rem;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.available-date-item:hover,
.available-date-item.active {
  transform: translateY(-2px);
  box-shadow: 0 .9rem 1.5rem rgba(80, 17, 37, .1);
  border-color: var(--nutri-olive);
}

.available-date-item.active {
  outline: 3px solid rgba(98, 20, 45, .12);
  border-color: var(--nutri-wine);
}

.available-date-item span,
.available-date-item small {
  display: block;
}

.available-date-item strong {
  color: var(--nutri-wine);
}

.available-date-item small {
  color: #65545d;
  font-weight: 700;
  margin-top: .15rem;
}

.available-date-item b {
  color: var(--nutri-olive-dark);
  font-size: .78rem;
  white-space: nowrap;
}

.selected-slots-box {
  border-top: 1px solid var(--nutri-border);
  padding-top: 1.1rem;
}

.selected-slots-box-clean {
  border-top: 0;
  padding-top: 0;
}

.available-panel-clean-note {
  color: #65545d;
  font-weight: 650;
}

.selected-slots-placeholder {
  background: linear-gradient(135deg, #fff, var(--nutri-olive-soft));
  border: 1px dashed rgba(129, 140, 65, .35);
  border-radius: 18px;
  padding: 1.3rem;
  text-align: center;
}

.selected-slots-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .85rem;
}

.slot-list-compact {
  display: grid;
  gap: .7rem;
}

.slot-row-compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: #fff;
  border: 1px solid var(--nutri-border);
  border-radius: 18px;
  padding: .85rem;
}

.slot-row-compact > div {
  min-width: 0;
}

.slot-row-compact strong,
.slot-row-compact small {
  display: block;
}

.slot-row-compact strong {
  color: var(--nutri-wine);
  margin-top: .35rem;
}

.slot-row-compact small {
  color: #65545d;
  font-weight: 650;
}

.slot-info-with-avatar {
  display: flex;
  align-items: center;
  gap: .85rem;
  min-width: 0;
}

.slot-details-compact {
  min-width: 0;
}

.nutritionist-slot-avatar {
  width: 76px;
  height: 76px;
  border-radius: 999px;
  object-fit: cover;
  border: 2px solid var(--nutri-olive-soft);
  box-shadow: 0 .35rem .75rem rgba(80, 17, 37, .1);
  flex: 0 0 76px;
}

.nutritionist-slot-avatar-initials {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--nutri-wine-soft), var(--nutri-olive-soft));
  color: var(--nutri-wine);
  font-weight: 900;
  font-size: 1rem;
  letter-spacing: .04em;
}

.slot-nutritionist-meta {
  display: block;
  line-height: 1.35;
}

@media (max-width: 575.98px) {
  .slot-info-with-avatar {
    align-items: flex-start;
  }

  .nutritionist-slot-avatar {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
  }
}

.available-empty-state {
  padding: 1.5rem 1rem;
  margin-bottom: 1rem;
}

@media (max-width: 991.98px) {
  .booking-split-grid {
    grid-template-columns: 1fr;
  }

  .calendar-compact-card {
    position: static;
  }
}

@media (max-width: 575.98px) {
  .available-panel,
  .calendar-compact-card {
    border-radius: 20px;
    padding: .85rem;
  }

  .available-panel-header,
  .slot-row-compact {
    flex-direction: column;
    align-items: stretch;
  }

  .available-date-list {
    grid-template-columns: 1fr;
  }

  .booking-calendar-compact .calendar-day,
  .booking-calendar-compact .calendar-empty {
    min-height: 42px;
    border-radius: 12px;
  }

  .booking-calendar-compact .calendar-day-number {
    width: 27px;
    height: 27px;
    font-size: 1rem;
  }
}

.agenda-month-controls {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .55rem;
  align-items: center;
  margin-bottom: .85rem;
}

.agenda-month-controls .btn {
  min-width: 38px;
  font-size: 1.15rem;
  line-height: 1;
  font-weight: 900;
}

.agenda-month-controls .form-select {
  font-weight: 800;
  color: var(--nutri-wine);
  border-color: rgba(129, 140, 65, .3);
}

.calendar-day.js-agenda-date {
  cursor: pointer;
}

.patient-avatar-xl {
  width: 112px;
  height: 112px;
  font-size: 2.4rem;
}

.btn-view-patient {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  white-space: nowrap;
}

.view-icon {
  line-height: 1;
  filter: drop-shadow(0 .15rem .15rem rgba(80, 17, 37, .12));
}

.patient-profile-hero {
  background: linear-gradient(135deg, #fff, var(--nutri-cream));
}

.patient-action-panel {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .6rem;
}

.patient-avatar-xl {
  width: 110px;
  height: 110px;
  border-radius: 28px;
  object-fit: cover;
  border: 3px solid var(--nutri-olive-soft);
  box-shadow: 0 .8rem 1.5rem rgba(80, 17, 37, .1);
  flex: 0 0 auto;
  font-size: 2.8rem;
}

.patient-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
}

.patient-stat-card {
  border: 1px solid var(--nutri-border);
  border-radius: 18px;
  background: #fffdfc;
  padding: .8rem .55rem;
  text-align: center;
}

.patient-stat-card strong {
  display: block;
  color: var(--nutri-wine);
  font-size: 1.5rem;
  line-height: 1;
}

.patient-stat-card span {
  color: var(--nutri-muted);
  font-size: .78rem;
}

.info-box {
  height: 100%;
  border: 1px solid var(--nutri-border);
  border-radius: 18px;
  background: #fffdfc;
  padding: 1rem;
}

.info-box span {
  display: block;
  margin-bottom: .55rem;
  color: var(--nutri-olive);
  font-weight: 800;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.info-box p {
  margin-bottom: .35rem;
  color: var(--nutri-muted);
}

.info-box p:last-child {
  margin-bottom: 0;
}

@media (max-width: 991.98px) {
  .patient-action-panel {
    justify-content: flex-start;
  }
}

@media (max-width: 575.98px) {
  .patient-stats-grid {
    grid-template-columns: 1fr;
  }

  .patient-avatar-xl {
    width: 86px;
    height: 86px;
    border-radius: 22px;
  }

  .patient-action-panel .btn {
    width: 100%;
  }
}

.dashboard-metric small {
  display: block;
  margin-top: .55rem;
  color: #75666d;
  font-weight: 650;
}

.chart-card {
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(129, 140, 65, .10), transparent 34%),
    #fff;
}

.chart-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.chart-tag {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: var(--nutri-olive-soft);
  color: var(--nutri-olive-dark);
  padding: .35rem .7rem;
  font-size: .78rem;
  font-weight: 850;
  white-space: nowrap;
}

.chart-box {
  position: relative;
  min-height: 265px;
  height: 265px;
}

.chart-box canvas {
  width: 100% !important;
  height: 100% !important;
}

@media (max-width: 768px) {
  .chart-heading {
    flex-direction: column;
  }

  .chart-box {
    min-height: 235px;
    height: 235px;
  }
}

.report-summary-card strong {
  color: var(--nutri-wine);
  font-size: 1.45rem;
}

.report-summary-card small {
  display: block;
  color: var(--nutri-olive-dark);
  font-weight: 750;
  margin-top: .25rem;
}

.report-card {
  background: linear-gradient(180deg, #fff, #fffdfc);
}

.report-table thead th {
  color: var(--nutri-wine);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  border-bottom-color: var(--nutri-border);
}

.report-table tfoot th {
  color: var(--nutri-wine);
  border-top: 2px solid var(--nutri-border);
}

@media print {
  .report-page {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
  }

  .report-page .card,
  .report-page .mini-card {
    border: 1px solid #d8d0d3 !important;
    box-shadow: none !important;
  }

  .report-page .row {
    --bs-gutter-x: .45rem;
    --bs-gutter-y: .45rem;
  }

  .report-page .mini-card {
    padding: .55rem !important;
    min-height: auto !important;
  }

  .report-page .mini-card span,
  .report-page .mini-card small {
    font-size: .68rem !important;
  }

  .report-page .mini-card strong {
    font-size: .95rem !important;
  }

  .report-card .card-body {
    padding: .65rem !important;
  }

  .report-table {
    font-size: .72rem !important;
  }

  .report-table td,
  .report-table th {
    padding: .28rem .35rem !important;
  }
}

.appointment-type-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.appointment-type-card {
  align-items: flex-start;
  background: linear-gradient(135deg, #fff, var(--nutri-soft));
  border: 1px solid var(--nutri-border);
  border-radius: 18px;
  cursor: pointer;
  display: flex;
  gap: .65rem;
  padding: .85rem;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.appointment-type-card:hover,
.appointment-type-card:has(input:checked) {
  border-color: var(--nutri-olive);
  box-shadow: 0 12px 28px rgba(98, 20, 45, .10);
  transform: translateY(-1px);
}

.appointment-type-card input {
  accent-color: var(--nutri-olive);
  flex: 0 0 auto;
  margin-top: .2rem;
}

.appointment-type-card strong {
  color: var(--nutri-wine);
  display: block;
  font-size: .95rem;
}

.appointment-type-card small {
  color: var(--nutri-muted);
  display: block;
  font-size: .76rem;
  line-height: 1.25;
  margin-top: .15rem;
}

@media (max-width: 575.98px) {
  .appointment-type-grid {
    grid-template-columns: 1fr;
  }
}

.checkbox-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: .65rem;
}

.checkbox-grid.compact {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.option-check {
  border: 1px solid var(--nutri-border);
  background: #fff;
  border-radius: 14px;
  padding: .75rem .85rem .75rem 2.35rem;
  min-height: 48px;
  display: flex;
  align-items: center;
}

.option-check .form-check-input {
  margin-left: -1.45rem;
  margin-right: .5rem;
  border-color: rgba(98, 20, 45, .35);
}

.option-check .form-check-input:checked {
  background-color: var(--nutri-olive);
  border-color: var(--nutri-olive);
}

.pre-consultation-answer-list {
  display: grid;
  gap: .8rem;
}

.pre-consultation-answer-list > div {
  border: 1px solid var(--nutri-border);
  border-radius: 16px;
  padding: 1rem;
  background: linear-gradient(135deg, #fff, var(--nutri-soft));
}

.pre-consultation-answer-list span {
  display: block;
  color: var(--nutri-wine);
  font-weight: 850;
  margin-bottom: .35rem;
}

.pre-consultation-answer-list p {
  margin-bottom: .25rem;
  color: #5d4d55;
}

/* Dashboard com agenda em destaque */
.dashboard-agenda-focus .card {
  border-radius: 26px;
}

.dashboard-agenda-card {
  background:
    radial-gradient(circle at top right, rgba(129, 140, 65, .12), transparent 34%),
    linear-gradient(135deg, #fff 0%, #fffdfc 55%, var(--nutri-olive-soft) 100%);
}

.upcoming-list {
  display: grid;
  gap: .85rem;
}

.upcoming-appointment-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(129, 140, 65, .24);
  border-radius: 20px;
  padding: .95rem;
  box-shadow: 0 .7rem 1.4rem rgba(80, 17, 37, .06);
}

.upcoming-date-box {
  min-width: 76px;
  min-height: 76px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: .1rem;
  border-radius: 18px;
  background: var(--nutri-wine);
  color: #fff;
  box-shadow: 0 .7rem 1.25rem rgba(98, 20, 45, .18);
}

.upcoming-date-box strong {
  font-size: 1.05rem;
  line-height: 1;
}

.upcoming-date-box span {
  font-weight: 850;
  font-size: .9rem;
  color: var(--nutri-olive-soft);
}

.upcoming-actions {
  min-width: 160px;
  display: grid;
  gap: .45rem;
}

.upcoming-actions .form-select {
  min-width: 122px;
}

.dashboard-mini-calendar-card {
  background:
    radial-gradient(circle at 0% 0%, rgba(98, 20, 45, .10), transparent 35%),
    #fff;
}

.dashboard-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .35rem;
}

.dashboard-calendar-weekday {
  text-align: center;
  color: var(--nutri-wine);
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding-bottom: .15rem;
}

.dashboard-calendar-day {
  position: relative;
  min-height: 74px;
  border: 1px solid var(--nutri-border);
  border-radius: 15px;
  background: #fffdfc;
  padding: .38rem;
  overflow: hidden;
}

.dashboard-calendar-empty {
  background: transparent;
  border-color: transparent;
}

.dashboard-calendar-day.has-appointments {
  border-color: rgba(129, 140, 65, .42);
  background: linear-gradient(135deg, rgba(129, 140, 65, .17), rgba(243, 245, 232, .98));
}

.dashboard-calendar-day.is-today {
  outline: 2px solid rgba(98, 20, 45, .16);
}

.dashboard-calendar-number {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: var(--nutri-wine);
  font-weight: 900;
  font-size: .85rem;
}

.dashboard-calendar-day.has-appointments .dashboard-calendar-number {
  background: var(--nutri-olive);
  color: #fff;
}

.dashboard-calendar-count {
  position: absolute;
  top: .32rem;
  right: .32rem;
  min-width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--nutri-wine);
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
}

.dashboard-calendar-patients {
  margin-top: .25rem;
  display: grid;
  gap: .08rem;
}

.dashboard-calendar-patients small {
  color: var(--nutri-wine-dark);
  font-size: .62rem;
  font-weight: 800;
  line-height: 1.05;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 991.98px) {
  .upcoming-appointment-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .upcoming-actions {
    width: 100%;
    min-width: 0;
  }

  .upcoming-actions .btn,
  .upcoming-actions form,
  .upcoming-actions .form-select {
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  .dashboard-calendar-day {
    min-height: 54px;
    border-radius: 12px;
    padding: .25rem;
  }

  .dashboard-calendar-number {
    width: 22px;
    height: 22px;
    font-size: .76rem;
  }

  .dashboard-calendar-patients {
    display: none;
  }

  .dashboard-calendar-count {
    min-width: 18px;
    height: 18px;
    font-size: .62rem;
  }
}

.appointment-type-checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.type-check-card {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  min-height: 82px;
  padding: .95rem;
  border: 1px solid var(--nutri-border);
  border-radius: 18px;
  background: linear-gradient(180deg, #fff 0%, var(--nutri-olive-soft) 100%);
  cursor: pointer;
  transition: .18s ease;
}

.type-check-card:hover {
  border-color: var(--nutri-olive);
  box-shadow: 0 .8rem 1.7rem rgba(80, 17, 37, .08);
  transform: translateY(-1px);
}

.type-check-card input {
  margin-top: .2rem;
  accent-color: var(--nutri-olive);
}

.type-check-card strong {
  display: block;
  color: var(--nutri-wine);
}

.type-check-card small {
  color: #6c5b63;
}

@media (max-width: 575.98px) {
  .appointment-type-checks {
    grid-template-columns: 1fr;
  }
}

.slot-date-picker {
  border: 1px solid var(--nutri-border);
  border-radius: 20px;
  padding: 1rem;
  background: linear-gradient(135deg, #fff, var(--nutri-olive-soft));
}

.slot-date-picker-error {
  border-color: #dc3545;
  box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .12);
}

.slot-date-picker-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .85rem;
}

.slot-date-picker-nav {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--nutri-wine);
  white-space: nowrap;
}

.slot-date-picker-weekdays,
.slot-date-picker-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .35rem;
}

.slot-date-picker-weekdays {
  margin-bottom: .35rem;
  color: var(--nutri-wine);
  font-size: .76rem;
  font-weight: 800;
  text-align: center;
}

.slot-date-empty,
.slot-date-day {
  min-height: 38px;
  border-radius: 12px;
}

.slot-date-day {
  border: 1px solid var(--nutri-border);
  background: #fff;
  color: var(--nutri-dark);
  font-weight: 800;
  transition: .18s ease;
}

.slot-date-day:hover {
  border-color: var(--nutri-olive);
  color: var(--nutri-olive-dark);
  transform: translateY(-1px);
}

.slot-date-day.is-today {
  border-color: var(--nutri-wine);
  color: var(--nutri-wine);
}

.slot-date-day.is-selected {
  background: var(--nutri-olive);
  border-color: var(--nutri-olive);
  color: #fff;
  box-shadow: 0 10px 22px rgba(129, 140, 65, .22);
}

.slot-selected-dates {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .85rem;
  min-height: 34px;
  align-items: center;
}

.slot-selected-date-chip {
  border: 1px solid rgba(98, 20, 45, .16);
  background: var(--nutri-wine-soft);
  color: var(--nutri-wine);
  border-radius: 999px;
  padding: .35rem .55rem .35rem .75rem;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .86rem;
  font-weight: 800;
}

.slot-selected-date-chip strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #fff;
  line-height: 1;
}

@media (max-width: 575.98px) {
  .slot-date-picker-header {
    flex-direction: column;
  }

  .slot-date-picker-nav {
    width: 100%;
    justify-content: space-between;
  }

  .slot-date-empty,
  .slot-date-day {
    min-height: 34px;
    border-radius: 10px;
  }
}


.slot-time-range-panel {
  border: 1px solid rgba(98, 20, 45, .12);
  background: linear-gradient(135deg, rgba(98, 20, 45, .035), rgba(42, 124, 92, .035));
  border-radius: 18px;
  padding: 1rem;
}

.slot-time-range-list {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.slot-time-range-item {
  display: flex;
  align-items: end;
  gap: .75rem;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .10);
  border-radius: 16px;
  padding: .9rem;
  box-shadow: 0 10px 28px rgba(37, 37, 37, .045);
}

.slot-time-range-number {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-bottom: .1rem;
  background: rgba(98, 20, 45, .10);
  color: var(--brand-danger, #62142d);
  font-weight: 800;
}

.slot-time-range-remove {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

@media (max-width: 575.98px) {
  .slot-time-range-item {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .slot-time-range-number {
    margin-bottom: 0;
  }

  .slot-time-range-remove {
    margin-left: auto;
  }
}

/* Horários: modal com rolagem interna
   Garante que formulários longos não quebrem a tela e que os botões finais permaneçam acessíveis. */
.slot-create-modal .slot-create-modal-dialog {
  max-height: calc(100vh - 1.75rem);
}

.slot-create-modal .slot-create-modal-content {
  max-height: calc(100vh - 1.75rem);
  overflow: hidden;
}

.slot-create-modal .modal-body {
  overflow-y: auto;
  max-height: calc(100vh - 210px);
  padding-bottom: 1.25rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(98, 20, 45, .35) rgba(98, 20, 45, .08);
}

.slot-create-modal .modal-body::-webkit-scrollbar {
  width: 8px;
}

.slot-create-modal .modal-body::-webkit-scrollbar-track {
  background: rgba(98, 20, 45, .08);
  border-radius: 999px;
}

.slot-create-modal .modal-body::-webkit-scrollbar-thumb {
  background: rgba(98, 20, 45, .35);
  border-radius: 999px;
}

.slot-create-modal .modal-header,
.slot-create-modal .modal-footer {
  flex-shrink: 0;
  background: #fff;
  position: relative;
  z-index: 2;
}

@media (max-width: 575.98px) {
  .slot-create-modal .slot-create-modal-dialog {
    margin: .5rem;
    max-height: calc(100vh - 1rem);
  }

  .slot-create-modal .slot-create-modal-content {
    max-height: calc(100vh - 1rem);
  }

  .slot-create-modal .modal-body {
    max-height: calc(100vh - 190px);
  }
}

.agenda-year-controls {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.agenda-date-selects {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(92px, .75fr);
  gap: .5rem;
}

@media (max-width: 420px) {
  .agenda-date-selects {
    grid-template-columns: 1fr;
  }
}

.success-floating-card {
  border-radius: 22px;
  box-shadow: 0 22px 60px rgba(80, 17, 37, .22);
  overflow: hidden;
}

.success-floating-card .modal-header {
  background: linear-gradient(135deg, var(--nutri-wine), var(--nutri-wine-dark));
  color: #fff;
}

.success-floating-card .modal-header .eyebrow,
.success-floating-card .modal-header .modal-title {
  color: #fff;
}

.success-icon-ring {
  width: 58px;
  height: 58px;
  border-radius: 999px;
  background: var(--nutri-olive-soft);
  border: 2px solid var(--nutri-olive);
  color: var(--nutri-olive-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: 900;
  margin-bottom: 1rem;
}

.info-list {
  display: grid;
  gap: 0.75rem;
}

.info-list > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(98, 20, 45, 0.08);
}

.info-list span {
  color: #7b6a70;
  font-size: 0.88rem;
}

.info-list strong {
  text-align: right;
  color: #501125;
}

.logged-patient-note {
  color: var(--muted-color, #6c757d);
  background: #f7f8f3;
  border-radius: 12px;
  padding: 0.55rem 0.75rem;
}

/* Menu de perfil do usuário logado */
.profile-menu-item {
  margin-left: .35rem;
}

.profile-menu-toggle {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .35rem .55rem .35rem .85rem !important;
  border: 1px solid rgba(98, 20, 45, .12);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(248, 237, 242, .95), rgba(243, 245, 232, .9));
  box-shadow: 0 .55rem 1.2rem rgba(80, 17, 37, .06);
}

.profile-menu-toggle::after {
  margin-left: .1rem;
  color: var(--nutri-wine);
}

.profile-menu-toggle:hover,
.profile-menu-toggle:focus {
  border-color: rgba(98, 20, 45, .25);
  color: var(--nutri-wine);
  background: linear-gradient(135deg, #fff, var(--nutri-olive-soft));
}

.profile-welcome {
  color: #6d5560;
  font-size: 1rem;
  line-height: 1.1;
  white-space: nowrap;
}

.profile-welcome strong {
  color: var(--nutri-wine);
  font-weight: 850;
}

.nav-profile-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  object-fit: cover;
  flex: 0 0 38px;
  border: 2px solid #fff;
  box-shadow: 0 .35rem .85rem rgba(80, 17, 37, .16);
}

.nav-profile-initials {
  background: var(--nutri-wine);
  color: #fff;
  font-weight: 850;
  font-size: 1rem;
  letter-spacing: .04em;
}

.profile-dropdown {
  min-width: 230px;
  border: 1px solid rgba(98, 20, 45, .12);
  border-radius: 18px;
  box-shadow: 0 1.2rem 2.4rem rgba(80, 17, 37, .12);
  overflow: hidden;
}

.profile-dropdown .dropdown-header {
  display: flex;
  flex-direction: column;
  gap: .1rem;
  padding: .85rem 1rem .65rem;
  background: linear-gradient(135deg, var(--nutri-wine-soft), var(--nutri-olive-soft));
}

.profile-dropdown .dropdown-header span {
  color: #76616b;
  font-size: .78rem;
}

.profile-dropdown .dropdown-header strong {
  color: var(--nutri-wine);
  font-size: .95rem;
}

.profile-dropdown .dropdown-item {
  font-weight: 700;
  padding: .7rem 1rem;
}

@media (max-width: 1399.98px) {
  .profile-menu-toggle {
    justify-content: space-between;
    width: 100%;
    margin-top: .35rem;
  }

  .profile-menu-toggle::before {
    content: 'Olá';
    color: #6d5560;
    font-size: .86rem;
    font-weight: 700;
    margin-right: auto;
  }
}


/* Ajuste do menu superior: evita sobreposição com a logo quando há usuário logado */
.navbar > .container {
  gap: .75rem;
}

.brand-lockup {
  flex: 0 0 auto;
  max-width: 260px;
}

.navbar-collapse {
  min-width: 0;
}

@media (min-width: 1400px) {
  .navbar .navbar-nav {
    gap: .35rem !important;
  }

  .landing-nav-link {
    padding-left: .68rem !important;
    padding-right: .68rem !important;
  }

  .landing-portal-nav-btn {
    padding-left: .85rem !important;
    padding-right: .85rem !important;
    white-space: nowrap;
  }

  .profile-menu-toggle {
    gap: .45rem;
    padding-left: .65rem !important;
    padding-right: .45rem !important;
  }

  .profile-welcome {
    font-size: .9rem;
  }
}

@media (min-width: 1400px) and (max-width: 1499.98px) {
  .brand-copy strong {
    font-size: .98rem;
  }

  .brand-copy small {
    font-size: .62rem;
    letter-spacing: .14em;
  }

  .brand-logo {
    width: 42px;
    height: 48px;
  }
}

/* Menu ativo */
.navbar .nav-link.active-menu,
.navbar .profile-menu-toggle.active-menu {
  color: var(--nutri-wine) !important;
  background: linear-gradient(135deg, rgba(243, 245, 232, .96), rgba(255, 255, 255, .94));
  border: 1px solid rgba(129, 140, 65, .42);
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 .35rem .9rem rgba(80, 17, 37, .06);
}

.navbar .nav-link.active-menu::after {
  border-top-color: var(--nutri-wine);
}

.navbar .dropdown-item.active-submenu,
.navbar .dropdown-item.active-submenu:hover,
.navbar .dropdown-item.active-submenu:focus {
  color: var(--nutri-wine);
  background: var(--nutri-olive-soft);
  border-left: 4px solid rgba(129, 140, 65, .75);
  font-weight: 800;
}

.navbar .btn.active-menu-button {
  outline: 3px solid rgba(243, 245, 232, .95);
  box-shadow: 0 0 0 1px rgba(129, 140, 65, .45), 0 .35rem .9rem rgba(80, 17, 37, .08);
}

@media (max-width: 991.98px) {
  .navbar .nav-link.active-menu,
  .navbar .profile-menu-toggle.active-menu {
    border-radius: 16px;
    padding-left: .9rem;
    padding-right: .9rem;
    margin-top: .2rem;
  }
}

/* Dashboard da nutricionista: próximos agendamentos compactos e paginados */
.upcoming-list-compact {
  gap: .55rem;
}

.compact-upcoming-card {
  gap: .72rem;
  padding: .65rem .75rem;
  border-radius: 16px;
  box-shadow: 0 .45rem 1rem rgba(80, 17, 37, .045);
}

.compact-upcoming-card .upcoming-date-box {
  min-width: 62px;
  min-height: 62px;
  border-radius: 15px;
}

.compact-upcoming-card .upcoming-date-box strong {
  font-size: .92rem;
}

.compact-upcoming-card .upcoming-date-box span {
  font-size: .78rem;
}

.compact-upcoming-card h3 {
  font-size: .95rem;
}

.compact-upcoming-card .small {
  font-size: .76rem;
  line-height: 1.25;
}

.compact-upcoming-card .upcoming-actions {
  min-width: 142px;
  gap: .3rem;
}

.compact-upcoming-card .upcoming-actions .btn,
.compact-upcoming-card .upcoming-actions .form-select {
  font-size: .76rem;
  padding: .25rem .48rem;
}

.compact-upcoming-card .badge {
  font-size: .68rem;
  padding: .28rem .45rem;
}

.agenda-total-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .28rem .6rem;
  border: 1px solid rgba(129, 140, 65, .28);
  border-radius: 999px;
  color: var(--nutri-wine);
  background: rgba(243, 245, 232, .92);
  font-size: .76rem;
  font-weight: 850;
  white-space: nowrap;
}

.agenda-simple-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-top: .75rem;
  border-top: 1px solid rgba(129, 140, 65, .18);
}

.agenda-simple-pagination span {
  color: #6f5e65;
  font-size: .86rem;
  text-align: center;
}

.agenda-simple-pagination strong {
  color: var(--nutri-wine);
}

@media (max-width: 575.98px) {
  .agenda-simple-pagination {
    flex-direction: column;
    align-items: stretch;
  }

  .agenda-simple-pagination .btn {
    width: 100%;
  }
}

/* Auditoria aprimorada */
.audit-retention-card {
  min-width: 230px;
  border: 1px solid rgba(129, 140, 65, .25);
  border-radius: 18px;
  padding: .85rem 1rem;
  background: linear-gradient(135deg, rgba(243, 245, 232, .96), rgba(255, 255, 255, .96));
  box-shadow: 0 .65rem 1.2rem rgba(80, 17, 37, .06);
}

.audit-retention-card span,
.audit-stat-card span,
.audit-user-box span {
  display: block;
  color: #7a6970;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.audit-retention-card strong {
  display: block;
  color: var(--nutri-wine);
  font-size: 1.35rem;
  line-height: 1.1;
}

.audit-retention-card small {
  color: #7a6970;
}

.audit-clear-trigger {
  min-width: 178px;
  border-radius: 16px;
  font-weight: 850;
  box-shadow: 0 .55rem 1rem rgba(183, 75, 92, .08);
}

.audit-clear-modal .modal-content {
  border-radius: 22px;
  overflow: hidden;
}

.audit-clear-modal-header {
  background: linear-gradient(135deg, #8f2f40, #62142d);
  color: #fff;
}

.audit-clear-modal-header small {
  opacity: .86;
}

.audit-clear-warning-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .16);
  color: #fff;
  font-size: 1.25rem;
}

.audit-stat-card {
  height: 100%;
  border: 1px solid rgba(129, 140, 65, .18);
  border-radius: 18px;
  padding: .9rem 1rem;
  background: #fff;
  box-shadow: 0 .55rem 1rem rgba(80, 17, 37, .045);
  position: relative;
  overflow: hidden;
}

.audit-stat-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--nutri-olive);
  opacity: .75;
}

.audit-stat-success::before { background: #3f8f5b; }
.audit-stat-info::before { background: #4d86a5; }
.audit-stat-danger::before { background: #b74b5c; }
.audit-stat-warning::before { background: #ba8b2a; }

.audit-stat-card strong {
  display: block;
  color: var(--nutri-wine);
  font-size: 1.65rem;
  line-height: 1.05;
  margin-top: .3rem;
}

.audit-filter-card .form-label {
  font-size: .82rem;
  font-weight: 800;
  color: var(--nutri-wine);
}

.audit-small-pill {
  display: inline-flex;
  align-items: center;
  padding: .32rem .7rem;
  border: 1px solid rgba(129, 140, 65, .22);
  border-radius: 999px;
  color: var(--nutri-wine);
  background: rgba(243, 245, 232, .92);
  font-size: .78rem;
  font-weight: 800;
}

.audit-timeline {
  display: flex;
  flex-direction: column;
  gap: .85rem;
}

.audit-item {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: .85rem;
  padding: .95rem;
  border: 1px solid rgba(129, 140, 65, .15);
  border-radius: 20px;
  background: linear-gradient(135deg, #fff, rgba(243, 245, 232, .34));
}

.audit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 16px;
  background: var(--nutri-olive-soft);
  color: var(--nutri-wine);
  font-size: 1.25rem;
  box-shadow: inset 0 0 0 1px rgba(129, 140, 65, .18);
}

.audit-title {
  color: var(--nutri-wine);
  font-size: 1.02rem;
  font-weight: 850;
}

.audit-description {
  color: #6d5f65;
  font-size: .88rem;
}

.audit-time strong {
  color: var(--nutri-wine);
  font-size: .9rem;
}

.audit-time small {
  color: #7a6970;
}

.audit-badge {
  border-radius: 999px;
  padding: .32rem .62rem;
  font-weight: 850;
}

.audit-badge-success { background: rgba(63, 143, 91, .12); color: #2f6b44; }
.audit-badge-info { background: rgba(77, 134, 165, .13); color: #376276; }
.audit-badge-danger { background: rgba(183, 75, 92, .13); color: #8f2f40; }
.audit-badge-warning { background: rgba(186, 139, 42, .16); color: #7a5817; }
.audit-badge-secondary { background: rgba(80, 17, 37, .08); color: var(--nutri-wine); }

.audit-user-box {
  min-height: 75px;
  border: 1px solid rgba(129, 140, 65, .13);
  border-radius: 16px;
  padding: .65rem .75rem;
  background: rgba(255, 255, 255, .72);
}

.audit-user-box strong {
  display: block;
  color: var(--nutri-wine);
  font-size: .92rem;
  line-height: 1.2;
  margin-top: .18rem;
  word-break: break-word;
}

.audit-user-box small {
  display: block;
  color: #7a6970;
  font-size: .78rem;
  word-break: break-word;
}

.audit-details summary {
  cursor: pointer;
  color: var(--nutri-wine);
  font-weight: 800;
  font-size: .84rem;
}

.audit-details pre {
  margin-top: .5rem;
  margin-bottom: 0;
  max-height: 260px;
  overflow: auto;
  border-radius: 14px;
  padding: .85rem;
  color: #46383d;
  background: #f8f6f1;
  border: 1px solid rgba(129, 140, 65, .16);
  font-size: .78rem;
  white-space: pre-wrap;
}

@media (max-width: 767.98px) {
  .audit-item {
    grid-template-columns: 1fr;
  }

  .audit-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
  }
}

/* Usuários: filtros, modal e ações */
.btn-brand-danger {
  background: var(--nutri-wine, #62142d);
  border-color: var(--nutri-wine, #62142d);
  color: #fff;
  box-shadow: 0 10px 22px rgba(98, 20, 45, .18);
}

.btn-brand-danger:hover,
.btn-brand-danger:focus {
  background: #501125;
  border-color: #501125;
  color: #fff;
}

.user-filter-card {
  border-left: 4px solid rgba(98, 20, 45, .22) !important;
}

.user-modal-header {
  background: linear-gradient(135deg, #62142d, #501125);
  color: #fff;
}

.users-table .patient-avatar {
  width: 42px;
  height: 42px;
}

.icon-trash-btn {
  width: 34px;
  height: 31px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

/* Auditoria: comparação De/Para */
.audit-diff-box {
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .12);
  border-radius: 16px;
  padding: 14px;
  margin-top: 12px;
  margin-bottom: 14px;
}

.audit-diff-box h4 {
  font-size: .95rem;
  font-weight: 700;
  color: var(--nutri-wine, #62142d);
  margin-bottom: 10px;
}

.audit-diff-table th {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #6c757d;
}

.audit-old-value,
.audit-new-value {
  display: inline-block;
  max-width: 360px;
  word-break: break-word;
  white-space: normal;
}

.audit-old-value {
  color: #8a4d59;
}

.audit-new-value {
  color: #536322;
  font-weight: 600;
}

.audit-technical-json {
  margin-top: 12px;
}

.audit-diff-empty {
  background: #faf8f8;
}

/* Landing Page pública */
.landing-hero-section {
  background:
    radial-gradient(circle at 80% 15%, rgba(129, 140, 65, .18), transparent 32%),
    linear-gradient(135deg, #fff 0%, #f7f2f4 52%, #f3f5e8 100%);
  overflow: hidden;
}

.landing-title {
  font-size: clamp(2.2rem, 5vw, 4.6rem);
  line-height: .98;
  font-weight: 800;
  color: var(--nutri-wine, #62142d);
  letter-spacing: -.045em;
}

.landing-subtitle {
  font-size: clamp(1.08rem, 2vw, 1.28rem);
  line-height: 1.7;
  color: #6d5b61;
  max-width: 650px;
}

.landing-hero-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.landing-hero-highlights span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(98, 20, 45, .08);
  color: #59434b;
  font-size: .92rem;
}

.landing-hero-highlights span::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--nutri-olive, #818c41);
}

.landing-photo-card {
  position: relative;
  max-width: 500px;
  margin-left: auto;
}

.landing-photo-frame {
  border-radius: 42px;
  overflow: hidden;
  border: 10px solid rgba(255,255,255,.86);
  box-shadow: 0 24px 65px rgba(80, 17, 37, .2);
  background: #fff;
  aspect-ratio: 4 / 5;
}

.landing-photo-frame img,
.landing-about-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.landing-floating-note {
  position: absolute;
  left: -28px;
  bottom: 34px;
  max-width: 260px;
  padding: 18px;
  border-radius: 22px;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(129, 140, 65, .18);
}

.landing-floating-note strong,
.landing-floating-note span {
  display: block;
}

.landing-floating-note strong {
  color: var(--nutri-wine, #62142d);
  margin-bottom: 4px;
}

.landing-floating-note span {
  color: #6d5b61;
  font-size: .92rem;
}

.landing-section-heading {
  max-width: 760px;
}

.landing-feature-card,
.landing-step-card {
  border: 1px solid rgba(98, 20, 45, .09);
  border-radius: 28px;
  padding: 26px;
  background: #fff;
  box-shadow: 0 12px 40px rgba(80, 17, 37, .07);
}

.landing-feature-icon,
.landing-step-card span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  margin-bottom: 18px;
  background: #f3f5e8;
  color: var(--nutri-wine, #62142d);
  font-weight: 800;
}

.landing-soft-section {
  background: linear-gradient(135deg, #f3f5e8 0%, #fff 48%, #fbf7f8 100%);
}

.landing-about-image {
  aspect-ratio: 1 / 1.16;
  border-radius: 38px;
  overflow: hidden;
  border: 10px solid #fff;
  box-shadow: 0 22px 55px rgba(80, 17, 37, .13);
  background: #fff;
}

.landing-check-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

.landing-check-list div {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #5f4f55;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(98, 20, 45, .08);
}

.landing-check-list span {
  color: var(--nutri-olive, #818c41);
  font-weight: 900;
}

.landing-cta-band {
  color: #fff;
  background: linear-gradient(135deg, var(--nutri-wine, #62142d), #501125);
}

.landing-cta-band .eyebrow,
.landing-cta-band p {
  color: rgba(255,255,255,.78) !important;
}

.landing-faq .accordion-item {
  border: 1px solid rgba(98, 20, 45, .1);
  border-radius: 18px !important;
  overflow: hidden;
  margin-bottom: 12px;
  box-shadow: 0 10px 32px rgba(80, 17, 37, .05);
}

.landing-faq .accordion-button {
  font-weight: 700;
  color: var(--nutri-wine, #62142d);
}

.landing-faq .accordion-button:not(.collapsed) {
  background: #f3f5e8;
  color: var(--nutri-wine, #62142d);
}

.admin-landing-editor .landing-editor-card textarea {
  resize: vertical;
}

.landing-editor-tip {
  background: #fdfaf6;
}

.landing-image-preview {
  border: 1px dashed rgba(98, 20, 45, .22);
  border-radius: 20px;
  padding: 14px;
  background: #fff;
}

.landing-image-preview span {
  display: block;
  font-size: .8rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #7a6a70;
  margin-bottom: 10px;
}

.landing-image-preview img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 16px;
  background: #f6f2f3;
}

@media (max-width: 991px) {
  .landing-photo-card { margin: 0 auto; }
  .landing-floating-note {
    position: static;
    margin: -24px auto 0;
    max-width: calc(100% - 36px);
  }
}

@media (max-width: 575px) {
  .landing-photo-frame { border-radius: 30px; }
  .landing-feature-card,
  .landing-step-card { padding: 22px; border-radius: 22px; }
}

/* Ajustes da landing page: galeria pública e depoimentos */
.landing-image-strip {
  background: #fff;
}

.landing-image-card {
  display: grid;
  grid-template-rows: 230px 1fr;
  overflow: hidden;
  border-radius: 30px;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .08);
  box-shadow: 0 14px 42px rgba(80, 17, 37, .08);
}

.landing-image-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.landing-image-card > div {
  padding: 24px;
}

.landing-testimonials-section {
  background: linear-gradient(135deg, #fff 0%, #f3f5e8 48%, #fbf7f8 100%);
}

.landing-testimonial-card {
  position: relative;
  padding: 28px;
  border-radius: 28px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(98, 20, 45, .09);
  box-shadow: 0 14px 42px rgba(80, 17, 37, .08);
}

.landing-testimonial-card::before {
  content: '“';
  position: absolute;
  right: 24px;
  top: 12px;
  font-size: 4rem;
  line-height: 1;
  color: rgba(98, 20, 45, .08);
  font-family: Georgia, serif;
}

.landing-testimonial-stars {
  color: var(--nutri-olive, #818c41);
  letter-spacing: .08em;
  margin-bottom: 14px;
  font-size: .95rem;
}

.landing-testimonial-card p {
  position: relative;
  color: #66555b;
  font-size: 1rem;
  margin-bottom: 18px;
}

.landing-testimonial-card strong {
  display: block;
  color: var(--nutri-wine, #62142d);
}

.landing-photo-card {
  isolation: isolate;
}

.landing-photo-frame {
  min-height: 430px;
}

@media (max-width: 991px) {
  .landing-photo-frame { min-height: 360px; }
}

@media (max-width: 575px) {
  .landing-image-card { grid-template-rows: 190px 1fr; border-radius: 24px; }
  .landing-image-card > div,
  .landing-testimonial-card { padding: 22px; }
  .landing-photo-frame { min-height: 320px; }
}

/* Refinamento visual da Landing Page: banner acolhedor e tipografia delicada */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Dancing+Script:wght@600;700&family=Quicksand:wght@400;500;600;700&display=swap');

.landing-hero-section,
.landing-soft-section,
.landing-image-strip,
.landing-testimonials-section,
.landing-cta-band,
.landing-faq,
.landing-section-heading,
.landing-feature-card,
.landing-step-card,
.landing-image-card,
.landing-testimonial-card {
  font-family: 'Quicksand', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.landing-hero-banner {
  position: relative;
  isolation: isolate;
  min-height: 710px;
  display: flex;
  align-items: center;
  background:
    linear-gradient(115deg, rgba(255,255,255,.98) 0%, rgba(255,246,249,.92) 43%, rgba(243,245,232,.88) 100%),
    url('https://images.unsplash.com/photo-1543362906-acfc16c67564?auto=format&fit=crop&w=1800&q=80') center/cover no-repeat;
  overflow: hidden;
  border-bottom: 1px solid rgba(98, 20, 45, .08);
}

.landing-hero-banner::before {
  content: '';
  position: absolute;
  inset: 28px;
  border-radius: 42px;
  border: 1px solid rgba(255,255,255,.82);
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.84), transparent 24%),
    radial-gradient(circle at 74% 18%, rgba(129,140,65,.18), transparent 24%),
    radial-gradient(circle at 62% 78%, rgba(98,20,45,.13), transparent 28%);
  box-shadow: inset 0 0 80px rgba(255,255,255,.58);
  pointer-events: none;
  z-index: -2;
}

.landing-hero-banner::after {
  content: '';
  position: absolute;
  right: -140px;
  top: -120px;
  width: 520px;
  height: 520px;
  border-radius: 999px;
  background: rgba(255,255,255,.36);
  filter: blur(2px);
  z-index: -3;
}

.landing-hero-banner .container {
  position: relative;
  z-index: 2;
}

.landing-hero-orb,
.landing-hero-leaf {
  position: absolute;
  display: block;
  pointer-events: none;
  z-index: -1;
}

.landing-hero-orb {
  width: 150px;
  height: 150px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,255,255,.92), rgba(255,255,255,.1));
  box-shadow: 0 24px 70px rgba(80,17,37,.12);
  animation: landingFloat 7s ease-in-out infinite;
}

.landing-hero-orb-one {
  left: 7%;
  bottom: 12%;
}

.landing-hero-orb-two {
  right: 9%;
  top: 18%;
  width: 96px;
  height: 96px;
  animation-delay: -2.5s;
}

.landing-hero-leaf {
  width: 210px;
  height: 210px;
  border-radius: 60% 40% 60% 40%;
  background: rgba(129,140,65,.15);
  transform: rotate(28deg);
  filter: blur(.2px);
  animation: landingSway 9s ease-in-out infinite;
}

.landing-hero-leaf-one {
  left: -70px;
  top: 120px;
}

.landing-hero-leaf-two {
  right: 32%;
  bottom: -90px;
  background: rgba(98,20,45,.08);
  animation-delay: -3s;
}

.landing-title,
.landing-section-heading h2,
.landing-soft-section h2,
.landing-cta-band h2,
.landing-faq h2,
.landing-feature-card h3,
.landing-step-card h3,
.landing-image-card h3,
.landing-testimonial-card strong {
  font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
}

.landing-title {
  max-width: 720px;
  font-size: clamp(2.75rem, 5.6vw, 5.45rem);
  line-height: 1.02;
  font-weight: 600;
  color: var(--nutri-wine, #62142d);
  letter-spacing: -.018em;
  text-wrap: balance;
}

.landing-section-heading h2,
.landing-soft-section h2,
.landing-cta-band h2,
.landing-faq h2 {
  font-weight: 600 !important;
  letter-spacing: -.015em;
  color: var(--nutri-wine, #62142d);
}

.landing-subtitle {
  font-size: clamp(1.08rem, 1.6vw, 1.25rem);
  line-height: 1.85;
  font-weight: 500;
  color: #67515a;
}

.landing-hero-banner .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(98, 20, 45, .10);
  box-shadow: 0 14px 40px rgba(80,17,37,.07);
  color: var(--nutri-olive-dark, #5f692f);
  letter-spacing: .14em;
}

.landing-hero-banner .eyebrow::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--nutri-wine, #62142d);
}

.landing-hero-banner .btn {
  border-radius: 999px;
  padding-inline: 1.55rem;
  font-weight: 700;
  box-shadow: 0 16px 36px rgba(80,17,37,.10);
}

.landing-hero-banner .btn-success {
  background: linear-gradient(135deg, var(--nutri-wine, #62142d), var(--nutri-wine-dark, #501125));
  border-color: transparent;
}

.landing-hero-banner .btn-outline-success {
  background: rgba(255,255,255,.62);
  color: var(--nutri-wine, #62142d);
  border-color: rgba(98,20,45,.24);
}

.landing-hero-highlights span {
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(12px);
  border-color: rgba(98,20,45,.10);
  box-shadow: 0 12px 32px rgba(80,17,37,.07);
  font-weight: 600;
}

.landing-hero-signature {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #735f66;
  font-weight: 600;
}

.landing-hero-signature span {
  width: 58px;
  height: 1px;
  background: linear-gradient(90deg, var(--nutri-wine, #62142d), rgba(129,140,65,.35));
}

.landing-photo-card-banner {
  max-width: 520px;
  margin-left: auto;
  transform: translateY(4px);
}

.landing-photo-glow {
  position: absolute;
  inset: 7% -7% -5% 10%;
  border-radius: 42px;
  background: linear-gradient(135deg, rgba(98,20,45,.24), rgba(129,140,65,.25));
  filter: blur(42px);
  z-index: -1;
}

.landing-photo-card-banner .landing-photo-frame {
  position: relative;
  z-index: 2;
  border-radius: 44px 44px 130px 44px;
  border: 12px solid rgba(255,255,255,.9);
  box-shadow: 0 30px 80px rgba(80, 17, 37, .22);
  transform: rotate(.6deg);
}

.landing-photo-card-banner .landing-photo-frame img {
  filter: saturate(1.04) contrast(1.02);
}

.landing-hero-image-chip {
  position: absolute;
  width: 128px;
  height: 128px;
  border-radius: 30px;
  overflow: hidden;
  background: #fff;
  border: 8px solid rgba(255,255,255,.92);
  box-shadow: 0 22px 50px rgba(80,17,37,.16);
  z-index: 3;
}

.landing-hero-image-chip img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.landing-chip-one {
  left: -42px;
  bottom: 46px;
  transform: rotate(-7deg);
}

.landing-chip-two {
  right: -34px;
  top: 58px;
  width: 106px;
  height: 106px;
  border-radius: 999px;
  transform: rotate(6deg);
}

.landing-feature-card h3,
.landing-step-card h3,
.landing-image-card h3 {
  font-size: 1.55rem;
  font-weight: 600 !important;
  letter-spacing: -.01em;
  color: var(--nutri-wine, #62142d);
}

.landing-testimonial-card strong {
  font-size: 1.25rem;
  font-weight: 600;
}

@keyframes landingFloat {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -18px, 0); }
}

@keyframes landingSway {
  0%, 100% { transform: rotate(28deg) translate3d(0, 0, 0); }
  50% { transform: rotate(34deg) translate3d(12px, -16px, 0); }
}

@media (max-width: 991px) {
  .landing-hero-banner {
    min-height: auto;
    padding-top: 34px;
  }
  .landing-hero-banner::before {
    inset: 14px;
    border-radius: 30px;
  }
  .landing-photo-card-banner {
    margin: 0 auto;
  }
  .landing-chip-one {
    left: 12px;
    bottom: 26px;
  }
  .landing-chip-two {
    right: 16px;
    top: 28px;
  }
}

@media (max-width: 575px) {
  .landing-title {
    font-size: clamp(2.35rem, 13vw, 3.25rem);
  }
  .landing-hero-banner .btn {
    width: 100%;
  }
  .landing-hero-image-chip {
    width: 90px;
    height: 90px;
    border-width: 6px;
    border-radius: 22px;
  }
  .landing-chip-two {
    width: 78px;
    height: 78px;
    border-radius: 999px;
  }
}

/* Landing page - refinamento do banner e cartões sobrepostos */
.landing-hero-banner {
  min-height: 620px;
  padding-bottom: 90px;
}

.landing-title {
  max-width: 650px;
  font-size: clamp(2.05rem, 3.7vw, 3.7rem) !important;
  line-height: 1.14;
  font-weight: 600;
  letter-spacing: -.012em;
}

.landing-subtitle {
  max-width: 590px;
  font-size: clamp(1rem, 1.25vw, 1.14rem) !important;
  line-height: 1.78;
}

.landing-hero-banner .eyebrow {
  font-size: .78rem;
  padding: 8px 14px;
}

.landing-hero-banner .btn {
  padding: .82rem 1.35rem;
  font-size: .98rem;
}

.landing-hero-highlights span {
  font-size: .86rem;
  padding: 8px 12px;
}

.landing-benefits-overlap {
  position: relative;
  z-index: 5;
  margin-top: -120px;
  padding-top: 0 !important;
}

.landing-benefits-heading {
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(98, 20, 45, .08);
  border-radius: 30px;
  box-shadow: 0 18px 50px rgba(80, 17, 37, .09);
  padding: 24px 28px;
  margin-bottom: 10px;
}

.landing-benefits-heading h2 {
  font-size: clamp(1.65rem, 2.6vw, 2.45rem);
}

.landing-feature-card {
  min-height: 258px;
  padding: 30px 28px;
  border-radius: 26px;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.landing-feature-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 58px rgba(80, 17, 37, .12);
  border-color: rgba(129, 140, 65, .22);
}

.landing-feature-icon {
  width: 64px;
  height: 64px;
  border-radius: 999px;
  margin-bottom: 22px;
  background: linear-gradient(135deg, rgba(129,140,65,.18), rgba(98,20,45,.10));
  color: var(--nutri-wine, #62142d);
  font-size: 1.58rem;
  box-shadow: inset 0 0 0 9px rgba(255,255,255,.72);
}

.landing-feature-card h3 {
  font-size: 1.42rem !important;
  line-height: 1.18;
}

.landing-feature-card p {
  font-size: .98rem;
  line-height: 1.62;
}

.landing-benefits-overlap .row.g-4 {
  --bs-gutter-y: 1.25rem;
}

@media (max-width: 991px) {
  .landing-hero-banner {
    min-height: auto;
    padding-bottom: 70px;
  }

  .landing-benefits-overlap {
    margin-top: -74px;
  }

  .landing-title {
    font-size: clamp(2rem, 6.5vw, 3.1rem) !important;
  }
}

@media (max-width: 575px) {
  .landing-hero-banner {
    padding-bottom: 48px;
  }

  .landing-benefits-overlap {
    margin-top: -42px;
  }

  .landing-benefits-heading {
    padding: 20px;
    border-radius: 24px;
  }

  .landing-title {
    font-size: clamp(1.95rem, 10vw, 2.75rem) !important;
  }

  .landing-feature-icon {
    width: 56px;
    height: 56px;
    font-size: 1.35rem;
  }

  .landing-feature-card {
    min-height: auto;
  }
}

/* Landing page - metodologia com ícones, CTA acolhedor e efeitos suaves */
.landing-step-card {
  position: relative;
  overflow: hidden;
  min-height: 240px;
  padding: 30px 28px;
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.landing-step-card::after {
  content: '';
  position: absolute;
  right: -38px;
  top: -38px;
  width: 120px;
  height: 120px;
  border-radius: 999px;
  background: rgba(129, 140, 65, .08);
  pointer-events: none;
}

.landing-step-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 58px rgba(80, 17, 37, .11);
  border-color: rgba(129, 140, 65, .24);
}

.landing-step-icon {
  width: 62px !important;
  height: 62px !important;
  border-radius: 999px !important;
  margin-bottom: 22px !important;
  background: linear-gradient(135deg, rgba(129,140,65,.18), rgba(98,20,45,.10)) !important;
  color: var(--nutri-wine, #62142d) !important;
  font-size: 1.55rem;
  font-weight: 400 !important;
  box-shadow: inset 0 0 0 9px rgba(255,255,255,.72);
}

.landing-step-card h3 {
  font-size: 1.42rem !important;
  line-height: 1.18;
}

.landing-step-card p {
  font-size: .98rem;
  line-height: 1.62;
}

.landing-cta-soft {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 14% 22%, rgba(255,255,255,.18), transparent 28%),
    linear-gradient(135deg, #62142d 0%, #501125 58%, #6d1f3a 100%);
}

.landing-cta-soft::before {
  content: '';
  position: absolute;
  inset: 20px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 34px;
  pointer-events: none;
}

.landing-cta-soft .container {
  position: relative;
  z-index: 1;
}

.landing-cta-soft .eyebrow {
  display: inline-flex;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14);
  font-family: 'Quicksand', system-ui, sans-serif;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .12em;
}

.landing-cta-soft h2 {
  max-width: 760px;
  font-size: clamp(1.9rem, 3vw, 3rem);
  line-height: 1.12;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 600 !important;
  letter-spacing: -.01em;
  color: #fff !important;
}

.landing-cta-soft p {
  font-family: 'Quicksand', system-ui, sans-serif;
  font-size: 1.03rem;
  line-height: 1.72;
  color: rgba(255,255,255,.82) !important;
}

.landing-cta-soft .btn-light {
  border-radius: 999px;
  padding: .95rem 1.45rem;
  font-weight: 700;
  color: var(--nutri-wine, #62142d);
  box-shadow: 0 18px 38px rgba(0,0,0,.12);
}

.landing-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .75s ease, transform .75s ease;
}

.landing-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.landing-reveal img {
  transition: transform 1.2s ease, opacity .8s ease;
}

.landing-reveal.is-visible img {
  opacity: 1;
}

.landing-image-card.landing-reveal.is-visible img,
.landing-about-image.landing-reveal.is-visible img,
.landing-photo-frame.landing-reveal.is-visible img {
  animation: landingImageFade 1.1s ease both;
}

.landing-icon-motion {
  transform-origin: center;
}

.landing-reveal.is-visible .landing-icon-motion,
.landing-icon-motion.is-visible {
  animation: landingIconPop .8s cubic-bezier(.18, .89, .32, 1.28) both;
}

.landing-feature-card:nth-child(2n) .landing-icon-motion,
.landing-step-card:nth-child(2n) .landing-icon-motion {
  animation-delay: .08s;
}

@keyframes landingIconPop {
  0% { transform: scale(.68) rotate(-8deg); opacity: .25; }
  55% { transform: scale(1.08) rotate(4deg); opacity: 1; }
  100% { transform: scale(1) rotate(0); opacity: 1; }
}

@keyframes landingImageFade {
  0% { opacity: 0; transform: scale(1.035); }
  100% { opacity: 1; transform: scale(1); }
}

@media (max-width: 575px) {
  .landing-step-icon {
    width: 56px !important;
    height: 56px !important;
    font-size: 1.35rem;
  }
  .landing-cta-soft::before {
    inset: 12px;
    border-radius: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .landing-hero-orb,
  .landing-hero-leaf,
  .landing-reveal,
  .landing-reveal img,
  .landing-icon-motion {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* Landing page - uniformidade após remoção da metodologia */
.landing-about-section {
  position: relative;
  overflow: hidden;
}

.landing-about-section::after {
  content: "";
  position: absolute;
  right: -120px;
  bottom: -160px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(129, 140, 65, .12), rgba(129, 140, 65, 0) 68%);
  pointer-events: none;
}

.landing-after-about {
  margin-top: 0;
  background:
    radial-gradient(circle at top left, rgba(98, 20, 45, .06), transparent 32%),
    linear-gradient(180deg, rgba(248, 237, 242, .72), rgba(255, 255, 255, .96));
}

.landing-soft-section + .landing-after-about {
  padding-top: 4.6rem !important;
}

.landing-about-section .landing-check-list {
  margin-top: 1.4rem;
}

.landing-about-section h2,
.landing-after-about h2 {
  letter-spacing: -.018em;
}

@media (max-width: 991px) {
  .landing-soft-section + .landing-after-about {
    padding-top: 3.4rem !important;
  }
}


/* Landing page - chamada principal humanizada */
.landing-hero-banner .landing-title {
  font-family: 'Dancing Script', 'Cormorant Garamond', cursive !important;
  font-weight: 700 !important;
  letter-spacing: .005em;
  line-height: .98;
  max-width: 740px;
  color: var(--nutri-wine);
  text-wrap: balance;
}

.landing-hero-banner .landing-subtitle {
  max-width: 610px;
}

@media (max-width: 575px) {
  .landing-hero-banner .landing-title {
    line-height: 1.04;
  }
}


/* Pacote de acompanhamento - jornada e ferramentas */
.journey-card,
.journey-callout-card {
  border-radius: 26px;
}

.journey-callout-card {
  background:
    radial-gradient(circle at 10% 10%, rgba(129, 140, 65, .12), transparent 35%),
    linear-gradient(135deg, rgba(248, 237, 242, .92), rgba(255, 255, 255, .98));
}

.journey-progress {
  height: 22px;
  border-radius: 999px;
  background: rgba(129, 140, 65, .12);
}

.journey-progress .progress-bar {
  background: linear-gradient(135deg, var(--nutri-olive), var(--nutri-wine));
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 700;
}

.tool-list {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  max-height: 420px;
  overflow: auto;
  padding-right: .25rem;
}

.tool-list-item {
  border: 1px solid rgba(98, 20, 45, .08);
  border-radius: 18px;
  padding: .9rem 1rem;
  background: rgba(255, 255, 255, .76);
}

.tool-list-item:hover {
  border-color: rgba(129, 140, 65, .28);
  box-shadow: 0 .6rem 1.4rem rgba(80, 17, 37, .06);
}


.preconsult-profile-card {
  border-radius: 24px;
  background:
    radial-gradient(circle at 8% 20%, rgba(129, 140, 65, .10), transparent 34%),
    linear-gradient(135deg, rgba(248, 237, 242, .72), rgba(255,255,255,.98));
}


/* Diário alimentar - histórico do paciente e visualização pela nutricionista */
.daily-log-timeline {
  display: flex;
  flex-direction: column;
  gap: .85rem;
}

.daily-log-card {
  border: 1px solid rgba(98, 20, 45, .08);
  border-radius: 20px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 .4rem 1rem rgba(80, 17, 37, .04);
  overflow: hidden;
}

.daily-log-card summary {
  list-style: none;
  cursor: pointer;
  padding: 1rem 1.1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.daily-log-card summary::-webkit-details-marker {
  display: none;
}

.daily-log-summary-action {
  color: var(--nutri-olive-dark);
  font-size: .86rem;
  font-weight: 700;
  white-space: nowrap;
}

.daily-log-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  padding: 0 1.1rem 1.1rem;
}

.daily-log-grid div {
  border-radius: 16px;
  background: rgba(243, 245, 232, .58);
  padding: .8rem;
}

.daily-log-grid span {
  display: block;
  color: var(--nutri-wine);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .25rem;
}

.daily-log-grid p {
  margin: 0;
  color: #5f5460;
  white-space: pre-wrap;
}

@media (max-width: 767px) {
  .daily-log-grid {
    grid-template-columns: 1fr;
  }

  .daily-log-card summary {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* Diário alimentar - modal flutuante paginado */
.daily-log-floating-modal .modal-content {
  border-radius: 28px;
  overflow: hidden;
}

.daily-log-floating-modal .modal-header {
  background:
    radial-gradient(circle at 10% 10%, rgba(129, 140, 65, .12), transparent 34%),
    linear-gradient(135deg, rgba(248, 237, 242, .86), rgba(255, 255, 255, .98));
  border-bottom: 1px solid rgba(98, 20, 45, .08);
}

.daily-log-floating-modal .modal-body {
  max-height: min(72vh, 680px);
  overflow-y: auto;
  padding: 1.25rem;
}

.daily-log-modal-pages {
  min-height: 220px;
}

.daily-log-pagination {
  position: sticky;
  bottom: -1.25rem;
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgba(98, 20, 45, .08);
  padding: 1rem 0 .2rem;
  z-index: 2;
}


/* Modal de alteração de senha do paciente */
.patient-password-modal {
  border-radius: 24px;
  overflow: hidden;
}

.patient-password-modal .modal-header {
  background:
    radial-gradient(circle at 10% 10%, rgba(98, 20, 45, .10), transparent 34%),
    linear-gradient(135deg, rgba(248, 237, 242, .9), rgba(255, 255, 255, .98));
  border-bottom: 1px solid rgba(98, 20, 45, .08);
}


/* Modal de WhatsApp do paciente */
.patient-whatsapp-modal {
  border-radius: 24px;
  overflow: hidden;
}

.patient-whatsapp-modal .modal-header {
  background:
    radial-gradient(circle at 10% 10%, rgba(129, 140, 65, .14), transparent 34%),
    linear-gradient(135deg, rgba(243, 245, 232, .92), rgba(255, 255, 255, .98));
  border-bottom: 1px solid rgba(98, 20, 45, .08);
}


/* Ambientes mais clean - paciente e nutricionista */
.clean-heading {
  align-items: center;
}

.patient-clean-area,
.nutritionist-clean-area,
.patient-profile-clean {
  --clean-card-bg: rgba(255, 255, 255, .92);
}

.patient-app-hero,
.clean-profile-hero {
  border-radius: 30px;
  background:
    radial-gradient(circle at 8% 12%, rgba(129, 140, 65, .14), transparent 34%),
    linear-gradient(135deg, rgba(248, 237, 242, .88), rgba(255, 255, 255, .98));
}

.patient-quick-actions,
.clean-staff-actions {
  scroll-margin-top: 96px;
}

.clean-action-card {
  display: flex;
  height: 100%;
  min-height: 132px;
  flex-direction: column;
  justify-content: center;
  gap: .35rem;
  padding: 1.15rem;
  border-radius: 24px;
  background: var(--clean-card-bg);
  border: 1px solid rgba(98, 20, 45, .08);
  color: var(--nutri-dark);
  text-decoration: none;
  box-shadow: 0 .65rem 1.4rem rgba(80, 17, 37, .045);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.clean-action-card:hover {
  transform: translateY(-2px);
  border-color: rgba(129, 140, 65, .32);
  box-shadow: 0 1rem 2rem rgba(80, 17, 37, .08);
  color: var(--nutri-wine);
}

.clean-action-icon {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  background: rgba(243, 245, 232, .85);
  font-size: 1.35rem;
  margin-bottom: .2rem;
}

.clean-action-card strong {
  font-size: 1.02rem;
  color: var(--nutri-wine);
}

.clean-action-card small {
  color: #74646c;
}

.clean-section-card,
.clean-tab-content .card {
  border-radius: 26px;
}

.clean-metric {
  min-height: 112px;
}

.clean-mini {
  border-color: rgba(98, 20, 45, .08);
  background: rgba(255, 255, 255, .82);
}

.clean-list .list-group-item {
  background: transparent;
}

.clean-tabs {
  gap: .5rem;
  padding: .5rem;
  border-radius: 24px;
  background: rgba(255, 255, 255, .74);
  border: 1px solid rgba(98, 20, 45, .08);
  box-shadow: 0 .45rem 1.2rem rgba(80, 17, 37, .04);
}

.clean-tabs .nav-link {
  border-radius: 999px;
  color: #604a55;
  font-weight: 800;
  border: 1px solid transparent;
}

.clean-tabs .nav-link.active {
  background: var(--nutri-olive);
  color: #fff;
  box-shadow: 0 .4rem 1rem rgba(129, 140, 65, .22);
}

.clean-tab-content {
  min-height: 260px;
}

.clean-action-panel {
  justify-content: flex-end;
}

.clean-table thead th {
  color: var(--nutri-wine);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.clean-section-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.profile-dropdown .dropdown-item.text-danger:hover {
  background: rgba(220, 53, 69, .08);
}

@media (max-width: 991px) {
  .clean-action-panel {
    justify-content: flex-start;
  }

  .clean-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .clean-tabs .nav-link {
    white-space: nowrap;
  }
}


/* Correção visual da página pública de agendamento */
.booking-page-shell {
  background:
    radial-gradient(circle at 8% 8%, rgba(129, 140, 65, .10), transparent 32%),
    linear-gradient(180deg, #fff 0%, #fbf8f6 46%, #f3f5e8 100%);
  margin-bottom: 0;
  padding-bottom: 1.25rem;
}

.booking-calendar-section {
  margin-bottom: 0;
}

.booking-calendar-section .booking-split-grid {
  margin-bottom: 0;
}

.booking-page-shell + .modal {
  margin-top: 0;
}

@media (max-width: 767.98px) {
  .booking-page-shell {
    padding-bottom: .75rem;
  }

  .booking-calendar-section {
    padding-bottom: 1rem !important;
  }
}


/* Correção visual das páginas internas de agendamento */
.staff-schedule-page-shell {
  min-height: calc(100vh - 88px);
  background:
    radial-gradient(circle at 10% 8%, rgba(129, 140, 65, .10), transparent 32%),
    radial-gradient(circle at 92% 14%, rgba(98, 20, 45, .08), transparent 30%),
    linear-gradient(180deg, #fbf8f6 0%, #f3f5e8 100%);
  margin: -1rem 0 0;
  padding: 1.25rem 0 1.25rem;
}

.staff-schedule-section {
  padding-top: 1rem;
  padding-bottom: 0;
}

.staff-schedule-section > .card {
  margin-bottom: 0;
}

.staff-schedule-page-shell + .modal,
.staff-schedule-page-shell + .modal + .modal {
  margin-top: 0;
}

@media (max-width: 767.98px) {
  .staff-schedule-page-shell {
    min-height: calc(100vh - 76px);
    padding-bottom: .75rem;
  }

  .staff-schedule-section {
    padding-bottom: 0;
  }
}


/* Ambiente administrativo clean */
.admin-clean-page .clean-heading {
  align-items: center;
}

.admin-executive-grid .clean-action-card,
.admin-action-card {
  min-height: 142px;
}

.admin-panel-card,
.admin-table-card,
.admin-filter-card {
  border-radius: 26px;
  background:
    radial-gradient(circle at 96% 0%, rgba(129, 140, 65, .08), transparent 34%),
    rgba(255, 255, 255, .94);
}

.admin-shortcut-card {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  min-height: 92px;
  justify-content: center;
  padding: 1rem;
  border: 1px solid rgba(98, 20, 45, .08);
  border-radius: 20px;
  background: rgba(255, 255, 255, .84);
  color: var(--nutri-dark);
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.admin-shortcut-card:hover {
  transform: translateY(-2px);
  border-color: rgba(129, 140, 65, .32);
  box-shadow: 0 .7rem 1.4rem rgba(80, 17, 37, .07);
  color: var(--nutri-wine);
}

.admin-shortcut-card strong {
  color: var(--nutri-wine);
}

.admin-shortcut-card small {
  color: #75666d;
}

.admin-alert-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border-radius: 18px;
  border: 1px solid rgba(98, 20, 45, .08);
  background: #fff;
  color: var(--nutri-dark);
  text-decoration: none;
}

.admin-alert-card:hover {
  color: var(--nutri-wine);
  transform: translateY(-1px);
  box-shadow: 0 .55rem 1.1rem rgba(80, 17, 37, .06);
}

.admin-alert-card strong,
.admin-alert-card small {
  display: block;
}

.admin-alert-card small {
  color: #75666d;
}

.admin-alert-card > span {
  min-width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  font-weight: 900;
  color: var(--nutri-wine);
  background: var(--nutri-wine-soft);
}

.admin-alert-card.tone-warning > span { background: #fff3cd; color: #9a6b00; }
.admin-alert-card.tone-danger > span { background: #ffe3e3; color: #9d2424; }
.admin-alert-card.tone-info > span { background: var(--nutri-olive-soft); color: var(--nutri-olive-dark); }
.admin-alert-card.tone-secondary > span { background: #f0eef0; color: #65545d; }

.admin-alert-card-large {
  min-height: 132px;
  flex-direction: column;
  align-items: flex-start;
}

.admin-alert-card-large > span {
  margin-top: .6rem;
}

.admin-finance-metric strong {
  font-size: 1.65rem;
}

.admin-status-mini {
  min-height: 104px;
}

.payment-badge {
  border-radius: 999px;
  padding: .35rem .65rem;
  font-weight: 850;
  text-transform: capitalize;
}

.payment-pago { background: var(--nutri-olive-soft); color: var(--nutri-olive-dark); }
.payment-pendente { background: #fff3cd; color: #9a6b00; }
.payment-parcial { background: var(--nutri-wine-soft); color: var(--nutri-wine); }
.payment-cortesia { background: #eef4ff; color: #315f9d; }
.payment-cancelado { background: #ffe3e3; color: #9d2424; }

.admin-clean-table thead th,
.users-table thead th,
.patients-table thead th {
  color: var(--nutri-wine);
  font-size: .76rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}

.clean-actions-dropdown .dropdown-menu {
  border-radius: 18px;
  border-color: rgba(98, 20, 45, .10);
  box-shadow: 0 .8rem 1.8rem rgba(80, 17, 37, .10);
}

.clean-actions-dropdown .dropdown-item {
  font-weight: 650;
}

@media print {
  .admin-finance-page .navbar,
  .admin-finance-page .page-heading .btn,
  .admin-finance-page .admin-filter-card,
  .admin-finance-page .whatsapp-float-icon,
  .admin-finance-page .btn {
    display: none !important;
  }
}


/* Menu agrupado da nutricionista */
.navbar .dropdown-menu {
  border-radius: 18px;
  border-color: rgba(98, 20, 45, .10);
  box-shadow: 0 .8rem 1.8rem rgba(80, 17, 37, .10);
}

.navbar .dropdown-item {
  font-weight: 650;
}

@media (max-width: 991.98px) {
  .navbar .dropdown-menu {
    box-shadow: none;
    border-radius: 14px;
    margin-top: .35rem;
  }
}


/* Pré-consulta dinâmica */
.pre-consultation-wizard-page,
.pre-consultation-view-page {
  scroll-margin-top: 96px;
}

.preconsult-sidebar {
  border-radius: 28px;
  background:
    radial-gradient(circle at 15% 10%, rgba(129, 140, 65, .14), transparent 34%),
    rgba(255, 255, 255, .96);
}

.preconsult-progress {
  height: .65rem;
  border-radius: 999px;
  background: rgba(129, 140, 65, .16);
}

.preconsult-progress .progress-bar {
  border-radius: 999px;
  background: var(--nutri-olive);
}

.preconsult-step-list {
  display: grid;
  gap: .45rem;
}

.preconsult-step-list button {
  border: 1px solid rgba(98, 20, 45, .08);
  background: rgba(255, 255, 255, .82);
  border-radius: 999px;
  padding: .55rem .75rem;
  text-align: left;
  color: #604a55;
  font-weight: 750;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

.preconsult-step-list button.active,
.preconsult-step-list button:hover {
  background: var(--nutri-olive);
  color: #fff;
  transform: translateX(2px);
}

.preconsult-step {
  border-radius: 28px;
}

.preconsult-step .card-body {
  padding: 1.5rem;
}

.preconsult-meal-grid,
.preconsult-meal-view-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.preconsult-meal-card {
  padding: 1rem;
  border-radius: 20px;
  border: 1px solid rgba(98, 20, 45, .08);
  background: rgba(255, 255, 255, .82);
}

.preconsult-meal-card strong,
.preconsult-meal-card small {
  display: block;
}

.preconsult-review-box {
  display: grid;
  gap: .8rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.preconsult-review-box div {
  padding: 1rem;
  border-radius: 18px;
  border: 1px solid rgba(98, 20, 45, .08);
  background: rgba(255, 255, 255, .86);
}

.preconsult-review-box strong,
.preconsult-review-box span {
  display: block;
}

.preconsult-review-box strong {
  color: var(--nutri-wine);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.preconsult-summary-card,
.preconsult-alert-card {
  border-radius: 28px;
  background:
    radial-gradient(circle at 92% 0%, rgba(129, 140, 65, .10), transparent 34%),
    rgba(255, 255, 255, .96);
}

.preconsult-alert-list {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.preconsult-alert-list span {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .45rem .7rem;
  border-radius: 999px;
  background: #fff3cd;
  color: #7a5600;
  font-weight: 800;
  font-size: .86rem;
}

@media (max-width: 991px) {
  .preconsult-meal-grid,
  .preconsult-meal-view-grid,
  .preconsult-review-box {
    grid-template-columns: 1fr;
  }

  .preconsult-step .card-body {
    padding: 1.15rem;
  }
}


/* Acompanhamento avançado */
.pending-action-card,
.decision-card,
.kanban-patient-card {
  text-decoration: none;
  color: inherit;
}

.pending-action-card {
  display: block;
  min-height: 118px;
  border-radius: 24px;
  transition: transform .18s ease, box-shadow .18s ease;
}

.pending-action-card:hover,
.kanban-patient-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 .9rem 1.8rem rgba(80, 17, 37, .09);
}

.patient-decision-grid .decision-card strong,
.patient-motivation-grid .mini-card strong {
  font-size: 1.55rem;
}

.patient-attention-alert {
  border-radius: 24px;
  background: #fff8e1;
}

.patient-timeline {
  display: grid;
  gap: 1rem;
}

.timeline-item {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: .9rem;
  padding: 1rem;
  border-radius: 20px;
  border: 1px solid rgba(98, 20, 45, .08);
  background: rgba(255, 255, 255, .86);
}

.timeline-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: var(--nutri-olive-soft);
}

.timeline-item strong,
.timeline-item small {
  display: block;
}

.timeline-item p {
  margin: .25rem 0 0;
  color: #604a55;
}

.goal-list {
  display: grid;
  gap: 1rem;
}

.goal-card {
  padding: 1rem;
  border-radius: 20px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(98, 20, 45, .08);
}

.goal-card strong,
.goal-card small {
  display: block;
}

.goal-card .progress,
.goal-card .progress-bar {
  border-radius: 999px;
}

.goal-card .progress {
  height: .55rem;
  background: rgba(129, 140, 65, .16);
}

.goal-card .progress-bar {
  background: var(--nutri-olive);
}

.kanban-board {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 1fr);
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: .5rem;
}

.kanban-column {
  min-height: 460px;
  border-radius: 26px;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(98, 20, 45, .08);
  box-shadow: 0 .4rem 1rem rgba(80, 17, 37, .04);
}

.kanban-column-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid rgba(98, 20, 45, .08);
}

.kanban-column-header strong,
.kanban-column-header small {
  display: block;
}

.kanban-column-header strong {
  color: var(--nutri-wine);
}

.kanban-column-header span {
  min-width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--nutri-olive-soft);
  color: var(--nutri-olive-dark);
  font-weight: 900;
}

.kanban-column-body {
  display: grid;
  gap: .75rem;
  padding: 1rem;
}

.kanban-patient-card {
  display: grid;
  gap: .25rem;
  padding: 1rem;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .08);
  transition: transform .18s ease, box-shadow .18s ease;
}

.kanban-patient-card strong {
  color: var(--nutri-wine);
}

.kanban-patient-card span,
.kanban-patient-card small {
  color: #604a55;
}

.kanban-empty {
  padding: 1rem;
  border-radius: 18px;
  background: rgba(243, 245, 232, .78);
  color: #6a5a63;
  text-align: center;
  font-weight: 700;
}



.daily-review-form {
  padding: .8rem;
  border-radius: 16px;
  background: rgba(243, 245, 232, .7);
}

.patient-report-page .print-document-header {
  display: flex;
}

@media print {
  .patient-report-page .navbar,
  .patient-report-page .no-print,
  .patient-report-page .whatsapp-float-icon {
    display: none !important;
  }

  .patient-report-page {
    padding: 0 !important;
  }
}

@media (max-width: 991.98px) {
  .kanban-board {
    grid-auto-columns: minmax(250px, 86vw);
  }
}


/* Comentário da nutricionista visível para o paciente */
.daily-log-comment-preview {
  margin-top: .15rem;
  color: var(--nutri-olive-dark);
  font-weight: 800;
}

.patient-daily-review {
  padding: .95rem;
  border-radius: 18px;
  background:
    radial-gradient(circle at 95% 0%, rgba(129, 140, 65, .10), transparent 34%),
    rgba(243, 245, 232, .85);
  border: 1px solid rgba(129, 140, 65, .18);
}

.patient-daily-review .review-label,
.patient-daily-review strong,
.patient-daily-review small {
  display: block;
}

.patient-daily-review .review-label {
  color: var(--nutri-wine);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 850;
}

.patient-daily-review strong {
  color: var(--nutri-dark);
}

.patient-daily-review small {
  color: #7a6871;
}


/* Status do comentário no diário alimentar - visual limpo */
.patient-daily-review > .d-flex {
  align-items: flex-start;
}

.daily-review-status {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  width: fit-content;
  max-width: 100%;
  padding: .32rem .62rem;
  border-radius: 12px;
  font-size: .78rem;
  font-weight: 850;
  line-height: 1.2;
  border: 1px solid rgba(98, 20, 45, .08);
  background: rgba(255, 255, 255, .74);
  color: #604a55;
}

.daily-review-status .status-dot {
  width: .48rem;
  height: .48rem;
  flex: 0 0 .48rem;
  border-radius: 50%;
  background: currentColor;
  opacity: .85;
}

.daily-review-status.status-nao_analisado {
  color: #8a6400;
  background: rgba(255, 248, 225, .86);
  border-color: rgba(138, 100, 0, .18);
}

.daily-review-status.status-analisado {
  color: var(--nutri-olive-dark);
  background: rgba(243, 245, 232, .88);
  border-color: rgba(129, 140, 65, .22);
}

.daily-review-status.status-precisa_ajuste {
  color: var(--nutri-wine);
  background: rgba(248, 237, 242, .88);
  border-color: rgba(98, 20, 45, .18);
}

@media (max-width: 767.98px) {
  .daily-review-status {
    margin-top: .65rem;
  }
}


/* Status do diário alinhado à direita */
.patient-daily-review-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.patient-daily-review-meta {
  min-width: 0;
}

.patient-daily-review-comment {
  max-width: 78%;
}

.patient-daily-review .daily-review-status {
  flex: 0 0 auto;
  margin-top: .05rem;
  margin-left: auto;
}

@media (max-width: 767.98px) {
  .patient-daily-review-head {
    align-items: stretch;
    gap: .75rem;
  }

  .patient-daily-review .daily-review-status {
    align-self: flex-start;
  }

  .patient-daily-review-comment {
    max-width: 100%;
  }
}


/* Landing page dinâmica e mais amigável */
.landing-dynamic-hero {
  position: relative;
  overflow: hidden;
}

.landing-objective-picker {
  padding: .95rem;
  border-radius: 24px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(98, 20, 45, .09);
  box-shadow: 0 .8rem 1.7rem rgba(80, 17, 37, .07);
}

.landing-objective-picker > span {
  display: block;
  color: var(--nutri-wine);
  font-weight: 850;
  font-size: .88rem;
  margin-bottom: .65rem;
}

.landing-objective-picker > div {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.landing-objective-picker a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .5rem .75rem;
  border-radius: 999px;
  background: var(--nutri-olive-soft);
  color: var(--nutri-olive-dark);
  text-decoration: none;
  font-weight: 850;
  font-size: .88rem;
  border: 1px solid rgba(129, 140, 65, .22);
  transition: transform .18s ease, background .18s ease, color .18s ease;
}

.landing-objective-picker a:hover {
  transform: translateY(-2px);
  background: var(--nutri-olive);
  color: #fff;
}

.landing-goals-section {
  position: relative;
  z-index: 2;
}

.landing-goal-card {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  min-height: 100%;
  padding: 1.3rem;
  border-radius: 28px;
  background:
    radial-gradient(circle at 100% 0%, rgba(129, 140, 65, .13), transparent 34%),
    #fff;
  border: 1px solid rgba(98, 20, 45, .08);
  color: inherit;
  text-decoration: none;
  box-shadow: 0 .55rem 1.4rem rgba(80, 17, 37, .05);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.landing-goal-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 1rem 2.2rem rgba(80, 17, 37, .10);
  border-color: rgba(129, 140, 65, .32);
}

.landing-goal-card > span {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: var(--nutri-wine-soft);
  color: var(--nutri-wine);
  font-size: 1.35rem;
}

.landing-goal-card h3 {
  color: var(--nutri-wine);
  margin-bottom: 0;
}

.landing-goal-card p {
  color: #6d5b65;
  margin: 0;
  flex: 1;
}

.landing-goal-card small {
  color: var(--nutri-olive-dark);
  font-weight: 900;
}

.landing-how-section {
  border-top: 1px solid rgba(98, 20, 45, .06);
  border-bottom: 1px solid rgba(98, 20, 45, .06);
}

.landing-step-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.landing-step-card {
  position: relative;
  padding: 1.2rem;
  border-radius: 26px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(98, 20, 45, .08);
  box-shadow: 0 .55rem 1.4rem rgba(80, 17, 37, .05);
}

.landing-step-card .landing-step-number {
  position: absolute;
  top: .9rem;
  right: .9rem;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--nutri-olive);
  color: #fff;
  font-weight: 900;
}

.landing-step-card > span {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: var(--nutri-olive-soft);
  color: var(--nutri-olive-dark);
  font-size: 1.25rem;
  margin-bottom: .8rem;
}

.landing-step-card h3 {
  color: var(--nutri-wine);
}

.landing-step-card p {
  color: #6d5b65;
  margin: 0;
}

.landing-portal-preview {
  position: relative;
}

.landing-portal-phone {
  max-width: 380px;
  margin: 0 auto;
  padding: 1rem;
  border-radius: 36px;
  background:
    linear-gradient(145deg, rgba(98, 20, 45, .09), rgba(129, 140, 65, .14)),
    #fff;
  border: 1px solid rgba(98, 20, 45, .10);
  box-shadow: 0 1.4rem 3rem rgba(80, 17, 37, .12);
}

.landing-phone-top {
  width: 86px;
  height: 7px;
  border-radius: 999px;
  background: rgba(98, 20, 45, .25);
  margin: .2rem auto 1rem;
}

.landing-phone-card {
  display: grid;
  gap: .7rem;
  padding: 1.2rem;
  border-radius: 26px;
  background: #fff;
  min-height: 360px;
}

.landing-phone-card small {
  color: var(--nutri-wine);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.landing-phone-card strong {
  font-size: 1.35rem;
  color: var(--nutri-dark);
  line-height: 1.15;
}

.landing-phone-pill {
  padding: .78rem .9rem;
  border-radius: 18px;
  background: var(--nutri-olive-soft);
  color: var(--nutri-olive-dark);
  font-weight: 850;
}

.landing-mini-feature {
  min-height: 100%;
  padding: 1rem;
  border-radius: 22px;
  border: 1px solid rgba(98, 20, 45, .08);
  background: rgba(255,255,255,.84);
}

.landing-mini-feature i {
  color: var(--nutri-wine);
  font-size: 1.3rem;
}

.landing-mini-feature strong,
.landing-mini-feature small {
  display: block;
}

.landing-mini-feature strong {
  color: var(--nutri-wine);
  margin-top: .45rem;
}

.landing-mini-feature small {
  color: #6d5b65;
  margin-top: .2rem;
}

.landing-fit-card {
  padding: 1.5rem;
  border-radius: 30px;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .08);
  box-shadow: 0 .55rem 1.4rem rgba(80, 17, 37, .05);
}

.landing-fit-card-soft {
  background:
    radial-gradient(circle at 100% 0%, rgba(129, 140, 65, .12), transparent 34%),
    var(--nutri-olive-soft);
}

.landing-fit-card ul {
  display: grid;
  gap: .75rem;
  list-style: none;
  padding: 0;
  margin: 1rem 0 0;
}

.landing-fit-card li {
  position: relative;
  padding-left: 1.65rem;
  color: #604a55;
  font-weight: 650;
}

.landing-fit-card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--nutri-olive-dark);
  font-weight: 950;
}

.landing-testimonial-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 1fr);
  gap: 1rem;
  overflow-x: auto;
  padding: .25rem .25rem 1rem;
  scroll-snap-type: x proximity;
}

.landing-testimonial-track .landing-testimonial-card {
  scroll-snap-align: start;
  min-height: 220px;
}

.landing-faq-modern .accordion-item {
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(98, 20, 45, .08);
  margin-bottom: .75rem;
  box-shadow: 0 .35rem .9rem rgba(80, 17, 37, .04);
}

.landing-faq-modern .accordion-button {
  font-weight: 850;
  color: var(--nutri-wine);
}

.landing-sticky-booking {
  position: fixed;
  right: 1rem;
  bottom: 6.4rem;
  z-index: 1025;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .78rem 1rem;
  border-radius: 999px;
  background: var(--nutri-wine);
  color: #fff;
  text-decoration: none;
  font-weight: 900;
  box-shadow: 0 .9rem 2rem rgba(80, 17, 37, .22);
  transition: transform .18s ease, background .18s ease;
}

.landing-sticky-booking:hover {
  color: #fff;
  background: var(--nutri-wine-dark);
  transform: translateY(-2px);
}

@media (max-width: 991.98px) {
  .landing-step-grid {
    grid-template-columns: 1fr;
  }

  .landing-portal-phone {
    max-width: 100%;
  }
}

@media (max-width: 767.98px) {
  .landing-objective-picker a {
    flex: 1 1 46%;
  }

  .landing-sticky-booking {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    justify-content: center;
  }

  .whatsapp-float-icon {
    bottom: 5rem;
  }
}


/* Orientação de dimensões das imagens no editor da landing */
.image-dimension-helper {
  margin-top: .75rem;
  padding: .8rem .9rem;
  border-radius: 16px;
  background: rgba(243, 245, 232, .88);
  border: 1px solid rgba(129, 140, 65, .22);
  color: #5f4e57;
}

.image-dimension-helper strong {
  display: block;
  color: var(--nutri-wine);
  font-size: .88rem;
  margin-bottom: .2rem;
}

.image-dimension-helper small {
  display: block;
  color: #75666d;
  line-height: 1.35;
}


/* Plano comercial vinculado ao paciente */
.patient-package-alert {
  border-radius: 24px;
  background: #fff8e1;
  color: #6f5200;
}

.patient-package-alert > div {
  display: grid;
  gap: .15rem;
}

.patient-package-alert strong {
  color: var(--nutri-wine);
}

.patient-package-alert span {
  color: #6f5200;
}

.patient-current-package,
.patient-package-card {
  border-radius: 26px;
}

.patient-current-package {
  background:
    radial-gradient(circle at 100% 0%, rgba(129, 140, 65, .12), transparent 34%),
    #fff;
}

.package-contract-list {
  display: grid;
  gap: .6rem;
}

.package-contract-list div {
  padding: .65rem .75rem;
  border-radius: 16px;
  background: rgba(243, 245, 232, .72);
  border: 1px solid rgba(129, 140, 65, .16);
}

.package-contract-list span,
.package-contract-list strong {
  display: block;
}

.package-contract-list span {
  color: #786a70;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.package-contract-list strong {
  color: var(--nutri-wine);
}


/* Comercial avançado - pacotes e contratos */
.commercial-package-tool-card textarea {
  resize: vertical;
}

.commercial-package-item {
  border-left: 4px solid rgba(129, 140, 65, .55);
}

.commercial-benefit-list {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.commercial-benefit-list span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .35rem .6rem;
  background: rgba(243, 245, 232, .86);
  color: var(--nutri-olive-dark);
  font-size: .78rem;
  font-weight: 800;
}

.commercial-contract-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.commercial-consumption {
  display: grid;
  gap: .85rem;
}

.commercial-consumption .progress {
  height: .55rem;
  border-radius: 999px;
  background: rgba(129, 140, 65, .14);
}

.commercial-consumption .progress-bar {
  border-radius: 999px;
  background: var(--nutri-olive);
}

.commercial-installments {
  padding: .9rem;
  border-radius: 18px;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(98,20,45,.08);
}

.commercial-installment-row {
  display: grid;
  grid-template-columns: 42px 90px 90px 130px minmax(110px, 1fr) auto;
  gap: .5rem;
  align-items: center;
  padding: .45rem 0;
  border-bottom: 1px solid rgba(98,20,45,.06);
}

.commercial-installment-row:last-child {
  border-bottom: 0;
}

.commercial-history-list {
  display: grid;
  gap: .65rem;
}

.commercial-history-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem;
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(98, 20, 45, .08);
}

.commercial-history-item strong,
.commercial-history-item small {
  display: block;
}

.commercial-history-item strong {
  color: var(--nutri-wine);
}

.commercial-contracts-table td {
  vertical-align: middle;
}

.commercial-filter-card {
  border-radius: 24px;
}

@media (max-width: 991.98px) {
  .commercial-contract-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .commercial-installment-row {
    grid-template-columns: 36px 1fr 1fr;
  }

  .commercial-installment-row select,
  .commercial-installment-row input,
  .commercial-installment-row button {
    grid-column: span 3;
  }
}

@media (max-width: 575.98px) {
  .commercial-contract-grid {
    grid-template-columns: 1fr;
  }

  .commercial-history-item {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* Ajuste: pacote comercial discreto e integrado ao financeiro do paciente */
.patient-plan-soft-badge {
  color: var(--nutri-wine) !important;
  border: 1px solid rgba(98, 20, 45, .10);
  background: rgba(248, 237, 242, .72) !important;
  font-weight: 750;
}

.patient-plan-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border-radius: 22px;
  background:
    radial-gradient(circle at 100% 0%, rgba(129, 140, 65, .12), transparent 34%),
    rgba(255, 255, 255, .88);
  border: 1px solid rgba(98, 20, 45, .08);
  box-shadow: 0 .45rem 1.2rem rgba(80, 17, 37, .045);
}

.patient-plan-strip span,
.patient-plan-strip strong,
.patient-plan-strip small {
  display: block;
}

.patient-plan-strip span {
  color: var(--nutri-wine);
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.patient-plan-strip strong {
  color: var(--nutri-dark);
}

.patient-plan-strip small {
  color: #76666d;
}

.commercial-installments-card .commercial-installments {
  background: transparent;
  border: 0;
  padding: 0;
}

@media (max-width: 767.98px) {
  .patient-plan-strip {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* Financeiro dos pacotes - visão confortável */
.package-finance-summary-card,
.commercial-contract-card {
  border-radius: 28px;
}

.package-finance-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
}

.package-finance-mini {
  padding: .95rem;
  border-radius: 20px;
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(98,20,45,.08);
}

.package-finance-mini span,
.package-finance-mini strong {
  display: block;
}

.package-finance-mini span {
  color: #786a70;
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.package-finance-mini strong {
  color: var(--nutri-wine);
  font-size: 1.08rem;
}

.package-finance-mini.is-pending strong {
  color: #8a6400;
}

.package-finance-mini.is-ok strong {
  color: var(--nutri-olive-dark);
}

.package-payment-progress .progress {
  height: .62rem;
  border-radius: 999px;
  background: rgba(129, 140, 65, .14);
}

.package-payment-progress .progress-bar {
  border-radius: 999px;
  background: var(--nutri-olive);
}

.package-subtle-alert {
  display: grid;
  gap: .15rem;
  padding: .8rem .95rem;
  border-radius: 18px;
  background: rgba(248, 237, 242, .9);
  border: 1px solid rgba(98,20,45,.12);
  color: var(--nutri-wine);
}

.package-subtle-alert.is-soft {
  background: rgba(255, 248, 225, .92);
  border-color: rgba(138,100,0,.16);
  color: #6f5200;
}

.package-subtle-alert strong,
.package-subtle-alert span {
  display: block;
}

.installment-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
}

.installment-card {
  display: grid;
  gap: .35rem;
  padding: 1rem;
  border-radius: 22px;
  background: #fff;
  border: 1px solid rgba(98,20,45,.08);
  box-shadow: 0 .35rem .9rem rgba(80,17,37,.04);
}

.installment-card > small {
  color: #786a70;
}

.installment-card span,
.installment-card strong {
  display: block;
}

.installment-card.is-paid {
  border-color: rgba(129,140,65,.24);
  background: rgba(243,245,232,.62);
}

.installment-card.is-overdue {
  border-color: rgba(98,20,45,.22);
  background: rgba(248,237,242,.68);
}

.commercial-history-accordion .accordion-item {
  border-radius: 24px;
  overflow: hidden;
}

.commercial-history-accordion .accordion-button {
  color: var(--nutri-wine);
  font-weight: 850;
}

.commercial-contract-list {
  display: grid;
  gap: 1rem;
}

.commercial-contract-details {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.commercial-contract-details span {
  padding: .35rem .6rem;
  border-radius: 999px;
  background: rgba(243,245,232,.82);
  color: var(--nutri-olive-dark);
  font-size: .82rem;
}

@media (max-width: 991.98px) {
  .package-finance-cards,
  .installment-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .package-finance-cards,
  .installment-card-grid {
    grid-template-columns: 1fr;
  }
}


/* Edição individual das refeições do plano alimentar */
.meal-card-actions {
  display: flex;
  align-items: flex-start;
  gap: .45rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.meal-card-actions form {
  margin: 0;
}

@media (max-width: 575.98px) {
  .meal-card-actions {
    width: 100%;
    justify-content: flex-start;
  }
}


/* Plano alimentar do paciente em visualização flutuante */
.patient-meal-plan-trigger {
  width: 100%;
  border: 0;
  text-align: left;
}

.patient-meal-plan-preview {
  overflow: hidden;
}

.meal-plan-preview-list {
  max-height: 320px;
  overflow: hidden;
}

.meal-preview-item {
  width: 100%;
  border: 1px solid rgba(98, 20, 45, .08);
  text-align: left;
  background: rgba(255, 255, 255, .86);
}

.meal-preview-item:hover {
  border-color: rgba(129, 140, 65, .34);
  transform: translateY(-1px);
}

.meal-plan-more-card {
  border: 1px dashed rgba(129, 140, 65, .42);
  background: rgba(243, 245, 232, .74);
  color: var(--nutri-olive-dark);
  border-radius: 18px;
  padding: .8rem 1rem;
  font-weight: 850;
  text-align: center;
}

.patient-meal-plan-modal-dialog {
  max-width: min(1040px, calc(100vw - 1.5rem));
}

.patient-meal-plan-modal {
  border-radius: 28px;
  overflow: hidden;
}

.patient-meal-plan-modal .modal-body {
  max-height: min(72vh, 760px);
  overflow-y: auto;
  background:
    radial-gradient(circle at 100% 0%, rgba(129, 140, 65, .08), transparent 30%),
    #fff;
}

.patient-meal-floating-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.patient-meal-floating-card {
  padding: 1rem;
  border-radius: 22px;
  background: rgba(255, 255, 255, .94);
  border: 1px solid rgba(98, 20, 45, .08);
  box-shadow: 0 .35rem 1rem rgba(80, 17, 37, .045);
}

@media (max-width: 767.98px) {
  .patient-meal-floating-list {
    grid-template-columns: 1fr;
  }

  .patient-meal-plan-modal .modal-header {
    align-items: flex-start;
    gap: .75rem;
  }

  .patient-meal-plan-modal .modal-header > .d-flex {
    align-items: flex-start !important;
  }
}


/* Ajuste visual do status das parcelas no financeiro */
.installment-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .85rem;
}

.installment-card-title span,
.installment-card-title strong {
  display: block;
}

.installment-card-title span {
  color: #786a70;
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.installment-card-title strong {
  color: var(--nutri-wine);
  font-size: 1.14rem;
}

.installment-status-line {
  display: flex;
  align-items: center;
  gap: .65rem;
  width: 100%;
  padding: .65rem .75rem;
  border-radius: 16px;
  background: rgba(255, 248, 225, .88);
  color: #6f5200;
  border: 1px solid rgba(138, 100, 0, .15);
}

.installment-status-line > div {
  min-width: 0;
}

.installment-status-line strong,
.installment-status-line small {
  display: block;
  line-height: 1.2;
}

.installment-status-line strong {
  font-size: .88rem;
  color: inherit;
}

.installment-status-line small {
  margin-top: .12rem;
  color: inherit;
  opacity: .78;
}

.installment-status-dot {
  width: .72rem;
  height: .72rem;
  flex: 0 0 .72rem;
  border-radius: 50%;
  background: currentColor;
}

.installment-status-line.status-pago {
  background: rgba(243, 245, 232, .92);
  color: var(--nutri-olive-dark);
  border-color: rgba(129, 140, 65, .22);
}

.installment-status-line.status-parcial {
  background: rgba(232, 244, 248, .92);
  color: #245d69;
  border-color: rgba(36, 93, 105, .18);
}

.installment-status-line.status-overdue {
  background: rgba(248, 237, 242, .92);
  color: var(--nutri-wine);
  border-color: rgba(98, 20, 45, .18);
}

.installment-meta-list {
  display: grid;
  gap: .18rem;
}

.installment-meta-list small {
  color: #786a70;
}


/* Autopreenchimento dos pacotes comerciais */
.package-selected-preview {
  padding: 1rem;
  border-radius: 22px;
  background:
    radial-gradient(circle at 100% 0%, rgba(129, 140, 65, .12), transparent 34%),
    rgba(243, 245, 232, .78);
  border: 1px solid rgba(129, 140, 65, .22);
}

.package-preview-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .6rem;
}

.package-preview-head span,
.package-preview-head strong,
.package-preview-head em {
  display: block;
}

.package-preview-head span {
  color: var(--nutri-wine);
  font-size: .74rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.package-preview-head strong {
  color: var(--nutri-dark);
  font-size: 1.02rem;
}

.package-preview-head em {
  color: var(--nutri-olive-dark);
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.package-selected-preview p {
  margin: 0 0 .75rem;
  color: #6f6068;
  font-size: .9rem;
}

.package-preview-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
  margin-bottom: .75rem;
}

.package-preview-grid div {
  padding: .55rem .65rem;
  border-radius: 14px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(98,20,45,.06);
}

.package-preview-grid span,
.package-preview-grid strong {
  display: block;
}

.package-preview-grid span {
  color: #786a70;
  font-size: .7rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.package-preview-grid strong {
  color: var(--nutri-wine);
}

.package-preview-terms {
  padding: .55rem .7rem;
  border-radius: 14px;
  background: rgba(248,237,242,.7);
  color: var(--nutri-wine);
  font-size: .84rem;
  font-weight: 750;
  margin-bottom: .7rem;
}

.package-preview-benefits {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.package-preview-benefits span {
  display: inline-flex;
  border-radius: 999px;
  padding: .3rem .55rem;
  background: rgba(255,255,255,.8);
  color: var(--nutri-olive-dark);
  font-size: .76rem;
  font-weight: 800;
  border: 1px solid rgba(129, 140, 65, .14);
}

@media (max-width: 767.98px) {
  .package-preview-head {
    flex-direction: column;
    gap: .35rem;
  }

  .package-preview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* Financeiro unificado */
.unified-finance-page .admin-finance-metric,
.unified-finance-patient-card,
.unified-finance-team-card {
  border-radius: 28px;
}

.unified-finance-person-card {
  display: grid;
  gap: .2rem;
  padding: .95rem;
  border-radius: 20px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(98,20,45,.08);
}

.unified-finance-person-card strong {
  color: var(--nutri-wine);
}

.unified-finance-person-card span,
.unified-finance-person-card small {
  color: #6d5a63;
}

.unified-finance-list {
  display: grid;
  gap: .9rem;
}

.unified-finance-row {
  display: grid;
  grid-template-columns: minmax(240px, 1.35fr) minmax(130px, .55fr) minmax(360px, 1.35fr);
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border-radius: 22px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(98,20,45,.08);
  box-shadow: 0 .35rem .95rem rgba(80,17,37,.035);
}

.unified-finance-main,
.unified-finance-values {
  display: grid;
  gap: .25rem;
}

.unified-finance-main strong,
.unified-finance-values strong {
  color: var(--nutri-wine);
}

.unified-finance-main small,
.unified-finance-values small {
  color: #75656c;
}

.unified-finance-update {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem;
}

.unified-finance-update .d-flex {
  grid-column: span 2;
}

.unified-finance-timeline {
  display: grid;
  gap: .65rem;
}

.unified-finance-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .85rem;
  padding: .75rem .85rem;
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(98,20,45,.07);
}

.unified-finance-entry strong,
.unified-finance-entry small {
  display: block;
}

.unified-finance-entry strong {
  color: var(--nutri-wine);
}

.unified-finance-entry small {
  color: #76666d;
}

@media (max-width: 991.98px) {
  .unified-finance-row {
    grid-template-columns: 1fr;
  }

  .unified-finance-update {
    grid-template-columns: 1fr;
  }

  .unified-finance-update .d-flex {
    grid-column: span 1;
  }
}

@media (max-width: 575.98px) {
  .unified-finance-entry {
    align-items: flex-start;
    flex-direction: column;
  }

  .unified-finance-entry .text-end {
    text-align: left !important;
  }
}


/* Paginação dos lançamentos financeiros */
.finance-pagination .page-link {
  color: var(--nutri-wine);
  border-color: rgba(98, 20, 45, .12);
  border-radius: 12px;
  margin: 0 .12rem;
  font-weight: 750;
}

.finance-pagination .page-item.active .page-link {
  background: var(--nutri-wine);
  border-color: var(--nutri-wine);
  color: #fff;
}

.finance-pagination .page-item.disabled .page-link {
  color: #9b8d93;
  background: rgba(255,255,255,.6);
}


.finance-pagination .btn {
  color: var(--nutri-wine);
  border-color: rgba(98, 20, 45, .12);
  border-radius: 12px;
  margin: 0 .12rem;
  font-weight: 750;
  background: #fff;
}

.finance-pagination .btn.btn-success {
  background: var(--nutri-wine);
  border-color: var(--nutri-wine);
  color: #fff;
}

.finance-pagination .btn:disabled,
.finance-pagination .btn.disabled {
  color: #9b8d93;
  background: rgba(255,255,255,.6);
  border-color: rgba(98, 20, 45, .08);
}


/* Melhorias de conforto: próximos passos, resumo e feedback */
.patient-next-steps-card,
.priority-center-card,
.smart-patient-summary-card {
  border-radius: 28px;
}

.patient-next-steps-grid,
.priority-items-grid,
.smart-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
}

.patient-next-step-item,
.priority-item-card,
.smart-summary-grid > div,
.meal-feedback-strip-item,
.communication-log-item {
  text-decoration: none;
  padding: .95rem;
  border-radius: 20px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(98,20,45,.08);
  box-shadow: 0 .35rem .95rem rgba(80,17,37,.035);
  color: inherit;
}

.patient-next-step-item {
  display: grid;
  gap: .25rem;
}

.patient-next-step-item > span {
  font-size: 1.6rem;
}

.patient-next-step-item strong,
.priority-item-card strong,
.smart-summary-grid strong,
.meal-feedback-strip-item strong {
  display: block;
  color: var(--nutri-wine);
}

.patient-next-step-item small,
.priority-item-card small,
.smart-summary-grid span,
.meal-feedback-strip-item small,
.communication-log-item small {
  display: block;
  color: #75656c;
}

.patient-next-step-item em {
  display: inline-flex;
  width: fit-content;
  margin-top: .35rem;
  padding: .25rem .55rem;
  border-radius: 999px;
  background: rgba(129,140,65,.12);
  color: var(--nutri-olive-dark);
  font-style: normal;
  font-size: .76rem;
  font-weight: 850;
}

.priority-item-card {
  display: grid;
  gap: .2rem;
}

.priority-item-card > span,
.smart-summary-grid span {
  font-size: .72rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.priority-item-card strong {
  font-size: 1.75rem;
  line-height: 1;
}

.priority-tone-danger { background: rgba(248,237,242,.78); }
.priority-tone-warning { background: rgba(255,248,225,.82); }
.priority-tone-info { background: rgba(232,244,248,.82); }
.priority-tone-success { background: rgba(243,245,232,.82); }

.meal-feedback-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .7rem;
}

.meal-feedback-strip-item {
  display: grid;
  gap: .25rem;
}

.meal-feedback-box {
  margin-top: 1rem;
  padding: .75rem;
  border-radius: 18px;
  background: rgba(243,245,232,.58);
  border: 1px solid rgba(129,140,65,.16);
}

.meal-feedback-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.meal-feedback-actions form {
  margin: 0;
}

.quick-diary-panel {
  display: grid;
  gap: .85rem;
  padding: .95rem;
  border-radius: 22px;
  background: rgba(243,245,232,.72);
  border: 1px solid rgba(129,140,65,.18);
}

.quick-choice-group {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.quick-choice-group .btn {
  border-radius: 999px;
  font-weight: 800;
}

.communication-log-list {
  display: grid;
  gap: .75rem;
}

.communication-log-item {
  display: block;
}

.communication-log-item p {
  margin: .45rem 0;
  color: #4d3f45;
  white-space: pre-wrap;
}

@media (max-width: 1199.98px) {
  .patient-next-steps-grid,
  .priority-items-grid,
  .smart-summary-grid,
  .meal-feedback-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .patient-next-steps-grid,
  .priority-items-grid,
  .smart-summary-grid,
  .meal-feedback-strip {
    grid-template-columns: 1fr;
  }
}

/* Controle de consulta da nutricionista */
.consultation-launch-card,
.consultation-summary-card {
  border-radius: 24px;
}

.consultation-workspace-dialog {
  max-width: min(1180px, calc(100vw - 24px));
}

.consultation-workspace-content {
  border: 0;
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 28px 80px rgba(51, 33, 41, 0.22);
}

.consultation-workspace-header,
.consultation-workspace-footer {
  background: #fffaf7;
  border-color: rgba(127, 92, 106, 0.12);
}

.consultation-workspace-body {
  background: #fff;
}

.consultation-notes-area,
.consultation-summary-area {
  min-height: 260px;
  resize: vertical;
}

.preconsult-review-panel .compact-tabs {
  background: transparent;
  border: 0;
  padding: 0;
}

.preconsult-alert-list.compact {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.preconsult-alert-list.compact span {
  background: #fff3cd;
  color: #6d4c00;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 0.85rem;
}

.summary-highlight {
  background: #f7fbf7;
  border: 1px solid rgba(25, 135, 84, 0.12);
  border-radius: 18px;
  padding: 14px 16px;
  color: #385043;
}

.consultation-text {
  color: #59434d;
  line-height: 1.65;
}

.preserve-lines {
  white-space: pre-line;
}

@media (max-width: 768px) {
  .consultation-workspace-dialog {
    max-width: 100vw;
    margin: 0;
    min-height: 100vh;
  }

  .consultation-workspace-content {
    min-height: 100vh;
    border-radius: 0;
  }
}

/* Ajuste de rolagem na div/modal de atendimento */
.consultation-workspace-content > form {
  display: flex;
  flex-direction: column;
  max-height: min(92vh, 920px);
}

.consultation-workspace-header,
.consultation-workspace-footer {
  flex-shrink: 0;
}

.consultation-workspace-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-bottom: 1.25rem;
}

.consultation-workspace-body .tab-content,
.consultation-workspace-body .tab-pane {
  min-height: 0;
}

#consultation-pre {
  overflow: visible;
}

@media (max-width: 768px) {
  .consultation-workspace-content > form {
    min-height: 100vh;
    max-height: 100vh;
  }

  .consultation-workspace-body {
    max-height: none;
  }
}

/* Refinamento da div de atendimento e edição da pré-consulta */
.consultation-workspace-header {
  position: relative;
  padding-right: 4rem;
  align-items: flex-start;
}

.consultation-workspace-close {
  position: absolute;
  top: 1.1rem;
  right: 1.1rem;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  background-color: #fff;
  box-shadow: 0 10px 24px rgba(51, 33, 41, 0.12);
  opacity: .82;
}

.consultation-workspace-close:hover {
  opacity: 1;
}

.consultation-status-line {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  flex-wrap: wrap;
  padding: .35rem .5rem .35rem .75rem;
  border-radius: 999px;
  background: rgba(243, 245, 232, .85);
  border: 1px solid rgba(129, 140, 65, .18);
}

.consultation-status-line span {
  color: #6b5960;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.preconsult-edit-modal {
  z-index: 1095;
}

.preconsult-edit-backdrop {
  z-index: 1090;
}

.preconsult-edit-dialog {
  max-width: min(1120px, calc(100vw - 24px));
}

.preconsult-edit-content {
  border: 0;
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 32px 90px rgba(51, 33, 41, 0.26);
}

.preconsult-edit-header {
  position: relative;
  padding-right: 4rem;
  background: #fffaf7;
  border-color: rgba(127, 92, 106, 0.12);
}

.preconsult-edit-close {
  position: absolute;
  top: 1.1rem;
  right: 1.1rem;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  background-color: #fff;
  box-shadow: 0 10px 24px rgba(51, 33, 41, 0.12);
  opacity: .82;
}

.preconsult-edit-body {
  background: #fff;
  max-height: min(76vh, 760px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.preconsult-form-shell-modal .sticky-card {
  top: 0;
}

.preconsult-form-shell-modal .preconsult-sidebar {
  box-shadow: none !important;
  border: 1px solid rgba(129, 140, 65, .16) !important;
}

@media (max-width: 768px) {
  .consultation-workspace-header,
  .preconsult-edit-header {
    padding-right: 3.5rem;
  }

  .consultation-status-line {
    border-radius: 18px;
  }

  .preconsult-edit-dialog {
    max-width: 100vw;
    margin: 0;
    min-height: 100vh;
  }

  .preconsult-edit-content {
    min-height: 100vh;
    border-radius: 0;
  }

  .preconsult-edit-body {
    max-height: none;
  }
}

/* Jornada do paciente - visão da nutricionista */
.journey-command-card {
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(244, 246, 230, .9));
}

.patient-journey-overview {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .9rem;
}

.journey-kpi-card {
  min-height: 126px;
  padding: 1rem;
  border-radius: 22px;
  border: 1px solid rgba(98, 20, 45, .08);
  background: rgba(255,255,255,.92);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.journey-kpi-card span,
.journey-kpi-card small {
  color: #75626c;
  font-size: .82rem;
}

.journey-kpi-card strong {
  display: block;
  font-size: 1.15rem;
  line-height: 1.15;
  color: var(--nutri-wine);
}

.journey-next-action-card {
  overflow: hidden;
  position: relative;
}

.journey-next-action-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: var(--nutri-olive);
}

.journey-next-action-card.tone-warning::before { background: #f4b740; }
.journey-next-action-card.tone-danger::before { background: #dc3545; }
.journey-next-action-card.tone-success::before { background: #4f9d69; }
.journey-next-action-card.tone-info::before { background: var(--nutri-olive); }

.journey-check-percent {
  font-size: 1.7rem;
  color: var(--nutri-wine);
}

.journey-checklist-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
}

.journey-check-item {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: .75rem;
  align-items: flex-start;
  padding: .9rem;
  border-radius: 18px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(98, 20, 45, .08);
}

.journey-check-item > span {
  width: 38px;
  height: 38px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  font-weight: 800;
}

.journey-check-item.is-done > span {
  color: #236a3a;
  background: rgba(79, 157, 105, .14);
}

.journey-check-item.is-pending > span {
  color: #9b6500;
  background: rgba(244, 183, 64, .18);
}

.journey-check-item strong,
.journey-check-item small {
  display: block;
}

.journey-check-item small {
  color: #75626c;
}

.journey-timeline-enhanced .timeline-item {
  grid-template-columns: 52px 1fr;
}

.journey-timeline-enhanced .timeline-icon {
  width: 52px;
  height: 52px;
}

.timeline-meta-list {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .65rem;
}

.timeline-meta-list span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: rgba(129, 140, 65, .1);
  color: #655d2d;
  padding: .25rem .6rem;
  font-size: .78rem;
  font-weight: 600;
}

.timeline-item.tone-success .timeline-icon { background: rgba(79, 157, 105, .14); }
.timeline-item.tone-warning .timeline-icon { background: rgba(244, 183, 64, .18); }
.timeline-item.tone-danger .timeline-icon { background: rgba(220, 53, 69, .12); }
.timeline-item.tone-info .timeline-icon { background: rgba(129, 140, 65, .16); }
.timeline-item.tone-olive .timeline-icon { background: var(--nutri-olive-soft); }

@media (max-width: 1199.98px) {
  .patient-journey-overview {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .patient-journey-overview,
  .journey-checklist-grid {
    grid-template-columns: 1fr;
  }

  .journey-kpi-card {
    min-height: auto;
    gap: .35rem;
  }
}

/* Acesso rápido ao painel quando o usuário está logado na landing page */
.landing-logged-access-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  background: rgba(255, 255, 255, .88);
  border: 1px solid rgba(129, 140, 65, .26);
  border-radius: 22px;
  padding: 1rem;
  box-shadow: 0 1.1rem 2.2rem rgba(80, 17, 37, .08);
  backdrop-filter: blur(10px);
}

.landing-logged-access-icon {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--nutri-wine), var(--nutri-olive));
  color: #fff;
  font-size: 1.45rem;
  box-shadow: 0 .8rem 1.4rem rgba(98, 20, 45, .18);
}

.landing-logged-access-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.landing-logged-access-copy span {
  color: var(--nutri-olive-dark);
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.landing-logged-access-copy strong {
  color: var(--nutri-wine);
  font-size: 1.05rem;
}

.landing-logged-access-copy small {
  color: #6d5a63;
  line-height: 1.35;
}

.landing-logged-access-actions {
  display: flex;
  align-items: center;
  gap: .55rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.landing-portal-nav-btn {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  box-shadow: 0 .45rem .9rem rgba(129, 140, 65, .16);
}

.landing-sticky-portal {
  background: linear-gradient(135deg, var(--nutri-wine), var(--nutri-olive));
}

@media (max-width: 991.98px) {
  .landing-logged-access-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .landing-logged-access-actions {
    grid-column: 1 / -1;
    justify-content: stretch;
  }

  .landing-logged-access-actions .btn {
    flex: 1 1 180px;
  }
}

@media (max-width: 575.98px) {
  .landing-logged-access-card {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .landing-logged-access-icon {
    margin: 0 auto;
  }
}

.commercial-package-form {
  padding: 1rem;
  border-radius: 22px;
  background: rgba(243, 245, 232, .55);
  border: 1px solid rgba(129, 140, 65, .14);
}

.commercial-package-edit-modal .modal-header,
.commercial-package-edit-modal .modal-footer {
  background: rgba(243, 245, 232, .45);
}

/* Ferramentas da clínica em abas */
.staff-tools-tabs {
  width: fit-content;
  max-width: 100%;
}

.staff-tools-tab-content > .tab-pane {
  scroll-margin-top: 96px;
}

.staff-tools-tab-content .card {
  border-radius: 26px;
}

@media (max-width: 767.98px) {
  .staff-tools-tabs {
    width: 100%;
  }

  .staff-tools-tabs .nav-item {
    flex: 0 0 auto;
  }
}

/* Painéis inteligentes por perfil */
.patient-smart-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .9rem;
}

.patient-smart-card {
  min-height: 126px;
  padding: 1rem;
  border-radius: 22px;
  border: 1px solid rgba(129, 140, 65, .14);
  background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(243, 245, 232, .7));
  color: var(--nutri-text);
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .35rem;
  width: 100%;
  text-align: left;
  box-shadow: 0 .55rem 1.35rem rgba(79, 48, 57, .06);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

button.patient-smart-card {
  appearance: none;
  cursor: pointer;
}

.patient-smart-card:hover,
.patient-smart-card:focus {
  transform: translateY(-2px);
  border-color: rgba(129, 140, 65, .32);
  box-shadow: 0 .8rem 1.7rem rgba(79, 48, 57, .1);
  color: var(--nutri-text);
}

.patient-smart-card.needs-attention {
  border-color: rgba(191, 119, 91, .34);
  background: linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(255, 246, 235, .78));
}

.patient-smart-icon {
  width: 42px;
  height: 42px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(129, 140, 65, .12);
  font-size: 1.25rem;
}

.patient-smart-card strong {
  line-height: 1.15;
}

.patient-smart-card small {
  color: var(--bs-secondary-color);
  line-height: 1.35;
}

.daily-workspace-grid .card,
.daily-appointments-card,
.patient-attention-card {
  border-radius: 28px;
}

.daily-appointments-list,
.patient-attention-list {
  display: flex;
  flex-direction: column;
  gap: .8rem;
}

.daily-appointment-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border-radius: 22px;
  border: 1px solid rgba(129, 140, 65, .12);
  background: rgba(255, 255, 255, .78);
}

.daily-appointment-time {
  min-width: 76px;
  padding: .65rem .75rem;
  border-radius: 18px;
  background: rgba(129, 140, 65, .1);
  text-align: center;
}

.daily-appointment-time strong,
.daily-appointment-time span {
  display: block;
}

.daily-appointment-time span {
  font-size: .75rem;
  color: var(--bs-secondary-color);
}

.daily-appointment-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .45rem;
}

.patient-attention-item {
  display: block;
  padding: .9rem 1rem;
  border-radius: 18px;
  border: 1px solid rgba(129, 140, 65, .12);
  background: rgba(243, 245, 232, .56);
  color: var(--nutri-text);
  text-decoration: none;
}

.patient-attention-item:hover,
.patient-attention-item:focus {
  color: var(--nutri-text);
  border-color: rgba(129, 140, 65, .3);
  background: rgba(243, 245, 232, .82);
}

.patient-attention-item strong,
.patient-attention-item small {
  display: block;
}

.patient-attention-item small {
  color: var(--bs-secondary-color);
  margin-top: .15rem;
}

@media (max-width: 1199.98px) {
  .patient-smart-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .patient-smart-grid {
    grid-template-columns: 1fr;
  }

  .daily-appointment-item {
    grid-template-columns: 1fr;
  }

  .daily-appointment-time {
    width: fit-content;
    text-align: left;
  }

  .daily-appointment-actions {
    justify-content: flex-start;
  }
}

/* Layout de aplicativo para usuários logados: menu lateral fixável/ocultável */
:root {
  --app-sidebar-width: 292px;
  --app-topbar-height: 74px;
}

body.app-shell-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 0% 0%, rgba(129, 140, 65, .12), transparent 30%),
    radial-gradient(circle at 100% 0%, rgba(98, 20, 45, .09), transparent 28%),
    linear-gradient(180deg, #fff 0%, #fbf8f6 52%, #f3f5e8 100%);
}

.app-shell {
  min-height: 100vh;
}

.app-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 1045;
  width: var(--app-sidebar-width);
  max-width: calc(100vw - 28px);
  background: rgba(255, 255, 255, .96);
  border-right: 1px solid rgba(98, 20, 45, .12);
  box-shadow: 1rem 0 2.5rem rgba(80, 17, 37, .08);
  backdrop-filter: blur(18px);
  display: flex;
  flex-direction: column;
  transform: translateX(0);
  transition: transform .22s ease, box-shadow .22s ease;
}

.app-sidebar-brand {
  min-height: 78px;
  padding: 1rem 1.05rem .8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  border-bottom: 1px solid rgba(98, 20, 45, .08);
}

.app-sidebar-logo .brand-logo {
  width: 42px;
  height: 48px;
}

.app-sidebar-logo .brand-copy strong {
  font-size: 1rem;
}

.app-sidebar-logo .brand-copy small {
  font-size: .62rem;
  letter-spacing: .16em;
}

.app-sidebar-close {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  color: var(--nutri-wine);
  background: var(--nutri-wine-soft);
  border: 1px solid rgba(98, 20, 45, .12);
}

.app-sidebar-profile {
  margin: .95rem 1rem .55rem;
  padding: .85rem;
  display: flex;
  align-items: center;
  gap: .8rem;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--nutri-wine-soft), var(--nutri-olive-soft));
  border: 1px solid rgba(98, 20, 45, .08);
}

.app-sidebar-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 48px;
  border: 2px solid #fff;
  box-shadow: 0 .45rem .95rem rgba(80, 17, 37, .14);
}

.app-sidebar-initials {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--nutri-wine);
  font-weight: 850;
  letter-spacing: .04em;
}

.app-sidebar-profile span {
  display: block;
  color: #725f68;
  font-size: .86rem;
  font-weight: 700;
}

.app-sidebar-profile strong {
  display: block;
  color: var(--nutri-wine);
  font-size: .95rem;
  line-height: 1.15;
}

.app-sidebar-nav {
  flex: 1;
  overflow-y: auto;
  padding: .25rem .85rem 1rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(98, 20, 45, .32) transparent;
}

.app-sidebar-section {
  margin-top: .9rem;
}

.app-sidebar-section-title {
  display: block;
  margin: 0 .65rem .35rem;
  color: #927f88;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.app-sidebar-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: .7rem;
  width: 100%;
  min-height: 43px;
  padding: .62rem .72rem;
  color: #57444d;
  text-decoration: none;
  border-radius: 15px;
  font-weight: 750;
  border: 1px solid transparent;
  background: transparent;
  transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}

.app-sidebar-link i {
  width: 22px;
  min-width: 22px;
  color: var(--nutri-olive-dark);
  font-size: 1.02rem;
  text-align: center;
}

.app-sidebar-link span {
  min-width: 0;
}

.app-sidebar-link:hover,
.app-sidebar-link:focus,
.app-sidebar-link.active {
  color: var(--nutri-wine);
  background: linear-gradient(135deg, rgba(243, 245, 232, .98), rgba(255, 255, 255, .96));
  border-color: rgba(129, 140, 65, .24);
  transform: translateX(2px);
}

.app-sidebar-link.active {
  box-shadow: inset 4px 0 0 rgba(129, 140, 65, .75), 0 .45rem 1rem rgba(80, 17, 37, .05);
}

.app-sidebar-link.active i,
.app-sidebar-link:hover i,
.app-sidebar-link:focus i {
  color: var(--nutri-wine);
}

.app-sidebar-footer {
  padding: .9rem .85rem 1rem;
  border-top: 1px solid rgba(98, 20, 45, .08);
  background: rgba(255, 255, 255, .82);
}

.app-sidebar-link-button {
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.app-topbar {
  z-index: 1035;
  min-height: var(--app-topbar-height);
  margin-left: var(--app-sidebar-width);
  background: rgba(255, 255, 255, .9);
  border-bottom: 1px solid rgba(98, 20, 45, .1);
  box-shadow: 0 .65rem 1.35rem rgba(80, 17, 37, .045);
  backdrop-filter: blur(16px);
  transition: margin-left .22s ease;
}

.app-topbar-inner {
  min-height: var(--app-topbar-height);
  padding: .7rem 1.4rem;
  display: flex;
  align-items: center;
  gap: .85rem;
}

.app-sidebar-toggle,
.app-sidebar-pin-toggle {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border-radius: 999px;
  border: 1px solid rgba(98, 20, 45, .13);
  color: var(--nutri-wine);
  background: #fff;
  font-weight: 800;
  box-shadow: 0 .45rem .95rem rgba(80, 17, 37, .06);
}

.app-sidebar-toggle {
  width: 44px;
  padding: 0;
  font-size: 1.28rem;
}

.app-sidebar-pin-toggle {
  padding: .5rem .85rem;
  font-size: .88rem;
}

.app-sidebar-toggle:hover,
.app-sidebar-toggle:focus,
.app-sidebar-pin-toggle:hover,
.app-sidebar-pin-toggle:focus {
  color: var(--nutri-wine-dark);
  border-color: rgba(98, 20, 45, .24);
  background: var(--nutri-olive-soft);
}

.app-topbar-brand {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--nutri-wine);
  text-decoration: none;
  min-width: 0;
}

.app-topbar-brand img {
  width: 36px;
  height: 40px;
  object-fit: contain;
}

.app-topbar-brand span {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  min-width: 0;
}

.app-topbar-brand strong {
  color: var(--nutri-wine);
  font-size: .98rem;
  font-weight: 850;
}

.app-topbar-brand small {
  color: #85727b;
  font-size: .76rem;
  font-weight: 700;
}

.app-topbar-actions {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  min-width: 0;
}

body.app-shell-body main.app-main {
  min-height: calc(100vh - var(--app-topbar-height));
  margin-left: var(--app-sidebar-width);
  transition: margin-left .22s ease;
}

body.app-sidebar-collapsed .app-sidebar {
  transform: translateX(-105%);
}

body.app-sidebar-collapsed .app-topbar,
body.app-sidebar-collapsed main.app-main {
  margin-left: 0;
}

.app-sidebar-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1040;
  display: none;
  background: rgba(37, 24, 32, .42);
  backdrop-filter: blur(2px);
}

body.app-sidebar-open .app-sidebar {
  transform: translateX(0);
  box-shadow: 1.2rem 0 2.8rem rgba(37, 24, 32, .18);
}

body.app-sidebar-open .app-sidebar-backdrop {
  display: block;
}

body.app-sidebar-open {
  overflow: hidden;
}

body.app-shell-body .profile-menu-toggle {
  text-decoration: none;
}

body.app-shell-body .profile-menu-toggle::after {
  display: inline-block;
}

@media (min-width: 992px) {
  body.app-sidebar-collapsed .app-sidebar-backdrop {
    display: none;
  }

  body.app-sidebar-collapsed.app-sidebar-open .app-sidebar-backdrop {
    display: block;
  }
}

@media (max-width: 991.98px) {
  :root {
    --app-topbar-height: 68px;
  }

  .app-sidebar {
    width: min(86vw, 310px);
    transform: translateX(-105%);
  }

  .app-topbar,
  body.app-shell-body main.app-main,
  body.app-sidebar-collapsed .app-topbar,
  body.app-sidebar-collapsed main.app-main {
    margin-left: 0;
  }

  .app-topbar-inner {
    padding: .62rem .85rem;
    gap: .55rem;
  }

  .app-topbar-brand small {
    display: none;
  }

  .app-topbar-brand strong {
    font-size: .9rem;
  }

  .app-topbar-brand img {
    width: 32px;
    height: 36px;
  }

  .app-topbar-actions {
    gap: .4rem;
  }

  body.app-shell-body .profile-menu-toggle {
    width: auto;
    margin-top: 0;
    padding: .25rem .35rem !important;
  }

  body.app-shell-body .profile-menu-toggle::before {
    content: none;
  }

  .nav-profile-avatar {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }
}

@media (max-width: 575.98px) {
  .app-topbar-brand span {
    display: none;
  }

  .app-sidebar-toggle {
    width: 40px;
    min-height: 40px;
  }

  .app-sidebar-brand {
    min-height: 72px;
  }
}

/* Evita que os ajustes antigos do menu superior afetem o novo topo do sistema logado */
body.app-shell-body .profile-menu-item {
  margin-left: 0;
}

body.app-shell-body .profile-menu-toggle {
  width: auto;
  margin-top: 0;
  justify-content: center;
  display: inline-flex;
}

body.app-shell-body .profile-menu-toggle::before {
  content: none !important;
}

/* Correção do avatar com iniciais no menu lateral */
.app-sidebar-profile .app-sidebar-initials {
  width: 48px;
  height: 48px;
  min-width: 48px;
  max-width: 48px;
  flex: 0 0 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  padding: 0;
  font-size: 1rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-indent: 0;
  color: #fff;
  background: var(--nutri-wine);
}

.app-sidebar-profile .app-sidebar-initials::first-letter {
  margin: 0;
}

/* Refinamento visual do portal: bordas, microinterações, status, abas e modais */
:root {
  --nutri-surface: rgba(255, 255, 255, .88);
  --nutri-surface-strong: #ffffff;
  --nutri-shadow-soft: 0 .65rem 1.8rem rgba(80, 17, 37, .07);
  --nutri-shadow-hover: 0 1rem 2.45rem rgba(80, 17, 37, .12);
  --nutri-focus-ring: 0 0 0 .24rem rgba(98, 20, 45, .10);
  --nutri-field-bg: rgba(255, 255, 255, .94);
  --nutri-field-border: rgba(98, 20, 45, .16);
  --nutri-field-border-hover: rgba(129, 140, 65, .42);
}

body.app-shell-body .card,
body.app-shell-body .metric-card,
body.app-shell-body .mini-card,
body.app-shell-body .empty-state,
body.app-shell-body .appointment-card,
body.app-shell-body .evolution-card,
body.app-shell-body .evolution-item,
body.app-shell-body .patient-smart-card,
body.app-shell-body .daily-appointment-item,
body.app-shell-body .patient-attention-item,
body.app-shell-body .journey-card,
body.app-shell-body .timeline-item,
body.app-shell-body .commercial-package-form,
body.app-shell-body .preconsult-section,
body.app-shell-body .finance-summary-card,
body.app-shell-body .financial-card,
body.app-shell-body .contract-card {
  border: 1px solid rgba(98, 20, 45, .11);
  box-shadow: var(--nutri-shadow-soft);
  background-clip: padding-box;
}

body.app-shell-body .card,
body.app-shell-body .metric-card,
body.app-shell-body .mini-card,
body.app-shell-body .empty-state,
body.app-shell-body .appointment-card,
body.app-shell-body .patient-smart-card,
body.app-shell-body .daily-appointment-item,
body.app-shell-body .patient-attention-item {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

body.app-shell-body .card:hover,
body.app-shell-body .metric-card:hover,
body.app-shell-body .mini-card:hover,
body.app-shell-body .appointment-card:hover,
body.app-shell-body .patient-smart-card:hover,
body.app-shell-body .daily-appointment-item:hover,
body.app-shell-body .patient-attention-item:hover {
  border-color: rgba(129, 140, 65, .30);
  box-shadow: var(--nutri-shadow-hover);
}

body.app-shell-body .patient-smart-card:hover,
body.app-shell-body .appointment-card:hover,
body.app-shell-body .daily-appointment-item:hover,
body.app-shell-body .patient-attention-item:hover {
  transform: translateY(-2px);
}

body.app-shell-body .card-header,
body.app-shell-body .card-footer {
  border-color: rgba(98, 20, 45, .10);
  background: linear-gradient(135deg, rgba(255,255,255,.86), rgba(243,245,232,.42));
}

body.app-shell-body .form-label,
body.app-shell-body label {
  color: #4f3039;
  font-weight: 750;
}

body.app-shell-body .form-control,
body.app-shell-body .form-select,
body.app-shell-body textarea.form-control,
body.app-shell-body .input-group-text {
  min-height: 44px;
  border-radius: 16px;
  border-color: var(--nutri-field-border);
  background-color: var(--nutri-field-bg);
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
}

body.app-shell-body textarea.form-control {
  min-height: 118px;
}

body.app-shell-body .form-control:hover,
body.app-shell-body .form-select:hover,
body.app-shell-body textarea.form-control:hover {
  border-color: var(--nutri-field-border-hover);
}

body.app-shell-body .form-control:focus,
body.app-shell-body .form-select:focus,
body.app-shell-body textarea.form-control:focus {
  border-color: var(--nutri-wine);
  background-color: #fff;
  box-shadow: var(--nutri-focus-ring), 0 .35rem .9rem rgba(80, 17, 37, .06);
}

body.app-shell-body .form-control.has-value,
body.app-shell-body .form-select.has-value,
body.app-shell-body textarea.form-control.has-value {
  border-color: rgba(129, 140, 65, .28);
  background: linear-gradient(180deg, #fff, rgba(243, 245, 232, .30));
}

body.app-shell-body .form-control::placeholder,
body.app-shell-body textarea.form-control::placeholder {
  color: rgba(79, 48, 57, .52);
}

body.app-shell-body .form-control:disabled,
body.app-shell-body .form-control[readonly],
body.app-shell-body .form-select:disabled {
  background-color: rgba(243, 245, 232, .55);
  border-color: rgba(129, 140, 65, .18);
  color: rgba(37, 24, 32, .76);
}

body.app-shell-body .input-group .form-control,
body.app-shell-body .input-group .form-select {
  box-shadow: none;
}

body.app-shell-body .input-group:focus-within .input-group-text {
  border-color: var(--nutri-wine);
  background: var(--nutri-wine-soft);
  color: var(--nutri-wine);
}

body.app-shell-body .btn {
  border-radius: 14px;
  font-weight: 780;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background-color .16s ease, color .16s ease;
}

body.app-shell-body .btn:hover,
body.app-shell-body .btn:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 .55rem 1.15rem rgba(80, 17, 37, .12);
}

body.app-shell-body .btn:active {
  transform: translateY(0);
  box-shadow: 0 .25rem .75rem rgba(80, 17, 37, .08);
}

body.app-shell-body .btn-success,
body.app-shell-body .btn-brand-danger {
  box-shadow: 0 .55rem 1.15rem rgba(80, 17, 37, .14);
}

body.app-shell-body .btn-outline-success,
body.app-shell-body .btn-outline-secondary,
body.app-shell-body .btn-outline-primary,
body.app-shell-body .btn-outline-danger,
body.app-shell-body .btn-outline-warning {
  background: rgba(255, 255, 255, .72);
}

body.app-shell-body .btn.is-loading {
  position: relative;
  pointer-events: none;
  opacity: .78;
}

body.app-shell-body .btn.is-loading::after {
  content: '';
  width: .9rem;
  height: .9rem;
  margin-left: .45rem;
  border-radius: 999px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  display: inline-block;
  vertical-align: -.12em;
  animation: nutri-spin .68s linear infinite;
}

@keyframes nutri-spin {
  to { transform: rotate(360deg); }
}

body.app-shell-body .nav-tabs,
body.app-shell-body .nav-pills,
body.app-shell-body .staff-tools-tabs {
  gap: .35rem;
  padding: .35rem;
  border-radius: 999px;
  border: 1px solid rgba(98, 20, 45, .10);
  background: rgba(255, 255, 255, .68);
  box-shadow: 0 .35rem .9rem rgba(80, 17, 37, .05);
  overflow-x: auto;
  flex-wrap: nowrap;
  scrollbar-width: thin;
}

body.app-shell-body .nav-tabs::-webkit-scrollbar,
body.app-shell-body .nav-pills::-webkit-scrollbar,
body.app-shell-body .staff-tools-tabs::-webkit-scrollbar {
  height: 6px;
}

body.app-shell-body .nav-tabs::-webkit-scrollbar-thumb,
body.app-shell-body .nav-pills::-webkit-scrollbar-thumb,
body.app-shell-body .staff-tools-tabs::-webkit-scrollbar-thumb {
  background: rgba(98, 20, 45, .22);
  border-radius: 999px;
}

body.app-shell-body .nav-tabs .nav-link,
body.app-shell-body .nav-pills .nav-link,
body.app-shell-body .staff-tools-tabs .nav-link {
  position: relative;
  white-space: nowrap;
  border: 0;
  border-radius: 999px;
  color: #5e4852;
  font-weight: 800;
  padding: .64rem 1rem;
  transition: color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.app-shell-body .nav-tabs .nav-link:hover,
body.app-shell-body .nav-pills .nav-link:hover,
body.app-shell-body .staff-tools-tabs .nav-link:hover {
  color: var(--nutri-wine);
  background: rgba(248, 237, 242, .78);
}

body.app-shell-body .nav-tabs .nav-link.active,
body.app-shell-body .nav-pills .nav-link.active,
body.app-shell-body .staff-tools-tabs .nav-link.active {
  color: var(--nutri-wine);
  background: linear-gradient(135deg, rgba(248, 237, 242, .96), rgba(243, 245, 232, .9));
  box-shadow: inset 0 0 0 1px rgba(98, 20, 45, .10), 0 .35rem .9rem rgba(80, 17, 37, .07);
}

body.app-shell-body .nav-tabs .nav-link.active::after,
body.app-shell-body .nav-pills .nav-link.active::after,
body.app-shell-body .staff-tools-tabs .nav-link.active::after {
  content: '';
  position: absolute;
  left: 24%;
  right: 24%;
  bottom: .18rem;
  height: 3px;
  border-radius: 999px;
  background: var(--nutri-wine);
}

body.app-shell-body .badge,
body.app-shell-body .status-badge,
body.app-shell-body .badge-soft,
body.app-shell-body .pill,
body.app-shell-body [class*='status-pill'] {
  border-radius: 999px;
  font-weight: 850;
  letter-spacing: .01em;
  padding: .42rem .66rem;
  border: 1px solid rgba(98, 20, 45, .08);
}

body.app-shell-body .badge.text-bg-success,
body.app-shell-body .badge.bg-success,
body.app-shell-body .text-bg-success {
  background: rgba(129, 140, 65, .14) !important;
  color: var(--nutri-olive-dark) !important;
  border-color: rgba(129, 140, 65, .26) !important;
}

body.app-shell-body .badge.text-bg-warning,
body.app-shell-body .badge.bg-warning,
body.app-shell-body .text-bg-warning {
  background: rgba(255, 188, 66, .18) !important;
  color: #875d08 !important;
  border-color: rgba(255, 188, 66, .34) !important;
}

body.app-shell-body .badge.text-bg-danger,
body.app-shell-body .badge.bg-danger,
body.app-shell-body .text-bg-danger {
  background: rgba(174, 45, 67, .12) !important;
  color: #8f2238 !important;
  border-color: rgba(174, 45, 67, .24) !important;
}

body.app-shell-body .badge.text-bg-info,
body.app-shell-body .badge.bg-info,
body.app-shell-body .text-bg-info {
  background: rgba(70, 130, 180, .12) !important;
  color: #2f5f86 !important;
  border-color: rgba(70, 130, 180, .24) !important;
}

body.app-shell-body .badge.text-bg-secondary,
body.app-shell-body .badge.bg-secondary,
body.app-shell-body .text-bg-secondary {
  background: rgba(107, 94, 100, .12) !important;
  color: #56424b !important;
  border-color: rgba(107, 94, 100, .22) !important;
}

body.app-shell-body .table {
  overflow: hidden;
  border-radius: 18px;
}

body.app-shell-body .table thead th {
  border-bottom: 1px solid rgba(98, 20, 45, .11);
  background: rgba(248, 237, 242, .72);
  color: var(--nutri-wine);
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

body.app-shell-body .table tbody tr {
  transition: background-color .14s ease, box-shadow .14s ease;
}

body.app-shell-body .table tbody tr:hover {
  background: rgba(243, 245, 232, .48);
}

body.app-shell-body .modal-backdrop.show {
  opacity: .42;
  backdrop-filter: blur(4px);
}

body.app-shell-body .modal-dialog:not(.modal-fullscreen) .modal-content {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
  border: 1px solid rgba(98, 20, 45, .12);
  box-shadow: 0 1.6rem 4rem rgba(37, 24, 32, .22);
}

body.app-shell-body .modal.fade .modal-dialog {
  transform: translateY(14px) scale(.985);
  transition: transform .22s ease-out;
}

body.app-shell-body .modal.show .modal-dialog {
  transform: none;
}

body.app-shell-body .modal-header,
body.app-shell-body .modal-footer {
  background: linear-gradient(135deg, rgba(255,255,255,.95), rgba(243,245,232,.55));
  z-index: 2;
}

body.app-shell-body .modal-header {
  position: sticky;
  top: 0;
}

body.app-shell-body .modal-footer {
  position: sticky;
  bottom: 0;
}

body.app-shell-body .modal-body {
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(98, 20, 45, .26) transparent;
}

body.app-shell-body .modal-body::-webkit-scrollbar {
  width: 8px;
}

body.app-shell-body .modal-body::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(98, 20, 45, .24);
}

body.app-shell-body .btn-close {
  border-radius: 999px;
  background-color: rgba(248, 237, 242, .86);
  box-shadow: inset 0 0 0 1px rgba(98, 20, 45, .10);
  opacity: .82;
}

body.app-shell-body .btn-close:hover,
body.app-shell-body .btn-close:focus {
  opacity: 1;
  box-shadow: var(--nutri-focus-ring);
}

body.app-shell-body .daily-appointment-item,
body.app-shell-body .patient-attention-item,
body.app-shell-body .patient-smart-card.needs-attention,
body.app-shell-body .appointment-card {
  position: relative;
  overflow: hidden;
}

body.app-shell-body .daily-appointment-item::before,
body.app-shell-body .patient-attention-item::before,
body.app-shell-body .patient-smart-card.needs-attention::before,
body.app-shell-body .appointment-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  border-radius: 999px 0 0 999px;
  background: rgba(129, 140, 65, .75);
}

body.app-shell-body .patient-smart-card.needs-attention::before {
  background: rgba(191, 119, 91, .9);
}

body.app-shell-body .daily-appointment-item:has(.text-danger)::before,
body.app-shell-body .daily-appointment-item:has(.badge.text-bg-danger)::before,
body.app-shell-body .patient-attention-item:has(.text-danger)::before,
body.app-shell-body .appointment-card:has(.text-danger)::before {
  background: rgba(174, 45, 67, .85);
}

body.app-shell-body .daily-appointment-item:has(.text-warning)::before,
body.app-shell-body .daily-appointment-item:has(.badge.text-bg-warning)::before,
body.app-shell-body .patient-attention-item:has(.text-warning)::before,
body.app-shell-body .appointment-card:has(.text-warning)::before {
  background: rgba(255, 188, 66, .9);
}

.loading-skeleton,
.skeleton-line,
.skeleton-card {
  position: relative;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(248, 237, 242, .55), rgba(255,255,255,.95), rgba(243,245,232,.65));
  background-size: 220% 100%;
  animation: nutri-shimmer 1.35s ease-in-out infinite;
  border-radius: 14px;
}

.skeleton-line {
  min-height: 1rem;
}

.skeleton-card {
  min-height: 112px;
  border: 1px solid rgba(98, 20, 45, .08);
}

@keyframes nutri-shimmer {
  0% { background-position: 120% 0; }
  100% { background-position: -120% 0; }
}

body.app-shell-body .filter-panel,
body.app-shell-body .search-panel,
body.app-shell-body .patient-action-panel,
body.app-shell-body .quick-actions-card {
  border-radius: 24px;
  border: 1px solid rgba(98, 20, 45, .10);
  background: rgba(255, 255, 255, .72);
  box-shadow: 0 .45rem 1.2rem rgba(80, 17, 37, .05);
}

body.app-shell-body .quick-choice-group,
body.app-shell-body .daily-appointment-actions,
body.app-shell-body .upcoming-actions {
  gap: .5rem;
}

body.app-shell-body .app-topbar {
  box-shadow: 0 .65rem 1.65rem rgba(80, 17, 37, .07);
  border-bottom: 1px solid rgba(98, 20, 45, .10);
}

body.app-shell-body .app-sidebar-link {
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}

body.app-shell-body .app-sidebar-link:hover,
body.app-shell-body .app-sidebar-link:focus,
body.app-shell-body .app-sidebar-link.active {
  transform: translateX(2px);
}

@media (max-width: 767.98px) {
  body.app-shell-body .card,
  body.app-shell-body .metric-card,
  body.app-shell-body .mini-card,
  body.app-shell-body .patient-smart-card,
  body.app-shell-body .daily-appointment-item,
  body.app-shell-body .patient-attention-item {
    border-radius: 20px;
  }

  body.app-shell-body .form-control,
  body.app-shell-body .form-select,
  body.app-shell-body .btn {
    min-height: 46px;
  }

  body.app-shell-body .nav-tabs,
  body.app-shell-body .nav-pills,
  body.app-shell-body .staff-tools-tabs {
    border-radius: 18px;
    padding: .4rem;
  }

  body.app-shell-body .modal-dialog {
    margin: .6rem;
  }

  body.app-shell-body .modal-dialog:not(.modal-fullscreen) .modal-content {
    max-height: calc(100vh - 1.2rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.app-shell-body *,
  body.app-shell-body *::before,
  body.app-shell-body *::after {
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* Correção de usabilidade: rolagem em modais/divs e menus de ação sem corte */
body.app-shell-body .modal-dialog:not(.modal-fullscreen) {
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  display: flex;
  align-items: stretch;
}

body.app-shell-body .modal-dialog:not(.modal-fullscreen) .modal-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  min-height: 0;
}

body.app-shell-body .modal-dialog:not(.modal-fullscreen) .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

body.app-shell-body .modal-dialog-scrollable .modal-content {
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
}

body.app-shell-body .modal-dialog-scrollable .modal-body {
  overflow-y: auto;
}

/* A div de atendimento usa form como conteúdo interno; mantém cabeçalho/rodapé e rolagem no miolo */
body.app-shell-body .consultation-workspace-dialog,
body.app-shell-body .preconsult-edit-dialog {
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
}

body.app-shell-body .consultation-workspace-content,
body.app-shell-body .preconsult-edit-content {
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  display: flex;
  flex-direction: column;
  min-height: 0;
}

body.app-shell-body .consultation-workspace-content > form {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  max-height: 100%;
}

body.app-shell-body .consultation-workspace-body,
body.app-shell-body .preconsult-edit-body,
body.app-shell-body .daily-log-floating-modal .modal-body,
body.app-shell-body .patient-password-modal .modal-body,
body.app-shell-body .patient-whatsapp-modal .modal-body,
body.app-shell-body .audit-clear-modal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Menus "Mais ações/Ações" em tabelas: evita corte por table-responsive, table e cards */
body.app-shell-body .table,
body.app-shell-body .table-responsive.has-open-dropdown,
body.app-shell-body .card.has-open-dropdown,
body.app-shell-body .card-body.has-open-dropdown {
  overflow: visible !important;
}

body.app-shell-body .clean-actions-dropdown {
  position: relative;
}

body.app-shell-body .clean-actions-dropdown .dropdown-menu {
  z-index: 1090;
  max-height: min(68vh, 420px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

body.app-shell-body .clean-actions-dropdown .dropdown-menu.dropdown-menu-portal-fixed {
  position: fixed !important;
  inset: auto !important;
  transform: none !important;
  margin: 0 !important;
  min-width: max-content;
  max-width: min(92vw, 340px);
}

@media (max-width: 767.98px) {
  body.app-shell-body .modal-dialog:not(.modal-fullscreen),
  body.app-shell-body .modal-dialog:not(.modal-fullscreen) .modal-content,
  body.app-shell-body .modal-dialog-scrollable .modal-content,
  body.app-shell-body .consultation-workspace-dialog,
  body.app-shell-body .preconsult-edit-dialog,
  body.app-shell-body .consultation-workspace-content,
  body.app-shell-body .preconsult-edit-content {
    max-height: calc(100vh - 1rem);
    max-height: calc(100dvh - 1rem);
  }

  body.app-shell-body .consultation-workspace-dialog,
  body.app-shell-body .preconsult-edit-dialog {
    margin: .5rem;
    min-height: auto;
  }

  body.app-shell-body .consultation-workspace-content,
  body.app-shell-body .preconsult-edit-content {
    min-height: auto;
    border-radius: 22px;
  }
}

/* Correção fina do botão/menu de ações em tabelas (usuários, pacientes e cards responsivos) */
body.app-shell-body .clean-actions-dropdown > .btn.dropdown-toggle,
body.app-shell-body .clean-actions-dropdown > .btn.dropdown-toggle.show,
body.app-shell-body .clean-actions-dropdown > .btn.dropdown-toggle:focus,
body.app-shell-body .clean-actions-dropdown > .btn.dropdown-toggle:active,
body.app-shell-body .clean-actions-dropdown > .btn.dropdown-toggle[aria-expanded="true"] {
  color: var(--nutri-wine) !important;
  background: #fff !important;
  border-color: rgba(98, 20, 45, .28) !important;
  box-shadow: 0 .35rem .9rem rgba(80, 17, 37, .10) !important;
  opacity: 1 !important;
}

body.app-shell-body .clean-actions-dropdown > .btn.dropdown-toggle:hover {
  color: var(--nutri-wine-dark) !important;
  background: var(--nutri-wine-soft) !important;
  border-color: rgba(98, 20, 45, .35) !important;
}

body.app-shell-body .clean-actions-dropdown .dropdown-menu.dropdown-menu-portal-fixed {
  margin-top: 0 !important;
  padding-top: .45rem;
  padding-bottom: .45rem;
}

body.app-shell-body .users-table .clean-actions-dropdown .dropdown-menu,
body.app-shell-body .patients-table .clean-actions-dropdown .dropdown-menu,
body.app-shell-body .admin-clean-table .clean-actions-dropdown .dropdown-menu {
  margin-top: 0 !important;
}

/* Correção global: toda div/modal flutuante deve rolar quando o conteúdo não couber */
body.app-shell-body .modal.show {
  overflow: hidden;
}

body.app-shell-body .modal-dialog:not(.modal-fullscreen),
body.app-shell-body .modal-dialog-scrollable:not(.modal-fullscreen) {
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  display: flex;
  align-items: stretch;
}

body.app-shell-body .modal-dialog-centered:not(.modal-fullscreen) {
  min-height: calc(100vh - 2rem);
  min-height: calc(100dvh - 2rem);
  align-items: center;
}

body.app-shell-body .modal-dialog:not(.modal-fullscreen) .modal-content,
body.app-shell-body .modal-dialog-scrollable:not(.modal-fullscreen) .modal-content {
  width: 100%;
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

body.app-shell-body .modal-content > form {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

body.app-shell-body .modal-header,
body.app-shell-body .modal-footer,
body.app-shell-body .modal-content > form > .modal-header,
body.app-shell-body .modal-content > form > .modal-footer {
  flex: 0 0 auto;
}

body.app-shell-body .modal-content > .modal-body,
body.app-shell-body .modal-content > form > .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(98, 20, 45, .28) transparent;
}

body.app-shell-body .modal-content > .modal-body::-webkit-scrollbar,
body.app-shell-body .modal-content > form > .modal-body::-webkit-scrollbar {
  width: 8px;
}

body.app-shell-body .modal-content > .modal-body::-webkit-scrollbar-thumb,
body.app-shell-body .modal-content > form > .modal-body::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(98, 20, 45, .26);
}

body.app-shell-body .modal-content > .modal-body::-webkit-scrollbar-track,
body.app-shell-body .modal-content > form > .modal-body::-webkit-scrollbar-track {
  background: transparent;
}

/* Garante rolagem também em divs flutuantes criadas fora do padrão do Bootstrap */
body.app-shell-body .consultation-workspace-content,
body.app-shell-body .preconsult-edit-content,
body.app-shell-body .daily-log-floating-modal .modal-content,
body.app-shell-body .patient-password-modal,
body.app-shell-body .patient-whatsapp-modal,
body.app-shell-body .patient-meal-plan-modal,
body.app-shell-body .commercial-package-edit-modal,
body.app-shell-body .audit-clear-modal .modal-content,
body.app-shell-body .success-floating-card {
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

body.app-shell-body .consultation-workspace-body,
body.app-shell-body .preconsult-edit-body,
body.app-shell-body .daily-log-floating-modal .modal-body,
body.app-shell-body .patient-password-modal .modal-body,
body.app-shell-body .patient-whatsapp-modal .modal-body,
body.app-shell-body .patient-meal-plan-modal .modal-body,
body.app-shell-body .commercial-package-edit-modal .modal-body,
body.app-shell-body .audit-clear-modal .modal-body,
body.app-shell-body .success-floating-card .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

@media (max-width: 767.98px) {
  body.app-shell-body .modal.show {
    overflow: hidden;
  }

  body.app-shell-body .modal-dialog:not(.modal-fullscreen),
  body.app-shell-body .modal-dialog-scrollable:not(.modal-fullscreen),
  body.app-shell-body .modal-dialog-centered:not(.modal-fullscreen) {
    margin: .5rem;
    max-height: calc(100vh - 1rem);
    max-height: calc(100dvh - 1rem);
    min-height: auto;
    align-items: stretch;
  }

  body.app-shell-body .modal-dialog:not(.modal-fullscreen) .modal-content,
  body.app-shell-body .modal-dialog-scrollable:not(.modal-fullscreen) .modal-content,
  body.app-shell-body .consultation-workspace-content,
  body.app-shell-body .preconsult-edit-content,
  body.app-shell-body .daily-log-floating-modal .modal-content,
  body.app-shell-body .patient-password-modal,
  body.app-shell-body .patient-whatsapp-modal,
  body.app-shell-body .patient-meal-plan-modal,
  body.app-shell-body .commercial-package-edit-modal,
  body.app-shell-body .audit-clear-modal .modal-content,
  body.app-shell-body .success-floating-card {
    max-height: calc(100vh - 1rem);
    max-height: calc(100dvh - 1rem);
  }
}

/* Correção global: botões transparentes/outline não podem ficar com texto branco sobre fundo claro */
.btn-outline-success {
  --bs-btn-color: var(--nutri-olive-dark);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: rgba(129, 140, 65, .72);
  --bs-btn-hover-color: var(--nutri-olive-dark);
  --bs-btn-hover-bg: var(--nutri-olive-soft);
  --bs-btn-hover-border-color: var(--nutri-olive);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--nutri-olive-dark);
  --bs-btn-active-border-color: var(--nutri-olive-dark);
}

.btn-outline-primary {
  --bs-btn-color: var(--nutri-wine);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: rgba(98, 20, 45, .62);
  --bs-btn-hover-color: var(--nutri-wine-dark);
  --bs-btn-hover-bg: var(--nutri-wine-soft);
  --bs-btn-hover-border-color: var(--nutri-wine);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--nutri-wine);
  --bs-btn-active-border-color: var(--nutri-wine);
}

.btn-outline-secondary {
  --bs-btn-color: #5f4a54;
  --bs-btn-bg: transparent;
  --bs-btn-border-color: rgba(95, 74, 84, .34);
  --bs-btn-hover-color: #4d3b44;
  --bs-btn-hover-bg: rgba(98, 20, 45, .07);
  --bs-btn-hover-border-color: rgba(95, 74, 84, .48);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #6c5b64;
  --bs-btn-active-border-color: #6c5b64;
}

.btn-outline-danger {
  --bs-btn-color: #a72e3b;
  --bs-btn-bg: transparent;
  --bs-btn-border-color: rgba(167, 46, 59, .42);
  --bs-btn-hover-color: #8d2330;
  --bs-btn-hover-bg: rgba(220, 53, 69, .10);
  --bs-btn-hover-border-color: rgba(167, 46, 59, .62);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #a72e3b;
  --bs-btn-active-border-color: #a72e3b;
}

.btn-outline-warning {
  --bs-btn-color: #7a5b00;
  --bs-btn-bg: transparent;
  --bs-btn-border-color: rgba(214, 158, 46, .55);
  --bs-btn-hover-color: #674b00;
  --bs-btn-hover-bg: rgba(255, 193, 7, .18);
  --bs-btn-hover-border-color: rgba(214, 158, 46, .75);
  --bs-btn-active-color: #392900;
  --bs-btn-active-bg: rgba(255, 193, 7, .55);
  --bs-btn-active-border-color: rgba(214, 158, 46, .88);
}

.btn-outline-info {
  --bs-btn-color: #216775;
  --bs-btn-bg: transparent;
  --bs-btn-border-color: rgba(33, 103, 117, .42);
  --bs-btn-hover-color: #185565;
  --bs-btn-hover-bg: rgba(13, 202, 240, .13);
  --bs-btn-hover-border-color: rgba(33, 103, 117, .62);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #216775;
  --bs-btn-active-border-color: #216775;
}

.btn-outline-dark,
.btn-outline-light {
  --bs-btn-hover-color: var(--nutri-wine-dark);
  --bs-btn-hover-bg: rgba(255, 255, 255, .86);
  --bs-btn-hover-border-color: rgba(98, 20, 45, .22);
}

.btn[class*="btn-outline-"]:hover,
.btn[class*="btn-outline-"]:focus-visible,
.btn[class*="btn-outline-"].show,
.btn[class*="btn-outline-"][aria-expanded="true"] {
  color: var(--bs-btn-hover-color) !important;
  background-color: var(--bs-btn-hover-bg) !important;
  border-color: var(--bs-btn-hover-border-color) !important;
}

.btn-check:checked + .btn[class*="btn-outline-"],
.btn[class*="btn-outline-"].active,
.btn[class*="btn-outline-"]:active {
  color: var(--bs-btn-active-color, var(--bs-btn-hover-color)) !important;
  background-color: var(--bs-btn-active-bg, var(--bs-btn-hover-bg)) !important;
  border-color: var(--bs-btn-active-border-color, var(--bs-btn-hover-border-color)) !important;
}

body.app-shell-body .btn[class*="btn-outline-"] {
  background-color: rgba(255, 255, 255, .72);
}

body.app-shell-body .btn[class*="btn-outline-"]:hover,
body.app-shell-body .btn[class*="btn-outline-"]:focus-visible,
body.app-shell-body .btn[class*="btn-outline-"].show,
body.app-shell-body .btn[class*="btn-outline-"][aria-expanded="true"] {
  color: var(--bs-btn-hover-color) !important;
  background-color: var(--bs-btn-hover-bg) !important;
  border-color: var(--bs-btn-hover-border-color) !important;
  text-decoration: none;
}


/* Correção específica: dropdown Ações em /admin/usuarios sempre abre colado ao botão */
body.app-shell-body .admin-users-page .card,
body.app-shell-body .admin-users-page .card-body,
body.app-shell-body .admin-users-page .table-responsive,
body.app-shell-body .admin-users-page .users-table {
  overflow: visible !important;
}

body.app-shell-body .admin-users-page .admin-user-actions-dropdown {
  position: relative;
  display: inline-block;
}

body.app-shell-body .admin-users-page .admin-user-actions-dropdown > .btn.dropdown-toggle,
body.app-shell-body .admin-users-page .admin-user-actions-dropdown > .btn.dropdown-toggle.show,
body.app-shell-body .admin-users-page .admin-user-actions-dropdown > .btn.dropdown-toggle:focus,
body.app-shell-body .admin-users-page .admin-user-actions-dropdown > .btn.dropdown-toggle:active,
body.app-shell-body .admin-users-page .admin-user-actions-dropdown > .btn.dropdown-toggle[aria-expanded="true"] {
  color: var(--nutri-wine) !important;
  background: #fff !important;
  border-color: rgba(98, 20, 45, .28) !important;
  box-shadow: 0 .35rem .9rem rgba(80, 17, 37, .10) !important;
}

body.app-shell-body .admin-users-page .admin-user-actions-dropdown > .btn.dropdown-toggle:hover {
  color: var(--nutri-wine-dark) !important;
  background: var(--nutri-wine-soft) !important;
  border-color: rgba(98, 20, 45, .35) !important;
}

body.app-shell-body .admin-users-page .admin-user-actions-dropdown .dropdown-menu {
  position: absolute !important;
  top: calc(100% + .25rem) !important;
  right: 0 !important;
  left: auto !important;
  bottom: auto !important;
  transform: none !important;
  margin: 0 !important;
  z-index: 2100;
  min-width: 190px;
  max-width: min(92vw, 320px);
  max-height: min(62vh, 340px);
  overflow-y: auto;
  overscroll-behavior: contain;
  border-radius: 18px;
  border-color: rgba(98, 20, 45, .10);
  box-shadow: 0 .8rem 1.8rem rgba(80, 17, 37, .12);
}

body.app-shell-body .admin-users-page .admin-user-actions-dropdown .dropdown-item {
  font-weight: 650;
}

@media (max-width: 767.98px) {
  body.app-shell-body .admin-users-page .admin-user-actions-dropdown .dropdown-menu {
    min-width: 180px;
    max-width: calc(100vw - 2rem);
  }
}

/* Agendamento pendente de confirmação */
.status-aguardando_confirmacao {
  background: #fff4d8;
  color: #8a5a00;
  border: 1px solid rgba(214, 158, 46, .35);
}

.slot-price-label,
.booking-slot-price {
  color: var(--nutri-wine);
  font-weight: 750;
}

.pending-icon-ring {
  background: #fff4d8;
  border-color: rgba(214, 158, 46, .75);
  color: #8a5a00;
}

/* Sininho de notificações */
.app-notification-menu {
  position: relative;
}

.app-notification-toggle {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(98, 20, 45, .16);
  color: var(--nutri-wine);
  background: rgba(255, 255, 255, .86);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  box-shadow: 0 .35rem 1rem rgba(80, 17, 37, .08);
}

.app-notification-toggle:hover,
.app-notification-toggle:focus,
.app-notification-toggle.show {
  color: var(--nutri-wine-dark) !important;
  background: #fff !important;
  border-color: rgba(98, 20, 45, .28) !important;
}

.app-notification-badge {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: #d33b3b;
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
}

.app-notification-dropdown {
  width: min(420px, calc(100vw - 1.5rem));
  padding: 0;
  border-radius: 20px;
  border: 1px solid rgba(98, 20, 45, .12);
  box-shadow: 0 1.2rem 3rem rgba(80, 17, 37, .18);
  overflow: hidden;
}

.app-notification-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  background: linear-gradient(135deg, rgba(98, 20, 45, .08), rgba(91, 122, 55, .08));
}

.app-notification-header strong,
.app-notification-header small {
  display: block;
}

.app-notification-header strong {
  color: var(--nutri-wine-dark);
}

.app-notification-header small {
  color: #75666d;
  font-weight: 650;
}

.app-notification-list {
  max-height: min(60vh, 430px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.app-notification-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .75rem;
  padding: .9rem 1rem;
  color: inherit;
  text-decoration: none;
  border-top: 1px solid rgba(98, 20, 45, .08);
  background: #fff;
}

.app-notification-item:hover {
  background: rgba(98, 20, 45, .045);
  color: inherit;
}

.app-notification-item.unread {
  background: rgba(91, 122, 55, .07);
}

.app-notification-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(98, 20, 45, .24);
  margin-top: .38rem;
}

.app-notification-item.unread .app-notification-dot {
  background: var(--nutri-wine);
}

.app-notification-item strong,
.app-notification-item small,
.app-notification-item em {
  display: block;
}

.app-notification-item strong {
  color: var(--nutri-wine-dark);
  font-size: .92rem;
}

.app-notification-item small {
  color: #6f6268;
  line-height: 1.35;
  margin-top: .15rem;
}

.app-notification-item em {
  color: #988a91;
  font-size: .76rem;
  font-style: normal;
  margin-top: .3rem;
}

.app-notification-empty {
  padding: 1.75rem 1rem;
  text-align: center;
  color: #75666d;
}

.app-notification-empty i {
  display: block;
  font-size: 1.8rem;
  color: var(--nutri-wine);
  margin-bottom: .5rem;
}

.app-notification-empty strong,
.app-notification-empty small {
  display: block;
}

@media (max-width: 575.98px) {
  .app-notification-dropdown {
    width: calc(100vw - 1rem);
  }
}

/* Atualização em tempo real do sininho */
.app-notification-toggle.notification-updated {
  animation: notificationBellPulse 0.75s ease;
}

@keyframes notificationBellPulse {
  0% { transform: scale(1); }
  35% { transform: scale(1.12); }
  70% { transform: scale(0.96); }
  100% { transform: scale(1); }
}

/* Central de Consultas */
.consultation-central-page {
  --consultation-card-radius: 24px;
}

.consultation-central-heading .consultation-quick-help {
  max-width: 360px;
  padding: .9rem 1rem;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(98, 20, 45, .08), rgba(91, 122, 55, .08));
  border: 1px solid rgba(98, 20, 45, .10);
  color: #66545c;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: .65rem;
}

.consultation-central-heading .consultation-quick-help i {
  color: var(--nutri-wine);
  font-size: 1.25rem;
}

.consultation-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.consultation-summary-card {
  display: block;
  padding: 1.1rem;
  border-radius: 22px;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .10);
  box-shadow: 0 .8rem 1.8rem rgba(80, 17, 37, .07);
  text-decoration: none;
  color: inherit;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.consultation-summary-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 1rem 2.2rem rgba(80, 17, 37, .11);
  border-color: rgba(98, 20, 45, .22);
  color: inherit;
}

.consultation-summary-card span,
.consultation-summary-card small {
  display: block;
  color: #75666d;
  font-weight: 700;
}

.consultation-summary-card strong {
  display: block;
  margin: .35rem 0 .1rem;
  font-size: 2rem;
  line-height: 1;
  color: var(--nutri-wine);
}

.consultation-summary-card.warning strong { color: #8a5a00; }
.consultation-summary-card.info strong { color: #0b7285; }
.consultation-summary-card.success strong { color: var(--nutri-olive-dark); }

.consultation-tabs {
  display: flex;
  gap: .65rem;
  overflow-x: auto;
  padding-bottom: .35rem;
  scrollbar-width: thin;
}

.consultation-tab {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .72rem .95rem;
  border-radius: 999px;
  border: 1px solid rgba(98, 20, 45, .12);
  background: #fff;
  color: var(--nutri-wine-dark);
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 .35rem 1rem rgba(80, 17, 37, .05);
}

.consultation-tab:hover,
.consultation-tab.active {
  color: #fff;
  background: linear-gradient(135deg, var(--nutri-wine), var(--nutri-wine-dark));
  border-color: var(--nutri-wine);
}

.consultation-tab span {
  min-width: 24px;
  height: 24px;
  padding: 0 .45rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(98, 20, 45, .10);
  color: inherit;
  font-size: .76rem;
}

.consultation-tab.active span,
.consultation-tab:hover span {
  background: rgba(255,255,255,.18);
}

.consultation-filter-card {
  border-radius: 24px;
}

.consultation-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.consultation-card {
  position: relative;
  padding: 1.15rem;
  border-radius: var(--consultation-card-radius);
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .10);
  box-shadow: 0 .85rem 1.9rem rgba(80, 17, 37, .075);
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}

.consultation-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: var(--nutri-olive);
}

.consultation-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 1.1rem 2.4rem rgba(80, 17, 37, .11);
}

.consultation-card-waiting::before { background: #d69e2e; }
.consultation-card-progress::before { background: #0b7285; }
.consultation-card-finished::before { background: var(--nutri-wine); }
.consultation-card-cancelled::before { background: #9d2424; }
.consultation-card-payment::before { background: #e67700; }
.consultation-card-confirmed::before { background: var(--nutri-olive); }

.consultation-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.consultation-avatar {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: linear-gradient(135deg, var(--nutri-wine), var(--nutri-wine-dark));
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  letter-spacing: .03em;
  flex: 0 0 auto;
  box-shadow: 0 .5rem 1.1rem rgba(98, 20, 45, .18);
}

.consultation-card h3 {
  font-size: 1.08rem;
  margin: 0 .0rem .2rem;
  color: var(--nutri-wine-dark);
  font-weight: 900;
}

.consultation-card-top p {
  margin: 0;
  color: #75666d;
  font-weight: 700;
  font-size: .9rem;
}

.consultation-status-pill {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: .45rem .7rem;
  font-size: .78rem;
  font-weight: 850;
  white-space: nowrap;
}

.consultation-alert-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: .85rem;
}

.consultation-alert-row span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .35rem .55rem;
  border-radius: 999px;
  background: rgba(98, 20, 45, .055);
  font-size: .78rem;
  font-weight: 800;
}

.consultation-meta-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .65rem;
  margin-bottom: .9rem;
}

.consultation-meta-grid > div {
  padding: .72rem;
  border-radius: 16px;
  background: rgba(98, 20, 45, .035);
  border: 1px solid rgba(98, 20, 45, .07);
}

.consultation-meta-grid span,
.consultation-meta-grid strong {
  display: block;
}

.consultation-meta-grid span {
  color: #75666d;
  font-size: .72rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.consultation-meta-grid strong {
  color: var(--nutri-wine-dark);
  font-weight: 900;
  margin-top: .18rem;
}

.consultation-checks {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: 1rem;
}

.check-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .38rem .6rem;
  border-radius: 999px;
  font-size: .77rem;
  font-weight: 800;
  border: 1px solid rgba(98, 20, 45, .08);
}

.consultation-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  align-items: center;
  margin-top: .25rem;
}

.consultation-card-actions .btn {
  border-radius: 999px;
  font-weight: 850;
}

.consultation-action-menu {
  border-radius: 16px;
  border: 1px solid rgba(98, 20, 45, .10);
  box-shadow: 0 .9rem 2rem rgba(80, 17, 37, .13);
  overflow: hidden;
}

.consultation-action-menu .dropdown-item {
  font-weight: 750;
  padding: .65rem .85rem;
}

.consultation-action-menu .dropdown-item i {
  color: var(--nutri-wine);
  margin-right: .45rem;
}

.consultation-card-footer {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-top: 1rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(98, 20, 45, .08);
}

.consultation-progress {
  height: 8px;
  flex: 1 1 auto;
  border-radius: 999px;
  background: rgba(98, 20, 45, .08);
}

.consultation-progress .progress-bar {
  background: linear-gradient(90deg, var(--nutri-wine), var(--nutri-olive));
}

.consultation-card-footer small {
  color: #75666d;
  font-weight: 750;
  white-space: nowrap;
}

.bulk-confirm-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border-radius: 20px;
  background: #fff8e6;
  border: 1px solid rgba(214, 158, 46, .35);
  box-shadow: 0 .6rem 1.4rem rgba(80, 17, 37, .06);
}

.bulk-confirm-bar strong,
.bulk-confirm-bar small {
  display: block;
}

.bulk-confirm-bar strong {
  color: #8a5a00;
}

.bulk-confirm-bar small {
  color: #75666d;
  font-weight: 700;
}

.consultation-details-modal {
  border-radius: 24px;
  overflow: hidden;
}

.consultation-details-modal .modal-header {
  background: linear-gradient(135deg, rgba(98, 20, 45, .08), rgba(91, 122, 55, .08));
}

@media (max-width: 1199.98px) {
  .consultation-summary-grid,
  .consultation-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .consultation-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .consultation-summary-grid,
  .consultation-card-grid {
    grid-template-columns: 1fr;
  }

  .consultation-central-heading .consultation-quick-help {
    max-width: none;
  }

  .consultation-card-top {
    flex-direction: column;
  }

  .consultation-status-pill {
    align-self: flex-start;
  }

  .consultation-meta-grid {
    grid-template-columns: 1fr;
  }

  .bulk-confirm-bar,
  .consultation-card-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .consultation-card-actions .btn,
  .consultation-card-actions form,
  .consultation-card-actions .dropdown {
    width: 100%;
  }

  .consultation-card-actions .btn {
    width: 100%;
  }
}

/* Refinamento amigável - Meus horários e Meus pacientes */
.friendly-page {
  --friendly-radius: 26px;
}

.friendly-hero {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.25rem;
  padding: 1.45rem;
  border-radius: 30px;
  background:
    radial-gradient(circle at 8% 18%, rgba(129, 140, 65, .18), transparent 31%),
    radial-gradient(circle at 90% 0%, rgba(98, 20, 45, .12), transparent 32%),
    linear-gradient(135deg, #fff, #fffaf7 58%, #f3f5e8);
  border: 1px solid rgba(98, 20, 45, .10);
  box-shadow: 0 1rem 2.4rem rgba(80, 17, 37, .075);
  overflow: hidden;
}

.friendly-hero::after {
  content: '';
  position: absolute;
  right: -70px;
  bottom: -80px;
  width: 210px;
  height: 210px;
  border-radius: 50%;
  background: rgba(98, 20, 45, .055);
  pointer-events: none;
}

.friendly-hero-content,
.friendly-hero-actions {
  position: relative;
  z-index: 1;
}

.friendly-hero-content {
  max-width: 720px;
}

.friendly-hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .65rem;
}

.friendly-hero-actions .btn,
.friendly-filter-card .btn,
.patient-friendly-actions .btn,
.schedule-slot-actions .btn {
  border-radius: 999px;
  font-weight: 850;
}

.friendly-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.friendly-stat-card {
  position: relative;
  min-height: 136px;
  padding: 1.1rem;
  border-radius: 24px;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .09);
  box-shadow: 0 .75rem 1.65rem rgba(80, 17, 37, .06);
  overflow: hidden;
}

.friendly-stat-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: var(--nutri-wine);
}

.friendly-stat-card::after {
  content: '';
  position: absolute;
  right: -34px;
  top: -34px;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: rgba(98, 20, 45, .055);
}

.friendly-stat-card span,
.friendly-stat-card small,
.friendly-stat-card strong {
  position: relative;
  z-index: 1;
}

.friendly-stat-card span {
  display: flex;
  align-items: center;
  gap: .45rem;
  color: #75666d;
  font-weight: 850;
  font-size: .84rem;
}

.friendly-stat-card strong {
  display: block;
  color: var(--nutri-wine-dark);
  font-size: 2rem;
  line-height: 1;
  margin: .75rem 0 .45rem;
  letter-spacing: -.04em;
}

.friendly-stat-card small {
  display: block;
  color: #75666d;
  font-weight: 700;
}

.friendly-stat-success::before { background: var(--nutri-olive); }
.friendly-stat-success::after { background: rgba(129, 140, 65, .10); }
.friendly-stat-warn::before { background: #d69e2e; }
.friendly-stat-warn::after { background: rgba(214, 158, 46, .12); }
.friendly-stat-muted::before { background: #8d7b84; }
.friendly-stat-muted::after { background: rgba(141, 123, 132, .11); }

.friendly-filter-card,
.friendly-tip-card {
  border-radius: 26px;
}

.friendly-filter-card .card-body {
  padding: 1.25rem;
}

.friendly-search-group .input-group-text {
  border-radius: 16px 0 0 16px;
  background: rgba(98, 20, 45, .04);
  color: var(--nutri-wine);
  border-color: rgba(98, 20, 45, .12);
}

.friendly-search-group .form-control {
  border-radius: 0 16px 16px 0;
}

.friendly-advanced-filters {
  padding: 1rem;
  border-radius: 22px;
  background: rgba(98, 20, 45, .035);
  border: 1px dashed rgba(98, 20, 45, .14);
}

.friendly-tip-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem;
  background: linear-gradient(135deg, #fff8e9, #fff);
  border: 1px solid rgba(214, 158, 46, .25);
  box-shadow: 0 .75rem 1.7rem rgba(80, 17, 37, .055);
}

.friendly-tip-icon {
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: #fff1c7;
  color: #936500;
  font-size: 1.3rem;
}

.friendly-tip-card strong {
  display: block;
  color: var(--nutri-wine-dark);
  font-weight: 900;
  margin-bottom: .25rem;
}

.friendly-tip-card p {
  color: #75666d;
  font-weight: 700;
  line-height: 1.45;
}

.friendly-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.friendly-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
}

.friendly-legend span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .36rem .58rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .08);
  color: #75666d;
  font-size: .78rem;
  font-weight: 800;
}

.legend-dot {
  width: 9px;
  height: 9px;
  display: inline-block;
  border-radius: 999px;
  background: var(--nutri-wine);
}

.legend-success { background: var(--nutri-olive); }
.legend-warning { background: #d69e2e; }
.legend-muted { background: #8d7b84; }

.friendly-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .15rem;
  border-radius: 999px;
  padding: .42rem .68rem;
  font-size: .78rem;
  font-weight: 900;
  white-space: nowrap;
  border: 1px solid rgba(98, 20, 45, .08);
}

.friendly-status-pill.status-disponivel {
  background: rgba(129, 140, 65, .12);
  color: var(--nutri-olive-dark);
}

.friendly-status-pill.status-reservado {
  background: rgba(214, 158, 46, .14);
  color: #8a5a00;
}

.friendly-status-pill.status-bloqueado {
  background: rgba(98, 20, 45, .08);
  color: var(--nutri-wine);
}

.schedule-card-grid,
.patient-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.schedule-slot-card,
.patient-friendly-card {
  position: relative;
  border-radius: 26px;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .10);
  box-shadow: 0 .8rem 1.8rem rgba(80, 17, 37, .065);
  overflow: visible;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.schedule-slot-card:hover,
.patient-friendly-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 1.1rem 2.3rem rgba(80, 17, 37, .095);
  border-color: rgba(98, 20, 45, .18);
}

.schedule-slot-card::before,
.patient-friendly-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 7px;
  border-radius: 26px 0 0 26px;
  background: var(--nutri-wine);
}

.schedule-slot-card {
  padding: 1.15rem 1.15rem 1.15rem 1.35rem;
}

.schedule-slot-disponivel::before,
.patient-card-plan::before { background: var(--nutri-olive); }
.schedule-slot-reservado::before { background: #d69e2e; }
.schedule-slot-bloqueado::before,
.patient-card-attention::before { background: var(--nutri-wine); }

.schedule-slot-top,
.patient-friendly-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.schedule-date-box {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-width: 0;
}

.schedule-date-box i,
.schedule-time-row > i {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 15px;
  background: var(--nutri-wine-soft);
  color: var(--nutri-wine);
  font-size: 1.15rem;
}

.schedule-date-box strong {
  display: block;
  color: var(--nutri-wine-dark);
  font-weight: 900;
}

.schedule-time-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .9rem;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(98, 20, 45, .055), rgba(129, 140, 65, .06));
  margin-bottom: .8rem;
}

.schedule-time-row span,
.schedule-info-grid span,
.schedule-location-box span,
.patient-mini-grid span {
  display: block;
  color: #75666d;
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .045em;
}

.schedule-time-row strong,
.schedule-info-grid strong,
.schedule-location-box strong,
.patient-mini-grid strong {
  display: block;
  color: var(--nutri-wine-dark);
  font-weight: 900;
}

.schedule-info-grid,
.patient-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
  margin-bottom: .75rem;
}

.schedule-info-grid > div,
.patient-mini-grid > div {
  padding: .72rem;
  border-radius: 18px;
  background: rgba(98, 20, 45, .035);
  border: 1px solid rgba(98, 20, 45, .07);
  min-width: 0;
}

.schedule-location-box {
  padding: .78rem;
  border-radius: 18px;
  background: rgba(129, 140, 65, .065);
  border: 1px solid rgba(129, 140, 65, .15);
  margin-bottom: .9rem;
}

.schedule-location-box strong {
  word-break: break-word;
}

.schedule-slot-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .6rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(98, 20, 45, .08);
}

.schedule-status-form {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex: 1 1 280px;
}

.schedule-status-form .form-select {
  min-width: 145px;
}

.schedule-locked-note {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: #75666d;
  font-weight: 800;
  padding: .55rem .75rem;
  border-radius: 999px;
  background: rgba(98, 20, 45, .045);
}

.friendly-empty-state {
  text-align: center;
  padding: 3rem 1.5rem;
  border-radius: 28px;
  background: #fff;
  border: 1px dashed rgba(98, 20, 45, .18);
  box-shadow: 0 .75rem 1.6rem rgba(80, 17, 37, .055);
}

.friendly-empty-state > i {
  width: 72px;
  height: 72px;
  display: inline-grid;
  place-items: center;
  border-radius: 24px;
  background: var(--nutri-wine-soft);
  color: var(--nutri-wine);
  font-size: 2rem;
  margin-bottom: 1rem;
}

.friendly-empty-state strong {
  display: block;
  color: var(--nutri-wine-dark);
  font-size: 1.2rem;
  font-weight: 900;
  margin-bottom: .35rem;
}

.friendly-empty-state p {
  color: #75666d;
  font-weight: 700;
  max-width: 520px;
  margin: 0 auto 1rem;
}

.friendly-patient-search {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto auto;
  gap: .6rem;
  align-items: center;
  width: min(100%, 830px);
}

.patient-friendly-card {
  padding: 1.15rem 1.15rem 1.15rem 1.35rem;
}

.patient-friendly-avatar {
  width: 58px;
  height: 58px;
  border-radius: 20px;
  object-fit: cover;
  flex: 0 0 auto;
  box-shadow: 0 .6rem 1.15rem rgba(98, 20, 45, .13);
}

.patient-friendly-initials {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--nutri-wine), var(--nutri-wine-dark));
  color: #fff;
  font-weight: 950;
  letter-spacing: .04em;
}

.patient-friendly-top h3 {
  color: var(--nutri-wine-dark);
  font-size: 1.08rem;
  font-weight: 950;
  margin: 0 0 .18rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.patient-friendly-top p {
  color: #75666d;
  font-weight: 700;
  font-size: .86rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.patient-friendly-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
  margin-bottom: .85rem;
}

.patient-friendly-details > div {
  display: flex;
  align-items: flex-start;
  gap: .45rem;
  color: #75666d;
  font-size: .84rem;
  font-weight: 700;
  min-width: 0;
}

.patient-friendly-details i {
  color: var(--nutri-wine);
  margin-top: .1rem;
}

.patient-friendly-details span {
  min-width: 0;
  overflow-wrap: anywhere;
}


.patient-commercial-plan-box {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .85rem .9rem;
  border-radius: 18px;
  border: 1px solid rgba(98, 20, 45, .10);
  background: rgba(98, 20, 45, .035);
  margin-bottom: .85rem;
}

.patient-commercial-plan-box.has-commercial-plan {
  border-color: rgba(101, 131, 58, .22);
  background: rgba(101, 131, 58, .08);
}

.patient-commercial-plan-box.no-commercial-plan {
  border-color: rgba(214, 158, 46, .20);
  background: rgba(214, 158, 46, .08);
}

.patient-commercial-plan-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 14px;
  background: #fff;
  color: var(--nutri-wine);
  box-shadow: inset 0 0 0 1px rgba(98, 20, 45, .08);
}

.patient-commercial-plan-box.has-commercial-plan .patient-commercial-plan-icon {
  color: var(--nutri-olive);
}

.patient-commercial-plan-box span {
  display: block;
  color: #75666d;
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.patient-commercial-plan-box strong {
  display: block;
  color: var(--nutri-wine-dark);
  font-size: .98rem;
  font-weight: 900;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.patient-commercial-plan-box small {
  display: block;
  color: #75666d;
  font-size: .8rem;
  font-weight: 700;
  margin-top: .15rem;
}

.patient-check-row {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .95rem;
}

.patient-friendly-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(98, 20, 45, .08);
}

.min-w-0 {
  min-width: 0;
}

.patient-friendly-actions .dropdown-menu,
.schedule-slot-actions .dropdown-menu {
  z-index: 1080;
}

@media (max-width: 1199.98px) {
  .friendly-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .schedule-card-grid,
  .patient-card-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991.98px) {
  .friendly-hero,
  .friendly-section-header {
    align-items: flex-start;
    flex-direction: column;
  }
  .friendly-hero-actions,
  .friendly-legend {
    justify-content: flex-start;
  }
  .friendly-patient-search {
    grid-template-columns: 1fr 170px;
    width: 100%;
  }
  .friendly-patient-search .btn {
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  .friendly-hero {
    padding: 1.15rem;
    border-radius: 24px;
  }
  .friendly-hero-actions,
  .friendly-hero-actions .btn {
    width: 100%;
  }
  .friendly-summary-grid,
  .schedule-info-grid,
  .patient-mini-grid,
  .patient-friendly-details,
  .friendly-patient-search {
    grid-template-columns: 1fr;
  }
  .friendly-stat-card {
    min-height: auto;
  }
  .schedule-slot-actions,
  .schedule-status-form,
  .patient-friendly-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .schedule-status-form .form-select,
  .schedule-slot-actions .btn,
  .patient-friendly-actions .btn,
  .patient-friendly-actions .dropdown,
  .patient-friendly-actions .dropdown .btn {
    width: 100%;
  }
  .patient-friendly-top,
  .schedule-slot-top {
    flex-direction: column;
  }
}

/* Correção visual da div flutuante de atendimento da nutricionista */
.consultation-room-page .consultation-launch-card,
.consultation-workspace-modal .modal-content,
.preconsult-edit-modal .modal-content {
  color: #3f3037;
}

.consultation-workspace-modal .modal-dialog,
.preconsult-edit-modal .modal-dialog {
  width: min(1180px, calc(100vw - 1.5rem));
}

.consultation-workspace-modal .modal-content,
.preconsult-edit-modal .modal-content {
  border-radius: 28px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .08);
  box-shadow: 0 28px 90px rgba(45, 28, 36, .24);
}

.consultation-workspace-modal .modal-header,
.preconsult-edit-modal .modal-header {
  min-height: auto;
  gap: 1rem;
  padding: 1.25rem 4.25rem 1.1rem 1.35rem;
  background: linear-gradient(135deg, #fffaf7 0%, #f7f8eb 100%);
  border-bottom: 1px solid rgba(98, 20, 45, .09);
}

.consultation-workspace-title,
.preconsult-edit-header > div {
  min-width: 0;
}

.consultation-workspace-title .modal-title,
.preconsult-edit-header .modal-title {
  color: var(--nutri-wine);
  line-height: 1.2;
}

.consultation-workspace-title p,
.preconsult-edit-header p {
  line-height: 1.45;
}

.consultation-workspace-close,
.preconsult-edit-close {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  top: 1rem;
  right: 1rem;
  width: 2.45rem;
  height: 2.45rem;
  flex: 0 0 2.45rem;
  padding: .65rem;
  border: 1px solid rgba(98, 20, 45, .12);
  border-radius: 999px;
  background-color: #fff;
  background-size: .78rem;
  box-shadow: 0 .55rem 1.35rem rgba(80, 17, 37, .12);
  opacity: 1;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.consultation-workspace-close:hover,
.preconsult-edit-close:hover {
  transform: translateY(-1px);
  background-color: #fff7f8;
  box-shadow: 0 .75rem 1.6rem rgba(80, 17, 37, .16);
}

.consultation-workspace-modal .modal-body,
.preconsult-edit-modal .modal-body {
  padding: 1.25rem;
  background: #fffdfb;
}

.consultation-workspace-modal .modal-footer {
  gap: .65rem;
  padding: .95rem 1.25rem;
  background: #fffaf7;
  border-top: 1px solid rgba(98, 20, 45, .09);
}

.consultation-workspace-modal .modal-footer .btn,
.consultation-workspace-modal .modal-body .btn,
.consultation-room-page .btn,
.preconsult-edit-modal .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 2.35rem;
  line-height: 1.15;
  white-space: normal;
}

.consultation-workspace-modal .modal-footer .btn i,
.consultation-workspace-modal .modal-body .btn i,
.consultation-room-page .btn i,
.preconsult-edit-modal .btn i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-size: 1rem;
  margin: 0;
}

.consultation-workspace-modal .btn-success,
.consultation-room-page .btn-success,
.preconsult-edit-modal .btn-success {
  color: #fff !important;
  background: var(--nutri-olive) !important;
  border-color: var(--nutri-olive) !important;
}

.consultation-workspace-modal .btn-outline-success,
.consultation-room-page .btn-outline-success,
.preconsult-edit-modal .btn-outline-success {
  color: var(--nutri-olive-dark) !important;
  background: #fff !important;
  border-color: rgba(129, 140, 65, .42) !important;
}

.consultation-workspace-modal .btn-outline-success:hover,
.consultation-room-page .btn-outline-success:hover,
.preconsult-edit-modal .btn-outline-success:hover {
  color: var(--nutri-olive-dark) !important;
  background: #f4f7e8 !important;
  border-color: var(--nutri-olive) !important;
}

.consultation-workspace-modal .btn-outline-secondary,
.consultation-room-page .btn-outline-secondary,
.preconsult-edit-modal .btn-outline-secondary {
  color: #5f4d56 !important;
  background: #fff !important;
  border-color: rgba(95, 77, 86, .24) !important;
}

.consultation-workspace-modal .btn-outline-secondary:hover,
.consultation-room-page .btn-outline-secondary:hover,
.preconsult-edit-modal .btn-outline-secondary:hover {
  color: var(--nutri-wine) !important;
  background: #fff7f8 !important;
  border-color: rgba(98, 20, 45, .28) !important;
}

.consultation-workspace-modal .clean-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
  padding: .45rem;
  border-radius: 22px;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .08);
}

.consultation-workspace-modal .clean-tabs .nav-item {
  display: flex;
}

.consultation-workspace-modal .clean-tabs .nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: .62rem .95rem;
  color: #604a55;
  background: transparent;
  border-radius: 999px;
  line-height: 1.1;
}

.consultation-workspace-modal .clean-tabs .nav-link:hover {
  color: var(--nutri-wine);
  background: #fff7f8;
}

.consultation-workspace-modal .clean-tabs .nav-link.active {
  color: #fff;
  background: var(--nutri-olive);
}

.consultation-status-line {
  max-width: 100%;
}

.consultation-status-line .badge,
.consultation-workspace-modal .badge,
.preconsult-edit-modal .badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  line-height: 1.1;
  min-height: 1.65rem;
  padding: .42rem .65rem;
  white-space: normal;
  text-align: center;
}

.consultation-workspace-modal .text-bg-light,
.preconsult-edit-modal .text-bg-light {
  color: #5d4b54 !important;
  background-color: #fff !important;
  border: 1px solid rgba(98, 20, 45, .10);
}

.consultation-workspace-body .info-box,
.preconsult-edit-modal .info-box {
  height: 100%;
  border-radius: 20px;
  border: 1px solid rgba(98, 20, 45, .08);
  background: #fff;
  box-shadow: 0 .45rem 1.2rem rgba(80, 17, 37, .04);
}

.consultation-workspace-body .info-box p,
.preconsult-edit-modal .info-box p {
  overflow-wrap: anywhere;
}

.consultation-workspace-modal .clean-section-card,
.preconsult-edit-modal .clean-section-card,
.consultation-workspace-modal .preconsult-review-panel {
  border-radius: 22px;
}

.consultation-workspace-modal textarea.form-control,
.preconsult-edit-modal textarea.form-control,
.preconsult-edit-modal input.form-control,
.preconsult-edit-modal select.form-select {
  border-radius: 16px;
}

.consultation-notes-area,
.consultation-summary-area {
  width: 100%;
  min-height: 280px;
}

.preconsult-review-panel .d-flex.flex-wrap.gap-2.align-items-center {
  justify-content: flex-start;
}

.preconsult-review-panel .btn.btn-sm {
  min-height: 2.1rem;
  padding: .45rem .7rem;
  border-radius: 999px;
}

@media (max-width: 767.98px) {
  .consultation-workspace-modal .modal-dialog,
  .preconsult-edit-modal .modal-dialog {
    width: auto;
    margin: .5rem;
  }

  .consultation-workspace-modal .modal-content,
  .preconsult-edit-modal .modal-content {
    border-radius: 22px;
  }

  .consultation-workspace-modal .modal-header,
  .preconsult-edit-modal .modal-header {
    padding: 1rem 3.65rem 1rem 1rem;
  }

  .consultation-workspace-modal .modal-body,
  .preconsult-edit-modal .modal-body {
    padding: 1rem;
  }

  .consultation-workspace-modal .modal-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .consultation-workspace-modal .modal-footer .btn,
  .consultation-room-page .page-heading .btn,
  .consultation-room-page .consultation-launch-card .btn,
  .preconsult-edit-modal .btn[type="submit"] {
    width: 100%;
  }

  .consultation-workspace-modal .clean-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: .55rem;
  }

  .consultation-workspace-modal .clean-tabs .nav-link {
    white-space: nowrap;
  }
}

/* Página de resumo do atendimento: padronizada com a div/modal de consulta */
.consultation-summary-polished-page {
  --summary-border: rgba(98, 20, 45, .10);
  --summary-shadow: 0 1rem 2.4rem rgba(80, 17, 37, .08);
}

.consultation-summary-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.35rem;
  margin-bottom: 1rem;
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,250,247,.92));
  box-shadow: var(--summary-shadow);
}

.consultation-summary-hero-main {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  min-width: 0;
}

.consultation-summary-icon,
.summary-mini-icon {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: var(--nutri-wine);
  background: linear-gradient(135deg, rgba(248, 237, 242, .96), rgba(243, 245, 232, .78));
  border: 1px solid rgba(98, 20, 45, .10);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.48);
}

.consultation-summary-icon {
  width: 58px;
  height: 58px;
  border-radius: 20px;
  font-size: 1.55rem;
}

.summary-mini-icon {
  font-size: 1.1rem;
}

.consultation-summary-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .55rem;
}

.consultation-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 42px;
  white-space: nowrap;
}

.consultation-action-btn .bi,
.consultation-summary-page .btn .bi {
  line-height: 1;
  font-size: 1rem;
  flex: 0 0 auto;
}

.consultation-summary-status-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .55rem;
}

.consultation-summary-status-line {
  background: rgba(255, 255, 255, .76);
}

.consultation-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.consultation-summary-mini-card {
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  min-width: 0;
  padding: 1.05rem;
  border-radius: 22px;
  background: rgba(255, 255, 255, .86);
  border: 1px solid var(--summary-border);
  box-shadow: 0 .7rem 1.6rem rgba(80, 17, 37, .055);
}

.consultation-summary-mini-card span,
.consultation-summary-meta-grid span {
  display: block;
  color: #806b74;
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.consultation-summary-mini-card strong {
  display: block;
  color: #3f2732;
  font-size: 1rem;
  line-height: 1.2;
  margin-top: .1rem;
  overflow-wrap: anywhere;
}

.consultation-summary-mini-card small {
  display: block;
  color: #7c6871;
  line-height: 1.35;
  margin-top: .18rem;
  overflow-wrap: anywhere;
}

.consultation-summary-panel,
.consultation-summary-edit-card,
.consultation-summary-preconsult {
  border-radius: 26px;
  border: 1px solid var(--summary-border);
  background: rgba(255, 255, 255, .9);
  box-shadow: var(--summary-shadow);
  overflow: hidden;
}

.consultation-summary-panel-primary {
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(247,251,247,.88));
}

.consultation-summary-panel-header,
.consultation-summary-edit-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.25rem;
  background: linear-gradient(135deg, rgba(255,250,247,.96), rgba(243,245,232,.55));
  border-bottom: 1px solid rgba(127, 92, 106, .11);
}

.consultation-summary-panel-body {
  padding: 1.25rem;
  min-height: 190px;
}

.consultation-summary-notes-body {
  min-height: 305px;
}

.consultation-summary-page .consultation-text {
  color: #4f3a44;
  font-size: .98rem;
  line-height: 1.72;
}

.consultation-summary-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  padding: 0 1.25rem 1.25rem;
}

.consultation-summary-meta-grid > div {
  border-radius: 17px;
  background: rgba(248, 237, 242, .46);
  border: 1px solid rgba(98, 20, 45, .07);
  padding: .8rem;
  min-width: 0;
}

.consultation-summary-meta-grid strong {
  display: block;
  color: #3f2732;
  font-size: .88rem;
  margin-top: .18rem;
  overflow-wrap: anywhere;
}

.consultation-summary-edit-card {
  padding: 0;
}

.consultation-summary-edit-form {
  padding: 1.25rem;
}

.consultation-summary-edit-footer {
  display: flex;
  justify-content: flex-end;
  gap: .55rem;
  padding-top: 1rem;
}

.consultation-summary-preconsult {
  padding: 0;
}

.consultation-summary-preconsult > .consultation-summary-panel-header {
  border-bottom: 1px solid rgba(127, 92, 106, .11);
}

.consultation-summary-preconsult-body {
  padding: 1.25rem;
}

.consultation-summary-page .clean-tabs,
.consultation-summary-page .nav-pills,
.consultation-summary-page .nav-tabs {
  gap: .35rem;
}

.consultation-summary-page .preconsult-review-panel,
.consultation-summary-page .clean-tab-content,
.consultation-summary-page .tab-content {
  min-width: 0;
}

.consultation-summary-page .badge,
.consultation-summary-page .status-agendada,
.consultation-summary-page .status-confirmada,
.consultation-summary-page .status-realizada,
.consultation-summary-page .status-cancelada,
.consultation-summary-page .status-pendente_confirmacao {
  vertical-align: middle;
}

@media (max-width: 1199.98px) {
  .consultation-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .consultation-summary-hero {
    flex-direction: column;
  }

  .consultation-summary-actions {
    justify-content: flex-start;
    width: 100%;
  }
}

@media (max-width: 767.98px) {
  .consultation-summary-hero,
  .consultation-summary-panel,
  .consultation-summary-edit-card,
  .consultation-summary-preconsult,
  .consultation-summary-mini-card {
    border-radius: 20px;
  }

  .consultation-summary-hero-main {
    flex-direction: column;
  }

  .consultation-summary-grid,
  .consultation-summary-meta-grid {
    grid-template-columns: 1fr;
  }

  .consultation-summary-actions .btn,
  .consultation-action-btn {
    width: 100%;
  }

  .consultation-summary-panel-header,
  .consultation-summary-edit-header {
    padding: 1rem;
  }

  .consultation-summary-panel-body,
  .consultation-summary-edit-form,
  .consultation-summary-preconsult-body {
    padding: 1rem;
  }
}


/* Correção da pré-consulta dentro do atendimento: remove comportamento de grade antiga e evita menu vertical atrapalhando */
.preconsult-review-panel {
  display: block;
  min-width: 0;
  width: 100%;
  padding: 1rem;
  border-radius: 22px;
  border: 1px solid rgba(98, 20, 45, .08);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 .45rem 1.2rem rgba(80, 17, 37, .04);
}

.preconsult-review-panel > .d-flex:first-child {
  padding: 0;
  border: 0;
  background: transparent;
}

.preconsult-review-panel .clean-tabs {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  margin-top: .25rem;
  margin-bottom: 1rem !important;
}

.preconsult-review-panel .clean-tabs .nav-item,
.preconsult-review-panel .clean-tabs .nav-link {
  flex: 0 0 auto;
}

.preconsult-review-panel .clean-tab-content,
.preconsult-review-panel .tab-content,
.preconsult-review-panel .tab-pane {
  min-width: 0;
  width: 100%;
}

.preconsult-review-panel .data-grid > div,
.preconsult-review-panel .pre-consultation-answer-list > div,
.preconsult-review-panel .preconsult-meal-card,
.preconsult-review-panel .info-box,
.preconsult-review-panel .summary-highlight,
.preconsult-review-panel .tool-list-item {
  min-width: 0;
}

/* Na modal de editar pré-consulta, escondemos o menu lateral de etapas para não ocupar o meio da tela. A navegação segue pelos botões Voltar/Próxima etapa. */
.preconsult-form-shell-modal > .col-lg-4 {
  display: none !important;
}

.preconsult-form-shell-modal > .col-lg-8 {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}

.preconsult-edit-modal .preconsult-step,
.preconsult-edit-modal .preconsult-step .card-body {
  border-radius: 22px;
}

.preconsult-edit-modal .preconsult-step .card-body {
  padding: 1.25rem;
}

@media (max-width: 767.98px) {
  .preconsult-review-panel {
    padding: .85rem;
    border-radius: 20px;
  }

  .preconsult-review-panel .clean-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: .55rem;
  }

  .preconsult-review-panel .clean-tabs .nav-link {
    white-space: nowrap;
  }
}

/* Atendimento integrado em página completa */
.consultation-full-page {
  --consultation-card-radius: 24px;
}

.consultation-full-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.consultation-full-hero-main {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.consultation-full-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  position: sticky;
  top: 1rem;
  z-index: 12;
}

.consultation-full-nav a {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  text-decoration: none;
  border: 1px solid rgba(111, 22, 55, .16);
  border-radius: 999px;
  padding: .7rem 1rem;
  color: var(--primary, #6f1637);
  background: #fff;
  font-weight: 700;
}

.consultation-full-nav a:hover {
  background: rgba(111, 22, 55, .08);
  color: var(--primary, #6f1637);
}

.consultation-full-section {
  scroll-margin-top: 120px;
}

.consultation-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.2rem;
}

.consultation-subpanel {
  border: 1px solid rgba(111, 22, 55, .12);
  border-radius: 20px;
  background: rgba(255,255,255,.78);
  padding: 1rem;
}

.preconsult-horizontal-tabs {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  padding-bottom: .25rem;
}

.preconsult-horizontal-tabs .nav-link {
  white-space: nowrap;
}

.preconsult-question-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.preconsult-question-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .9fr);
  gap: 1rem;
  border: 1px solid rgba(111, 22, 55, .12);
  border-radius: 18px;
  padding: 1rem;
  background: #fff;
}

.preconsult-question-card span,
.nutritionist-review-note span {
  display: block;
  color: var(--primary, #6f1637);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .35rem;
}

.preconsult-question-card p {
  margin-bottom: 0;
  white-space: pre-line;
}

.nutritionist-review-input {
  min-height: 96px;
  border-radius: 14px;
  background: rgba(111, 22, 55, .035);
}

.nutritionist-review-note {
  border-left: 3px solid var(--primary, #6f1637);
  background: rgba(111, 22, 55, .055);
  border-radius: 14px;
  padding: .85rem;
}

.dynamic-list-block {
  border: 1px dashed rgba(111, 22, 55, .2);
  border-radius: 18px;
  padding: 1rem;
  background: rgba(111, 22, 55, .025);
}

.dynamic-list-item .btn-link:hover {
  background: transparent !important;
  color: #b42318 !important;
}

.single-column {
  grid-template-columns: 1fr !important;
}

.compact-meal-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.result-chip-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.result-chip {
  border: 1px solid rgba(111, 22, 55, .12);
  border-radius: 18px;
  padding: .9rem;
  background: rgba(255,255,255,.85);
}

.result-chip span {
  display: block;
  color: #6b7280;
  font-size: .8rem;
  margin-bottom: .25rem;
}

.result-chip strong {
  display: block;
  color: var(--primary, #6f1637);
  font-size: 1rem;
}

.result-chip small {
  display: block;
  color: #6b7280;
  margin-top: .25rem;
}

@media (max-width: 991.98px) {
  .consultation-full-hero,
  .consultation-section-heading {
    flex-direction: column;
  }
  .preconsult-question-grid,
  .result-chip-grid {
    grid-template-columns: 1fr;
  }
  .preconsult-question-card {
    grid-template-columns: 1fr;
  }
  .consultation-full-nav {
    position: static;
  }
}

/* Pré-consulta em página única durante o atendimento: mantém somente Anexos em aba separada */
.preconsult-review-single-page .preconsult-main-tabs {
  gap: .65rem;
  border-bottom: 1px solid rgba(111, 22, 55, .08);
  padding-bottom: .75rem;
}

.preconsult-review-single-page .preconsult-main-tabs .nav-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border-radius: 999px;
  font-weight: 800;
}

.preconsult-review-section {
  padding: 1rem;
  margin-bottom: 1rem;
  border: 1px solid rgba(111, 22, 55, .10);
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.86));
  box-shadow: 0 .35rem .9rem rgba(80, 17, 37, .035);
}

.preconsult-review-section-title {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  margin-bottom: .9rem;
  padding-bottom: .65rem;
  border-bottom: 1px dashed rgba(111, 22, 55, .14);
}

.preconsult-review-section-title .section-kicker {
  color: var(--primary, #6f1637);
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.preconsult-review-section-title h4 {
  margin: 0;
  color: #351220;
  font-size: 1.02rem;
  font-weight: 800;
}

.preconsult-medication-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: .75rem;
}

.preconsult-medication-card {
  border: 1px dashed rgba(111, 22, 55, .18);
  border-radius: 16px;
  padding: .8rem;
  background: rgba(111, 22, 55, .035);
}

.preconsult-medication-card strong,
.preconsult-medication-card small {
  display: block;
}

.preconsult-medication-card strong {
  color: #351220;
  font-weight: 800;
}

.preconsult-medication-card small {
  color: #6b7280;
  margin-top: .25rem;
}

@media (max-width: 767.98px) {
  .preconsult-review-section {
    padding: .85rem;
    border-radius: 18px;
  }
}

/* Atendimento: abas principais com avaliação física integrada */
.consultation-full-nav a.active,
.consultation-full-nav a[aria-selected="true"] {
  background: rgba(111, 22, 55, .10);
  color: var(--primary, #6f1637);
  border-color: rgba(111, 22, 55, .28);
  box-shadow: 0 .45rem 1rem rgba(111, 22, 55, .08);
}

.consultation-assessment-tab-content .consultation-evolution-form {
  display: block;
}

/* Resumos vinculados ao atendimento e avaliação nutricional no perfil */
.consultation-final-overview-card {
  border-radius: 26px;
  border: 1px solid rgba(98, 20, 45, .10);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 1rem 2.4rem rgba(80, 17, 37, .08);
  overflow: hidden;
}

.consultation-final-overview-body {
  padding: 1.25rem;
}

.consultation-final-overview-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .75rem;
}

.consultation-final-overview-list li {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  padding: .78rem .85rem;
  border-radius: 16px;
  background: rgba(248, 237, 242, .38);
  border: 1px solid rgba(98, 20, 45, .07);
  color: #4f3a44;
}

.consultation-final-overview-list li .bi {
  color: var(--nutri-wine);
  line-height: 1.25;
  flex: 0 0 auto;
}

.consultation-assessment-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
}

.consultation-assessment-summary-grid > div {
  min-width: 0;
  padding: .9rem;
  border-radius: 18px;
  background: rgba(255, 250, 247, .72);
  border: 1px solid rgba(98, 20, 45, .08);
}

.consultation-assessment-summary-grid span,
.patient-assessment-highlight span {
  display: block;
  color: #806b74;
  font-size: .73rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.consultation-assessment-summary-grid strong,
.patient-assessment-highlight strong {
  display: block;
  color: #3f2732;
  font-size: 1.05rem;
  line-height: 1.2;
  margin-top: .12rem;
}

.consultation-assessment-summary-grid small,
.patient-assessment-highlight small {
  display: block;
  color: #7c6871;
  line-height: 1.35;
  margin-top: .18rem;
}

.patient-assessment-card {
  border-radius: 26px;
  overflow: hidden;
}

.patient-assessment-highlight {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-radius: 20px;
  border: 1px solid rgba(98, 20, 45, .08);
  background: linear-gradient(135deg, rgba(248, 237, 242, .58), rgba(243, 245, 232, .42));
}

@media (max-width: 991.98px) {
  .consultation-assessment-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .consultation-assessment-summary-grid {
    grid-template-columns: 1fr;
  }
}

/* Ajustes de login, WhatsApp e área de planos no portal do paciente */
.password-toggle-group .password-visibility-toggle {
  border-color: rgba(98, 20, 45, .18);
  color: var(--nutri-wine);
  background: #fff;
  min-width: 3.25rem;
}

.password-toggle-group .password-visibility-toggle:hover,
.password-toggle-group .password-visibility-toggle:focus {
  color: var(--nutri-wine-dark);
  background: var(--nutri-wine-soft);
  border-color: rgba(98, 20, 45, .28);
}

body.app-shell-body .whatsapp-float-icon {
  right: 20px;
  bottom: 20px;
  z-index: 1035;
}

body.app-shell-body .whatsapp-icon-circle {
  width: 54px;
  height: 54px;
}

body.app-shell-body .whatsapp-icon-svg {
  width: 31px;
  height: 31px;
}

body.app-shell-body .whatsapp-tooltip {
  font-size: .92rem;
  width: min(290px, calc(100vw - 110px));
}

.patient-plans-values-card {
  overflow: hidden;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,237,242,.72));
}

.patient-plan-values-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
  gap: 1rem;
}

.patient-plan-value-card {
  min-height: 100%;
  border: 1px solid rgba(98, 20, 45, .10);
  background: rgba(255,255,255,.96);
  border-radius: 24px;
  padding: 1rem;
  box-shadow: 0 .65rem 1.4rem rgba(80, 17, 37, .07);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
}

.patient-plan-category {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: .3rem .65rem;
  border-radius: 999px;
  background: var(--nutri-olive-soft);
  color: var(--nutri-olive-dark);
  font-weight: 800;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .65rem;
}

.patient-plan-value-card h3 {
  font-size: 1.08rem;
  font-weight: 800;
  color: var(--nutri-wine-dark);
  margin-bottom: .4rem;
}

.patient-plan-value-card p,
.patient-plan-benefits {
  color: #6d5d64;
  font-size: .92rem;
  line-height: 1.45;
  margin-bottom: 0;
  white-space: pre-wrap;
}

.patient-plan-footer {
  display: grid;
  gap: .8rem;
}

.patient-plan-price {
  border-radius: 18px;
  background: var(--nutri-wine-soft);
  padding: .75rem .85rem;
}

.patient-plan-price span {
  display: block;
  font-size: .76rem;
  color: #7b6870;
  font-weight: 700;
}

.patient-plan-price strong {
  display: block;
  color: var(--nutri-wine-dark);
  font-size: 1.22rem;
  line-height: 1.2;
}

.patient-plan-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.patient-plan-meta span {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(98, 20, 45, .10);
  color: #6d5d64;
  padding: .35rem .55rem;
  font-size: .78rem;
  font-weight: 700;
}

@media (max-width: 991.98px) {
  body.app-shell-body .whatsapp-float-icon {
    right: 14px;
    bottom: 14px;
  }
}

/* Painel do paciente - card resumido da última avaliação física */
.patient-dashboard-assessment-card {
  overflow: hidden;
}

.patient-dashboard-assessment-preview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
}

.patient-dashboard-assessment-chip {
  min-width: 0;
  border: 1px solid rgba(111, 22, 55, .12);
  border-radius: 18px;
  padding: .85rem .95rem;
  background: linear-gradient(135deg, rgba(111, 22, 55, .045), rgba(243, 245, 232, .42));
}

.patient-dashboard-assessment-chip span {
  display: block;
  color: #806b74;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  margin-bottom: .15rem;
}

.patient-dashboard-assessment-chip strong {
  display: block;
  color: var(--primary, #6f1637);
  font-size: 1.05rem;
  line-height: 1.2;
}

.patient-dashboard-assessment-chip small {
  display: block;
  color: #6c757d;
  line-height: 1.3;
  margin-top: .12rem;
}

@media (max-width: 991.98px) {
  .patient-dashboard-assessment-preview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .patient-dashboard-assessment-preview {
    grid-template-columns: 1fr;
  }
}

/* Atalho discreto para check-in alimentar no painel do paciente */
.patient-quick-checkin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  border-radius: 999px;
  border: 1px solid rgba(129, 140, 65, .35);
  background: rgba(243, 245, 232, .82);
  color: var(--nutri-olive-dark) !important;
  font-weight: 800;
  padding: .45rem .8rem;
  box-shadow: 0 8px 20px rgba(37, 24, 32, .06);
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
}

.patient-quick-checkin-btn:hover,
.patient-quick-checkin-btn:focus {
  background: var(--nutri-olive-soft);
  border-color: rgba(129, 140, 65, .55);
  color: var(--nutri-olive-dark) !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(37, 24, 32, .09);
}

.patient-quick-checkin-btn i {
  color: inherit;
  line-height: 1;
}

@media (max-width: 575.98px) {
  .patient-quick-checkin-btn {
    width: 100%;
  }
}

/* Portal do paciente - detalhes do plano contratado e consumo */
.patient-current-package-compact .badge {
  white-space: normal;
  text-align: center;
}

.patient-plan-usage-mini {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}

.patient-plan-usage-mini div {
  border-radius: 18px;
  padding: .75rem .8rem;
  border: 1px solid rgba(111, 22, 55, .10);
  background: rgba(255, 255, 255, .78);
}

.patient-plan-usage-mini span,
.patient-plan-usage-mini strong {
  display: block;
}

.patient-plan-usage-mini span {
  font-size: .72rem;
  color: #7b6870;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  line-height: 1.2;
  margin-bottom: .2rem;
}

.patient-plan-usage-mini strong {
  color: var(--nutri-wine-dark);
  font-size: 1.16rem;
  line-height: 1.1;
}

.patient-current-package-detailed {
  scroll-margin-top: 105px;
}

.patient-current-package-description {
  color: #6d5d64;
  margin-bottom: 1rem;
  max-width: 820px;
}

.patient-plan-usage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
}

.patient-plan-usage-item {
  border: 1px solid rgba(111, 22, 55, .11);
  border-radius: 22px;
  padding: 1rem;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 .55rem 1.2rem rgba(80, 17, 37, .045);
}

.patient-plan-usage-item strong {
  color: var(--nutri-wine-dark);
  font-weight: 800;
}

.patient-plan-usage-item > div span {
  color: var(--nutri-olive-dark);
  font-weight: 900;
}

.patient-plan-progress {
  height: .58rem;
  border-radius: 999px;
  background: rgba(111, 22, 55, .08);
  overflow: hidden;
  margin-bottom: .45rem;
}

.patient-plan-progress .progress-bar {
  background: linear-gradient(90deg, var(--nutri-wine), var(--nutri-olive));
  border-radius: inherit;
}

.patient-plan-usage-item small {
  color: #6d5d64;
  font-weight: 600;
}

.patient-current-package-benefits {
  border-top: 1px solid rgba(111, 22, 55, .09);
  padding-top: 1rem;
}

.patient-current-package-benefits > strong {
  display: block;
  color: var(--nutri-wine-dark);
  margin-bottom: .65rem;
}

.patient-current-package-benefits > div {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.patient-current-package-benefits span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  background: rgba(243, 245, 232, .84);
  border: 1px solid rgba(129, 140, 65, .2);
  color: #5f6932;
  padding: .45rem .65rem;
  font-size: .82rem;
  font-weight: 800;
}

.patient-current-package-benefits i {
  color: var(--nutri-olive-dark);
}

@media (max-width: 767.98px) {
  .patient-plan-usage-grid,
  .patient-plan-usage-mini {
    grid-template-columns: 1fr;
  }
}

/* Painel da nutricionista simplificado */
.dashboard-simple-stack {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.dashboard-simple-section {
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(111, 22, 55, .08);
  border-radius: 28px;
  padding: 1.4rem;
  box-shadow: 0 1rem 2rem rgba(80, 17, 37, .055);
}

.dashboard-simple-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.dashboard-simple-list {
  display: flex;
  flex-direction: column;
  gap: .85rem;
}

.dashboard-simple-item {
  border: 1px solid rgba(111, 22, 55, .08);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 .55rem 1.25rem rgba(80, 17, 37, .035);
}

.dashboard-simple-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 .85rem 1.65rem rgba(80, 17, 37, .06);
}

@media (max-width: 767.98px) {
  .dashboard-simple-section {
    padding: 1rem;
    border-radius: 22px;
  }

  .dashboard-simple-heading {
    flex-direction: column;
  }
}

/* Diário alimentar dinâmico */
.patient-daily-meals-block {
  border: 1px solid rgba(111, 22, 55, .09);
  background: rgba(255, 255, 255, .78);
  border-radius: 22px;
  padding: 1rem;
}

.daily-meal-entry-list {
  display: flex;
  flex-direction: column;
  gap: .85rem;
}

.daily-meal-entry-card {
  border: 1px solid rgba(111, 22, 55, .08);
  background: #fff;
  border-radius: 18px;
  padding: .9rem;
  box-shadow: 0 .45rem 1.2rem rgba(80, 17, 37, .035);
}

.daily-meal-entry-card .form-label {
  color: var(--nutri-primary, #6f1637);
  font-weight: 800;
}

.daily-meal-entry-card .btn[data-remove-dynamic-item] {
  min-width: 34px;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

@media (max-width: 767.98px) {
  .patient-daily-meals-block {
    padding: .85rem;
    border-radius: 18px;
  }

  .daily-meal-entry-card {
    padding: .8rem;
  }
}

/* Carousel de planos comerciais no painel do paciente */
.patient-plan-carousel-card {
  overflow: hidden;
}

.patient-plan-carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(250px, 320px);
  gap: 1rem;
  overflow-x: auto;
  padding: .25rem .15rem .9rem;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}

.patient-plan-carousel-item {
  scroll-snap-align: start;
  min-height: 230px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid rgba(120, 76, 89, .14);
  border-radius: 22px;
  background: linear-gradient(180deg, #fff, rgba(255, 249, 246, .92));
  box-shadow: 0 14px 34px rgba(85, 45, 62, .08);
}

.patient-plan-carousel-item h3 {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--nutri-wine);
  margin: .35rem 0 .45rem;
}

.patient-plan-carousel-item p {
  color: #73646a;
  font-size: .92rem;
  margin-bottom: .75rem;
}

.patient-plan-meta.compact {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.patient-plan-meta.compact span {
  font-size: .78rem;
  padding: .35rem .55rem;
  border-radius: 999px;
  background: rgba(103, 40, 72, .07);
  color: var(--nutri-wine);
}

.patient-plan-carousel-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  border-top: 1px solid rgba(120, 76, 89, .12);
  padding-top: .85rem;
}

.patient-plan-carousel-footer strong {
  font-size: 1.05rem;
  color: var(--nutri-olive);
  white-space: nowrap;
}

.consultation-plan-link-form {
  padding: 1rem;
  border-radius: 18px;
  background: rgba(250, 246, 242, .78);
  border: 1px solid rgba(120, 76, 89, .12);
}

@media (max-width: 575.98px) {
  .patient-plan-carousel {
    grid-auto-columns: minmax(230px, 86vw);
  }

  .patient-plan-carousel-footer {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Valor avulso no card de agendamento */
.slot-price-pill {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
  width: fit-content;
  margin-top: .45rem;
  padding: .38rem .62rem;
  border-radius: 999px;
  background: rgba(98, 20, 45, .07);
  border: 1px solid rgba(98, 20, 45, .12);
  color: var(--nutri-wine);
  font-size: .82rem;
  font-weight: 750;
}

.slot-price-pill i {
  font-size: .95rem;
  line-height: 1;
}

.slot-price-pill span {
  color: #6b5960;
  font-weight: 700;
}

.slot-price-pill strong {
  display: inline !important;
  margin-top: 0 !important;
  color: var(--nutri-wine);
}

.booking-modal-price {
  color: var(--nutri-wine);
  font-weight: 800;
  margin-top: .15rem;
}

.patient-appointment-billing {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  width: fit-content;
  margin-top: .45rem;
  padding: .35rem .6rem;
  border-radius: 999px;
  background: rgba(129, 140, 65, .11);
  color: #586121;
  font-size: .82rem;
  font-weight: 800;
}

@media (max-width: 575.98px) {
  .slot-price-pill,
  .patient-appointment-billing {
    border-radius: 14px;
    align-items: flex-start;
  }
}

/* Refinamento financeiro gerencial */
.finance-type-card,
.finance-alert-card {
  border-radius: 28px;
}

.finance-type-tile {
  min-height: 150px;
  display: grid;
  gap: .65rem;
  padding: 1rem;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(246,241,244,.86));
  border: 1px solid rgba(98, 20, 45, .09);
  box-shadow: 0 .5rem 1.1rem rgba(80, 17, 37, .045);
}

.finance-type-tile strong,
.finance-type-tile span {
  color: var(--nutri-wine);
}

.finance-type-tile > span {
  font-size: 1.25rem;
  font-weight: 800;
}

.finance-type-tile small,
.finance-type-mini small {
  color: #75656c;
}

.finance-type-mini {
  display: grid;
  gap: .2rem;
  padding-top: .55rem;
  border-top: 1px dashed rgba(98, 20, 45, .16);
}

.finance-alert-list {
  min-width: min(100%, 520px);
  display: grid;
  gap: .5rem;
}

.finance-alert-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .85rem;
  padding: .65rem .85rem;
  border-radius: 16px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(98, 20, 45, .08);
}

.finance-alert-item strong {
  color: var(--nutri-wine);
}

.finance-alert-item span {
  color: #75656c;
  font-size: .9rem;
}

@media (max-width: 575.98px) {
  .finance-alert-item {
    align-items: flex-start;
    flex-direction: column;
  }
}
