body.portal-body.portal-ui-v2 .portal-unit-highlight-card {
  width: 100%;
  border: 1px solid rgba(138, 91, 101, 0.24);
  border-radius: 18px;
  padding: 12px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.7) 100%);
  box-shadow: var(--portal-v2-shadow-soft);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  text-align: left;
  cursor: pointer;
  transition: transform var(--portal-v2-motion) ease, box-shadow var(--portal-v2-motion) ease;
}

body.portal-body.portal-ui-v2 .portal-unit-highlight-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--portal-v2-shadow-md);
}

body.portal-body.portal-ui-v2 .portal-unit-highlight-card:disabled {
  cursor: not-allowed;
  opacity: 0.75;
}

body.portal-body.portal-ui-v2 .portal-unit-pin {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: linear-gradient(160deg, rgba(236, 114, 98, 0.96) 0%, rgba(216, 66, 87, 0.94) 100%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 18px rgba(208, 74, 90, 0.34);
}

body.portal-body.portal-ui-v2 .portal-unit-pin svg {
  width: 18px;
  height: 18px;
}

body.portal-body.portal-ui-v2 .portal-unit-highlight-content {
  display: grid;
  gap: 2px;
}

body.portal-body.portal-ui-v2 .portal-unit-highlight-content strong {
  color: #3a252c;
  font-size: 15px;
}

body.portal-body.portal-ui-v2 .portal-unit-highlight-content span {
  color: #654c59;
  font-size: 12px;
  line-height: 1.35;
}

body.portal-body.portal-ui-v2 .portal-unit-highlight-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(23, 93, 68, 0.24);
  background: rgba(27, 110, 81, 0.08);
  color: #1d684d;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-card {
  border: 1px solid rgba(139, 92, 101, 0.28);
  border-left: 5px solid #2c8a63;
  border-radius: 20px;
  padding: 14px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.78) 100%);
  box-shadow: var(--portal-v2-shadow-soft);
  display: grid;
  gap: 12px;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-card.is-empty {
  border-left: 5px solid #9f7e8b;
  align-items: center;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-card.is-status-pendente {
  border-left-color: #d47b3e;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-card.is-status-cancelado {
  border-left-color: #b74b56;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-date {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-date strong {
  font-size: 27px;
  color: #3b262e;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-date span {
  color: #6f5460;
  font-size: 13px;
  font-weight: 700;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-main {
  display: grid;
  gap: 4px;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-main strong {
  color: #3d2830;
  font-size: 16px;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-main span {
  color: #674d59;
  font-size: 13px;
}

body.portal-body.portal-ui-v2 .portal-badge {
  width: fit-content;
  background: rgba(44, 138, 99, 0.12);
  color: #1f6e4f;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 6px 10px;
  margin-top: 4px;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-card.is-status-pendente .portal-badge {
  background: rgba(212, 123, 62, 0.14);
  color: #9b571f;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-card.is-status-cancelado .portal-badge {
  background: rgba(183, 75, 86, 0.14);
  color: #8b313b;
}

body.portal-body.portal-ui-v2 .portal-premium-booking-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

body.portal-body.portal-ui-v2 .portal-next-inline-list {
  display: grid;
  gap: 8px;
}

body.portal-body.portal-ui-v2 .portal-next-inline-item {
  border: 1px solid rgba(141, 95, 105, 0.22);
  border-radius: 13px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.7);
}

body.portal-body.portal-ui-v2 .portal-next-inline-item strong {
  display: block;
  color: #3e2930;
  font-size: 13px;
}

body.portal-body.portal-ui-v2 .portal-next-inline-item span {
  display: block;
  margin-top: 3px;
  color: #69515d;
  font-size: 12px;
}

body.portal-body.portal-ui-v2 .portal-home-shortcuts {
  gap: 12px;
}

body.portal-body.portal-ui-v2 .portal-shortcuts-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

body.portal-body.portal-ui-v2 .portal-quick-card {
  min-height: 138px;
  border: 1px solid rgba(138, 92, 101, 0.24);
  border-radius: 16px;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.9) 0%, rgba(248, 232, 238, 0.8) 100%);
  box-shadow: var(--portal-v2-shadow-soft);
  padding: 12px;
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
  gap: 6px;
  text-decoration: none;
  transition: transform var(--portal-v2-motion) ease, box-shadow var(--portal-v2-motion) ease;
}

body.portal-body.portal-ui-v2 .portal-quick-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--portal-v2-shadow-md);
}

body.portal-body.portal-ui-v2 .portal-quick-icon {
  width: 52px;
  height: 52px;
  border-radius: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 12px 18px rgba(90, 52, 66, 0.24);
}

body.portal-body.portal-ui-v2 .portal-quick-icon svg {
  width: 23px;
  height: 23px;
}

body.portal-body.portal-ui-v2 .portal-quick-card strong {
  color: #3e2930;
  font-size: 13px;
}

body.portal-body.portal-ui-v2 .portal-quick-card span {
  color: #684f5b;
  font-size: 11px;
  line-height: 1.4;
}

body.portal-body.portal-ui-v2 .portal-quick-card--booking .portal-quick-icon {
  background: linear-gradient(150deg, #caa24a 0%, #ad8231 100%);
}

body.portal-body.portal-ui-v2 .portal-quick-card--chat .portal-quick-icon {
  background: linear-gradient(145deg, #6aa6ec 0%, #467ecf 100%);
}

body.portal-body.portal-ui-v2 .portal-quick-card--fidelity .portal-quick-icon {
  background: linear-gradient(145deg, #d4b461 0%, #bc922f 100%);
}

body.portal-body.portal-ui-v2 .portal-quick-card--shop .portal-quick-icon {
  background: linear-gradient(145deg, #b8929f 0%, #986c7a 100%);
}

body.portal-body.portal-ui-v2 .portal-home-retention {
  gap: 12px;
}

body.portal-body.portal-ui-v2 .portal-retention-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.portal-body.portal-ui-v2 .portal-retention-card {
  --retention-icon-bg: linear-gradient(145deg, #f4d9df 0%, #e8bcc7 100%);
  --retention-icon-bg-hover: linear-gradient(145deg, #efccd6 0%, #dda8b6 100%);
  --retention-icon-color: #7b4d5f;
  border: 1px solid rgba(136, 91, 100, 0.2);
  border-radius: 16px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.76);
  min-height: 132px;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 16px;
  transition: all 0.25s ease;
}

body.portal-body.portal-ui-v2 .portal-retention-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 22px rgba(89, 50, 66, 0.18);
}

body.portal-body.portal-ui-v2 .portal-retention-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--retention-icon-bg);
  color: var(--retention-icon-color);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  transition: all 0.25s ease;
}

body.portal-body.portal-ui-v2 .portal-retention-icon svg {
  width: 22px;
  height: 22px;
  stroke-width: 1.9;
}

body.portal-body.portal-ui-v2 .portal-retention-card:hover .portal-retention-icon {
  transform: scale(1.04);
  background: var(--retention-icon-bg-hover);
  filter: saturate(1.06);
}

body.portal-body.portal-ui-v2 .portal-retention-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

body.portal-body.portal-ui-v2 .portal-retention-copy strong {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: #3f2931;
  line-height: 1.2;
}

body.portal-body.portal-ui-v2 .portal-retention-copy span {
  display: block;
  color: rgba(63, 41, 49, 0.72);
  font-size: 12px;
  line-height: 1.45;
  max-width: 32ch;
}

body.portal-body.portal-ui-v2 .portal-retention-card--pro {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.86) 0%, rgba(246, 234, 238, 0.9) 100%);
  --retention-icon-bg: linear-gradient(145deg, #f4d8df 0%, #e8bcc8 100%);
  --retention-icon-bg-hover: linear-gradient(145deg, #efc9d4 0%, #dfa8b7 100%);
  --retention-icon-color: #7d4d5f;
}

body.portal-body.portal-ui-v2 .portal-retention-card--service {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.86) 0%, rgba(245, 236, 221, 0.88) 100%);
  --retention-icon-bg: linear-gradient(145deg, #f4ebd7 0%, #e8d4ac 100%);
  --retention-icon-bg-hover: linear-gradient(145deg, #f0e1c3 0%, #ddc089 100%);
  --retention-icon-color: #876022;
}

body.portal-body.portal-ui-v2 .portal-retention-card--shop {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.86) 0%, rgba(228, 240, 252, 0.88) 100%);
  --retention-icon-bg: linear-gradient(145deg, #dceafb 0%, #b7d4f3 100%);
  --retention-icon-bg-hover: linear-gradient(145deg, #cfe2f8 0%, #9ec4ea 100%);
  --retention-icon-color: #2b5d93;
}

body.portal-body.portal-ui-v2 .portal-retention-card--history {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.86) 0%, rgba(240, 236, 246, 0.9) 100%);
  --retention-icon-bg: linear-gradient(145deg, #e7def6 0%, #d3c1ea 100%);
  --retention-icon-bg-hover: linear-gradient(145deg, #dfd2f2 0%, #c1a6e2 100%);
  --retention-icon-color: #624a8c;
}

body.portal-body.portal-ui-v2 .portal-carousel {
  grid-auto-columns: min(84%, 330px);
  gap: 10px;
}

body.portal-body.portal-ui-v2 .portal-carousel-card {
  border: 1px solid rgba(136, 90, 100, 0.2);
  border-radius: 16px;
  box-shadow: 0 12px 24px rgba(90, 53, 67, 0.16);
}

body.portal-body.portal-ui-v2 .portal-carousel-card img {
  height: 142px;
}

body.portal-body.portal-ui-v2 .portal-carousel-content {
  padding: 12px;
}

body.portal-body.portal-ui-v2 .portal-utility-grid {
  display: grid;
  gap: 10px;
}

body.portal-body.portal-ui-v2 .portal-utility-card {
  border: 1px solid rgba(136, 91, 100, 0.22);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: var(--portal-v2-shadow-soft);
  padding: 12px;
  text-decoration: none;
  display: grid;
  gap: 6px;
  text-align: left;
  transition: transform var(--portal-v2-motion) ease, box-shadow var(--portal-v2-motion) ease;
}

body.portal-body.portal-ui-v2 button.portal-utility-card {
  width: 100%;
  font-family: inherit;
  cursor: pointer;
}

body.portal-body.portal-ui-v2 .portal-utility-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--portal-v2-shadow-md);
}

body.portal-body.portal-ui-v2 .portal-utility-card strong {
  color: #3f2931;
  font-size: 14px;
}

body.portal-body.portal-ui-v2 .portal-utility-card span {
  color: #644d59;
  font-size: 12px;
  line-height: 1.45;
}

body.portal-body.portal-ui-v2 .portal-utility-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 10px;
  border: 1px solid rgba(133, 88, 98, 0.24);
  background: rgba(255, 255, 255, 0.8);
  color: #c2963e;
}

body.portal-body.portal-ui-v2 .portal-utility-icon svg {
  width: 17px;
  height: 17px;
}

body.portal-body.portal-ui-v2 .portal-utility-card--maps .portal-utility-icon {
  color: #d04b54;
}

body.portal-body.portal-ui-v2 .portal-home-points {
  overflow: hidden;
}

body.portal-body.portal-ui-v2 .portal-card--points {
  border-radius: 20px;
  padding: 16px;
}

body.portal-body.portal-ui-v2 .portal-card-kicker {
  color: #6a5260;
  font-size: 11px;
  font-weight: 700;
}

body.portal-body.portal-ui-v2 .portal-card-sub {
  font-size: 13px;
  color: #614b58;
}

body.portal-body.portal-ui-v2 .portal-card-note {
  color: #5e4954;
}

body.portal-body.portal-ui-v2 .portal-progress {
  background: rgba(179, 143, 152, 0.3);
  height: 8px;
}

body.portal-body.portal-ui-v2 .portal-progress-bar {
  background: linear-gradient(90deg, #176a50 0%, #c7a34b 100%);
}

body.portal-body.portal-ui-v2 .portal-points-value {
  min-width: 94px;
  text-align: right;
}

body.portal-body.portal-ui-v2 .portal-points-value strong {
  font-size: 32px;
  color: #155c43;
}

body.portal-body.portal-ui-v2 .portal-points-value span {
  color: #6a5260;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

body.portal-body.portal-ui-v2 .portal-modal-card--map {
  width: min(680px, 96vw);
}

body.portal-body.portal-ui-v2 .portal-map-frame-wrap {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(136, 89, 99, 0.24);
  margin-bottom: 10px;
}

body.portal-body.portal-ui-v2 .portal-map-frame-wrap iframe {
  border: 0;
  width: 100%;
  min-height: 260px;
  display: block;
}

@media (min-width: 768px) {
  body.portal-body.portal-ui-v2 .portal-home-shortcuts .portal-shortcuts-grid,
  body.portal-body.portal-ui-v2 .portal-home-utility .portal-utility-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.portal-body.portal-ui-v2 .portal-quick-card {
    min-height: 142px;
  }
}

@media (max-width: 520px) {
  body.portal-body.portal-ui-v2 .portal-retention-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
