/* ==========================================================================
   LOVE - Event OS & Marketplace
   Design System & Responsive Styles (Mobile-First, Tablet & Desktop Pro)
   ========================================================================== */

:root {
  --primary-color: #537bae;
  --primary-blue: #537bae;
  --primary-blue-hover: #416799;
  --primary-gradient: linear-gradient(135deg, #537bae 0%, #416799 100%);
  
  --secondary-color: #5c7aaa;
  --secondary-peach: #5c7aaa;
  --secondary-hover: #4e6891;
  
  --coral-accent: #E11D48;
  --bg-dashboard: #FFFFFF;
  --text-dark: #18181B;
  --text-muted: #71717A;
  --border-light: #EAEAEA;
  --border-card: #EAEAEA;
  --shadow-soft: 0 1px 2px rgba(16,24,40,0.03);

  --shadow-card: none;
  --shadow-card-hover: none;
  --shadow-drawer: none;

  --navbar-height-desktop: 76px;
  --navbar-height-mobile: 60px;
  --rail-width-desktop: 80px;
  --drawer-width-desktop: 240px;
  --bottom-bar-height-mobile: 60px;

  /* Border Radius Tokens */
  --radius-card: 10px;
  --radius-control: 8px;
}

.text-logo-blue,
.color-logo-blue {
  color: #537bae !important;
}

/* Reset & Base */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
}

body, button, input, select, textarea, p, span, a, label {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

body {
  color: #18181B;
  background-color: #FFFFFF;
  overflow-x: hidden;
  margin: 0;
  padding: 0;
}

/* ==========================================================================
   PADRONIZAÇÃO VISUAL: TÍTULOS EM PLUS JAKARTA SANS, PAINEL/TABELAS EM INTER
   ========================================================================== */

/* Headlines & Títulos da Plataforma: Fonte Plus Jakarta Sans Padronizada */
h1, h2, h3, h4, h5, h6,
.dashboard-tab-content h1,
.dashboard-tab-content h2,
.dashboard-tab-content h3,
.dashboard-tab-content h4,
#dash-hub-title,
#editor-active-sub-title,
#info-active-sub-title,
#gifts-header-title,
#rsvp-header-title,
#wallet-header-title,
#b2b-toolbar-title,
#b2b-insurance-header-title {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

/* Títulos de página no padrão B2B (negrito de verdade, 20px) — sobrepõe o h1/h2 serifado abaixo */
#gifts-header-title,
#rsvp-header-title,
#rsvp-settings-header-title,
#rsvp-checklist-header-title,
#legal-doc-title-dash,
#notifications-header-title,
#faq-header-title,
#account-settings-header-title,
#wallet-header-title,
#editor-active-sub-title,
#info-active-sub-title,
#b2b-toolbar-title,
#b2b-insurance-header-title,
#tab-rsvp-tables h2 {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 700 !important;
  font-size: 20px !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  color: #18181B !important;
}

/* Saudação "Olá, Beatriz!" da Home — negrito de verdade, mantém o próprio tamanho (text-2xl/3xl) */
#dash-hub-title {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  color: #18181B !important;
}

/* Padrão B2B (página Contatos): caixa + campo de busca + tabela — reaproveitado em Meus Convidados */
.dash-card {
  background: #fff;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-soft);
  padding: 1.5rem;
  min-width: 0;
}

.field-input {
  width: 100%;
  /* Mesma borda neutra de botões e cards (identidade sem cara de Tailwind). */
  border: 1px solid #E4E4E7;
  border-radius: var(--radius-control);
  padding: 0.625rem 0.875rem;
  font-size: 0.875rem;
  background: #fff;
  color: #18181B;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.field-input:focus {
  outline: none;
  border-color: #181D24;
  box-shadow: none;
}

/* Select customizado (sem o estilo nativo do navegador): mesma caixa do
   field-input, com seta própria da plataforma no lugar da seta do sistema. */
select.field-input {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
  padding-right: 2.25rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 12px;
}
#guest-title-input, #guest-title-host-input {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  cursor: pointer !important;
  padding-right: 2.25rem !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.75rem center !important;
  background-size: 12px !important;
}

.guests-table { width: 100%; }
.guests-table th {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #A1A1AA;
  text-align: left;
  padding: 0 1rem 0.75rem;
  border-bottom: 1px solid var(--border-card);
}
.guests-table td {
  padding: 0.875rem 1rem;
  font-size: 0.875rem;
  border-top: 1px solid var(--border-light);
}
.guests-table tr:hover td { background: #FAFAFA; }
.guests-table tbody tr:first-child td { border-top: none; }

.guests-footer-count { font-size: 0.8125rem; color: #71717A; margin: 0; flex-shrink: 0; white-space: nowrap; }

/* Carrossel promocional do dashboard (card "High quality, not high cost") */
.dashboard-promo-carousel { position: relative; }
.dashboard-promo-track { position: relative; width: 100%; }
.dashboard-promo-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.6s ease;
  cursor: pointer;
}
.dashboard-promo-slide:first-child { position: relative; }
.dashboard-promo-slide.active { opacity: 1; z-index: 1; }
.dashboard-promo-slide img { width: 100%; height: auto; display: block; object-fit: cover; }
/* Banner do Admin sem link: não é clicável. */
.dashboard-promo-slide.sem-link { cursor: default; }
.dashboard-promo-dots {
  position: absolute;
  bottom: 0.75rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.375rem;
  z-index: 2;
}
.dashboard-promo-dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.5);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s ease, width 0.2s ease;
}
.dashboard-promo-dot.active { background: #fff; width: 16px; }
.guests-table th .guests-footer-count {
  text-transform: none;
  letter-spacing: normal;
  font-weight: 500;
  font-size: 0.75rem;
  color: #A1A1AA;
  margin-left: 0.5rem;
}

.guests-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border-card);
}
.guests-pagination-size { display: flex; align-items: center; gap: 0.5rem; font-size: 0.8125rem; color: #71717A; }
.guests-pagination-size select { width: auto; padding: 0.35rem 1.75rem 0.35rem 0.65rem; font-size: 0.8125rem !important; }
.guests-pagination-nav { display: flex; align-items: center; gap: 0.75rem; }
.guests-pagination-nav span { font-size: 0.8125rem; color: #3F3F46; font-weight: 600; white-space: nowrap; }
.guests-pagination-btn {
  width: 30px; height: 30px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-card);
  border-radius: 8px;
  background: #fff;
  color: #3F3F46;
  cursor: pointer;
}
.guests-pagination-btn svg { width: 16px; height: 16px; }
.guests-pagination-btn:hover:not(:disabled) { background: #F4F4F5; border-color: #333333; }
.guests-pagination-btn:disabled { opacity: 0.4; cursor: default; }

/* Planta do Salão (Mapear mesas) — sidebar de elementos (padrão "Editar meu site") + canvas livre */
/* Mesma moldura do .builder-wrap do construtor "Editar meu site": plana,
   cantos retos, só uma borda de cima — não é um card com sombra/raio. */
.floorplan-wrap {
  border: none;
  border-top: 1px solid var(--border-card);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  overflow: hidden;
  /* Sangra para fora do padding da página (px-6 sm:px-8 py-6 em #tab-rsvp-tables)
     para conectar direto com o header e a sidebar de menus, igual ao .builder-wrap. */
  margin: -1.5rem -1.5rem 0;
  width: calc(100% + 3rem);
}
@media (min-width: 640px) {
  .floorplan-wrap {
    margin: -1.5rem -2rem 0;
    width: calc(100% + 4rem);
  }
}
.floorplan-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-card);
  background: #FAFAFA;
}
.floorplan-page-name { font-size: 1.25rem; font-weight: 700; color: #18181B; font-family: inherit; padding: 0.4rem 0.6rem; border: 1px solid transparent; display: inline-block; }

.floorplan-toolbar-right { display: flex; align-items: center; gap: 0.6rem; }

.floorplan-filter { position: relative; display: inline-block; }
#floorplan-filter-dropdown { display: none; left: auto; right: 0; min-width: 170px; width: max-content; }
#floorplan-filter-dropdown.show { display: flex; }

.floorplan-body { display: flex; align-items: stretch; }

.floorplan-sidebar {
  width: 312px;
  flex-shrink: 0;
  border: none;
  border-right: 1px solid var(--border-card);
  border-radius: 0;
  background: #FFFFFF;
  min-height: 480px;
  max-height: 640px;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
body[data-theme="dark"] .floorplan-sidebar { background: #181D24; }
.floorplan-el-item-icon { font-size: 1.05rem; line-height: 1; flex-shrink: 0; }

/* Painel: lista de convidados arrastáveis */
.floorplan-guest-cards { display: flex; flex-direction: column; }
.floorplan-guest-card {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.65rem;
  border: none;
  border-top: 1px solid var(--border-light);
  border-radius: 0;
  background: transparent;
  font-size: 0.75rem;
  font-weight: 600;
  color: #3F3F46;
  cursor: grab;
  user-select: none;
}
.floorplan-guest-cards > .floorplan-guest-card:first-child { border-top: none; }
.floorplan-guest-card:hover { background: #FAFAFA; }
.floorplan-guest-card:active { cursor: grabbing; }
.floorplan-guest-card-check-badge,
.floorplan-guest-card-x-badge,
.floorplan-guest-card-pending-badge {
  width: 20px; height: 20px; border-radius: 6px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: #FFFFFF;
}
.floorplan-guest-card-check-badge { color: #333333; }
.floorplan-guest-card-x-badge { color: #c7305b; }
.floorplan-guest-card-pending-badge { color: #71717A; }
.floorplan-guest-card-check-badge svg,
.floorplan-guest-card-x-badge svg,
.floorplan-guest-card-pending-badge svg { width: 12px; height: 12px; }
.floorplan-guest-card-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.floorplan-guest-card-table { flex-shrink: 0; font-size: 0.625rem; font-weight: 700; color: #A1A1AA; }

/* Convidado já sentado em alguma mesa — mesmo tom da aba "Lista de convidados" */
.floorplan-guest-card.is-seated { background: #EBF4FF; cursor: default; }

/* Convidado que recusou o convite — mesma cor dos assentos vazios, fixa
   independente de estar ou não alocado numa mesa (só muda se voltar a
   pendente ou confirmado). */
.floorplan-guest-card.is-declined,
.floorplan-guest-card.is-declined.is-seated {
  background: #FEF2F2;
  border-color: #FECACA;
  color: #F87171;
}

/* Modal: editar mesa (nome, lugares, convidados acomodados) */
.floorplan-field { margin-bottom: 1rem; }
.floorplan-field-label { display: block; font-size: 0.6875rem; font-weight: 700; color: #71717A; margin-bottom: 0.35rem; }
.floorplan-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--border-card);
  border-radius: 10px;
  background: #fff;
  padding: 0.4rem 0.75rem;
}
.floorplan-stepper-value { font-size: 0.875rem; font-weight: 700; color: #18181B; }
.floorplan-stepper-btn {
  width: 26px; height: 26px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-card);
  border-radius: 7px;
  background: #FAFAFA;
  color: #3F3F46;
  font-size: 0.8125rem;
  cursor: pointer;
}
.floorplan-stepper-btn:hover { background: #F4F4F5; border-color: #333333; color: #18181B; }
.floorplan-remove-btn,
.floorplan-clear-btn {
  flex: 1;
  padding: 0.5rem;
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
}
/* Excluir: botão pequeno só com o ícone de lixeira */
.floorplan-remove-btn { flex: 0 0 auto; width: 36px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: #FAFAFA; color: #71717A; }
.floorplan-remove-btn svg { width: 16px; height: 16px; }
.floorplan-remove-btn:hover { background: #FEF2F2; color: #DC2626; }
.floorplan-clear-btn { height: 34px; }
/* Voltar: fecha o pop-up da mesa */
.floorplan-back-btn { flex: 1; height: 34px; padding: 0.5rem; border: 1px solid #E4E4E7; border-radius: 10px; background: #FFFFFF; color: #18181B; font-size: 0.75rem; font-weight: 700; cursor: pointer; }
.floorplan-back-btn:hover { background: #F4F4F5; }
/* Limpar: cinza clarinho, igual ao botão da lixeira */
.floorplan-clear-btn { background: #FAFAFA; color: #71717A; }
.floorplan-clear-btn:hover { background: #F4F4F5; color: #3F3F46; }

.floorplan-canvas {
  position: relative;
  flex: 1;
  min-width: 0;
  min-height: 480px;
  border: none;
  border-radius: 0;
  background: #FAFCFF;
  overflow: hidden;
}
.floorplan-canvas.is-dragover { background: #F4F4F5; }
.floorplan-empty-hint {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-align: center;
  padding: 1.5rem;
  font-size: 0.8125rem;
  color: #A1A1AA;
  pointer-events: none;
}
.floorplan-empty-hint svg { width: 32px; height: 32px; color: #D4D4D8; }
.floorplan-empty-hint span { max-width: 260px; line-height: 1.5; }

.floorplan-el {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  width: 84px;
  min-height: 64px;
  background: #fff;
  border: 1.5px solid #EAEAEA;
  border-radius: 10px;
  color: #18181B;
  cursor: grab;
  user-select: none;
  box-shadow: 0 1px 3px rgba(16,24,40,0.08);
  padding: 0.4rem;
  text-align: center;
}
.floorplan-el:active { cursor: grabbing; }
.floorplan-el-emoji { font-size: 1.15rem; line-height: 1; }
.floorplan-el-label { font-size: 0.625rem; font-weight: 700; color: #18181B; line-height: 1.15; }

/* Mesa: caixa maior (para caber o anel de assentos) com um círculo central */
.floorplan-el.is-mesa {
  width: 220px;
  height: 220px;
  min-height: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}
.floorplan-mesa-core {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid #333333;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.05rem;
  box-shadow: 0 1px 3px rgba(16,24,40,0.08);
  padding: 0.2rem;
}
.floorplan-table-number { font-size: 0.6875rem; font-weight: 700; color: #18181B; line-height: 1.1; }
.floorplan-table-core-name { font-size: 0.5625rem; color: #71717A; line-height: 1.1; max-width: 72px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.floorplan-seat-dot {
  position: absolute;
  min-width: 22px;
  max-width: 82px;
  min-height: 22px;
  padding: 0.2rem 0.4rem;
  transform: translate(-50%, -50%);
  /* Quadrado com cantos arredondados (antes: círculo). */
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.05rem;
  background: #F4F4F5;
  border: 1.5px solid #D4D4D8;
  color: #71717A;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.15;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.floorplan-seat-dot-line {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.floorplan-seat-dot.is-assigned { border-color: #E4E4E7; background: #FFFFFF; color: #3F3F46; }
.floorplan-seat-dot.is-confirmed { border-color: #EAEAEA; background: #EBF4FF; color: #3F3F46; }
.floorplan-seat-dot.is-declined { background: #FEF2F2; border-color: #FECACA; color: #F87171; }
.floorplan-seat-dot[draggable="true"] { cursor: grab; }
.floorplan-seat-dot[draggable="true"]:active { cursor: grabbing; }
.floorplan-seat-dot.is-dragover { border-color: #537bae; box-shadow: 0 0 0 2px rgba(83, 123, 174, 0.25); }

.floorplan-field-hint { font-size: 0.6875rem; color: #A1A1AA; margin: -0.15rem 0 0.5rem; }
.floorplan-seat-assignments { display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 0.35rem; }
.floorplan-seat-assignment-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--border-card);
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #3F3F46;
}
.floorplan-seat-assignment-name { display: flex; align-items: center; gap: 0.4rem; min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.floorplan-seat-assignment-right { display: flex; align-items: center; gap: 0.6rem; flex-shrink: 0; }
.floorplan-seat-confirmed-label { font-size: 0.6875rem; font-weight: 600; color: #71717A; white-space: nowrap; }
.floorplan-seat-confirmed-label.is-declined { color: #F87171; }
.floorplan-seat-assignment-row.is-declined { background: #FEF2F2; border-color: #FECACA; }
.floorplan-seat-assignment-remove {
  border: none;
  background: none;
  color: #A1A1AA;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
}
.floorplan-seat-assignment-remove:hover { color: #B91C1C; }

@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .floorplan-body { flex-direction: column; }
  .floorplan-sidebar { width: 100%; min-height: 0; border-right: none; border-bottom: 1px solid var(--border-card); }
}

/* Parágrafos Normais: Contraste Suave text-zinc-600 e Peso font-normal */
p:not(footer p) {
  color: #52525B !important; /* text-zinc-600 */
  font-weight: 400 !important; /* font-normal */
  line-height: 1.6;
}

/* ==========================================================================
   RODAPÉ (FOOTER) - LIGHT / DARK MODE
   Na versão light: mesma cor do sidebar (#f3f3f3), logo.png, textos e fundos de ícones em #252525
   ========================================================================== */
body:not([data-theme="dark"]) footer,
body:not([data-theme="dark"]) .site-platform-footer,
body:not([data-theme="dark"]) .dashboard-main-area > footer {
  background-color: #F3F3F3 !important;
  background: #F3F3F3 !important;
  border-top: 1px solid #EAEAEA !important;
  color: #252525 !important;
}

body:not([data-theme="dark"]) footer p,
body:not([data-theme="dark"]) footer span,
body:not([data-theme="dark"]) footer a,
body:not([data-theme="dark"]) footer button,
body:not([data-theme="dark"]) footer li,
body:not([data-theme="dark"]) footer h3,
body:not([data-theme="dark"]) footer h4,
body:not([data-theme="dark"]) footer div,
body:not([data-theme="dark"]) .site-platform-footer p,
body:not([data-theme="dark"]) .site-platform-footer span,
body:not([data-theme="dark"]) .site-platform-footer a,
body:not([data-theme="dark"]) .site-platform-footer button,
body:not([data-theme="dark"]) .site-platform-footer li,
body:not([data-theme="dark"]) .site-platform-footer h3,
body:not([data-theme="dark"]) .site-platform-footer h4,
body:not([data-theme="dark"]) .site-platform-footer div,
body:not([data-theme="dark"]) .footer-text-desc {
  color: #252525 !important;
}

body:not([data-theme="dark"]) footer a:hover,
body:not([data-theme="dark"]) footer button:hover,
body:not([data-theme="dark"]) .site-platform-footer a:hover,
body:not([data-theme="dark"]) .site-platform-footer button:hover {
  opacity: 0.85;
}

body:not([data-theme="dark"]) footer .border-t,
body:not([data-theme="dark"]) .site-platform-footer .border-t,
body:not([data-theme="dark"]) .footer-bottom-bar {
  border-color: #EAEAEA !important;
}

/* Logos no Rodapé */
body:not([data-theme="dark"]) .footer-logo-light {
  display: block !important;
}
body:not([data-theme="dark"]) .footer-logo-dark {
  display: none !important;
}

body[data-theme="dark"] .footer-logo-light {
  display: none !important;
}
body[data-theme="dark"] .footer-logo-dark {
  display: block !important;
}

/* Ícones de Redes Sociais no Rodapé (Fundos em #252525 na versão light) */
body:not([data-theme="dark"]) .footer-social-icon-btn {
  background-color: #252525 !important;
  color: #FFFFFF !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
body:not([data-theme="dark"]) .footer-social-icon-btn:hover {
  background-color: #333333 !important;
  color: #FFFFFF !important;
  transform: translateY(-2px);
}
body:not([data-theme="dark"]) .footer-social-icon-btn svg {
  color: #FFFFFF !important;
  fill: currentColor !important;
}

body:not([data-theme="dark"]) .footer-security-badge svg {
  color: #252525 !important;
  stroke: #252525 !important;
}

/* Modo Escuro para Rodapé */
body[data-theme="dark"] footer,
body[data-theme="dark"] .site-platform-footer,
body[data-theme="dark"] .dashboard-main-area > footer {
  background-color: #333333 !important;
  background: #333333 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.15) !important;
  color: #FFFFFF !important;
}

body[data-theme="dark"] footer p,
body[data-theme="dark"] footer span,
body[data-theme="dark"] footer a,
body[data-theme="dark"] footer button,
body[data-theme="dark"] footer li,
body[data-theme="dark"] footer h3,
body[data-theme="dark"] footer h4,
body[data-theme="dark"] footer div,
body[data-theme="dark"] .site-platform-footer p,
body[data-theme="dark"] .site-platform-footer span,
body[data-theme="dark"] .site-platform-footer a,
body[data-theme="dark"] .site-platform-footer button,
body[data-theme="dark"] .site-platform-footer li,
body[data-theme="dark"] .site-platform-footer h3,
body[data-theme="dark"] .site-platform-footer h4,
body[data-theme="dark"] .site-platform-footer div,
body[data-theme="dark"] .footer-text-desc {
  color: #FFFFFF !important;
}

body[data-theme="dark"] footer .border-t,
body[data-theme="dark"] .site-platform-footer .border-t,
body[data-theme="dark"] .footer-bottom-bar {
  border-color: rgba(255, 255, 255, 0.18) !important;
}

body[data-theme="dark"] .footer-social-icon-btn {
  background-color: rgba(255, 255, 255, 0.2) !important;
  color: #FFFFFF !important;
}
body[data-theme="dark"] .footer-social-icon-btn:hover {
  background-color: #FFFFFF !important;
  color: #333333 !important;
}
body[data-theme="dark"] .footer-social-icon-btn:hover svg {
  color: #333333 !important;
  fill: currentColor !important;
}
body[data-theme="dark"] .footer-security-badge svg {
  color: #FFFFFF !important;
  stroke: #FFFFFF !important;
}

/* Item de Métrica / KPI Hover Suave com Borda */
.metric-kpi-item {
  border: 1px solid transparent;
  border-radius: 8px;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 0.75rem 0.5rem;
}

.metric-kpi-item:hover {
  background-color: rgba(244, 244, 245, 0.75); /* Fundo translúcido */
  border-color: #EAEAEA; /* border-zinc-200 */
}

/* ==========================================================================
   PADRONIZAÇÃO GLOBAL DE BORDER RADIUS
   --radius-card: 10px — cards, tabelas, modal (presentes, convidados confirmados, guia de primeiros passos, etc.)
   --radius-control: 8px — botões, campos de formulário, item de menu do sidebar, ícones de métrica
   ========================================================================== */

/* 1. Cards, Tabelas, Modais e Painéis: 10px */
.card,
.dashboard-card,
.metric-kpi-item,
.metric-card,
.ticket-card,
.modal-container-custom,
.modal-card-custom,
.glass-dropdown,
.gift-fee-card,
.theme-card,
.border-gradient-wrapper,
.border-gradient-wrapper-glow,
.appearance-card-block,
#quick-start-guide-widget,
#quick-start-all-done-banner,
.table-container,
table,
.gifts-card,
.guest-card,
.vendor-card,
.rsvp-card,
.gift-drawer,
.guest-details-drawer,
.contracted-vendor-drawer,
.rounded-3xl:not(button):not(input):not(select):not(textarea):not(.rail-icon-btn):not(#btn-user-account-menu):not(.metric-icon-box):not(.rounded-full):not([class*="rounded-full"]),
.rounded-2xl:not(button):not(input):not(select):not(textarea):not(.rail-icon-btn):not(#btn-user-account-menu):not(.metric-icon-box):not(.rounded-full):not([class*="rounded-full"]),
.rounded-xl:not(button):not(input):not(select):not(textarea):not(.rail-icon-btn):not(#btn-user-account-menu):not(.metric-icon-box):not([onclick*="click"]):not(.rounded-full):not([class*="rounded-full"]) {
  border-radius: var(--radius-card, 10px) !important;
}

.rounded-t-3xl,
.rounded-t-2xl,
.rounded-t-xl,
.rounded-t-lg,
.rounded-t-md,
.rounded-t {
  border-top-left-radius: var(--radius-card, 10px) !important;
  border-top-right-radius: var(--radius-card, 10px) !important;
}

.rounded-b-3xl,
.rounded-b-2xl,
.rounded-b-xl,
.rounded-b-lg,
.rounded-b-md,
.rounded-b {
  border-bottom-left-radius: var(--radius-card, 10px) !important;
  border-bottom-right-radius: var(--radius-card, 10px) !important;
}

.rounded-l-3xl,
.rounded-l-2xl,
.rounded-l-xl,
.rounded-l-lg,
.rounded-l-md,
.rounded-l {
  border-top-left-radius: var(--radius-card, 10px) !important;
  border-bottom-left-radius: var(--radius-card, 10px) !important;
}

.rounded-r-3xl,
.rounded-r-2xl,
.rounded-r-xl,
.rounded-r-lg,
.rounded-r-md,
.rounded-r {
  border-top-right-radius: var(--radius-card, 10px) !important;
  border-bottom-right-radius: var(--radius-card, 10px) !important;
}

/* Borda (stroke) das caixas em cinza bem claro */
.editor-sub-panel > div[class*="border"],
.editor-sub-panel div[class*="border-[#EAEAEA]"] {
  border-color: #EAEAEA !important;
}

/* Espaçamento generoso, uniforme e respirável (32px / 2rem) entre os blocos de Aparência */
.appearance-card-block {
  margin-bottom: 2rem !important;
}

#editor-form-home > .appearance-card-block:last-child {
  margin-bottom: 0 !important;
}

/* Caixas de Aparência com o mesmo Border Radius da Home (--radius-card: 10px) */
.appearance-card-block > div,
.appearance-card-block,
#editor-card-bg-color,
#editor-card-btn-style,
#editor-form-home .border.rounded,
#editor-form-home .border.rounded-2xl,
.editor-sub-panel > div[class*="border"] {
  border-radius: var(--radius-card, 10px) !important;
}

.appearance-card-block > div > div:first-child,
#editor-card-bg-color > div:first-child,
#editor-card-btn-style > div:first-child,
.editor-sub-panel > div[class*="border"] > div:first-child {
  border-top-left-radius: calc(var(--radius-card, 10px) - 1px) !important;
  border-top-right-radius: calc(var(--radius-card, 10px) - 1px) !important;
}

/* 2. Controles: Botões, Campos de Formulário, Menu do Sidebar e Ícones de Métrica: 12px */
button:not(#btn-close-sub-drawer-mobile):not(.rounded-full):not([class*="rounded-full"]),
.btn-brand,
.btn-white,
.btn-cta-coral,
.btn-trigger-register,
.rail-icon-btn,
#btn-user-account-menu,
input:not([type="checkbox"]):not([type="radio"]):not(.rounded-full):not([class*="rounded-full"]),
select,
textarea,
.metric-icon-box,
[class*="p-3.5 rounded-xl"],
[class*="p-3 rounded-xl"],
[class*="rounded-xl"][onclick*="click"] {
  border-radius: var(--radius-control, 12px) !important;
}

.btn-text-format {
  border-radius: var(--radius-control, 12px) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  padding: 0 !important;
  min-width: 0 !important;
}

.btn-title-align,
.btn-desc-align {
  border-radius: var(--radius-control, 12px) !important;
  padding: 0 !important;
  min-width: 0 !important;
}

/* Ticket / Coupon Cards (Landing Page Section 2) */
.ticket-card {
  position: relative;
  background-color: #FFFFFF;
  border-radius: var(--radius-card, 10px) !important;
}

.ticket-notch {
  position: absolute;
  width: 24px;
  height: 24px;
  border-radius: 9999px;
  background-color: #FAF6F3;
  z-index: 10;
}

/* Typography: Títulos e Headlines da Plataforma */
.font-serif-title,
.font-title,
.font-heading {
  font-family: 'Playfair Display', Georgia, serif;
}

/* Famílias Tipográficas Selecionáveis no Editor */
.font-playfair,
.font-serif-title,
#live-preview-title.font-playfair,
#live-preview-title.font-serif-title,
#live-preview-closing-names.font-playfair,
#live-preview-closing-names.font-serif-title {
  font-family: 'Playfair Display', Georgia, serif !important;
}

.font-garamond,
.font-serif,
#live-preview-title.font-garamond,
#live-preview-title.font-serif,
#live-preview-closing-names.font-garamond,
#live-preview-closing-names.font-serif {
  font-family: 'EB Garamond', Garamond, Georgia, serif !important;
}

.font-yrsa,
#live-preview-title.font-yrsa,
#live-preview-closing-names.font-yrsa {
  font-family: 'Yrsa', Georgia, serif !important;
}

.font-cormorant,
#live-preview-title.font-cormorant,
#live-preview-closing-names.font-cormorant {
  font-family: 'Cormorant Garamond', Garamond, Georgia, serif !important;
}

.font-avermont,
#live-preview-title.font-avermont,
#live-preview-closing-names.font-avermont {
  font-family: 'Avermont House', 'Avermont', 'Playfair Display', Georgia, serif !important;
}

.font-bride,
#live-preview-title.font-bride,
#live-preview-closing-names.font-bride {
  font-family: 'Bride', 'Ephesis', cursive !important;
}

.font-bludhaven,
#live-preview-title.font-bludhaven,
#live-preview-closing-names.font-bludhaven {
  font-family: 'Bludhaven', 'Cinzel', serif !important;
}

.font-fleur,
#live-preview-title.font-fleur,
#live-preview-closing-names.font-fleur {
  font-family: 'Fleur De Leah', cursive !important;
}

.font-ephesis,
#live-preview-title.font-ephesis,
#live-preview-closing-names.font-ephesis {
  font-family: 'Ephesis', cursive !important;
}

.font-hurricane,
#live-preview-title.font-hurricane,
#live-preview-closing-names.font-hurricane {
  font-family: 'Hurricane', cursive !important;
}

.font-cookie,
#live-preview-title.font-cookie,
#live-preview-closing-names.font-cookie {
  font-family: 'Cookie', cursive !important;
}

.font-italiana,
#live-preview-title.font-italiana,
#live-preview-closing-names.font-italiana {
  font-family: 'Italiana', Garamond, Georgia, serif !important;
}

.font-bodoni,
#live-preview-title.font-bodoni,
#live-preview-closing-names.font-bodoni {
  font-family: 'Bodoni Moda', Georgia, serif !important;
}

.font-cinzel,
#live-preview-title.font-cinzel,
#live-preview-closing-names.font-cinzel {
  font-family: 'Cinzel', Georgia, serif !important;
}

.font-lora,
#live-preview-title.font-lora,
#live-preview-closing-names.font-lora {
  font-family: 'Lora', Georgia, serif !important;
}

.font-montserrat,
#live-preview-title.font-montserrat,
#live-preview-closing-names.font-montserrat {
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

.font-outfit,
.font-modern,
.font-sans-title,
#live-preview-title.font-outfit,
#live-preview-title.font-modern,
#live-preview-closing-names.font-outfit,
#live-preview-closing-names.font-modern {
  font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

.font-inter,
.font-clean,
#live-preview-title.font-inter,
#live-preview-closing-names.font-inter {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

h1, h2,
.font-title,
.font-heading {
  font-family: 'Plus Jakarta Sans', 'Georgia', serif !important;
  font-weight: 400 !important;
  letter-spacing: -0.02em;
  color: #18181B;
}

h3:not(#live-preview-title):not(#live-preview-closing-names), h4, h5, h6 {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  letter-spacing: -0.01em;
  color: #18181B;
}

.editor-card-header-title {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700 !important;
  color: #0F172A !important;
}

.font-sans,
label,
table,
.ui-text {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  letter-spacing: -0.01em;
}

/* Bloqueio de Navegação no Primeiro Acesso (Antes de criar a 1ª comemoração) */
body.first-access-locked .sidebar-icon-rail .rail-icon-btn,
body.first-access-locked .mobile-center-edit,
body.first-access-locked #bottom-nav-mobile button {
  opacity: 0.35 !important;
  pointer-events: none !important;
  cursor: default !important;
}

body.first-access-locked .sidebar-icon-rail .rail-icon-btn:hover {
  background-color: transparent !important;
  color: inherit !important;
}

/* Custom Scrollbars */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: #F1F5F9;
}
::-webkit-scrollbar-thumb {
  background: #CBD5E1;
  border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
  background: #94A3B8;
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* ==========================================================================
   DASHBOARD ARCHITECTURE & DOUBLE SIDEBAR
   ========================================================================== */

/* 1. Top Fixed Navbar (Header na mesma cor do Sidebar #FAFAFA no Light Mode) */
.dashboard-top-navbar {
  height: var(--navbar-height-desktop) !important;
  position: fixed !important;
  top: 0 !important;
  left: var(--rail-width-desktop) !important;
  width: calc(100% - var(--rail-width-desktop)) !important;
  right: 0 !important;
  z-index: 50 !important;
  background-color: #F3F3F3 !important;
  background: #F3F3F3 !important;
  border-bottom: 1px solid #EAEAEA !important;
  box-shadow: 0 2px 6px rgba(16, 24, 40, 0.04) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 1.5rem !important;
}

.dashboard-top-navbar::after {
  display: none !important;
}

.header-icon-btn {
  color: #52525B !important;
  border-radius: 12px !important;
  transition: all 0.2s ease !important;
}

.header-icon-btn:hover {
  color: #18181B !important;
  background-color: rgba(0, 0, 0, 0.05) !important;
}

.header-icon-btn svg {
  color: #52525B !important;
  stroke: #52525B !important;
}

#dash-event-countdown-badge {
  color: #71717A !important;
}

#btn-dash-header-chat svg,
#btn-notifications-menu svg {
  width: 23px !important;
  height: 23px !important;
  stroke-width: 2.15px !important;
}

#btn-dash-header-chat svg *,
#btn-notifications-menu svg * {
  stroke-width: 2.15px !important;
}

/* Bolinhas de Notificações, Chat/Mensagens e Recados na Cor #ebf4ff com Texto #333333 */
.badge-header-chat,
.badge-header-notifications,
.badge-recados-count {
  background-color: #ebf4ff !important;
  background: #ebf4ff !important;
  color: #333333 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  font-family: 'Inter', system-ui, sans-serif !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: none !important;
  border: none !important;
  outline: none !important;
  ring: none !important;
  --tw-ring-offset-shadow: none !important;
  --tw-ring-shadow: none !important;
}

.badge-chat-dot {
  background-color: #27394f !important;
  box-shadow: none !important;
  border: none !important;
  outline: none !important;
  ring: none !important;
  --tw-ring-offset-shadow: none !important;
  --tw-ring-shadow: none !important;
}

/* 2. Narrow Icon Rail (Leftmost Sidebar on Desktop) */
.sidebar-icon-rail {
  width: var(--rail-width-desktop) !important; /* 80px */
  background-color: #F3F3F3 !important;
  border-right: 1px solid #EAEAEA !important;
  box-shadow: 2px 0 6px rgba(16, 24, 40, 0.04) !important;
  position: fixed !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  right: auto !important;
  z-index: 60 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding-top: 0 !important;
  padding-bottom: 1.25rem !important;
  transition: all 0.3s ease;
}

.sidebar-brand-top {
  width: 100% !important;
  height: var(--navbar-height-desktop) !important; /* 76px - aligns with header */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-bottom: 1px solid #EAEAEA !important;
  background-color: #F3F3F3 !important;
  flex-shrink: 0 !important;
}

.sidebar-brand-top img {
  width: 42px !important;
  height: 42px !important;
  object-fit: contain !important;
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.sidebar-brand-top a:hover img {
  transform: scale(1.08);
}

.sidebar-icon-rail > div:first-child {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
  gap: 1.15rem !important;
}

.rail-icon-btn {
  width: 48px !important;
  height: 48px !important;
  border-radius: var(--radius-control, 12px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #333333 !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  position: relative;
  flex-shrink: 0 !important;
  margin-bottom: 0 !important;
}

.rail-icon-btn svg {
  width: 23px !important;
  height: 23px !important;
  color: #333333 !important;
  stroke: #333333 !important;
  stroke-width: 2.15px !important;
  transition: transform 0.2s ease, color 0.2s ease, stroke 0.2s ease;
}

.rail-icon-btn svg *,
#btn-user-account-menu svg * {
  stroke-width: 2.15px !important;
}

/* Hover: fundo sutil suave */
.rail-icon-btn:hover {
  color: #18181B !important;
  background-color: #F4F4F5 !important;
  transform: translateY(-1px);
}

.rail-icon-btn:hover svg,
.rail-icon-btn:hover svg * {
  color: #18181B !important;
  stroke: #18181B !important;
}

.rail-icon-btn:active {
  transform: scale(0.96);
}

/* Ícone ativo: mesmo estilo do item ativo no sidebar do B2B (card branco, ícone na cor primária) */
.rail-icon-btn.active {
  background-color: #FFFFFF !important;
  color: #333333 !important;
  border: 1px solid #EAEAEA !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
}

.rail-icon-btn.active svg,
.rail-icon-btn.active svg * {
  color: #333333 !important;
  stroke: #333333 !important;
  stroke-width: 2.25px !important;
}

.rail-icon-btn.active:hover {
  background-color: #FAFAFA !important;
  color: #333333 !important;
  border-color: #EAEAEA !important;
  transform: translateY(-1px);
}

.rail-icon-btn.active:hover svg,
.rail-icon-btn.active:hover svg * {
  color: #333333 !important;
  stroke: #333333 !important;
}

/* Botão Perfil no Header (quadrado sutil em harmonia com offwhite, mesma cor/tamanho de ícone do Chat/Notificações) */
#btn-user-account-menu {
  background-color: #F4F4F5 !important;
  color: #52525B !important;
  border: 1px solid #EAEAEA !important;
  border-radius: var(--radius-control, 12px) !important;
  width: 48px !important;
  height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s ease !important;
}

#btn-user-account-menu svg {
  width: 23px !important;
  height: 23px !important;
  color: #52525B !important;
  stroke: #52525B !important;
  stroke-width: 2.15px !important;
}

#btn-user-account-menu:hover {
  background-color: #FFFFFF !important;
  color: #18181B !important;
  border-color: #CBD5E1 !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05) !important;
  transform: translateY(-1px);
}

#btn-user-account-menu:hover svg,
#btn-user-account-menu:hover svg * {
  color: #18181B !important;
  stroke: #18181B !important;
}

/* 3. Secondary Sub-sidebar (Flyout Drawer) */
.sidebar-sub-drawer {
  width: var(--drawer-width-desktop) !important;
  background-color: #F3F3F3 !important;
  border-right: 1px solid var(--border-light) !important;
  position: fixed !important;
  top: var(--navbar-height-desktop) !important;
  bottom: 0 !important;
  left: var(--rail-width-desktop) !important;
  right: auto !important;
  z-index: 40 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow-y: auto !important;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;
  box-shadow: var(--shadow-drawer) !important;
}

.sidebar-sub-drawer.hidden-drawer {
  transform: translateX(-100%) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  display: none !important;
}

.sub-drawer-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.65rem 0.85rem;
  border-radius: 12px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #475569;
  transition: all 0.2s ease;
  cursor: pointer !important;
  pointer-events: auto !important;
  user-select: none;
  margin-bottom: 0.25rem;
}

.sub-drawer-item:hover {
  background-color: #F8FAFC;
  color: #0F172A;
}

.sub-drawer-item.active {
  background-color: #FFFFFF !important;
  color: #333333 !important;
  font-weight: 700;
  border: 1px solid var(--border-light);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* 4. Main Dashboard Content Area */
.dashboard-main-area {
  margin-left: calc(var(--rail-width-desktop) + var(--drawer-width-desktop)) !important; /* 320px */
  width: calc(100% - var(--rail-width-desktop) - var(--drawer-width-desktop)) !important;
  max-width: calc(100% - var(--rail-width-desktop) - var(--drawer-width-desktop)) !important;
  transition: margin-left 0.3s cubic-bezier(0.4, 0, 0.2, 1), width 0.3s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  padding-top: calc(var(--navbar-height-desktop) + 1.75rem) !important; /* Always clears fixed header */
  padding-bottom: 0 !important;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
  min-height: 100vh !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  background-color: #FFFFFF !important;
  box-sizing: border-box !important;
}

.dashboard-main-area,
.dashboard-main-area.full-width,
.dashboard-main-area > .dashboard-content-wrapper,
#tab-overview {
  background-color: #FFFFFF !important;
}

.dashboard-main-area.full-width {
  margin-left: var(--rail-width-desktop) !important;
  width: calc(100% - var(--rail-width-desktop)) !important;
  max-width: calc(100% - var(--rail-width-desktop)) !important;
}

.dashboard-main-area > .dashboard-content-wrapper {
  flex: 1 0 auto;
  width: 100%;
  padding-bottom: 3.5rem !important;
}

/* O rodapé (#dashboard-footer) É filho direto de .dashboard-main-area — a regra abaixo já
   estica a largura em +4rem/margem -2rem para sangrar até a borda real do painel principal
   (que já reage sozinho ao estado do menu lateral via .dashboard-main-area.full-width),
   então nenhum ajuste extra de margin-left é necessário aqui. */
.dashboard-main-area > footer {
  margin-top: auto !important;
  margin-bottom: 0 !important;
  flex-shrink: 0 !important;
  width: calc(100% + 4rem) !important;
  max-width: calc(100% + 4rem) !important;
  margin-left: -2rem !important;
  margin-right: -2rem !important;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
  padding-top: 3rem !important;
  padding-bottom: 2rem !important;
  box-sizing: border-box !important;
  clear: both !important;
  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), margin 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.dashboard-main-area > footer > div {
  width: 100% !important;
  max-width: 1360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  transition: max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Backdrop for Mobile Drawer */
.mobile-drawer-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.4);
  backdrop-filter: blur(2px);
  z-index: 45;
}

/* Tablets & Desktops (>= 769px) */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  .dashboard-top-navbar {
    height: var(--navbar-height-desktop);
  }

  .mobile-drawer-backdrop {
    display: none !important;
    pointer-events: none !important;
  }
}

/* Mobile Devices (< 768px) */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .dashboard-top-navbar {
    height: var(--navbar-height-mobile) !important;
    left: 0 !important;
    width: 100% !important;
    padding: 0 0.75rem !important;
  }

  /* Rail converts to Native-like Bottom App Navigation */
  .sidebar-icon-rail {
    width: 100% !important;
    height: 62px !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    border-right: none !important;
    border-top: 1px solid #EAEAEA !important;
    flex-direction: row !important;
    justify-content: space-around !important;
    align-items: center !important;
    padding: 0 0.5rem !important;
    padding-top: 0 !important;
    z-index: 50 !important;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.05) !important;
    background-color: #F3F3F3 !important;
  }

  .sidebar-brand-top {
    display: none !important;
  }

  .sidebar-icon-rail > div:first-child {
    flex-direction: row !important;
    justify-content: space-around !important;
    align-items: center !important;
    width: 100% !important;
  }

  .sidebar-icon-rail .rail-icon-btn {
    margin-bottom: 0;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
  }

  /* Ordem das abas e Bolinha de Personalizar centralizada no Mobile */
  .sidebar-icon-rail .rail-icon-btn[data-rail-tab="gifts"] {
    order: 1;
  }

  .sidebar-icon-rail .rail-icon-btn[data-rail-tab="rsvp"] {
    order: 2;
  }

  .sidebar-icon-rail .rail-icon-btn[data-rail-tab="edit-site"],
  .sidebar-icon-rail .rail-icon-btn.mobile-center-edit {
    order: 3;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    border-radius: 9999px !important;
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    color: #537bae !important;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.2) !important;
    transform: translateY(-14px) !important;
    border: 3.5px solid #537bae !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 60 !important;
  }

  .sidebar-icon-rail .rail-icon-btn[data-rail-tab="edit-site"] svg,
  .sidebar-icon-rail .rail-icon-btn.mobile-center-edit svg {
    width: 22px !important;
    height: 22px !important;
    color: #537bae !important;
    stroke: #537bae !important;
  }

  .sidebar-icon-rail .rail-icon-btn[data-rail-tab="edit-site"]:active,
  .sidebar-icon-rail .rail-icon-btn.mobile-center-edit:active,
  .sidebar-icon-rail .rail-icon-btn[data-rail-tab="edit-site"].active,
  .sidebar-icon-rail .rail-icon-btn.mobile-center-edit.active {
    background: #F8FAFC !important;
    background-color: #F8FAFC !important;
    color: #416799 !important;
  }

  .sidebar-icon-rail .rail-icon-btn[data-rail-tab="wallet"] {
    order: 4;
  }

  .sidebar-icon-rail .rail-icon-btn[data-rail-tab="b2b"] {
    order: 5;
  }

  /* Sub-drawer on Mobile is a clean Slide-over sheet */
  .sidebar-sub-drawer {
    top: var(--navbar-height-mobile);
    left: 0;
    bottom: var(--bottom-bar-height-mobile);
    width: 270px;
    z-index: 55;
    box-shadow: 8px 0 35px rgba(0, 0, 0, 0.22);
  }

  .mobile-drawer-backdrop.active {
    display: block;
  }

  /* Main area occupies 100% of viewport with generous top and bottom offsets */
  .dashboard-main-area {
    margin-left: 0 !important;
    padding-top: calc(var(--navbar-height-mobile) + 1.25rem) !important; /* Clears mobile navbar */
    padding-bottom: calc(var(--bottom-bar-height-mobile) + 2rem) !important; /* Clears bottom nav */
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    width: 100% !important;
  }

  .dashboard-main-area.full-width {
    margin-left: 0 !important;
  }
}

/* ==========================================================================
   FORM CONTROLS & INPUT FIELDS (Minimalist Elegant Design System)
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="date"],
input[type="time"],
input[type="search"],
select:not(#editor-form-home select),
textarea,
.form-input,
.custom-input-box {
  width: 100%;
  background-color: #FFFFFF !important;
  border: 1px solid #E4E4E7 !important;
  border-radius: 6px;
  padding: 0.625rem 0.875rem;
  font-size: 0.875rem !important;
  line-height: 1.5 !important;
  color: #18181B !important;
  box-shadow: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease !important;
  outline: none !important;
}

/* Selects Limpos do Painel de Aparência (Sem Nenhuma Borda / Sem Caixa / 100% Flat - apenas presets e fontes) */
#editor-form-home select:not(.music-track-placement),
#editor-select-title-font,
#editor-select-desc-font,
#editor-select-bg-preset {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  width: 100%;
}

#editor-form-home select:not(.music-track-placement):hover,
#editor-form-home select:not(.music-track-placement):focus,
#editor-select-title-font:hover,
#editor-select-title-font:focus,
#editor-select-desc-font:hover,
#editor-select-desc-font:focus,
#editor-select-bg-preset:hover,
#editor-select-bg-preset:focus {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Caixa com Borda e Fundo para o Dropdown 'Onde Tocar' e Input de URL de Música */
.music-track-url {
  width: 100% !important;
  height: 38px !important;
  background-color: #FFFFFF !important;
  border: 1px solid #EAEAEA !important;
  border-radius: 6px !important;
  padding: 0.5rem 0.75rem !important;
  font-size: 0.75rem !important;
  line-height: 1.25rem !important;
  color: #27272A !important;
  box-sizing: border-box !important;
  outline: none !important;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.02) !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.music-track-url:focus {
  border-color: #537bae !important;
  box-shadow: 0 0 0 1px #537bae !important;
}

.music-track-placement {
  width: 100% !important;
  height: 38px !important;
  background-color: #FFFFFF !important;
  border: 1px solid #EAEAEA !important;
  border-radius: 6px !important;
  padding: 0.5rem 2rem 0.5rem 0.75rem !important;
  font-size: 0.75rem !important;
  line-height: 1.25rem !important;
  color: #27272A !important;
  outline: none !important;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.02) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.music-track-placement:hover {
  border-color: #CBD5E1 !important;
}

.music-track-placement:focus {
  border-color: #537bae !important;
  box-shadow: 0 0 0 1px #537bae !important;
}

/* Alturas uniformes para Cor do Fundo e Estilo dos Botões */
#editor-card-bg-color,
#editor-card-btn-style {
  height: 100% !important;
  min-height: 285px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

#editor-select-title-font {
  color: #18181B !important;
  font-weight: 500;
}

#editor-select-title-font option {
  color: #18181B;
  background-color: #FFFFFF;
  padding: 8px 12px;
}

#editor-select-title-font option[value="font-playfair"] { font-family: 'Playfair Display', Georgia, serif !important; }
#editor-select-title-font option[value="font-yrsa"] { font-family: 'Yrsa', Georgia, serif !important; }
#editor-select-title-font option[value="font-garamond"] { font-family: 'EB Garamond', Georgia, serif !important; }
#editor-select-title-font option[value="font-cormorant"] { font-family: 'Cormorant Garamond', Georgia, serif !important; }
#editor-select-title-font option[value="font-avermont"] { font-family: 'Avermont House', 'Avermont', 'Playfair Display', Georgia, serif !important; }
#editor-select-title-font option[value="font-bride"] { font-family: 'Bride', 'Ephesis', cursive !important; }
#editor-select-title-font option[value="font-bludhaven"] { font-family: 'Bludhaven', 'Cinzel', serif !important; }
#editor-select-title-font option[value="font-fleur"] { font-family: 'Fleur De Leah', cursive !important; }
#editor-select-title-font option[value="font-ephesis"] { font-family: 'Ephesis', cursive !important; }
#editor-select-title-font option[value="font-hurricane"] { font-family: 'Hurricane', cursive !important; }
#editor-select-title-font option[value="font-cookie"] { font-family: 'Cookie', cursive !important; }
#editor-select-title-font option[value="font-italiana"] { font-family: 'Italiana', Georgia, serif !important; }
#editor-select-title-font option[value="font-bodoni"] { font-family: 'Bodoni Moda', Georgia, serif !important; }
#editor-select-title-font option[value="font-cinzel"] { font-family: 'Cinzel', serif !important; }
#editor-select-title-font option[value="font-lora"] { font-family: 'Lora', Georgia, serif !important; }
#editor-select-title-font option[value="font-outfit"] { font-family: 'Outfit', sans-serif !important; }
#editor-select-title-font option[value="font-montserrat"] { font-family: 'Montserrat', sans-serif !important; }
#editor-select-title-font option[value="font-inter"] { font-family: 'Inter', sans-serif !important; }

#editor-select-desc-font option[value="font-sans"] { font-family: 'Inter', sans-serif !important; }
#editor-select-desc-font option[value="font-serif"] { font-family: 'EB Garamond', Georgia, serif !important; }
#editor-select-desc-font option[value="font-clean"] { font-family: 'Outfit', sans-serif !important; }

/* Specificity overrides for inputs with left icons & custom radius */
input[class*="pl-8"], input.pl-8 { padding-left: 2rem !important; }
input[class*="pl-9"], input.pl-9 { padding-left: 2.25rem !important; }
input[class*="pl-10"], input.pl-10, #b2b-search-input { padding-left: 2.625rem !important; }
input[class*="pl-11"], input.pl-11, #rsvp-search-input { padding-left: 2.75rem !important; }
input[class*="pl-12"], input.pl-12 { padding-left: 3rem !important; }

input.rounded-full, input[class*="rounded-full"] { border-radius: 9999px !important; }
input.rounded-xl, input[class*="rounded-xl"],
input.rounded-2xl, input[class*="rounded-2xl"],
input.rounded-lg, input[class*="rounded-lg"] { border-radius: var(--radius-control, 12px) !important; }

/* Slug & Nested Transparent Inputs */
#page-new-event-slug,
#editor-event-slug,
.input-nested-transparent {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0.625rem 0.75rem !important;
  outline: none !important;
  border-radius: 0 !important;
}

#page-new-event-slug:hover,
#editor-event-slug:hover,
.input-nested-transparent:hover,
#page-new-event-slug:focus,
#editor-event-slug:focus,
.input-nested-transparent:focus {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

input[type="text"]:hover,
input[type="email"]:hover,
input[type="password"]:hover,
input[type="number"]:hover,
input[type="tel"]:hover,
input[type="url"]:hover,
input[type="date"]:hover,
input[type="time"]:hover,
input[type="search"]:hover,
select:not(#editor-form-home select):hover,
textarea:hover,
.form-input:hover {
  border-color: #A1A1AA !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
input[type="search"]:focus,
select:not(#editor-form-home select):focus,
textarea:focus,
.form-input:focus {
  border-color: #181D24 !important;
  box-shadow: none !important;
  background-color: #FFFFFF !important;
}

input::placeholder,
textarea::placeholder {
  color: #A1A1AA !important;
  font-weight: 400;
}

.form-section-clean,
.editor-sub-panel > div {
  background: transparent !important;
  box-shadow: none !important;
}

label,
.form-label {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  color: #52525B !important; /* text-zinc-600 */
  margin-bottom: 0.375rem !important;
  display: block;
  letter-spacing: -0.01em;
}

.form-helper,
.char-counter,
.field-hint {
  font-size: 0.75rem !important;
  color: #71717A !important; /* text-zinc-500 */
  margin-top: 0.375rem !important;
  display: block;
}

/* ==========================================================================
   BUTTONS & UI COMPONENTS (Strict rounded-md)
   ========================================================================== */

.btn-brand {
  background: #18181B;
  color: #FAFAFA;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  border-radius: var(--radius-control, 12px) !important;
  padding: 0.5rem 1rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #18181B;
  cursor: pointer;
  text-decoration: none;
}

.btn-brand:hover {
  background: #27272A;
  border-color: #27272A;
  transform: translateY(-1px);
}

.btn-white {
  background: #FFFFFF;
  color: #18181B;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  border-radius: var(--radius-control, 12px) !important;
  padding: 0.5rem 1rem;
  border: 1px solid #EAEAEA; /* border-zinc-200 */
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.btn-white:hover {
  background: #F4F4F5; /* bg-zinc-100 */
  border-color: #D4D4D8;
}

.btn-cta-coral {
  background: #18181B;
  color: #FAFAFA;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  border-radius: var(--radius-control, 12px) !important;
  padding: 0.625rem 1.25rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #18181B;
  cursor: pointer;
}

/* Botões padrão da área logada — mesmo padrão do B2B (ícone sempre à esquerda do texto, cor #333333) */
.btn-primary {
  background: #181D24;
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 0.875rem;
  padding: 0.65rem 1.25rem;
  border-radius: var(--radius-control, 12px);
  border: none;
  cursor: pointer;
  transition: background-color .15s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  box-shadow: none;
  text-decoration: none;
}
.btn-primary:hover { background: #0F1216; }
.btn-primary:disabled { opacity: 0.5; cursor: default; box-shadow: none; }
body[data-theme="dark"] .btn-primary { background: #181D24; box-shadow: none; }
body[data-theme="dark"] .btn-primary:hover { background: #0F1216; }

.btn-secondary {
  background: #fff;
  color: #3F3F46;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 0.875rem;
  padding: 0.65rem 1.25rem;
  border-radius: var(--radius-control, 12px);
  border: 1px solid #EAEAEA;
  cursor: pointer;
  transition: background-color .15s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
}
.btn-secondary:hover { background: #FFFFFF; border-color: #181D24; color: #181D24; }
body[data-theme="dark"] .btn-secondary { background-color: #333333 !important; color: #FFFFFF !important; border-color: rgba(255,255,255,0.12) !important; }

.btn-primary svg, .btn-secondary svg { width: 16px; height: 16px; flex-shrink: 0; }

/* Variante compacta (toolbars) — mesma base de cor/peso de fonte de .btn-primary/.btn-secondary, só menor */
.builder-toolbar-btn { padding: 0.45rem 0.85rem; font-size: 0.8125rem; }
.builder-toolbar-btn svg { width: 15px; height: 15px; }
.builder-toolbar-btn.active { background: var(--primary-blue); color: #fff; border-color: var(--primary-blue); }
.builder-toolbar-btn.active:hover { background: var(--primary-blue-hover); }

.btn-cta-coral:hover {
  background: #27272A;
  transform: translateY(-1px);
}

/* ==========================================================================
/* ==========================================================================
   CARDS, PANELS & BOXES (REMOÇÃO GLOBAL DE LINHAS CINZAS / BORDAS)
   ========================================================================== */

.card-luxury,
.metric-card,
.dashboard-card,
.ticket-card,
.dashboard-tab-content .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card),
.dashboard-main-area .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card),
#tab-overview .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item),
#tab-rsvp .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item),
#tab-gifts .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item),
#tab-wallet .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item),
#tab-edit-site .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item),
#tab-b2b .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card),
.bg-white.rounded-3xl,
.bg-white.rounded-2xl,
.bg-white.rounded-xl,
.bg-white.rounded-lg,
.bg-white.shadow-sm,
.bg-white.shadow-2xs,
.bg-white.shadow-md {
  background: #FFFFFF !important;
  /* Sem sombra (identidade sem cara de Tailwind): o contorno vem da borda. */
  box-shadow: none !important;
  transition: border-color .15s ease !important;
}

.card-luxury:hover,
.metric-card:hover,
.dashboard-card:hover,
.dashboard-tab-content .bg-white.group:hover:not(.b2b-item-card),
.dashboard-main-area .bg-white.group:hover:not(.b2b-item-card) {
  box-shadow: none !important;
  border-color: #D4D4D8 !important;
}

/* Explorar / Meus Contratos / Favoritos: lista plana, sem caixa por item —
   apenas a linha (divide-y) entre um fornecedor e outro. */
.b2b-item-card,
#b2b-contracted-list-container > div {
  background: transparent !important;
  box-shadow: none !important;
}

/* Drawer de categorias da busca (Explorar fornecedores): linhas retas (sem
   o border-radius padrão de botão) e hover sempre num cinza bem clarinho.
   Especificidade dobrada no #id pra vencer a regra global de raio de botão
   (button:not(...), que já usa !important). */
#b2b-category-menu#b2b-category-menu button {
  border-radius: 0 !important;
}
#b2b-category-menu .b2b-category-group > div:hover {
  background-color: #FAFAFA;
}

/* Badges de Data e Local do Topo */
#dash-hub-event-date-badge {
  border: 1.5px solid #18181B !important;
  background-color: #FFFFFF !important;
  border-radius: 9999px !important;
  color: #18181B !important;
}

#dash-hub-event-location-badge {
  border: 1.5px dashed #71717A !important;
  background-color: #FFFFFF !important;
  border-radius: 9999px !important;
  color: #52525B !important;
}

#dash-hub-event-location-badge:hover {
  border-color: #18181B !important;
  color: #18181B !important;
}

/* ==========================================================================
   MODERN NEXT-GEN AESTHETICS (Glassmorphism, Gradient Text, Glows & Aura)
   ========================================================================== */

/* 1. Glassmorphism & Translucent Panels */
.glass-panel {
  background: rgba(255, 255, 255, 0.75) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
  box-shadow: 0 8px 32px 0 rgba(15, 23, 42, 0.04) !important;
}

.glass-panel-dark {
  background: rgba(15, 23, 42, 0.75) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.25) !important;
}

.glass-dropdown {
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(226, 232, 240, 0.8) !important;
}

/* 2. Gradient Text */
.text-gradient-primary,
.gradient-text {
  background: linear-gradient(135deg, #2563EB 0%, #06B6D4 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  display: inline-block;
}

.text-gradient-purple {
  background: linear-gradient(135deg, #7C3AED 0%, #06B6D4 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  display: inline-block;
}

.text-gradient-coral {
  background: linear-gradient(135deg, #FF385C 0%, #8B5CF6 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  display: inline-block;
}

/* 3. Glow and Auras (Luzes de Fundo) */
.glow-aura-blue {
  position: absolute;
  width: 28rem;
  height: 28rem;
  background: radial-gradient(circle, rgba(83, 123, 174, 0.18) 0%, rgba(59, 130, 246, 0.05) 50%, transparent 70%);
  filter: blur(80px);
  border-radius: 9999px;
  pointer-events: none;
  z-index: 0;
}

.glow-aura-purple {
  position: absolute;
  width: 28rem;
  height: 28rem;
  background: radial-gradient(circle, rgba(139, 92, 246, 0.16) 0%, rgba(168, 85, 247, 0.04) 50%, transparent 70%);
  filter: blur(80px);
  border-radius: 9999px;
  pointer-events: none;
  z-index: 0;
}

.glow-aura-cyan {
  position: absolute;
  width: 24rem;
  height: 24rem;
  background: radial-gradient(circle, rgba(6, 182, 212, 0.14) 0%, transparent 70%);
  filter: blur(70px);
  border-radius: 9999px;
  pointer-events: none;
  z-index: 0;
}

/* 4. Bordas em Gradiente Sutil */
.border-gradient-wrapper {
  background: linear-gradient(180deg, rgba(226, 232, 240, 0.8) 0%, rgba(226, 232, 240, 0.2) 100%);
  padding: 1px;
  border-radius: 1.5rem;
}

.border-gradient-wrapper-glow {
  background: linear-gradient(135deg, rgba(83, 123, 174, 0.4) 0%, rgba(139, 92, 246, 0.2) 50%, rgba(255, 255, 255, 0.05) 100%);
  padding: 1px;
  border-radius: 1.5rem;
}

/* 5. Micro-interações & Hover Glows */
.hover-lift-glow {
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.hover-lift-glow:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 14px 34px -6px rgba(83, 123, 174, 0.25) !important;
}

.hover-lift-purple:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 14px 34px -6px rgba(139, 92, 246, 0.25) !important;
}

.status-dot-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Card Flutuante com Borda Iluminada no Hover (Next-Gen UI) */
.card-floating-glow,
.card-interactive,
.metric-card,
.quick-start-item {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.card-floating-glow:hover,
.card-interactive:hover,
.metric-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(168, 85, 247, 0.35) !important;
  box-shadow: 0 12px 30px -5px rgba(168, 85, 247, 0.12), 0 0 0 1px rgba(168, 85, 247, 0.15) !important;
}

/* Metric Cards */
.metric-card {
  background: #FFFFFF;
  border-radius: 4px;
  border: 1px solid var(--border-light);
  padding: 1.5rem;
  box-shadow: var(--shadow-card);
}

/* Hero Elements */
.hero-glow {
  position: absolute;
  top: -20%;
  left: 50%;
  transform: translateX(-50%);
  width: 900px;
  height: 600px;
  background: radial-gradient(circle, rgba(59, 130, 246, 0.12) 0%, rgba(255, 56, 92, 0.05) 50%, rgba(255, 255, 255, 0) 70%);
  z-index: 0;
  pointer-events: none;
}

/* Modals */
.modal-backdrop-custom,
.modal-backdrop-custom:not(.open) {
  position: fixed;
  inset: 0;
  background-color: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(6px);
  z-index: 100;
  display: none !important;
  pointer-events: none !important;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.modal-backdrop-custom.open {
  display: flex !important;
  pointer-events: auto !important;
  animation: fadeInModal 0.2s ease-out;
}

.modal-card-custom {
  background: #FFFFFF;
  border-radius: 4px;
  border: 1px solid var(--border-light);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  max-width: 540px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  animation: scaleUpModal 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes fadeInModal {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes scaleUpModal {
  from { opacity: 0; transform: scale(0.96) translateY(8px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}

/* Toast Notifications (Desativadas globalmente) */
.toast-custom,
#toast-notification {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .toast-custom {
    bottom: 80px;
    left: 16px;
    right: 16px;
    justify-content: center;
  }
}

/* Tab Views */
.dashboard-tab-content,
.dashboard-tab-content:not(.active) {
  display: none !important;
}

.dashboard-tab-content.active {
  display: block !important;
  animation: fadeInTab 0.25s ease-out forwards;
}

@keyframes fadeInTab {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* View Switching & Strict Component Isolation */
#view-public-site {
  display: flex;
}

#view-event-os-dashboard {
  display: none !important;
}

body.dashboard-mode #view-public-site {
  display: none !important;
}

body.dashboard-mode {
  background-color: #FFFFFF !important;
}

body.dashboard-mode #view-event-os-dashboard {
  display: flex !important;
  background-color: #FFFFFF !important;
}

/* ==========================================================================
   PERSONALIZAR EVENTO / APARÊNCIA SPLIT MODE (SEM MARGEM EXTERNA, 2 COLUNAS)
   ========================================================================== */
body.editor-split-mode .dashboard-main-area {
  margin-left: calc(var(--rail-width-desktop) + var(--drawer-width-desktop)) !important;
  padding-top: var(--navbar-height-desktop) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  min-height: 100vh !important;
  background-color: #FFFFFF !important;
}

body.editor-split-mode .dashboard-main-area.full-width {
  margin-left: var(--rail-width-desktop) !important;
}

body.editor-split-mode .dashboard-main-area > .dashboard-content-wrapper {
  padding-bottom: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

body.editor-split-mode #tab-edit-site {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

body.editor-split-mode #tab-edit-site > .editor-split-wrapper {
  display: flex !important;
  flex-direction: row !important;
  width: 100% !important;
  min-height: calc(100vh - var(--navbar-height-desktop)) !important;
  align-items: stretch !important;
}

body.editor-split-mode #editor-live-preview-column {
  width: 340px !important;
  min-width: 290px !important;
  max-width: 440px !important;
  flex-shrink: 0 !important;
  background-color: #FBFBFA;
  border-right: 1px solid #EAEAEA !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  height: calc(100vh - var(--navbar-height-desktop)) !important;
  position: sticky !important;
  top: var(--navbar-height-desktop) !important;
  overflow: hidden !important;
  transition: background-color 0.3s ease, width 0.2s ease;
}

@media (min-width: 1280px) {
  body.editor-split-mode #editor-live-preview-column {
    width: 380px !important;
  }
}

@media (min-width: 1536px) {
  body.editor-split-mode #editor-live-preview-column {
    width: 420px !important;
  }
}

body.editor-split-mode #live-preview-container {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
  flex: 1 1 auto !important;
  overflow-y: auto !important;
  background-color: transparent !important;
  transition: background-color 0.3s ease;
}

body.editor-split-mode #editor-form-column {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  background-color: #FFFFFF;
  padding: 1.25rem 1rem 4rem 1rem !important;
  overflow-y: auto !important;
}

body:not([data-theme="dark"]).editor-split-mode #editor-form-column {
  background-color: #FFFFFF !important;
}

@media (min-width: 640px) {
  body.editor-split-mode #editor-form-column {
    padding: 1.5rem 1.25rem 4rem 1.25rem !important;
  }
}

@media (min-width: 1024px) {
  body.editor-split-mode #editor-form-column {
    padding: 1.75rem 1.5rem 5rem 1.5rem !important;
  }
}

@media (min-width: 1440px) {
  body.editor-split-mode #editor-form-column {
    padding: 2rem 2.25rem 5rem 2.25rem !important;
  }
}

/* RESPONSIVIDADE MOBILE (TELAS < 768px):
   Oculta a caixa lateral direita e exibe a prévia direta em tela cheia com edição inline */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  body.editor-split-mode .dashboard-main-area {
    padding-top: var(--navbar-height-mobile) !important;
    padding-bottom: calc(var(--bottom-bar-height, 68px) + 20px) !important;
  }

  body.editor-split-mode #tab-edit-site > .editor-split-wrapper {
    flex-direction: column !important;
    min-height: auto !important;
  }

  body.editor-split-mode #editor-form-column {
    display: none !important;
  }

  body.editor-split-mode #editor-live-preview-column {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    position: static !important;
    border-right: none !important;
    overflow: visible !important;
  }

  body.editor-split-mode #live-preview-container {
    height: auto !important;
    overflow-y: visible !important;
  }
}

/* ==========================================================================
   Construtor visual — Editar meu site (page builder)
   ========================================================================== */

.builder-narrow-notice { display: none; }

@media (max-width: 1180px) {
  .builder-wrap { display: none; }
  .builder-narrow-notice {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #FFFBEB;
    border: 1px solid #FDE68A;
    color: #92400E;
    border-radius: var(--radius-card);
    padding: 1rem 1.25rem;
    font-size: 0.8125rem;
    font-weight: 500;
  }
}

.builder-wrap {
  border: none;
  border-top: 1px solid var(--border-card);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 1.25rem -2rem 0;
  width: calc(100% + 4rem);
}

/* -------------------- Toolbar -------------------- */

.builder-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1rem;
  min-height: 68px;
  box-sizing: border-box;
  border-bottom: 1px solid var(--border-card);
  background: #FAFAFA;
  flex-wrap: wrap;
}

/* Dropdown de páginas do site — mesmo padrão do B2B (páginas do site / meu checkout) */
.builder-page-switcher { position: relative; display: inline-block; }

.builder-page-name {
  border: 1px solid transparent;
  background-color: transparent;
  font-size: 1.25rem;
  font-weight: 700;
  color: #18181B;
  font-family: inherit;
  padding: 0.4rem 1.75rem 0.4rem 0.6rem;
  border-radius: 8px;
  min-width: 140px;
  max-width: 220px;
  text-align: left;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
  background-size: 12px;
}
.builder-page-name:hover { background-color: #F4F4F5; }
.builder-page-name:focus { outline: none; border-color: var(--border-light); background-color: #fff; }
.builder-page-switcher[aria-expanded="true"] .builder-page-name,
.builder-page-name[aria-expanded="true"] { background-color: #F4F4F5; }

#builder-page-dropdown {
  display: none;
  left: 0;
  right: auto;
  min-width: 180px;
  width: max-content;
}
#builder-page-dropdown.show { display: flex; }

.kanban-list-dropdown {
  position: absolute; top: calc(100% + 4px); z-index: 30;
  background: #fff; border: 1px solid var(--border-card); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.16);
  width: 195px; padding: 0.4rem;
  display: flex; flex-direction: column; gap: 0.1rem;
}
.kanban-list-dropdown-item {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.55rem 0.6rem; border-radius: 7px; border: none; background: transparent;
  font-size: 0.8125rem; font-weight: 500; color: #18181B; text-align: left; cursor: pointer;
  transition: background-color .15s ease;
}
.kanban-list-dropdown-item:hover { background: #F4F4F5; }
.kanban-list-dropdown-item.active { background: #F4F4F5; font-weight: 700; }

.builder-device-toggle { display: flex; align-items: center; gap: 0.25rem; background: #F4F4F5; padding: 0.25rem; border-radius: 10px; }
.builder-device-btn {
  width: 32px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 7px; color: #71717A; background: transparent; border: none; cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.builder-device-btn svg { width: 16px; height: 16px; }
.builder-device-btn:hover { color: #18181B; }
.builder-device-btn.active { background: #fff; color: #18181B; box-shadow: var(--shadow-soft); }

.builder-toolbar-right { display: flex; align-items: center; gap: 0.4rem; }
.builder-tool-btn {
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 8px; color: #52525B; background: transparent; border: 1px solid transparent; cursor: pointer;
}
.builder-tool-btn svg { width: 21px; height: 21px; }
.builder-tool-btn:hover:not(:disabled) { background: #F4F4F5; }
.builder-tool-btn:disabled { color: #D4D4D8; cursor: default; }
.builder-toolbar-divider { width: 1px; height: 20px; background: var(--border-light); margin: 0 0.15rem; }
.builder-toolbar-btn { padding: 0.45rem 0.85rem; font-size: 0.8125rem; }
.builder-toolbar-btn svg { width: 15px; height: 15px; }
.builder-toolbar-btn.active { background: var(--primary-blue); color: #fff; border-color: var(--primary-blue); }
.builder-toolbar-btn.active:hover { background: var(--primary-blue-hover); }

/* Salvar/Publicar do Convite Digital: mesmo tamanho do botão "Adicionar presente"
   (padding e fonte do .btn-primary/.btn-secondary padrão, maiores que o toolbar-btn comum).
   #btn-save-header-edit (Informações/Anfitriões) usa o mesmo tamanho e cor. */
#builder-save, #builder-publish, #btn-save-header-edit {
  padding: 0.65rem 1.25rem !important;
  font-size: 0.875rem !important;
}

/* -------------------- Corpo: sidebar + canvas + inspector -------------------- */

.builder-body { display: flex; min-height: 0; height: 640px; }

.builder-elements-panel {
  width: 312px;
  flex-shrink: 0;
  border-right: 1px solid var(--border-card);
  background: #fff;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.builder-panel-tabs { display: flex; gap: 0.25rem; padding: 0.6rem; margin: 0.65rem 0.65rem 0; background: #fff; border: 1px solid var(--border-card); border-radius: 10px; flex-shrink: 0; }
.builder-panel-tab {
  flex: 1;
  padding: 0.5rem 0.5rem;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: #71717A;
  background: none;
  border: none;
  border-radius: 7px;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.builder-panel-tab:hover { color: #3F3F46; }
.builder-panel-tab.active { color: #18181B; background: #EBF4FF; }

/* Aba "Lista de convidados" em Mapear Mesas — fundo azul clarinho */
body:not([data-theme="dark"]) #floorplan-guests-panel .builder-panel-tab.active { background: #EBF4FF; }
body[data-theme="dark"] #floorplan-guests-panel .builder-panel-tab.active { background: #181D24 !important; color: #FFFFFF !important; }

.builder-panel-tab-body { padding: 0.9rem 0.25rem 0.9rem 0.75rem; overflow-y: auto; flex: 1; min-height: 0; }
.builder-panel-tab-body-estilo { display: flex; flex-direction: column; gap: 1.4rem; }

.builder-estilo-section { display: flex; flex-direction: column; gap: 1.15rem; }
.builder-estilo-section .inspector-hint { margin-bottom: 0.15rem; }

.builder-el-group-title {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #A1A1AA;
  padding: 0.5rem 0.4rem 0.4rem;
}
.builder-el-group-title svg { width: 14px; height: 14px; flex-shrink: 0; }

.builder-el-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem; margin-bottom: 0.4rem; }

.builder-el-item {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem;
  padding: 0.95rem 0.3rem;
  border: 1px solid var(--border-card);
  border-radius: 10px;
  background: #FFFFFF;
  cursor: grab;
  text-align: center;
  transition: border-color .15s ease, background-color .15s ease, transform .1s ease;
}
.builder-el-item svg { width: 17px; height: 17px; color: #52525B; }
.builder-el-item span { font-size: 0.6875rem; font-weight: 600; color: #3F3F46; line-height: 1.15; }
.builder-el-item:hover { border-color: var(--primary-blue); background: #DCEAFB; transform: translateY(-1px); }
.builder-el-item:active { cursor: grabbing; }
.builder-el-item.sortable-chosen { opacity: 0.4; }

.builder-el-item.is-structural { cursor: pointer; }
.builder-el-item.is-structural:active { cursor: pointer; }

/* -------------------- Canvas -------------------- */

.builder-canvas-viewport {
  flex: 1;
  min-width: 0;
  background: #EDEDF0;
  padding: 2rem 1.5rem;
  display: flex;
  justify-content: center;
}

.builder-canvas-frame {
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  transform: translateZ(0);
  transition: max-width .2s ease;
}
.builder-canvas-frame[data-device="tablet"] { max-width: 768px; }
.builder-canvas-frame[data-device="mobile"] { max-width: 375px; }

.builder-canvas-scroll {
  width: 100%;
  height: 100%;
  overflow: auto;
  overflow-x: hidden;
}

.builder-canvas {
  width: 100%;
  background: #fff;
  min-height: 100%;
  box-shadow: none;
}

/* Caixas de Dress Code / Informações Gerais na prévia da aba "Informações":
   sempre brancas, independente da cor de fundo do convite. */
.classic-preview-info-boxes { padding: 1.5rem 1.25rem; display: flex; flex-direction: column; gap: 0.75rem; }
/* Prévia de Informações: cada informação numa seção própria (local/datas acima
   dos botões; Dress code e Informações gerais abaixo). */
.classic-preview-info-section { padding: 0.75rem 1.25rem; }
.classic-preview-info-datas { margin-top: 0.6rem; padding-top: 0.6rem; border-top: 1px solid #F0F0F1; display: flex; flex-direction: column; gap: 0.2rem; }
.classic-preview-info-datas strong { color: #18181B; font-weight: 600; }
/* "Como chegar?" do endereço (convite publicado, prévia e tela Informações):
   um botão que abre o menu com Google Maps e Waze. */
.convite-como-chegar { position: relative; margin-top: 0.75rem; }
.convite-como-chegar-btn { list-style: none; display: block; text-align: center; padding: 0.6rem 0.75rem; border-radius: 9999px; background: #F4F4F5; color: #18181B; font-size: 0.75rem; font-weight: 600; cursor: pointer; user-select: none; transition: background-color .15s ease; }
.convite-como-chegar-btn::-webkit-details-marker { display: none; }
.convite-como-chegar-btn:hover,
.convite-como-chegar[open] .convite-como-chegar-btn { background: #E4E4E7; }
.convite-como-chegar-menu { position: absolute; left: 0; right: 0; top: calc(100% + 0.35rem); z-index: 20; background: #FFFFFF; border-radius: 12px; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04); padding: 0.35rem; display: flex; flex-direction: column; }
.convite-como-chegar-menu a { padding: 0.6rem 0.75rem; border-radius: 8px; color: #18181B; font-size: 0.8125rem; font-weight: 600; text-decoration: none; text-align: center; }
.convite-como-chegar-menu a:hover { background: #F4F4F5; }
/* Dress code / Informações gerais: seção inteira, branca, de ponta a ponta. */
.classic-preview-info-full { background: #FFFFFF; padding: 1.75rem 1.5rem; }
.classic-preview-info-full + .classic-preview-info-full { border-top: 1px solid #F0F0F1; }
.classic-preview-info-full h4 { font-size: 0.9375rem; font-weight: 700; color: #18181B; margin: 0 0 0.5rem; }
.classic-preview-info-full p { font-size: 0.8125rem; color: #52525B; line-height: 1.6; margin: 0; white-space: pre-line; }
.classic-preview-info-box { background: #fff; border-radius: 14px; padding: 1rem 1.125rem; box-shadow: 0 1px 3px rgba(16,24,40,0.08); }
.classic-preview-info-box h4 { font-size: 0.8125rem; font-weight: 700; color: #18181B; margin: 0 0 0.35rem; }
.classic-preview-info-box p { font-size: 0.75rem; color: #52525B; line-height: 1.5; margin: 0; white-space: pre-line; }

.classic-preview-hosts-list { display: flex; flex-direction: column; gap: 0.5rem; }
.classic-preview-host-card { display: flex; align-items: center; gap: 0.625rem; padding: 0.625rem; border-radius: 12px; background: #FAFAFA; border: 1px solid #F0F0F1; }
.classic-preview-host-avatar { width: 2rem; height: 2rem; border-radius: 9999px; color: #fff; font-size: 0.6875rem; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.classic-preview-host-info { min-width: 0; flex: 1; }
.classic-preview-host-info p { font-size: 0.75rem; font-weight: 700; color: #18181B; margin: 0; white-space: normal; }
.classic-preview-host-info span { display: inline-block; font-size: 0.625rem; font-weight: 600; color: #52525B; background: #F0F0F1; padding: 0.125rem 0.5rem; border-radius: 6px; margin-top: 0.2rem; }
.classic-preview-host-info span.is-creator { color: #537bae; background: #EBF4FF; }

.builder-fixed-header {
  --header-bg: #FAFAFA;
  --header-text: #3F3F46;
  --header-cta-bg: var(--bx-primary, var(--primary-blue));
  --header-cta-text: #fff;
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--header-bg);
  border-bottom: 1px solid var(--border-card);
  box-shadow: 0 1px 0 rgba(16,24,40,0.03);
  cursor: pointer;
}
#site-builder-root .builder-fixed-header:hover,
.builder-fixed-header.is-selected { outline: 2px dashed #D4D4D8; outline-offset: -2px; }
.builder-fixed-header[data-style="flutuante"] {
  margin: 16px 16px 0 16px;
  border-radius: var(--bx-radius, 16px);
  border-bottom: none;
  box-shadow: 0 12px 28px rgba(16,24,40,0.18);
  position: relative;
  z-index: 20;
}
.builder-fixed-header[data-sticky="false"] { position: static; }
.builder-fixed-header[data-style="flutuante"][data-sticky="true"] { position: sticky; top: 16px; }
#site-builder-root .builder-fixed-header[data-style="flutuante"]:hover,
.builder-fixed-header[data-style="flutuante"].is-selected { outline: 2px dashed #D4D4D8; outline-offset: -2px; }
.builder-fixed-header-inner {
  position: relative;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding: 1.1rem 1.75rem;
  max-width: 1080px;
  margin: 0 auto;
}
.builder-fixed-header-logo-frame { width: 148px; height: 40px; overflow: hidden; flex-shrink: 0; }
.builder-fixed-header-logo-frame .builder-fixed-header-logo-img {
  width: 100%; height: 100%;
  object-fit: contain;
  transform: scale(var(--logo-scale, 1)) translate(var(--logo-x, 0%), var(--logo-y, 0%));
  transform-origin: center;
}
.builder-fixed-header-logo-placeholder {
  font-size: 0.75rem; font-weight: 600; color: var(--header-text); white-space: nowrap;
  border: 1.5px dashed currentColor; opacity: 0.7; border-radius: 8px; padding: 0.5rem 0.85rem; flex-shrink: 0;
}
.builder-fixed-header-menu { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.builder-fixed-header-menu a { font-size: 0.8125rem; color: var(--header-text); text-decoration: none; white-space: nowrap; opacity: 0.9; }
.builder-fixed-header-menu a:hover { opacity: 1; }
.builder-fixed-header-menu a,
.builder-fixed-header-cta,
.builder-mobile-menu-drawer-links a,
.builder-mobile-menu-drawer-cta {
  font-family: var(--menu-font-family, inherit);
  font-weight: var(--menu-font-weight, 600);
  font-style: var(--menu-font-style, normal);
  text-decoration: var(--menu-text-decoration, none);
}
.builder-fixed-header-menu[data-menu-style="flutuante"] {
  gap: 0.25rem;
  padding: 0.4rem 0.5rem;
  border-radius: var(--bx-radius, 999px);
  background: color-mix(in srgb, var(--header-text) 8%, transparent);
}
.builder-fixed-header-menu[data-menu-style="flutuante"] a {
  padding: 0.4rem 0.9rem;
  border-radius: var(--bx-radius, 999px);
  opacity: 0.85;
}
.builder-fixed-header-menu[data-menu-style="flutuante"] a:hover {
  opacity: 1;
  background: color-mix(in srgb, var(--header-text) 10%, transparent);
}
.builder-fixed-header-menu[data-menu-style="botoes"] { gap: 0.5rem; }
.builder-fixed-header-menu[data-menu-style="botoes"] a {
  padding: 0.45rem 1rem;
  border-radius: var(--bx-radius, 8px);
  background: color-mix(in srgb, var(--header-text) 8%, transparent);
  opacity: 1;
}
.builder-fixed-header-menu[data-menu-style="botoes"] a:hover {
  background: color-mix(in srgb, var(--header-text) 16%, transparent);
}
.builder-fixed-header-cta {
  flex-shrink: 0;
  font-size: 0.8125rem; color: var(--header-cta-text);
  background: var(--header-cta-bg);
  padding: 0.55rem 1.15rem; border-radius: var(--bx-radius, 999px);
  white-space: nowrap;
}

.builder-fixed-header-burger {
  display: none;
  align-items: center; justify-content: center;
  width: 36px; height: 36px; flex-shrink: 0;
  background: none; border: none; color: var(--header-text); cursor: pointer; padding: 0;
}
.builder-fixed-header-burger svg { width: 22px; height: 22px; }

.builder-canvas[data-device="mobile"] .builder-fixed-header-menu,
.builder-canvas[data-device="mobile"] .builder-fixed-header-inner > .builder-fixed-header-cta { display: none; }
.builder-canvas[data-device="mobile"] .builder-fixed-header-burger { display: flex; }

/* Seção de botões de navegação: é uma .builder-section como qualquer outra
   (herda borda/seleção/toolbar de .builder-section) mas não deve esticar
   para 100vh nem centralizar conteúdo verticalmente como as demais seções. */
.builder-section.builder-quicknav-section,
.builder-canvas[data-device="mobile"] .builder-section.builder-quicknav-section {
  min-height: 0 !important;
  display: block !important;
  padding: var(--bx-section-spacing, 32px) 24px;
}
.builder-quicknav-inner {
  max-width: 480px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.builder-quicknav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.95rem 1.5rem;
  border-radius: 9999px;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-align: center;
}
.builder-quicknav-icon { display: inline-flex; width: 18px; height: 18px; flex-shrink: 0; }
.builder-quicknav-icon svg { width: 100%; height: 100%; }
.builder-quicknav-emoji { font-size: 1.05rem; line-height: 1; flex-shrink: 0; }
/* Modernos: círculo discreto (contorno fino + leve preenchimento) na cor dos
   ícones, com o glifo dentro — monocromático e elegante. */
.builder-quicknav-icon-modern {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 9999px;
  flex-shrink: 0;
  border: 1px solid color-mix(in srgb, currentColor 35%, transparent);
  background: color-mix(in srgb, currentColor 8%, transparent);
}
.builder-quicknav-icon-modern svg { width: 14px; height: 14px; }
.builder-quicknav-empty-hint { font-size: 0.8125rem; color: #A1A1AA; text-align: center; padding: 0.5rem 0; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .builder-section.builder-quicknav-section { padding: 1.5rem 1rem; }
  .builder-quicknav-btn { font-size: 0.875rem; padding: 0.85rem 1.25rem; }
}

/* Bloco fixo "Meus Presentes": mesma lógica da seção de botões — herda o
   visual de .builder-section, mas com layout próprio (grid de cards) em
   vez de esticar para 100vh. */
.builder-section.builder-giftsblock-section,
.builder-canvas[data-device="mobile"] .builder-section.builder-giftsblock-section {
  min-height: 0 !important;
  display: block !important;
  padding: var(--bx-section-spacing, 32px) 24px;
}
.builder-giftsblock-inner { max-width: 1080px; margin: 0 auto; }
.builder-giftsblock-header { text-align: center; margin: 0 0 2rem; }
.builder-giftsblock-header h2.be-heading { margin: 0 0 0.5rem; font-size: 1.75rem; }
.builder-giftsblock-subtitle { margin: 0 auto; max-width: 560px; font-size: 0.9375rem; line-height: 1.5; }
.builder-giftsblock-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1rem;
}
.builder-giftsblock-card {
  background: #fff;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-card);
  overflow: hidden;
  text-align: left;
}
.builder-giftsblock-card-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  background-color: #F4F4F5;
  background-size: cover;
  background-position: center;
}
.builder-giftsblock-card-body { padding: 0.75rem; }
.builder-giftsblock-card-body h4 {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #18181B;
  margin: 0 0 0.15rem;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.builder-giftsblock-card-body p { font-size: 0.6875rem; color: #A1A1AA; margin: 0 0 0.4rem; }
.builder-giftsblock-card-price { font-size: 0.8125rem; font-weight: 700; color: #18181B; }
.builder-giftsblock-empty { font-size: 0.8125rem; color: #A1A1AA; text-align: center; padding: 2rem 0; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .builder-section.builder-giftsblock-section { padding: 1.5rem 1rem; }
  .builder-giftsblock-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
}

.builder-fixed-footer {
  background: #333333;
  padding: 1.75rem 1.5rem;
  cursor: default;
}
.builder-fixed-footer-inner {
  max-width: 1080px;
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  row-gap: 0.35rem;
  text-align: left;
}
.builder-fixed-footer-logo { display: flex; align-items: center; justify-content: center; gap: 0.4rem; }
.builder-fixed-footer-madewith { font-size: 0.75rem; font-weight: 500; color: #FFFFFF; }
.builder-fixed-footer-word { height: 22px; width: auto; object-fit: contain; }
.builder-fixed-footer-divider { font-size: 0.75rem; color: #FFFFFF; }
.builder-fixed-footer-text p, .builder-fixed-footer-text span {
  display: block;
  font-size: 0.75rem;
  line-height: 1.6;
  color: #FFFFFF;
}

/* Sobrepõe o lockdown global de <footer> (RODAPÉ light/dark acima) — o rodapé fixo do builder é sempre #333333/#FFFFFF */
.builder-wrap .builder-fixed-footer,
.builder-canvas .builder-fixed-footer {
  background-color: #333333 !important;
  background: #333333 !important;
  border-top: none !important;
  color: #FFFFFF !important;
}
.builder-wrap .builder-fixed-footer-madewith,
.builder-canvas .builder-fixed-footer-madewith,
.builder-wrap .builder-fixed-footer-divider,
.builder-canvas .builder-fixed-footer-divider,
.builder-wrap .builder-fixed-footer-text p,
.builder-canvas .builder-fixed-footer-text p,
.builder-wrap .builder-fixed-footer-text span,
.builder-canvas .builder-fixed-footer-text span {
  color: #FFFFFF !important;
}

.builder-mobile-menu-root { position: absolute; inset: 0; pointer-events: none; }

.builder-mobile-menu-backdrop {
  display: block;
  position: fixed; inset: 0;
  background: rgba(24,24,27,0.45);
  z-index: 29;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
.builder-mobile-menu-backdrop.is-open { opacity: 1; pointer-events: auto; }

.builder-mobile-menu-drawer {
  display: flex;
  flex-direction: column;
  position: fixed; top: 0; right: 0; bottom: 0;
  width: 78%; max-width: 300px;
  background: var(--header-bg-solid, var(--header-bg, #fff));
  z-index: 30;
  box-shadow: -8px 0 24px rgba(16,24,40,0.18);
  padding: 1.25rem;
  transform: translateX(100%);
  transition: transform .25s ease;
  pointer-events: none;
}
.builder-mobile-menu-drawer.is-open { transform: translateX(0); pointer-events: auto; }

.builder-mobile-menu-drawer-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; flex-shrink: 0; }
.builder-mobile-menu-close {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; flex-shrink: 0;
  background: none; border: none; padding: 0; cursor: pointer; color: var(--header-text);
}
.builder-mobile-menu-close svg { width: 18px; height: 18px; }
.builder-mobile-menu-drawer-links { display: flex; flex-direction: column; gap: 0.1rem; margin-bottom: 1.5rem; }
.builder-mobile-menu-drawer-links a {
  font-size: 0.9375rem; color: var(--header-text);
  padding: 0.8rem 0.15rem;
  border-bottom: 1px solid rgba(0,0,0,0.07);
}
.builder-mobile-menu-drawer-cta { text-align: center; margin-top: auto; }

.builder-empty-canvas {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 4rem 1.5rem; color: #A1A1AA; text-align: center;
}
.builder-empty-canvas svg { width: 34px; height: 34px; color: #D4D4D8; }
.builder-empty-canvas p { font-size: 0.8125rem; max-width: 260px; }

.builder-elements-list.is-empty-section {
  flex-direction: column;
  gap: 0.6rem;
  min-height: 220px;
  padding: 3.5rem 1.5rem;
  text-align: center;
}
.builder-elements-list.is-empty-section svg { width: 32px; height: 32px; color: #D4D4D8; }
.builder-elements-list.is-empty-section span { max-width: 260px; line-height: 1.5; font-size: 0.8125rem; }

.builder-section {
  position: relative;
  z-index: 0;
  border: 1px dashed transparent;
  padding: var(--bx-section-spacing) 0;
  /* seção ocupa a tela cheia e centraliza o conteúdo */
  min-height: 100vh;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#site-builder-root .builder-section:hover { border-color: #CFE1F0; }
.builder-section.is-selected { border-color: var(--primary-blue); border-style: solid; }
.builder-section-bg-image {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: -1;
  pointer-events: none;
}
.builder-section-overlay {
  position: absolute; inset: 0;
  z-index: -1;
  pointer-events: none;
}
.builder-section-fade {
  position: absolute; left: 0; right: 0;
  height: 45%;
  z-index: -1;
  pointer-events: none;
}
.builder-section-fade-top { top: 0; }
.builder-section-fade-bottom { bottom: 0; }

/* carrossel de imagens de fundo: camadas empilhadas alternam com fade */
.builder-section-bg-carousel-layer { opacity: 0; }
.builder-section[data-bg-carousel-count="2"] .builder-section-bg-carousel-layer:nth-child(1) { animation: bgCarousel2Layer1 10s infinite; }
.builder-section[data-bg-carousel-count="2"] .builder-section-bg-carousel-layer:nth-child(2) { animation: bgCarousel2Layer2 10s infinite; }
.builder-section[data-bg-carousel-count="3"] .builder-section-bg-carousel-layer:nth-child(1) { animation: bgCarousel3Layer1 15s infinite; }
.builder-section[data-bg-carousel-count="3"] .builder-section-bg-carousel-layer:nth-child(2) { animation: bgCarousel3Layer2 15s infinite; }
.builder-section[data-bg-carousel-count="3"] .builder-section-bg-carousel-layer:nth-child(3) { animation: bgCarousel3Layer3 15s infinite; }
@keyframes bgCarousel2Layer1 { 0%, 40% { opacity: 1; } 50%, 90% { opacity: 0; } 100% { opacity: 1; } }
@keyframes bgCarousel2Layer2 { 0%, 40% { opacity: 0; } 50%, 90% { opacity: 1; } 100% { opacity: 0; } }
@keyframes bgCarousel3Layer1 { 0%, 26% { opacity: 1; } 33%, 93% { opacity: 0; } 100% { opacity: 1; } }
@keyframes bgCarousel3Layer2 { 0%, 26% { opacity: 0; } 33%, 60% { opacity: 1; } 66%, 100% { opacity: 0; } }
@keyframes bgCarousel3Layer3 { 0%, 60% { opacity: 0; } 66%, 93% { opacity: 1; } 100% { opacity: 0; } }

/* container: conteúdo centralizado, largura máxima e padding lateral de segurança */
.builder-section > .builder-columns-row {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

/* mobile: seção usa altura dinâmica da viewport e padding lateral menor */
.builder-canvas[data-device="mobile"] .builder-section { min-height: 100dvh; }
.builder-canvas[data-device="mobile"] .builder-section > .builder-columns-row { max-width: 100%; padding: 0 16px; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .builder-section { min-height: 100dvh; }
  .builder-section > .builder-columns-row { max-width: 100%; padding: 0 16px; }
}

/* botões: altura mínima de toque no mobile */
.builder-canvas[data-device="mobile"] .be-button { min-height: 44px; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .be-button { min-height: 44px; }
}

.builder-elements-list > * { margin-bottom: 1rem; }
.builder-elements-list > *:last-child { margin-bottom: 0; }

.builder-block-toolbar {
  position: absolute;
  top: -13px;
  right: 10px;
  display: none;
  align-items: center;
  gap: 1px;
  background: var(--primary-blue);
  border-radius: 6px;
  padding: 2px;
  z-index: 12;
  box-shadow: 0 3px 10px rgba(0,0,0,0.18);
}
.builder-section:hover:not(:has(:is(.builder-elements-list:not(.is-empty), .builder-element):hover)) > .builder-block-toolbar,
.builder-section.is-selected > .builder-block-toolbar,
.builder-column:hover:not(:has(:is(.builder-elements-list:not(.is-empty), .builder-element):hover)) > .builder-block-toolbar,
.builder-column.is-selected > .builder-block-toolbar,
.builder-element:hover:not(:has(:is(.builder-column, .builder-element):hover)) > .builder-block-toolbar,
.builder-element.is-selected > .builder-block-toolbar { display: flex; }
/* Primeira seção (capa): não tem nada acima dela no canvas, então a barrinha
   de ferramentas (mover/excluir) não pode nascer negativa senão fica cortada
   pelo overflow:hidden do frame do canvas. */
.builder-section.is-first-content-section > .builder-block-toolbar { top: 10px; }

/* Botão de Adicionar/Alterar imagem da primeira seção (a capa do convite) */
.builder-first-section-cover-btn {
  position: absolute;
  inset: 0;
  margin: auto;
  width: fit-content;
  height: fit-content;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.65rem 1.15rem;
  border-radius: 999px;
  background: rgba(0,0,0,0.5);
  border: 1px solid rgba(255,255,255,0.4);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  z-index: 6;
  backdrop-filter: blur(3px);
  transition: opacity .15s ease, background-color .15s ease;
}
.builder-first-section-cover-btn:hover { background: rgba(0,0,0,0.7); }
.builder-first-section-cover-btn svg { width: 15px; height: 15px; }
.builder-section.is-first-content-section.has-cover-image .builder-first-section-cover-btn { opacity: 0; }
.builder-section.is-first-content-section.has-cover-image:hover .builder-first-section-cover-btn { opacity: 1; }

.builder-block-toolbar-tag {
  font-size: 0.625rem; font-weight: 700; color: #fff; padding: 0 0.4rem; text-transform: uppercase; letter-spacing: .03em;
}
.builder-block-toolbar button {
  width: 22px; height: 22px; display: flex; align-items: center; justify-content: center;
  color: #EBF4FF; background: transparent; border: none; border-radius: 4px; cursor: pointer;
}
.builder-block-toolbar button svg { width: 12px; height: 12px; }
.builder-block-toolbar button:hover { background: rgba(255,255,255,0.18); color: #fff; }
.builder-block-toolbar button.el-drag-handle { cursor: grab; }

.be-text-format-toolbar {
  position: fixed;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 1px;
  background: #18181B;
  border-radius: 8px;
  padding: 4px;
  z-index: 200;
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}
.be-text-format-toolbar[hidden] { display: none; }
.be-text-format-toolbar button {
  width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;
  color: #EBF4FF; background: transparent; border: none; border-radius: 5px; cursor: pointer;
}
.be-text-format-toolbar button svg { width: 14px; height: 14px; }
.be-text-format-toolbar button:hover { background: rgba(255,255,255,0.18); color: #fff; }
.be-text-format-toolbar button.active { background: #333333; color: #fff; }

.builder-columns-row { display: flex; align-items: stretch; position: relative; }

.builder-column {
  position: relative;
  min-width: 40px;
  border: 1px dashed transparent;
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  container-type: inline-size;
}
#site-builder-root .builder-column:hover { border-color: #E3D5C0; background: rgba(225,155,60,0.03); }
.builder-column.is-selected { border-color: #B45309; border-style: solid; }

.builder-column-resizer {
  width: 9px;
  margin: 0 -5px;
  flex-shrink: 0;
  cursor: col-resize;
  position: relative;
  z-index: 5;
}
.builder-column-resizer::after {
  content: '';
  position: absolute; top: 0; bottom: 0; left: 4px; width: 1px;
  background: var(--border-light);
}
.builder-column-resizer:hover::after,
.builder-column-resizer.is-dragging::after { background: var(--primary-blue); width: 2px; left: 3.5px; }

.builder-elements-list { min-height: 32px; flex: 1; display: flex; flex-direction: column; }
.builder-elements-list.is-empty {
  border: 1.5px dashed var(--border-light);
  border-radius: 8px;
  min-height: 64px;
  align-items: center; justify-content: center; display: flex;
  color: #A1A1AA; font-size: 0.75rem;
}
/* A primeira seção da página (capa/topo do convite) nunca fica emoldurada,
   mesmo vazia — evita a "borda branca" ao redor dela no construtor. */
.builder-elements-list.is-empty.is-empty-first-section {
  border: none;
  border-radius: 0;
}
/* Primeira seção já com imagem de fundo definida: não é realmente "vazia" —
   sem placeholder, sem borda, sem padding/min-height reservado, para a
   imagem de fundo aparecer limpa, sem nada sobreposto. */
.builder-elements-list.is-empty.is-empty-has-bg {
  border: none;
  border-radius: 0;
  padding: 0;
  min-height: 300px;
  background: transparent;
}

.builder-element {
  position: relative;
  border: 1px dashed transparent;
}
#site-builder-root .builder-element:hover { border-color: #D4D4D8; cursor: grab; }
#site-builder-root .builder-element:hover [contenteditable="true"] { cursor: text; }
#site-builder-root .builder-element:active { cursor: grabbing; }
.builder-element.is-selected { border-color: #D4D4D8; }
.builder-element.sortable-ghost { opacity: 0.35; background: #EBF4FF; }
.builder-element.sortable-drag { opacity: 0.9; }


/* -------------------- Conteúdo dos elementos (be-*) -------------------- */

.builder-canvas {
  --bx-primary: var(--primary-blue);
  --bx-radius: 10px;
  --bx-section-spacing: 2.5rem;
}

.be-text, .be-heading, .be-subtitle { outline: none; min-height: 1.4em; overflow-wrap: break-word; word-break: break-word; }
.be-text p { margin: 0 0 1em; }
.be-text p:last-child { margin-bottom: 0; }
.builder-element, .builder-column { overflow-wrap: break-word; }
.builder-canvas p, .builder-canvas span, .builder-canvas a, .builder-canvas button,
.builder-canvas input, .builder-canvas select, .builder-canvas textarea, .builder-canvas label {
  font-family: inherit;
}
.be-heading { font-weight: 700; }
.builder-canvas h1.be-heading { font-family: var(--h1-font-family, inherit); font-weight: var(--h1-font-weight, 700); font-style: var(--h1-font-style, normal); text-decoration: var(--h1-text-decoration, none); }
.builder-canvas h2.be-heading { font-family: var(--h2-font-family, inherit); font-weight: var(--h2-font-weight, 700); font-style: var(--h2-font-style, normal); text-decoration: var(--h2-text-decoration, none); }
.builder-canvas h3.be-heading { font-family: var(--h3-font-family, inherit); font-weight: var(--h3-font-weight, 700); font-style: var(--h3-font-style, normal); text-decoration: var(--h3-text-decoration, none); }
.builder-canvas h4.be-heading { font-family: var(--h4-font-family, inherit); font-weight: var(--h4-font-weight, 700); font-style: var(--h4-font-style, normal); text-decoration: var(--h4-text-decoration, none); }
.builder-canvas h5.be-heading { font-family: var(--h5-font-family, inherit); font-weight: var(--h5-font-weight, 700); font-style: var(--h5-font-style, normal); text-decoration: var(--h5-text-decoration, none); }
.be-subtitle { color: #71717A; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; font-size: 0.8125rem; }
.be-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; text-decoration: none; cursor: default;
  background: var(--bx-primary); color: #fff; padding: 0.7rem 1.4rem; border-radius: var(--bx-radius); font-weight: 600; font-size: 0.875rem;
}
.be-button span { outline: none; }
.be-link { outline: none; cursor: default; color: var(--bx-primary); font-weight: 600; text-decoration: underline; }
.be-icon { display: inline-flex; color: var(--bx-primary); }
.be-icon svg { width: 100%; height: 100%; }
.be-image { display: block; max-width: 100%; }
.be-video-embed { position: relative; width: 100%; padding-top: 56.25%; background: #18181B; border-radius: 8px; overflow: hidden; }
.be-video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.be-video-empty {
  display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 0.4rem;
  padding: 2.5rem 1rem; background: #F4F4F5; border-radius: 8px; color: #A1A1AA; font-size: 0.75rem;
}
.be-video-empty svg { width: 40px; height: 40px; flex-shrink: 0; }
.be-separator { border: none; border-top: 1px solid #E4E4E7; }
.be-spacer { width: 100%; }
.be-list { padding-left: 1.25rem; list-style-position: outside; }
ol.be-list { list-style-type: decimal; }
ul.be-list:not(.be-list-custom-marker) { list-style-type: disc; }
.be-list li { outline: none; margin-bottom: 0.35rem; }
.be-list.be-list-custom-marker { list-style: none; padding-left: 0; }
.be-list.be-list-custom-marker li { display: flex; align-items: flex-start; gap: 0.4rem; }
.be-list-marker { display: inline-flex; align-items: center; gap: 0.25rem; flex-shrink: 0; color: var(--bx-primary); line-height: 1.5; }
.be-list-marker svg { width: 14px; height: 14px; flex-shrink: 0; }
.be-list-marker-num { font-weight: 600; font-size: 0.9em; }
.be-list-item-text { flex: 1; min-width: 0; }
.be-social { display: flex; gap: 0.6rem; flex-wrap: wrap; width: 100%; }
.be-social a {
  width: 34px; height: 34px; border-radius: 999px; background: #18181B; color: #fff;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.be-social svg { width: 15px; height: 15px; }
.be-gallery { display: grid; gap: 0.6rem; }
.be-gallery img { width: 100%; height: 130px; object-fit: cover; border-radius: 8px; }
.be-carousel { display: flex; gap: 0.75rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 0.4rem; }
.be-carousel img { scroll-snap-align: start; flex: 0 0 240px; height: 150px; object-fit: cover; border-radius: 8px; }
.be-testimonials { display: grid; gap: 1rem; }
.be-testimonial-card { border: 1px solid var(--border-card); border-radius: 10px; padding: 1.1rem; }
.be-testimonial-quote { font-size: 0.8125rem; color: #3F3F46; outline: none; margin-bottom: 0.75rem; line-height: 1.55; }
.be-testimonial-person { display: flex; align-items: center; gap: 0.6rem; }
.be-testimonial-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; background: #E4E4E7; flex-shrink: 0; }
.be-testimonial-name { font-size: 0.8125rem; font-weight: 700; color: #18181B; }
.be-testimonial-role { font-size: 0.6875rem; color: #A1A1AA; }

.be-testimonials-carousel { position: relative; padding: 0 2.5rem; }
.be-testimonials-track { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; }
.be-testimonials-track .be-testimonial-card { scroll-snap-align: start; flex: 0 0 calc((100% - (var(--carousel-visible, 1) - 1) * 1rem) / var(--carousel-visible, 1)); }
.be-carousel-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid var(--border-card); color: #52525B; cursor: pointer;
  box-shadow: var(--shadow-soft);
}
.be-carousel-arrow svg { width: 16px; height: 16px; }
.be-carousel-arrow-prev { left: 0; }
.be-carousel-arrow-prev svg { transform: rotate(90deg); }
.be-carousel-arrow-next { right: 0; }
.be-carousel-arrow-next svg { transform: rotate(-90deg); }
.be-carousel-dots { display: flex; justify-content: center; gap: 0.4rem; margin-top: 0.85rem; }
.be-carousel-dot { width: 7px; height: 7px; border-radius: 50%; background: #D4D4D8; border: none; padding: 0; cursor: pointer; }
.be-carousel-dot.active { background: var(--bx-primary, #333333); }

/* Carrossel: formato "Setas" */
.be-carousel-arrows-wrap { position: relative; }
.be-carousel-arrows-track { overflow-x: hidden; scroll-behavior: smooth; }
.be-carousel-arrow-sm { width: 24px; height: 24px; }
.be-carousel-arrow-sm svg { width: 11px; height: 11px; }

/* Carrossel: formato "Automático" (rola sozinho, pausa no hover) */
.be-carousel-auto {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.be-carousel-auto-track {
  display: flex; gap: 0.75rem; width: max-content;
  animation: be-carousel-auto-scroll var(--carousel-auto-duration, 16s) linear infinite;
}
.be-carousel-auto-track img { flex: 0 0 240px; height: 150px; object-fit: cover; border-radius: 8px; }
.be-carousel-auto:hover .be-carousel-auto-track { animation-play-state: paused; }
@keyframes be-carousel-auto-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.be-testimonials-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.be-testimonials-marquee-track {
  display: flex; gap: 1rem; width: max-content;
  animation: be-marquee-scroll var(--marquee-duration, 20s) linear infinite;
}
.be-testimonials-marquee-track .be-testimonial-card { flex: 0 0 260px; }
.be-testimonials-marquee:hover .be-testimonials-marquee-track { animation-play-state: paused; }
@keyframes be-marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.be-form-preview { border: 1px solid var(--border-card); border-radius: 10px; padding: 1.25rem; max-width: 420px; }
.be-form-preview-title { font-size: 0.875rem; font-weight: 700; margin-bottom: 0.9rem; }
.be-form-preview .form-field-preview-line,
.be-form-preview .form-field-preview-box { pointer-events: none; margin-bottom: 0.8rem; }
.be-map-embed { width: 100%; height: 260px; border: 0; border-radius: 8px; }
.be-map-empty {
  display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 0.4rem;
  height: 200px; background: #F4F4F5; border-radius: 8px; color: #A1A1AA; font-size: 0.75rem; text-align: center; padding: 1rem;
}
.be-map-empty svg { width: 40px; height: 40px; flex-shrink: 0; }
.be-custom-html { min-height: 24px; }

/* -------------------- Inspector -------------------- */

.inspector-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.9rem 1rem;
  border-bottom: 1px solid var(--border-card);
  position: sticky; top: 0; background: #fff; z-index: 2;
}
.inspector-editing-label { font-size: 0.75rem; font-weight: 700; color: #A1A1AA; }

.builder-breadcrumb-back {
  display: flex; align-items: center; gap: 0.4rem;
  background: none; border: none; padding: 0; cursor: pointer;
  color: #3F3F46; font-weight: 700; font-size: 0.8125rem;
}
.builder-breadcrumb-back svg { width: 15px; height: 15px; }
.builder-breadcrumb-back:hover { color: var(--primary-blue); }

.inspector-tabs { display: flex; gap: 0.25rem; position: sticky; top: 45px; z-index: 2; background: #fff; padding: 0.6rem; margin: 0.65rem 0.65rem 0; border: 1px solid var(--border-card); border-radius: 10px; }
.inspector-tab {
  flex: 1;
  padding: 0.5rem 0.5rem;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: #71717A;
  background: none;
  border: none;
  border-radius: 7px;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.inspector-tab:hover { color: #3F3F46; }
.inspector-tab.active { color: #18181B; background: #ebf4ff; }

.inspector-body { padding: 1rem; display: flex; flex-direction: column; gap: 1rem; overflow-y: auto; scrollbar-gutter: stable; flex: 1; min-height: 0; }
.inspector-empty { padding: 2rem 1.25rem; text-align: center; color: #A1A1AA; font-size: 0.8125rem; }
.inspector-empty svg { width: 28px; height: 28px; color: #D4D4D8; margin: 0 auto 0.6rem; }

.inspector-field { display: flex; flex-direction: column; gap: 0.35rem; }
.inspector-field-label,
.inspector-field-label-plain {
  font-size: 0.8125rem; font-weight: 400; color: #333333; text-transform: none; letter-spacing: normal;
  display: flex; align-items: center; justify-content: space-between;
}
.inspector-row { display: flex; gap: 0.5rem; }
.inspector-row .inspector-field { flex: 1; min-width: 0; }
.inspector-input, .inspector-select, .inspector-textarea {
  width: 100%; border: 1px solid var(--border-light); border-radius: 8px; padding: 0.45rem 0.6rem;
  font-size: 0.8125rem; background: #fff; color: #18181B;
}
.url-slug-field {
  display: flex; align-items: center; gap: 0.3rem;
  border: 1px solid var(--border-light); border-radius: 8px; padding: 0 0.6rem;
  background: #fff;
}
.url-slug-field:focus-within { border-color: var(--primary-blue); }
.url-slug-prefix, .url-slug-suffix { font-size: 0.75rem; color: #A1A1AA; white-space: nowrap; flex-shrink: 0; }
.url-slug-input { flex: 1; min-width: 0; border: none; padding: 0.5rem 0; font-size: 0.8125rem; background: transparent; color: #18181B; }
.url-slug-input:focus { outline: none; }
.url-slug-status { width: 16px; height: 16px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.url-slug-status svg { width: 14px; height: 14px; }
.url-slug-status.is-available svg { color: #16A34A; }
.url-slug-status.is-taken svg { color: #DC2626; }
.url-slug-error { color: #DC2626 !important; }

.info-tooltip-wrap { position: relative; display: inline-flex; }
.info-tooltip-trigger {
  width: 15px; height: 15px; padding: 0; border: none; background: none; cursor: help;
  display: flex; align-items: center; justify-content: center; color: #A1A1AA; flex-shrink: 0;
}
.info-tooltip-trigger svg { width: 15px; height: 15px; }
.info-tooltip-trigger:hover, .info-tooltip-trigger:focus-visible { color: #71717A; }
.info-tooltip-bubble {
  position: absolute; top: calc(100% + 8px); right: -6px; z-index: 30;
  width: 210px; padding: 0.6rem 0.75rem; border-radius: 8px;
  background: #18181B; color: #fff; font-size: 0.6875rem; font-weight: 400; line-height: 1.5;
  text-transform: none; letter-spacing: normal; text-align: left;
  opacity: 0; pointer-events: none; transform: translateY(-4px);
  transition: opacity .15s ease, transform .15s ease;
  box-shadow: 0 8px 24px rgba(16,24,40,0.16);
}
.info-tooltip-bubble::after {
  content: ''; position: absolute; bottom: 100%; right: 10px;
  border: 5px solid transparent; border-bottom-color: #18181B;
}
.info-tooltip-wrap:hover .info-tooltip-bubble,
.info-tooltip-trigger:focus-visible + .info-tooltip-bubble { opacity: 1; pointer-events: auto; transform: translateY(0); }
.info-tooltip-link { color: #93C5FD; text-decoration: underline; }
.info-tooltip-link:hover { color: #BFDBFE; }
.inspector-select {
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  padding-right: 2rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 9 7 7 7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.6rem center;
  background-size: 13px 13px;
  cursor: pointer;
}
.inspector-textarea { min-height: 90px; resize: vertical; font-family: ui-monospace, monospace; font-size: 0.75rem; }
.inspector-textarea-plain { min-height: 64px; font-family: 'Inter', -apple-system, sans-serif; font-size: 0.8125rem; }
.inspector-input:focus, .inspector-select:focus, .inspector-textarea:focus { outline: none; border-color: var(--primary-blue); }
.inspector-color-row { display: flex; align-items: center; gap: 0.5rem; }
#builder-elements-panel input[type="color"] { width: 30px; height: 30px; border: 1px solid var(--border-light); border-radius: 7px; padding: 2px; background: #fff; cursor: pointer; flex-shrink: 0; }
.inspector-field-row { flex-direction: row; align-items: center; justify-content: space-between; gap: 0.5rem; }
.inspector-field-row .inspector-field-label { margin: 0; }
.overlay-color-controls { display: flex; align-items: center; gap: 0.4rem; }
.overlay-color-remove {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 20px; height: 20px;
  border: none; border-radius: 999px;
  background: #F4F4F5; color: #71717A; cursor: pointer;
}
.overlay-color-remove svg { width: 10px; height: 10px; }
.overlay-color-remove:hover { background: #E4E4E7; color: #18181B; }

.color-alpha-field { position: relative; }
.color-alpha-swatch {
  width: 30px; height: 30px; flex-shrink: 0;
  border: 1px solid var(--border-light); border-radius: 7px; padding: 0; cursor: pointer;
  background-color: #fff;
}
.color-alpha-swatch.is-empty {
  display: flex; align-items: center; justify-content: center;
  border: 1px dashed var(--border-card);
}
.color-alpha-swatch-empty-icon {
  font-size: 15px; line-height: 1; color: #A1A1AA; font-weight: 600;
}
.color-alpha-popover {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 20;
  display: flex; flex-direction: column; gap: 0.6rem;
  width: 180px; padding: 0.75rem;
  background: #fff; border: 1px solid var(--border-card); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(16,24,40,0.16);
}
.color-alpha-top-row { display: flex; gap: 0.4rem; }
.color-alpha-native { width: 34px; height: 34px; flex-shrink: 0; border: 1px solid var(--border-light); border-radius: 7px; padding: 2px; background: #fff; cursor: pointer; }
.color-alpha-hex {
  flex: 1; min-width: 0; height: 34px; border: 1px solid var(--border-light); border-radius: 7px;
  padding: 0 0.5rem; font-size: 0.8125rem; font-family: ui-monospace, monospace; text-transform: uppercase;
  color: #18181B; background: #fff;
}
.color-alpha-hex:focus { outline: none; border-color: var(--primary-blue); }
.color-alpha-copy-btn {
  width: 34px; height: 34px; flex-shrink: 0; border: 1px solid var(--border-light); border-radius: 7px;
  background: #fff; color: #71717A; display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background-color .15s ease, color .15s ease;
}
.color-alpha-copy-btn svg { width: 16px; height: 16px; }
.color-alpha-copy-btn:hover { background: #F4F4F5; color: #18181B; }
.color-alpha-range-row { display: flex; flex-direction: column; gap: 0.35rem; }
.color-alpha-range-label { font-size: 0.75rem; color: #71717A; }
.color-alpha-range { width: 100%; }

.bg-carousel-thumbs { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
.bg-carousel-thumb {
  position: relative;
  width: 56px; height: 56px; flex-shrink: 0;
  border-radius: 8px; overflow: hidden;
}
.bg-carousel-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bg-carousel-thumb-empty {
  display: flex; align-items: center; justify-content: center;
  border: 1.5px dashed var(--border-light);
  color: #A1A1AA; cursor: pointer;
}
.bg-carousel-thumb-empty:hover { border-color: var(--primary-blue); background: #F4F8FC; color: var(--primary-blue); }
.bg-carousel-thumb-empty svg { width: 16px; height: 16px; }
.bg-carousel-thumb-empty input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.bg-carousel-thumb-remove {
  position: absolute; top: 2px; right: 2px;
  display: flex; align-items: center; justify-content: center;
  width: 16px; height: 16px;
  border: none; border-radius: 999px;
  background: rgba(24,24,27,0.65); color: #fff; cursor: pointer;
}
.bg-carousel-thumb-remove svg { width: 8px; height: 8px; }
.bg-carousel-thumb-remove:hover { background: rgba(24,24,27,0.85); }

.menu-order-list { display: flex; flex-direction: column; gap: 0.4rem; }
.menu-order-row {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.35rem;
  border: 1px solid var(--border-card);
  border-radius: 8px;
  background: #fff;
}
.menu-order-row .inspector-input { flex: 1; min-width: 0; }
.menu-order-row .el-drag-handle {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 22px; height: 22px;
  color: #A1A1AA; background: none; border: none; padding: 0; cursor: grab;
}
.menu-order-row .el-drag-handle svg { width: 15px; height: 15px; }
.menu-order-row .el-drag-handle:active { cursor: grabbing; }
.menu-order-row.sortable-ghost { opacity: 0.4; background: #EBF4FF; }
.menu-order-row-delete {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 22px; height: 22px;
  color: #A1A1AA; background: none; border: none; padding: 0; cursor: pointer;
}
.menu-order-row-delete svg { width: 15px; height: 15px; }
.menu-order-row-delete:hover { color: #DC2626; }
.inspector-segmented { display: flex; border: 1px solid var(--border-light); border-radius: 8px; overflow: hidden; }
.inspector-segmented button {
  flex: 1; padding: 0.4rem 0.3rem; background: #fff; border: none; border-left: 1px solid var(--border-light);
  color: #71717A; cursor: pointer; display: flex; align-items: center; justify-content: center;
  font-size: 0.75rem; font-weight: 600; line-height: 1.2;
}
.inspector-segmented button:first-child { border-left: none; }
.inspector-segmented button svg { width: 14px; height: 14px; }
.inspector-segmented button.active { background: var(--primary-blue); color: #fff; }
.inspector-range-row { display: flex; align-items: center; gap: 0.6rem; }
.inspector-range-row input[type="range"] { flex: 1; }
#builder-elements-panel input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  border-radius: 999px;
  background: #F3F3F3;
  outline: none;
  cursor: pointer;
}
#builder-elements-panel input[type="range"]::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 999px;
  background: #F3F3F3;
}
#builder-elements-panel input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  margin-top: -6px;
  border-radius: 50%;
  background: #ebf4ff;
  border: 1px solid #C7D9F0;
  box-shadow: 0 1px 2px rgba(16,24,40,0.15);
  cursor: pointer;
}
#builder-elements-panel input[type="range"]::-moz-range-track {
  height: 4px;
  border-radius: 999px;
  background: #F3F3F3;
}
#builder-elements-panel input[type="range"]::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #ebf4ff;
  border: 1px solid #C7D9F0;
  box-shadow: 0 1px 2px rgba(16,24,40,0.15);
  cursor: pointer;
}
.inspector-range-value { font-size: 0.75rem; color: #71717A; width: 44px; text-align: right; flex-shrink: 0; }
.inspector-section-title { font-size: 0.75rem; font-weight: 700; color: #18181B; padding-top: 0.3rem; border-top: 1px solid var(--border-card); margin-top: 0.2rem; }
.inspector-section-title:first-child { border-top: none; margin-top: 0; padding-top: 0; }
.inspector-section-title-row { display: flex; align-items: center; justify-content: space-between; }

.inspector-accordion-title {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  padding-bottom: 0.3rem;
  user-select: none;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #71717A;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.inspector-accordion-title:hover { color: var(--primary-blue); }
.inspector-accordion-chevron {
  display: inline-flex;
  flex-shrink: 0;
  margin-left: auto;
  color: #A1A1AA;
  transition: transform .15s ease;
}
.inspector-accordion-chevron svg { width: 13px; height: 13px; }
.inspector-accordion-title:not(.is-collapsed) .inspector-accordion-chevron { transform: rotate(180deg); }
.inspector-accordion-body { display: flex; flex-direction: column; gap: 1rem; }
.inspector-accordion-title.is-collapsed + .inspector-accordion-body { display: none; }

.margin-sync-toggle {
  width: 22px; height: 22px; display: flex; align-items: center; justify-content: center;
  border-radius: 5px; color: #A1A1AA; background: none; border: none; cursor: pointer;
}
.margin-sync-toggle svg { width: 13px; height: 13px; }
.margin-sync-toggle:hover { background: #F4F4F5; color: #52525B; }
.margin-sync-toggle.active { background: var(--primary-blue); color: #fff; }
.margin-sync-toggle.active:hover { background: var(--primary-blue-hover); }
.inspector-hint { font-size: 0.6875rem; color: #A1A1AA; line-height: 1.4; }

.inspector-list-item { border: 1px solid var(--border-card); border-radius: 8px; padding: 0.6rem; display: flex; flex-direction: column; gap: 0.4rem; position: relative; }
.inspector-list-item-remove { position: absolute; top: 0.4rem; right: 0.4rem; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; color: #A1A1AA; background: none; border: none; cursor: pointer; border-radius: 5px; z-index: 1; }
.inspector-list-item-remove svg { width: 13px; height: 13px; }
.inspector-list-item-remove:hover { background: #FEE2E2; color: #B91C1C; }
#list-items-editor { display: flex; flex-direction: column; gap: 0.5rem; }
.inspector-list-item-row { display: flex; align-items: center; gap: 0.4rem; }
.inspector-list-item-row .inspector-input, .inspector-list-item-row .inspector-select { flex: 1; min-width: 0; }
.inspector-list-item-remove-inline {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 28px; height: 28px; color: #A1A1AA; background: none; border: none; cursor: pointer; border-radius: 6px;
}
.inspector-list-item-remove-inline svg { width: 13px; height: 13px; }
.inspector-list-item-remove-inline:hover { background: #FEE2E2; color: #B91C1C; }

.image-upload-zone {
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem;
  height: 96px;
  border: 1.5px dashed var(--border-light);
  border-radius: 10px;
  background: #FAFAFA;
  cursor: pointer;
  overflow: hidden;
  transition: border-color .15s ease, background-color .15s ease;
}
.image-upload-zone:hover, .image-upload-zone.is-dragover { border-color: var(--primary-blue); background: #F4F8FC; }
.image-upload-zone-input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.image-upload-zone-plus {
  width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid var(--border-light); color: var(--primary-blue);
}
.image-upload-zone-plus svg { width: 13px; height: 13px; }
.image-upload-zone-text { font-size: 0.6875rem; color: #A1A1AA; text-align: center; padding: 0 0.6rem; line-height: 1.3; }
.image-upload-zone-preview { width: 100%; height: 100%; object-fit: cover; }

.header-logo-picker-wrap { position: relative; }
.header-logo-picker {
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem;
  width: 100%; height: 90px;
  border: 1.5px dashed var(--border-light); border-radius: 10px;
  background: #FAFAFA;
  cursor: pointer; overflow: hidden;
  transition: border-color .15s ease, background-color .15s ease;
}
.header-logo-picker:hover, .header-logo-picker.is-dragover { border-color: var(--primary-blue); background: #F4F8FC; }
.header-logo-picker.has-image {
  border-style: solid; border-color: var(--border-light);
  background: repeating-conic-gradient(#F4F4F5 0% 25%, #fff 0% 50%) 0 0 / 16px 16px;
}
.header-logo-picker-preview { max-width: 100%; max-height: 100%; object-fit: contain; }
.header-logo-picker-overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.3rem;
  background: rgba(24,24,27,0.55); color: #fff; font-size: 0.6875rem; font-weight: 700;
  opacity: 0; transition: opacity .15s ease;
}
.header-logo-picker-overlay svg { width: 18px; height: 18px; }
.header-logo-picker:hover .header-logo-picker-overlay { opacity: 1; }
.image-upload-zone:hover .header-logo-picker-overlay { opacity: 1; }
.header-logo-picker-remove {
  position: absolute; top: 6px; right: 6px; z-index: 2;
  width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(24,24,27,0.75); color: #fff; border: none; cursor: pointer;
}
.header-logo-picker-remove svg { width: 12px; height: 12px; }
.header-logo-picker-remove:hover { background: rgba(24,24,27,0.92); }

.logo-adjust-modal-card { max-width: 480px; position: relative; }
.logo-adjust-modal-close {
  position: absolute; top: 1rem; right: 1rem;
  width: 26px; height: 26px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #F4F4F5; color: #52525B; border: none; cursor: pointer;
}
.logo-adjust-modal-close svg { width: 13px; height: 13px; }
.logo-adjust-modal-close:hover { background: #E4E4E7; }
.logo-adjust-modal-frame {
  width: 100%; height: 160px;
  background: repeating-conic-gradient(#F4F4F5 0% 25%, #fff 0% 50%) 0 0 / 16px 16px;
  border: 1px solid var(--border-light); border-radius: 10px;
  overflow: hidden;
  cursor: grab;
  touch-action: none;
  position: relative;
}
.logo-adjust-modal-frame.is-dragging { cursor: grabbing; }
.logo-adjust-modal-img { width: 100%; height: 100%; object-fit: contain; transform-origin: center; pointer-events: none; }
.logo-adjust-modal-controls { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.9rem; flex-wrap: wrap; }
.logo-adjust-modal-zoom-label { font-size: 0.8125rem; font-weight: 700; color: #3F3F46; flex-shrink: 0; }
.logo-adjust-modal-zoom-btn {
  width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: #F4F4F5; border: none; color: #3F3F46; font-size: 1rem; font-weight: 700; cursor: pointer; line-height: 1;
}
.logo-adjust-modal-zoom-btn:hover { background: #E4E4E7; }
.logo-adjust-modal-range { flex: 1; min-width: 80px; }
.inspector-add-btn {
  display: flex; align-items: center; justify-content: center; gap: 0.35rem;
  border: 1px dashed var(--border-light); border-radius: 8px; padding: 0.5rem; color: var(--primary-blue);
  font-size: 0.75rem; font-weight: 700; background: #F8FAFC; cursor: pointer;
}
.inspector-add-btn:hover { background: #EBF4FF; }
.inspector-add-btn svg { width: 13px; height: 13px; }
.inspector-toggle-row { display: flex; align-items: center; justify-content: space-between; }
.inspector-toggle-row .inspector-field-label { margin: 0; }


.builder-el-block-preview { display: flex; gap: 2px; width: 30px; height: 17px; }
.builder-el-block-preview span { background: #CBD8E5; border-radius: 2px; }

/* -------------------- Dark mode -------------------- */

body[data-theme="dark"] .builder-wrap { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .builder-toolbar { background: #181D24 !important; border-bottom-color: #404040 !important; }
body[data-theme="dark"] .builder-page-name { color: #FFFFFF !important; }
body[data-theme="dark"] .builder-page-name:hover { background: #333333 !important; }
body[data-theme="dark"] .builder-page-name:focus { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .kanban-list-dropdown { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .kanban-list-dropdown-item { color: #FFFFFF !important; }
body[data-theme="dark"] .kanban-list-dropdown-item:hover,
body[data-theme="dark"] .kanban-list-dropdown-item.active { background: #333333 !important; }
body[data-theme="dark"] .builder-device-toggle { background: #333333 !important; }
body[data-theme="dark"] .builder-device-btn { color: #A1A1AA !important; }
body[data-theme="dark"] .builder-device-btn.active { background: #4b4b4b !important; color: #fff !important; }
body[data-theme="dark"] .builder-tool-btn { color: #A1A1AA !important; }
body[data-theme="dark"] .builder-tool-btn:hover:not(:disabled) { background: #333333 !important; }
body[data-theme="dark"] .builder-toolbar-divider { background: #404040 !important; }
body[data-theme="dark"] .builder-elements-panel { background: #1c1c1c !important; border-right-color: #404040 !important; }
body[data-theme="dark"] .builder-panel-tabs { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .builder-panel-tab:hover { color: #D4D4D8 !important; }
body[data-theme="dark"] .builder-panel-tab.active { color: #FFFFFF !important; background: #181D24 !important; }
body[data-theme="dark"] .builder-el-item { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .builder-el-item span { color: #D4D4D8 !important; }
body[data-theme="dark"] .builder-el-item svg { color: #A1A1AA !important; }
body[data-theme="dark"] .builder-el-item:hover { border-color: #ebf4ff !important; background: #333333 !important; }
body[data-theme="dark"] .builder-canvas-viewport { background: #1c1c1c !important; }
body[data-theme="dark"] .builder-canvas { background: #252525 !important; box-shadow: 0 0 0 1px #404040 !important; }
body[data-theme="dark"] .builder-fixed-header { border-bottom-color: #404040 !important; }
body[data-theme="dark"] .inspector-header { background: #1c1c1c !important; border-bottom-color: #404040 !important; }
body[data-theme="dark"] .inspector-tabs { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .inspector-tab:hover { color: #D4D4D8 !important; }
body[data-theme="dark"] .inspector-tab.active { color: #18181B !important; background: #ebf4ff !important; }
body[data-theme="dark"] .builder-breadcrumb-back { color: #D4D4D8 !important; }
body[data-theme="dark"] .builder-breadcrumb-back:hover { color: #ebf4ff !important; }
body[data-theme="dark"] .inspector-input, body[data-theme="dark"] .inspector-select, body[data-theme="dark"] .inspector-textarea { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] .url-slug-field { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .url-slug-input { color: #FFFFFF !important; }
body[data-theme="dark"] .inspector-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A1A1AA' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 9 7 7 7-7'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 0.6rem center !important; background-size: 13px 13px !important; }
body[data-theme="dark"] .inspector-segmented { border-color: #404040 !important; }
body[data-theme="dark"] .inspector-segmented button { background: #252525 !important; border-left-color: #404040 !important; color: #A1A1AA !important; }
body[data-theme="dark"] .inspector-list-item { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .menu-order-row { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .menu-order-row .el-drag-handle { color: #71717A !important; }
body[data-theme="dark"] .image-upload-zone { background: #1c1c1c !important; border-color: #404040 !important; }
body[data-theme="dark"] .image-upload-zone:hover, body[data-theme="dark"] .image-upload-zone.is-dragover { border-color: #ebf4ff !important; background: #252525 !important; }
body[data-theme="dark"] .image-upload-zone-plus { background: #333333 !important; border-color: #404040 !important; color: #ebf4ff !important; }
body[data-theme="dark"] .header-logo-picker { border-color: #404040 !important; background: #1c1c1c !important; }
body[data-theme="dark"] .header-logo-picker:hover { border-color: #ebf4ff !important; background: #252525 !important; }
body[data-theme="dark"] .logo-adjust-modal-frame { border-color: #404040 !important; }
body[data-theme="dark"] .logo-adjust-modal-zoom-label { color: #D4D4D8 !important; }
body[data-theme="dark"] .logo-adjust-modal-close { background: #333333 !important; color: #D4D4D8 !important; }
body[data-theme="dark"] .inspector-add-btn { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .inspector-section-title, body[data-theme="dark"] .inspector-field-label { color: #D4D4D8 !important; }
body[data-theme="dark"] .inspector-accordion-chevron { color: #71717A !important; }
body[data-theme="dark"] .margin-sync-toggle:hover { background: #333333 !important; color: #D4D4D8 !important; }
body[data-theme="dark"] .margin-sync-toggle.active { background: #ebf4ff !important; color: #122c3f !important; }
body[data-theme="dark"] .be-heading, body[data-theme="dark"] .be-text { color: #FFFFFF !important; }
body[data-theme="dark"] .builder-narrow-notice { background: #3f2d0a !important; border-color: #6b4e0f !important; color: #FDE68A !important; }




/* -------------------- Toggle switch (usado em Vídeo autoplay/loop/controles) -------------------- */
.settings-switch { position: relative; display: inline-block; width: 40px; height: 24px; flex-shrink: 0; }
.settings-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.settings-switch-track {
  position: absolute;
  inset: 0;
  background: #D4D4D8;
  border-radius: 999px;
  transition: background-color .15s ease;
}
.settings-switch-track::before {
  content: '';
  position: absolute;
  width: 18px;
  height: 18px;
  left: 3px;
  top: 3px;
  background: #fff;
  border-radius: 999px;
  transition: transform .15s ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.settings-switch input:checked ~ .settings-switch-track { background: var(--primary-blue); }
.settings-switch input:checked ~ .settings-switch-track::before { transform: translateX(16px); }
#builder-elements-panel .settings-switch input:checked ~ .settings-switch-track { background: #ebf4ff; }
body[data-theme="dark"] .settings-switch-track { background: #4b4b4b !important; }

/* Toggle "Exibir nomes" no popup de mesa: branco quando off, azul clarinho quando on */
#floorplan-show-names-switch .settings-switch-track { background: #FFFFFF; border: 1px solid #E4E4E7; }
#floorplan-show-names-switch input:checked ~ .settings-switch-track { background: #EBF4FF; border-color: #EBF4FF; }

/* -------------------- Presente Coletivo / Cotas (Drawer Adicionar Presente) -------------------- */
/* Expande/recolhe os campos de cotas com animação suave ao ligar o switch */
#gift-crowdfunding-fields {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .35s ease, opacity .25s ease;
}
#gift-crowdfunding-fields.open { max-height: 900px; opacity: 1; }

.gift-chip {
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid #E4E4E7;
  background: #fff;
  color: #52525B;
  font-size: 11px;
  font-weight: 700;
  font-family: var(--font-sans, inherit);
  cursor: pointer;
  transition: all .15s ease;
  white-space: nowrap;
}
.gift-chip:hover { border-color: #D4D4D8; background: #FAFAFA; }
.gift-chip.active { border-color: var(--primary-blue); background: rgba(83, 123, 174, 0.1); color: var(--primary-blue); }

/* -------------------- Página Legal (Termos de Uso / Política de Privacidade) -------------------- */
/* Texto vindo do editor rico do Admin (CMS → Legal) — ver openLegalDocPage em app.js */
/* O !important é obrigatório aqui: a regra de marca "h1, h2, .font-title"
   fixa font-weight: 400 !important, e sem isto todo h2 do documento sai com
   peso de texto corrido — mais largo que o h3 logo abaixo, mas mais fraco. */
.legal-doc-body h2 { font-size: 1.25rem; font-weight: 800 !important; color: #18181b; margin: 2rem 0 0.75rem; }
.legal-doc-body h3 { font-size: 1.05rem; font-weight: 700; color: #18181b; margin: 1.5rem 0 0.5rem; }
.legal-doc-body p { color: #3f3f46; line-height: 1.75; margin-bottom: 1rem; text-align: justify; }
.legal-doc-body ul, .legal-doc-body ol { color: #3f3f46; line-height: 1.75; margin: 0 0 1rem 1.25rem; text-align: justify; }
.legal-doc-body ul { list-style: disc; }
.legal-doc-body ol { list-style: decimal; }
.legal-doc-body li { margin-bottom: 0.375rem; }
.legal-doc-body a { color: #537bae; text-decoration: underline; font-weight: 600; }
.legal-doc-body blockquote { border-left: 3px solid #e4e4e7; padding-left: 1rem; color: #52525b; font-style: italic; margin: 1.25rem 0; }
.legal-doc-body strong, .legal-doc-body b { font-weight: 700; color: #18181b; }

/* Um <b> envolvendo o título inteiro é redundante, mas acontece. Sem esta
   regra ele rebaixava o peso de 800 para 700 e, numa fonte variável, isso
   faz o título parecer menor que os irmãos do mesmo nível. */
.legal-doc-body h2 :is(b, strong),
.legal-doc-body h3 :is(b, strong),
.legal-doc-body h4 :is(b, strong) { font-weight: inherit; }

/* -------------------- Ajustes Love: convite de página única (sem header/menu fixo) -------------------- */
.builder-wrap {
  /* Acentos do construtor (botões, seleção, abas) na mesma cor usada no B2B: #333333 */
  --primary-blue: #333333;
  --primary-blue-hover: #222222;
  border: none;
  border-top: 1px solid var(--border-card);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
  margin: 0;
  height: calc(100vh - var(--navbar-height-desktop));
}
.builder-body { height: auto; flex: 1; min-height: 0; }
.builder-section { min-height: 0; justify-content: flex-start; padding: 1.5rem 0; }
.builder-canvas[data-device="mobile"] .builder-section { min-height: 0; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) { .builder-section { min-height: 0; } }
.builder-fixed-header, .builder-mobile-menu-root { display: none !important; }

.builder-canvas-end-dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: 1rem 1.25rem;
  padding: 1.75rem 1rem;
  border: 1.5px dashed var(--border-light);
  border-radius: 10px;
  color: #A1A1AA;
  text-align: center;
  font-size: 0.75rem;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.builder-canvas-end-dropzone svg { width: 22px; height: 22px; }
.builder-canvas-end-dropzone .sortable-ghost {
  width: 100%;
  height: 40px;
  border-radius: 8px;
  background-color: #F8FAFC;
  border: 1.5px dashed var(--primary-blue);
}

/* -------------------- Toast "Alterações salvas" (igual ao B2B) -------------------- */
#builder-toast.toast {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  background: #18181B;
  color: #fff;
  padding: 0.875rem 1.25rem;
  border-radius: 12px;
  font-size: 0.875rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
  z-index: 200;
  transform: translateY(16px);
  opacity: 0;
  pointer-events: none;
  transition: all .25s cubic-bezier(0.16, 1, 0.3, 1);
}
#builder-toast.toast.show {
  transform: translateY(0);
  opacity: 1;
}

/* -------------------- Novos elementos: Contagem regressiva & Data -------------------- */
.be-countdown { display: flex; flex-direction: column; align-items: center; gap: 0.6rem; padding: 0.5rem 0; }
.be-countdown-label { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; color: #3F3F46; margin: 0; outline: none; }
.be-countdown-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.4rem; width: 100%; max-width: 280px; }
.be-countdown-unit { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.2rem; padding: 0.5rem 0.25rem; border-radius: 10px; background: #FAFAFA; border: 1px solid var(--border-card); }
.be-countdown-number { font-size: 1.05rem; font-weight: 700; color: #18181B; line-height: 1; }
.be-countdown-unit-label { font-size: 0.5625rem; text-transform: uppercase; letter-spacing: 0.05em; color: #A1A1AA; font-weight: 600; }
.be-countdown-empty-hint { font-size: 0.6875rem; color: #A1A1AA; margin: 0; }
.be-date-display { display: flex; flex-direction: column; align-items: center; gap: 0.2rem; padding: 0.5rem 0; }
.be-date-display-date { font-size: 0.9375rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: #18181B; margin: 0; }
.be-date-display-time { font-size: 0.75rem; color: #71717A; margin: 0; }
.be-date-display-empty { font-style: italic; color: #A1A1AA; }
.be-date-display-rule { width: 70%; max-width: 320px; height: 1px; background-color: #18181B; opacity: 0.4; margin-bottom: 0.5rem; }
.be-date-display-time-row { display: flex; align-items: center; justify-content: center; gap: 0.75rem; width: 70%; max-width: 320px; font-size: 0.75rem; color: #71717A; margin: 0; }
.be-date-display-time-row .be-date-display-line { flex: 1; height: 1px; background-color: #71717A; opacity: 0.4; }
.be-date-display-time-text { white-space: nowrap; }
body[data-theme="dark"] .be-countdown-label, body[data-theme="dark"] .be-countdown-number, body[data-theme="dark"] .be-date-display-date { color: #FFFFFF !important; }
body[data-theme="dark"] .be-countdown-unit { background: #252525 !important; border-color: #404040 !important; }

/* ==========================================================================
   CAIXINHAS EDITÁVEIS NA PRÉVIA (GLOBAL DESKTOP & MOBILE)
   Fundo 100% transparente com pontilhado cinza claro e lápis apontado para a esquerda
   ========================================================================== */
.editable-live-box {
  outline: none !important;
  position: relative !important;
  min-height: 1.6em !important;
  min-width: 120px !important;
  display: inline-block !important;
  max-width: 100% !important;
  padding: 4px 10px !important;
  border-radius: 6px !important;
  border: 1.5px dashed #D4D4D8 !important;
  background-color: transparent !important;
  cursor: text !important;
  word-break: break-word !important;
  transition: all 0.2s ease !important;
}

/* Ícone de lápis em cinza claro apontando para a esquerda */
.editable-live-box::after {
  content: " ✎";
  display: inline-block;
  margin-left: 6px;
  font-size: 13px;
  font-style: normal;
  font-weight: normal;
  color: #A1A1AA !important;
  opacity: 0.85;
  transform: scaleX(-1); /* Apontado para a esquerda */
  transition: all 0.2s ease;
  vertical-align: middle;
  pointer-events: none;
}

/* Botão Excluir (✕) dos Blocos Dinâmicos de Texto */
.live-block-wrapper {
  position: relative;
  display: inline-block;
  max-width: 100%;
  margin: 0.25rem 0;
}

.btn-delete-text-block {
  position: absolute !important;
  top: -8px !important;
  right: -6px !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 4px !important;
  background: transparent !important;
  background-color: transparent !important;
  color: #71717A !important;
  border: none !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  cursor: pointer !important;
  z-index: 30 !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  opacity: 0.65;
}

.live-block-wrapper:hover .btn-delete-text-block {
  opacity: 0.9 !important;
}

.btn-delete-text-block:hover {
  background-color: rgba(239, 68, 68, 0.12) !important;
  color: #EF4444 !important;
  transform: scale(1.15) !important;
  opacity: 1 !important;
}

body[data-theme="dark"] .btn-delete-text-block {
  color: #A1A1AA !important;
}

body[data-theme="dark"] .btn-delete-text-block:hover {
  background-color: rgba(248, 113, 113, 0.2) !important;
  color: #F87171 !important;
}

/* As 4 Caixas Vazias com o Botão + (EXATAMENTE a mesma largura de 310px) */
.invite-slot-box-empty {
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  width: 100% !important;
  max-width: 310px !important;
  border: 1.5px dashed #D4D4D8 !important;
  border-radius: 6px !important;
  background-color: rgba(250, 250, 250, 0.45) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s ease !important;
  position: relative !important;
  padding: 0 12px !important;
  box-sizing: border-box !important;
  cursor: grab;
  margin: 0 auto !important;
}

.invite-slot-box-empty:hover {
  border-color: #537bae !important;
  background-color: rgba(250, 250, 250, 0.85) !important;
}

/* Quando preenchido com texto: a caixa em volta tem EXATAMENTE a mesma largura (310px) em todos os 4 slots */
.invite-slot-wrapper .live-block-wrapper {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 310px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

.invite-slot-wrapper .editable-live-box {
  width: 100% !important;
  min-width: 100% !important;
  max-width: 310px !important;
  box-sizing: border-box !important;
  text-align: center !important;
  padding: 6px 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Reordenação por Arrastar (Drag & Drop) */
.invite-slot-wrapper {
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.invite-slot-wrapper.is-dragging {
  opacity: 0.35 !important;
  transform: scale(0.97) !important;
}

.invite-slot-wrapper.drag-over {
  border-radius: 8px;
  background-color: rgba(83, 123, 174, 0.08) !important;
  box-shadow: 0 0 0 2px #537bae !important;
}

/* Ícone de Drag (Arrastar) à Esquerda de Cada Campo - 6 Pontinhos conforme imagem de referência */
.slot-drag-handle {
  position: absolute !important;
  left: -28px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 22px !important;
  height: 26px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #71717A !important;
  opacity: 0.35 !important;
  cursor: grab !important;
  transition: opacity 0.2s ease, color 0.2s ease, transform 0.15s ease !important;
  z-index: 25 !important;
  user-select: none !important;
  touch-action: none !important;
}

.invite-slot-wrapper:hover .slot-drag-handle,
.invite-slot-box-empty:hover .slot-drag-handle,
.live-block-wrapper:hover .slot-drag-handle {
  opacity: 0.9 !important;
  color: #333333 !important;
}

.slot-drag-handle:hover {
  opacity: 1 !important;
  color: #333333 !important;
  transform: translateY(-50%) scale(1.15) !important;
}

.slot-drag-handle:active {
  cursor: grabbing !important;
}

body[data-theme="dark"] .slot-drag-handle {
  color: #A1A1AA !important;
}

body[data-theme="dark"] .invite-slot-wrapper:hover .slot-drag-handle,
body[data-theme="dark"] .invite-slot-box-empty:hover .slot-drag-handle,
body[data-theme="dark"] .live-block-wrapper:hover .slot-drag-handle {
  color: #FFFFFF !important;
}

body[data-theme="dark"] .slot-drag-handle:hover {
  color: #FFFFFF !important;
}

.editable-live-box:hover {
  border-color: #537bae !important;
  background-color: transparent !important;
}

.editable-live-box:hover::after {
  color: #537bae !important;
  opacity: 1;
  transform: scaleX(-1) scale(1.15);
}

/* Modo de Edição Ativo (Foco / Clique) */
.editable-live-box:focus,
.editable-live-box.is-editing {
  border-color: #537bae !important;
  border-style: solid !important;
  background-color: transparent !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(83, 123, 174, 0.18) !important;
}

.editable-live-box:focus::after,
.editable-live-box.is-editing::after {
  color: #537bae !important;
  opacity: 1;
  transform: scaleX(-1);
}

/* Placeholder elegante e semi-transparente para campos vazios ou apagados */
.editable-live-box:empty::before,
.editable-live-box[data-empty="true"]::before {
  content: attr(data-placeholder) !important;
  color: #A1A1AA !important;
  opacity: 0.65 !important;
  font-style: italic !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  pointer-events: none !important;
  cursor: text !important;
  display: inline-block !important;
  width: 100% !important;
}

.editable-live-box:focus:empty::before,
.editable-live-box:focus[data-empty="true"]::before {
  opacity: 0.45 !important;
}

body.editor-split-mode .dashboard-main-area > footer {
  display: none !important;
}

/* ==========================================================================
   CONVIDADOS, PRESENTES & B2B FULLSCREEN (Barra de Busca Grudada no Topo e Sidebar)
   ========================================================================== */
body.rsvp-mode .dashboard-main-area,
body.b2b-mode .dashboard-main-area,
body.gifts-mode .dashboard-main-area,
body.wallet-mode .dashboard-main-area,
body.page-mode .dashboard-main-area {
  margin-left: calc(var(--rail-width-desktop) + var(--drawer-width-desktop)) !important;
  padding-top: var(--navbar-height-desktop) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  min-height: 100vh !important;
  background-color: #FFFFFF !important;
}

body.rsvp-mode .dashboard-main-area.full-width,
body.b2b-mode .dashboard-main-area.full-width,
body.gifts-mode .dashboard-main-area.full-width,
body.wallet-mode .dashboard-main-area.full-width,
body.page-mode .dashboard-main-area.full-width {
  margin-left: var(--rail-width-desktop) !important;
}

/* No mobile o rail vira barra inferior (não ocupa coluna à esquerda) — sem recuo aqui */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  body.rsvp-mode .dashboard-main-area,
  body.b2b-mode .dashboard-main-area,
  body.gifts-mode .dashboard-main-area,
  body.wallet-mode .dashboard-main-area,
  body.page-mode .dashboard-main-area,
  body.rsvp-mode .dashboard-main-area.full-width,
  body.b2b-mode .dashboard-main-area.full-width,
  body.gifts-mode .dashboard-main-area.full-width,
  body.wallet-mode .dashboard-main-area.full-width,
  body.page-mode .dashboard-main-area.full-width {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-top: calc(var(--navbar-height-mobile) + 1.25rem) !important;
    padding-bottom: calc(var(--bottom-bar-height-mobile) + 2rem) !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  body.rsvp-mode .dashboard-main-area > footer,
  body.b2b-mode .dashboard-main-area > footer,
  body.gifts-mode .dashboard-main-area > footer,
  body.wallet-mode .dashboard-main-area > footer,
  body.page-mode .dashboard-main-area > footer {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

body.rsvp-mode .dashboard-main-area > .dashboard-content-wrapper,
body.b2b-mode .dashboard-main-area > .dashboard-content-wrapper,
body.gifts-mode .dashboard-main-area > .dashboard-content-wrapper,
body.wallet-mode .dashboard-main-area > .dashboard-content-wrapper,
body.page-mode .dashboard-main-area > .dashboard-content-wrapper {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-top: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

body.rsvp-mode .dashboard-main-area > .dashboard-content-wrapper > *,
body.b2b-mode .dashboard-main-area > .dashboard-content-wrapper > *,
body.gifts-mode .dashboard-main-area > .dashboard-content-wrapper > *,
body.wallet-mode .dashboard-main-area > .dashboard-content-wrapper > *,
body.page-mode .dashboard-main-area > .dashboard-content-wrapper > * {
  margin-top: 0 !important;
}

body.b2b-mode #tab-b2b,
body.gifts-mode #tab-gifts,
body.wallet-mode #tab-wallet,
body.page-mode #tab-legal-doc,
body.page-mode #tab-notifications {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

body.rsvp-mode .dashboard-main-area > footer,
body.b2b-mode .dashboard-main-area > footer,
body.gifts-mode .dashboard-main-area > footer,
body.wallet-mode .dashboard-main-area > footer,
body.page-mode .dashboard-main-area > footer {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 2.5rem !important;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
  padding-top: 3rem !important;
  padding-bottom: 2rem !important;
  box-sizing: border-box !important;
}

/* Grade de Cards para Meus Presentes: Máximo de 4 presentes por linha com pequeno gap entre os presentes */
#host-gifts-grid,
body.gifts-mode #host-gifts-grid {
  display: grid !important;
  grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  border: none !important;
  background-color: transparent !important;
  width: 100% !important;
}

@media (min-width: 640px) {
  #host-gifts-grid,
  body.gifts-mode #host-gifts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.25rem !important;
  }
}

@media (min-width: 1024px) {
  #host-gifts-grid,
  body.gifts-mode #host-gifts-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.25rem !important;
  }
}

@media (min-width: 1280px) {
  #host-gifts-grid,
  body.gifts-mode #host-gifts-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 1.25rem !important;
  }
}

@media (min-width: 1536px) {
  #host-gifts-grid,
  body.gifts-mode #host-gifts-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 1.25rem !important;
  }
}

/* Chat Full-Bleed Messenger (Sem Rodapé, Tela Completa) */
body.b2b-chat-mode .dashboard-main-area {
  margin-left: calc(var(--rail-width-desktop, 80px) + var(--drawer-width-desktop, 240px)) !important;
  padding-top: var(--navbar-height-desktop, 76px) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  height: 100vh !important;
  min-height: 100vh !important;
  max-height: 100vh !important;
  overflow: hidden !important;
  background-color: #FFFFFF;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
}

body:not([data-theme="dark"]).b2b-chat-mode .dashboard-main-area {
  background-color: #FFFFFF !important;
}

body.b2b-chat-mode .dashboard-main-area.full-width {
  margin-left: var(--rail-width-desktop, 80px) !important;
  width: calc(100% - var(--rail-width-desktop, 80px)) !important;
  max-width: calc(100% - var(--rail-width-desktop, 80px)) !important;
}

body.b2b-chat-mode .dashboard-main-area > .dashboard-content-wrapper {
  height: calc(100vh - var(--navbar-height-desktop, 76px)) !important;
  max-height: calc(100vh - var(--navbar-height-desktop, 76px)) !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
  flex: 1 1 0% !important;
  overflow: hidden !important;
}

body.b2b-chat-mode .dashboard-main-area > .dashboard-content-wrapper > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.b2b-chat-mode #tab-b2b {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
  flex: 1 1 0% !important;
  overflow: hidden !important;
}

body.b2b-chat-mode #b2b-explore-view,
body.b2b-chat-mode #b2b-contracted-view,
body.b2b-chat-mode #b2b-insurance-view {
  display: none !important;
}

body.b2b-chat-mode #b2b-top-search-bar {
  flex-shrink: 0 !important;
}

body.b2b-chat-mode #b2b-messages-view {
  height: 100% !important;
  max-height: 100% !important;
  width: 100% !important;
  flex: 1 1 0% !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body.b2b-chat-mode .dashboard-main-area > footer,
body.b2b-chat-mode footer {
  display: none !important;
}

@media (max-width: 767px) {
  body.b2b-chat-mode .dashboard-main-area {
    margin-left: 0 !important;
    width: 100% !important;
    padding-top: var(--navbar-height-desktop, 76px) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* ==========================================================================
   SLIDE-OVER DRAWERS (Ocultos estritamente por padrão quando fechados)
   ========================================================================== */
.guest-details-drawer,
.guest-add-drawer,
.gift-drawer,
.budget-expense-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 520px;
  background: #ffffff;
  z-index: 60;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: -10px 0 35px rgba(0, 0, 0, 0.15);
  display: none !important;
  flex-direction: column;
}

.guest-add-drawer.open,
.guest-details-drawer.open,
.gift-drawer.open,
.budget-expense-drawer.open {
  display: flex !important;
  transform: translateX(0);
}

.guest-remove-btn {
  width: 100%;
  padding: 0.6rem;
  border: 1px solid var(--border-card);
  border-radius: 10px;
  background: #FAFAFA;
  color: #71717A;
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
}
.guest-remove-btn:hover { background: #F4F4F5; border-color: #D4D4D8; }

.guest-drawer-backdrop,
.gift-drawer-backdrop,
.budget-expense-drawer-backdrop {
  display: none !important;
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  backdrop-filter: blur(4px);
  z-index: 55;
  transition: opacity 0.3s ease;
}

.guest-drawer-backdrop.open,
.gift-drawer-backdrop.open,
.budget-expense-drawer-backdrop.open {
  display: block !important;
}

/* Observações — histórico de comentários, mesmo padrão do "Comentários e
   atividade" do quadro (B2B/agenda.html). */
.guest-drawer-comment-card { background: #fff; border: 1px solid #E4E7EB; border-radius: 10px; padding: 0.75rem 0.85rem; }
.guest-drawer-comment-box { display: flex; flex-direction: column; gap: 0.5rem; }
.guest-drawer-comment-input {
  width: 100% !important; resize: none !important; border: none !important; border-radius: 0 !important;
  padding: 0 !important; font-family: inherit; font-size: 0.8125rem !important; color: #18181B !important;
  background: transparent !important; min-height: 2.2rem; box-shadow: none !important;
}
.guest-drawer-comment-input:focus { outline: none !important; }
.guest-drawer-comment-actions { display: flex; justify-content: flex-end; margin-top: 0.2rem; padding-top: 0.5rem; border-top: 1px solid #E4E7EB; }
.guest-drawer-comment-actions .btn-primary { padding: 0.5rem 1.1rem; font-size: 0.8125rem; }

.guest-drawer-comments-list { display: flex; flex-direction: column; gap: 1rem; }
.guest-comment-empty { font-size: 0.8125rem; color: #A1A1AA; text-align: center; padding: 0.5rem 0; }
.guest-comment-item { display: flex; align-items: flex-start; gap: 0.6rem; }
.guest-comment-avatar {
  width: 28px; height: 28px; border-radius: 999px; flex-shrink: 0;
  background: #333333; color: #fff; font-size: 0.6875rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.guest-comment-content { flex: 1; min-width: 0; }
.guest-comment-author { font-size: 0.8125rem; color: #3F3F46; margin: 0; line-height: 1.5; }
.guest-comment-author strong { color: #18181B; }
.guest-comment-bubble {
  position: relative;
  background: #F8FAFC; border: 1px solid #E4E7EB; border-radius: 8px;
  padding: 0.6rem 1.75rem 0.6rem 0.7rem; font-size: 0.8125rem; color: #18181B; line-height: 1.5;
  white-space: pre-wrap; margin-top: 0.3rem;
}
.guest-comment-delete {
  position: absolute; top: 0.35rem; right: 0.35rem;
  width: 18px; height: 18px; border: none; background: transparent;
  color: #A1A1AA; font-size: 0.875rem; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center; border-radius: 4px;
}
.guest-comment-delete:hover { color: #B91C1C; background: #FEE2E2; }
.guest-comment-time { font-size: 0.6875rem; color: #A1A1AA; margin: 0.3rem 0 0; }

/* =========================================================
   CONTROLE DESLIZANTE MODERNO (Soft Inset Track + 3D Disc Thumb)
/* =========================================================
   CONTROLE DESLIZANTE SLIM (Track Suave + Bolinha Azul #537bae)
   ========================================================= */
input[type="range"].love-modern-slider {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  background: #E5E7EB !important;
  border-radius: 9999px !important;
  outline: none;
  border: none;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08) !important;
  cursor: pointer;
  margin: 6px 0;
  padding: 0;
  transition: all 0.2s ease;
}

/* Webkit (Chrome, Safari, Edge) */
input[type="range"].love-modern-slider::-webkit-slider-runnable-track {
  width: 100%;
  height: 6px;
  background: #E5E7EB !important;
  border-radius: 9999px !important;
  border: none;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08) !important;
}

input[type="range"].love-modern-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #537bae !important;
  border: 2.5px solid #FFFFFF !important;
  box-shadow: 0 2px 6px rgba(83, 123, 174, 0.45), 0 1px 3px rgba(0, 0, 0, 0.15) !important;
  cursor: grab;
  margin-top: -6px; /* (6px track - 18px thumb) / 2 = -6px */
  transition: transform 0.15s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.15s ease, box-shadow 0.15s ease;
}

input[type="range"].love-modern-slider::-webkit-slider-thumb:hover {
  background: #416799 !important;
  transform: scale(1.15);
  box-shadow: 0 3px 8px rgba(83, 123, 174, 0.6), 0 1px 3px rgba(0, 0, 0, 0.2) !important;
}

input[type="range"].love-modern-slider::-webkit-slider-thumb:active {
  cursor: grabbing;
  background: #2563EB !important;
  transform: scale(0.95);
  box-shadow: 0 1px 4px rgba(83, 123, 174, 0.5) !important;
}

/* Firefox */
input[type="range"].love-modern-slider::-moz-range-track {
  width: 100%;
  height: 6px;
  background: #E5E7EB !important;
  border-radius: 9999px !important;
  border: none;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08) !important;
}

input[type="range"].love-modern-slider::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #537bae !important;
  border: 2.5px solid #FFFFFF !important;
  box-shadow: 0 2px 6px rgba(83, 123, 174, 0.45), 0 1px 3px rgba(0, 0, 0, 0.15) !important;
  cursor: grab;
  transition: transform 0.15s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.15s ease, box-shadow 0.15s ease;
}

input[type="range"].love-modern-slider::-moz-range-thumb:hover {
  background: #416799 !important;
  transform: scale(1.15);
  box-shadow: 0 3px 8px rgba(83, 123, 174, 0.6) !important;
}

input[type="range"].love-modern-slider::-moz-range-thumb:active {
  cursor: grabbing;
  background: #2563EB !important;
  transform: scale(0.95);
}

/* ==========================================================================
   Botões Salvar Alterações e Adicionar Presente (#333333 no Light Mode)
   ========================================================================== */
#btn-save-edit-site,
.btn-save-appearance,
#btn-save-mobile-edit,
#btn-host-add-gift,
.btn-host-add-gift {
  background-color: #333333 !important;
  color: #FFFFFF !important;
}

#btn-save-edit-site:hover,
.btn-save-appearance:hover,
#btn-save-mobile-edit:hover,
#btn-host-add-gift:hover,
.btn-host-add-gift:hover {
  background-color: #222222 !important;
}

/* ==========================================================================
   COMPONENTE UNIVERSAL DE ABAS DE NAVEGAÇÃO (LOVE TABS COMPONENT)
   Reutilizável em toda a plataforma.
   - Linha horizontal de texto (links ou botões) com espaçamento uniforme.
   - Indicador de aba ativa (underline):
       position: absolute;
       bottom: -6px; (logo abaixo do texto da aba)
       width: 100%; (largura dinâmica com base no texto)
       height: 3px; (espessura reta, sólida)
       background-color: #27394f;
       sem curva no final (border-radius: 0px).
   ========================================================================== */
.love-tabs-nav {
  display: flex !important;
  align-items: center !important;
  gap: 1.5rem !important; /* mesmo espaçamento do B2B (Meus Produtos) */
  overflow-x: auto !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  padding-bottom: 0 !important;
  margin-bottom: 1.5rem !important;
  border-bottom: 1px solid #EAEAEA !important;
  position: relative !important;
  width: 100% !important;
}

.love-tabs-nav::-webkit-scrollbar {
  display: none !important;
}

/* Item de Aba (Link ou Botão) — mesmo padrão do B2B (Meus Produtos: .category-tab) */
.love-tab-item,
button.love-tab-item {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding-bottom: 0.625rem !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  background: transparent !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 0.8125rem !important; /* mesmo tamanho do B2B */
  line-height: 1.25rem !important;
  font-weight: 600 !important;
  color: #71717A !important; /* zinc-500 */
  cursor: pointer !important;
  white-space: nowrap !important;
  user-select: none !important;
  transition: all 0.15s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  margin-bottom: 0 !important;
}

.love-tab-item:hover {
  color: #3F3F46 !important; /* mesmo tom do B2B no hover */
  border-bottom-color: transparent !important;
}

/* Vence o reset global de botões (border-radius:12px) para a linha ficar reta, sem curva nas pontas */
#tables-sectors-nav button.love-tab-item.love-tab-item.love-tab-item,
#rsvp-status-tabs button.love-tab-item.love-tab-item.love-tab-item {
  border-radius: 0 !important;
}

/* Aba Ativa - mesma cor primária da plataforma (#333333, igual ao B2B logado) */
.love-tab-item.active,
button.love-tab-item.active {
  color: #333333 !important;
  font-weight: 600 !important;
  border-bottom: 2px solid #333333 !important;
  border-bottom-color: #333333 !important;
  z-index: 10 !important;
}

.love-tab-item::after,
button.love-tab-item::after {
  display: none !important;
}

/* Cards de Compartilhamento Social (WhatsApp, Facebook, Twitter (X)) */
.share-social-card {
  background-color: #FAFAFA !important;
  border: 1px solid #E5E7EB !important;
  color: #27394f !important;
  transition: all 0.2s ease-in-out;
}

.share-social-card:hover {
  background-color: #F4F4F5 !important;
  border-color: #27394f !important;
  color: #1d2b3c !important;
}

.share-social-card svg {
  color: #27394f !important;
  fill: currentColor !important;
  width: 24px !important;
  height: 24px !important;
  max-width: 24px !important;
  max-height: 24px !important;
  transition: transform 0.2s ease, color 0.2s ease;
}

.share-social-card:hover svg {
  color: #1d2b3c !important;
  transform: scale(1.08);
}

.share-social-card span {
  color: #27394f !important;
  transition: color 0.2s ease;
}

.share-social-card:hover span {
  color: #1d2b3c !important;
}

/* Botão Salvar Local (Modal de Local) - Cor #27394f */
#btn-modal-save-venue {
  background-color: #27394f !important;
  color: #FFFFFF !important;
}

#btn-modal-save-venue:hover {
  background-color: #1d2b3c !important;
}

/* Botão Enviar Mensagem no Chat - mesma cor do sidebar */
#b2b-chat-send-btn,
#chat-send-btn {
  background-color: #181D24 !important;
  color: #FFFFFF !important;
}

#b2b-chat-send-btn:hover,
#chat-send-btn:hover {
  background-color: #0F1216 !important;
}

/* Tabela de Orçamento, Extrato e Grade de Presentes Full-Bleed (Preenchimento total 100% da tela sem margens laterais) */
.budget-table-full-bleed,
.gifts-grid-full-bleed {
  margin-left: -2rem !important;
  margin-right: -2rem !important;
  width: calc(100% + 4rem) !important;
  max-width: calc(100% + 4rem) !important;
}

/* RSVP and Wallet mode: use standard lateral margin (2rem) for tables */
body.rsvp-mode .budget-table-full-bleed,
body.wallet-mode .budget-table-full-bleed {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

@media (max-width: 639px) {
  .budget-table-full-bleed,
  .gifts-grid-full-bleed {
    margin-left: -1.5rem !important;
    margin-right: -1.5rem !important;
    width: calc(100% + 3rem) !important;
    max-width: calc(100% + 3rem) !important;
  }

  /* RSVP and Wallet mode: adjust mobile margins */
  body.rsvp-mode .budget-table-full-bleed,
  body.wallet-mode .budget-table-full-bleed {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

  margin-left: -2rem !important;
  margin-right: -2rem !important;
  width: calc(100% + 4rem) !important;
  max-width: calc(100% + 4rem) !important;
}

/* Extrato: use standard lateral margin (2rem) */
.statement-table-full-bleed {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

}

@media (max-width: 639px) {
  .budget-table-full-bleed,
  .statement-table-full-bleed,
  .gifts-grid-full-bleed {
    margin-left: -1.5rem !important;
    margin-right: -1.5rem !important;
    width: calc(100% + 3rem) !important;
    max-width: calc(100% + 3rem) !important;
  }
}

/* Botão Adicionar Despesa (Orçamento) - mesma cor primária da plataforma (#333333) */
#btn-open-add-expense,
#btn-submit-add-expense {
  background-color: #333333 !important;
  color: #FFFFFF !important;
}

#btn-open-add-expense:hover,
#btn-submit-add-expense:hover {
  background-color: #222222 !important;
}

/* Balão de mensagem enviado pelo usuário da direita (Fundo #ebf4ff + Texto na cor primária #333333) */
.chat-bubble-user-glass {
  background: #ebf4ff !important;
  background-color: #ebf4ff !important;
  border: 1px solid #d4e5ff !important;
  box-shadow: 0 1px 3px rgba(24, 59, 84, 0.08) !important;
  color: #333333 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  text-shadow: none !important;
}

.chat-bubble-user-glass,
.chat-bubble-user-glass p,
.chat-bubble-user-glass span,
.chat-bubble-user-glass div {
  color: #333333 !important;
  text-shadow: none !important;
}

/* Drawer: Organizar Mesas */
.table-drawer-backdrop {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(4px);
  z-index: 55;
  transition: opacity 0.3s ease;
  display: none !important;
}
.table-drawer-backdrop.open {
  display: block !important;
}

.table-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 520px;
  background-color: #FFFFFF;
  z-index: 60;
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  display: none !important;
}
.table-drawer.open {
  transform: translateX(0);
  display: flex !important;
}

#btn-open-add-table-modal,
#btn-submit-add-table {
  background-color: #333333 !important;
  color: #FFFFFF !important;
}
#btn-open-add-table-modal:hover,
#btn-submit-add-table:hover {
  background-color: #222222 !important;
}

/* ==========================================================================
   SEÇÃO MAIS RECURSOS: BOTÕES NA MESMA COR DO SIDEBAR (#F3F3F3) SEM BORDA
   ========================================================================== */
.mais-recursos-btn {
  background-color: #EBF4FF !important;
  background: #EBF4FF !important;
  border: none !important;
  border-color: transparent !important;
  color: #333333 !important;
}

.mais-recursos-btn:hover {
  background-color: #DCEAFB !important;
  background: #DCEAFB !important;
  border: none !important;
}

.mais-recursos-btn svg,
.mais-recursos-btn span {
  color: #333333 !important;
}

body[data-theme="dark"] .mais-recursos-btn {
  background-color: #F3F3F3 !important;
  background: #F3F3F3 !important;
  border: none !important;
  border-color: transparent !important;
  color: #333333 !important;
}

body[data-theme="dark"] .mais-recursos-btn:hover {
  background-color: #E5E5E5 !important;
  background: #E5E5E5 !important;
  border: none !important;
}

body[data-theme="dark"] .mais-recursos-btn svg,
body[data-theme="dark"] .mais-recursos-btn span {
  color: #333333 !important;
}

/* ==========================================================================
   TEMA — Toggle Segmentado Light / Dark (Dual Button Pill)
   ========================================================================== */
.theme-toggle {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  background: #F4F4F5;
  border-radius: 10px;
  padding: 0.25rem;
  margin: 0.35rem 0.25rem;
}

.theme-toggle-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  border: none;
  background: transparent;
  color: #71717A;
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.45rem 0.5rem;
  border-radius: 7px;
  cursor: pointer;
  transition: all .15s ease;
  user-select: none;
}

.theme-toggle-btn svg {
  flex-shrink: 0;
}

.theme-toggle-btn:hover {
  color: #3F3F46;
}

.theme-toggle-btn.active {
  background: #FFFFFF !important;
  color: #18181B !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
}

/* ==========================================================================
   TEMA CLARO GLOBAL (LIGHT MODE) - Fundo Branco Puro (#FFFFFF)
   APENAS Sidebar e Header em #FAFAFA
   ========================================================================== */
body:not([data-theme="dark"]),
body.dashboard-mode:not([data-theme="dark"]),
body:not([data-theme="dark"]) #view-dashboard,
body:not([data-theme="dark"]) #view-event-os-dashboard,
body:not([data-theme="dark"]) .dashboard-main-area,
body:not([data-theme="dark"]) .dashboard-main-area.full-width,
body:not([data-theme="dark"]) .dashboard-main-area > .dashboard-content-wrapper,
body:not([data-theme="dark"]) #tab-overview,
body:not([data-theme="dark"]) #tab-wallet,
body:not([data-theme="dark"]) #tab-rsvp,
body:not([data-theme="dark"]) #tab-gifts,
body:not([data-theme="dark"]) #tab-info-event,
body:not([data-theme="dark"]) #tab-create-event-page,
body:not([data-theme="dark"]) #tab-edit-site,
body:not([data-theme="dark"]) .editor-split-wrapper,
body:not([data-theme="dark"]) #editor-form-column,
body:not([data-theme="dark"]) #tab-b2b {
  background-color: #FFFFFF !important;
}

/* Sub-drawer (submenu de páginas) branco (igual ao header) no Light Mode */
body:not([data-theme="dark"]) .sidebar-sub-drawer,
body:not([data-theme="dark"]) #sidebar-sub-drawer {
  background-color: #FFFFFF !important;
  background: #FFFFFF !important;
}

/* Rail de ícones escuro (#181D24) no Light Mode Desktop — não afeta a barra mobile. */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  body:not([data-theme="dark"]) .sidebar-icon-rail,
  body:not([data-theme="dark"]) .sidebar-brand-top {
    background-color: #181D24 !important;
    background: #181D24 !important;
    border-color: #181D24 !important;
  }

  /* Linha entre o logo e os ícones de menu, idêntica ao B2B (.sidebar-brand-top) */
  body:not([data-theme="dark"]) .sidebar-brand-top {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  }

  /* Logo branco no rail escuro (o colorido fica ilegível em fundo escuro) */
  body:not([data-theme="dark"]) #sidebar-brand-icon-light {
    display: none !important;
  }
  body:not([data-theme="dark"]) #sidebar-brand-icon-dark {
    display: inline-block !important;
  }

  body:not([data-theme="dark"]) .rail-icon-btn,
  body:not([data-theme="dark"]) .rail-icon-btn svg {
    color: #C4C4CC !important;
    stroke: #C4C4CC !important;
  }

  body:not([data-theme="dark"]) .rail-icon-btn:hover {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: #FFFFFF !important;
  }

  body:not([data-theme="dark"]) .rail-icon-btn:hover svg,
  body:not([data-theme="dark"]) .rail-icon-btn:hover svg * {
    color: #FFFFFF !important;
    stroke: #FFFFFF !important;
  }

  body:not([data-theme="dark"]) .rail-icon-btn.active {
    background-color: #EBF4FF !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
  }

  body:not([data-theme="dark"]) .rail-icon-btn.active svg,
  body:not([data-theme="dark"]) .rail-icon-btn.active svg * {
    color: #181D24 !important;
    stroke: #181D24 !important;
  }

  body:not([data-theme="dark"]) .sub-drawer-item.active {
    background-color: #EBF4FF !important;
    color: #333333 !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
  }
}

/* Header em #ffffff no Light Mode */
body:not([data-theme="dark"]) .dashboard-top-navbar {
  background-color: #F3F3F3 !important;
  background: #F3F3F3 !important;
  border-bottom: 1px solid #E4E4E4 !important;
  box-shadow: 0 2px 6px rgba(16, 24, 40, 0.04) !important;
}

body:not([data-theme="dark"]) #btn-event-switcher {
  background-color: #FFFFFF !important;
  border-color: #EAEAEA !important;
  color: #18181B !important;
}

body:not([data-theme="dark"]) #dash-header-event-title {
  color: #18181B !important;
}

body:not([data-theme="dark"]) #dash-event-countdown-badge {
  color: #71717A !important;
}

body:not([data-theme="dark"]) .dashboard-top-navbar .header-icon-btn {
  color: #52525B !important;
}

body:not([data-theme="dark"]) .dashboard-top-navbar .header-icon-btn:hover {
  background-color: rgba(0, 0, 0, 0.05) !important;
  color: #18181B !important;
}

body:not([data-theme="dark"]) .dashboard-top-navbar .header-icon-btn svg {
  color: #52525B !important;
  stroke: #52525B !important;
}

/* Botões Salvar Alterações e Adicionar Presente em #333333 no Light Mode */
body:not([data-theme="dark"]) #btn-save-edit-site,
body:not([data-theme="dark"]) .btn-save-appearance,
body:not([data-theme="dark"]) #btn-save-mobile-edit,
body:not([data-theme="dark"]) #btn-host-add-gift,
body:not([data-theme="dark"]) .btn-host-add-gift {
  background-color: #333333 !important;
  color: #FFFFFF !important;
}

body:not([data-theme="dark"]) #btn-save-edit-site:hover,
body:not([data-theme="dark"]) .btn-save-appearance:hover,
body:not([data-theme="dark"]) #btn-save-mobile-edit:hover,
body:not([data-theme="dark"]) #btn-host-add-gift:hover,
body:not([data-theme="dark"]) .btn-host-add-gift:hover {
  background-color: #222222 !important;
}

/* ==========================================================================
   TEMA ESCURO GLOBAL (DARK MODE) - Concluído Fiel às Especificações do Usuário
   Sidebar & Header: #333333 | Caixas: #333333 | Fundo: #252525
   Barra de Pesquisa: #4e4e4e | Fundo de Ícones: #4b4b4b
   Ícones do Sidebar: #ffffff | Barra de Progresso: #67974e | Textos: #ffffff
   ========================================================================== */
body.dashboard-mode[data-theme="dark"] {
  background-color: #252525 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #view-dashboard,
body[data-theme="dark"] #view-event-os-dashboard,
body[data-theme="dark"] .dashboard-main-area,
body[data-theme="dark"] .dashboard-main-area.full-width,
body[data-theme="dark"] .dashboard-main-area > .dashboard-content-wrapper,
body[data-theme="dark"] #tab-overview,
body[data-theme="dark"] #tab-wallet,
body[data-theme="dark"] #tab-rsvp,
body[data-theme="dark"] #tab-gifts,
body[data-theme="dark"] #tab-info-event,
body[data-theme="dark"] #tab-create-event-page,
body[data-theme="dark"] #tab-edit-site,
body[data-theme="dark"] .editor-split-wrapper,
body[data-theme="dark"] #editor-form-column,
body[data-theme="dark"] #tab-b2b {
  background-color: #1C2125 !important;
  color: #ffffff !important;
}

/* 1. Sidebar Rail, Sub-Drawer & Top Navbar — header segue a mesma cor do sidebar */
body[data-theme="dark"] .dashboard-top-navbar {
  background-color: #181D24 !important;
  background: #181D24 !important;
  border-bottom: 1px solid #404040 !important;
  box-shadow: none !important;
}

body[data-theme="dark"] .sidebar-icon-rail {
  background-color: #181D24 !important;
  border-right: 1px solid #404040 !important;
}

body[data-theme="dark"] .sidebar-brand-top {
  background-color: #181D24 !important;
  border-bottom: 1px solid #404040 !important;
}

body[data-theme="dark"] .sidebar-sub-drawer,
body[data-theme="dark"] #sidebar-sub-drawer {
  background-color: #1C2125 !important;
  border-right: 1px solid #404040 !important;
  color: #ffffff !important;
}

/* Títulos dos Sidebars e Sub-drawers no Dark Mode (#ebf4ff) */
body[data-theme="dark"] #drawer-section-title,
body[data-theme="dark"] .sidebar-sub-drawer h3,
body[data-theme="dark"] #sidebar-sub-drawer h3,
body[data-theme="dark"] .drawer-section-title,
body[data-theme="dark"] .gift-drawer h2,
body[data-theme="dark"] .budget-expense-drawer h2,
body[data-theme="dark"] .table-drawer h2,
body[data-theme="dark"] .guest-details-drawer h2,
body[data-theme="dark"] .contracted-vendor-drawer h2,
body[data-theme="dark"] .guias-sidebar h1 {
  color: #ebf4ff !important;
}

/* 2. Ícones e Textos do Sidebar no Dark Mode (#ffffff) */
body[data-theme="dark"] .sidebar-icon-rail .rail-icon-btn,
body[data-theme="dark"] .rail-icon-btn {
  color: #ffffff !important;
}

body[data-theme="dark"] .sidebar-icon-rail .rail-icon-btn svg,
body[data-theme="dark"] .rail-icon-btn svg,
body[data-theme="dark"] .rail-icon-btn svg * {
  stroke: #ffffff !important;
  color: #ffffff !important;
}

body[data-theme="dark"] .sidebar-icon-rail .rail-icon-btn:hover,
body[data-theme="dark"] .rail-icon-btn:hover,
body[data-theme="dark"] .sidebar-icon-rail button:hover {
  background-color: #4b4b4b !important;
  border: 1px solid transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: #ffffff !important;
}

body[data-theme="dark"] .sidebar-icon-rail .rail-icon-btn.active,
body[data-theme="dark"] .rail-icon-btn.active {
  background-color: #EBF4FF !important;
  border: 1px solid #595959 !important;
  color: #181D24 !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4) !important;
}

body[data-theme="dark"] .sidebar-icon-rail .rail-icon-btn.active svg,
body[data-theme="dark"] .rail-icon-btn.active svg,
body[data-theme="dark"] .rail-icon-btn.active svg * {
  color: #181D24 !important;
  stroke: #181D24 !important;
}

body[data-theme="dark"] .sub-drawer-item {
  color: #D4D4D8 !important;
}

body[data-theme="dark"] .sub-drawer-item:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  color: #FFFFFF !important;
}

body[data-theme="dark"] .sub-drawer-item.active {
  background-color: #1C2125 !important;
  color: #ffffff !important;
  border: 1px solid #595959 !important;
}

/* 3. Ícones do Header no Dark Mode (sem caixinhas em volta) */
body[data-theme="dark"] .header-icon-btn {
  background-color: transparent !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: #ffffff !important;
}

body[data-theme="dark"] .header-icon-btn:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
}

body[data-theme="dark"] .header-icon-btn svg {
  color: #ffffff !important;
  stroke: #ffffff !important;
}

body[data-theme="dark"] #dash-event-countdown-badge {
  color: #A1A1AA !important;
}

body[data-theme="dark"] #btn-event-switcher {
  background-color: #333333 !important;
  border-color: #404040 !important;
  color: #FFFFFF !important;
}

body[data-theme="dark"] #dash-header-event-title {
  color: #FFFFFF !important;
}

/* Event Switcher Dropdown (Light Mode) */
.event-switcher-item.is-active {
  background-color: rgba(241, 245, 249, 0.95);
  color: #27394f;
  border: 1px solid rgba(39, 57, 79, 0.25);
}
.event-switcher-item.is-active span {
  color: #27394f !important;
}
.event-switcher-item.is-inactive {
  background-color: transparent;
  color: #334155;
  border: 1px solid transparent;
}
.event-switcher-item.is-inactive:hover {
  background-color: #f8fafc;
}

/* Event Switcher Dropdown e Caixinha de Eventos no Dark Mode (#252525) */
body[data-theme="dark"] #dropdown-events-list {
  background-color: #252525 !important;
  background: #252525 !important;
  border-color: #404040 !important;
  color: #FFFFFF !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6) !important;
}

body[data-theme="dark"] #dropdown-events-list .border-t {
  border-color: #404040 !important;
}

body[data-theme="dark"] .event-switcher-item,
body[data-theme="dark"] #events-switcher-items > div {
  background-color: #252525 !important;
  background: #252525 !important;
  border: 1px solid #404040 !important;
  color: #FFFFFF !important;
}

body[data-theme="dark"] .event-switcher-item.is-active,
body[data-theme="dark"] #events-switcher-items > div.is-active {
  background-color: #252525 !important;
  background: #252525 !important;
  border: 1px solid #52525b !important;
  color: #FFFFFF !important;
}

body[data-theme="dark"] .event-switcher-item:hover,
body[data-theme="dark"] #events-switcher-items > div:hover {
  background-color: #333333 !important;
  border-color: #595959 !important;
}

body[data-theme="dark"] .event-switcher-item span,
body[data-theme="dark"] .event-switcher-item.is-active span,
body[data-theme="dark"] #events-switcher-items span {
  color: #FFFFFF !important;
}

body[data-theme="dark"] #btn-dropdown-create-new-event {
  color: #ebf4ff !important;
}

body[data-theme="dark"] #btn-dropdown-create-new-event:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
}

body[data-theme="dark"] #btn-dropdown-create-new-event span:first-child {
  background-color: rgba(235, 244, 255, 0.15) !important;
  color: #ebf4ff !important;
}

#header-logo-light {
  display: block;
}
#header-logo-dark {
  display: none;
}

body[data-theme="dark"] #header-logo-light {
  display: none !important;
}
body[data-theme="dark"] #header-logo-dark {
  display: block !important;
}

/* 4. Caixas no Dark Mode (#333333 - Mesma cor do Sidebar) & Textos (#ffffff) */
body[data-theme="dark"] .ticket-card,
body[data-theme="dark"] .metric-card,
body[data-theme="dark"] .metric-kpi-item,
body[data-theme="dark"] .dashboard-card,
body[data-theme="dark"] .card,
body[data-theme="dark"] .card-modern,
body[data-theme="dark"] .card-luxury,
body[data-theme="dark"] .quick-start-item,
body[data-theme="dark"] .appearance-card-block > div,
body[data-theme="dark"] .b2b-item-card,
body[data-theme="dark"] #quick-start-guide-widget,
body[data-theme="dark"] #view-dashboard .bg-white:not(button):not(input):not(select):not(textarea):not(.toast-custom):not(.mais-recursos-btn):not(.gift-received-icon):not(.gift-received-buyer):not(.gift-received-badge):not(.gift-received-btn):not(.gift-received-tag):not(#editor-form-column),
body[data-theme="dark"] .dashboard-main-area .bg-white:not(button):not(input):not(select):not(textarea):not(.toast-custom):not(.mais-recursos-btn):not(.gift-received-icon):not(.gift-received-buyer):not(.gift-received-badge):not(.gift-received-btn):not(.gift-received-tag):not(#editor-form-column),
body[data-theme="dark"] .dashboard-content-wrapper .bg-white:not(button):not(input):not(select):not(textarea):not(.toast-custom):not(.mais-recursos-btn):not(.gift-received-icon):not(.gift-received-buyer):not(.gift-received-badge):not(.gift-received-btn):not(.gift-received-tag):not(#editor-form-column),
body[data-theme="dark"] .modal-backdrop-custom > div,
body[data-theme="dark"] .guest-details-drawer,
body[data-theme="dark"] .gift-drawer,
body[data-theme="dark"] .budget-expense-drawer,
body[data-theme="dark"] .contracted-vendor-drawer,
body[data-theme="dark"] #drawer-contracted-vendor-details {
  background-color: #333333 !important;
  border-color: #404040 !important;
  color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25) !important;
}

/* Explorar / Meus Contratos / Favoritos no dark mode: mantém o fundo escuro
   herdado da regra acima, mas sem a sombra de "caixa" — lista plana, só com
   a linha (divide-y) entre um fornecedor e outro. */
body[data-theme="dark"] .b2b-item-card,
body[data-theme="dark"] #b2b-contracted-list-container > div {
  background: transparent !important;
  box-shadow: none !important;
  border-color: #404040 !important;
}
body[data-theme="dark"] #b2b-cards-list-container.divide-zinc-200\/80 > *,
body[data-theme="dark"] #b2b-contracted-list-container.divide-zinc-200\/80 > * {
  border-color: #404040 !important;
}

/* Todos os Textos em #ffffff */
body[data-theme="dark"] .dashboard-main-area h1,
body[data-theme="dark"] .dashboard-main-area h2,
body[data-theme="dark"] .dashboard-main-area h3,
body[data-theme="dark"] .dashboard-main-area h4,
body[data-theme="dark"] .dashboard-main-area h5,
body[data-theme="dark"] .dashboard-main-area h6,
body[data-theme="dark"] .dashboard-main-area p,
body[data-theme="dark"] .dashboard-main-area span:not(.badge-header-chat):not(.badge-header-notifications):not(.badge-recados-count):not(.mais-recursos-btn span):not(.gift-received-badge):not(.gift-received-btn span):not(.gift-received-tag):not(.gift-received-buyer),
body[data-theme="dark"] .dashboard-main-area label,
body[data-theme="dark"] .dashboard-main-area strong,
body[data-theme="dark"] .dashboard-main-area b,
body[data-theme="dark"] .dashboard-main-area .text-zinc-900,
body[data-theme="dark"] .dashboard-main-area .text-zinc-800,
body[data-theme="dark"] .dashboard-main-area .text-zinc-700,
body[data-theme="dark"] .dashboard-main-area .text-zinc-600,
body[data-theme="dark"] .dashboard-main-area .text-zinc-500,
body[data-theme="dark"] .dashboard-main-area .text-zinc-400,
body[data-theme="dark"] .dashboard-main-area .text-slate-900,
body[data-theme="dark"] .dashboard-main-area .text-slate-800,
body[data-theme="dark"] .dashboard-main-area .text-slate-600,
body[data-theme="dark"] .dashboard-main-area .text-slate-500,
body[data-theme="dark"] .modal-backdrop-custom h1,
body[data-theme="dark"] .modal-backdrop-custom h2,
body[data-theme="dark"] .modal-backdrop-custom h3,
body[data-theme="dark"] .modal-backdrop-custom h4,
body[data-theme="dark"] .modal-backdrop-custom p,
body[data-theme="dark"] .modal-backdrop-custom label,
body[data-theme="dark"] .modal-backdrop-custom strong,
body[data-theme="dark"] .guest-details-drawer h1,
body[data-theme="dark"] .guest-details-drawer h2,
body[data-theme="dark"] .guest-details-drawer h3,
body[data-theme="dark"] .guest-details-drawer p,
body[data-theme="dark"] .contracted-vendor-drawer h1,
body[data-theme="dark"] .contracted-vendor-drawer h2,
body[data-theme="dark"] .contracted-vendor-drawer h3,
body[data-theme="dark"] .contracted-vendor-drawer p {
  color: #ffffff !important;
}

/* Saudação "Olá, Beatriz!" no Dark Mode — sobrepõe o #18181B fixo do ID em Light Mode */
body[data-theme="dark"] #dash-hub-title {
  color: #ffffff !important;
}

/* Rodapés de Caixas, Sub-seções e Caixas com fundos neutros (#333333 - Mesma cor do Sidebar) */
body[data-theme="dark"] .dashboard-main-area .bg-\[\#FAFAFA\],
body[data-theme="dark"] .dashboard-main-area .bg-zinc-50,
body[data-theme="dark"] .dashboard-main-area .bg-zinc-50\/80,
body[data-theme="dark"] .dashboard-main-area .bg-zinc-50\/70,
body[data-theme="dark"] .dashboard-main-area .bg-zinc-50\/60,
body[data-theme="dark"] .dashboard-main-area .bg-zinc-50\/40,
body[data-theme="dark"] .dashboard-main-area .bg-slate-50,
body[data-theme="dark"] .dashboard-main-area .bg-\[\#F8F9FA\],
body[data-theme="dark"] #view-dashboard .bg-\[\#FAFAFA\],
body[data-theme="dark"] #view-dashboard .bg-zinc-50,
body[data-theme="dark"] #view-dashboard .bg-zinc-50\/80,
body[data-theme="dark"] #view-dashboard .bg-zinc-50\/70,
body[data-theme="dark"] #view-dashboard .bg-zinc-50\/60,
body[data-theme="dark"] #view-dashboard .bg-slate-50,
body[data-theme="dark"] .modal-backdrop-custom .bg-zinc-50,
body[data-theme="dark"] .modal-backdrop-custom .bg-\[\#FAFAFA\],
body[data-theme="dark"] .contracted-vendor-drawer .bg-zinc-50,
body[data-theme="dark"] .contracted-vendor-drawer .bg-\[\#FAFAFA\] {
  background-color: #333333 !important;
  border-color: #404040 !important;
}

body[data-theme="dark"] .dashboard-main-area .bg-\[\#FAFAFA\]:hover,
body[data-theme="dark"] .dashboard-main-area .bg-zinc-50:hover,
body[data-theme="dark"] #view-dashboard .bg-zinc-50:hover {
  background-color: #3d3d3d !important;
}

body[data-theme="dark"] .dashboard-main-area .border-t.border-\[\#EAEAEA\],
body[data-theme="dark"] .dashboard-main-area .border-\[\#EAEAEA\] {
  border-color: #404040 !important;
}

body[data-theme="dark"] .dashboard-main-area .group\/btn span,
body[data-theme="dark"] .dashboard-main-area .group\/btn svg {
  color: #ffffff !important;
}

/* Fundo de Ícones (#4b4b4b) */
body[data-theme="dark"] #dash-hub-event-date-badge,
body[data-theme="dark"] #dash-hub-event-location-badge,
body[data-theme="dark"] #btn-dash-share-dropdown-trigger,
body[data-theme="dark"] #quick-start-counter-badge,
body[data-theme="dark"] #kpi-rsvp-rate-badge,
body[data-theme="dark"] .dashboard-main-area .bg-\[\#F4F4F6\] {
  background-color: #4b4b4b !important;
  border-color: #595959 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #dash-hub-event-date-badge:hover,
body[data-theme="dark"] #dash-hub-event-location-badge:hover,
body[data-theme="dark"] #btn-dash-share-dropdown-trigger:hover,
body[data-theme="dark"] .dashboard-main-area .bg-\[\#F4F4F6\]:hover {
  background-color: #575757 !important;
  border-color: #6e6e6e !important;
}

body[data-theme="dark"] #dash-hub-event-date-badge svg,
body[data-theme="dark"] #dash-hub-event-location-badge svg,
body[data-theme="dark"] #btn-dash-share-dropdown-trigger svg,
body[data-theme="dark"] .dashboard-main-area .bg-\[\#F4F4F6\] svg {
  color: #ffffff !important;
  stroke: #ffffff !important;
}

/* 5. Barra de Progresso Mantém Verde #67974e */
body[data-theme="dark"] #quick-start-guide-widget .bg-zinc-100,
body[data-theme="dark"] .progress-bar-track {
  background-color: #3d3d3d !important;
}

body[data-theme="dark"] #quick-start-progress-bar {
  background-color: #67974e !important;
}

body[data-theme="dark"] #quick-start-tasks-list .divide-zinc-100 > * {
  border-color: #404040 !important;
}

body[data-theme="dark"] .quick-start-task-row:hover {
  background-color: #404040 !important;
}

/* Bordas Gerais e Divisores */
body[data-theme="dark"] .border-zinc-200,
body[data-theme="dark"] .border-zinc-300,
body[data-theme="dark"] .border-slate-200,
body[data-theme="dark"] .border-zinc-200\/80,
body[data-theme="dark"] .border-zinc-200\/60,
body[data-theme="dark"] .border-zinc-200\/70,
body[data-theme="dark"] .border-zinc-100 {
  border-color: #404040 !important;
}

body[data-theme="dark"] .h-px.bg-zinc-200,
body[data-theme="dark"] .bg-zinc-200 {
  background-color: #404040 !important;
}

/* 6. Barra de Pesquisa e Campos de Entrada (#4e4e4e) */
body[data-theme="dark"] #view-dashboard input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
body[data-theme="dark"] #view-dashboard select,
body[data-theme="dark"] #view-dashboard textarea,
body[data-theme="dark"] #view-event-os-dashboard input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
body[data-theme="dark"] #view-event-os-dashboard select,
body[data-theme="dark"] #view-event-os-dashboard textarea {
  background-color: #4e4e4e !important;
  border-color: #5c5c5c !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #view-dashboard input::placeholder,
body[data-theme="dark"] #view-dashboard textarea::placeholder,
body[data-theme="dark"] #view-event-os-dashboard input::placeholder,
body[data-theme="dark"] #view-event-os-dashboard textarea::placeholder {
  color: #e4e4e7 !important;
}

/* Botões Neutros (btn-white) (#333333 / #4b4b4b) */
body[data-theme="dark"] .btn-white {
  background-color: #333333 !important;
  border-color: #404040 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] .btn-white:hover {
  background-color: #4b4b4b !important;
  border-color: #595959 !important;
}

/* Tabelas (#333333 - Mesma cor do Sidebar) */
body[data-theme="dark"] table thead tr,
body[data-theme="dark"] thead.bg-zinc-100\/70,
body[data-theme="dark"] thead.bg-zinc-100\/60,
body[data-theme="dark"] tfoot {
  background-color: #333333 !important;
  border-color: #404040 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] tbody tr:hover {
  background-color: #404040 !important;
}

/* Dropdown Perfil no Dark Mode (#333333 com Ícones #ebf4ff) */
body[data-theme="dark"] #dash-share-dropdown-menu,
body[data-theme="dark"] #dropdown-user-account,
body[data-theme="dark"] .dropdown-menu-custom {
  background-color: #333333 !important;
  border-color: #404040 !important;
  color: #ffffff !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
}

body[data-theme="dark"] #dash-share-dropdown-menu button,
body[data-theme="dark"] #dropdown-user-account button,
body[data-theme="dark"] #dropdown-user-account a {
  color: #ffffff !important;
}

body[data-theme="dark"] #dash-share-dropdown-menu button:hover,
body[data-theme="dark"] #dropdown-user-account button:hover,
body[data-theme="dark"] #dropdown-user-account a:hover {
  background-color: #404040 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #dropdown-user-account .border-t {
  border-color: #404040 !important;
}

/* Ícones do Dropdown Meu Perfil no Dark Mode (#ebf4ff) */
body[data-theme="dark"] #dropdown-user-account svg,
body[data-theme="dark"] #dropdown-user-account svg * {
  color: #ebf4ff !important;
  stroke: #ebf4ff !important;
}

/* Dark Mode do Theme Toggle */
body[data-theme="dark"] .theme-toggle {
  background-color: #262626 !important;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

body[data-theme="dark"] .theme-toggle-btn {
  color: #A1A1AA !important;
  background: transparent !important;
}

body[data-theme="dark"] .theme-toggle-btn:hover {
  color: #FFFFFF !important;
}

body[data-theme="dark"] .theme-toggle-btn.active {
  background-color: rgba(255, 255, 255, 0.16) !important;
  color: #FFFFFF !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}

/* Botão Perfil no rodapé do Sidebar */
body[data-theme="dark"] #btn-user-account-menu {
  background-color: #4b4b4b !important;
  border: 1px solid #595959 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #btn-user-account-menu svg,
body[data-theme="dark"] #btn-user-account-menu svg * {
  stroke: #ffffff !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #btn-user-account-menu:hover {
  background-color: #575757 !important;
  border: 1px solid transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* Bolinhas de Notificações, Chat e Recados no Dark Mode (#ebf4ff com texto #333333) */
body[data-theme="dark"] .badge-header-chat,
body[data-theme="dark"] .badge-header-notifications,
body[data-theme="dark"] .badge-recados-count {
  background-color: #ebf4ff !important;
  background: #ebf4ff !important;
  color: #333333 !important;
}

/* Presente Recebido em Meus Presentes (#FAFAFA em Light e Dark Mode) */
.gift-received-btn,
body[data-theme="dark"] .gift-received-btn {
  background-color: #FAFAFA !important;
  background: #FAFAFA !important;
  color: #333333 !important;
  border-color: #EAEAEA !important;
}

/* Presentes Recebidos (relatório separado, #ebf4ff mantido) */
.gift-received-tag,
body[data-theme="dark"] .gift-received-tag {
  background-color: #ebf4ff !important;
  background: #ebf4ff !important;
  color: #333333 !important;
  border-color: #d4e5ff !important;
}

.gift-received-btn span,
.gift-received-tag span,
body[data-theme="dark"] .gift-received-btn span,
body[data-theme="dark"] .gift-received-tag span {
  color: #333333 !important;
  stroke: #333333 !important;
}


/* ==========================================================================
   TEMA ESCURO: APARÊNCIA & PERSONALIZAÇÃO
   Fundo: #252525 | Caixas: #333333 | Bordas: #404040
   ========================================================================== */
body[data-theme="dark"] #tab-edit-site,
body[data-theme="dark"].editor-split-mode #tab-edit-site,
body[data-theme="dark"] .editor-split-wrapper,
body[data-theme="dark"].editor-split-mode .editor-split-wrapper,
body[data-theme="dark"] #editor-form-column,
body[data-theme="dark"].editor-split-mode #editor-form-column,
body[data-theme="dark"] #editor-form-home,
body[data-theme="dark"] #editor-form-data,
body[data-theme="dark"] #editor-form-about,
body[data-theme="dark"] #editor-form-invite-online,
body[data-theme="dark"] #editor-form-invite-print {
  background-color: #252525 !important;
  background: #252525 !important;
}

/* Header de Sub-seção no Dark Mode */
body[data-theme="dark"] #editor-active-sub-title {
  color: #ffffff !important;
}

/* Caixas de Aparência (#333333 com borda #404040) */
body[data-theme="dark"] #editor-form-column .appearance-card-block > div,
body[data-theme="dark"] #editor-form-column #editor-card-bg-color,
body[data-theme="dark"] #editor-form-column #editor-card-btn-style,
body[data-theme="dark"] #editor-form-column .appearance-card-block.border,
body[data-theme="dark"] #editor-form-column .editor-sub-panel > div.border,
body[data-theme="dark"] #editor-form-column .editor-sub-panel > div > div.border,
body[data-theme="dark"] #editor-form-column .border.rounded-2xl,
body[data-theme="dark"] #editor-form-column .border.rounded-xl,
body[data-theme="dark"] #editor-form-column .bg-white:not(button):not(input):not(select):not(textarea) {
  background-color: #333333 !important;
  background: #333333 !important;
  border-color: #404040 !important;
  color: #ffffff !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) !important;
}

/* Cabeçalho dos cards de Aparência */
body[data-theme="dark"] #editor-form-column .bg-zinc-100\/60,
body[data-theme="dark"] #editor-form-column .bg-zinc-100 {
  background-color: #333333 !important;
  border-color: #404040 !important;
}

body[data-theme="dark"] #editor-form-column .editor-card-header-title {
  color: #ffffff !important;
}

/* Inputs, Selects e Containers Internos dos Cards */
body[data-theme="dark"] #editor-form-column .bg-zinc-50\/70,
body[data-theme="dark"] #editor-form-column .bg-zinc-50,
body[data-theme="dark"] #editor-form-column .border-\[\#EAEAEA\] {
  background-color: #404040 !important;
  border-color: #4f4f4f !important;
}

body[data-theme="dark"] #editor-form-column select,
body[data-theme="dark"] #editor-form-column input:not([type="color"]):not([type="checkbox"]) {
  color: #ffffff !important;
}

body[data-theme="dark"] #editor-form-column select option {
  background-color: #333333 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #editor-form-column .border-t.border-\[\#EAEAEA\],
body[data-theme="dark"] #editor-form-column .bg-\[\#EAEAEF\] {
  background-color: #4f4f4f !important;
  border-color: #4f4f4f !important;
}

/* Textos e Labels Internos */
body[data-theme="dark"] #editor-form-column p,
body[data-theme="dark"] #editor-form-column span:not(.btn-save-appearance span):not(#btn-save-header-edit span) {
  color: #d4d4d8 !important;
}

body[data-theme="dark"] #editor-form-column #title-font-size-value,
body[data-theme="dark"] #editor-form-column #desc-font-size-value,
body[data-theme="dark"] #editor-form-column #gradient-opacity-value,
body[data-theme="dark"] #editor-form-column #editor-btn-radius-val {
  color: #ffffff !important;
}

/* Botões de Formatação (B, I, U) e Alinhamento */
body[data-theme="dark"] #editor-form-column .btn-title-format,
body[data-theme="dark"] #editor-form-column .btn-desc-format,
body[data-theme="dark"] #editor-form-column .btn-title-align,
body[data-theme="dark"] #editor-form-column .btn-desc-align {
  color: #e4e4e7 !important;
}

body[data-theme="dark"] #editor-form-column .btn-title-format:hover,
body[data-theme="dark"] #editor-form-column .btn-desc-format:hover,
body[data-theme="dark"] #editor-form-column .btn-title-align:hover,
body[data-theme="dark"] #editor-form-column .btn-desc-align:hover {
  background-color: #4a4a4a !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #editor-form-column .btn-title-align.active,
body[data-theme="dark"] #editor-form-column .btn-desc-align.active {
  background-color: #555555 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #editor-form-column .btn-title-align.active svg,
body[data-theme="dark"] #editor-form-column .btn-desc-align.active svg {
  color: #ffffff !important;
}

/* Card de Adicionar Música */
body[data-theme="dark"] #editor-form-column .music-track-row {
  background-color: #2b2b2b !important;
  border-color: #404040 !important;
}

body[data-theme="dark"] #editor-form-column .music-track-url,
body[data-theme="dark"] #editor-form-column .music-track-placement {
  background-color: #383838 !important;
  border-color: #4f4f4f !important;
  color: #ffffff !important;
}

/* ==========================================================================
   TEMA ESCURO: PÁGINA INICIAL / VISÃO GERAL (HOME)
   Fundo: #252525 | Caixas: #333333 | Bordas: #404040
   ========================================================================== */
body[data-theme="dark"] #tab-overview {
  background-color: #1C2125 !important;
  background: #1C2125 !important;
}

body[data-theme="dark"] #tab-overview .bg-white:not(button):not(input):not(select):not(textarea):not(.mais-recursos-btn):not(.gift-received-icon):not(.gift-received-buyer):not(.gift-received-badge):not(.gift-received-btn):not(.gift-received-tag),
body[data-theme="dark"] #tab-overview .rounded-2xl.border,
body[data-theme="dark"] #tab-overview #quick-start-guide-widget,
body[data-theme="dark"] #tab-overview .grid > .bg-white,
body[data-theme="dark"] #tab-overview .space-y-3 > .grid > .bg-white {
  background-color: #333333 !important;
  background: #333333 !important;
  border-color: #404040 !important;
  color: #ffffff !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) !important;
}

/* Rodapés de cards na Home (#2e2e2e) */
body[data-theme="dark"] #tab-overview .bg-\[\#FAFAFA\],
body[data-theme="dark"] #tab-overview .bg-\[\#F4F4F5\],
body[data-theme="dark"] #tab-overview .border-\[\#EAEAEA\],
body[data-theme="dark"] #tab-overview .border-t.border-\[\#EAEAEA\] {
  background-color: #2e2e2e !important;
  border-color: #404040 !important;
}

body[data-theme="dark"] #tab-overview .bg-\[\#FAFAFA\]:hover,
body[data-theme="dark"] #tab-overview .bg-\[\#F4F4F5\]:hover {
  background-color: #383838 !important;
}

/* Cards de Benefícios & Serviços */
body[data-theme="dark"] #tab-overview .h-36.bg-white,
body[data-theme="dark"] #tab-overview .h-40.bg-white {
  background-color: #333333 !important;
}

body[data-theme="dark"] #tab-overview .h-36.bg-white span.text-zinc-900,
body[data-theme="dark"] #tab-overview .h-40.bg-white span.text-zinc-900 {
  color: #ffffff !important;
}

body[data-theme="dark"] #tab-overview .h-36.bg-white .bg-zinc-900,
body[data-theme="dark"] #tab-overview .h-40.bg-white .bg-zinc-900 {
  background-color: #ffffff !important;
}

/* Card Promocional Banner */
body[data-theme="dark"] #tab-overview .rounded-2xl.overflow-hidden.border {
  background-color: #333333 !important;
  border-color: #404040 !important;
}

/* Divisores e Linhas na Home */
body[data-theme="dark"] #tab-overview .divide-zinc-100 > *,
body[data-theme="dark"] #tab-overview .divide-zinc-200 > *,
body[data-theme="dark"] #tab-overview .h-px.bg-zinc-200,
body[data-theme="dark"] #tab-overview .border-zinc-200\/80 {
  border-color: #404040 !important;
}

/* Pílulas de Informações do Topo da Home */
body[data-theme="dark"] #dash-hub-event-date-badge,
body[data-theme="dark"] #dash-hub-event-location-badge,
body[data-theme="dark"] #btn-dash-share-dropdown-trigger {
  background-color: #333333 !important;
  border-color: #404040 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #dash-hub-event-date-badge:hover,
body[data-theme="dark"] #dash-hub-event-location-badge:hover,
body[data-theme="dark"] #btn-dash-share-dropdown-trigger:hover {
  background-color: #3d3d3d !important;
  border-color: #555555 !important;
}

body[data-theme="dark"] #dash-hub-event-date-badge svg,
body[data-theme="dark"] #dash-hub-event-location-badge svg,
body[data-theme="dark"] #btn-dash-share-dropdown-trigger svg {
  color: #ffffff !important;
  stroke: #ffffff !important;
}

body[data-theme="dark"] #dash-share-dropdown-menu {
  background-color: #333333 !important;
  border-color: #404040 !important;
}

body[data-theme="dark"] #dash-share-dropdown-menu button {
  color: #ffffff !important;
}

body[data-theme="dark"] #dash-share-dropdown-menu button:hover {
  background-color: #404040 !important;
  color: #537bae !important;
}

/* ==========================================================================
   CHAT / MENSAGENS — Light & Dark Mode
   Light: Lista de conversas #FAFAFA | Fundo das mensagens #FFFFFF
   Dark:  Lista de conversas #252525 | Fundo das mensagens #252525 | Header/Input #333333
   ========================================================================== */
body:not([data-theme="dark"]) #b2b-messages-view .b2b-chat-contacts-column,
body:not([data-theme="dark"]) #b2b-messages-view #b2b-chat-contacts-list {
  background-color: #FAFAFA !important;
}

body[data-theme="dark"].b2b-chat-mode .dashboard-main-area,
body[data-theme="dark"] #b2b-messages-view,
body[data-theme="dark"] #b2b-messages-view > div,
body[data-theme="dark"] #b2b-messages-view .b2b-chat-contacts-column,
body[data-theme="dark"] #b2b-chat-contacts-list,
body[data-theme="dark"] #b2b-chat-messages-container {
  background-color: #252525 !important;
  background: #252525 !important;
}

/* Bordas da seção de mensagens */
body[data-theme="dark"] #b2b-messages-view .border-zinc-200,
body[data-theme="dark"] #b2b-messages-view .border-zinc-200\/70,
body[data-theme="dark"] #b2b-messages-view .border-zinc-200\/60,
body[data-theme="dark"] #b2b-messages-view .divide-zinc-200\/60 > * {
  border-color: #404040 !important;
}

/* Header do Chat Ativo */
body[data-theme="dark"] #b2b-messages-view .h-\[64px\] {
  background-color: #333333 !important;
  border-color: #404040 !important;
}

body[data-theme="dark"] #b2b-chat-active-name {
  color: #ffffff !important;
}

body[data-theme="dark"] #b2b-chat-active-status {
  color: #a1a1aa !important;
}

/* Itens da lista de conversas */
body[data-theme="dark"] #b2b-chat-contacts-list > div:hover {
  background-color: #333333 !important;
}

body[data-theme="dark"] #b2b-chat-contacts-list > div.bg-\[\#EBF4FF\] {
  background-color: #333333 !important;
  border-left-color: #537bae !important;
}

body[data-theme="dark"] #b2b-chat-contacts-list h4 {
  color: #ffffff !important;
}

body[data-theme="dark"] #b2b-chat-contacts-list p {
  color: #a1a1aa !important;
}

body[data-theme="dark"] #b2b-chat-contacts-list span.bg-white\/70 {
  background-color: #333333 !important;
  border-color: #404040 !important;
  color: #d4d4d8 !important;
}

/* Stream de mensagens trocadas (#252525) */
body[data-theme="dark"] #b2b-chat-messages-container {
  background-color: #252525 !important;
  background: #252525 !important;
}

/* Badge de data ("Hoje") */
body[data-theme="dark"] #b2b-chat-messages-container span.bg-white {
  background-color: #333333 !important;
  border-color: #404040 !important;
  color: #a1a1aa !important;
}

/* Balão do fornecedor */
body[data-theme="dark"] #b2b-chat-messages-container .bg-white.border {
  background-color: #333333 !important;
  border-color: #404040 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #b2b-chat-messages-container .bg-white.border p {
  color: #ffffff !important;
}

/* Barra inferior de envio de mensagem */
body[data-theme="dark"] #b2b-messages-view .p-4.bg-white.border-t {
  background-color: #333333 !important;
  border-color: #404040 !important;
}

body[data-theme="dark"] #b2b-chat-input {
  background-color: #404040 !important;
  border-color: #4f4f4f !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #b2b-chat-input::placeholder {
  color: #a1a1aa !important;
}

body[data-theme="dark"] #b2b-chat-attach-btn {
  background-color: #404040 !important;
  border-color: #4f4f4f !important;
  color: #ffffff !important;
}

/* Balão de mensagem do usuário à direita no Dark Mode (Texto em #ebf4ff) */
body[data-theme="dark"] #b2b-messages-view .chat-bubble-user-glass,
body[data-theme="dark"] .chat-bubble-user-glass {
  background: #252525 !important;
  background-color: #252525 !important;
  border: 1px solid #404040 !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) !important;
  color: #ebf4ff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body[data-theme="dark"] #b2b-messages-view .chat-bubble-user-glass,
body[data-theme="dark"] #b2b-messages-view .chat-bubble-user-glass p,
body[data-theme="dark"] #b2b-messages-view .chat-bubble-user-glass span,
body[data-theme="dark"] #b2b-messages-view .chat-bubble-user-glass div,
body[data-theme="dark"] .chat-bubble-user-glass,
body[data-theme="dark"] .chat-bubble-user-glass p,
body[data-theme="dark"] .chat-bubble-user-glass span,
body[data-theme="dark"] .chat-bubble-user-glass div {
  color: #ebf4ff !important;
  text-shadow: none !important;
}

/* Barra de rolagem nos chats (#333333 no Light Mode) */
body:not([data-theme="dark"]) #b2b-messages-view ::-webkit-scrollbar-thumb,
body:not([data-theme="dark"]) #b2b-chat-messages-container::-webkit-scrollbar-thumb,
body:not([data-theme="dark"]) #b2b-chat-contacts-list::-webkit-scrollbar-thumb {
  background-color: #333333 !important;
  background: #333333 !important;
  border-radius: 9999px !important;
}

body:not([data-theme="dark"]) #b2b-messages-view ::-webkit-scrollbar-thumb:hover,
body:not([data-theme="dark"]) #b2b-chat-messages-container::-webkit-scrollbar-thumb:hover,
body:not([data-theme="dark"]) #b2b-chat-contacts-list::-webkit-scrollbar-thumb:hover {
  background-color: #222222 !important;
  background: #222222 !important;
}

body:not([data-theme="dark"]) #b2b-chat-messages-container,
body:not([data-theme="dark"]) #b2b-chat-contacts-list {
  scrollbar-color: #333333 transparent !important;
}

/* Barra de rolagem nos chats (#000000 no Dark Mode) */
body[data-theme="dark"].b2b-chat-mode ::-webkit-scrollbar-thumb,
body[data-theme="dark"] #b2b-messages-view ::-webkit-scrollbar-thumb,
body[data-theme="dark"] #b2b-chat-messages-container::-webkit-scrollbar-thumb,
body[data-theme="dark"] #b2b-chat-contacts-list::-webkit-scrollbar-thumb {
  background-color: #000000 !important;
  background: #000000 !important;
  border-radius: 9999px !important;
}

body[data-theme="dark"].b2b-chat-mode ::-webkit-scrollbar-thumb:hover,
body[data-theme="dark"] #b2b-messages-view ::-webkit-scrollbar-thumb:hover,
body[data-theme="dark"] #b2b-chat-messages-container::-webkit-scrollbar-thumb:hover,
body[data-theme="dark"] #b2b-chat-contacts-list::-webkit-scrollbar-thumb:hover {
  background-color: #000000 !important;
  background: #000000 !important;
}

body[data-theme="dark"].b2b-chat-mode ::-webkit-scrollbar-track,
body[data-theme="dark"] #b2b-messages-view ::-webkit-scrollbar-track,
body[data-theme="dark"] #b2b-chat-messages-container::-webkit-scrollbar-track,
body[data-theme="dark"] #b2b-chat-contacts-list::-webkit-scrollbar-track {
  background: transparent !important;
}

body[data-theme="dark"] #b2b-chat-messages-container,
body[data-theme="dark"] #b2b-chat-contacts-list {
  scrollbar-color: #000000 transparent !important;
}

/* ==========================================================================
   TEMA ESCURO: MENUS ATIVOS & ABAS DE SUBMENU (#ebf4ff no texto e barra embaixo)
   ========================================================================== */
body[data-theme="dark"] .love-tab-item.active,
body[data-theme="dark"] button.love-tab-item.active,
body[data-theme="dark"] .editor-sub-tab-btn.active,
body[data-theme="dark"] button.editor-sub-tab-btn.active,
body[data-theme="dark"] .tab-invite-filter.active,
body[data-theme="dark"] button.tab-invite-filter.active,
body[data-theme="dark"] .category-tab.active,
body[data-theme="dark"] button.category-tab.active,
body[data-theme="dark"] .subnav-item.active,
body[data-theme="dark"] .sub-menu-item.active,
body[data-theme="dark"] [role="tab"].active,
body[data-theme="dark"] [role="tab"][aria-selected="true"],
body[data-theme="dark"] .active[class*="border-b"],
body[data-theme="dark"] [class*="border-b"].active,
body[data-theme="dark"] .active[class*="border-b-2"],
body[data-theme="dark"] [class*="border-b-2"].active {
  color: #ebf4ff !important;
  border-bottom-color: #ebf4ff !important;
  border-color: #ebf4ff !important;
}

body[data-theme="dark"] .love-tab-item.active *,
body[data-theme="dark"] .editor-sub-tab-btn.active *,
body[data-theme="dark"] .tab-invite-filter.active *,
body[data-theme="dark"] .category-tab.active *,
body[data-theme="dark"] .active[class*="border-b"] *,
body[data-theme="dark"] [class*="border-b"].active *,
body[data-theme="dark"] .active[class*="border-b-2"] *,
body[data-theme="dark"] [class*="border-b-2"].active * {
  color: #ebf4ff !important;
}

/* Carteira Digital: Botão Solicitar Saque (#ebf4ff com texto em preto no Dark Mode) */
body[data-theme="dark"] .btn-trigger-withdraw-pix,
body[data-theme="dark"] button.btn-trigger-withdraw-pix {
  background-color: #ebf4ff !important;
  background: #ebf4ff !important;
  color: #000000 !important;
  border-color: #ebf4ff !important;
}

body[data-theme="dark"] .btn-trigger-withdraw-pix:hover,
body[data-theme="dark"] button.btn-trigger-withdraw-pix:hover {
  background-color: #dbeafe !important;
  background: #dbeafe !important;
  color: #000000 !important;
}

body[data-theme="dark"] .btn-trigger-withdraw-pix span,
body[data-theme="dark"] .btn-trigger-withdraw-pix * {
  color: #000000 !important;
  font-weight: 700 !important;
}

/* Carteira Digital: Card Saldo Disponível (Offwhite no Light / #333333 no Dark) */
body:not([data-theme="dark"]) #wallet-card-saldo-disponivel {
  background-color: #FAFAFA !important;
  background: #FAFAFA !important;
  border: 1px solid rgba(228, 228, 231, 0.8) !important;
}

body:not([data-theme="dark"]) #wallet-card-saldo-disponivel #wallet-balance-disponivel {
  color: #18181b !important;
}

body:not([data-theme="dark"]) #wallet-card-saldo-disponivel span:not(.btn-trigger-withdraw-pix span),
body:not([data-theme="dark"]) #wallet-card-saldo-disponivel p {
  color: #71717a !important;
}

body[data-theme="dark"] #wallet-card-saldo-disponivel {
  background-color: #333333 !important;
  background: #333333 !important;
  border-color: #404040 !important;
  color: #ffffff !important;
}

body[data-theme="dark"] #wallet-card-saldo-disponivel #wallet-balance-disponivel {
  color: #ffffff !important;
}

body[data-theme="dark"] #wallet-card-saldo-disponivel span:not(.btn-trigger-withdraw-pix span),
body[data-theme="dark"] #wallet-card-saldo-disponivel p {
  color: #d4d4d8 !important;
}

/* Espaçamento elegante entre a Contagem Regressiva e a Data na prévia do convite */
#live-preview-countdown-label {
  margin-bottom: 0.75rem !important;
}



/* ==========================================================================
   CARDS DA CONTAGEM REGRESSIVA (Dias, Horas, Minutos e Segundos)
   ========================================================================== */
.countdown-unit-box {
  background-color: rgba(250, 250, 250, 0.95);
  border: 1px solid rgba(228, 228, 231, 0.9);
  transition: all 0.2s ease;
}

body[data-theme="dark"] .countdown-unit-box {
  background-color: #333333 !important;
  border-color: #404040 !important;
}

body[data-theme="dark"] .countdown-number {
  color: #ffffff !important;
}

body[data-theme="dark"] .countdown-unit-label {
  color: #a1a1aa !important;
}

#live-preview-buttons-callout {
  color: #71717a;
  transition: color 0.2s ease;
}

body[data-theme="dark"] #live-preview-buttons-callout {
  color: #d4d4d8 !important;
}

/* Coração de favoritar (Explorar > página do fornecedor): no mobile usa a cor
   da marca em vez do rosa/vermelho das bolinhas de mensagem/notificação. */
@media (max-width: 767px) {
  #b2b-vendor-detail-fav-icon.fill-\[\#c7305b\] {
    fill: #537bae !important;
    color: #537bae !important;
  }
}












/* ==========================================================================
   Barras de título sem sombra (pedido do cliente): busca, local, grade/lista
   e botões de ação de Meus convidados, Meus presentes, Encontrar fornecedor,
   Favoritos, Meus contratos e Chat. Sobrepõe a sombra global de
   .bg-white.rounded-xl e a do .btn-primary.
   ========================================================================== */
#tab-rsvp .builder-toolbar input,
#tab-rsvp .builder-toolbar .btn-primary,
#tab-gifts .builder-toolbar .btn-primary,
#b2b-top-search-bar input,
#b2b-top-search-bar #b2b-view-toggle,
#b2b-chat-input,
#b2b-chat-send-btn {
  box-shadow: none !important;
}

/* Configurações da conta: e-mail não editável em cinza claro (a regra global
   de inputs deixava o campo branco, parecendo editável). */
/* Também: Cidade em Informações, travada porque vem do CEP. */
#settings-user-email:disabled,
#editor-data-city-uf-view:disabled {
  background-color: #F4F4F5 !important;
  color: #71717A !important;
  -webkit-text-fill-color: #71717A;
  border-color: #E4E4E7 !important;
  cursor: not-allowed;
  opacity: 1;
}

/* As bolinhas acima forçam display:flex !important — sem isso o .hidden
   nunca escondia nada: o sino mostrava o "3" fixo do HTML até carregar e
   "0" quando não havia notificação não lida. */
.badge-header-chat.hidden,
.badge-header-notifications.hidden,
.badge-recados-count.hidden {
  display: none !important;
}

/* Página do fornecedor: nome em negrito (a regra global de títulos h2 deixava 400). */
#b2b-profile-name {
  font-weight: 700 !important;
}

/* Meus convidados: caixa da lista no visual dos cards de Benefícios Love
   (sem linha, com a mesma sombra leve). */
#tab-rsvp .dash-card {
  border-color: transparent;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
}

/* Carteira e Configurações da lista de presentes: cards no visual de
   Benefícios Love (sem linha, com a mesma sombra leve). As caixinhas internas
   (bg-zinc-50) e o card de parcelamento selecionado (.active, cujo contorno
   indica a escolha) ficam como estão. */
#tab-wallet .rounded-2xl.border:not(button),
#gifts-panel-settings .installment-card:not(.active),
#gifts-panel-settings label.rounded-xl.border {
  border-color: transparent !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

/* Dashboard (Visão Geral): Guia de primeiros passos, cards e carrossel no
   visual de Benefícios Love — sem linha, sombra (a mesma de todas as caixas
   da plataforma) e maior no hover. As etiquetas redondas (data/local do evento) ficam como estão. */
#tab-overview .bg-white.border:not(.rounded-full),
#quick-start-guide-widget,
#dashboard-promo-carousel {
  border-color: transparent !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}
#tab-overview .bg-white.border.group:hover:not(.rounded-full),
#dashboard-promo-carousel:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04) !important;
}

/* Meus convidados: tabela no mesmo padrão das listas do Admin (table.data em
   Admin/css/admin.css) — cabeçalho escuro em negrito, faixas alternadas (branca e a cor da barra de título, #FAFAFA)
   , hover azul-claro e as faixas indo de ponta a ponta
   da caixa. */
#tab-rsvp .dash-card {
  padding: 1.25rem 0 0;
  overflow: hidden;
}
#tab-rsvp .dash-card > .overflow-x-auto { margin: 0; }
#tab-rsvp .guests-table th {
  color: #333333;
  font-weight: 700;
}
#tab-rsvp .guests-table th:first-child,
#tab-rsvp .guests-table td:first-child { padding-left: 1.5rem; }
#tab-rsvp .guests-table th:last-child,
#tab-rsvp .guests-table td:last-child { padding-right: 1.5rem; }
#tab-rsvp .guests-table td {
  border-top: 1px solid #F2F3F6;
  vertical-align: middle;
  transition: background .12s ease;
}
#tab-rsvp .guests-table tbody tr:nth-child(odd) td { background: #FFFFFF; }
#tab-rsvp .guests-table tbody tr:nth-child(even) td { background: #FAFAFA; }
#tab-rsvp .guests-table tbody tr:hover td { background: #EBF4FF; }
#tab-rsvp .dash-card .guests-pagination {
  margin-top: 0;
  padding: 1rem 1.5rem 1.25rem;
}

/* Orçamento e Extrato: mesmo padrão de tabela de Meus convidados / Admin —
   cabeçalho sem faixa (só a linha embaixo), escuro em negrito; linhas
   alternando de 1 em 1 (branca e #FAFAFA, a cor da barra de título) e hover azul-claro. */
#wallet-sub-budget .budget-table-full-bleed thead,
#wallet-sub-budget .budget-table-full-bleed thead tr,
#wallet-sub-statement .budget-table-full-bleed thead,
#wallet-sub-statement .budget-table-full-bleed thead tr {
  background: transparent;
  border-top: none;
}
#wallet-sub-budget .budget-table-full-bleed thead th,
#wallet-sub-statement .budget-table-full-bleed thead th {
  color: #333333;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border-card);
}
#wallet-sub-budget #budget-expenses-tbody tr td,
#wallet-sub-statement #wallet-transactions-list tr td {
  border-top: 1px solid #F2F3F6;
  transition: background .12s ease;
}
#wallet-sub-budget #budget-expenses-tbody tr:first-child td,
#wallet-sub-statement #wallet-transactions-list tr:first-child td { border-top: none; }
#wallet-sub-budget #budget-expenses-tbody tr:nth-child(odd) td,
#wallet-sub-statement #wallet-transactions-list tr:nth-child(odd) td { background: #FFFFFF; }
#wallet-sub-budget #budget-expenses-tbody tr:nth-child(even) td,
#wallet-sub-statement #wallet-transactions-list tr:nth-child(even) td { background: #FAFAFA; }
#wallet-sub-budget #budget-expenses-tbody tr:hover td,
#wallet-sub-statement #wallet-transactions-list tr:hover td { background: #EBF4FF; }

/* Extrato: mesma caixa e tabela de Meus convidados (sem linha, sombra leve,
   faixas de ponta a ponta). As faixas/hover das linhas já vêm das regras de
   #wallet-transactions-list acima. */
#wallet-sub-statement .dash-card {
  padding: 1.25rem 0 0;
  overflow: hidden;
  border-color: transparent;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
}
#wallet-sub-statement .guests-table th {
  color: #333333;
  font-weight: 700;
}
#wallet-sub-statement .guests-table td { vertical-align: middle; }
#wallet-sub-statement .guests-table th:first-child,
#wallet-sub-statement .guests-table td:first-child { padding-left: 1.5rem; }
#wallet-sub-statement .guests-table th:last-child,
#wallet-sub-statement .guests-table td:last-child { padding-right: 1.5rem; }
#wallet-sub-statement #wallet-transactions-list tr.linha-vazia td,
#wallet-sub-statement #wallet-transactions-list tr.linha-vazia:hover td { background: #FFFFFF; }

/* Convite publicado e prévias (Informações/Anfitriões): sem a borda tracejada
   transparente de 1px das seções — ela só serve ao hover do editor e deixava
   uma linha do fundo da seção (branca) em volta da foto da capa. */
#public-preview-root .builder-section,
#classic-builder-preview .builder-section {
  border: 0;
}


/* Lista de convidados: C = convidado, A = acompanhante (à esquerda do nome). */
.guest-tipo-badge { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; line-height: 1; }
.guest-tipo-badge.is-convidado { background: #E8EEF3; color: #183b54; }
.guest-tipo-badge.is-acompanhante { background: #F4F4F5; color: #71717A; }


/* Mapear mesas preenche só o espaço que sobra até o rodapé (sem faixa branca
   e sem rolagem quando cabe na tela). A planta só fica mais alta — e a
   página rola — quando as mesas passam da área visível. */
.dashboard-content-wrapper:has(> #tab-rsvp-tables.active) {
  display: flex;
  flex-direction: column;
  padding-bottom: 0 !important;
}
#tab-rsvp-tables.dashboard-tab-content.active {
  display: flex !important;
  flex-direction: column;
  flex: 1 0 auto;
  padding-bottom: 0;
}
#tab-rsvp-tables .floorplan-wrap { flex: 1 0 auto; display: flex; flex-direction: column; }
#tab-rsvp-tables .floorplan-body { flex: 1 0 auto; }
#tab-rsvp-tables .floorplan-sidebar { max-height: none; min-height: 0; }
#tab-rsvp-tables .floorplan-canvas { min-height: 360px; }

/* Mapear mesas: sem a margem de 40px acima do rodapé (rsvp-mode) — a planta e
   a linha da lista de convidados vão até o rodapé. */
body.rsvp-mode .dashboard-main-area:has(#tab-rsvp-tables.active) > footer {
  margin-top: 0 !important;
}


/* Aparência: área para soltar um elemento logo abaixo da capa e criar uma
   seção nova (acima dos botões). Escondida até começar a arrastar. */
.builder-new-section-dropzone { display: none; }
#builder-canvas.is-arrastando-elemento .builder-new-section-dropzone.is-perto {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0.75rem 1.25rem;
  min-height: 56px;
  padding: 0.75rem 1rem;
  border: 1.5px dashed var(--primary-blue, #537bae);
  border-radius: 10px;
  background: #F8FAFC;
  color: #537bae;
  font-size: 0.75rem;
  font-weight: 600;
  text-align: center;
}
.builder-new-section-dropzone .sortable-ghost,
.builder-new-section-dropzone .builder-el-item { width: 100%; height: 36px; opacity: 0.6; }
.builder-new-section-dropzone > .builder-element { display: none; }


/* ==========================================================================
   Telas internas do convite (Informações, Lista de Presentes, Confirmar
   presença, Sobre) — convite publicado e prévia da aba Informações no editor.
   ========================================================================== */
/* Os pesos abaixo usam !important: uma regra geral (p:not(footer p)) força
   peso 400 em todo parágrafo, com !important. */
/* Telas internas do convite: Informações, Lista de Presentes, Confirmar presença */
.convite-tela { padding: 1.5rem 1.5rem 3rem; font-family: 'Inter', sans-serif; color: #18181B; }
/* Voltar: setinha numa caixinha cinza-clara, à esquerda do título. */
.convite-voltar { flex: 0 0 auto; width: 36px; height: 36px; border: 0; border-radius: 0; background: transparent; color: #18181B; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.convite-voltar svg { width: 24px; height: 24px; }
.convite-voltar:hover { background: transparent; color: #18181B; }
.convite-tela-titulo { font-size: 1.5rem; font-weight: 700; margin: 1.25rem 0 1.5rem; letter-spacing: -0.01em; }
/* Cabeçalho das telas internas (Voltar + título) sempre branco, de ponta a ponta. */
/* Música de fundo: player do YouTube fora da tela + botão pequeno de pausar/tocar. */
#convite-musica { position: fixed; left: -9999px; top: 0; width: 200px; height: 200px; overflow: hidden; pointer-events: none; opacity: 0; }
.convite-musica-botao { position: fixed; right: 14px; bottom: 14px; z-index: 60; width: 40px; height: 40px; border-radius: 9999px; border: 0; background: rgba(255,255,255,0.92); color: #18181B; box-shadow: 0 2px 8px rgba(0,0,0,0.12), 0 1px 3px rgba(0,0,0,0.06); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.convite-musica-botao svg { width: 18px; height: 18px; }
.convite-musica-botao:not(.is-tocando) { color: #A1A1AA; }
.convite-musica-botao:not(.is-tocando)::after { content: ''; position: absolute; width: 22px; height: 1.5px; background: currentColor; transform: rotate(-45deg); }
/* Voltar à esquerda e título sempre centralizado (a coluna da direita
   tem a mesma largura do botão, para o centro ser o centro de verdade). */
.convite-tela-topo { background: #FFFFFF; margin: -1.5rem -1.5rem 0; padding: 1rem 1.5rem; display: grid; grid-template-columns: 36px minmax(0, 1fr) 36px; align-items: center; gap: 0.5rem; }
.convite-tela-topo .convite-tela-titulo { margin: 0; grid-column: 2; text-align: center; font-size: 1.25rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.convite-tela-topo + :not(.convite-tela-capa) { margin-top: 1.5rem; }
/* Foto cheia, de ponta a ponta (sem as margens da tela), com a mesma
   altura da capa da página principal do convite. */
.convite-tela-capa { margin: 0 -1.5rem 1.5rem; height: 348px; overflow: hidden; background: #F4F4F5; }
.convite-tela-capa img { width: 100%; height: 100%; object-fit: cover; display: block; }
.convite-vazio { color: #71717A; font-size: 0.9375rem; line-height: 1.6; }
.convite-info { padding: 1rem 0; border-top: 1px solid #EAEAEA; }
.convite-info:first-of-type { border-top: 0; padding-top: 0; }
/* Quando / Local / Endereço / Ponto de referência: caixa branca. */
.convite-info-caixa { background: #FFFFFF; border-radius: 10px; padding: 1rem 1.125rem; box-shadow: 0 2px 8px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04); margin-bottom: 1rem; }
.convite-info-caixa .convite-info:last-child { padding-bottom: 0; }
/* Quando / Local / Endereço / Ponto de referência: rótulos em negrito, escuros. */
.convite-info-caixa .convite-info-rotulo { color: #18181B; font-weight: 800 !important; font-size: 0.75rem; }
.convite-info-rotulo { font-size: 0.6875rem; font-weight: 700 !important; text-transform: uppercase; letter-spacing: 0.04em; color: #71717A; margin: 0 0 0.35rem; }
.convite-info-valor { font-size: 0.9375rem; line-height: 1.55; margin: 0; }
.convite-link { display: inline-block; margin-top: 0.5rem; font-size: 0.875rem; font-weight: 600; color: var(--bx-primary, #537bae); }
.convite-presentes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.875rem; }
.convite-presente { background: #FFFFFF; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04); }
.convite-presente.is-recebido { opacity: 0.55; }
.convite-presente-foto { aspect-ratio: 1 / 1; background: linear-gradient(135deg, #EFF6FF, #FAFAFA, #FFF7ED); }
.convite-presente-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.convite-presente-texto { padding: 0.65rem 0.75rem 0.8rem; }
.convite-presente-nome { font-size: 0.8125rem; font-weight: 600 !important; margin: 0 0 0.2rem; line-height: 1.35; }
.convite-presente-valor { font-size: 0.8125rem; color: #71717A; margin: 0; }
.convite-form { display: flex; flex-direction: column; gap: 1rem; }
.convite-form label { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.8125rem; font-weight: 600; }
.convite-form label span { font-weight: 400; color: #A1A1AA; }
.convite-form input { font: inherit; font-weight: 400; font-size: 0.9375rem; padding: 0.8rem 0.9rem; border-radius: 12px; border: 1px solid #E4E4E7; background: #FFFFFF; color: #18181B; }
.convite-form input:focus { outline: none; border-color: var(--bx-primary, #537bae); box-shadow: 0 0 0 3px rgba(83,123,174,0.15); }
.convite-erro { color: #DC2626; font-size: 0.8125rem; margin: 0; }
.convite-botao { margin-top: 0.5rem; padding: 0.9rem 1rem; border: 0; border-radius: 12px; background: var(--bx-primary, #537bae); color: #FFFFFF; font: inherit; font-weight: 700; font-size: 0.9375rem; cursor: pointer; }
.convite-botao:disabled { opacity: 0.7; cursor: default; }
.convite-sucesso { text-align: center; padding: 2rem 0; font-size: 0.9375rem; line-height: 1.6; color: #3F3F46; }
.convite-sucesso-titulo { font-size: 1.25rem; font-weight: 700 !important; color: #18181B; margin: 0 0 0.5rem; }
.convite-sobre-nomes { margin-bottom: 1.25rem; font-weight: 600 !important; }
.convite-sobre-texto { font-size: 0.9375rem; line-height: 1.7; color: #3F3F46; margin: 0; }


/* Botão de música do convite: círculo translúcido (como o voltar do presente),
   sem contorno, ícone preto (!important: regras gerais de botão da plataforma
   mudam raio e cor). */
.convite-musica-botao,
.convite-musica-botao:not(.is-tocando) {
  border-radius: 50% !important;
  border: 0 !important;
  background: rgba(255, 255, 255, 0.6) !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  color: #000000 !important;
}
.convite-musica-botao svg { stroke: #000000 !important; }


/* Aparência: durante o arraste, cada seção ganha um espaço embaixo do último
   elemento — fica fácil soltar logo abaixo de um título já existente. */
#builder-canvas.is-arrastando-elemento .builder-elements-list:not(.is-empty) {
  padding-bottom: 44px;
  transition: padding-bottom .12s ease;
}


/* Pop-up de cor: "Remover" abaixo da cor/código/copiar (ex.: Cor da transição). */
.color-alpha-remove-btn {
  display: block;
  width: 100%;
  margin-top: 0.5rem;
  padding: 0.45rem 0.5rem;
  border: 1px solid #E4E4E7;
  border-radius: 8px !important;
  background: #FFFFFF;
  color: #DC2626;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
}
.color-alpha-remove-btn:hover { background: #FEF2F2; }


/* Botões de navegação: mesmo tamanho (altura e largura) em qualquer formato
   de ícone — Nenhum, Clássicos, Modernos ou Animados. A altura é fixa e todo
   ícone ocupa a mesma caixa de 22px; o círculo dos Modernos cabe nela. */
.builder-quicknav-btn {
  height: 52px !important;
  min-height: 52px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
  line-height: 1.2;
}
.builder-quicknav-icon,
.builder-quicknav-emoji,
.builder-quicknav-icon-modern {
  width: 22px !important;
  height: 22px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.builder-quicknav-icon svg { width: 18px; height: 18px; }
.builder-quicknav-emoji { font-size: 1.05rem; line-height: 1; }
.builder-quicknav-icon-modern svg { width: 12px !important; height: 12px !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .builder-quicknav-btn { height: 48px !important; min-height: 48px !important; }
}


/* Prévia do editor: botão de música igual ao do convite publicado —
   círculo branco com contorno e nota pretos; riscado quando pausado. */
.musica-botao-previa {
  position: sticky;
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  border: 1.5px solid #000000;
  background: #FFFFFF;
  color: #000000;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12), 0 1px 3px rgba(0,0,0,0.06);
}
.musica-botao-previa.hidden { display: none !important; }
.musica-botao-previa svg { width: 18px; height: 18px; pointer-events: none; }
.musica-botao-previa:not(.is-tocando)::after { content: ''; position: absolute; width: 22px; height: 1.5px; background: currentColor; transform: rotate(-45deg); }


/* Chat: foto do fornecedor em quadrado com cantos arredondados (nunca círculo). */
.chat-avatar-quadrado { border-radius: 10px !important; }
#b2b-chat-active-avatar { border-radius: 10px !important; }


/* Meus presentes: status (Ativo / Comprado) numa caixinha quadrada cinza-clara. */
.gift-status-badge {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 0.15rem 0.5rem;
  border-radius: 0 !important;
  background: #F4F4F5;
  color: #52525B;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
}
/* Presente comprado: esmaecido, sem clique no cartão (Editar/Excluir funcionam). */
.gift-card-comprado { opacity: 0.55; cursor: default; }
.gift-card-comprado:hover { opacity: 0.55; }
#btn-submit-gift-icon.hidden { display: none !important; }


/* Tela interna sem cabeçalho (prévia de Informações no editor): a foto começa colada no topo. */
.convite-tela > .convite-tela-capa:first-child { margin-top: -1.5rem; }


/* Capa das telas internas (Informações): camadas de cor e transição por cima da foto. */
.convite-tela-capa { position: relative; }
.convite-tela-capa-camada { position: absolute; pointer-events: none; }


/* Explorar: categoria do fornecedor ao lado do nome da empresa. */
.b2b-categoria-tag {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  max-width: 180px;
  padding: 0.2rem 0.55rem;
  border-radius: 6px;
  background: #F4F4F5;
  color: #52525B;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* Etiqueta da categoria do fornecedor: só contorno cinza, fundo transparente. */
.b2b-categoria-tag { background: transparent !important; border: 1px solid #D4D4D8; }


/* Meus convidados: o convidado e seus acompanhantes formam um grupo com a
   mesma cor (o grupo alterna, não cada linha). O acompanhante fica recuado,
   com um traço de ligação, como subitem do convidado logo acima. */
#tab-rsvp .guests-table tbody tr.grupo-impar td { background: #FFFFFF; }
#tab-rsvp .guests-table tbody tr.grupo-par td { background: #FAFAFA; }
#tab-rsvp .guests-table tbody tr.grupo-impar:hover td,
#tab-rsvp .guests-table tbody tr.grupo-par:hover td { background: #EBF4FF; }
#tab-rsvp .guests-table tbody tr.is-acompanhante-row td { border-top-color: transparent; }
#tab-rsvp .guests-table tbody tr.is-acompanhante-row td:first-child { padding-left: 2.25rem; }
.guest-sub-conector {
  flex: 0 0 auto;
  width: 10px;
  height: 12px;
  margin-top: -8px;
  border-left: 1.5px solid #D4D4D8;
  border-bottom: 1.5px solid #D4D4D8;
  border-bottom-left-radius: 4px;
}


/* Botão de perfil: o ícone de pessoa some quando há avatar (ver .love-avatar-box). */
#header-user-icon.hidden { display: none !important; }

/* Chat: iniciais da minha conta no avatar das minhas mensagens (estilo do Hub). */
.chat-avatar-iniciais {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: #EBF4FF; color: #183B54;
  font-size: 0.625rem; font-weight: 700; letter-spacing: 0.02em; line-height: 1;
}


/* ==========================================================================
   Padrão de avatar e botões do chat igual ao Hub B2B (B2B/css/styles.css:
   #topbar-user-avatar, .avatar-initials, .chat-composer-icon-btn,
   .chat-unread-count).
   ========================================================================== */
/* Caixinha de avatar (cabeçalho e menu do perfil): 40×40, fundo branco,
   borda 1px #E4E4E7, cantos 8px. Iniciais azul-escuras sobre o branco;
   foto preenchendo com cantos 7px. */
.love-avatar-box {
  width: 40px !important; height: 40px !important;
  min-width: 40px; flex-shrink: 0;
  box-sizing: border-box !important;
  border-radius: 8px !important;
  background: #FFFFFF !important;
  border: 1px solid #E4E4E7 !important;
  display: inline-flex; align-items: center; justify-content: center;
  overflow: hidden;
  color: #183B54 !important;
}
.love-avatar-box.hidden { display: none !important; }
.love-avatar-iniciais {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: #FFFFFF; color: #183B54;
  font-weight: 700; font-size: 0.8125rem; letter-spacing: 0.02em; line-height: 1;
  border-radius: 7px;
}
.love-avatar-foto { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 7px; }

/* Botão do cabeçalho: com avatar, o botão é só a caixinha (sem fundo, borda
   ou espaço próprios). */
button#btn-user-account-menu.tem-avatar {
  width: 40px !important; height: 40px !important;
  min-width: 40px !important; min-height: 40px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 8px !important;
  transition: none !important;
}
button#btn-user-account-menu.tem-avatar:hover { background: transparent !important; }

/* Topo do menu do perfil */
.account-dropdown-header {
  display: flex; align-items: center; gap: 0.75rem;
  padding: 0.625rem 0.875rem 0.875rem;
  margin-bottom: 0.25rem;
  border-bottom: 1px solid #F0F0F1;
}
.account-dropdown-name { font-size: 0.875rem; font-weight: 700; color: #18181B; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.account-dropdown-email { font-size: 0.75rem; color: #71717A; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Botões da barra de escrever do chat (anexo "+" e similares) */
.chat-composer-icon-btn {
  width: 40px !important; height: 40px !important;
  flex-shrink: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  padding: 0 !important;
  background: #FFFFFF !important;
  border: 1px solid #E4E4E7 !important;
  border-radius: 8px !important;
  color: #52525B !important;
  box-shadow: none !important;
  transition: border-color .15s ease, color .15s ease;
}
.chat-composer-icon-btn svg { width: 18px !important; height: 18px !important; transform-origin: center; }
.chat-composer-icon-btn:hover { background: #FFFFFF !important; border-color: #181D24 !important; color: #181D24 !important; }
.chat-composer-icon-btn:hover svg { transform: none; }
.chat-composer-icon-btn svg.-rotate-45 { transform: rotate(-45deg); }
.chat-composer-icon-btn:hover svg.-rotate-45 { transform: rotate(-45deg); }

/* Número de não lidas na lista de conversas */
.chat-unread-count {
  min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 9999px;
  background: #C7305B; color: #FFFFFF;
  font-size: 10px; font-weight: 700; line-height: 18px;
  text-align: center; flex-shrink: 0;
}

/* Mais específico que a regra geral de botões (que força 12px de raio). */
button#b2b-chat-attach-btn.chat-composer-icon-btn { border-radius: 8px !important; }
/* Selo de não lidas: caixa de 18px de altura mesmo dentro de texto. */
.chat-unread-count { display: inline-block; box-sizing: border-box; }
button#b2b-chat-attach-btn.chat-composer-icon-btn.chat-composer-icon-btn.chat-composer-icon-btn { border-radius: 8px !important; }
button#btn-user-account-menu.tem-avatar.tem-avatar.tem-avatar { border-radius: 8px !important; }

/* ==========================================================================
   Identidade própria, sem cara de Tailwind
   Bordas finas no lugar de sombras, cantos contidos (8px em botões, campos
   e caixinhas; 10px em cards e modais), nada de zoom no hover nem anel
   colorido no foco. Overlays (menus, modais) mantêm uma sombra discreta só
   pra se descolarem do fundo.
   ========================================================================== */
.rounded-md, .rounded-lg, .rounded-xl { border-radius: 8px !important; }
.rounded-2xl:not([class*="rounded-b"]):not([class*="rounded-t"]):not([class*="rounded-l"]):not([class*="rounded-r"]),
.rounded-3xl:not([class*="rounded-b"]):not([class*="rounded-t"]):not([class*="rounded-l"]):not([class*="rounded-r"]) { border-radius: 10px !important; }

.shadow-2xs, .shadow-xs, .shadow-sm, .shadow, .shadow-md { box-shadow: none !important; }
.shadow-lg, .shadow-xl, .shadow-2xl { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important; }

[class*="hover:scale-"]:hover,
.group:hover [class*="group-hover:scale-"] { transform: none !important; }

[class*="focus:ring"]:focus,
[class*="focus:ring"]:focus-visible {
  box-shadow: none !important;
  border-color: #181D24 !important;
  outline: none !important;
}

/* Index: as caixas brancas grandes (cards) ganham a borda fina que
   substitui a sombra. Caixas menores (rounded-xl/lg) já têm borda própria
   quando precisam. */
.bg-white.rounded-2xl:not(button):not(a),
.bg-white.rounded-3xl:not(button):not(a) { border: 1px solid #E4E4E7; }
.btn-white { box-shadow: none !important; }

/* ==========================================================================
   Cards do index: sombra de volta + linha bem clara (pedido do cliente).
   A camada "sem cara de Tailwind" (e3a7426) tirou a sombra das caixas
   brancas e deixou a borda só no hover. Aqui volta a sombra suave de antes
   e a borda fica sempre visível, bem clara (#EEEEF0); no hover a sombra
   cresce um pouco e a borda continua a mesma. Overlays e campos de
   formulário não entram aqui (campos seguem o padrão do Hub: #E4E4E7).
   ========================================================================== */
html body .card-luxury,
html body .metric-card,
html body .dashboard-card,
html body .dash-card,
html body .ticket-card,
html body .dashboard-tab-content .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body .dashboard-main-area .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th) {
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.03) !important;
  transition: box-shadow .2s ease !important;
}
html body .card-luxury,
html body .metric-card,
html body .dashboard-card,
html body .dash-card,
html body .ticket-card,
html body .dashboard-main-area .bg-white.rounded-3xl:not(button):not(a),
html body .dashboard-main-area .bg-white.rounded-2xl:not(button):not(a),
html body .dashboard-main-area .bg-white.rounded-xl:not(button):not(a):not(input):not(select):not(textarea),
html body .dashboard-main-area .bg-white.rounded-lg:not(button):not(a):not(input):not(select):not(textarea),
html body .dashboard-main-area .bg-white[class*="rounded-[var(--radius-card"]:not(button):not(a),
html body .dashboard-main-area .bg-white[class*="shadow-"]:not(button):not(a):not(input):not(select):not(textarea) {
  border: 1px solid #EEEEF0 !important;
}
html body .card-luxury:hover,
html body .metric-card:hover,
html body .dashboard-card:hover,
html body .dashboard-tab-content .bg-white.group:hover:not(.b2b-item-card),
html body .dashboard-main-area .bg-white.group:hover:not(.b2b-item-card) {
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04) !important;
  border-color: #EEEEF0 !important;
}

/* Mesma sombra também quando a caixa está dentro de uma aba (as regras antigas usam o id da aba e eram mais fortes). */
html body #tab-overview .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-rsvp .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-gifts .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-wallet .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-edit-site .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-b2b .bg-white:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th) {
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.03) !important;
}
html body #tab-overview .bg-white.group:hover:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-rsvp .bg-white.group:hover:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-gifts .bg-white.group:hover:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-wallet .bg-white.group:hover:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-edit-site .bg-white.group:hover:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th),
html body #tab-b2b .bg-white.group:hover:not(button):not(input):not(select):not(textarea):not(.quick-start-item):not(.b2b-item-card):not(tr):not(td):not(th) {
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04) !important;
  border-color: #EEEEF0 !important;
}


/* Início (dashboard): a borda bem clara também nas caixas gerais — regras
   antigas com #tab-overview deixavam a borda transparente. Inclui o
   carrossel de promoções e os atalhos de "Mais recursos". */
html body #tab-overview .bg-white[class*="rounded"]:not(button):not(input):not(select):not(textarea):not(.rounded-full):not([class*="rounded-full"]),
html body #tab-overview .dashboard-promo-carousel,
html body #tab-overview .mais-recursos-btn {
  border: 1px solid #EEEEF0 !important;
}
html body #tab-overview .mais-recursos-btn { box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.03) !important; }


/* Carteira digital: mesma sombra suave + borda bem clara dos cards do index. */
html body #wallet-sub-digital .wallet-card {
  border: 1px solid #EEEEF0 !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.03) !important;
}
/* Dados de saque: acordeão */
.wallet-saque-acordeao { overflow: hidden; }
.wallet-saque-summary {
  list-style: none;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.1rem 1.5rem;
  cursor: pointer;
  user-select: none;
}
.wallet-saque-summary::-webkit-details-marker { display: none; }
.wallet-saque-seta { transition: transform .15s ease; }
.wallet-saque-acordeao[open] .wallet-saque-seta { transform: rotate(180deg); }
.wallet-saque-corpo { padding: 0 1.5rem 1.5rem; border-top: 1px solid #F0F0F1; padding-top: 1.1rem; }


/* /login: campos, "Continuar" e o botão do Google com a MESMA largura —
   o botão do Google vai no máximo a 400px, então a coluna do login também. */
#login-panel-signin, #login-panel-forgot, #login-panel-mfa { max-width: 400px; margin-left: auto; margin-right: auto; }

/* ==========================================================================
   Páginas do menu da conta: Dúvidas (/duvidas) e Configurações (/configuracoes)
   ========================================================================== */
.faq-categoria-titulo { margin: 0 0 .75rem; font-size: 1rem; font-weight: 700; color: #18181B; }
.faq-lista { background: #fff; border: 1px solid #E4E4E7; border-radius: var(--radius-card, 10px); overflow: hidden; }
.faq-item + .faq-item { border-top: 1px solid #E4E4E7; }
html body button.faq-pergunta:not(#love-faq-a):not(#love-faq-b) { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .95rem 1.25rem; border: 0; border-radius: 0 !important; background: #fff; text-align: left; font-size: .9375rem; font-weight: 600; line-height: 1.4; color: #18181B; cursor: pointer; }
html body .faq-pergunta:hover { color: #181D24; background: #fff; }
.faq-pergunta svg { width: 16px; height: 16px; flex-shrink: 0; color: #A1A1AA; transition: transform .2s; }
.faq-item.aberto .faq-pergunta svg { transform: rotate(180deg); }
.faq-resposta { display: none; padding: 0 1.25rem 1.05rem; font-size: .875rem; line-height: 1.6; color: #52525B; }
.faq-item.aberto .faq-resposta { display: block; }

/* Dúvidas: categorias à esquerda, perguntas da categoria escolhida à direita */
.faq-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 2rem; align-items: start; max-width: 1040px; }
.faq-categorias { display: flex; flex-direction: column; gap: .125rem; position: sticky; top: 1rem; }
html body button.faq-categoria-btn:not(#love-faq-a):not(#love-faq-b) { width: 100%; text-align: left; padding: .6rem .85rem; border: 0; border-left: 2px solid transparent; border-radius: 0 !important; background: transparent; font-size: .875rem; font-weight: 500; color: #71717A; cursor: pointer; }
html body button.faq-categoria-btn:not(#love-faq-a):not(#love-faq-b):hover { color: #181D24; background: transparent; }
html body button.faq-categoria-btn.ativa:not(#love-faq-a):not(#love-faq-b) { border-left-color: #183b54; color: #183b54; font-weight: 700; }
@media (max-width: 767px) {
  .faq-layout { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .faq-categorias { position: static; flex-direction: row; overflow-x: auto; gap: 1.25rem; border-bottom: 1px solid #E4E4E7; }
  html body button.faq-categoria-btn:not(#love-faq-a):not(#love-faq-b) { width: auto; white-space: nowrap; padding: .5rem 0; border-left: 0; border-bottom: 2px solid transparent; }
  html body button.faq-categoria-btn.ativa:not(#love-faq-a):not(#love-faq-b) { border-bottom-color: #183b54; }
}

/* Resposta do FAQ escrita no Admin: parágrafos, listas, links e vídeo. */
.faq-resposta p + p, .faq-resposta p + ul, .faq-resposta p + ol { margin-top: .5rem; }
.faq-resposta ul { list-style: disc; padding-left: 1.25rem; margin: .5rem 0; }
.faq-resposta ol { list-style: decimal; padding-left: 1.25rem; margin: .5rem 0; }
.faq-resposta a { color: #183b54; text-decoration: underline; }
.faq-resposta h2, .faq-resposta h3 { font-weight: 700; color: #18181B; margin: .75rem 0 .25rem; }
.faq-video { position: relative; width: 100%; aspect-ratio: 16 / 9; margin: .75rem 0; border-radius: 10px; overflow: hidden; background: #000; }
.faq-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Menu da conta: linhas divisórias mais fortes e de borda a borda da caixa
   (anulam o p-2 do #dropdown-user-account). */
#dropdown-user-account .account-dropdown-header {
  margin-left: -0.5rem; margin-right: -0.5rem;
  padding-left: 1.375rem; padding-right: 1.375rem;
  border-bottom-color: #E4E4E7;
}
#dropdown-user-account > .border-t {
  margin-left: -0.5rem; margin-right: -0.5rem;
  border-top-color: #E4E4E7;
}

/* Explorar: categoria do serviço no canto superior esquerdo da imagem e
   cidade no lugar onde ficava a categoria. */
.b2b-categoria-imagem { position: absolute; bottom: .75rem; left: .75rem; z-index: 10; max-width: calc(100% - 4.5rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: .25rem .55rem; border-radius: 6px; background: rgba(255,255,255,.94); color: #18181B; font-size: .75rem; font-weight: 600; line-height: 1.3; pointer-events: none; }
.b2b-grid-card .b2b-categoria-imagem { bottom: .625rem; left: .625rem; }
.b2b-cidade-card { display: inline-flex; align-items: center; gap: .3rem; min-width: 0; max-width: 100%; font-size: .8125rem; font-weight: 500; color: #52525B; white-space: nowrap; flex-shrink: 0; }
.b2b-cidade-card svg { width: 15px; height: 15px; flex-shrink: 0; color: #A1A1AA; }
.b2b-cidade-card span { overflow: hidden; text-overflow: ellipsis; }
.b2b-categoria-capa { position: absolute; right: 1rem; bottom: 1rem; z-index: 5; max-width: calc(100% - 2rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: .3rem .65rem; border-radius: 6px; background: rgba(255,255,255,.94); color: #18181B; font-size: .8125rem; font-weight: 600; line-height: 1.3; pointer-events: none; }

/* Abas de submenu (love-tab-item) em qualquer tela: linha de baixo reta,
   sem curva nas pontas — vence o arredondamento global dos botões. */
html body button.love-tab-item.love-tab-item:not(#love-tab-a):not(#love-tab-b):not(#love-tab-c) {
  border-radius: 0 !important;
}

/* Meus presentes: caixinha de seleção no canto superior direito da imagem */
.gift-select-box { position: absolute; top: .625rem; right: .625rem; z-index: 20; display: inline-flex; cursor: pointer; }
.gift-select-box input { position: absolute; opacity: 0; width: 0; height: 0; }
.gift-select-box span { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; background: #fff; border: 1.5px solid #D4D4D8; border-radius: 6px; color: transparent; box-shadow: 0 1px 3px rgba(0,0,0,.12); transition: border-color .15s, background-color .15s; }
.gift-select-box span svg { width: 14px; height: 14px; }
.gift-select-box:hover span { border-color: #181D24; }
.gift-select-box input:checked + span { background: #183b54; border-color: #183b54; color: #fff; }
.gift-select-box input:focus-visible + span { border-color: #181D24; }
html body #btn-gifts-delete-selected:hover { border-color: #181D24; color: #181D24; background: #fff; }

/* ==========================================================================
   Altura única dos controles das barras de título (34px, a do botão
   "presente aleatório"): Meus presentes, Personalizar (Salvar/Publicar e
   ferramentas), Convidados, Mapear mesas, Explorar, Carteira, Notificações
   e Configurações. A Home (dashboard) fica de fora de propósito.
   ========================================================================== */
html body #btn-host-add-gift:not(#love-h-a),
html body #btn-host-add-random-gift:not(#love-h-a),
html body #btn-gifts-delete-selected:not(#love-h-a):not(.hidden),
html body #builder-save:not(#love-h-a),
html body #builder-publish:not(#love-h-a),
html body #builder-undo:not(#love-h-a),
html body #builder-redo:not(#love-h-a),
html body #builder-preview-link:not(#love-h-a),
html body #btn-host-add-guest:not(#love-h-a),
html body #floorplan-filter-btn:not(#love-h-a),
html body #btn-open-add-table-modal:not(#love-h-a),
html body #btn-wallet-export:not(#love-h-a),
html body #btn-notifications-mark-all-read:not(#love-h-a),
html body #btn-save-user-settings:not(#love-h-a) {
  height: 34px !important;
  min-height: 34px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
html body #builder-undo:not(#love-h-a),
html body #builder-redo:not(#love-h-a),
html body #builder-preview-link:not(#love-h-a) { width: 34px !important; min-width: 34px !important; padding-left: 0 !important; padding-right: 0 !important; }
html body #gifts-search-input:not(#love-h-a),
html body #rsvp-search-input:not(#love-h-a),
html body #b2b-search-input:not(#love-h-a),
html body #b2b-location-input:not(#love-h-a) {
  height: 34px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box !important;
}
html body #b2b-view-toggle:not(#love-h-a) { height: 34px !important; box-sizing: border-box !important; }

/* Pop-up de confirmação da Love: botão de ação destrutiva */
html body button.love-confirmar-perigo:not(#love-h-a) { height: 34px; padding: 0 1rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px !important; border: 1px solid #DC2626; background: #DC2626; color: #fff; font-size: .8125rem; font-weight: 600; cursor: pointer; }
html body button.love-confirmar-perigo:not(#love-h-a):hover { background: #B91C1C; border-color: #B91C1C; }
html body button.love-confirmar-perigo:not(#love-h-a):disabled { opacity: .6; cursor: default; }
#modal-love-confirmar #love-confirmar-cancelar { height: 34px; padding-top: 0; padding-bottom: 0; }
#modal-love-confirmar .modal-container-custom { box-shadow: 0 8px 24px rgba(0,0,0,0.08); }

/* Meus presentes: caixinha "Selecionar tudo" da barra de título */
.gifts-select-all-check { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 0; border: 1.5px solid #D4D4D8; border-radius: 5px; background: #fff; display: inline-grid; place-content: center; cursor: pointer; flex-shrink: 0; transition: border-color .15s, background-color .15s; }
.gifts-select-all-check::before { content: ''; width: 10px; height: 10px; background: #fff; clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); transform: scale(0); transition: transform .12s; }
.gifts-select-all-check:hover { border-color: #181D24; }
.gifts-select-all-check:checked { background: #183b54; border-color: #183b54; }
.gifts-select-all-check:checked::before { transform: scale(1); }
.gifts-select-all-check:indeterminate { background: #183b54; border-color: #183b54; }
.gifts-select-all-check:indeterminate::before { transform: scale(1); clip-path: polygon(10% 40%, 90% 40%, 90% 60%, 10% 60%); }
#gifts-select-all-wrap:hover span { color: #181D24; }

/* ==========================================================================
   Drawers (Adicionar presente, convidado, mesa, acomodar, despesa): mesmo
   padrão de cores do Hub B2B — cabeçalho cinza bem claro, corpo branco.
   ========================================================================== */
html body .gift-drawer > div:first-child,
html body .guest-add-drawer > div:first-child,
html body .budget-expense-drawer > div:first-child,
html body .table-drawer > div:first-child {
  background-color: #FAFAFA !important;
  border-bottom: 1px solid #E4E4E7 !important;
}
html body .gift-drawer,
html body .guest-add-drawer,
html body .budget-expense-drawer,
html body .table-drawer { background-color: #FFFFFF; }

/* Títulos dos drawers exatamente como no Hub B2B (.task-drawer-title):
   18px, negrito, #18181B; cabeçalho com o mesmo respiro (1.25rem 1.5rem)
   e botão de fechar redondo de 34px. */
html body .gift-drawer > div:first-child,
html body .guest-add-drawer > div:first-child,
html body .budget-expense-drawer > div:first-child,
html body .table-drawer > div:first-child {
  padding: 1.25rem 1.5rem !important;
  gap: 0.75rem;
  align-items: flex-start !important;
}
html body .gift-drawer > div:first-child h2,
html body .guest-add-drawer > div:first-child h2,
html body .budget-expense-drawer > div:first-child h2,
html body .table-drawer > div:first-child h2 {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 1.125rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: normal !important;
  color: #18181B !important;
  margin: 0 !important;
}
html body .gift-drawer > div:first-child p,
html body .guest-add-drawer > div:first-child p,
html body .budget-expense-drawer > div:first-child p,
html body .table-drawer > div:first-child p {
  font-size: 0.75rem !important;
  color: #71717A !important;
  margin-top: 0.3rem !important;
}
html body .gift-drawer > div:first-child > button:not(#love-h-a),
html body .guest-add-drawer > div:first-child > button:not(#love-h-a),
html body .budget-expense-drawer > div:first-child > button:not(#love-h-a),
html body .table-drawer > div:first-child > button:not(#love-h-a) {
  width: 34px; height: 34px; margin: -0.35rem -0.35rem 0 0; padding: 0;
  border: none; border-radius: 999px !important; background: transparent; color: #71717A;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
html body .gift-drawer > div:first-child > button:not(#love-h-a):hover,
html body .guest-add-drawer > div:first-child > button:not(#love-h-a):hover,
html body .budget-expense-drawer > div:first-child > button:not(#love-h-a):hover,
html body .table-drawer > div:first-child > button:not(#love-h-a):hover { background: #F4F4F5; color: #18181B; }

/* Meus presentes: barra de progresso da vaquinha (cotas) abaixo do valor */
.gift-vaquinha { margin-top: .6rem; }
.gift-vaquinha-linha { display: flex; align-items: center; gap: .5rem; }
.gift-vaquinha-pct { flex-shrink: 0; min-width: 2.4rem; padding: .2rem .4rem; border-radius: 4px; background: #18181B; color: #fff; font-size: .6875rem; font-weight: 700; line-height: 1; text-align: center; }
.gift-vaquinha-trilho { flex: 1; height: 8px; border-radius: 999px; background: #E4E4E7; overflow: hidden; }
.gift-vaquinha-barra { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #4ADE80, #16A34A); transition: width .3s ease; }
.gift-vaquinha-info { margin: .4rem 0 0; font-size: .6875rem; color: #71717A; }
.gift-vaquinha-info strong { color: #18181B; font-weight: 700; }

/* ==========================================================================
   Convite publicado: presente em tela cheia (vaquinha) e checkout
   ========================================================================== */
.convite-presente[data-presente-abrir] { cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.convite-presente[data-presente-abrir]:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,0.08); }
.convite-presente-mini-barra { height: 4px; border-radius: 999px; background: #E4E4E7; overflow: hidden; margin-top: .45rem; }
.convite-presente-mini-barra > div { height: 100%; border-radius: 999px; background: var(--bx-primary, #537bae); }

.convite-presente-detalhe { display: flex; flex-direction: column; gap: .6rem; }
.convite-presente-detalhe-foto { margin: 0 -1.5rem .5rem; height: 260px; background: linear-gradient(135deg, #EFF6FF, #FAFAFA, #FFF7ED); overflow: hidden; }
.convite-presente-detalhe-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.convite-presente-detalhe-nome { font-size: 1.375rem; font-weight: 700 !important; line-height: 1.25; margin: 0; }
.convite-presente-detalhe-desc { color: #52525B; font-size: .9rem; line-height: 1.6; margin: 0; }
.convite-presente-detalhe-arrecadado { font-size: 1rem; color: #3F3F46; margin: .5rem 0 0; }
.convite-presente-detalhe-arrecadado strong { font-size: 1.35rem; font-weight: 700; color: #18181B; margin-left: .25rem; }
.convite-presente-detalhe-meta { display: flex; justify-content: space-between; gap: 1rem; font-size: .8125rem; color: #71717A; margin: 0; }
.convite-vaquinha-trilho { height: 8px; border-radius: 999px; background: #E4E4E7; overflow: hidden; }
.convite-vaquinha-barra { height: 100%; border-radius: 999px; background: var(--bx-primary, #537bae); transition: width .3s ease; }
.convite-presente-detalhe .convite-botao { margin-top: 1rem; }

.convite-checkout-resumo { display: flex; align-items: center; gap: .75rem; padding: .75rem; margin-bottom: 1.25rem; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; }
.convite-checkout-resumo-foto { width: 64px; height: 64px; flex-shrink: 0; border-radius: 8px; overflow: hidden; background: linear-gradient(135deg, #EFF6FF, #FAFAFA, #FFF7ED); }
.convite-checkout-resumo-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.convite-checkout-resumo-nome { font-size: .9375rem; font-weight: 700 !important; margin: 0 0 .15rem; }
.convite-checkout-resumo-valor { font-size: .8125rem; color: #71717A; margin: 0; }
.convite-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: flex; flex-direction: column; gap: .6rem; }
.convite-form legend { font-size: .8125rem; font-weight: 600; padding: 0; margin-bottom: .4rem; }
.convite-form textarea { font: inherit; font-weight: 400; font-size: .9375rem; padding: .8rem .9rem; border-radius: 12px; border: 1px solid #E4E4E7; background: #FFFFFF; color: #18181B; resize: vertical; }
.convite-form textarea:focus { outline: none; border-color: var(--bx-primary, #537bae); box-shadow: 0 0 0 3px rgba(83,123,174,0.15); }
.convite-valor-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.convite-valor-chip { padding: .55rem .9rem; border-radius: 999px; border: 1px solid #E4E4E7; background: #FFFFFF; color: #3F3F46; font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; }
.convite-valor-chip.is-ativo { border-color: var(--bx-primary, #537bae); color: var(--bx-primary, #537bae); background: #FFFFFF; }
.convite-form .convite-pagamento-opcao { flex-direction: row; align-items: center; gap: .65rem; padding: .8rem .9rem; border: 1px solid #E4E4E7; border-radius: 12px; background: #FFFFFF; font-size: .9rem; font-weight: 600; cursor: pointer; }
.convite-form .convite-pagamento-opcao.is-ativo { border-color: var(--bx-primary, #537bae); }
.convite-form .convite-pagamento-opcao input { width: 16px; height: 16px; margin: 0; accent-color: var(--bx-primary, #537bae); }
.convite-sucesso .convite-botao { margin-top: 1.25rem; width: 100%; }

/* Tela do presente: fundo branco, foto de ponta a ponta, barra mais grossa,
   meta e porcentagem em negrito abaixo da barra, descrição abaixo do botão. */
.convite-tela-branca .convite-presente-detalhe-foto { margin-top: 0; }
.convite-presente-detalhe-preco { font-size: 1.5rem; font-weight: 700 !important; margin: .25rem 0 0; }
.convite-vaquinha-trilho { height: 12px; }
.convite-presente-detalhe-meta { margin-top: .1rem; color: #18181B; font-size: .875rem; }
.convite-presente-detalhe-meta strong { font-weight: 700; }
.convite-presente-detalhe-sobre { margin-top: 1.25rem; }
.convite-presente-detalhe-sobre h3 { font-size: 1.0625rem; font-weight: 700 !important; margin: 0 0 .4rem; }
.convite-presente-detalhe-sobre p { color: #52525B; font-size: .9rem; line-height: 1.65; margin: 0; white-space: pre-line; }

/* Lista de presentes do convite: texto centralizado, valor maior e botão
   "Presentear" abaixo do valor. */
.convite-presente-texto { text-align: center; padding: .85rem .75rem .9rem; }
.convite-presente-nome { font-size: .875rem; font-weight: 500 !important; color: #3F3F46; margin: 0 0 .5rem; min-height: 2.4em; display: flex; align-items: center; justify-content: center; }
.convite-presente-valor { font-size: 1.25rem; font-weight: 700 !important; color: #18181B; margin: 0 0 .75rem; letter-spacing: -0.01em; }
.convite-presente.is-recebido .convite-presente-valor { font-size: .875rem; font-weight: 600 !important; color: #71717A; margin-bottom: 0; }
.convite-presente-mini-barra { margin: -.35rem 0 .75rem; }
.convite-presente-botao { display: block; width: 100%; padding: .7rem .5rem; border: 0; border-radius: 10px; background: var(--bx-primary, #537bae); color: #FFFFFF; font: inherit; font-size: .9375rem; font-weight: 700; cursor: pointer; }
.convite-presente-botao:hover { filter: brightness(.95); }

/* Convite: carrinho de presentes (caixinha no card + "Ver carrinho") */
.convite-presente-foto { position: relative; }
.convite-presente-check { position: absolute; top: .5rem; right: .5rem; z-index: 2; width: 26px; height: 26px; padding: 0; border: 1.5px solid #D4D4D8; border-radius: 7px; background: #FFFFFF; color: transparent; box-shadow: 0 1px 3px rgba(0,0,0,.15); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.convite-presente-check svg { width: 16px; height: 16px; }
.convite-presente-check:hover { border-color: #18181B; }
.convite-presente-check[aria-pressed="true"] { background: var(--bx-primary, #537bae); border-color: var(--bx-primary, #537bae); color: #FFFFFF; }
.convite-presente.is-no-carrinho { box-shadow: 0 0 0 2px var(--bx-primary, #537bae), 0 2px 8px rgba(0,0,0,0.06); }
.convite-carrinho-barra { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
.convite-carrinho-botao { display: inline-flex; align-items: center; gap: .5rem; padding: .7rem 1rem; border: 0; border-radius: 10px; background: var(--bx-primary, #537bae); color: #FFFFFF; font: inherit; font-size: .9375rem; font-weight: 700; cursor: pointer; }
.convite-carrinho-botao svg { width: 18px; height: 18px; }
.convite-carrinho-botao:hover { filter: brightness(.95); }
.convite-carrinho-itens { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1.25rem; }
.convite-carrinho-item { margin-bottom: 0; }
.convite-carrinho-item-texto { flex: 1; min-width: 0; }
.convite-carrinho-remover { flex-shrink: 0; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 999px; background: transparent; color: #A1A1AA; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.convite-carrinho-remover svg { width: 16px; height: 16px; }
.convite-carrinho-remover:hover { background: #F4F4F5; color: #18181B; }
.convite-carrinho-total { display: flex; justify-content: space-between; align-items: center; padding: .85rem .25rem 0; font-size: .9375rem; color: #3F3F46; border-top: 1px solid #E4E4E7; }
.convite-carrinho-total strong { font-size: 1.25rem; font-weight: 700; color: #18181B; }

/* Convite publicado: título das telas internas (Informações, Lista de
   Presentes, Confirmar presença, Sobre, Presente, Carrinho) sempre em Inter,
   mesmo quando o convite usa outra fonte. */
html body .convite-tela .convite-tela-titulo { font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important; font-weight: 700 !important; }

/* Lista de presentes do convite: cards da mesma linha com a mesma altura e o
   botão "Presentear" sempre colado embaixo — com ou sem a barrinha da
   vaquinha, os botões ficam nivelados. Barrinha um pouco mais grossa. */
.convite-presente { display: flex; flex-direction: column; }
.convite-presente-texto { display: flex; flex-direction: column; flex: 1 1 auto; }
.convite-presente-botao { margin-top: auto; }
.convite-presente-mini-barra { height: 8px; margin: -.25rem 0 .75rem; }

/* Checkout e carrinho do convite: caixinhas no padrão da plataforma
   (borda bem clara + sombra leve), sobre fundo branco. */
.convite-tela-branca .convite-checkout-resumo,
.convite-tela-branca .convite-form .convite-pagamento-opcao,
.convite-tela-branca .convite-form input,
.convite-tela-branca .convite-form textarea { border: 1px solid #EEEEF0; box-shadow: 0 1px 4px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.03); }
.convite-tela-branca .convite-form input:focus,
.convite-tela-branca .convite-form textarea:focus { border-color: var(--bx-primary, #537bae); box-shadow: 0 0 0 3px rgba(83,123,174,0.15); }
.convite-tela-branca .convite-form .convite-pagamento-opcao.is-ativo { border-color: var(--bx-primary, #537bae); }
.convite-tela-branca .convite-carrinho-total { border-top-color: #EEEEF0; }

/* Organizador sem acesso a uma área: o ícone some do rail. */
.rail-icon-btn.love-sem-acesso { display: none !important; }

/* Organizadores: lápis, X e "Copiar link" só o ícone/texto, sem caixinha. */
html body button.org-icone-btn:not(#love-h-a) { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 6px !important; background: transparent; color: #A1A1AA; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: none; }
html body button.org-icone-btn:not(#love-h-a):hover { background: transparent; color: #181D24; }
html body button.org-icone-btn.org-icone-texto:not(#love-h-a) { width: auto; padding: 0 .4rem; font-size: 11px; font-weight: 600; color: #71717A; }
html body button.org-icone-btn.org-icone-texto:not(#love-h-a):hover { color: #181D24; text-decoration: underline; }

/* Perfil do fornecedor: link da empresa, estrelas e avaliações */
html body button.b2b-profile-empresa-link:not(#love-h-a) { background: none; border: 0; padding: 0; font: inherit; color: #537bae; font-weight: 600; cursor: pointer; border-radius: 0 !important; }
html body button.b2b-profile-empresa-link:not(#love-h-a):hover { color: #416799; text-decoration: underline; background: none; }
.b2b-estrelas { display: inline-flex; align-items: center; gap: 2px; }
.b2b-estrelas svg { width: 16px; height: 16px; }
.b2b-estrela-cheia { color: #F59E0B; }
.b2b-estrela-vazia { color: #D4D4D8; }
.b2b-avaliacao { padding: .85rem 1rem; border: 1px solid #EEEEF0; border-radius: 10px; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.03); }
/* Redes sociais do fornecedor, logo abaixo das estrelas de avaliação. */
.b2b-profile-social-links { display: inline-flex; align-items: center; gap: 8px; }
.b2b-profile-social-btn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #F4F4F5; color: #52525B; transition: background-color .15s, color .15s; }
.b2b-profile-social-btn:hover { background: #E4E4E7; color: #18181B; }
.b2b-profile-social-btn svg { width: 15px; height: 15px; }
body[data-theme="dark"] .b2b-profile-social-btn { background: #2A2A2A; color: #A1A1AA; }
body[data-theme="dark"] .b2b-profile-social-btn:hover { background: #333333; color: #FFFFFF; }

/* Perfil do fornecedor: duas colunas (serviços/avaliações | caixa do portfólio) */
.b2b-perfil-caixa { background: #fff; border: 1px solid #EEEEF0; border-radius: 10px; padding: 1.25rem; box-shadow: 0 1px 4px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.03); position: sticky; top: 1rem; }
.b2b-perfil-portfolio-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
html body .b2b-perfil-portfolio-grade .b2b-profile-portfolio-photo-btn { width: 100%; height: auto; aspect-ratio: 1 / 1; border-radius: 8px !important; }
@media (min-width: 640px) and (max-width: 1023px) { .b2b-perfil-portfolio-grade { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Explorar › página do serviço / da empresa: caminho percorrido no topo
   (Explorar › Serviço › Empresa). As partes anteriores são links. */
.b2b-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem; font-size: 0.875rem; min-width: 0; }
.b2b-breadcrumb-link {
  border: none; background: none; padding: 0; cursor: pointer;
  color: #71717A; font-weight: 500; font-family: inherit; font-size: inherit;
}
.b2b-breadcrumb-link:hover { color: #181D24; text-decoration: underline; text-underline-offset: 3px; }
.b2b-breadcrumb-sep { color: #A1A1AA; }
.b2b-breadcrumb-atual { color: #181D24; font-weight: 600; max-width: 40ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body[data-theme="dark"] .b2b-breadcrumb-link { color: #A1A1AA !important; }
body[data-theme="dark"] .b2b-breadcrumb-link:hover,
body[data-theme="dark"] .b2b-breadcrumb-atual { color: #FFFFFF !important; }

/* ==========================================================================
   Tabelas da plataforma no padrão do Hub B2B: cabeçalho sem maiúsculas
   forçadas, negrito 13px #181D24 (branco no escuro); linhas em peso normal.
   ========================================================================== */
html body #view-event-os-dashboard table th,
html body #view-event-os-dashboard table th button,
html body #view-event-os-dashboard table th > span,
html body #view-event-os-dashboard table th > span > span:not(.cursor-help) {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  color: #181D24 !important;
}
html body #view-event-os-dashboard table tbody td,
html body #view-event-os-dashboard table tbody td *:not(svg):not(path) { font-weight: 400 !important; }
body[data-theme="dark"] #view-event-os-dashboard table th,
body[data-theme="dark"] #view-event-os-dashboard table th button,
body[data-theme="dark"] #view-event-os-dashboard table th > span { color: #FFFFFF !important; }

/* ==========================================================================
   Tabelas no padrão do Admin (Empresas › Cadastros): caixa branca com borda,
   barra de busca/filtro/exportar dentro da caixa, cabeçalho cinza claro,
   linhas brancas separadas por divisória fina, "ver mais" (⋯) por linha.
   ========================================================================== */
#view-event-os-dashboard .love-tabela-caixa { background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; padding: 0 !important; margin: 0; box-shadow: none !important; overflow: visible !important; }
#view-event-os-dashboard .love-tabela-caixa > .overflow-x-auto { margin: 0 !important; border-radius: 0 0 10px 10px; }
#view-event-os-dashboard .love-tabela-caixa.budget-table-full-bleed { margin: 0 !important; }
.love-tabela-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 16px; }
.love-tabela-barra-esq, .love-tabela-barra-dir { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.love-tabela-barra-dir { margin-left: auto; }
.love-tabela-busca { position: relative; width: 280px; max-width: 100%; }
#view-event-os-dashboard .love-tabela-busca.relative { width: 280px !important; }
.love-tabela-busca > svg { position: absolute; left: 10px; top: 50%; width: 15px; height: 15px; transform: translateY(-50%); color: #A1A1AA; pointer-events: none; }
html body #view-event-os-dashboard .love-tabela-busca input:not(#love-h-a) { width: 100%; height: 36px; padding: 0 12px 0 32px; border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FFFFFF; font-size: 13px; color: #18181B; box-shadow: none; }
html body #view-event-os-dashboard .love-tabela-busca input:not(#love-h-a):focus { outline: none; border-color: #181D24; box-shadow: none; background: #FFFFFF; }
html body #view-event-os-dashboard .love-tabela-botao:not(#love-h-a) { display: inline-flex; align-items: center; gap: 6px; height: 36px !important; min-height: 36px !important; padding: 0 12px !important; border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FFFFFF; color: #3F3F46; font-size: 13px; font-weight: 600; line-height: 1; cursor: pointer; box-shadow: none; position: relative; }
html body #view-event-os-dashboard .love-tabela-botao:not(#love-h-a) svg { width: 16px; height: 16px; flex-shrink: 0; }
html body #view-event-os-dashboard .love-tabela-botao:not(#love-h-a):hover,
html body #view-event-os-dashboard .love-tabela-botao.is-ativo:not(#love-h-a) { background: #FFFFFF; border-color: #181D24; color: #181D24; }
html body #view-event-os-dashboard .love-tabela-botao:not(#love-h-a):focus-visible { outline: none; border-color: #181D24; box-shadow: none; }
.love-tabela-filtro { position: relative; }
.love-tabela-filtro-contador { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #183b54; color: #fff; font-size: 11px; font-weight: 700; }
.love-tabela-filtro-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; min-width: 200px; padding: 6px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,0.08); display: flex; flex-direction: column; gap: 2px; }
html body .love-tabela-filtro-opcao:not(#love-h-a) { display: block; width: 100%; text-align: left; padding: 8px 10px; border: 0; border-radius: 6px !important; background: transparent; font-size: 13px; color: #3F3F46; cursor: pointer; }
html body .love-tabela-filtro-opcao:not(#love-h-a):hover { background: #F4F4F5; color: #18181B; }
html body .love-tabela-filtro-opcao.is-ativa:not(#love-h-a) { color: #183b54; font-weight: 700; }

/* Cabeçalho e linhas */
html body #view-event-os-dashboard table.love-tabela thead th { background: #F7F7F8 !important; border-top: 1px solid #E4E4E7 !important; border-bottom: 1px solid #E4E4E7 !important; padding: 12px 16px !important; vertical-align: middle; }
html body #view-event-os-dashboard table.love-tabela thead tr { background: transparent !important; border: 0 !important; }
html body #view-event-os-dashboard table.love-tabela tbody td { padding: 14px 16px !important; font-size: 14px !important; border-top: 1px solid #F2F3F6 !important; border-bottom: 0 !important; background: #FFFFFF !important; vertical-align: middle; }
html body #view-event-os-dashboard table.love-tabela tbody tr:first-child td { border-top: 0 !important; }
html body #view-event-os-dashboard table.love-tabela tbody tr:hover td { background: #FAFAFA !important; }
html body #view-event-os-dashboard table.love-tabela tbody tr { cursor: default; }
html body #view-event-os-dashboard table.love-tabela tbody td .rounded-full:not(.love-tabela-mais) { border-radius: 6px !important; }
html body #view-event-os-dashboard table.love-tabela tbody td .uppercase { text-transform: none !important; letter-spacing: 0 !important; }
.love-tabela-col-mais, .love-tabela-col-acoes { width: 1%; white-space: nowrap; text-align: right !important; }
html body button.love-tabela-mais:not(#love-h-a) { width: 32px; height: 32px; padding: 0; border: 0; border-radius: 8px !important; background: transparent; color: #667085; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: none; }
html body button.love-tabela-mais:not(#love-h-a) svg { width: 22px; height: 22px; }
html body button.love-tabela-mais:not(#love-h-a):hover { background: #F4F4F5; color: #181D24; }
html body button.love-copiar-email:not(#love-h-a) { width: 22px; height: 22px; padding: 0; border: 0; border-radius: 4px !important; background: transparent; color: #A1A1AA; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; vertical-align: middle; }
html body button.love-copiar-email:not(#love-h-a) svg { width: 14px; height: 14px; }
html body button.love-copiar-email:not(#love-h-a):hover { color: #181D24; background: transparent; }
.love-copiar-email-ok { font-size: 11px; color: #15803D; margin-left: 4px; }
@media (max-width: 640px) { .love-tabela-busca, #view-event-os-dashboard .love-tabela-busca.relative { width: 100% !important; } .love-tabela-barra-dir { margin-left: 0; width: 100%; } }
html body #view-event-os-dashboard .love-tabela-caixa { border: 1px solid #E4E4E7 !important; }

/* Mesma fonte nos submenus do sidebar, nas abas de status e nos cabeçalhos
   de tabela: 13px; 600 no normal, 700 no ativo (e no cabeçalho). */
html body .sub-drawer-item:not(#love-h-a) { font-size: 0.8125rem !important; font-weight: 600 !important; }
html body .sub-drawer-item.active:not(#love-h-a) { font-weight: 700 !important; }
html body .love-tab-item:not(#love-h-a), html body button.love-tab-item:not(#love-h-a) { font-size: 0.8125rem !important; font-weight: 600 !important; }
html body .love-tab-item.active:not(#love-h-a), html body button.love-tab-item.active:not(#love-h-a) { font-weight: 700 !important; }

/* Drawer do convidado: "Remover convidado" vira "Tem certeza? Sim / Não" */
.guest-remove-confirm { display: flex; align-items: center; justify-content: center; gap: .75rem; padding: .6rem .75rem; border: 1px solid var(--border-card); border-radius: 10px; background: #FAFAFA; font-size: .8125rem; font-weight: 600; color: #3F3F46; }
html body button.guest-remove-sim:not(#love-h-a), html body button.guest-remove-nao:not(#love-h-a) { height: 30px; padding: 0 .9rem; border-radius: 8px !important; font-size: .8125rem; font-weight: 700; cursor: pointer; background: #fff; }
html body button.guest-remove-sim:not(#love-h-a) { border: 1px solid #FCA5A5; color: #DC2626; }
html body button.guest-remove-sim:not(#love-h-a):hover { border-color: #DC2626; background: #fff; }
html body button.guest-remove-nao:not(#love-h-a) { border: 1px solid #E4E4E7; color: #3F3F46; }
html body button.guest-remove-nao:not(#love-h-a):hover { border-color: #181D24; color: #181D24; background: #fff; }
/* Tabela de convidados: caixinha à esquerda do nome; lixeira na barra */
.guest-select-check { flex-shrink: 0; }
.guest-select-espaco { display: inline-block; width: 18px; flex-shrink: 0; }
html body #view-event-os-dashboard .love-tabela-lixeira:not(#love-h-a) .love-tabela-filtro-contador { background: #DC2626; }
html body #view-event-os-dashboard .love-tabela-lixeira:not(#love-h-a):hover { border-color: #DC2626; color: #DC2626; }
.guest-select-check { margin-right: .4rem; }
.guest-select-espaco { margin-right: .4rem; }

/* Chat: ⋯ da mensagem (Editar / Copiar) e edição no lugar */
.chat-msg-acoes { position: relative; align-self: center; flex-shrink: 0; }
html body button.chat-msg-mais:not(#love-h-a) { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 8px !important; background: transparent; color: #A1A1AA; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; transition: opacity .15s, color .15s; box-shadow: none; }
html body button.chat-msg-mais:not(#love-h-a) svg { width: 18px; height: 18px; }
#b2b-chat-messages-container > div:hover .chat-msg-mais, .chat-msg-acoes:has(.chat-msg-menu:not(.hidden)) .chat-msg-mais { opacity: 1; }
html body button.chat-msg-mais:not(#love-h-a):hover { color: #181D24; background: #F4F4F5; }
.chat-msg-menu { position: absolute; top: calc(100% + 4px); z-index: 30; min-width: 140px; padding: 6px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,0.08); display: flex; flex-direction: column; gap: 2px; }
.chat-msg-acoes.is-minha .chat-msg-menu { right: 0; }
.chat-msg-acoes:not(.is-minha) .chat-msg-menu { left: 0; }
html body button.chat-msg-opcao:not(#love-h-a) { display: block; width: 100%; text-align: left; padding: 8px 10px; border: 0; border-radius: 6px !important; background: transparent; font-size: 13px; color: #3F3F46; cursor: pointer; box-shadow: none; }
html body button.chat-msg-opcao:not(#love-h-a):hover { background: #F4F4F5; color: #18181B; }
.chat-msg-editor { min-width: 240px; }
html body .chat-msg-editor-campo:not(#love-h-a) { width: 100%; font: inherit; font-size: 13px; line-height: 1.5; padding: 8px 10px; border: 1px solid #E4E4E7; border-radius: 8px; background: #FFFFFF; color: #18181B; resize: vertical; }
html body .chat-msg-editor-campo:not(#love-h-a):focus { outline: none; border-color: #181D24; box-shadow: none; }
.chat-msg-editor-botoes { display: flex; gap: 8px; margin-top: 8px; }
html body button.chat-msg-editor-salvar:not(#love-h-a), html body button.chat-msg-editor-cancelar:not(#love-h-a) { height: 30px; padding: 0 12px; border-radius: 8px !important; font-size: 12px; font-weight: 700; cursor: pointer; box-shadow: none; }
html body button.chat-msg-editor-salvar:not(#love-h-a) { border: 1px solid #183b54; background: #183b54; color: #fff; }
html body button.chat-msg-editor-salvar:not(#love-h-a):hover { background: #122c3f; border-color: #122c3f; }
html body button.chat-msg-editor-cancelar:not(#love-h-a) { border: 1px solid #E4E4E7; background: #fff; color: #3F3F46; }
html body button.chat-msg-editor-cancelar:not(#love-h-a):hover { border-color: #181D24; color: #181D24; background: #fff; }
.chat-msg-editor-erro { margin: 6px 0 0; font-size: 12px; color: #DC2626; }
html body button.chat-msg-mais:not(#love-h-a) { opacity: .55; }
#b2b-chat-messages-container > div:hover .chat-msg-mais { opacity: 1; }

/* Chat: ⋮ e copiar centralizados na altura da bolha */
#b2b-chat-messages-container > div[data-msg-id] { align-items: center; }
#b2b-chat-messages-container > div[data-msg-id] > img, #b2b-chat-messages-container > div[data-msg-id] > .love-avatar-box, #b2b-chat-messages-container > div[data-msg-id] > .chat-avatar-quadrado { align-self: flex-end; }
.chat-msg-acoes { align-self: center; }
html body button.chat-msg-copiar-direto:not(#love-h-a) svg { width: 16px; height: 16px; }

/* Chat: ⋮ e copiar sem caixinha no hover — só um pulso e a cor do sidebar;
   centralizados na altura da bolha (ficam na mesma linha dela). */
@keyframes love-pulso { 0% { transform: scale(1); } 50% { transform: scale(1.22); } 100% { transform: scale(1); } }
#b2b-chat-messages-container > div[data-msg-id] { align-items: flex-end; }
html body button.chat-msg-mais:not(#love-h-a) { color: #181D24; opacity: .6; }
html body button.chat-msg-mais:not(#love-h-a):hover,
html body button.chat-msg-mais:not(#love-h-a):focus-visible { background: transparent; color: #181D24; opacity: 1; animation: love-pulso .35s ease; outline: none; }
.chat-msg-acoes { align-self: center; margin-top: 0; }

/* Chat: nome da empresa no cabeçalho é um link para a página dela */
.b2b-chat-nome-link { cursor: pointer; }
.b2b-chat-nome-link:hover { text-decoration: underline; text-underline-offset: 3px; color: #181D24; }
.b2b-chat-nome-link:focus-visible { outline: none; text-decoration: underline; }


/* Página do serviço / da empresa (Explorar): sem portfólio à direita, a grade
   "Todos os serviços" ocupa a largura toda com até 3 por linha; com portfólio
   (página da empresa), 2 por linha e o portfólio em carrossel com texto. */
.b2b-portfolio-carrossel { display: block; }
.b2b-portfolio-slides { position: relative; aspect-ratio: 4 / 3; border-radius: 8px; overflow: hidden; background: #F4F4F5; }
.b2b-portfolio-slide { position: absolute; inset: 0; border: none; padding: 0; margin: 0; background: none; cursor: zoom-in; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.b2b-portfolio-slide.is-ativo { opacity: 1; pointer-events: auto; }
.b2b-portfolio-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.b2b-portfolio-seta {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 30px; height: 30px; border-radius: 999px; border: 1px solid #E4E4E7; background: rgba(255,255,255,.92);
  color: #181D24; display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.b2b-portfolio-seta svg { width: 14px; height: 14px; }
.b2b-portfolio-seta--ant { left: 8px; }
.b2b-portfolio-seta--prox { right: 8px; }
.b2b-portfolio-pontos { display: flex; justify-content: center; gap: 5px; margin-top: 8px; }
.b2b-portfolio-pontos span { width: 6px; height: 6px; border-radius: 999px; background: #D4D4D8; }
.b2b-portfolio-pontos span.is-ativo { background: #181D24; }
.b2b-portfolio-texto { font-size: 0.875rem; color: #52525B; line-height: 1.6; margin: 12px 0 0; white-space: pre-line; }

/* Página da empresa: portfólio em largura total (antes das avaliações), com o
   carrossel e o texto limitados a ~720px para a foto não ficar enorme. */
.b2b-portfolio-largura { max-width: 720px; }

/* Benefícios Love: cada categoria é um carrossel (3 por vez no desktop, 2 no
   tablet, 1 no celular) com setas ao lado do título. */
.beneficios-carrossel { display: flex; gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; padding-bottom: 4px; }
.beneficios-carrossel::-webkit-scrollbar { display: none; }
.beneficios-carrossel > .beneficios-card { flex: 0 0 calc((100% - 3rem) / 3); min-width: 0; scroll-snap-align: start; }
@media (max-width: 1023px) { .beneficios-carrossel > .beneficios-card { flex-basis: calc((100% - 1.5rem) / 2); } }
@media (max-width: 639px) { .beneficios-carrossel > .beneficios-card { flex-basis: 100%; } }
.beneficios-setas { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
html body button.beneficios-seta:not(#love-h-a) { width: 32px; height: 32px; padding: 0; border: 1px solid #E4E4E7; border-radius: 999px !important; background: #FFFFFF; color: #3F3F46; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: none; transition: border-color .15s, color .15s, opacity .15s; }
html body button.beneficios-seta:not(#love-h-a) svg { width: 15px; height: 15px; }
html body button.beneficios-seta:not(#love-h-a):hover { background: #FFFFFF; border-color: #181D24; color: #181D24; }
html body button.beneficios-seta:not(#love-h-a):disabled { opacity: .35; cursor: default; border-color: #E4E4E7; color: #3F3F46; }

/* Financeiro › Orçamento: cronograma de pagamentos */
.cronograma-linha { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid #EEEEF0; border-radius: 10px; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.03); }
.cronograma-data { flex-shrink: 0; min-width: 84px; font-size: 13px; font-weight: 700; color: #181D24; }

/* Financeiro › Orçamento: resumo sem verde, barra de quanto já foi pago */
.orcamento-resumo { border: 1px solid #E4E4E7 !important; box-shadow: none !important; }
html body button.orcamento-resumo-link:not(#love-h-a) { background: none; border: 0; padding: 0; border-radius: 0 !important; font: inherit; font-size: .875rem; font-weight: 700; color: #181D24; text-decoration: underline; text-decoration-color: #D4D4D8; text-underline-offset: 4px; cursor: pointer; }
html body button.orcamento-resumo-link:not(#love-h-a):hover { text-decoration-color: #181D24; background: none; }
.orcamento-barra { height: 8px; border-radius: 999px; background: #E4E4E7; overflow: hidden; }
.orcamento-barra > div { height: 100%; border-radius: 999px; background: #183b54; transition: width .3s ease; }
.orcamento-barra--linha { height: 6px; margin-top: 6px; max-width: 140px; }
html body button.orcamento-add-fornecedor:not(#love-h-a) { background: none; border: 0; padding: 0; border-radius: 0 !important; font: inherit; font-size: 14px; color: #183b54; cursor: pointer; }
html body button.orcamento-add-fornecedor:not(#love-h-a):hover { text-decoration: underline; background: none; }
/* Extrato: comprovante */
.extrato-comprovante-link { font-size: .75rem; color: #183b54; text-decoration: underline; text-underline-offset: 2px; }
.comprovante-upload { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 120px; padding: 14px; border: 1px dashed #D4D4D8; border-radius: 10px; background: #FAFAFA; color: #71717A; font-size: 13px; text-align: center; cursor: pointer; }
.comprovante-upload:hover { border-color: #181D24; color: #181D24; }
.comprovante-upload img { max-height: 180px; max-width: 100%; border-radius: 8px; object-fit: contain; }
html body #btn-open-add-expense:not(#love-h-a):not(.hidden),
html body #btn-add-comprovante:not(#love-h-a):not(.hidden) { height: 34px !important; min-height: 34px !important; padding-top: 0 !important; padding-bottom: 0 !important; display: inline-flex !important; align-items: center !important; box-sizing: border-box !important; line-height: 1 !important; }

/* ==========================================================================
   Modal "Solicitar orçamento" (Explorar › Contratar) — identidade da Love:
   borda fina, cantos 10px (8px nos campos), sombra só no overlay, foco sem
   anel (só a borda escurece), primária #183b54.
   ========================================================================== */
#modal-b2b-orcamento .orc-modal { border-radius: 14px 14px 0 0; box-shadow: 0 8px 24px rgba(0,0,0,0.08); overflow: hidden; font-family: 'Inter', sans-serif; }
@media (min-width: 640px) { #modal-b2b-orcamento .orc-modal { border-radius: 10px; } }
.orc-topo { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px; background: #FAFAFA; border-bottom: 1px solid #E4E4E7; }
.orc-servico { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1; }
.orc-servico-foto { width: 56px; height: 56px; flex-shrink: 0; border-radius: 8px; overflow: hidden; background: #E4E4E7; }
.orc-servico-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.orc-servico-nome { margin: 0; font-size: 16px; font-weight: 700; color: #18181B; line-height: 1.3; }
.orc-servico-empresa { margin: 2px 0 0; font-size: 13px; color: #52525B; }
.orc-servico-info { margin: 2px 0 0; font-size: 12px; color: #71717A; }
html body button.orc-fechar:not(#love-h-a) { width: 32px; height: 32px; padding: 0; border: 0; border-radius: 999px !important; background: rgba(24,29,36,0.06); color: #3F3F46; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; }
html body button.orc-fechar:not(#love-h-a) svg { width: 16px; height: 16px; }
html body button.orc-fechar:not(#love-h-a):hover { background: rgba(24,29,36,0.12); color: #181D24; }
.orc-corpo { padding: 18px 20px; display: flex; flex-direction: column; gap: 16px; overflow-y: auto; }
.orc-label { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; font-weight: 600; color: #181D24; margin-bottom: 6px; }
.orc-selo { font-size: 11px; font-weight: 600; color: #183b54; background: #EEF2F6; border-radius: 6px; padding: 2px 6px; }
html body .orc-input:not(#love-h-a) { width: 100%; height: 40px; padding: 0 12px; border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FFFFFF; font: inherit; font-size: 14px; color: #18181B; box-shadow: none; outline: none; }
html body .orc-input:not(#love-h-a):focus, html body .orc-input:not(#love-h-a):focus-visible { border-color: #181D24; box-shadow: none; }
html body .orc-textarea:not(#love-h-a) { height: auto; min-height: 84px; padding: 10px 12px; line-height: 1.5; resize: vertical; }
.orc-campo-icone { position: relative; }
.orc-campo-icone > svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: #A1A1AA; pointer-events: none; }
html body .orc-campo-icone .orc-input:not(#love-h-a) { padding-left: 36px; }
.orc-contador { display: flex; align-items: center; gap: 6px; }
html body .orc-contador-input:not(#love-h-a) { text-align: center; -moz-appearance: textfield; }
.orc-contador-input::-webkit-outer-spin-button, .orc-contador-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
html body button.orc-contador-btn:not(#love-h-a) { width: 40px; height: 40px; flex-shrink: 0; padding: 0; border: 1px solid #E4E4E7; border-radius: 8px !important; background: #fff; color: #3F3F46; font-size: 18px; line-height: 1; cursor: pointer; box-shadow: none; }
html body button.orc-contador-btn:not(#love-h-a):hover { border-color: #181D24; color: #181D24; background: #fff; }
.orc-pills { display: flex; flex-wrap: wrap; gap: 8px; }
html body button.orc-pill:not(#love-h-a) { height: 34px; padding: 0 12px; border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FFFFFF; color: #3F3F46; font-size: 13px; font-weight: 500; cursor: pointer; box-shadow: none; transition: border-color .15s, color .15s; }
html body button.orc-pill:not(#love-h-a):hover { border-color: #181D24; color: #181D24; background: #fff; }
html body button.orc-pill.is-ativa:not(#love-h-a) { border-color: #183b54; color: #183b54; font-weight: 700; box-shadow: inset 0 0 0 1px #183b54; }
.orc-rodape { padding: 14px 20px 18px; border-top: 1px solid #E4E4E7; background: #fff; }
.orc-confianca { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 12px; font-size: 12px; line-height: 1.5; color: #52525B; }
.orc-confianca svg { width: 16px; height: 16px; flex-shrink: 0; color: #183b54; margin-top: 1px; }
html body button.orc-enviar:not(#love-h-a) { width: 100%; height: 44px; border: 0; border-radius: 8px !important; background: #183b54; color: #fff; font-size: 14px; font-weight: 700; cursor: pointer; box-shadow: none; transition: background-color .15s, transform .1s; }
html body button.orc-enviar:not(#love-h-a):hover { background: #122c3f; }
html body button.orc-enviar:not(#love-h-a):active { transform: scale(.99); }
html body button.orc-enviar:not(#love-h-a):disabled { opacity: .6; cursor: default; }

/* Configurações › Meus eventos */
.meus-eventos-linha { display: flex; align-items: center; gap: 12px; padding: 14px 0; }
.meus-eventos-atual { margin-left: 6px; font-size: 11px; font-weight: 600; color: #183b54; background: #EEF2F6; border-radius: 6px; padding: 2px 6px; }
html body button.meus-eventos-excluir:not(#love-h-a) { flex-shrink: 0; height: 34px; padding: 0 12px; border: 1px solid #E4E4E7; border-radius: 8px !important; background: #fff; color: #3F3F46; font-size: 13px; font-weight: 600; cursor: pointer; box-shadow: none; }
html body button.meus-eventos-excluir:not(#love-h-a):hover { border-color: #DC2626; color: #DC2626; background: #fff; }

/* Caixa de texto que cresce com o conteúdo (Informações: referência, dress
   code, informações gerais). field-sizing faz isso sozinho nos navegadores
   novos; nos demais, o app.js ajusta a altura. */
textarea.love-textarea-auto { resize: none !important; overflow: hidden; field-sizing: content; min-height: 4.5rem; }

/* Prévia: botão de música exatamente como o do convite publicado — círculo
   de 40px, contorno 1,5px preto, fundo branco (uma regra geral achatava a
   altura e deixava o botão oval). */
html body #live-preview-floating-music.musica-botao-previa:not(#love-h-a) {
  width: 40px !important; height: 40px !important; min-width: 40px !important; min-height: 40px !important;
  padding: 0 !important; box-sizing: border-box !important; flex: none !important;
  border-radius: 50% !important; border: 1.5px solid #000000 !important; background: #FFFFFF !important; color: #000000 !important;
}
html body #live-preview-floating-music.hidden { display: none !important; }
#live-preview-floating-music svg { stroke: #000000 !important; }

/* Informações: "Salvar alterações" do fim da página — cinza claro do
   cabeçalho, borda fina e sombra leve (ação secundária ao salvar do topo). */
html body button.informacoes-salvar-rodape:not(#love-h-a) {
  width: 100%; height: 40px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FAFAFA; color: #181D24;
  font-size: 14px; font-weight: 600; cursor: pointer;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  transition: border-color .15s, box-shadow .15s;
}
html body button.informacoes-salvar-rodape:not(#love-h-a):hover { background: #FAFAFA; border-color: #181D24; box-shadow: 0 3px 10px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.05); }
html body button.informacoes-salvar-rodape:not(#love-h-a):disabled { opacity: .6; cursor: default; }
/* Informações: sem a folga grande embaixo — o "Salvar alterações" fica no fim. */
html body #editor-form-column:has(#editor-form-data:not(.hidden)) { padding-bottom: 1rem !important; }
/* Aparência: o rótulo "Elementos" com a mesma tipografia de "Básicos" e
   "Avançado" (maiusculinho, 11px, 700, espaçado) — a cor continua a da aba. */
html body #builder-elements-panel .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a) { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.04em; line-height: 16.5px; text-transform: uppercase; }
/* Aparência › Elementos: as caixas com o mesmo respiro dos dois lados,
   alinhadas com a caixa "Elementos" de cima (0,65rem à esquerda e à direita). */
html body #builder-elements-panel .builder-panel-tab-body:not(#love-h-a) { padding-left: 0.65rem; padding-right: 0.65rem; scrollbar-width: thin; }
/* Orçamento: respiro padrão (1,5rem) entre as duas caixas de cima e a tabela. */
html body #wallet-sub-budget > .budget-table-full-bleed:not(#love-h-a) { margin-top: 1.5rem !important; }

/* Configurações › Minha conta: foto de perfil ao lado de nome, sobrenome e
   e-mail (mesmo modelo do Hub — vazia só o "+", com foto o lápis). */
.conta-perfil-topo { display: flex; gap: 1.5rem; align-items: flex-start; }
.conta-avatar-coluna { flex-shrink: 0; width: 130px; }
.conta-avatar-picker {
  position: relative; display: flex; align-items: center; justify-content: center;
  width: 130px; height: 130px; border: 1.5px dashed #E4E4E7; border-radius: 10px;
  background: #FAFAFA; cursor: pointer; overflow: hidden;
}
.conta-avatar-picker.tem-foto { border-style: solid; background: #FFFFFF; }
.conta-avatar-picker.is-enviando { opacity: .6; pointer-events: none; }
.conta-avatar-conteudo { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.conta-avatar-conteudo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.conta-avatar-input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; z-index: 3; }
.conta-avatar-mais {
  width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: #FFFFFF; border: 1px solid #E4E4E7; color: #183b54; transition: transform .2s ease;
}
.conta-avatar-mais svg { width: 18px; height: 18px; }
.conta-avatar-picker:hover .conta-avatar-mais { border-color: #181D24; color: #181D24; }
.conta-avatar-lapis {
  position: absolute; right: 8px; bottom: 8px; z-index: 2; width: 32px; height: 32px; border-radius: 999px;
  display: flex; align-items: center; justify-content: center; color: #181D24;
  background: rgba(255, 255, 255, 0.72); border: 1px solid rgba(228, 228, 231, 0.7);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}
.conta-avatar-lapis svg { width: 16px; height: 16px; }
.conta-avatar-picker:hover .conta-avatar-lapis { border-color: #181D24; }
.conta-avatar-status { font-size: 12px; color: #71717A; margin-top: 6px; }
.conta-avatar-status.is-erro { color: #DC2626; }
@media (max-width: 639px) { .conta-perfil-topo { flex-direction: column; gap: 1rem; } }
body[data-theme="dark"] .conta-avatar-picker { background: #1c1c1c !important; border-color: #404040 !important; }
body[data-theme="dark"] .conta-avatar-mais, body[data-theme="dark"] .conta-avatar-lapis { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }
/* Lápis da foto de perfil: mesmo estilo do Hub — bolinha translúcida com
   desfoque também no modo escuro, lápis #181D24 no claro. */
html body .conta-avatar-lapis:not(#love-h-a) { color: #181D24; background: rgba(255, 255, 255, 0.72); border: 1px solid rgba(228, 228, 231, 0.7); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
html body[data-theme="dark"] .conta-avatar-lapis:not(#love-h-a) { background: rgba(37, 37, 37, 0.7) !important; }
html body .conta-avatar-picker:hover .conta-avatar-lapis:not(#love-h-a) { border-color: #181D24; }

/* Chat › Suporte Love "digitando…": três bolinhas pulando, como no WhatsApp. */
.chat-digitando {
  display: inline-flex; align-items: center; gap: 4px; padding: 12px 14px;
  background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 14px; border-bottom-left-radius: 4px;
}
.chat-digitando span {
  width: 7px; height: 7px; border-radius: 50%; background: #A1A1AA;
  animation: chat-digitando-pulo 1.2s ease-in-out infinite;
}
.chat-digitando span:nth-child(2) { animation-delay: .15s; }
.chat-digitando span:nth-child(3) { animation-delay: .3s; }
@keyframes chat-digitando-pulo {
  0%, 60%, 100% { transform: translateY(0); opacity: .45; }
  30% { transform: translateY(-4px); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .chat-digitando span { animation: none; opacity: .7; } }
body[data-theme="dark"] .chat-digitando { background: #252525 !important; border-color: #404040 !important; }

/* Chat: prévia "Digitando…" do fornecedor na lista de conversas. */
html body .chat-previa-digitando:not(#love-h-a) { color: #183b54; font-style: italic; font-weight: 500; }

/* Chat › lista de conversas: o horário vira ⋯ no hover (mesmo lugar); o ⋯
   abre Fixar / Excluir (mesmo modelo do chat do Hub). */
.conv-item-canto { position: relative; display: inline-flex; align-items: center; justify-content: flex-end; gap: 0.25rem; flex-shrink: 0; min-width: 28px; height: 18px; }
.conv-item-fixada { width: 11px; height: 11px; color: #A1A1AA; }
.conv-item-mais {
  display: none; width: 26px; height: 18px; align-items: center; justify-content: center;
  border: none; background: none; color: #52525B; cursor: pointer; border-radius: 6px; padding: 0;
}
.conv-item-mais svg { width: 16px; height: 16px; }
.conv-item-mais:hover { color: #181D24; background: rgba(0,0,0,0.05); }
.conv-item:hover .conv-item-hora, .conv-item.menu-aberto .conv-item-hora { display: none; }
.conv-item:hover .conv-item-mais, .conv-item.menu-aberto .conv-item-mais { display: inline-flex; }
@media (hover: none) { .conv-item-mais { display: inline-flex; } .conv-item-hora { display: none; } }
.conv-menu {
  position: absolute; z-index: 300; min-width: 140px; padding: 4px;
  background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.conv-menu button {
  display: block; width: 100%; text-align: left; padding: 0.5rem 0.65rem; border: none; background: none;
  border-radius: 6px; font-size: 0.8125rem; color: #18181B; cursor: pointer; font-family: inherit;
}
.conv-menu button:hover { background: #F4F4F5; }
.conv-menu .conv-menu-perigo { color: #B91C1C; }
body[data-theme="dark"] .conv-menu { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .conv-menu button { color: #F4F4F5 !important; }
body[data-theme="dark"] .conv-menu button:hover { background: #333333 !important; }
body[data-theme="dark"] .conv-menu .conv-menu-perigo { color: #F87171 !important; }
body[data-theme="dark"] .conv-item-mais { color: #D4D4D8; }
/* Chat › ⋯ da conversa: sem fundo nem efeito no hover — cinza médio, e
   preto quando o mouse passa por cima. */
html body .conv-item-mais:not(#love-h-a),
html body .conv-item-mais:not(#love-h-a):hover,
html body .conv-item-mais:not(#love-h-a):focus,
html body .conv-item-mais:not(#love-h-a):active { background: none !important; box-shadow: none !important; transform: none !important; animation: none !important; color: #71717A; transition: color .15s; }
html body .conv-item-mais:not(#love-h-a):hover,
html body .conv-item.menu-aberto .conv-item-mais:not(#love-h-a) { color: #181D24; }
/* ⋯ da conversa: bolinhas um pouco maiores e, no hover (ou com o menu
   aberto), um círculo cinza-claro em volta. */
html body .conv-item-mais:not(#love-h-a) { width: 24px; height: 24px; margin: -3px -4px -3px 0; border-radius: 50% !important; }
html body .conv-item-mais:not(#love-h-a) svg { width: 18px; height: 18px; }
html body .conv-item-mais:not(#love-h-a):hover,
html body .conv-item.menu-aberto .conv-item-mais:not(#love-h-a) { background: #F4F4F5 !important; color: #181D24; }
body[data-theme="dark"] .conv-item-mais:not(#love-h-a):hover { background: #333333 !important; }
/* Chat › conversa selecionada: linha vertical à esquerda na cor da sidebar. */
html body .conv-item.is-ativa:not(#love-h-a) { border-left: 4px solid #181D24 !important; }
/* Chat › lista: toda conversa (inclusive o Suporte Love) tem a linha
   vertical cinza-clarinha à esquerda; a ativa troca para a cor da sidebar. */
html body #b2b-chat-contacts-list .conv-item:not(#love-h-a) { border-left: 4px solid #E4E4E7 !important; }
html body #b2b-chat-contacts-list .conv-item.is-ativa:not(#love-h-a) { border-left-color: #181D24 !important; }

/* Chat › lista: horário/data um pouco maiores; busca no topo da lista. */
html body #b2b-chat-contacts-list .conv-item-hora:not(#love-h-a) { font-size: 12px; }
html body #b2b-chat-search:not(#love-h-a):focus { border-color: #181D24; box-shadow: none; }
/* Menu Fornecedores › Chat: o número de não lidas igual ao da lista de
   conversas — bolinha vermelha redonda de 18px. */
html body .badge-recados-count.chat-unread-count:not(#love-h-a) {
  display: inline-block !important; box-sizing: border-box; min-width: 18px; height: 18px; padding: 0 5px !important;
  border-radius: 9999px !important; background: #C7305B !important; color: #FFFFFF !important;
  font-size: 10px !important; font-weight: 700 !important; line-height: 18px !important; text-align: center; flex-shrink: 0;
}
/* Chat › Buscar nas conversas: mesma altura (34px) e fonte das buscas e
   botões do Explorar ("Buscar fornecedores", "Encontrar fornecedor"). */
html body input#b2b-chat-search:not(#love-h-a) { height: 34px !important; min-height: 34px !important; padding-top: 0 !important; padding-bottom: 0 !important; font-size: 14px; line-height: 34px; -webkit-appearance: none; appearance: none; }
html body input#b2b-chat-search:not(#love-h-a)::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }

/* Botão "Comentar" (drawers de convidado, tarefa e lead): cinza, para não
   confundir com o Salvar. */
html body .btn-primary.btn-comentar:not(#love-h-a) {
  background: #F4F4F5 !important; border: 1px solid #E4E4E7 !important; color: #181D24 !important; box-shadow: none !important;
}
html body .btn-primary.btn-comentar:not(#love-h-a):hover { background: #ECECEE !important; border-color: #D4D4D8 !important; }
body[data-theme="dark"] .btn-primary.btn-comentar:not(#love-h-a) { background: #333333 !important; border-color: #404040 !important; color: #FFFFFF !important; }
/* Editor do convite (Aparência): fundo atrás do convite no mesmo azul
   clarinho da planta de mesas (#FAFCFF), em vez do cinza. */
html body .builder-canvas-viewport:not(#love-h-a) { background: #FAFCFF; }
/* Convidado › Observações: "Adicionar comentário" idêntico ao "Salvar
   alterações" do fim de Informações (cinza-claro do cabeçalho, borda e
   sombra leve; no hover só a borda escurece). */
html body button.btn-comentar-convidado:not(#love-h-a) {
  height: 40px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FAFAFA; color: #181D24;
  font-size: 14px; font-weight: 600; cursor: pointer;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04); transition: border-color .15s, box-shadow .15s;
}
html body button.btn-comentar-convidado:not(#love-h-a):hover { background: #FAFAFA; border-color: #181D24; box-shadow: 0 3px 10px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.05); }
html body button.btn-comentar-convidado:not(#love-h-a):disabled { opacity: .6; cursor: default; }
body[data-theme="dark"] button.btn-comentar-convidado:not(#love-h-a) { background: #333333; border-color: #404040; color: #FFFFFF; }

/* Aparência › Save the Date: Compartilhar (no lugar do Publicar) com menu
   WhatsApp / Instagram / E-mail; e a caixa fora da tela usada para gerar
   a imagem. */
.std-compartilhar { position: relative; }
.std-compartilhar-menu {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 300; min-width: 200px; padding: 4px;
  background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.std-compartilhar-menu button {
  display: block; width: 100%; text-align: left; padding: 0.5rem 0.65rem; border: none; background: none;
  border-radius: 6px; font-size: 0.8125rem; color: #18181B; cursor: pointer; font-family: inherit;
}
.std-compartilhar-menu button:hover { background: #F4F4F5; }
.std-compartilhar-menu button:disabled { opacity: .6; cursor: default; }
.std-compartilhar-status { margin: 4px 0.65rem 6px; font-size: 12px; color: #71717A; line-height: 1.4; }
.std-captura { position: fixed; left: -10000px; top: 0; width: 390px; background: #FFFFFF; }
body[data-theme="dark"] .std-compartilhar-menu { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .std-compartilhar-menu button { color: #F4F4F5 !important; }
body[data-theme="dark"] .std-compartilhar-menu button:hover { background: #333333 !important; }
/* Barra do construtor: botões escondidos (Publicar/Ver página no Save the
   Date, Compartilhar no Convite) somem mesmo com as regras de botão. */
html body .builder-toolbar-right .hidden:not(#love-h-a) { display: none !important; }
html body #site-builder-root .builder-toolbar-right > .hidden:not(#love-h-a),
html body #site-builder-root #builder-publish.hidden:not(#love-h-a),
html body #site-builder-root #builder-preview-link.hidden:not(#love-h-a) { display: none !important; }
/* Compartilhar do Save the Date: ícone de cada canal ao lado do nome. */
.std-compartilhar-menu button[data-compartilhar] { display: flex; align-items: center; gap: 0.6rem; }
.std-compartilhar-menu button[data-compartilhar] svg { width: 18px; height: 18px; flex-shrink: 0; }
body[data-theme="dark"] .std-compartilhar-menu button[data-compartilhar="email"] svg { stroke: #F4F4F5; }

/* Save the Date › Texto: caixa grande de uma vez (sem a alça de aumentar),
   para mostrar que dá para escrever bastante. */
html body textarea.std-texto-grande:not(#love-h-a) { min-height: 260px !important; resize: none !important; line-height: 1.5; }

/* Aparência: o rótulo "Elementos"/"Modelos" vira um botão cinza-claro (cor do
   cabeçalho), sem o azul clarinho; não é clicável. */
html body #builder-elements-panel .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a) {
  background: #FAFAFA !important; border: 1px solid #E4E4E7; color: #181D24; border-radius: 8px;
}
html body #builder-elements-panel .builder-panel-tabs:not(#love-h-a) { background: transparent; border: none; padding: 0; }
body[data-theme="dark"] #builder-elements-panel .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a) { background: #252525 !important; border-color: #404040; color: #FFFFFF; }


/* Convite Digital › elemento Redes sociais (igual ao editor de site do Hub). */
.be-social { display: flex; gap: 0.6rem; flex-wrap: wrap; width: 100%; }
.be-social a {
  width: 34px; height: 34px; border-radius: 999px; background: #18181B; color: #fff;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.be-social svg { width: 15px; height: 15px; }

/* Save the Date › Editar texto: barra com o Negrito + caixa única. */
.std-editor { display: flex; flex-direction: column; gap: 8px; }
.std-editor-barra { display: flex; align-items: center; gap: 8px; }
.std-editor-negrito {
  width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
  border: 1px solid #E4E4E7; border-radius: 8px; background: #FFFFFF; color: #181D24; cursor: pointer;
}
.std-editor-negrito:hover { border-color: #181D24; }
.std-editor-negrito svg { width: 15px; height: 15px; }
.std-editor-dica { font-size: 11.5px; color: #71717A; line-height: 1.35; }
html body textarea.std-editor-texto:not(#love-h-a) { min-height: 320px !important; font-size: 13.5px; }
/* Bloco da mensagem no canvas: não é selecionável nem arrastável. */
#builder-canvas .std-mensagem-bloco { cursor: default; }
body[data-theme="dark"] .std-editor-negrito { background: #252525; border-color: #404040; color: #FFFFFF; }
html body textarea.std-editor-texto:not(#love-h-a) { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
/* Save the Date: sem barras de seção nem "arraste uma seção aqui" (só a capa e a mensagem). */
#site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-block-toolbar,
#site-builder-root[data-pagina="savethedate"] #builder-canvas-end-dropzone,
#site-builder-root[data-pagina="savethedate"] [data-new-section-dropzone] { display: none !important; }
/* Aparência › painel da esquerda: faixa "Elementos"/"Editar texto" igual às
   abas ELEMENTOS/URL do Editor de site do Hub — colada no topo, largura
   toda, só uma linha fina embaixo; aba ativa/rótulo em cinza-clarinho. */
html body #builder-elements-panel .builder-panel-tabs:not(#love-h-a) {
  margin: 0; padding: 0; gap: 0; width: 100%;
  border: none; border-radius: 0; border-bottom: 1px solid #E4E4E7; background: #FFFFFF;
}
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab:not(#love-h-a) {
  flex: 1 1 50%; height: 44px; display: flex; align-items: center; justify-content: center;
  border: none; border-radius: 0 !important; background: #FFFFFF !important; color: #71717A;
  font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
}
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab + .builder-panel-tab:not(#love-h-a) { border-left: 1px solid #E4E4E7; }
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab:not(#love-h-a):hover { color: #181D24; }
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab.active:not(#love-h-a),
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a) {
  background: #FAFAFA !important; color: #181D24; border: none;
}
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab + .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a),
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab.active + .builder-panel-tab:not(#love-h-a) { border-left: 1px solid #E4E4E7; }
body[data-theme="dark"] #builder-elements-panel .builder-panel-tabs:not(#love-h-a) { background: #1F1F1F !important; border-bottom-color: #404040 !important; }
body[data-theme="dark"] #builder-elements-panel .builder-panel-tabs .builder-panel-tab:not(#love-h-a) { background: #1F1F1F !important; color: #A1A1AA !important; }
body[data-theme="dark"] #builder-elements-panel .builder-panel-tabs .builder-panel-tab + .builder-panel-tab:not(#love-h-a) { border-left-color: #404040 !important; }
body[data-theme="dark"] #builder-elements-panel .builder-panel-tabs .builder-panel-tab.active:not(#love-h-a),
body[data-theme="dark"] #builder-elements-panel .builder-panel-tabs .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a) { background: #2A2A2A !important; color: #FFFFFF !important; }
/* Aparência › painel: "Elementos", "Básicos" e "Avançado" escritos normal
   (sem caixa alta), no tamanho dos textos dos submenus. */
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab:not(#love-h-a),
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a) {
  text-transform: none; letter-spacing: normal; font-size: 13px; font-weight: 600;
}
html body #builder-elements-panel .builder-el-group-title:not(#love-h-a) {
  text-transform: none; letter-spacing: normal; font-size: 13px; font-weight: 600; color: #71717A;
}

/* /login: "Esqueceu a senha?" embaixo da senha, à direita, em cinza; "ou
   continue com" minúsculo e em preto. */
html body button.login-esqueceu-senha:not(#love-h-a) {
  background: none; border: none; padding: 0; height: auto; box-shadow: none;
  font-size: 13px; font-weight: 500; color: #71717A; cursor: pointer;
}
html body button.login-esqueceu-senha:not(#love-h-a):hover { color: #181D24; text-decoration: underline; background: none; }
.login-ou-continue { font-size: 12px; font-weight: 500; color: #181D24; text-transform: none; }

/* /login: ícone de e-mail e olhinho da senha dentro do campo, à direita, em
   cinza-claro. */
.login-campo-com-icone { position: relative; }
html body .login-campo-com-icone input:not(#love-h-a) { padding-right: 2.75rem; }
.login-campo-icone {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; color: #A1A1AA; pointer-events: none;
}
.login-campo-icone svg { width: 18px; height: 18px; }
html body button.login-ver-senha:not(#love-h-a) {
  pointer-events: auto; cursor: pointer; background: none; border: none; padding: 0; box-shadow: none; color: #A1A1AA;
  width: 28px; height: 28px; right: 8px; border-radius: 6px;
}
html body button.login-ver-senha:not(#love-h-a):hover { color: #71717A; background: none; }
.login-ver-senha .hidden { display: none; }

/* Save the Date: barra de formatação do WhatsApp e a prévia da mensagem. */
.std-editor-barra { flex-wrap: wrap; gap: 4px; }
.std-editor-barra .std-editor-negrito { width: 30px; height: 30px; }
#builder-canvas .std-mensagem-bloco .be-text, .std-mensagem-bloco .be-text { line-height: 1.5; }
.std-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.std-codigo { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background: #F4F4F5; border: 1px solid #E4E4E7; border-radius: 4px; padding: 0 4px; font-size: 0.92em; }
.std-citacao { border-left: 3px solid #D4D4D8; padding-left: 8px; color: #52525B; }
.std-item { padding-left: 4px; }
/* Save the Date: a prévia é uma conversa do WhatsApp — fundo de papel de
   parede do WhatsApp e a mensagem num balão verde de "enviada", com a hora. */
#site-builder-root[data-pagina="savethedate"] #builder-canvas {
  background: #EFEAE2 url('../assets/whatsapp-fundo.webp') center top / 420px auto repeat !important;
  min-height: 560px;
}
#site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-section,
#site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-column,
#site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-columns-row { background: transparent !important; box-shadow: none !important; border-color: transparent !important; }
#site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-fixed-footer { display: none !important; }
#site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-section { padding: 20px 12px !important; }
.std-mensagem-bloco { display: flex; justify-content: flex-end; }
.std-bolha {
  position: relative; max-width: 88%; padding: 6px 8px 8px 9px; background: #D9FDD3; color: #111B21;
  border-radius: 8px; border-top-right-radius: 0; box-shadow: 0 1px 0.5px rgba(11, 20, 26, 0.13);
  font-family: 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 14.2px; line-height: 19px; text-align: left;
}
.std-bolha::after {
  content: ''; position: absolute; top: 0; right: -8px; width: 8px; height: 13px;
  background: #D9FDD3; clip-path: polygon(0 0, 100% 0, 0 100%);
}
html body .std-bolha .be-text:not(#love-h-a) { font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; color: inherit !important; margin: 0 !important; }
.std-bolha-hora { float: right; margin: 8px 0 -4px 10px; font-size: 11px; line-height: 15px; color: #667781; white-space: nowrap; }
.std-bolha-lido { color: #53BDEB; letter-spacing: -3px; margin-left: 2px; }

/* Save the Date: fundo branco (como o painel de editar) e a prévia dentro
   de um "celular" com a conversa do WhatsApp; o rodapé "Feito com Love"
   continua embaixo. */
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas:not(#love-h-a) { background: #FFFFFF !important; min-height: 0; }
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-fixed-footer:not(#love-h-a) { display: block !important; }
#site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-section { padding: 16px 12px !important; }
.std-celular {
  display: flex; flex-direction: column; width: 100%; max-width: 380px; margin: 0 auto; min-height: 560px;
  border: 1px solid #E4E4E7; border-radius: 22px; overflow: hidden; background: #FFFFFF;
  font-family: -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
}
.std-celular-status { display: flex; align-items: center; justify-content: space-between; padding: 8px 18px 2px; font-size: 13px; font-weight: 600; color: #111B21; background: #F6F6F6; }
.std-celular-status-icones { display: flex; align-items: center; gap: 5px; }
.std-celular-status svg { height: 11px; width: auto; }
.std-celular-topo { display: flex; align-items: center; gap: 8px; padding: 8px 14px 10px; background: #F6F6F6; border-bottom: 1px solid #DADADA; color: #1A6FCB; }
.std-celular-voltar svg { width: 22px; height: 22px; display: block; }
.std-celular-avatar { width: 32px; height: 32px; border-radius: 50%; background: #DFE5E7; color: #FFFFFF; display: flex; align-items: flex-end; justify-content: center; overflow: hidden; }
.std-celular-avatar svg { width: 28px; height: 28px; }
.std-celular-nome { flex: 1; font-size: 15px; font-weight: 600; color: #111B21; }
.std-celular-acoes { display: flex; gap: 18px; }
.std-celular-acoes svg { width: 24px; height: 24px; display: block; }
.std-celular-conversa { flex: 1; padding: 14px 10px; background: #EFEAE2 url('../assets/whatsapp-fundo.webp') center top / 380px auto repeat; }
.std-celular-rodape { display: flex; align-items: center; gap: 10px; padding: 8px 12px 14px; background: #F6F6F6; border-top: 1px solid #DADADA; color: #1A6FCB; }
.std-celular-rodape > svg, .std-celular-mais svg { width: 24px; height: 24px; display: block; flex-shrink: 0; }
.std-celular-campo { flex: 1; height: 32px; border: 1px solid #D1D7DB; border-radius: 18px; background: #FFFFFF; display: flex; align-items: center; justify-content: flex-end; padding-right: 8px; }
.std-celular-campo svg { width: 20px; height: 20px; }
/* Save the Date (ajuste): a área toda é o celular — sem margem em volta,
   sem cantos arredondados, barras de cima e de baixo de ponta a ponta (como
   o rodapé "Feito com Love") e a conversa com fundo branco. */
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-section:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-columns-row:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-column:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-column-inner:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-element:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-sections-list:not(#love-h-a) {
  padding: 0 !important; margin: 0 !important; gap: 0 !important; max-width: none !important; width: 100% !important; min-height: 0 !important;
}
html body .std-celular:not(#love-h-a) { max-width: none; margin: 0; border: none; border-radius: 0; min-height: 600px; }
html body .std-celular-conversa:not(#love-h-a) { background: #FFFFFF; }
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-section:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-column:not(#love-h-a) { border: 0 !important; outline: 0 !important; }
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-element.std-celular:not(#love-h-a) { min-height: 600px !important; }
/* Aparência (Convite Digital e Save the Date): o convite usa a altura toda —
   sem margem em cima e embaixo; o rodapé "Feito com Love" encosta no fim. As
   margens laterais continuam. */
html body #site-builder-root .builder-canvas-viewport:not(#love-h-a) { padding-top: 0 !important; padding-bottom: 0 !important; }
html body #site-builder-root #builder-canvas-frame:not(#love-h-a),
html body #site-builder-root #builder-canvas:not(#love-h-a) { margin-top: 0 !important; margin-bottom: 0 !important; }
/* Save the Date: o celular estica até o rodapé encostar no fim da tela. */
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas:not(#love-h-a) { min-height: 100% !important; display: flex !important; flex-direction: column !important; }
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-sections-list:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-section:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-columns-row:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-column:not(#love-h-a),
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-column > *:not(#love-h-a) { flex: 1 1 auto !important; display: flex !important; flex-direction: column !important; }
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-element.std-celular:not(#love-h-a) { flex: 1 1 auto !important; }
html body #site-builder-root[data-pagina="savethedate"] #builder-canvas .builder-fixed-footer:not(#love-h-a) { flex: 0 0 auto; }
/* Save the Date: barra de formatação na largura da caixa de texto (8 botões
   iguais); monoespaçado e código em linha como no WhatsApp. */
html body .std-editor-barra:not(#love-h-a) { display: grid !important; grid-template-columns: repeat(8, 1fr); gap: 4px; width: 100%; }
html body .std-editor-barra .std-editor-negrito:not(#love-h-a) { width: 100%; height: 34px; }
html body .std-editor-barra .std-editor-negrito svg { width: 16px; height: 16px; }
html body .std-bolha .std-mono:not(#love-h-a) { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Courier New', monospace !important; font-size: 13.5px; }
html body .std-bolha .std-codigo:not(#love-h-a) {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Courier New', monospace !important; font-size: 13.5px;
  background: rgba(11, 20, 26, 0.05); border: none; border-radius: 4px; padding: 1px 4px; color: inherit;
}

/* Save the Date › "Gerar com IA" no canto inferior direito da caixa de texto. */
.std-editor-ia { display: flex; justify-content: flex-end; }
html body button.std-gerar-ia:not(#love-h-a) {
  display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px;
  border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FAFAFA; color: #181D24;
  font-size: 13px; font-weight: 600; cursor: pointer; box-shadow: none;
}
html body button.std-gerar-ia:not(#love-h-a):hover { border-color: #181D24; background: #FAFAFA; }
html body button.std-gerar-ia:not(#love-h-a):disabled { cursor: default; opacity: .85; }
.std-gerar-ia svg { width: 16px; height: 16px; color: #8B5CF6; }
.std-gerar-ia.is-gerando svg { animation: std-ia-pulso 0.9s ease-in-out infinite; }
@keyframes std-ia-pulso { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.18); opacity: .6; } }
body[data-theme="dark"] button.std-gerar-ia { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }

/* Save the Date: 7 formatos + emoji na largura da caixa; painel de emojis. */
html body .std-editor-barra:not(#love-h-a) { grid-template-columns: repeat(8, 1fr); }
html body .std-editor-barra .std-editor-negrito.is-ativo:not(#love-h-a) { border-color: #181D24; }
.std-emojis {
  display: grid; grid-template-columns: repeat(8, 1fr); gap: 2px; padding: 6px; max-height: 196px; overflow-y: auto;
  border: 1px solid #E4E4E7; border-radius: 8px; background: #FFFFFF;
}
.std-emojis.hidden { display: none; }
html body button.std-emoji:not(#love-h-a) {
  height: 32px; border: none; background: none; border-radius: 6px !important; font-size: 19px; line-height: 1; cursor: pointer; padding: 0; box-shadow: none;
}
html body button.std-emoji:not(#love-h-a):hover { background: #F4F4F5; }
body[data-theme="dark"] .std-emojis { background: #252525; border-color: #404040; }
body[data-theme="dark"] button.std-emoji:hover { background: #333333 !important; }
/* Painel de emojis: abre por cima da caixa de texto (dropdown), sem empurrar. */
.std-editor { position: relative; }
html body .std-emojis:not(#love-h-a) {
  position: absolute; top: 40px; left: 0; right: 0; z-index: 30;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
/* "Gerar com IA": mesmo visual do botão Salvar (branco, borda fina, 34px). */
html body button.std-gerar-ia:not(#love-h-a),
html body button.std-gerar-ia:not(#love-h-a):hover { background: #FFFFFF; }
html body button.std-gerar-ia:not(#love-h-a) { border: 1px solid #EAEAEA; color: #3F3F46; font-size: 14px; font-weight: 600; padding: 0 16px; height: 34px; }
html body button.std-gerar-ia:not(#love-h-a):hover { border-color: #181D24; color: #181D24; }

/* Personalizar evento › Organizadores: sem a prévia ao lado (a tabela usa a
   largura toda); convite com e-mail + Continuar; tabela no padrão da plataforma. */
body.editor-split-mode.organizadores-sem-previa #editor-live-preview-column { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  body.editor-split-mode.organizadores-sem-previa #editor-form-column { display: block !important; }
}
.org-convite-linha { display: flex; align-items: center; gap: 8px; max-width: 560px; }
html body #editor-form-about input.org-convite-email:not(#love-h-a) { height: 36px; padding: 0 12px; border: 1px solid #E4E4E7; border-radius: 8px !important; font-size: 13px; box-shadow: none; }
html body #editor-form-about input.org-convite-email:not(#love-h-a):focus { border-color: #181D24; box-shadow: none; }
html body button.org-continuar:not(#love-h-a) {
  flex-shrink: 0; height: 36px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FFFFFF; color: #3F3F46;
  font-size: 13px; font-weight: 600; cursor: pointer; box-shadow: none;
}
html body button.org-continuar:not(#love-h-a):hover { background: #FFFFFF; border-color: #181D24; color: #181D24; }
html body #view-event-os-dashboard #organizadores-caixa:not(#love-h-a) { background: #FFFFFF !important; border: 1px solid #E4E4E7 !important; border-radius: 10px; padding: 0 !important; box-shadow: none !important; }
html body #view-event-os-dashboard #organizadores-tabela thead th:not(#love-h-a) { font-size: 13px; font-weight: 700; color: #3F3F46; }
html body #view-event-os-dashboard #organizadores-tabela tbody tr.org-editar-linha td:not(#love-h-a) { background: #FAFAFA !important; border-top: 0 !important; padding: 12px 16px 16px !important; }
.org-situacao { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #3F3F46; }
.org-situacao::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #A1A1AA; }
.org-situacao-aceito::before { background: #181D24; }
.org-situacao-pendente::before { background: #D97706; }
.org-situacao-criador::before { display: none; }
.org-copiado { margin-left: 8px; font-size: 11px; color: #15803D; }
/* Organizadores › menu ⋯ da linha (Editar funções / Copiar link / Remover). */
.org-menu {
  position: absolute; z-index: 300; min-width: 190px; padding: 4px;
  background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
html body .org-menu button:not(#love-h-a) {
  display: block; width: 100%; text-align: left; padding: 0.5rem 0.65rem; border: none; background: none;
  border-radius: 6px !important; font-size: 0.8125rem; color: #18181B; cursor: pointer; font-family: inherit; box-shadow: none;
}
html body .org-menu button:not(#love-h-a):hover { background: #F4F4F5; }
body[data-theme="dark"] .org-menu { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .org-menu button { color: #F4F4F5 !important; }

/* Configurações › Segurança: acordeão (título + seta), sem cara de botão. */
html body button.seguranca-acordeao:not(#love-h-a) {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 0; border: 0; background: none; box-shadow: none; cursor: pointer; text-align: left; height: auto;
}
html body button.seguranca-acordeao:not(#love-h-a):hover { background: none; }
html body button.seguranca-acordeao:not(#love-h-a):hover svg { color: #181D24; }
/* Configurações › Meus eventos: tabela no padrão da plataforma. */
html body #view-event-os-dashboard #config-eventos-caixa:not(#love-h-a) { background: #FFFFFF !important; border: 1px solid #E4E4E7 !important; border-radius: 10px; padding: 0 !important; box-shadow: none !important; }
html body #view-event-os-dashboard #config-eventos-tabela thead th:not(#love-h-a) { font-size: 13px; font-weight: 700; color: #3F3F46; }
#config-eventos-tabela .config-evento-check { margin-right: .4rem; }
/* Configurações › Meus eventos: o "Salvar alterações" some mesmo (a regra
   geral de botões vencia o .hidden). */
html body #btn-save-user-settings.hidden:not(#love-h-a) { display: none !important; }

/* Cabeçalho de Informações/Organizadores: o Salvar na mesma altura (34px) do
   Salvar/Publicar do Convite Digital. */
html body #classic-editor-toolbar .builder-toolbar-btn:not(#love-h-a) { height: 34px; padding: 0 20px; display: inline-flex; align-items: center; }
/* Organizadores: cabeçalho só com o título (sem Salvar, desfazer e refazer). */
body.organizadores-sem-previa #classic-editor-toolbar .builder-tool-btn,
body.organizadores-sem-previa #editor-header-save-container { display: none !important; }
/* Organizadores: e-mail + Convidar na barra da tabela; funções abaixo da barra. */
#organizadores-caixa .org-convite-linha { max-width: none; flex: 1 1 320px; }
html body #editor-form-about input.org-convite-email:not(#love-h-a) { width: 100%; max-width: 420px; }
#organizadores-caixa .org-passo2 { padding: 0 16px 16px; border-bottom: 1px solid #E4E4E7; }
#organizadores-caixa .org-feedback { padding: 0 16px 14px; }
/* ==========================================================================
   Padrão de tamanho dos botões — o mesmo do Hub B2B.
   Cabeçalhos das páginas (Salvar, Publicar, Compartilhar, Adicionar presente,
   Adicionar convidado, Salvar alterações…), "Filtrar por"/"Exportar"/lixeira
   e as barras de busca: 38px de altura, texto 14px em peso 600, 14px de
   respiro lateral, cantos de 8px e ícones de 16px.
   ========================================================================== */
html body .builder-toolbar .btn-primary:not(#love-h-a),
html body .builder-toolbar .btn-secondary:not(#love-h-a),
html body .builder-toolbar .btn-brand:not(#love-h-a),
html body .builder-toolbar .btn-white:not(#love-h-a),
html body .builder-toolbar .builder-toolbar-btn:not(#love-h-a),
html body #classic-editor-toolbar .builder-toolbar-btn:not(#love-h-a),
html body #view-event-os-dashboard .love-tabela-botao:not(#love-h-a),
html body button.org-continuar:not(#love-h-a) {
  height: 38px !important; min-height: 38px !important; box-sizing: border-box;
  padding: 0 14px !important; font-size: 0.875rem !important; font-weight: 600 !important; line-height: 1;
  border-radius: 8px !important; display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
}
html body .builder-toolbar .btn-primary svg:not(#love-h-a),
html body .builder-toolbar .btn-secondary svg:not(#love-h-a),
html body .builder-toolbar .btn-brand svg:not(#love-h-a),
html body .builder-toolbar .btn-white svg:not(#love-h-a),
html body #view-event-os-dashboard .love-tabela-botao:not(#love-h-a) svg { width: 16px !important; height: 16px !important; flex-shrink: 0; }
/* Botão só de ícone no cabeçalho (ex.: presente aleatório): quadrado de 38px. */
html body #btn-host-add-random-gift:not(#love-h-a) { width: 38px; padding: 0 !important; }
/* Buscas (tabelas, Explorar, Chat, convite de organizador): 38px e 14px. */
html body #view-event-os-dashboard .love-tabela-busca input:not(#love-h-a),
html body #b2b-search-input:not(#love-h-a),
html body input#b2b-chat-search:not(#love-h-a),
html body #editor-form-about input.org-convite-email:not(#love-h-a) { height: 38px !important; min-height: 38px !important; font-size: 0.875rem; border-radius: 8px !important; box-sizing: border-box; }
html body #view-event-os-dashboard .love-tabela-busca input:not(#love-h-a) { padding-left: 34px; }
html body #b2b-search-input:not(#love-h-a) { padding-left: 36px; }

/* Botões de ação em formulários (Configurações: Alterar senha, Ativar/
   Desativar dois fatores, Excluir conta): o mesmo "Verificar"/"Atualizar
   senha" do Hub — 44px, 14px em peso 600, 150px de largura, centrado. */
html body #btn-settings-change-password:not(#love-h-a),
html body #btn-settings-mfa-toggle:not(#love-h-a),
html body #btn-settings-delete-account:not(#love-h-a) {
  height: 44px; min-height: 44px; box-sizing: border-box; min-width: 150px; padding: 0 1.25rem;
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  font-size: 0.875rem; font-weight: 600; border-radius: 8px !important;
  background: #FFFFFF; color: #3F3F46; border: 1px solid #E4E4E7; box-shadow: none;
}
html body #btn-settings-change-password:not(#love-h-a):hover,
html body #btn-settings-mfa-toggle:not(#love-h-a):hover,
html body #btn-settings-delete-account:not(#love-h-a):hover { background: #FFFFFF; border-color: #181D24; color: #181D24; }
html body #btn-settings-mfa-verify:not(#love-h-a) { height: 44px; min-height: 44px; font-size: 0.875rem; font-weight: 600; border-radius: 8px !important; }
/* "Salvar alterações" no fim de Informações e "Adicionar comentário": 44px como os botões de formulário do Hub. */
html body button.informacoes-salvar-rodape:not(#love-h-a),
html body button.btn-comentar-convidado:not(#love-h-a) { height: 44px; font-size: 0.875rem; }
/* Padrão do Hub (38px) também nos botões/buscas de cabeçalho fixados em 34px
   por id mais acima. Desfazer/refazer/ver página continuam 34×34 (como o Hub). */
html body #builder-save:not(#love-h-a),
html body #builder-publish:not(#love-h-a),
html body #builder-share:not(#love-h-a),
html body #btn-host-add-guest:not(#love-h-a),
html body .btn-host-add-gift:not(#love-h-a),
html body #btn-host-add-random-gift:not(#love-h-a),
html body #floorplan-filter-btn:not(#love-h-a),
html body #btn-open-add-table-modal:not(#love-h-a),
html body #btn-wallet-export:not(#love-h-a),
html body #btn-add-comprovante:not(#love-h-a):not(.hidden),
html body #btn-notifications-mark-all-read:not(#love-h-a),
html body #btn-save-user-settings:not(#love-h-a) {
  height: 38px !important; min-height: 38px !important;
  padding-left: 14px !important; padding-right: 14px !important;
  font-size: 0.875rem !important; font-weight: 600 !important; border-radius: 8px !important;
}
html body #btn-host-add-random-gift:not(#love-h-a) { width: 38px !important; min-width: 38px !important; padding-left: 0 !important; padding-right: 0 !important; }
html body #gifts-search-input:not(#love-h-a),
html body #rsvp-search-input:not(#love-h-a),
html body #b2b-search-input:not(#love-h-a),
html body #b2b-location-input:not(#love-h-a),
html body input#b2b-chat-search:not(#love-h-a) { height: 38px !important; min-height: 38px !important; font-size: 0.875rem !important; line-height: normal; }
html body #b2b-view-toggle:not(#love-h-a) { height: 38px !important; }
html body #btn-host-add-gift:not(#love-h-a) { height: 38px !important; min-height: 38px !important; padding-left: 14px !important; padding-right: 14px !important; font-size: 0.875rem !important; font-weight: 600 !important; border-radius: 8px !important; }
html body #btn-gifts-delete-selected:not(#love-h-a):not(.hidden) { height: 38px !important; min-height: 38px !important; }
/* Aparência › faixa "Elementos"/"Editar texto": fundo branco, igual ao resto do painel. */
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab.active:not(#love-h-a),
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a) { background: #FFFFFF !important; }
/* Botões escondidos (classe hidden) nas barras de título somem mesmo com a
   regra de 38px (que usa display:inline-flex) — ex.: a lixeira de Meus
   presentes só aparece com algum presente selecionado. */
html body .builder-toolbar .hidden:not(#love-h-a),
html body #view-event-os-dashboard .love-tabela-barra .hidden:not(#love-h-a) { display: none !important; }
/* Aparência › faixa "Elementos"/"Editar texto": caixa retangular branca com
   bordas arredondadas, como as caixinhas dos elementos — com o mesmo respiro
   lateral da grade, sem a linha de baixo. */
html body #builder-elements-panel .builder-panel-tabs:not(#love-h-a) {
  margin: 0.65rem 0.65rem 0; width: auto; padding: 0;
  border: 1px solid #E4E4E7; border-bottom: 1px solid #E4E4E7; border-radius: 10px; background: #FFFFFF; overflow: hidden;
}
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a),
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab.active:not(#love-h-a) { height: 40px; border: none; }
/* Elementos (Convite Digital): no hover só o fundo fica cinza bem claro (cor do
   cabeçalho), sem contorno azul nem subir. */
html body .builder-el-item:not(#love-h-a):hover { background: #FAFAFA; border-color: #E4E4E7; transform: none; }
body[data-theme="dark"] .builder-el-item:not(#love-h-a):hover { background: #333333 !important; border-color: #404040 !important; }
body[data-theme="dark"] #builder-elements-panel .builder-panel-tabs:not(#love-h-a) { background: #1F1F1F !important; border-color: #404040 !important; }
html body #builder-elements-panel .builder-el-item:not(#love-h-a):hover { background: #FAFAFA !important; border-color: #E4E4E7 !important; }
body[data-theme="dark"] #builder-elements-panel .builder-el-item:not(#love-h-a):hover { background: #333333 !important; }
/* Elementos (Convite Digital): hover no azul-clarinho do ícone ativo do sidebar (#EBF4FF). */
html body #builder-elements-panel .builder-el-item:not(#love-h-a):hover { background: #EBF4FF !important; }
/* Presentes › "Permitir vaquinha": card polido — fundo sutil, borda ultrafina,
   ícone em selo azul-clarinho, texto alinhado ao centro com o switch; com a
   vaquinha ligada, a borda ganha o tom primário. Clicar no card alterna. */
.vaquinha-card {
  display: flex; align-items: center; gap: 12px; padding: 14px 16px; cursor: pointer;
  background: #FAFAFA; border: 1px solid rgba(228, 228, 231, 0.7); border-radius: 10px;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.vaquinha-card:hover { border-color: #D4D4D8; background: #FFFFFF; }
.vaquinha-card:has(input:checked) { border-color: rgba(24, 59, 84, 0.35); box-shadow: inset 0 0 0 1px rgba(24, 59, 84, 0.12); background: #FFFFFF; }
.vaquinha-icone {
  width: 36px; height: 36px; flex-shrink: 0; border-radius: 8px; background: #EBF4FF; color: #183b54;
  display: inline-flex; align-items: center; justify-content: center;
}
.vaquinha-icone svg { width: 18px; height: 18px; }
.vaquinha-texto { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.vaquinha-titulo { font-size: 14px; font-weight: 600; color: #18181B; line-height: 1.3; }
.vaquinha-descricao { font-size: 12px; color: #71717A; line-height: 1.5; max-width: 90%; }
/* Switch: cinza quando desligado, primário quando ligado; bolinha com sombra leve. */
.vaquinha-switch .settings-switch-track { background: #E4E4E7; transition: background-color .2s ease; }
.vaquinha-switch .settings-switch-track::before { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12); transition: transform .2s ease; }
html body .vaquinha-switch input:checked ~ .settings-switch-track:not(#love-h-a) { background: #183b54; }
body[data-theme="dark"] .vaquinha-card { background: #1F1F1F; border-color: #404040; }
body[data-theme="dark"] .vaquinha-card:hover, body[data-theme="dark"] .vaquinha-card:has(input:checked) { background: #252525; }
body[data-theme="dark"] .vaquinha-titulo { color: #FFFFFF; }
body[data-theme="dark"] .vaquinha-icone { background: #2A2A2A; color: #9CC3E4; }
/* Padrão: entre o título/abas de uma página e a caixa da tabela há 24px (o
   mesmo de Meus convidados). Vale para Organizadores e Meus eventos. */
html body #organizadores-caixa:not(#love-h-a),
html body #config-eventos-caixa:not(#love-h-a) { margin-top: 24px !important; }
html body #config-painel-eventos > h3:not(#love-h-a) { margin-bottom: 0; }
/* Organizadores: "Adicionar organizador" na cor da sidebar (como "Adicionar
   convidado"), com o + na frente; sem título acima da caixa. */
html body button.org-continuar:not(#love-h-a) { background: #181D24; color: #FFFFFF; border-color: #181D24; }
html body button.org-continuar:not(#love-h-a):hover { background: #0F1216; border-color: #0F1216; color: #FFFFFF; }
html body button.org-continuar:not(#love-h-a) svg { width: 16px; height: 16px; }
html body #organizadores-caixa:not(#love-h-a) { margin-top: 0 !important; }
/* ==========================================================================
   Camada anti-"vibe code" (diretriz global de refinamento visual)
   1. Bordas translúcidas (preto a 6%) com anel quase invisível (3%) no
      lugar do cinza chapado; divisores de tabela a 4%.
   2. Raios: mantidos os da identidade (cards 10px, controles 8px, tags 6px).
   3. Sombras: nada de sombra seca em cards; nos overlays (menus, drawers,
      modais) sombra difusa em camadas.
   4. Tipografia: títulos com tracking apertado; microtextos em 11px/500
      cinza; valores em dinheiro com algarismos tabulares e mono.
   5. Switches: cinza quando desligado, cor primária da marca quando ligado.
   Tudo com variante escura.
   ========================================================================== */
:root {
  --borda-suave: rgba(0, 0, 0, 0.06);
  --anel-suave: 0 0 0 1px rgba(0, 0, 0, 0.03);
  --divisor-suave: rgba(0, 0, 0, 0.04);
  --sombra-overlay: 0 1px 2px rgba(0, 0, 0, 0.03), 0 8px 24px -4px rgba(0, 0, 0, 0.08);
  --sombra-overlay-hover: 0 4px 20px -2px rgba(0, 0, 0, 0.08);
}
body[data-theme="dark"] {
  --borda-suave: rgba(255, 255, 255, 0.08);
  --anel-suave: 0 0 0 1px rgba(255, 255, 255, 0.04);
  --divisor-suave: rgba(255, 255, 255, 0.04);
  --sombra-overlay: 0 1px 2px rgba(0, 0, 0, 0.3), 0 8px 24px -4px rgba(0, 0, 0, 0.5);
}

/* 1. Bordas e divisores */
html body .dash-card:not(#love-h-a),
html body #view-event-os-dashboard .love-tabela-caixa:not(#love-h-a),
html body #organizadores-caixa:not(#love-h-a),
html body #config-eventos-caixa:not(#love-h-a),
html body .builder-el-item:not(#love-h-a),
html body #builder-elements-panel .builder-panel-tabs:not(#love-h-a),
html body .vaquinha-card:not(#love-h-a),
html body .conta-avatar-picker:not(#love-h-a),
html body .std-emojis:not(#love-h-a) { border-color: var(--borda-suave) !important; box-shadow: var(--anel-suave); }
html body .vaquinha-card:has(input:checked):not(#love-h-a) { border-color: rgba(24, 59, 84, 0.35) !important; box-shadow: var(--anel-suave), inset 0 0 0 1px rgba(24, 59, 84, 0.12); }
html body #view-event-os-dashboard input[type="text"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="email"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="search"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="number"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="url"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="password"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="date"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="time"]:not(#love-h-a),
html body #view-event-os-dashboard select:not(#love-h-a),
html body #view-event-os-dashboard textarea:not(#love-h-a) { border-color: var(--borda-suave); }
html body #view-event-os-dashboard input:not(#love-h-a):focus,
html body #view-event-os-dashboard select:not(#love-h-a):focus,
html body #view-event-os-dashboard textarea:not(#love-h-a):focus { border-color: #181D24; }
html body #view-event-os-dashboard table.love-tabela tbody td:not(#love-h-a) { border-top-color: var(--divisor-suave) !important; }
html body #view-event-os-dashboard table.love-tabela thead th:not(#love-h-a) { border-top-color: var(--borda-suave) !important; border-bottom-color: var(--borda-suave) !important; }
html body #view-event-os-dashboard .love-tabela-barra:not(#love-h-a) { border-bottom: 1px solid var(--divisor-suave); }
html body .divide-y > :not([hidden]) ~ :not([hidden]):not(#love-h-a),
html body .divide-zinc-100 > :not([hidden]) ~ :not([hidden]):not(#love-h-a) { border-color: var(--divisor-suave); }

/* 3. Sombras difusas só em overlays */
html body .org-menu:not(#love-h-a),
html body .conv-menu:not(#love-h-a),
html body .love-tabela-filtro-menu:not(#love-h-a),
html body .std-compartilhar-menu:not(#love-h-a),
html body .std-emojis:not(#love-h-a),
html body .kanban-list-dropdown:not(#love-h-a),
html body #dropdown-user-account:not(#love-h-a) { box-shadow: var(--sombra-overlay); border-color: var(--borda-suave); transition: box-shadow .15s ease-out; }

/* 4. Tipografia */
html body h1:not(#love-h-a), html body h2:not(#love-h-a), html body h3:not(#love-h-a),
html body .floorplan-page-name:not(#love-h-a), html body .builder-page-name:not(#love-h-a),
html body .vaquinha-titulo:not(#love-h-a) { letter-spacing: -0.025em; }
html body p.text-\[11px\].text-zinc-400:not(#love-h-a), html body p.text-\[11px\].text-zinc-500:not(#love-h-a),
html body span.text-\[11px\].text-zinc-400:not(#love-h-a), html body span.text-\[11px\].text-zinc-500:not(#love-h-a),
html body p.text-\[11px\].text-slate-400:not(#love-h-a), html body p.text-\[11px\].text-slate-500:not(#love-h-a),
html body .conta-avatar-status:not(#love-h-a), html body .org-editar-erro:not(.text-red-600):not(#love-h-a) { font-size: 11px; font-weight: 500; color: #A1A1AA; }
html body #view-event-os-dashboard table.love-tabela td:not(#love-h-a) { font-variant-numeric: tabular-nums; }
html body #kpi-budget-total:not(#love-h-a), html body #kpi-budget-spent:not(#love-h-a),
html body #kpi-budget-paid-total:not(#love-h-a), html body #kpi-budget-due:not(#love-h-a),
html body #budget-donut-amount:not(#love-h-a), html body .convite-carrinho-total strong:not(#love-h-a),
html body [id^="wallet-balance"]:not(#love-h-a), html body [id^="kpi-wallet"]:not(#love-h-a) {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Courier New', monospace; font-variant-numeric: tabular-nums; letter-spacing: -0.025em;
}

/* 5. Switches: cinza desligado, primária da marca ligado (sem o azul de biblioteca) */
html body .settings-switch .settings-switch-track:not(#love-h-a) { background: #E4E4E7; transition: background-color .2s ease; }
html body .settings-switch .settings-switch-track:not(#love-h-a)::before { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12); transition: transform .2s ease; }
html body .settings-switch input:checked ~ .settings-switch-track:not(#love-h-a) { background: #183b54; }
body[data-theme="dark"] .settings-switch .settings-switch-track:not(#love-h-a) { background: #4b4b4b !important; }
body[data-theme="dark"] .settings-switch input:checked ~ .settings-switch-track:not(#love-h-a) { background: #9CC3E4 !important; }
body[data-theme="dark"] .settings-switch input:checked ~ .settings-switch-track:not(#love-h-a)::before { background: #181D24; }
/* Prioridade da camada anti-"vibe code" sobre regras antigas com !important. */
html body .dash-card:not(#love-h-a),
html body #view-event-os-dashboard .love-tabela-caixa:not(#love-h-a) { box-shadow: var(--anel-suave) !important; }
html body h1:not(#love-h-a), html body h2:not(#love-h-a), html body h3:not(#love-h-a),
html body .floorplan-page-name:not(#love-h-a), html body .builder-page-name:not(#love-h-a) { letter-spacing: -0.025em !important; }
html body #view-event-os-dashboard input[type="text"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="email"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="search"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="number"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="url"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="password"]:not(#love-h-a),
html body #view-event-os-dashboard select:not(#love-h-a),
html body #view-event-os-dashboard textarea:not(#love-h-a) { border-color: var(--borda-suave) !important; }
html body #view-event-os-dashboard input:not(#love-h-a):focus,
html body #view-event-os-dashboard select:not(#love-h-a):focus,
html body #view-event-os-dashboard textarea:not(#love-h-a):focus { border-color: #181D24 !important; }
html body #kpi-budget-total:not(#love-h-a), html body #kpi-budget-spent:not(#love-h-a),
html body #kpi-budget-paid-total:not(#love-h-a), html body #kpi-budget-due:not(#love-h-a),
html body #budget-donut-amount:not(#love-h-a), html body [id^="wallet-balance"]:not(#love-h-a), html body [id^="kpi-wallet"]:not(#love-h-a) {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Courier New', monospace !important;
}
/* Valores em dinheiro (saldo da Carteira, KPIs do Orçamento): na mesma fonte
   do cabeçalho (Inter), só com algarismos tabulares — sem fonte mono. */
html body #kpi-budget-total:not(#love-h-a), html body #kpi-budget-spent:not(#love-h-a),
html body #kpi-budget-paid-total:not(#love-h-a), html body #kpi-budget-due:not(#love-h-a),
html body #budget-donut-amount:not(#love-h-a), html body .convite-carrinho-total strong:not(#love-h-a),
html body [id^="wallet-balance"]:not(#love-h-a), html body [id^="kpi-wallet"]:not(#love-h-a) {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; letter-spacing: -0.025em; font-variant-numeric: tabular-nums;
}
/* Saldos grandes da Carteira: a mesma fonte dos títulos/cabeçalhos (Plus Jakarta Sans). */
html body [id^="wallet-balance"]:not(#love-h-a), html body [id^="kpi-wallet"]:not(#love-h-a) {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* ==========================================================================
   Tipografia igual à do Hub: Plus Jakarta Sans em tudo (textos, menus,
   botões, campos, tabelas, cards e valores); cabeçalhos das telas, saudação
   e títulos de seção em 700. Fica de fora o conteúdo
   que o anfitrião edita (canvas do editor, prévia ao vivo e página pública
   do convite/site/Save the Date), que usa as fontes escolhidas no editor,
   e os códigos, que continuam em mono.
   ========================================================================== */
html body:not(:has([id="public-preview-root"])) { font-family: 'Plus Jakarta Sans', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
html body:not(:has([id="public-preview-root"])) :is(button, input, select, textarea, p, span, a, label, h1, h2, h3, h4, h5, h6, li, td, th, div, strong, small, .font-sans):not(.builder-canvas):not(.builder-canvas *):not([id="live-preview-container"]):not([id="live-preview-container"] *):not(.convite-tela):not(.convite-tela *):not(.font-mono):not(.font-mono *):not(code):not(pre):not(kbd):not(.font-serif):not(.font-serif-title) {
  font-family: 'Plus Jakarta Sans', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

/* Cabeçalhos das páginas (título no topo de cada tela). */
html body #view-event-os-dashboard .floorplan-page-name:not(#love-h-a),
html body #view-event-os-dashboard .builder-toolbar h2:not(#love-h-a),
html body #view-event-os-dashboard #info-active-sub-title:not(#love-h-a),
html body #view-event-os-dashboard #tab-rsvp-tables h2:not(#love-h-a) {
  font-family: 'Plus Jakarta Sans', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

/* Títulos de seção dentro das páginas (Benefícios & Serviços, Mais Recursos,
   Perfil, títulos dos cards). */
html body #view-event-os-dashboard h3:not(.builder-canvas *):not([id="live-preview-container"] *):not(.convite-tela *):not(.font-serif):not(.font-serif-title):not(.uppercase):not(#love-h-a) {
  font-family: 'Plus Jakarta Sans', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

/* Saudação da Home ("Olá, …"). */
html body #view-event-os-dashboard #dash-hub-title:not(#love-h-a) {
  font-family: 'Plus Jakarta Sans', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

/* Fundo das telas logadas #F4F6F7 (cards, tabelas e caixas seguem brancos);
   topo (nome do evento, busca e ícones) branco; faixa do título de cada tela
   no mesmo cinza do cabeçalho das tabelas (#F7F7F8). Modo escuro não muda. */
:root { --bg-dashboard: #F4F6F7; }
html body:not([data-theme="dark"]) #view-event-os-dashboard:not(#love-h-a),
html body:not([data-theme="dark"]) #dashboard-main-area:not(#love-h-a),
html body:not([data-theme="dark"]) #dashboard-main-area > div:not(.builder-canvas):not(#love-h-a),
html body:not([data-theme="dark"]) #dashboard-main-area .dashboard-tab-content:not(#love-h-a) { background-color: var(--bg-dashboard) !important; }
html body:not([data-theme="dark"]) .dashboard-top-navbar:not(#love-h-a) { background: #FFFFFF !important; }
html body:not([data-theme="dark"]) #view-event-os-dashboard .builder-toolbar:not(#love-h-a) { background: #F7F7F8 !important; }
html body:not([data-theme="dark"]) #view-event-os-dashboard table.love-tabela thead th:not(#love-h-a) { background: #F7F7F8 !important; }
/* Rodapé das telas logadas no mesmo cinza das faixas (#F7F7F8). */
html body:not([data-theme="dark"]) #view-event-os-dashboard #dashboard-footer:not(#love-h-a) { background: #F7F7F8 !important; }
/* Faixa do título de cada tela no mesmo fundo da Home (#F4F6F7), sem a linha
   horizontal embaixo; o fundo atrás do template no Convite Digital também. */
html body:not([data-theme="dark"]) #view-event-os-dashboard .builder-toolbar:not(#love-h-a) { background: var(--bg-dashboard) !important; border-bottom: 0 !important; box-shadow: none !important; }
html body:not([data-theme="dark"]) .builder-canvas-viewport:not(#love-h-a) { background: var(--bg-dashboard) !important; }
/* Convite Digital (construtor): cabeçalho branco, separado do template por
   uma linha cinza, como antes. */
html body:not([data-theme="dark"]) #view-event-os-dashboard #site-builder-root > .builder-toolbar:not(#love-h-a) { background: #FFFFFF !important; border-bottom: 1px solid #E4E4E7 !important; }
/* Convite digital: cabeçalho no mesmo fundo geral (#F4F6F7), mantendo a linha cinza embaixo. */
html body:not([data-theme="dark"]) #view-event-os-dashboard #site-builder-root > .builder-toolbar:not(#love-h-a) { background: var(--bg-dashboard) !important; }
/* Rodapé das telas logadas no cinza do Hub (#EDEDEF). */
html body:not([data-theme="dark"]) #view-event-os-dashboard #dashboard-footer:not(#love-h-a) { background: #EDEDEF !important; }

/* Rodapé das telas logadas: tipografia igual à do rodapé do Hub. */
html body #dashboard-footer :is(p, span, a, div):not(#love-h-a) { font-family: 'Plus Jakarta Sans', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; letter-spacing: normal !important; font-weight: 400 !important; }
html body #dashboard-footer .footer-text-desc:not(#love-h-a) { font-size: 0.8125rem !important; line-height: 1.5 !important; color: #71717A !important; max-width: 380px; }
html body #dashboard-footer .space-y-3 > div > a:not(#love-h-a) { font-size: 0.8125rem !important; color: #18181B !important; text-decoration: none !important; }
html body #dashboard-footer .space-y-3 > div > a:not(#love-h-a):hover { text-decoration: underline !important; }
html body #dashboard-footer .space-y-3 > div:not(#love-h-a) { gap: 1rem; }
html body #dashboard-footer .footer-bottom-bar :is(p, span):not(#love-h-a) { font-size: 0.75rem !important; color: #71717A !important; }
html body[data-theme="dark"] #dashboard-footer .footer-text-desc:not(#love-h-a),
html body[data-theme="dark"] #dashboard-footer .footer-bottom-bar :is(p, span):not(#love-h-a) { color: #A1A1AA !important; }
html body[data-theme="dark"] #dashboard-footer .space-y-3 > div > a:not(#love-h-a) { color: #FFFFFF !important; }

/* Alinhamento do cabeçalho de cada tela com o conteúdo de baixo: o título
   começa onde começam os cards/tabela e o último botão termina onde eles
   terminam (mesma margem lateral do conteúdo: 24px / 32px). */
html body #view-event-os-dashboard .builder-toolbar:not(#love-h-a) { padding-left: 24px !important; padding-right: 24px !important; }
@media (min-width: 640px) {
  html body #view-event-os-dashboard .builder-toolbar:not(#love-h-a) { padding-left: 32px !important; padding-right: 32px !important; }
}
html body #view-event-os-dashboard .builder-toolbar h2.floorplan-page-name:not(#love-h-a) { padding-left: 0 !important; padding-right: 0 !important; border-left-width: 0 !important; border-right-width: 0 !important; }
/* Convite digital: não há conteúdo para alinhar; o Publicar termina na mesma
   linha do quadradinho do perfil no topo (margem do topo: 16px / 24px). */
html body #view-event-os-dashboard #site-builder-root > .builder-toolbar:not(#love-h-a) { padding-left: 16px !important; padding-right: 16px !important; }
@media (min-width: 640px) {
  html body #view-event-os-dashboard #site-builder-root > .builder-toolbar:not(#love-h-a) { padding-left: 24px !important; padding-right: 24px !important; }
}

/* Meus presentes › "Ativo": igual ao "Ativo" de Meus produtos no Hub —
   texto verde, sem fundo nem borda, com a bolinha verde de halo suave. */
html body .gift-status-badge.is-ativo:not(#love-h-a) { display: inline-flex !important; align-items: center; gap: 0.35rem; background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0.25rem 0 !important; font-size: 0.75rem !important; font-weight: 600 !important; color: #1E9E5E !important; white-space: nowrap; }
html body .gift-status-badge.is-ativo:not(#love-h-a)::before { content: ''; width: 6px; height: 6px; border-radius: 999px; flex-shrink: 0; background: #2FCB7E; box-shadow: 0 0 0 3px rgba(47, 203, 126, 0.16); }
body[data-theme="dark"] .gift-status-badge.is-ativo { color: #5FE0A0 !important; }
body[data-theme="dark"] .gift-status-badge.is-ativo::before { background: #5FE0A0 !important; }

/* Exceção: Privacidade (/privacidade) e Termos e condições (/termos) com
   fundo branco, inclusive a faixa do título. */
html body:not([data-theme="dark"]) #dashboard-main-area:has(#tab-legal-doc.active):not(#love-h-a),
html body:not([data-theme="dark"]) #dashboard-main-area:has(#tab-legal-doc.active) > div:not(.builder-canvas):not(#love-h-a),
html body:not([data-theme="dark"]) #view-event-os-dashboard:has(#tab-legal-doc.active):not(#love-h-a),
html body:not([data-theme="dark"]) #dashboard-main-area #tab-legal-doc:not(#love-h-a),
html body:not([data-theme="dark"]) #view-event-os-dashboard #tab-legal-doc .builder-toolbar:not(#love-h-a) { background-color: #FFFFFF !important; }

/* Aparência (Convite digital e Save the Date): cabeçalho com Salvar/Publicar
   branco, mantendo a linha cinza embaixo. */
html body:not([data-theme="dark"]) #view-event-os-dashboard #site-builder-root > .builder-toolbar:not(#love-h-a) { background: #FFFFFF !important; border-bottom: 1px solid #E4E4E7 !important; }
/* Rodapé das telas logadas branco. */
html body:not([data-theme="dark"]) #view-event-os-dashboard #dashboard-footer:not(#love-h-a) { background: #FFFFFF !important; }

/* Aparência › caixinha "Elementos" (Convite digital) e "Editar texto" (Save
   the Date): fundo azul-clarinho (#EBF4FF, o mesmo do ícone ativo do sidebar). */
html body:not([data-theme="dark"]) #builder-elements-panel .builder-panel-tabs:not(#love-h-a),
html body:not([data-theme="dark"]) #builder-elements-panel .builder-panel-tabs .builder-panel-tab.active:not(#love-h-a),
html body:not([data-theme="dark"]) #builder-elements-panel .builder-panel-tabs .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a) { background: #EBF4FF !important; }

/* Modal "Deseja salvar antes de sair?" (Aparência): Sair à esquerda, Salvar à direita. */
html body #modal-unsaved-changes .modal-sair-sem-salvar:not(#love-h-a) { padding: 24px; border-radius: 10px; border: 1px solid #E4E4E7; box-shadow: 0 8px 24px rgba(0,0,0,0.08); }
html body #modal-unsaved-changes .modal-sair-titulo:not(#love-h-a) { font-size: 1.125rem; font-weight: 700; color: #18181B; margin: 0 0 8px; }
html body #modal-unsaved-changes .modal-sair-texto:not(#love-h-a) { font-size: 0.875rem; line-height: 1.5; color: #71717A; margin: 0 0 20px; }
html body #modal-unsaved-changes .modal-sair-acoes:not(#love-h-a) { display: flex; gap: 12px; }
html body #modal-unsaved-changes .modal-sair-btn:not(#love-h-a) { flex: 1 1 0; height: 44px; border-radius: 8px; font-size: 0.875rem; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
body[data-theme="dark"] #modal-unsaved-changes .modal-sair-titulo { color: #FFFFFF !important; }
body[data-theme="dark"] #modal-unsaved-changes .modal-sair-sem-salvar { border-color: #404040 !important; }

/* Título do convite: sem altura mínima de 1.4 linha. Com ela, ao diminuir a
   "Altura" o texto subia e a sobra ficava toda embaixo; assim a altura da
   linha divide a sobra igual em cima e embaixo. */
.builder-canvas .be-heading { min-height: 1em; }

/* Aparência › caixinha "Elementos"/"Editar texto": mesma fonte e grossura do
   submenu ativo ("Aparência"). */
html body #builder-elements-panel .builder-panel-tabs .builder-panel-tab:not(#love-h-a) { font-weight: 700 !important; letter-spacing: -0.01em !important; }

/* Aparência › caixinhas de texto do painel: sem alça de redimensionar; a
   altura acompanha o texto (JS autoCrescer). Parágrafos do elemento Texto
   sem sobra embaixo do último. */
html body #builder-elements-panel textarea.builder-textarea-cresce:not(#love-h-a) { resize: none !important; overflow: hidden; }
.builder-canvas .be-text p:last-child { margin-bottom: 0; }
/* Parágrafos dentro do mesmo elemento Texto: espaço menor que o de um
   elemento para outro (antes 1em). */
.builder-canvas .be-text p { margin: 0 0 0.4em; }
.builder-canvas .be-text p:last-child { margin-bottom: 0; }
/* Data › "Aplicar linhas": as linhas de cima e de baixo vão quase até a borda
   da caixinha da data (antes 70%, no máximo 320px). */
.builder-canvas .be-date-display-rule,
.builder-canvas .be-date-display-time-row { width: 94%; max-width: none; }

/* Layout › "Vincular valores": título sem negrito; botão de vínculo sem fundo
   (ligado = corrente na cor primária; desligado = corrente cortada, cinza). */
html body .inspector-vincular:not(#love-h-a) > span { font-weight: 400 !important; }
html body .margin-sync-toggle:not(#love-h-a),
html body .margin-sync-toggle:not(#love-h-a):hover,
html body .margin-sync-toggle.active:not(#love-h-a),
html body .margin-sync-toggle.active:not(#love-h-a):hover { background: transparent !important; }
html body .margin-sync-toggle:not(#love-h-a) { color: #A1A1AA; }
html body .margin-sync-toggle:not(#love-h-a):hover { color: #181D24; }
html body .margin-sync-toggle.active:not(#love-h-a) { color: #183b54; }
html body .margin-sync-toggle:not(#love-h-a) svg { width: 15px; height: 15px; }
body[data-theme="dark"] .margin-sync-toggle.active { background: transparent !important; color: #9CC3E4 !important; }
body[data-theme="dark"] .margin-sync-toggle:hover { background: transparent !important; }

/* Aparência › caixinha de escrever do Título/Texto (aceita negrito/itálico/
   sombra num trecho): cresce com o texto, sem alça. */
html body #builder-elements-panel .inspector-rich:not(#love-h-a) {
  min-height: 64px; padding: 8px 10px; border: 1px solid #E4E4E7; border-radius: 8px; background: #FFFFFF;
  font-size: 0.8125rem; line-height: 1.5; color: #18181B; outline: none; overflow-wrap: break-word; word-break: break-word; cursor: text;
}
html body #builder-elements-panel .inspector-rich[data-tipo="titulo"]:not(#love-h-a) { min-height: 38px; }
html body #builder-elements-panel .inspector-rich:not(#love-h-a):focus { border-color: #181D24; }
html body #builder-elements-panel .inspector-rich:not(#love-h-a) p { margin: 0 0 0.4em; }
html body #builder-elements-panel .inspector-rich:not(#love-h-a) p:last-child { margin-bottom: 0; }
body[data-theme="dark"] #builder-elements-panel .inspector-rich { background: #1F1F1F !important; border-color: #404040 !important; color: #FFFFFF !important; }
/* Parágrafos (Enter) dentro do mesmo elemento Texto: seguem a altura de linha
   do próprio texto (não a regra geral de <p> em 1.6) e quase sem respiro. */
.builder-canvas .be-text p { line-height: inherit; margin: 0 0 0.15em; }
.builder-canvas .be-text p:last-child { margin-bottom: 0; }

/* Título/Texto: botões de estilo entre o rótulo e a caixinha de escrever. */
html body #builder-elements-panel .inspector-estilo-texto:not(#love-h-a) { margin-bottom: 6px; align-self: stretch; width: 100%; }

/* "Vincular valores" na mesma fonte dos rótulos do painel (Margem, Topo…). */
html body .inspector-vincular:not(#love-h-a) > span { font-size: 13px !important; color: #333333 !important; letter-spacing: normal !important; text-transform: none !important; }
body[data-theme="dark"] .inspector-vincular > span { color: #D4D4D8 !important; }
/* Contagem regressiva sem "Fundo da caixa": dias/horas/min/seg sem caixinha. */
.be-countdown-unit.be-countdown-unit-sem-caixa { background: transparent !important; border-color: transparent !important; }

/* Toggles (todos): ligados na cor da sidebar (#181D24), bolinha branca. */
html body:not([data-theme="dark"]) .settings-switch input:checked ~ .settings-switch-track:not(#love-h-a) { background: #181D24 !important; border-color: #181D24 !important; }
html body:not([data-theme="dark"]) .settings-switch input:checked ~ .settings-switch-track:not(#love-h-a)::before { background: #FFFFFF; }

/* Fim do convite: sem o aviso fixo "Arraste nova seção aqui". Fica só um
   espaço invisível; ao arrastar qualquer elemento ele aparece tracejado para
   soltar e criar uma seção nova abaixo dos botões. */
html body #builder-canvas .builder-canvas-end-dropzone:not(#love-h-a) { min-height: 48px; padding: 0.5rem 1rem; margin: 0.25rem 1.25rem 1rem; border-color: transparent; background: transparent; color: transparent; }
html body #builder-canvas .builder-canvas-end-dropzone:not(#love-h-a) > span { visibility: hidden; }
html body #builder-canvas.is-arrastando-elemento .builder-canvas-end-dropzone:not(#love-h-a) { min-height: 56px; border-color: var(--primary-blue, #537bae); background: #F8FAFC; color: #537bae; font-weight: 600; }
html body #builder-canvas.is-arrastando-elemento .builder-canvas-end-dropzone:not(#love-h-a) > span { visibility: visible; }

/* Botões › ícones Modernos: só o ícone (sem o círculo em volta), no tamanho
   dos Clássicos; a cor vem do JS (um tom mais escuro que o botão). */
html body .builder-quicknav-icon-modern:not(#love-h-a) { border: 0 !important; background: transparent !important; border-radius: 0 !important; width: 22px !important; height: 22px !important; }
html body .builder-quicknav-icon-modern:not(#love-h-a) svg { width: 18px !important; height: 18px !important; }

/* Título/Texto vazios: "Insira um título" / "Insira um texto", cinza e sem
   negrito (no canvas do editor e na caixinha do painel). */
.builder-canvas .be-heading[data-placeholder]:empty::before,
.builder-canvas .be-text[data-placeholder]:empty::before,
.builder-canvas .be-heading[data-placeholder]:has(> br:only-child)::before,
.builder-canvas .be-text[data-placeholder]:has(> br:only-child)::before,
#builder-elements-panel .inspector-rich[data-placeholder]:empty::before,
#builder-elements-panel .inspector-rich[data-placeholder]:has(> br:only-child)::before {
  content: attr(data-placeholder);
  font-weight: 400 !important;
  font-style: normal;
  text-shadow: none;
  color: #A1A1AA;
  pointer-events: none;
}
/* Fim do convite: sem arraste, a área de soltar não ocupa espaço (sem faixa em
   branco entre os botões e o rodapé). Ela só abre ao começar a arrastar. */
html body #builder-canvas:not(.is-arrastando-elemento) .builder-canvas-end-dropzone:not(#love-h-a) { min-height: 0; height: 0; padding: 0; margin: 0; border-width: 0; overflow: hidden; }

/* Save the Date › "Gerar com IA": degradê interno sutil (branco em cima →
   cinza-claro embaixo) com brilho fino no topo — igual aos atalhos do painel
   do Hub (Cobrar, Orçamento, Financeiro, Construtor). */
html body:not([data-theme="dark"]) button.std-gerar-ia:not(#love-h-a) {
  background: linear-gradient(180deg, #FFFFFF 0%, #F4F4F5 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 1px 2px rgba(0, 0, 0, 0.04);
}
html body:not([data-theme="dark"]) button.std-gerar-ia:not(#love-h-a):hover {
  background: linear-gradient(180deg, #FFFFFF 0%, #EDEDEF 100%) !important;
}
body[data-theme="dark"] button.std-gerar-ia { background: linear-gradient(180deg, #2E2E2E 0%, #232323 100%) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06) !important; }
/* Organizadores: sem o divisor do "Ver página publicada" (os botões já somem). */
body.organizadores-sem-previa #classic-editor-toolbar .builder-toolbar-divider { display: none !important; }

/* Prévia da esquerda (Informações/Anfitriões): o rodapé encosta no fim da
   coluna — o conteúdo acima estica para ocupar a sobra. */
html body #classic-builder-preview:not(.hidden):not(#love-h-a) { display: flex !important; flex-direction: column; }
html body #classic-builder-preview:not(#love-h-a) > * { flex-shrink: 0; }
html body #classic-builder-preview:not(#love-h-a) > :nth-last-child(2) { flex-grow: 1; }
html body #classic-builder-preview:not(#love-h-a) > .builder-fixed-footer { margin-top: auto; }

/* Save the Date › "Gerar com IA": minimalista — pílula com contorno escuro,
   sem fundo colorido, texto e brilhos escuros. */
html body #site-builder-root button.std-gerar-ia:not(#love-h-a) {
  background: #FFFFFF !important;
  border: 1.5px solid #18181B !important;
  border-radius: 999px !important;
  color: #18181B !important;
  box-shadow: none !important;
  padding: 0 18px !important;
  gap: 8px;
}
html body #site-builder-root button.std-gerar-ia:not(#love-h-a):hover { background: #FFFFFF !important; color: #000000 !important; border-color: #000000 !important; }
html body #site-builder-root button.std-gerar-ia:not(#love-h-a) svg { color: currentColor !important; width: 17px; height: 17px; }
body[data-theme="dark"] #site-builder-root button.std-gerar-ia { background: transparent !important; border-color: #FFFFFF !important; color: #FFFFFF !important; box-shadow: none !important; }

/* Convite: título (h1–h6) sem tamanho definido fica no tamanho do texto, igual
   no editor e no convite publicado (que não carrega o reset do Tailwind). */
.builder-canvas :is(h1, h2, h3, h4, h5, h6).be-heading { font-size: inherit; }
/* Título/Texto deixados vazios no convite publicado. */
.builder-canvas .be-vazio-publico { color: #A1A1AA; font-weight: 400; font-style: normal; text-shadow: none; }

/* "Como chegar" › Google Maps e Waze com o ícone de cada app à esquerda. */
.convite-como-chegar-menu a { display: flex; align-items: center; justify-content: flex-start; gap: 10px; text-align: left; }
.convite-como-chegar-menu a img { width: 20px; height: 20px; flex-shrink: 0; object-fit: contain; }

/* Configurações › Login (conta conectada com o Google). */
#settings-login-card .conta-login-linha { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
#settings-login-card .conta-login-icone { width: 20px; height: 20px; flex-shrink: 0; }
#settings-login-card .conta-login-info { flex: 1; min-width: 0; }
#settings-login-card .conta-login-nome { font-size: 0.875rem; font-weight: 600; color: #18181B; margin: 0; }
#settings-login-card .conta-login-email { font-size: 0.75rem; color: #71717A; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#settings-login-card .conta-login-data { font-size: 0.75rem; color: #71717A; margin: 0; white-space: nowrap; }
body[data-theme="dark"] #settings-login-card .conta-login-nome { color: #FFFFFF; }

/* Configurações › pop-up da autenticação de dois fatores (Google Authenticator). */
#settings-mfa-setup.mfa-popup:not(.hidden) { position: fixed; inset: 0; z-index: 70; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(15, 23, 42, 0.5); }
#settings-mfa-setup .mfa-popup-caixa { width: 100%; max-width: 380px; background: #FFFFFF; border-radius: 10px; padding: 24px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
#settings-mfa-setup .mfa-popup-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#settings-mfa-setup .mfa-popup-fechar { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 0; background: transparent; color: #71717A; cursor: pointer; border-radius: 8px; }
#settings-mfa-setup .mfa-popup-fechar:hover { color: #181D24; }
#settings-mfa-setup .mfa-popup-fechar svg { width: 18px; height: 18px; }
body[data-theme="dark"] #settings-mfa-setup .mfa-popup-caixa { background: #1F1F1F; }

/* Central de ajuda: no desktop as categorias ficam no submenu lateral (como os
   outros menus); a lista de categorias dentro da página só aparece no celular. */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  #tab-faq .faq-categorias { display: none !important; }
  #tab-faq .faq-layout { grid-template-columns: minmax(0, 1fr); }
}

/* Submenu da sidebar: hover dos itens em cinza clarinho (#F4F4F5); o item
   ativo continua azul-clarinho. */
html body:not([data-theme="dark"]) #sidebar-sub-drawer .sub-drawer-item:not(.active):not(#love-h-a):hover { background-color: #F4F4F5 !important; color: #18181B !important; }
/* Submenu da sidebar: itens (ativo e hover) com o lado esquerdo reto e só o
   lado direito arredondado. */
html body #sidebar-sub-drawer .sub-drawer-item:not(#love-h-a) { border-radius: 0 8px 8px 0 !important; }

/* Submenu da sidebar: item ativo no mesmo cinza clarinho do hover (#F4F4F5). */
html body:not([data-theme="dark"]) #sidebar-sub-drawer .sub-drawer-item.active:not(#love-h-a),
html body:not([data-theme="dark"]) #sidebar-sub-drawer .sub-drawer-item.active:not(#love-h-a):hover { background-color: #F4F4F5 !important; }
/* Aparência: caixinha "Elementos"/"Editar texto" no mesmo cinza clarinho. */
html body:not([data-theme="dark"]) #builder-elements-panel .builder-panel-tabs:not(#love-h-a),
html body:not([data-theme="dark"]) #builder-elements-panel .builder-panel-tabs .builder-panel-tab.active:not(#love-h-a),
html body:not([data-theme="dark"]) #builder-elements-panel .builder-panel-tabs .builder-panel-tab.builder-panel-tab-rotulo:not(#love-h-a) { background: #F4F4F5 !important; }
/* Aparência: fundo do seletor Mobile / Tablet / Desktop em cinza clarinho. */
html body:not([data-theme="dark"]) #builder-device-toggle:not(#love-h-a) { background-color: #F4F4F5 !important; }
/* Aparência (Convite digital e Save the Date): fundo atrás do celular/tablet/
   desktop em cinza clarinho (#F4F4F5), sem o tom azulado. */
html body:not([data-theme="dark"]) #view-event-os-dashboard .builder-canvas-viewport:not(#love-h-a) { background: #F4F4F5 !important; }

/* Save the Date › "Editar texto": só o texto, à esquerda, logo acima da barra
   de formatação (Negrito, Itálico…). */
html body #builder-elements-panel .std-editar-texto-rotulo:not(#love-h-a) { padding: 0 0 8px; justify-content: flex-start; text-align: left; }

/* Linha fina embaixo do cabeçalho de todas as telas (faixa com o título da
   página e o botão da direita), de ponta a ponta — igual ao Hub. */
html body:not([data-theme="dark"]) #view-event-os-dashboard .builder-toolbar:not(#love-h-a) { border-bottom: 1px solid #E4E4E7 !important; }
body[data-theme="dark"] #view-event-os-dashboard .builder-toolbar { border-bottom: 1px solid #404040 !important; }
/* Tela com subtítulo colado embaixo do título (ex.: Checklist): a linha sai da
   faixa e vai para baixo do subtítulo, também de ponta a ponta. */
html body #view-event-os-dashboard .builder-toolbar:has(+ div > p:first-child:not(.hidden)):not(#love-h-a) { border-bottom: none !important; }
html body #view-event-os-dashboard .builder-toolbar + div > p:first-child:not(.hidden):not(#love-h-a) {
  margin-left: -24px; margin-right: -24px;
  padding: 0 24px 14px;
  border-bottom: 1px solid #E4E4E7;
}
@media (min-width: 640px) {
  html body #view-event-os-dashboard .builder-toolbar + div > p:first-child:not(.hidden):not(#love-h-a) { margin-left: -32px; margin-right: -32px; padding-left: 32px; padding-right: 32px; }
}
html body #view-event-os-dashboard .builder-toolbar + div > p:first-child:not(.hidden):not(#love-h-a) ~ :not(.hidden) { margin-top: 20px !important; }
body[data-theme="dark"] #view-event-os-dashboard .builder-toolbar + div > p:first-child:not(.hidden) { border-bottom-color: #404040 !important; }

/* Configurações: no desktop, "Minha conta" e "Meus eventos" ficam no submenu
   lateral (como os outros menus); as abas no topo da página só no celular. */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  #tab-account-settings > div:has(> #config-abas) { display: none !important; }
}

/* Presentes › Configurações: opções da taxa no modelo de caixinhas com rádio
   (branca, borda cinza; selecionada com borda escura e bolinha cheia). */
#gifts-panel-settings .gift-saiba-mais { color: #183b54; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; margin-left: 4px; }
#gifts-panel-settings .gift-saiba-mais:hover { color: #181D24; }
#gifts-panel-settings .gift-fee-card { display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; background: #FFFFFF; border: 1px solid #D4D4D8; border-radius: 10px; cursor: pointer; outline: none; }
#gifts-panel-settings .gift-fee-card:hover { border-color: #A1A1AA; }
#gifts-panel-settings .gift-fee-card.active,
#gifts-panel-settings .gift-fee-card:focus-visible { border-color: #181D24; }
#gifts-panel-settings .fee-radio-indicator { width: 20px; height: 20px; flex-shrink: 0; margin-top: 1px; border-radius: 999px; border: 2px solid #A1A1AA; background: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; }
#gifts-panel-settings .gift-fee-card.active .fee-radio-indicator { border-color: #181D24; }
#gifts-panel-settings .gift-fee-card.active .fee-radio-indicator::after { content: ''; width: 10px; height: 10px; border-radius: 999px; background: #181D24; }
#gifts-panel-settings .gift-fee-titulo { margin: 0; font-size: 0.9375rem; font-weight: 600; color: #18181B; }
#gifts-panel-settings .gift-fee-exemplo { margin: 2px 0 0; font-size: 0.8125rem; color: #71717A; }
/* Notificações e Recados: caixinhas brancas (não transparentes). */
#gifts-panel-settings .gift-pref-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; cursor: pointer; }
#gifts-panel-settings .gift-pref-item:hover { border-color: #A1A1AA; }
#gifts-panel-settings .gift-pref-item input[type="checkbox"] { accent-color: #181D24; flex-shrink: 0; }
body[data-theme="dark"] #gifts-panel-settings .gift-fee-card,
body[data-theme="dark"] #gifts-panel-settings .gift-pref-item { background: #252525; border-color: #404040; }
body[data-theme="dark"] #gifts-panel-settings .gift-fee-titulo { color: #FFFFFF; }
/* "Salvar configurações" (Presentes) igual ao "Salvar alterações" de Informações. */
html body #btn-save-gift-settings:not(#love-h-a) { height: 38px !important; min-height: 38px; padding: 0 14px !important; font-size: 14px !important; font-weight: 600 !important; border-radius: 8px !important; display: inline-flex; align-items: center; justify-content: center; }

/* Presentes: 24px entre o cabeçalho e o conteúdo (padrão das outras telas).
   Em Configurações da lista, o bloco vazio de "Meus presentes" some; em
   Meus presentes, sem o respiro extra acima dos cards. */
#tab-gifts:has(#gifts-panel-settings:not(.hidden)) > div:has(> #gifts-panel-products) { display: none !important; }
html body #gifts-panel-settings:not(#love-h-a) { padding-top: 24px !important; }
html body #gifts-panel-products:not(#love-h-a) { padding-top: 0 !important; }
/* Carteira: os painéis (Carteira digital, Extrato…) se alternam — o visível não
   herda a margem do "space-y" do painel escondido antes dele (24px, padrão). */
html body #tab-wallet .wallet-sub-panel:not(#love-h-a) { margin-top: 0 !important; }
/* Mapear mesas: sem a caixinha "Lista de convidados"; fica só o título
   "Convidados", no mesmo estilo de "Elementos" na Aparência. */
html body #floorplan-guests-panel .builder-el-group-title:not(#love-h-a) { text-transform: none; letter-spacing: normal; font-size: 13px; font-weight: 600; color: #71717A; }

/* ==========================================================================
   Fornecedores › Pedidos de orçamento (RFP) — js/pedidos-orcamento.js
   ========================================================================== */
#b2b-pedidos-view .rfp-contagem { font-size: 13px; color: #71717A; }
#b2b-pedidos-view .rfp-lista-aviso { margin: 0; padding: 10px 14px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-size: 13px; color: #18181B; }
#b2b-pedidos-view .rfp-col-titulo { font-weight: 600; color: #18181B; }
#b2b-pedidos-view .rfp-col-sub { display: block; font-size: 12px; color: #71717A; margin-top: 2px; }
#b2b-pedidos-view .rfp-col-num { font-variant-numeric: tabular-nums; }
#b2b-pedidos-view .rfp-situacao { display: inline-block; padding: 2px 8px; border-radius: 6px; font-size: 12px; font-weight: 600; }
#b2b-pedidos-view .rfp-situacao-aberto { background: #ECFDF3; color: #1E9E5E; }
#b2b-pedidos-view .rfp-situacao-fechado { background: #F4F4F5; color: #52525B; }
#b2b-pedidos-view .rfp-situacao-cancelado { background: #FEF2F2; color: #B91C1C; }
#b2b-pedidos-view .rfp-vazio { padding: 40px 16px !important; text-align: center; color: #71717A; }
#b2b-pedidos-view .rfp-vazio p { margin: 0 0 6px; font-size: 14px; }
#b2b-pedidos-view .rfp-vazio b { color: #18181B; }
#b2b-pedidos-view .rfp-vazio .rfp-btn { margin-top: 12px; }
.rfp-menu-wrap { position: relative; display: inline-block; }
.rfp-menu-btn { width: 32px; height: 32px; border: 0; background: transparent; border-radius: 8px; color: #71717A; font-size: 18px; cursor: pointer; }
.rfp-menu-btn:hover { color: #181D24; background: #F4F4F5; }
.rfp-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: 20; min-width: 170px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); padding: 4px; }
.rfp-menu button { display: block; width: 100%; text-align: left; padding: 8px 10px; border: 0; background: transparent; border-radius: 8px; font-size: 13px; color: #18181B; cursor: pointer; }
.rfp-menu button:hover { background: #F4F4F5; }
.rfp-menu button[data-rfp-acao="excluir"] { color: #B91C1C; }
#btn-rfp-novo svg { width: 16px; height: 16px; }

/* Pop-up do pedido */
.rfp-modal:not(.hidden) { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(15, 23, 42, 0.5); }
.rfp-caixa { width: 100%; max-width: 680px; max-height: calc(100vh - 32px); display: flex; flex-direction: column; background: #FFFFFF; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); overflow: hidden; font-family: "Plus Jakarta Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.rfp-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px 24px 12px; }
.rfp-topo h3 { margin: 0; font-size: 18px; font-weight: 700; color: #18181B; letter-spacing: -0.02em; }
.rfp-subtitulo { margin: 2px 0 0; font-size: 13px; color: #71717A; }
.rfp-fechar { width: 32px; height: 32px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border: 0; background: transparent; color: #71717A; border-radius: 8px; cursor: pointer; }
.rfp-fechar:hover { color: #181D24; }
.rfp-fechar svg { width: 18px; height: 18px; }
.rfp-stepper { padding: 0 24px 14px; border-bottom: 1px solid #E4E4E7; }
.rfp-progresso { height: 4px; background: #F4F4F5; border-radius: 999px; overflow: hidden; }
.rfp-progresso span { display: block; height: 100%; background: #181D24; border-radius: 999px; transition: width .35s ease; }
.rfp-etapas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 10px; }
.rfp-etapa { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #A1A1AA; min-width: 0; }
.rfp-etapa b { width: 20px; height: 20px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid #D4D4D8; font-size: 11px; font-weight: 600; color: #71717A; background: #FFFFFF; }
.rfp-etapa em { font-style: normal; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rfp-etapa.atual { color: #18181B; font-weight: 600; }
.rfp-etapa.atual b { background: #181D24; border-color: #181D24; color: #FFFFFF; }
.rfp-etapa.feita b { background: #F4F4F5; border-color: #181D24; color: #181D24; }
.rfp-progresso-texto { margin: 8px 0 0; font-size: 12px; color: #71717A; }
.rfp-corpo { flex: 1; overflow-y: auto; padding: 4px 24px 20px; }
.rfp-tela { animation: rfp-aparece .25s ease; }
.rfp-tela.entra-direita { animation: rfp-da-direita .3s ease; }
.rfp-tela.entra-esquerda { animation: rfp-da-esquerda .3s ease; }
.rfp-tela.sem-animacao { animation: none; }
@keyframes rfp-aparece { from { opacity: .4; } to { opacity: 1; } }
@keyframes rfp-da-direita { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
@keyframes rfp-da-esquerda { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rfp-tela, .rfp-progresso span { animation: none !important; transition: none !important; } }
.rfp-pergunta { margin: 18px 0 10px; font-size: 14px; font-weight: 600; color: #18181B; }
.rfp-opcional { font-weight: 400; color: #A1A1AA; }
.rfp-categorias { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.rfp-categoria { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; text-align: left; font-size: 13px; font-weight: 600; color: #18181B; cursor: pointer; min-height: 92px; }
.rfp-categoria svg { width: 22px; height: 22px; color: #52525B; }
.rfp-categoria:hover { border-color: #A1A1AA; }
.rfp-categoria.ativa { border-color: #181D24; box-shadow: inset 0 0 0 1px #181D24; }
.rfp-categoria.ativa svg { color: #181D24; }
.rfp-tags, .rfp-pilulas { display: flex; flex-wrap: wrap; gap: 8px; }
.rfp-tag, .rfp-pilula { padding: 7px 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-size: 13px; color: #3F3F46; cursor: pointer; }
.rfp-tag:hover, .rfp-pilula:hover { border-color: #A1A1AA; color: #181D24; }
.rfp-tag.ativa, .rfp-pilula.ativa { background: #F4F4F5; border-color: #181D24; color: #181D24; font-weight: 600; }
.rfp-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.rfp-campo { height: 40px; padding: 0 12px; border: 1px solid #E4E4E7; border-radius: 8px; background: #FFFFFF; font-size: 14px; color: #18181B; outline: none; width: 100%; font-family: inherit; }
.rfp-linha .rfp-campo { width: auto; min-width: 180px; }
.rfp-campo:focus { border-color: #181D24; }
.rfp-campo:disabled { background: #F4F4F5; color: #A1A1AA; }
.rfp-descricao { height: auto; padding: 10px 12px; line-height: 1.5; resize: vertical; min-height: 120px; }
.rfp-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #3F3F46; cursor: pointer; }
.rfp-check input { accent-color: #181D24; width: 16px; height: 16px; }
.rfp-grade-local { display: grid; grid-template-columns: 1fr 2fr; gap: 12px; }
.rfp-rotulo { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 500; color: #3F3F46; }
.rfp-campo-uf { text-transform: uppercase; }
.rfp-horas { margin-top: 12px; max-width: 200px; }
.rfp-dica { margin: 6px 0 0; font-size: 12px; color: #71717A; }
.rfp-erro { margin: 6px 0 0; font-size: 12px; color: #B91C1C; }
.rfp-faixas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.rfp-faixa { display: flex; flex-direction: column; gap: 2px; padding: 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; text-align: left; cursor: pointer; }
.rfp-faixa b { font-size: 14px; color: #18181B; }
.rfp-faixa span { font-size: 12px; color: #71717A; }
.rfp-faixa:hover { border-color: #A1A1AA; }
.rfp-faixa.ativa { border-color: #181D24; box-shadow: inset 0 0 0 1px #181D24; }
.rfp-toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 12px 14px; border: 1px solid #E4E4E7; border-radius: 10px; font-size: 13px; color: #18181B; cursor: pointer; }
.rfp-contador { margin: 6px 0 0; font-size: 12px; color: #71717A; text-align: right; font-variant-numeric: tabular-nums; }
.rfp-contador.falta { color: #B45309; }
.rfp-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 10px; }
.rfp-foto { position: relative; aspect-ratio: 1; border-radius: 8px; overflow: hidden; border: 1px solid #E4E4E7; }
.rfp-foto img { width: 100%; height: 100%; object-fit: cover; }
.rfp-foto button { position: absolute; top: 4px; right: 4px; width: 24px; height: 24px; border: 0; border-radius: 999px; background: rgba(0, 0, 0, 0.6); color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.rfp-foto button svg { width: 12px; height: 12px; }
.rfp-dropzone { aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 8px; border: 1px dashed #D4D4D8; border-radius: 8px; color: #71717A; font-size: 11px; text-align: center; cursor: pointer; }
.rfp-dropzone svg { width: 20px; height: 20px; }
.rfp-dropzone:hover, .rfp-dropzone.arrastando { border-color: #181D24; color: #181D24; }
.rfp-aviso { display: flex; gap: 10px; align-items: flex-start; margin-top: 18px; padding: 12px 14px; background: #F4F4F5; border-radius: 10px; font-size: 13px; color: #3F3F46; line-height: 1.5; }
.rfp-aviso svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; color: #181D24; }
.rfp-aviso p { margin: 0; }
.rfp-feed-card { padding: 16px; border: 1px solid #E4E4E7; border-radius: 10px; background: #FFFFFF; }
.rfp-feed-topo { display: flex; justify-content: space-between; gap: 8px; }
.rfp-feed-categoria { font-size: 12px; font-weight: 600; color: #52525B; }
.rfp-feed-novo { padding: 1px 8px; border-radius: 6px; background: #ECFDF3; color: #1E9E5E; font-size: 11px; font-weight: 600; }
.rfp-feed-card h5 { margin: 6px 0 8px; font-size: 16px; font-weight: 700; color: #18181B; }
.rfp-feed-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; padding: 0; list-style: none; font-size: 13px; color: #52525B; }
.rfp-feed-faixa { margin: 8px 0 0; font-size: 13px; font-weight: 600; color: #18181B; }
.rfp-feed-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.rfp-feed-tags span { padding: 2px 8px; border-radius: 6px; background: #F4F4F5; font-size: 12px; color: #3F3F46; }
.rfp-feed-desc { margin: 10px 0 0; font-size: 13px; line-height: 1.5; color: #3F3F46; white-space: pre-line; }
.rfp-feed-rodape { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid #F4F4F5; font-size: 12px; color: #71717A; }
.rfp-rodape { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 24px; border-top: 1px solid #E4E4E7; background: #FFFFFF; }
.rfp-erro-geral { flex: 1; margin: 0; font-size: 12px; color: #B91C1C; text-align: center; }
.rfp-btn { height: 40px; padding: 0 16px; border-radius: 8px; font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.rfp-btn svg { width: 16px; height: 16px; }
@media (max-width: 640px) {
  .rfp-modal:not(.hidden) { padding: 0; align-items: stretch; }
  .rfp-caixa { max-width: none; max-height: none; height: 100%; border-radius: 0; }
  .rfp-topo, .rfp-stepper, .rfp-corpo { padding-left: 16px; padding-right: 16px; }
  .rfp-etapa em { display: none; }
  .rfp-etapas { grid-template-columns: repeat(4, auto); justify-content: space-between; }
  .rfp-categorias, .rfp-faixas { grid-template-columns: repeat(2, 1fr); }
  .rfp-grade-local { grid-template-columns: 1fr; }
  .rfp-rodape { position: sticky; bottom: 0; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .rfp-rodape .rfp-btn { flex: 1; }
  .rfp-erro-geral { position: absolute; left: 16px; right: 16px; bottom: calc(100% + 4px); background: #FFFFFF; }
}
body[data-theme="dark"] .rfp-caixa, body[data-theme="dark"] .rfp-rodape { background: #1F1F1F; }
body[data-theme="dark"] .rfp-topo h3, body[data-theme="dark"] .rfp-pergunta, body[data-theme="dark"] .rfp-feed-card h5 { color: #FFFFFF; }

/* Pedido de orçamento › categorias com foto (o nome fica pequeno embaixo;
   sem foto, aparece o ícone no lugar). */
.rfp-categoria { padding: 0 !important; gap: 0 !important; overflow: hidden; min-height: 0 !important; }
.rfp-categoria-foto { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 4 / 3; background: #F4F4F5; }
.rfp-categoria-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rfp-categoria-foto svg { width: 26px !important; height: 26px !important; color: #71717A; }
.rfp-categoria-foto:not(.sem-foto) svg { visibility: hidden; }
.rfp-categoria-nome { display: block; width: 100%; padding: 8px 10px; font-size: 12px; font-weight: 600; color: #18181B; line-height: 1.3; }
.rfp-categoria.ativa .rfp-categoria-nome { color: #181D24; }

/* Mapear mesas › "Adicionar Mesa": menu com os formatos (caixinhas com ícone). */
.floorplan-add-mesa { position: relative; display: inline-block; }
.floorplan-formatos:not(.hidden) { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; display: grid; grid-template-columns: repeat(4, 76px); gap: 6px; padding: 8px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.floorplan-formatos button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; height: 72px; padding: 6px 4px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-size: 12px; font-weight: 500; color: #3F3F46; cursor: pointer; }
.floorplan-formatos button svg { width: 26px; height: 26px; color: #52525B; }
.floorplan-formatos button:hover { border-color: #181D24; color: #181D24; }
.floorplan-formatos button:hover svg { color: #181D24; }
body[data-theme="dark"] .floorplan-formatos, body[data-theme="dark"] .floorplan-formatos button { background: #252525; border-color: #404040; color: #E4E4E7; }

/* Formatos da mesa na planta (o quadro continua 220x220; muda só o centro). */
.floorplan-el.is-mesa.formato-retangular .floorplan-mesa-core { width: 150px; height: 64px; border-radius: 8px; }
.floorplan-el.is-mesa.formato-quadrada .floorplan-mesa-core { width: 96px; height: 96px; border-radius: 8px; }
.floorplan-el.is-mesa.formato-bistro .floorplan-mesa-core { width: 60px; height: 60px; }
.floorplan-el.is-mesa.formato-bistro .floorplan-table-core-name { max-width: 52px; }

/* Meus convidados: abas de status grudadas no topo da caixa da tabela (acima
   da barra de filtro/exportar), com a linha fina embaixo. */
html body #tab-rsvp .rsvp-caixa-com-abas:not(#love-h-a) { display: flex; flex-direction: column; overflow: hidden; }
html body #tab-rsvp .rsvp-caixa-com-abas > #rsvp-status-tabs:not(#love-h-a) { order: -1; margin: 0 !important; padding: 0 16px !important; border-bottom: 1px solid #E4E4E7 !important; }
html body #tab-rsvp .rsvp-caixa-com-abas > #rsvp-status-tabs .love-tab-item:not(#love-h-a) { padding-top: 12px; padding-bottom: 10px; }
body[data-theme="dark"] #tab-rsvp .rsvp-caixa-com-abas > #rsvp-status-tabs { border-bottom-color: #404040 !important; }

/* Mesa retangular: vertical (girada) e botão de girar no hover. */
.floorplan-el.is-mesa.formato-retangular.is-vertical .floorplan-mesa-core { width: 64px; height: 150px; }
.floorplan-girar { position: absolute; top: 6px; right: 6px; z-index: 5; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #52525B; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .15s ease; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.floorplan-girar svg { width: 15px; height: 15px; }
.floorplan-el.is-mesa:hover .floorplan-girar, .floorplan-girar:focus-visible { opacity: 1; pointer-events: auto; }
.floorplan-girar:hover { color: #181D24; border-color: #181D24; }
body[data-theme="dark"] .floorplan-girar { background: #252525; border-color: #404040; color: #E4E4E7; }

/* Meus convidados: abas fora da caixa da tabela, coladas nela (sem espaço). */
html body #tab-rsvp #rsvp-status-tabs:not(#love-h-a) { margin-bottom: 0 !important; }
html body #tab-rsvp #rsvp-status-tabs + .rsvp-caixa-abaixo-das-abas:not(#love-h-a) { margin-top: 0 !important; }
/* A linha das abas faz o papel da borda de cima da caixa (uma linha só). */
html body #tab-rsvp #rsvp-status-tabs + .rsvp-caixa-abaixo-das-abas:not(#love-h-a) { border-top: 0 !important; border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; }
html body #tab-rsvp #rsvp-status-tabs:not(#love-h-a) { border-bottom: 1px solid #E4E4E7 !important; }

/* Mapear mesas: textura de pontinhos no fundo da planta ("textura circulos.svg":
   círculos de 1,5px #E5E7EB a 50%, a cada 20px) — em CSS para repetir sem
   emenda em qualquer tamanho de planta. */
html body #floorplan-canvas:not(#love-h-a) {
  background-image: radial-gradient(circle at 1.5px 1.5px, rgba(229, 231, 235, 0.5) 1.5px, transparent 1.6px);
  background-size: 20px 20px;
  background-position: 12px 12px;
}
body[data-theme="dark"] #floorplan-canvas { background-image: radial-gradient(circle at 1.5px 1.5px, rgba(255, 255, 255, 0.08) 1.5px, transparent 1.6px) !important; background-size: 20px 20px !important; }

/* Girar (mesa retangular): só o ícone, sem caixinha, dentro da mesa ao lado
   do "Mesa N" — à esquerda na horizontal, em cima na vertical. Aparece no hover. */
.floorplan-core-linha { display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: 4px; }
.floorplan-el.is-mesa.is-vertical .floorplan-core-linha { flex-direction: column; gap: 2px; }
html body .floorplan-mesa-core .floorplan-girar:not(#love-h-a) { position: static; width: 16px; height: 16px; padding: 0; border: 0; background: transparent; box-shadow: none; border-radius: 4px; color: #71717A; }
html body .floorplan-mesa-core .floorplan-girar:not(#love-h-a) svg { width: 13px; height: 13px; }
html body .floorplan-mesa-core .floorplan-girar:not(#love-h-a):hover { color: #181D24; border: 0; }
body[data-theme="dark"] .floorplan-mesa-core .floorplan-girar { background: transparent !important; border: 0 !important; color: #A1A1AA !important; }

/* Aparência (Convite digital e Save the Date): fundo atrás do celular/tablet/
   desktop igual ao de Mapear mesas — cor #FAFCFF + textura de pontinhos. */
html body:not([data-theme="dark"]) #view-event-os-dashboard .builder-canvas-viewport:not(#love-h-a) {
  background-color: #FAFCFF !important;
  background-image: radial-gradient(circle at 1.5px 1.5px, rgba(229, 231, 235, 0.5) 1.5px, transparent 1.6px) !important;
  background-size: 20px 20px !important;
  background-position: 12px 12px !important;
}

/* Mapear mesas › título "Convidados" com "+ Adicionar" à direita. */
.floorplan-convidados-topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.floorplan-add-convidado { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; border: 0; background: transparent; border-radius: 8px; font-size: 13px; font-weight: 600; color: #183b54; cursor: pointer; }
.floorplan-add-convidado svg { width: 14px; height: 14px; }
.floorplan-add-convidado:hover { color: #181D24; background: #F4F4F5; }
body[data-theme="dark"] .floorplan-add-convidado { color: #9CC3E4; }

/* Meus convidados: o nome abre o convidado; alça de arrastar para mudar a ordem. */
#rsvp-guests-table-body .guest-nome-btn { padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; font: inherit; font-weight: 600; max-width: 100%; }
#rsvp-guests-table-body .guest-nome-btn:hover { text-decoration: underline; text-underline-offset: 2px; }
#rsvp-guests-table-body .guest-reordenar { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; border-radius: 8px; color: #A1A1AA; cursor: grab; }
#rsvp-guests-table-body .guest-reordenar:hover { color: #181D24; background: #F4F4F5; }
#rsvp-guests-table-body .guest-reordenar:active { cursor: grabbing; }
#rsvp-guests-table-body .guest-reordenar svg { width: 18px; height: 18px; }
#rsvp-guests-table-body tr.is-arrastando td { opacity: .45; }
#rsvp-guests-table-body tr.drop-antes td { box-shadow: inset 0 2px 0 #181D24; }
#rsvp-guests-table-body tr.drop-depois td { box-shadow: inset 0 -2px 0 #181D24; }
/* Mapear mesas: convidado já sentado numa mesa com a cor do cabeçalho da planta (#FAFAFA). */
html body:not([data-theme="dark"]) .floorplan-guest-card.is-seated:not(.is-declined):not(#love-h-a) { background: #FAFAFA; }
/* Mapear mesas: "+ Adicionar" com a mesma fonte, tamanho e cor do título
   "Convidados"; "Mesa N" do convidado sentado um pouco maior. */
html body .floorplan-add-convidado:not(#love-h-a) { font-size: 13px; font-weight: 600; color: #71717A; padding: 0.5rem 0.4rem 0.4rem; }
html body .floorplan-add-convidado:not(#love-h-a):hover { color: #181D24; background: transparent; }
html body .floorplan-guest-card-table:not(#love-h-a) { font-size: 0.75rem; }

/* Girar (mesa retangular): fora da mesa, no canto de cima à direita, só o
   ícone (seta curva). Aparece ao passar o mouse na mesa. */
html body .floorplan-el.is-mesa > .floorplan-girar:not(#love-h-a) { position: absolute; top: 56px; left: 188px; right: auto; width: 22px; height: 22px; padding: 0; border: 0; background: transparent; box-shadow: none; border-radius: 6px; color: #52525B; }
html body .floorplan-el.is-mesa.is-vertical > .floorplan-girar:not(#love-h-a) { top: 14px; left: 146px; }
html body .floorplan-el.is-mesa > .floorplan-girar:not(#love-h-a) svg { width: 18px; height: 18px; }
html body .floorplan-el.is-mesa > .floorplan-girar:not(#love-h-a):hover { color: #181D24; border: 0; }
body[data-theme="dark"] .floorplan-el.is-mesa > .floorplan-girar { background: transparent !important; border: 0 !important; color: #A1A1AA !important; }

/* Mapear mesas: assentos redondos. Vazio = branco com "+"; ocupado = as duas
   iniciais (confirmado: cheio escuro; pendente: contorno escuro; recusou: rosado). */
html body .floorplan-seat-dot:not(#love-h-a) { width: 30px; height: 30px; min-width: 30px; max-width: 30px; min-height: 30px; padding: 0; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: 0; line-height: 1; }
html body .floorplan-seat-dot.is-empty:not(#love-h-a) { background: #FFFFFF; border: 1.5px solid #D4D4D8; color: #A1A1AA; font-size: 15px; font-weight: 500; }
html body .floorplan-seat-dot.is-assigned:not(#love-h-a) { background: #FFFFFF; border: 1.5px solid #181D24; color: #181D24; }
html body .floorplan-seat-dot.is-confirmed:not(#love-h-a) { background: #181D24; border: 1.5px solid #181D24; color: #FFFFFF; }
html body .floorplan-seat-dot.is-declined:not(#love-h-a) { background: #FEF2F2; border: 1.5px solid #FECACA; color: #F87171; }
html body .floorplan-seat-dot:not(#love-h-a) .floorplan-seat-dot-line { overflow: visible; }
body[data-theme="dark"] .floorplan-seat-dot.is-empty { background: #252525 !important; border-color: #404040 !important; }

/* Meus convidados › arrastar: a reserva arrastada fica destacada (sem a linha
   de "soltar aqui"); as outras abrem espaço com animação. */
#rsvp-guests-table-body tr.is-arrastando td { opacity: 1 !important; background: #F4F4F5 !important; }
#rsvp-guests-table-body tr.is-arrastando { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); position: relative; z-index: 2; }
#rsvp-guests-table-body tr.drop-antes td, #rsvp-guests-table-body tr.drop-depois td { box-shadow: none !important; }
#rsvp-guests-table-body .guest-reordenar svg { width: 16px; height: 16px; }
html body #tab-rsvp #rsvp-guests-table-body tr.is-arrastando td:not(#love-h-a),
html body #tab-rsvp #rsvp-guests-table-body tr.is-arrastando:hover td:not(#love-h-a) { background: #F4F4F5 !important; opacity: 1 !important; }

/* Convite publicado › página do presente: sem título; a foto ocupa o topo e o
   botão Voltar fica por cima dela, num círculo branco. */
.convite-tela.convite-tela-presente { position: relative; padding-top: 0; }
.convite-tela.convite-tela-presente > .convite-tela-topo { position: absolute; top: 12px; left: 12px; right: auto; z-index: 3; margin: 0; padding: 0; background: transparent; display: block; }
.convite-tela.convite-tela-presente > .convite-tela-topo + * { margin-top: 0 !important; }
.convite-tela.convite-tela-presente .convite-voltar { width: 36px; height: 36px; border-radius: 999px; background: rgba(255, 255, 255, 0.6); border: 0; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); display: inline-flex; align-items: center; justify-content: center; }
.convite-tela.convite-tela-presente .convite-presente-detalhe-foto { margin-top: 0; height: 300px; }
html body .convite-tela.convite-tela-presente .convite-voltar:not(#love-h-a) { border-radius: 999px !important; background: rgba(255, 255, 255, 0.6) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border: 0 !important; width: 36px; height: 36px; }

/* Mapear mesas › Expandir: some a lista de convidados, a sidebar e o topo; a
   planta ocupa a tela toda (o cabeçalho com Expandir/Adicionar Mesa fica). */
.floorplan-expandir { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; }
.floorplan-expandir svg { width: 18px; height: 18px; }
.floorplan-expandir .icone-recolher { display: none; }
.floorplan-wrap.is-expandida .floorplan-expandir .icone-expandir { display: none; }
.floorplan-wrap.is-expandida .floorplan-expandir .icone-recolher { display: block; }
.floorplan-wrap.is-expandida { position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column; background: #FFFFFF; }
.floorplan-wrap.is-expandida .floorplan-body { flex: 1; min-height: 0; overflow: auto; }
.floorplan-wrap.is-expandida #floorplan-canvas { min-height: 100%; }
body.planta-expandida { overflow: hidden; }
/* Pop-up da mesa por cima da planta expandida. */
body.planta-expandida .modal-backdrop-custom { z-index: 70 !important; }
body[data-theme="dark"] .floorplan-wrap.is-expandida { background: #181D24; }
/* A animação de entrada da aba usa transform, o que prenderia o position:fixed. */
body.planta-expandida #tab-rsvp-tables { transform: none !important; animation: none !important; }
html body .floorplan-wrap.is-expandida:not(#love-h-a) { margin: 0 !important; width: auto !important; height: auto !important; max-width: none !important; border-radius: 0 !important; }

/* Mapear mesas: papel quadriculado (SVG "graph-pattern": linhas #a0c4ff de
   0,8px a cada 20px) no lugar dos pontinhos — em CSS, sem emendas. A linha
   fica com 1px a 80% (0,8px não desenha igual em todas as telas). */
html body #floorplan-canvas:not(#love-h-a) {
  background-color: #FFFFFF;
  background-image:
    linear-gradient(to right, rgba(160, 196, 255, 0.8) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(160, 196, 255, 0.8) 1px, transparent 1px);
  background-size: 20px 20px;
  background-position: 0 0;
}
body[data-theme="dark"] #floorplan-canvas {
  background-image:
    linear-gradient(to right, rgba(160, 196, 255, 0.18) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(160, 196, 255, 0.18) 1px, transparent 1px) !important;
  background-size: 20px 20px !important;
}
/* Mapear mesas › Expandir: botão branco no estilo de "Filtrar por"/"Exportar",
   com a mesma altura e largura de "Adicionar Mesa"; hover cinza clarinho. */
html body #btn-floorplan-expandir:not(#love-h-a) { width: 133px; height: 38px; min-height: 38px; padding: 0; background: #FFFFFF !important; border: 1px solid #E4E4E7 !important; border-radius: 8px; color: #3F3F46; }
html body #btn-floorplan-expandir:not(#love-h-a):hover { background: #F4F4F5 !important; color: #181D24; border-color: #E4E4E7 !important; }
body[data-theme="dark"] #btn-floorplan-expandir { background: #252525 !important; border-color: #404040 !important; color: #E4E4E7 !important; }

/* Assento vazio: só branco (sem o "+"). */
html body .floorplan-seat-dot.is-empty:not(#love-h-a) { font-size: 0; }

/* Girar (mesa retangular): o canto (4,20) do ícone de 22px encosta na quina de
   cima à direita da mesa — horizontal: quina em (185, 78); vertical: (142, 35)
   no quadro de 220px. */
html body .floorplan-el.is-mesa > .floorplan-girar:not(#love-h-a) { width: 22px; height: 22px; top: 59.7px; left: 181.3px; color: #71717A; }
html body .floorplan-el.is-mesa.is-vertical > .floorplan-girar:not(#love-h-a) { top: 16.7px; left: 138.3px; }
html body .floorplan-el.is-mesa > .floorplan-girar:not(#love-h-a) svg { width: 22px; height: 22px; }

/* Mapear mesas: papel quadriculado como o modelo — fundo azul bem claro
   (#FAFCFF); quadrados grandes de 50px em cinza claro (#E5E7EB) e, dentro de
   cada um, quadradinhos de 10px com linha mais suave. */
html body #floorplan-canvas:not(#love-h-a) {
  background-color: #FAFCFF;
  background-image:
    linear-gradient(to right, #E5E7EB 1px, transparent 1px),
    linear-gradient(to bottom, #E5E7EB 1px, transparent 1px),
    linear-gradient(to right, rgba(229, 231, 235, 0.55) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(229, 231, 235, 0.55) 1px, transparent 1px);
  background-size: 50px 50px, 50px 50px, 10px 10px, 10px 10px;
  background-position: 0 0;
}
body[data-theme="dark"] #floorplan-canvas {
  background-image:
    linear-gradient(to right, rgba(255, 255, 255, 0.10) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.10) 1px, transparent 1px),
    linear-gradient(to right, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.04) 1px, transparent 1px) !important;
  background-size: 50px 50px, 50px 50px, 10px 10px, 10px 10px !important;
}
/* Expandir: mesma altura do "Adicionar Mesa" (38px), largura de botão pequeno (quadrado). */
html body #btn-floorplan-expandir:not(#love-h-a) { width: 38px; }

/* Fundo normal das telas (#F4F6F7, --bg-dashboard) em mais lugares:
   - hover dos itens do submenu da sidebar;
   - fundo atrás do celular/tablet/desktop no Convite digital e no Save the
     Date (sem os pontinhos);
   - fundo da planta de Mapear mesas (o quadriculado continua por cima). */
html body:not([data-theme="dark"]) #sidebar-sub-drawer .sub-drawer-item:not(.active):not(#love-h-a):hover { background-color: var(--bg-dashboard) !important; }
html body:not([data-theme="dark"]) #view-event-os-dashboard .builder-canvas-viewport:not(#love-h-a) { background-color: var(--bg-dashboard) !important; background-image: none !important; }
html body:not([data-theme="dark"]) #floorplan-canvas:not(#love-h-a) { background-color: var(--bg-dashboard) !important; }

/* Cabeçalho de todas as telas igual ao do Convite digital: fundo branco e a
   linha cinza fina embaixo (inclui Mapear mesas, que usa .floorplan-toolbar). */
html body:not([data-theme="dark"]) #view-event-os-dashboard .builder-toolbar:not(#love-h-a),
html body:not([data-theme="dark"]) #view-event-os-dashboard .floorplan-toolbar:not(#love-h-a) { background: #FFFFFF !important; }
html body:not([data-theme="dark"]) #view-event-os-dashboard .floorplan-toolbar:not(#love-h-a) { border-bottom: 1px solid #E4E4E7 !important; }

/* Tudo monocromático: hover dos convidados já sentados (Mapear mesas), item
   ativo do submenu e ícone ativo da barra de ícones na cor do fundo (#F4F6F7). */
html body:not([data-theme="dark"]) .floorplan-guest-card.is-seated:not(.is-declined):not(#love-h-a):hover { background: #F4F6F7 !important; }
html body:not([data-theme="dark"]) #sidebar-sub-drawer .sub-drawer-item.active:not(#love-h-a) { background-color: #F4F6F7 !important; }
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body:not([data-theme="dark"]) .rail-icon-btn.active:not(#love-h-a) { background-color: #F4F6F7 !important; }
}
/* Mais Recursos: botões brancos com borda fina. */
html body:not([data-theme="dark"]) #tab-overview .mais-recursos-btn:not(#love-h-a) { background: #FFFFFF !important; border: 1px solid #E4E4E7 !important; box-shadow: none !important; }
html body:not([data-theme="dark"]) #tab-overview .mais-recursos-btn:not(#love-h-a):hover { background: #FFFFFF !important; border-color: #181D24 !important; }

/* Mapear mesas › Inserir item: menu com Mesas e Espaços. */
.floorplan-formatos-titulo { grid-column: 1 / -1; margin: 2px 2px 0; font-size: 11px; font-weight: 500; color: #A1A1AA; }
.floorplan-formatos-titulo + button, .floorplan-formatos button + .floorplan-formatos-titulo { margin-top: 0; }
.floorplan-formatos button + .floorplan-formatos-titulo { margin-top: 6px; }
html body .floorplan-formatos:not(.hidden):not(#love-h-a) { max-height: calc(100vh - 160px); overflow-y: auto; }
html body .floorplan-formatos button:not(#love-h-a) { text-align: center; line-height: 1.15; }
html body .floorplan-formatos button span { font-size: 11.5px; }

/* Itens da planta (buffet, palco, pista...): bloco branco com borda fina. */
html body .floorplan-el.is-item:not(#love-h-a) { min-height: 0; padding: 6px; gap: 4px; background: #FFFFFF; border: 1px solid #D4D4D8; border-radius: 8px; box-shadow: none; }
html body .floorplan-el.is-item:not(#love-h-a):hover { border-color: #181D24; }
.floorplan-el.is-item .floorplan-item-icone { display: flex; color: #52525B; }
.floorplan-el.is-item .floorplan-item-icone svg { width: 24px; height: 24px; }
html body .floorplan-el.is-item:not(#love-h-a) .floorplan-el-label { font-size: 12px; font-weight: 600; color: #181D24; white-space: nowrap; }
.floorplan-el.is-item.item-pista { background-image: linear-gradient(45deg, #F4F4F5 25%, transparent 25%, transparent 75%, #F4F4F5 75%), linear-gradient(45deg, #F4F4F5 25%, transparent 25%, transparent 75%, #F4F4F5 75%); background-size: 40px 40px; background-position: 0 0, 20px 20px; }
.floorplan-el.is-item.item-backdrop { flex-direction: row; gap: 8px; }
.floorplan-el.is-item.item-backdrop .floorplan-item-icone svg { width: 20px; height: 20px; }
.floorplan-item-remover { position: absolute; top: -9px; right: -9px; width: 20px; height: 20px; display: none; align-items: center; justify-content: center; padding: 0; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 999px; color: #52525B; cursor: pointer; }
.floorplan-item-remover svg { width: 11px; height: 11px; }
.floorplan-el.is-item:hover .floorplan-item-remover { display: flex; }
.floorplan-item-remover:hover { border-color: #181D24; color: #181D24; }
body[data-theme="dark"] .floorplan-el.is-item { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .floorplan-el.is-item .floorplan-el-label, body[data-theme="dark"] .floorplan-el.is-item .floorplan-item-icone { color: #E4E4E7 !important; }

/* Expandida: a planta rola para baixo (antes cortava o que estava embaixo). */
html body #tab-rsvp-tables .floorplan-wrap.is-expandida .floorplan-body:not(#love-h-a) { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
html body #btn-open-add-table-modal:not(#love-h-a) { gap: 7.2px; }

/* Mapear mesas › elemento selecionado: caixa fina com 4 alças (arrastar
   aumenta/diminui) e o menuzinho embaixo (Editar, Girar, Duplicar, Excluir). */
.floorplan-selecao { position: absolute; z-index: 30; border: 1.5px solid #181D24; border-radius: 8px; pointer-events: none; }
.floorplan-alca { position: absolute; width: 12px; height: 12px; background: #FFFFFF; border: 1.5px solid #181D24; border-radius: 999px; pointer-events: auto; }
.floorplan-alca.alca-tl { top: -6.5px; left: -6.5px; cursor: nwse-resize; }
.floorplan-alca.alca-br { bottom: -6.5px; right: -6.5px; cursor: nwse-resize; }
.floorplan-alca.alca-tr { top: -6.5px; right: -6.5px; cursor: nesw-resize; }
.floorplan-alca.alca-bl { bottom: -6.5px; left: -6.5px; cursor: nesw-resize; }
.floorplan-acoes { position: absolute; top: calc(100% + 12px); display: flex; gap: 2px; padding: 4px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); pointer-events: auto; white-space: nowrap; }
.floorplan-acoes.is-acima { top: auto; bottom: calc(100% + 12px); }
html body .floorplan-acao:not(#love-h-a) { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #52525B; cursor: pointer; }
.floorplan-acao svg { width: 18px; height: 18px; }
html body .floorplan-acao:not(#love-h-a):hover { color: #181D24; background: #F4F6F7; }
html body .floorplan-acao.acao-excluir:not(#love-h-a):hover { color: #DC2626; }
body.planta-redimensionando, body.planta-redimensionando * { cursor: nwse-resize !important; user-select: none; }
.floorplan-el.is-mesa { transform-origin: 50% 50%; }
.floorplan-el.is-item.is-em-pe .floorplan-el-label { writing-mode: vertical-rl; transform: rotate(180deg); }
.floorplan-el.is-item .floorplan-el-label.is-editando { outline: none; border-bottom: 1px solid #181D24; cursor: text; user-select: text; }
/* Pop-up da mesa: Voltar e Salvar lado a lado. */
.floorplan-salvar-btn { flex: 1; height: 34px; padding: 0.5rem; border: 1px solid #333333; border-radius: 8px; background: #333333; color: #FFFFFF; font-size: 0.75rem; font-weight: 700; cursor: pointer; }
.floorplan-salvar-btn:hover { background: #222222; }
html body .floorplan-back-btn:not(#love-h-a) { border-radius: 8px; }
body[data-theme="dark"] .floorplan-acoes { background: #252525; border-color: #404040; }
body[data-theme="dark"] .floorplan-selecao, body[data-theme="dark"] .floorplan-alca { border-color: #E4E4E7; }
body[data-theme="dark"] .floorplan-alca { background: #252525; }
body[data-theme="dark"] .floorplan-acao { color: #D4D4D8 !important; }

/* Mapear mesas › expandida: a lista de convidados flutua sobre a planta
   (arrastável pela barra de cima) e minimiza no tracinho. */
.floorplan-minimizar-lista { display: none; }
html body .floorplan-wrap.is-expandida #floorplan-guests-panel:not(#love-h-a) { display: flex !important; position: fixed; top: 84px; left: 16px; z-index: 65; width: 290px; min-height: 0; max-height: calc(100vh - 100px); background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); overflow: hidden; }
html body .floorplan-wrap.is-expandida #floorplan-guests-panel:not(#love-h-a) > .builder-panel-tab-body { display: flex; flex-direction: column; min-height: 0; overflow: hidden; padding: 0; }
html body .floorplan-wrap.is-expandida #floorplan-guests-panel:not(#love-h-a) .floorplan-convidados-topo { padding: 10px 10px 10px 14px; cursor: move; user-select: none; border-bottom: 1px solid #E4E4E7; flex-shrink: 0; }
html body .floorplan-wrap.is-expandida #floorplan-guests-panel:not(#love-h-a) .floorplan-guest-cards { overflow-y: auto; min-height: 0; padding: 10px; }
html body .floorplan-wrap.is-expandida #floorplan-guests-panel:not(#love-h-a) .floorplan-minimizar-lista { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin-left: 4px; padding: 0; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #52525B; cursor: pointer; flex-shrink: 0; }
html body .floorplan-wrap.is-expandida #floorplan-guests-panel:not(#love-h-a) .floorplan-minimizar-lista:hover { border-color: #181D24; color: #181D24; }
.floorplan-minimizar-lista svg { width: 16px; height: 16px; }
.floorplan-minimizar-lista .icone-maximizar { display: none; }
#floorplan-guests-panel.is-minimizada .floorplan-minimizar-lista .icone-minimizar { display: none; }
#floorplan-guests-panel.is-minimizada .floorplan-minimizar-lista .icone-maximizar { display: block; width: 14px; height: 14px; }
.floorplan-convidados-topo .builder-el-group-title { margin-right: auto; }
/* Minimizada: só a barrinha com "Convidados" e o botão de abrir. */
html body .floorplan-wrap.is-expandida #floorplan-guests-panel.is-minimizada:not(#love-h-a) { width: 200px; }
html body .floorplan-wrap.is-expandida #floorplan-guests-panel.is-minimizada:not(#love-h-a) .floorplan-guest-cards,
html body .floorplan-wrap.is-expandida #floorplan-guests-panel.is-minimizada:not(#love-h-a) #btn-floorplan-add-guest { display: none !important; }
html body .floorplan-wrap.is-expandida #floorplan-guests-panel.is-minimizada:not(#love-h-a) .floorplan-convidados-topo { border-bottom: 0; }
body[data-theme="dark"] .floorplan-wrap.is-expandida #floorplan-guests-panel { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .floorplan-minimizar-lista { background: #252525 !important; border-color: #404040 !important; color: #D4D4D8 !important; }

/* Itens da planta em planta baixa: só o desenho (sem caixa, sem nome). */
html body .floorplan-el.is-item:not(#love-h-a) { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
html body .floorplan-el.is-item:not(#love-h-a):hover { border: 0; }
.floorplan-planta { position: absolute; left: 50%; top: 50%; overflow: visible; pointer-events: none; }
.floorplan-planta * { fill: #FFFFFF; stroke: #52525B; stroke-width: 1.5px; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.floorplan-planta .l, .floorplan-planta .l * { fill: none; }
.floorplan-planta .c { fill: #F4F4F5; stroke: none; }
.floorplan-el.is-item:hover .floorplan-planta * { stroke: #181D24; }
body[data-theme="dark"] .floorplan-planta * { fill: #252525; stroke: #A1A1AA; }
body[data-theme="dark"] .floorplan-planta .l, body[data-theme="dark"] .floorplan-planta .l * { fill: none; }
body[data-theme="dark"] .floorplan-planta .c { fill: #333333; stroke: none; }

/* Rodapé da plataforma logada igual ao do Hub: uma linha baixa, na cor do fundo
   das telas, com uma linha fina em cima de ponta a ponta. O texto começa na
   linha do título do cabeçalho e os links terminam onde o conteúdo termina. */
html body #view-event-os-dashboard .dashboard-main-area > .rodape-respiro:not(#love-h-a) { display: block; flex: 0 0 6.5rem; height: 6.5rem; }
html body #view-event-os-dashboard .dashboard-main-area > .dashboard-content-wrapper:not(#love-h-a) { padding-bottom: 0 !important; }
html body #view-event-os-dashboard #dashboard-footer.rodape-logado:not(#love-h-a) { margin-top: 0 !important; padding-top: 1rem !important; padding-bottom: 1rem !important; padding-left: var(--rodape-respiro-lateral, 2rem) !important; padding-right: var(--rodape-respiro-lateral, 2rem) !important; background: transparent !important; border: 0 !important; border-top: 1px solid #E4E4E7 !important; box-shadow: none !important; }
html body #dashboard-footer .rodape-logado-linha:not(#love-h-a) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; }
html body #dashboard-footer .rodape-logado-texto:not(#love-h-a) { margin: 0; font-size: 12px !important; font-weight: 400 !important; line-height: 1.5 !important; color: #71717A !important; }
html body #dashboard-footer .rodape-logado-texto span:not(#love-h-a) { font-size: inherit !important; color: inherit !important; }
html body #dashboard-footer .rodape-logado-links:not(#love-h-a) { display: flex; flex-wrap: wrap; gap: 16px; }
html body #dashboard-footer .rodape-logado-links a:not(#love-h-a) { font-size: 12px !important; font-weight: 400 !important; line-height: 1.5 !important; color: #18181B !important; text-decoration: none !important; }
html body #dashboard-footer .rodape-logado-links a:not(#love-h-a):hover { text-decoration: underline !important; }
html body[data-theme="dark"] #view-event-os-dashboard #dashboard-footer.rodape-logado:not(#love-h-a) { background: transparent !important; border-top-color: #404040 !important; }
html body[data-theme="dark"] #dashboard-footer .rodape-logado-texto:not(#love-h-a) { color: #A1A1AA !important; }
html body[data-theme="dark"] #dashboard-footer .rodape-logado-links a:not(#love-h-a) { color: #FFFFFF !important; }
/* Rodapé de ponta a ponta (sangra até as bordas da área principal) e sem
   sobras de padding no fim das telas: o respiro é só o bloco de 6.5rem. */
html body #view-event-os-dashboard .dashboard-main-area > #dashboard-footer.rodape-logado:not(#love-h-a) { width: calc(100% + var(--rodape-sangria-esq, 0px) + var(--rodape-sangria-dir, 0px)) !important; max-width: none !important; margin-left: calc(-1 * var(--rodape-sangria-esq, 0px)) !important; margin-right: calc(-1 * var(--rodape-sangria-dir, 0px)) !important; padding-left: 2rem !important; padding-right: 2rem !important; }
html body #view-event-os-dashboard .dashboard-content-wrapper > .dashboard-tab-content:not(#love-h-a) { padding-bottom: 0 !important; margin-bottom: 0 !important; }
/* O último bloco visível da tela (o de py-6) não soma os 24px de baixo ao respiro. */
html body #view-event-os-dashboard .dashboard-tab-content > [class*="py-6"]:not(:has(~ :not(.hidden))):not(#love-h-a) { padding-bottom: 0 !important; }
/* Quanto o rodapé sangra para os lados = o respiro lateral da área principal
   naquela tela (2rem na Home; 0 nas telas em "modo" como Convidados/Presentes). */
html body #view-event-os-dashboard #dashboard-footer.rodape-logado:not(#love-h-a) { --rodape-sangria-esq: 2rem; --rodape-sangria-dir: 2rem; }
html body:is(.editor-split-mode, .rsvp-mode, .b2b-mode, .gifts-mode, .wallet-mode, .page-mode, .b2b-chat-mode) #view-event-os-dashboard #dashboard-footer.rodape-logado:not(#love-h-a) { --rodape-sangria-esq: 0px; --rodape-sangria-dir: 0px; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard #dashboard-footer.rodape-logado:not(#love-h-a) { --rodape-sangria-esq: 1rem; --rodape-sangria-dir: 1rem; }
  html body.b2b-chat-mode #view-event-os-dashboard #dashboard-footer.rodape-logado:not(#love-h-a) { --rodape-sangria-esq: 0px; --rodape-sangria-dir: 0px; }
}
/* Onde não há rodapé (Personalizar evento: Aparência, Informações, Organizadores,
   Convite online...; chat de fornecedores) o respiro de 104px também some.
   Mapa do evento: a planta vai até o rodapé, sem respiro. */
html body:is(.editor-split-mode, .b2b-chat-mode) #view-event-os-dashboard .dashboard-main-area > .rodape-respiro:not(#love-h-a),
html body #view-event-os-dashboard .dashboard-main-area:has(#tab-rsvp-tables.active) > .rodape-respiro:not(#love-h-a) { display: none !important; }

/* Barra de ícones da esquerda na cor primária da Love (igual ao Hub B2B), só
   no tema claro. Ícones, hover, ativo e o submenu branco continuam iguais. */
html body:not([data-theme="dark"]) .sidebar-icon-rail:not(#love-h-a),
html body:not([data-theme="dark"]) .sidebar-icon-rail .sidebar-brand-top:not(#love-h-a) { background-color: #183b54 !important; }
/* Mapa do evento: quadriculado um pouco mais transparente. */
html body:not([data-theme="dark"]) #floorplan-canvas:not(#love-h-a) {
  background-image:
    linear-gradient(to right, rgba(229, 231, 235, 0.65) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(229, 231, 235, 0.65) 1px, transparent 1px),
    linear-gradient(to right, rgba(229, 231, 235, 0.35) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(229, 231, 235, 0.35) 1px, transparent 1px) !important;
}
/* Mapa do evento › lista de convidados: um pouco mais de espaço entre um
   convidado e outro; já sentado = cor do fundo das telas / item ativo do menu. */
html body #floorplan-guests-panel .floorplan-guest-card:not(#love-h-a) { padding-top: 12px !important; padding-bottom: 12px !important; }
html body:not([data-theme="dark"]) .floorplan-guest-card.is-seated:not(.is-declined):not(#love-h-a) { background: #F4F6F7 !important; }
/* Menu do perfil: só o e-mail ao lado da foto (sem o nome). */
html body #account-dropdown-username:not(#love-h-a) { display: none !important; }
html body .account-dropdown-header:not(#love-h-a) { align-items: center; }
html body #account-dropdown-email:not(#love-h-a) { font-size: 0.875rem !important; font-weight: 500 !important; color: #18181B !important; }
/* Mapa do evento › card do convidado: "Mesa N" sem negrito, na cor do nome. */
html body .floorplan-guest-card .floorplan-guest-card-table:not(#love-h-a) { font-weight: 400 !important; color: #3F3F46 !important; }

/* Mapa do evento › caixinha de formas (linha, círculo, rabisco) à esquerda do
   "Inserir item": branca com borda, como o Expandir, com a setinha de menu. */
.floorplan-formas { position: relative; display: inline-block; }
html body #btn-floorplan-formas:not(#love-h-a) { height: 38px; min-height: 38px; padding: 0 8px 0 10px; display: inline-flex; align-items: center; gap: 4px; background: #FFFFFF !important; border: 1px solid #E4E4E7 !important; border-radius: 8px; color: #3F3F46; box-shadow: none; }
html body #btn-floorplan-formas:not(#love-h-a):hover { background: #F4F4F5 !important; color: #181D24; }
#btn-floorplan-formas > svg:first-child { width: 20px; height: 20px; }
.seta-menu { width: 14px; height: 14px; flex-shrink: 0; }
html body #btn-open-add-table-modal:not(#love-h-a) .seta-menu { margin-left: 2px; }
.floorplan-formas-menu:not(.hidden) { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; min-width: 180px; padding: 6px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); display: flex; flex-direction: column; }
html body .floorplan-formas-menu button:not(#love-h-a) { display: flex; align-items: center; gap: 12px; width: 100%; height: 36px; padding: 0 10px; background: transparent; border: 0; border-radius: 8px; font-size: 14px; font-weight: 400; color: #18181B; cursor: pointer; text-align: left; }
html body .floorplan-formas-menu button:not(#love-h-a):hover { background: #F4F6F7; }
.floorplan-formas-menu button svg { width: 20px; height: 20px; color: #3F3F46; flex-shrink: 0; }
body[data-theme="dark"] #btn-floorplan-formas, body[data-theme="dark"] .floorplan-formas-menu { background: #252525 !important; border-color: #404040 !important; color: #E4E4E7 !important; }

/* Linha na planta: só o traço; a faixa invisível ajuda a pegar com o mouse. */
html body .floorplan-el.is-linha:not(#love-h-a) { min-height: 0; padding: 0; background: transparent; border: 0; box-shadow: none; pointer-events: none; display: block; }
.floorplan-linha-svg { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; }
.floorplan-linha-svg .pega { stroke: transparent; stroke-width: 14px; pointer-events: stroke; cursor: grab; }
.floorplan-linha-svg .traco { stroke: #52525B; stroke-width: 2px; stroke-linecap: round; }
.floorplan-el.is-linha:hover .floorplan-linha-svg .traco { stroke: #181D24; }
.floorplan-selecao.is-linha { border: 0; }
.floorplan-alca.alca-ponta { cursor: move; }
body[data-theme="dark"] .floorplan-linha-svg .traco { stroke: #A1A1AA; }

/* Rabisco: traço livre um pouco mais forte. Enquanto desenha: cursor em cruz. */
.floorplan-el.item-rabisco .floorplan-planta path { stroke-width: 2px; }
#floorplan-canvas.is-desenhando, #floorplan-canvas.is-desenhando * { cursor: crosshair !important; }
.floorplan-rabisco-ao-vivo { position: absolute; left: 0; top: 0; z-index: 35; pointer-events: none; overflow: visible; }
.floorplan-rabisco-ao-vivo path { fill: none; stroke: #181D24; stroke-width: 2px; stroke-linecap: round; stroke-linejoin: round; }
.floorplan-dica-desenho { position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 36; padding: 6px 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); font-size: 12px; color: #3F3F46; pointer-events: none; white-space: nowrap; }
/* Mapa do evento › lista de convidados: mesma margem dos dois lados (era 12px
   à esquerda e 4px à direita). */
html body .floorplan-wrap:not(.is-expandida) #floorplan-guests-panel > .builder-panel-tab-body:not(#love-h-a) { padding-right: 12px !important; }

/* Mapa do evento: o botão de formas é só o ícone do rabisco (38x38). */
html body #btn-floorplan-formas:not(#love-h-a) { width: 38px; padding: 0; justify-content: center; }
#btn-floorplan-formas > svg { width: 20px; height: 20px; flex-shrink: 0; }

/* Menu do perfil: sem o ícone/foto; só o e-mail completo (quebra se for longo,
   em vez de cortar com "..."). */
html body #account-dropdown-avatar:not(#love-h-a) { display: none !important; }
html body #account-dropdown-email:not(#love-h-a) { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; }
/* Menu do perfil: só o nome e sobrenome da pessoa (sem o e-mail). */
html body #account-dropdown-username:not(#love-h-a) { display: block !important; font-size: 0.875rem !important; font-weight: 500 !important; color: #18181B !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; }
html body #account-dropdown-email:not(#love-h-a) { display: none !important; }

/* Dica dos botões só com ícone (data-dica): caixinha branca com borda fina e
   sombra de overlay, no lugar da caixinha preta do navegador. */
.love-dica { position: fixed; z-index: 10000; padding: 6px 10px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 13px; font-weight: 500; line-height: 1.3; color: #18181B; white-space: nowrap; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity .12s ease; }
.love-dica.is-visivel { opacity: 1; visibility: visible; }
/* Encontrar fornecedor › campo "Em [cidade]": a cidade um pouco mais longe do "Em". */
html body #b2b-location-input:not(#love-h-a) { padding-left: 37px !important; }
/* Mapa do evento › lista de convidados: um respiro de 4px entre um convidado e
   outro (sem a linha divisória) e o lado direito arredondado, como o item
   ativo do submenu (esquerda reta, direita 8px). */
html body #floorplan-guests-panel .floorplan-guest-cards:not(#love-h-a) { gap: 4px; }
html body #floorplan-guests-panel .floorplan-guest-card:not(#love-h-a) { border-top: 0 !important; border-radius: 0 8px 8px 0 !important; }

/* Mapa do evento › Texto: caixinha de texto simples (Inter 14px, sem negrito),
   centralizada no bloco; cresce/gira junto com o bloco. */
.floorplan-texto { position: absolute; left: 50%; top: 50%; padding: 4px 6px; font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 14px; font-weight: 400 !important; font-style: normal; line-height: 1.3; color: #18181B; white-space: pre; text-align: center; transform-origin: 50% 50%; outline: none; pointer-events: none; }
.floorplan-texto.is-editando { pointer-events: auto; cursor: text; user-select: text; background: #FFFFFF; border-radius: 4px; box-shadow: 0 0 0 1px #E4E4E7; }
.floorplan-texto b, .floorplan-texto strong { font-weight: 400; }
.floorplan-texto-medida { position: fixed; left: -9999px; top: 0; transform: none; visibility: hidden; }
body[data-theme="dark"] .floorplan-texto { color: #E4E4E7; }

/* Drawer do convidado › Restrições alimentares: o campo de detalhe abre e
   fecha deslizando (altura 0fr → 1fr) com um leve fade. */
.restricao-detalhe { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .22s ease, opacity .18s ease; }
.restricao-detalhe.is-aberto { grid-template-rows: 1fr; opacity: 1; }
.restricao-detalhe-dentro { overflow: hidden; min-height: 0; }

/* Mapa do evento: sem o rodapé da plataforma na tela normal; expandida, um
   rodapé próprio com o logo da Love à esquerda e a frase. */
html body #view-event-os-dashboard .dashboard-main-area:has(#tab-rsvp-tables.active) > #dashboard-footer:not(#love-h-a) { display: none !important; }
.floorplan-rodape-expandida { display: none; }
html body .floorplan-wrap.is-expandida > .floorplan-rodape-expandida:not(#love-h-a) { display: flex; align-items: center; gap: 16px; flex-shrink: 0; padding: 12px 24px; background: #FFFFFF; border-top: 1px solid #E4E4E7; font-size: 12px; font-weight: 400; color: #71717A; }
.floorplan-rodape-logo { height: 20px; width: auto; display: block; }
body[data-theme="dark"] .floorplan-wrap.is-expandida > .floorplan-rodape-expandida { background: #181D24; border-top-color: #404040; color: #A1A1AA; }

/* Restrições alimentares: lista própria com bolinha de cor por opção. */
.restricao-select { position: relative; }
html body .restricao-botao:not(#love-h-a) { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; cursor: pointer; background: #FFFFFF; }
.restricao-botao .restricao-texto { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #18181B; }
.restricao-seta { width: 16px; height: 16px; color: #71717A; flex-shrink: 0; }
.restricao-bolinha { display: inline-block; width: 10px; height: 10px; border-radius: 999px; background: var(--cor, transparent); flex-shrink: 0; }
.restricao-botao .restricao-bolinha.is-vazia { display: none; }
.restricao-lista { display: none; position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 60; margin: 0; padding: 6px; list-style: none; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); max-height: 280px; overflow-y: auto; }
.restricao-select.is-aberto .restricao-lista { display: block; }
.restricao-lista li { display: flex; align-items: center; gap: 10px; height: 36px; padding: 0 10px; border-radius: 8px; font-size: 14px; color: #18181B; cursor: pointer; outline: none; }
.restricao-lista li:hover, .restricao-lista li:focus { background: #F4F6F7; }
.restricao-lista li[aria-selected="true"] { font-weight: 600; }
/* Bolinha vazia (sem restrição / outra) ocupa o lugar para alinhar os textos. */
.restricao-lista li .restricao-bolinha { box-shadow: none; }

/* Acompanhante no drawer: a linha (nome/idade/remover) + a restrição embaixo. */
.guest-companion-row { padding-bottom: 12px; border-bottom: 1px solid #F4F4F5; }
.guest-companion-row:last-child { border-bottom: 0; padding-bottom: 0; }

/* Meus convidados: a bolinha da restrição como último ícone da linha. */
#tab-rsvp .guest-col-restricao { width: 28px; padding-left: 0 !important; text-align: center; }

/* Mapa do evento: assento de quem tem restrição fica na cor dela. */
html body .floorplan-seat-dot.tem-restricao:not(#love-h-a) { background: var(--cor-restricao) !important; border-color: var(--cor-restricao-borda) !important; color: #18181B !important; }

/* Drawer do convidado: "+ Adicionar acompanhante" embaixo de tudo. */
html body button.guest-add-acompanhante:not(#love-h-a) { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; padding: 0; background: transparent; border: 0; font-size: 13px; font-weight: 600; color: #18181B; cursor: pointer; }
html body button.guest-add-acompanhante:not(#love-h-a):hover { text-decoration: underline; }
html body button.guest-add-acompanhante:not(#love-h-a) svg { width: 14px; height: 14px; }

/* Rodapé do drawer: lixeira pequena à esquerda do Salvar (só ao editar). */
.guest-drawer-rodape { display: flex; align-items: center; gap: 8px; }
.guest-drawer-rodape #btn-save-guest { flex: 1; }
html body button.guest-remove-lixeira:not(#love-h-a) { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #71717A; cursor: pointer; flex-shrink: 0; }
html body button.guest-remove-lixeira:not(#love-h-a):hover { border-color: #DC2626; color: #DC2626; }
html body button.guest-remove-lixeira:not(#love-h-a) svg { width: 18px; height: 18px; }
/* Confirmando: some lixeira e Salvar; aparece "Remover este convidado? Sim / Não". */
.guest-drawer-rodape.is-confirmando #guest-remove-wrap, .guest-drawer-rodape.is-confirmando #btn-save-guest { display: none !important; }
.guest-drawer-rodape .guest-remove-confirm { flex: 1; min-height: 44px; }
/* Drawer do convidado: cada acompanhante começa com uma linha horizontal,
   separando das informações do convidado principal (e de outro acompanhante). */
html body #guest-companions-list .guest-companion-row:not(#love-h-a) { border-bottom: 0; padding-bottom: 0; border-top: 1px solid #E4E4E7; padding-top: 16px; margin-top: 16px; }
html body #guest-companions-list.space-y-2 > .guest-companion-row:not(#love-h-a) { margin-top: 16px; }
html body #guest-companions-list:not(:empty) + .guest-add-acompanhante:not(#love-h-a) { margin-top: 12px; }

/* Perfil do fornecedor: coração igual ao do card do Explorar (fundo branco,
   sem contorno, sombra leve). */
html body #btn-b2b-profile-favorite.b2b-perfil-favoritar:not(#love-h-a) { border: 0 !important; background: #FFFFFF !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); }
/* Explorar (cards e página do serviço): sombra bem fraca no coração, no
   Mensagens e no Solicitar, só para dar um leve relevo. */
html body #tab-b2b :is(.btn-toggle-card-fav, .btn-message-supplier, .btn-hire-supplier, #btn-b2b-profile-favorite, #btn-b2b-profile-message, #btn-b2b-profile-hire):not(#love-h-a) { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04) !important; }
/* Explorar: em vez da sombra, só uma linha cinza bem clara (a mesma da linha
   que separa o cabeçalho do conteúdo). */
html body #tab-b2b :is(.btn-toggle-card-fav, .btn-message-supplier, .btn-hire-supplier, #btn-b2b-profile-favorite, #btn-b2b-profile-message, #btn-b2b-profile-hire):not(#love-h-a) { box-shadow: none !important; border: 1px solid #E4E4E7 !important; }
/* Mensagens: a coluna com a lista de conversas no mesmo fundo das telas (#F4F6F7). */
html body:not([data-theme="dark"]) #tab-b2b :is(.b2b-chat-contacts-column, #b2b-chat-contacts-list):not(#love-h-a) { background-color: var(--bg-dashboard, #F4F6F7) !important; }
/* Coração de favoritar vazio (sem preenchimento): contorno mais grosso, em
   "negrito"; favoritado continua rosa e cheio. */
html body :is(.btn-toggle-card-fav svg.fill-none, #b2b-profile-favorite-icon.fill-none):not(#love-h-a) { stroke-width: 2.4px; }
/* Explorar (cards e página do serviço) na cor da barra lateral (#183b54):
   Mensagens com texto e contorno nela; Solicitar cheio nela; coração com o
   contorno do círculo e do coração nela (favoritado continua rosa). */
html body #tab-b2b :is(.btn-message-supplier, #btn-b2b-profile-message):not(#love-h-a) { color: #183b54 !important; border-color: #183b54 !important; background: #FFFFFF !important; }
html body #tab-b2b :is(.btn-message-supplier, #btn-b2b-profile-message):not(#love-h-a) * { color: #183b54 !important; }
html body #tab-b2b :is(.btn-hire-supplier, #btn-b2b-profile-hire):not(#love-h-a) { background: #183b54 !important; border-color: #183b54 !important; color: #FFFFFF !important; }
html body #tab-b2b :is(.btn-hire-supplier, #btn-b2b-profile-hire):not(#love-h-a):hover { background: #122c3f !important; border-color: #122c3f !important; }
html body #tab-b2b :is(.btn-toggle-card-fav, #btn-b2b-profile-favorite):not(#love-h-a) { border-color: #183b54 !important; }
html body #tab-b2b :is(.btn-toggle-card-fav svg.fill-none, #b2b-profile-favorite-icon.fill-none):not(#love-h-a) { color: #183b54 !important; stroke: #183b54 !important; }
/* Drawer do convidado › remover acompanhante: lixeira preta num quadradinho
   cinza claro, sem borda; no hover o cinza só escurece um pouco. */
html body button.guest-acompanhante-lixeira:not(#love-h-a) { width: 43px; height: 43px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: #F4F4F5; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; transition: background-color .15s; }
html body button.guest-acompanhante-lixeira:not(#love-h-a):hover { background: #E4E4E7; color: #18181B; }
html body button.guest-acompanhante-lixeira:not(#love-h-a) svg { width: 16px; height: 16px; }
/* Rodapé da planta expandida: logotipo completo (ícone + nome) à esquerda e a
   frase à direita. */
html body .floorplan-wrap.is-expandida > .floorplan-rodape-expandida:not(#love-h-a) { justify-content: space-between; }
html body .floorplan-rodape-logo:not(#love-h-a) { height: 24px; width: auto; }
/* Nome escrito dentro do desenho da planta (Altar, Área Kids). */
html body .floorplan-planta text.t:not(#love-h-a) { fill: #52525B; stroke: none; font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 13px; font-weight: 500; }
html body .floorplan-el.is-item:hover .floorplan-planta text.t:not(#love-h-a) { fill: #181D24; stroke: none; }
body[data-theme="dark"] .floorplan-planta text.t { fill: #D4D4D8 !important; }
/* Mapa do evento › lista de convidados: quem ainda não tem assento ganha uma
   linha bem clara embaixo, de uma borda da lista até a outra. */
html body #floorplan-guests-panel .floorplan-guest-card:not(.is-seated):not(#love-h-a) { position: relative; }
html body #floorplan-guests-panel .floorplan-guest-card:not(.is-seated):not(:last-child):not(#love-h-a)::after { content: ''; position: absolute; left: -12px; right: -12px; bottom: -2.5px; height: 1px; background: rgba(0, 0, 0, 0.05); pointer-events: none; }

/* Datas e horários da plataforma logada: sem o ícone do navegador (e sem a
   dica "Mostrar seletor de datas/horário"); nosso ícone no lugar, e o clique
   no campo abre o seletor. */
html body #view-event-os-dashboard input[type="date"]::-webkit-calendar-picker-indicator,
html body #view-event-os-dashboard input[type="time"]::-webkit-calendar-picker-indicator { display: none; }
html body #view-event-os-dashboard input[type="date"]:not(#love-h-a),
html body #view-event-os-dashboard input[type="time"]:not(#love-h-a) { background-repeat: no-repeat; background-position: right 12px center; background-size: 16px 16px; padding-right: 36px; cursor: pointer; }
html body #view-event-os-dashboard input[type="date"]:not(#love-h-a) { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='2'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E"); }
html body #view-event-os-dashboard input[type="time"]:not(#love-h-a) { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }

/* Informações › Endereço do site: ícone de copiar maior, do tamanho do selo de "URL disponível". */
html body #editor-data-copy-link:not(#love-h-a) svg { width: 18px !important; height: 18px !important; }
/* (reforço: uma regra antiga de .bg-white com !important apagava o ícone) */
html body #view-event-os-dashboard input[type="date"]:not(#love-h-a) { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='2'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 12px center !important; background-size: 16px 16px !important; }
html body #view-event-os-dashboard input[type="time"]:not(#love-h-a) { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 12px center !important; background-size: 16px 16px !important; }
html body #editor-data-copy-link:not(#love-h-a) { width: 28px !important; height: 28px !important; padding: 0 !important; margin-left: 4px; }
/* Endereço do site › "URL disponível": o check no verde do status "Ativo" de
   Meus presentes (#1E9E5E), sem bolinha de fundo nem borda. */
html body #editor-url-status-icon .url-status-ok:not(#love-h-a) { background: transparent; border: 0; box-shadow: none; color: #1E9E5E; }
html body #editor-url-status-icon .url-status-ok:not(#love-h-a) svg { width: 18px; height: 18px; }

/* Mapa do evento: camada com os elementos (encolhe quando algo passaria da
   largura, para tudo caber); só os elementos e guias recebem o mouse. */
.floorplan-camada { position: absolute; left: 0; top: 0; transform-origin: 0 0; pointer-events: none; }
.floorplan-camada > .floorplan-el, .floorplan-camada > .floorplan-guia { pointer-events: auto; }
html body .floorplan-camada > .floorplan-el.is-linha:not(#love-h-a) { pointer-events: none; }

/* Réguas e guias: só na planta expandida. */
.floorplan-regua, .floorplan-regua-canto, .floorplan-guia, .floorplan-guia-temporaria { display: none; }
.floorplan-wrap.is-expandida .floorplan-regua, .floorplan-wrap.is-expandida .floorplan-regua-canto { display: block; position: absolute; z-index: 55; background-color: #FFFFFF; user-select: none; overflow: hidden; }
.floorplan-wrap.is-expandida .floorplan-regua-canto { border-right: 1px solid #E4E4E7; border-bottom: 1px solid #E4E4E7; }
.floorplan-wrap.is-expandida .floorplan-regua-h { cursor: row-resize; border-bottom: 1px solid #E4E4E7; background-image: linear-gradient(to right, #A1A1AA 1px, transparent 1px), linear-gradient(to right, #D4D4D8 1px, transparent 1px); background-size: var(--passo-maior) 10px, var(--passo-menor) 5px; background-position: var(--origem) bottom, var(--origem) bottom; background-repeat: repeat-x; }
.floorplan-wrap.is-expandida .floorplan-regua-v { cursor: col-resize; border-right: 1px solid #E4E4E7; background-image: linear-gradient(to bottom, #A1A1AA 1px, transparent 1px), linear-gradient(to bottom, #D4D4D8 1px, transparent 1px); background-size: 10px var(--passo-maior), 5px var(--passo-menor); background-position: right var(--origem), right var(--origem); background-repeat: repeat-y; }
.floorplan-regua span { position: absolute; font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 9px; line-height: 1; color: #71717A; pointer-events: none; }
.floorplan-regua-h span { left: calc(var(--p) + 3px); top: 2px; }
.floorplan-regua-v span { top: calc(var(--p) + 3px); left: 2px; writing-mode: vertical-rl; transform: rotate(180deg); }
/* A planta expandida começa depois das réguas. */
html body .floorplan-wrap.is-expandida #floorplan-canvas:not(#love-h-a) { margin-left: 20px; margin-top: 20px; }
/* Guia: linha fina ciano presa na planta; a faixa em volta ajuda a pegar. */
.floorplan-wrap.is-expandida .floorplan-guia { display: block; position: absolute; z-index: 25; }
.floorplan-guia.is-h { left: 0; right: 0; height: 7px; margin-top: -3px; cursor: row-resize; }
.floorplan-guia.is-v { top: 0; bottom: 0; width: 7px; margin-left: -3px; cursor: col-resize; }
.floorplan-guia::after { content: ''; position: absolute; background: #00B4D8; }
.floorplan-guia.is-h::after { left: 0; right: 0; top: 3px; height: 1px; }
.floorplan-guia.is-v::after { top: 0; bottom: 0; left: 3px; width: 1px; }
.floorplan-wrap.is-expandida .floorplan-guia-temporaria { display: block; position: absolute; z-index: 56; background: #00B4D8; pointer-events: none; }
.floorplan-guia-temporaria.is-h { height: 1px; }
.floorplan-guia-temporaria.is-v { width: 1px; }
/* Drawer de adicionar/editar convidado: cabeçalho branco (como o da
   plataforma, com a linha fina embaixo) e o corpo no fundo das telas. */
html body #drawer-add-guest:not(#love-h-a) { background: var(--bg-dashboard, #F4F6F7) !important; }
html body #drawer-add-guest > div:first-child:not(#love-h-a) { background: #FFFFFF !important; border-bottom: 1px solid #E4E4E7 !important; align-items: center; }
html body #drawer-add-guest > .guest-drawer-rodape:not(#love-h-a) { background: var(--bg-dashboard, #F4F6F7) !important; border-top-color: #E4E4E7 !important; }
/* Favoritado: o círculo fica só branco, sem a linha azul (o coração rosa basta). */
html body #tab-b2b :is(.btn-toggle-card-fav, #btn-b2b-profile-favorite):has(svg:not(.fill-none)):not(#love-h-a) { border-color: transparent !important; }

/* Pop-up "Mensagem" para o fornecedor (como o modelo enviado). */
html body .b2b-mensagem-caixa:not(#love-h-a) { position: relative; width: 100%; max-width: 720px; padding: 32px 24px 24px; background: #FFFFFF; border: 0; border-radius: 24px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
html body .b2b-mensagem-fechar:not(#love-h-a) { position: absolute; top: 24px; right: 24px; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; color: #18181B; cursor: pointer; }
.b2b-mensagem-fechar svg { width: 24px; height: 24px; }
.b2b-mensagem-topo { display: flex; align-items: center; gap: 24px; margin-bottom: 24px; padding-right: 40px; }
.b2b-mensagem-foto { width: 88px; height: 88px; border-radius: 999px; object-fit: cover; background: #F4F4F5; flex-shrink: 0; }
html body .b2b-mensagem-empresa:not(#love-h-a) { margin: 0; font-size: 26px; font-weight: 500; color: #18181B; letter-spacing: -0.02em; line-height: 1.2; }
.b2b-mensagem-produto { margin: 6px 0 0; font-size: 14px; color: #52525B; }
.b2b-mensagem-rotulo { display: block; margin-bottom: 12px; font-size: 16px; font-weight: 500; color: #18181B; }
.b2b-mensagem-campo { position: relative; padding: 12px; border: 1px solid #D4D4D8; border-radius: 10px; background: #FFFFFF; transition: border-color .15s; }
.b2b-mensagem-campo:focus-within { border-color: #181D24; }
.b2b-mensagem-campo.is-erro { border: 2px solid #C81E1E; padding: 11px; }
.b2b-mensagem-saudacao { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #18181B; margin-bottom: 8px; }
html body .b2b-mensagem-chip:not(#love-h-a) { display: inline-flex; align-items: center; padding: 8px 12px; background: #E4E7EC; border: 0; border-radius: 6px; font-size: 14px; color: #18181B; line-height: 1.2; }
html body #b2b-mensagem-texto:not(#love-h-a) { display: block; width: 100%; min-height: 96px; padding: 0; border: 0; outline: none; resize: none; overflow: hidden; background: transparent; font-size: 14px; line-height: 1.5; color: #18181B; box-shadow: none; }
#b2b-mensagem-texto::placeholder { color: #71717A; }
.b2b-mensagem-alerta { display: none; position: absolute; top: 10px; right: 10px; width: 20px; height: 20px; color: #C81E1E; }
.b2b-mensagem-campo.is-erro .b2b-mensagem-alerta { display: block; }
.b2b-mensagem-linha { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 8px; min-height: 18px; }
.b2b-mensagem-erro { margin: 0; font-size: 14px; color: #C81E1E; }
.b2b-mensagem-contador { margin: 0 0 0 auto; font-size: 12px; color: #52525B; }
.b2b-mensagem-sugestoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
html body .b2b-mensagem-sugestoes .b2b-mensagem-chip:not(#love-h-a) { cursor: pointer; }
html body .b2b-mensagem-sugestoes .b2b-mensagem-chip:not(#love-h-a):hover { background: #D9DDE3; }
.b2b-mensagem-rodape { display: flex; align-items: center; justify-content: flex-end; gap: 24px; margin-top: 56px; }
html body .b2b-mensagem-cancelar:not(#love-h-a) { padding: 0; background: transparent; border: 0; font-size: 15px; font-weight: 500; color: #18181B; cursor: pointer; }
html body .b2b-mensagem-cancelar:not(#love-h-a):hover { text-decoration: underline; }
html body .b2b-mensagem-enviar:not(#love-h-a) { height: 40px; padding: 0 20px; border: 0; border-radius: 999px; background: #183b54; font-size: 15px; font-weight: 500; color: #FFFFFF; cursor: pointer; }
html body .b2b-mensagem-enviar:not(#love-h-a):hover { background: #122c3f; }
html body .b2b-mensagem-enviar:not(#love-h-a):disabled { background: #E4E4E7; color: #A1A1AA; cursor: default; }
@media (max-width: 640px) {
  html body .b2b-mensagem-caixa:not(#love-h-a) { padding: 24px 16px 16px; border-radius: 16px; }
  .b2b-mensagem-topo { gap: 16px; }
  .b2b-mensagem-foto { width: 64px; height: 64px; }
  html body .b2b-mensagem-empresa:not(#love-h-a) { font-size: 20px; }
  .b2b-mensagem-rodape { margin-top: 32px; }
}
/* Meus convidados: a caixa da tabela ocupa a altura da tela (espaço em branco
   quando há poucos convidados) e o "Mostrar / Página" fica embaixo, perto do
   rodapé. */
html body #view-event-os-dashboard .dashboard-content-wrapper:has(> #tab-rsvp.active):not(#love-h-a) { display: flex; flex-direction: column; }
html body #tab-rsvp.active:not(#love-h-a) { display: flex !important; flex-direction: column; flex: 1 0 auto; }
html body #tab-rsvp.active > div.px-8:not(#love-h-a) { flex: 1 0 auto; display: flex; flex-direction: column; }
html body #tab-rsvp.active .rsvp-caixa-abaixo-das-abas:not(#love-h-a) { flex: 1 0 auto; display: flex; flex-direction: column; }
html body #tab-rsvp.active .rsvp-caixa-abaixo-das-abas > .overflow-x-auto:not(#love-h-a) { flex: 1 0 auto; }
html body #tab-rsvp.active #rsvp-pagination:not(#love-h-a) { margin-top: auto; }
/* Aqui o respiro antes do rodapé é menor, para a caixa chegar perto dele. */
html body #view-event-os-dashboard .dashboard-main-area:has(#tab-rsvp.active) > .rodape-respiro:not(#love-h-a) { flex-basis: 2rem; height: 2rem; }
/* Drawer de presente: igual ao do convidado — cabeçalho branco com a linha
   fina embaixo e o corpo no fundo das telas. */
html body #drawer-add-gift:not(#love-h-a) { background: var(--bg-dashboard, #F4F6F7) !important; }
html body #drawer-add-gift > div:first-child:not(#love-h-a) { background: #FFFFFF !important; border-bottom: 1px solid #E4E4E7 !important; align-items: center; }

/* Drawer do convidado › remover acompanhante: o X numa caixinha com borda
   (como era antes); no hover só o fundo fica cinza, o X continua preto. */
html body button.guest-acompanhante-remover:not(#love-h-a) { width: 43px; height: 43px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #18181B; cursor: pointer; transition: background-color .15s; }
html body button.guest-acompanhante-remover:not(#love-h-a):hover { background: #F4F4F5; border-color: #E4E4E7; color: #18181B; }
html body button.guest-acompanhante-remover:not(#love-h-a) svg { width: 16px; height: 16px; }
/* Restrição sem escolha: o texto "Restrições alimentares" em cinza claro. */
.restricao-botao .restricao-texto.is-placeholder { color: #A1A1AA; }

/* Pop-up "Mensagem" (ajustes): foto no formato do perfil do fornecedor
   (quadrado com cantos arredondados), produto + etiqueta da categoria, um campo
   só (o "Olá, Empresa" é texto no topo, sem caixinha). */
.b2b-mensagem-foto { border-radius: 16px !important; border: 1px solid #E4E4E7; }
.b2b-mensagem-produto-linha { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.b2b-mensagem-produto-linha .b2b-mensagem-produto { margin: 0; }
html body .b2b-mensagem-saudacao:not(#love-h-a) { display: block; margin: 0 0 6px; font-size: 14px; color: #18181B; }
html body #modal-b2b-mensagem #b2b-mensagem-texto:not(#love-h-a) { border: 0 !important; background: transparent !important; box-shadow: none !important; outline: none !important; padding: 0 !important; border-radius: 0 !important; }

/* Mapa do evento › cor da mesa (pop-up do lápis): linha igual à do inspector
   do Convite digital; o tampo da mesa fica na cor escolhida. */
html body #modal-floorplan-table .floorplan-cor-mesa-linha:not(#love-h-a) { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0.875rem 0 0 !important; }
html body #modal-floorplan-table .floorplan-cor-mesa-linha .inspector-field-label-plain:not(#love-h-a) { font-size: 0.8125rem; font-weight: 400; color: #333333; }
html body #modal-floorplan-table .color-alpha-popover:not(#love-h-a) { right: 0; left: auto; z-index: 80; }
html body .floorplan-mesa-core.tem-cor:not(#love-h-a) { background: var(--cor-da-mesa) !important; }
html body .floorplan-mesa-core.tem-cor:not(#love-h-a), html body .floorplan-mesa-core.tem-cor:not(#love-h-a) * { color: var(--cor-texto-da-mesa) !important; }

/* Meus convidados: abaixo do último convidado, as linhas finas continuam até o
   fim da caixa (mesma cor e mesma altura das linhas da tabela). */
html body .tabela-com-linhas-vazias:not(#love-h-a) { background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.04) 0, rgba(0, 0, 0, 0.04) 1px, transparent 1px, transparent var(--altura-da-linha, 51px)); background-position: 0 var(--fim-das-linhas, 0px); background-size: 100% calc(100% - var(--fim-das-linhas, 0px)); background-repeat: no-repeat; }
html body .tabela-com-linhas-vazias:not(#love-h-a) { background-repeat: repeat-x; }

/* Mapa do evento › lista: caixinha de marcar no lugar do selo de status, e o
   "Mover convidado para" perto do nome. */
html body .floorplan-guest-card .floorplan-guest-card-marcar:not(#love-h-a) { flex-shrink: 0; margin: 0; cursor: pointer; }
html body #floorplan-guests-panel .floorplan-guest-card.is-seated:not(#love-h-a), html body #floorplan-guests-panel .floorplan-guest-card.is-marcado:not(#love-h-a) { cursor: pointer; }
.floorplan-mover-para { position: fixed; z-index: 200; width: 280px; max-height: 360px; overflow-y: auto; padding: 8px 0; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.floorplan-mover-titulo { margin: 4px 0 6px; padding: 0 16px; font-size: 15px; font-weight: 600; color: #18181B; text-align: center; }
html body .floorplan-mover-mesa:not(#love-h-a) { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 12px 16px; background: transparent; border: 0; border-top: 1px solid #F4F4F5; text-align: left; cursor: pointer; }
html body .floorplan-mover-mesa:not(#love-h-a):hover { background: #F4F6F7; }
.floorplan-mover-texto { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.floorplan-mover-texto strong { font-size: 14px; font-weight: 600; color: #18181B; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.floorplan-mover-texto span { font-size: 12px; color: #71717A; }
.floorplan-mover-radio { width: 20px; height: 20px; flex-shrink: 0; border: 1.5px solid #18181B; border-radius: 999px; position: relative; }
.floorplan-mover-mesa.is-atual .floorplan-mover-radio::after { content: ''; position: absolute; inset: 3.5px; border-radius: 999px; background: #18181B; }
.floorplan-mover-vazio { margin: 0; padding: 12px 16px; font-size: 13px; color: #71717A; }

/* Mapa do evento › lista de quem está na mesa (ícone de lista do menuzinho). */
.floorplan-lista-mesa { width: 300px; padding: 0; }
.floorplan-lista-topo { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 10px; }
.floorplan-lista-topo p { margin: 0; font-size: 15px; font-weight: 600; color: #18181B; }
.floorplan-lista-topo span { font-size: 13px; color: #71717A; }
html body .floorplan-lista-pessoa:not(#love-h-a) { display: flex; align-items: center; gap: 14px; width: 100%; padding: 12px 16px; background: transparent; border: 0; border-top: 1px solid #F4F4F5; text-align: left; cursor: pointer; }
html body .floorplan-lista-pessoa:not(#love-h-a):hover { background: #F4F6F7; }
.floorplan-lista-numero { width: 16px; flex-shrink: 0; font-size: 14px; color: #18181B; text-align: center; }
.floorplan-lista-nome { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.floorplan-lista-nome strong { font-size: 14px; font-weight: 500; color: #18181B; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.floorplan-lista-nome span { font-size: 12px; color: #71717A; }
.floorplan-lista-setas { display: flex; color: #3F3F46; flex-shrink: 0; }
.floorplan-lista-setas svg { width: 16px; height: 16px; }
/* "Mover convidado para" e lista da mesa: mesma fonte e tamanho do
   "Convidados" / "+ Adicionar" da lista ao lado (Plus Jakarta Sans 13px 600). */
html body .floorplan-mover-para:not(#love-h-a), html body .floorplan-mover-para:not(#love-h-a) * { font-family: 'Plus Jakarta Sans', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; letter-spacing: normal !important; }
html body .floorplan-mover-para .floorplan-mover-titulo:not(#love-h-a), html body .floorplan-mover-para .floorplan-lista-topo p:not(#love-h-a) { font-size: 13px !important; font-weight: 600 !important; color: #71717A !important; text-align: left; }
html body .floorplan-mover-para .floorplan-mover-texto strong:not(#love-h-a), html body .floorplan-mover-para .floorplan-lista-nome strong:not(#love-h-a) { font-size: 13px !important; font-weight: 600 !important; }
html body .floorplan-mover-para .floorplan-lista-topo span:not(#love-h-a) { font-size: 13px !important; font-weight: 600 !important; color: #71717A !important; }

/* Lista da mesa: linhas sem clique; só o X no fim tira a pessoa da mesa. */
html body .floorplan-lista-pessoa:not(#love-h-a) { cursor: default; }
html body .floorplan-lista-pessoa:not(#love-h-a):hover { background: transparent; }
html body .floorplan-lista-tirar:not(#love-h-a) { width: 28px; height: 28px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #3F3F46; cursor: pointer; }
html body .floorplan-lista-tirar:not(#love-h-a):hover { background: #F4F6F7; color: #18181B; }
.floorplan-lista-tirar svg { width: 16px; height: 16px; }

/* Configurações: caixas centralizadas; "Meu evento" em linhas rótulo/valor. */
.config-evento-dados { margin: 0; display: flex; flex-direction: column; }
.config-evento-linha { display: grid; grid-template-columns: 180px 1fr; gap: 16px; padding: 12px 0; border-top: 1px solid #F4F4F5; }
.config-evento-linha:first-child { border-top: 0; padding-top: 0; }
.config-evento-linha dt { font-size: 13px; font-weight: 500; color: #71717A; }
.config-evento-linha dd { margin: 0; font-size: 14px; color: #18181B; min-width: 0; overflow-wrap: anywhere; }
.config-evento-vazio { color: #A1A1AA; }
.config-evento-link { color: #183b54; text-decoration: none; }
.config-evento-link:hover { text-decoration: underline; }
.config-evento-organizadores { display: flex; flex-direction: column; gap: 8px; }
.config-evento-organizador { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.config-evento-organizador strong { font-weight: 600; }
.config-evento-organizador span { font-size: 13px; color: #71717A; }
.config-evento-organizador em { font-style: normal; font-size: 11px; font-weight: 500; color: #52525B; background: #F4F4F5; border-radius: 6px; padding: 2px 6px; }
html body .config-btn-desativar:not(#love-h-a) { height: 40px; padding: 0 16px; background: #FFFFFF; border: 1px solid #FCA5A5; border-radius: 8px; color: #DC2626; font-size: 14px; font-weight: 600; cursor: pointer; }
html body .config-btn-desativar:not(#love-h-a):hover { border-color: #DC2626; }
@media (max-width: 640px) { .config-evento-linha { grid-template-columns: 1fr; gap: 4px; } }

/* Configurações › Informações: campos no modelo "Suas informações" do Hub. */
html body #config-painel-conta .conta-perfil-topo:not(#love-h-a) { flex-direction: column; align-items: flex-start; gap: 20px; }
html body .conta-info-campos:not(#love-h-a) { display: flex; flex-direction: column; gap: 1.25rem; width: 100%; }
html body .conta-info-campos .field-label:not(#love-h-a) { display: block; font-size: 0.9375rem; font-weight: 500; color: #18181B; margin-bottom: 0.45rem; }
html body .conta-info-campos .field-input:not(#love-h-a) { width: 100%; height: 44px; font-size: 0.9375rem; }
html body .conta-info-campos .field-input:disabled:not(#love-h-a) { background: #F4F4F5; color: #71717A; cursor: not-allowed; }
.conta-obrigatorio { color: #DC2626; }
html body button.informacoes-salvar-rodape.settings-zola-salvar:not(#love-h-a) { width: 100%; height: 44px; margin-top: 0.25rem; padding: 0; }
html body #config-painel-conta .conta-perfil-topo:not(#love-h-a) { margin-bottom: 20px; }
html body #config-painel-conta #btn-save-user-settings.settings-zola-salvar:not(#love-h-a) { height: 44px !important; min-height: 44px !important; width: 100% !important; padding: 0 !important; font-size: 14px !important; font-weight: 600 !important; border-radius: 8px !important; background: #FAFAFA !important; color: #181D24 !important; border: 1px solid #E4E4E7 !important; }

/* Meus presentes: o cartão inteiro abre o editar; três bolinhas no canto da
   foto com Editar presente / Duplicar / Remover. Sem seleção em massa. */
html body #view-event-os-dashboard #btn-gifts-delete-selected:not(#love-h-a) { display: none !important; }
.gift-card-clicavel { cursor: pointer; }
html body .gift-card-mais:not(#love-h-a) { position: absolute; top: 10px; right: 10px; z-index: 5; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: #FFFFFF; border: 0; border-radius: 999px; color: #52525B; cursor: pointer; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); }
html body .gift-card-mais:not(#love-h-a):hover { color: #18181B; }
.gift-card-mais svg { width: 16px; height: 16px; }
.gift-card-menu { position: fixed; z-index: 200; min-width: 180px; padding: 6px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); display: flex; flex-direction: column; }
html body .gift-card-menu button:not(#love-h-a) { display: flex; align-items: center; width: 100%; height: 36px; padding: 0 10px; background: transparent; border: 0; border-radius: 8px; font-size: 14px; color: #18181B; text-align: left; cursor: pointer; }
html body .gift-card-menu button:not(#love-h-a):hover { background: #F4F6F7; }
html body .gift-card-menu button.is-perigo:not(#love-h-a) { color: #DC2626; }

/* Meus presentes › Listas prontas (no lugar da grade de presentes). */
#btn-gifts-listas-prontas.is-ativo { border-color: #181D24 !important; color: #181D24 !important; }
.listas-prontas-voltar { display: inline-flex; align-items: center; gap: 6px; padding: 0; margin-bottom: 8px; background: transparent; border: 0; font-size: 14px; font-weight: 500; color: #3F3F46; cursor: pointer; }
.listas-prontas-voltar:hover { color: #18181B; text-decoration: underline; }
.listas-prontas-voltar svg { width: 16px; height: 16px; }
.listas-prontas-secao { margin-top: 24px; }
.listas-prontas-secao h3 { margin: 0 0 16px; font-size: 18px; font-weight: 700; color: #18181B; letter-spacing: -0.025em; }
.listas-prontas-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 20px; }
html body .lista-pronta-card:not(#love-h-a) { display: flex; flex-direction: column; padding: 0; overflow: hidden; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; text-align: left; cursor: pointer; transition: border-color .15s; }
html body .lista-pronta-card:not(#love-h-a):hover { border-color: #A1A1AA; }
.lista-pronta-card img { width: 100%; height: 150px; object-fit: cover; display: block; background: #F4F4F5; }
.lista-pronta-corpo { display: flex; flex-direction: column; padding: 14px 16px 16px; }
.lista-pronta-corpo strong { font-size: 16px; font-weight: 600; color: #18181B; }
.lista-pronta-qtd { margin-top: 2px; font-size: 13px; color: #71717A; padding-bottom: 12px; border-bottom: 1px solid #E4E4E7; }
.lista-pronta-total { display: flex; flex-direction: column; margin-top: 10px; font-size: 13px; color: #71717A; }
.lista-pronta-total b { font-size: 14px; font-weight: 700; color: #18181B; }

/* Drawer de presente › valor extra (checkbox abaixo do valor). */
.gift-valor-extra { display: flex; align-items: flex-start; gap: 10px; margin-top: -4px; font-size: 13px; color: #3F3F46; cursor: pointer; line-height: 1.4; }
.gift-valor-extra input { margin-top: 1px; flex-shrink: 0; }

/* Sem drawers na plataforma: todos abrem como pop-up centralizado na tela
   (adicionar/editar convidado, criar presente, despesa, comprovante, mesa). */
html body :is(.guest-add-drawer, .gift-drawer, .budget-expense-drawer, .table-drawer):not(#love-h-a) {
  top: 50%; left: 50%; right: auto; bottom: auto;
  width: calc(100vw - 32px); max-width: 560px; height: auto; max-height: calc(100vh - 48px);
  transform: translate(-50%, -50%) !important; transition: none !important;
  border: 1px solid #E4E4E7; border-radius: 10px !important; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
  overflow: hidden; flex-direction: column;
}
/* Criar presente: caixa larga com duas colunas — campos à esquerda e a
   imagem à direita; o salvar ocupa a largura toda embaixo. */
html body #drawer-add-gift.gift-drawer:not(#love-h-a) { max-width: 880px; }
html body #form-add-gift:not(#love-h-a) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 32px; row-gap: 20px; align-items: start; }
html body #form-add-gift:not(#love-h-a) > * { grid-column: 1; margin: 0 !important; }
html body #form-add-gift:not(#love-h-a) > .gift-campo-imagem { grid-column: 2; grid-row: 1 / span 8; }

/* Criar/editar presente no celular: tela cheia, igual à ficha de
   "Adicionar convidado" (Meus Convidados) — seta de voltar + título
   centralizado + Salvar no topo — em vez do pop-up centralizado flutuante
   de cima (pensado pro desktop). */
.gift-drawer-icone-voltar { display: none !important; }
.gift-drawer-salvar-topo { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .gift-drawer:not(#love-h-a) {
    top: 0 !important; left: 0 !important; right: 0 !important; bottom: var(--bottom-bar-height-mobile, 64px) !important;
    width: 100% !important; max-width: none !important; height: auto !important; max-height: none !important;
    transform: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  }
  html body .gift-drawer-backdrop:not(#love-h-a) { display: none !important; }
  html body .gift-drawer-cab:not(#love-h-a) {
    padding: calc(env(safe-area-inset-top, 0px) + 12px) 16px 12px !important; align-items: center !important;
  }
  html body .gift-drawer-cab > div:not(#love-h-a) { flex: 1 1 auto; min-width: 0; text-align: center; }
  html body .gift-drawer-cab #drawer-gift-heading-title:not(#love-h-a) { font-size: 17px !important; font-weight: 600 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html body .gift-drawer-icone-x:not(#love-h-a) { display: none !important; }
  html body .gift-drawer-icone-voltar:not(#love-h-a) { display: block !important; width: 24px; height: 24px; }
  /* Seta de voltar idêntica à de Adicionar convidado (.ficha-voltar): 44x44,
     sem fundo/hover e na mesma cor escura — a base do botão (desktop) vinha
     cinza-claro e menor. */
  html body #btn-close-gift-drawer:not(#love-h-a) {
    width: 44px !important; height: 44px !important; padding: 0 !important; margin: 0 !important;
    background: transparent !important; border-radius: 0 !important; color: #18181B !important; order: -1;
  }
  html body #btn-close-gift-drawer:not(#love-h-a):hover { background: transparent !important; color: #18181B !important; }
  /* !important em tudo: .gift-drawer > div:first-child > button (o "X" genérico
     dos 4 tipos de drawer) também bate nesse botão, por ser irmão do "X"
     dentro do mesmo cabeçalho, e isso encolhia o Salvar pra um círculo 34px. */
  html body .gift-drawer-salvar-topo:not(#love-h-a) {
    display: inline-flex !important; align-items: center !important; justify-content: center !important; flex-shrink: 0 !important;
    width: auto !important; height: 44px !important; padding: 0 18px !important; margin: 0 !important;
    background: #FFFFFF !important; border: 1px solid rgba(0, 0, 0, 0.06) !important; border-radius: 8px !important;
    font-family: inherit; font-size: 16px !important; font-weight: 600; color: #183b54 !important; cursor: pointer;
  }
  html body #form-add-gift:not(#love-h-a) { display: flex !important; flex-direction: column; }
  html body #form-add-gift:not(#love-h-a) > .gift-campo-imagem { grid-row: auto; }
  html body .gift-campo-salvar:not(#love-h-a) { display: none !important; }
}
html body #form-add-gift:not(#love-h-a) > .gift-campo-salvar { grid-column: 1 / -1; }
@media (max-width: 720px) {
  html body #form-add-gift:not(#love-h-a) { grid-template-columns: minmax(0, 1fr); }
  html body #form-add-gift:not(#love-h-a) > .gift-campo-imagem { grid-column: 1; grid-row: auto; }
}

#btn-gifts-listas-prontas.is-ativo { background: #F4F6F7 !important; }
/* Mapa do evento vazio: ícone de "+" maior. */
html body .floorplan-empty-hint:not(#love-h-a) svg { width: 48px !important; height: 48px !important; }
/* "Deseja salvar antes de sair?": o Sair fica só como texto (sem caixa);
   o Salvar continua botão. */
html body #modal-unsaved-changes .modal-sair-acoes:not(#love-h-a) { align-items: center; gap: 8px; }
html body #modal-unsaved-changes #btn-unsaved-discard.modal-sair-btn:not(#love-h-a) { flex: 0 0 auto; padding: 0 20px; background: transparent !important; border: 0 !important; box-shadow: none !important; color: #18181B; }
html body #modal-unsaved-changes #btn-unsaved-discard.modal-sair-btn:not(#love-h-a):hover { text-decoration: underline; background: transparent !important; }
/* "Deseja salvar antes de sair?": X no canto (sai sem salvar) e o Salvar igual
   ao "Salvar alterações" de Informações. */
html body #modal-unsaved-changes .modal-sair-sem-salvar:not(#love-h-a) { position: relative; }
html body #modal-unsaved-changes .modal-sair-titulo:not(#love-h-a) { padding-right: 32px; }
html body .modal-sair-fechar:not(#love-h-a) { position: absolute; top: 16px; right: 16px; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #52525B; cursor: pointer; }
html body .modal-sair-fechar:not(#love-h-a):hover { color: #18181B; background: #F4F6F7; }
.modal-sair-fechar svg { width: 18px; height: 18px; }
html body #modal-unsaved-changes #btn-unsaved-save.informacoes-salvar-rodape:not(#love-h-a) { width: 100%; height: 44px; }
/* Elementos (Convite digital): hover das caixinhas na cor do fundo das telas. */
html body:not([data-theme="dark"]) #builder-elements-panel .builder-el-item:not(#love-h-a):hover { background: var(--bg-dashboard, #F4F6F7) !important; }
/* Menu do presente: ícone à esquerda de cada opção. */
html body .gift-card-menu button:not(#love-h-a) { gap: 10px; }
.gift-card-menu button svg { width: 16px; height: 16px; flex-shrink: 0; }
/* Personalizar evento › Informações: uma linha bem clara de ponta a ponta
   separando cada bloco (nome do evento, endereço do site, data e horário…),
   igual à da lista de convidados do Mapa do evento. */
html body #editor-form-data > div:not(:last-child):not(.hidden):not(#love-h-a) { position: relative; }
html body #editor-form-data > div:not(:last-child):not(.hidden):not(#love-h-a)::after { content: ''; position: absolute; left: -24px; right: -24px; bottom: -12px; height: 1px; background: rgba(0, 0, 0, 0.05); pointer-events: none; }

/* Meus presentes: situação (disponível/comprado) embaixo do valor. */
html body .gift-situacao:not(#love-h-a) { display: inline-flex; margin-top: 6px; }
/* Situação do presente: cinza, sem bolinha verde (disponível e comprado iguais). */
html body .gift-status-badge.gift-situacao:not(#love-h-a) { color: #71717A !important; font-size: 12px; font-weight: 400; padding: 0; background: transparent; }
html body .gift-status-badge.gift-situacao:not(#love-h-a)::before { display: none !important; }

/* Meus presentes › Criar lista: página das listas prontas por cima, com a
   seta de voltar no cabeçalho e o card "Adicionar presente" primeiro. */
html body .gifts-listas-voltar:not(#love-h-a) { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0; margin-left: -6px; background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; flex-shrink: 0; }
html body .gifts-listas-voltar:not(#love-h-a):hover { background: #F4F6F7; }
.gifts-listas-voltar svg { width: 20px; height: 20px; }
html body .gifts-listas-voltar[hidden]:not(#love-h-a) { display: none; }
html body #gifts-top-search-bar.gifts-acoes-escondidas:not(#love-h-a) { display: none !important; }
.listas-prontas-secao + .listas-prontas-secao { padding-top: 32px; border-top: 1px solid #E4E4E7; margin-top: 32px; }
.listas-prontas-secao:first-child { margin-top: 0; }
.listas-prontas-secao h3 { margin-bottom: 4px !important; }
.listas-prontas-sub { margin: 0 0 20px; font-size: 14px; color: #71717A; }
html body .lista-pronta-criar:not(#love-h-a) { align-items: center; justify-content: center; gap: 6px; min-height: 260px; padding: 24px; border-style: dashed; text-align: center; }
.lista-pronta-criar-icone { width: 48px; height: 48px; border-radius: 999px; background: #F4F6F7; display: inline-flex; align-items: center; justify-content: center; color: #18181B; margin-bottom: 6px; }
.lista-pronta-criar-icone svg { width: 22px; height: 22px; }
.lista-pronta-criar strong { font-size: 16px; font-weight: 600; color: #18181B; }
.lista-pronta-criar .lista-pronta-qtd { border: 0; padding: 0; }

/* Co-anfitriões: subtítulo logo abaixo da linha do cabeçalho, 24px antes da tabela. */
html body #editor-form-about .coanfitrioes-sub:not(#love-h-a) { margin: 0 0 24px !important; font-size: 14px; line-height: 1.5; color: #71717A; }
html body #editor-form-about .coanfitrioes-sub + #organizadores-caixa:not(#love-h-a) { margin-top: 0 !important; }

/* Adicione uma lista › lista aberta: caminho no cabeçalho e os presentes da lista. */
html body #gifts-header-title[hidden]:not(#love-h-a) { display: none !important; }
.lista-detalhe-topo { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.lista-detalhe-resumo { margin: 0; font-size: 14px; color: #71717A; }
.lista-detalhe-resumo b { color: #18181B; font-weight: 700; font-variant-numeric: tabular-nums; }
.lista-item-card { display: flex; flex-direction: column; overflow: hidden; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; }
.lista-item-card img { width: 100%; height: 150px; object-fit: cover; display: block; background: #F4F4F5; }
.lista-item-card strong { font-size: 15px; font-weight: 600; color: #18181B; line-height: 1.35; }
.lista-item-preco { margin-top: 6px; font-size: 14px; font-weight: 600; color: #18181B; font-variant-numeric: tabular-nums; }

/* Configurações da lista › Suas listas */
html body #suas-listas-tabela .suas-listas-nome:not(#love-h-a) { font-weight: 600; color: #18181B; }
html body #suas-listas-tabela .suas-listas-valor:not(#love-h-a) { font-variant-numeric: tabular-nums; white-space: nowrap; }
html body .suas-listas-campo:not(#love-h-a) { width: 100%; max-width: 260px; height: 36px; padding: 0 10px; border: 1px solid #181D24; border-radius: 8px; font: inherit; font-weight: 500; color: #18181B; background: #FFFFFF; outline: none; box-shadow: none; }
html body #gifts-panel-settings .suas-listas-caixa:not(#love-h-a) { margin-top: 0 !important; }

/* Criar presente: "Habilitar contribuição coletiva" no mesmo formato do valor extra. */
.gift-contribuicao-texto { display: flex; flex-direction: column; gap: 2px; }
.gift-contribuicao-descricao { font-size: 12px; color: #71717A; }
html body .gift-valor-extra + .gift-contribuicao-coletiva:not(#love-h-a) { margin-top: 4px; }

/* Meus presentes: total da lista fora do cabeçalho, no canto esquerdo de cima. */
.gifts-total-linha { margin: 0 0 20px; font-size: 14px; color: #71717A; }
.gifts-total-linha span { font-weight: 700; color: #18181B; font-variant-numeric: tabular-nums; }
html body .gifts-total-linha[hidden]:not(#love-h-a) { display: none; }

/* Configurações › Informações: foto à esquerda e os campos à direita
   (nome e sobrenome lado a lado); Contas conectadas e Privacidade no modelo do Hub. */
html body .conta-perfil-linha:not(#love-h-a) { display: flex; align-items: flex-start; gap: 32px; }
html body .conta-perfil-linha .conta-info-campos:not(#love-h-a) { flex: 1; min-width: 0; }
html body .conta-nome-linha:not(#love-h-a) { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 639px) {
  html body .conta-perfil-linha:not(#love-h-a) { flex-direction: column; gap: 20px; }
  html body .conta-nome-linha:not(#love-h-a) { grid-template-columns: 1fr; gap: 1.25rem; }
}
html body .settings-zola-bloco:not(#love-h-a) { display: flex; flex-direction: column; gap: 0.35rem; margin-top: 2rem; }
html body .settings-zola-bloco .settings-secao-titulo--painel:not(#love-h-a) { font-size: 1.125rem; font-weight: 700; letter-spacing: -0.025em; color: #18181B; margin: 0; }
html body .settings-zola-sub:not(#love-h-a) { font-size: 0.875rem; color: #71717A; margin: 0; }
html body .settings-zola-vazio:not(#love-h-a) { font-size: 0.875rem; color: #71717A; margin: 0; }
html body .settings-login-linha:not(#love-h-a) { display: flex; align-items: center; gap: 0.75rem; }
html body .settings-login-icone:not(#love-h-a) { width: 36px; height: 36px; border-radius: 8px; border: 1px solid #E4E4E7; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; background: #FFFFFF; }
html body .settings-login-nome:not(#love-h-a) { font-size: 0.875rem; font-weight: 600; color: #18181B; margin: 0; }
html body .settings-login-email:not(#love-h-a) { font-size: 0.8125rem; color: #71717A; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body .settings-login-data:not(#love-h-a) { margin: 0 0 0 auto; font-size: 0.8125rem; color: #71717A; white-space: nowrap; }
html body .settings-login-google[hidden]:not(#love-h-a),
html body .settings-google-acoes[hidden]:not(#love-h-a),
html body .settings-google-conectar[hidden]:not(#love-h-a),
html body .settings-google-msg[hidden]:not(#love-h-a),
html body .settings-zola-vazio[hidden]:not(#love-h-a),
html body #settings-password-card[hidden]:not(#love-h-a),
html body .conta-senha-msg[hidden]:not(#love-h-a) { display: none !important; }
html body .settings-google-acoes:not(#love-h-a) { margin-top: 0.75rem; }
html body .settings-google-desconectar:not(#love-h-a) { border: none; background: none; padding: 0; font-family: inherit; font-size: 0.875rem; font-weight: 600; color: #18181B; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
html body .settings-google-desconectar:disabled:not(#love-h-a) { opacity: 0.6; cursor: default; }
html body .settings-google-conectar:not(#love-h-a) { display: inline-flex; align-items: center; gap: 0.6rem; height: 44px; padding: 0 1.1rem; margin-top: 0.75rem; border: 1px solid #E4E4E7; border-radius: 8px; background: #FFFFFF; font-family: inherit; font-size: 0.875rem; font-weight: 600; color: #18181B; cursor: pointer; }
html body .settings-google-conectar:hover:not(#love-h-a) { border-color: #181D24; }
html body .settings-google-msg:not(#love-h-a),
html body .conta-senha-msg:not(#love-h-a) { font-size: 0.8125rem; color: #1E9E5E; margin: 0.75rem 0 0; }
html body .conta-senha-msg:not(#love-h-a) { margin: 0; }
html body .settings-google-msg.is-erro:not(#love-h-a),
html body .conta-senha-msg.is-erro:not(#love-h-a) { color: #DC2626; }
html body .conta-card-titulo:not(#love-h-a) { font-size: 1rem; font-weight: 700; color: #18181B; margin: 0; letter-spacing: -0.025em; }
html body .conta-card-sub:not(#love-h-a) { font-size: 0.8125rem; color: #71717A; margin: 0.15rem 0 1.25rem; }
html body #config-painel-privacidade .settings-switch-row:not(#love-h-a) { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
html body #config-painel-privacidade .settings-switch-label:not(#love-h-a) { font-size: 0.875rem; font-weight: 600; color: #18181B; margin: 0; }
html body #config-painel-privacidade .settings-switch-desc:not(#love-h-a) { font-size: 0.8125rem; color: #71717A; margin: 0.15rem 0 0; }
html body .conta-mfa-btn:not(#love-h-a) { flex-shrink: 0; height: 38px; padding: 0 14px; }
html body .conta-mfa-btn:disabled:not(#love-h-a) { opacity: 0.6; }
body[data-theme="dark"] .settings-login-icone { border-color: #404040 !important; }
body[data-theme="dark"] .settings-login-nome, body[data-theme="dark"] .settings-google-desconectar, body[data-theme="dark"] .conta-card-titulo { color: #FFFFFF !important; }
body[data-theme="dark"] .settings-google-conectar { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }

/* Meu evento: Desativar à direita (botão claro, sem vermelho), ícone de abrir
   o site no fim da linha e o papel (Criador…) alinhado à direita. */
html body .config-evento-desativar:not(#love-h-a) { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
html body .config-evento-desativar[hidden]:not(#love-h-a) { display: none; }
html body .config-btn-desativar:not(#love-h-a) { flex-shrink: 0; height: 38px; padding: 0 14px; border: 1px solid #E4E4E7; color: #18181B; background: #FFFFFF; }
html body .config-btn-desativar:not(#love-h-a):hover { border-color: #181D24; color: #181D24; background: #FFFFFF; }
@media (max-width: 640px) { html body .config-evento-desativar:not(#love-h-a) { flex-direction: column; align-items: flex-start; gap: 16px; } }
.config-evento-site { display: flex; align-items: center; gap: 12px; }
.config-evento-site .config-evento-link { min-width: 0; overflow-wrap: anywhere; }
.config-evento-abrir { margin-left: auto; flex-shrink: 0; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; color: #52525B; }
.config-evento-abrir:hover { color: #181D24; background: #F4F6F7; }
.config-evento-abrir svg { width: 18px; height: 18px; }
html body .config-evento-organizador:not(#love-h-a) { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: nowrap; }
.config-evento-organizador-quem { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; min-width: 0; }
.config-evento-organizador em { flex-shrink: 0; }

/* Listas prontas: enquanto a foto (assets/listaN.jpg) não existe, fundo cinza no lugar. */
img.sem-foto { visibility: visible; background: #F4F4F5; }

/* Adicione uma lista: "Total da lista:" à esquerda e o valor à direita, na mesma linha. */
html body .lista-pronta-total:not(#love-h-a) { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 8px; }

/* Pop-up do convidado › página "Adicionar acompanhante" e resumo na principal. */
.guest-titulo-linha { display: flex; align-items: center; gap: 8px; min-width: 0; }
html body .guest-voltar:not(#love-h-a) { width: 32px; height: 32px; margin-left: -6px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; flex-shrink: 0; }
html body .guest-voltar:not(#love-h-a):hover { background: #F4F6F7; }
html body .guest-voltar[hidden]:not(#love-h-a),
html body #guest-pagina-principal[hidden]:not(#love-h-a),
html body #guest-pagina-acompanhantes[hidden]:not(#love-h-a) { display: none !important; }
.guest-voltar svg { width: 20px; height: 20px; }
html body #guest-companions-list > .guest-companion-row:first-child:not(#love-h-a) { border-top: 0; padding-top: 0; margin-top: 0; }
html body #guest-pagina-acompanhantes .guest-add-acompanhante:not(#love-h-a) { margin-top: 16px; }
.guest-acompanhantes-resumo:empty { display: none; }
.guest-acompanhantes-resumo { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.guest-acompanhantes-resumo-titulo { margin: 0 0 2px; font-size: 13px; font-weight: 700; color: #3F3F46; }
html body .guest-acompanhante-resumo-item:not(#love-h-a) { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; height: 40px; padding: 0 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-size: 14px; color: #18181B; text-align: left; cursor: pointer; }
html body .guest-acompanhante-resumo-item:not(#love-h-a):hover { border-color: #181D24; }
.guest-acompanhante-resumo-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.guest-acompanhante-resumo-item em { font-style: normal; font-size: 12px; color: #71717A; flex-shrink: 0; }

/* Pop-up do convidado › página de acompanhantes: Voltar e Salvar à direita. */
html body .guest-rodape-acompanhantes:not(#love-h-a) { display: flex; justify-content: flex-end; align-items: center; gap: 8px; width: 100%; }
html body .guest-rodape-acompanhantes[hidden]:not(#love-h-a) { display: none !important; }
html body .guest-drawer-rodape.na-pagina-acompanhantes #btn-save-guest:not(#love-h-a),
html body .guest-drawer-rodape.na-pagina-acompanhantes #guest-remove-wrap:not(#love-h-a),
html body .guest-drawer-rodape.na-pagina-acompanhantes #guest-remove-confirm:not(#love-h-a) { display: none !important; }
html body .guest-rodape-botao:not(#love-h-a) { height: 40px; padding: 0 18px; border-radius: 8px; font-size: 14px; font-weight: 600; }

/* Mapa expandido: menus de Formas e Adicionar item por cima da régua. */
html body .floorplan-formatos:not(.hidden):not(#love-h-a), html body .floorplan-formas-menu:not(.hidden):not(#love-h-a) { z-index: 90; }

/* Mapa › Formas › Conector: vários trechos ligados, marcados clique a clique. */
#floorplan-canvas.is-conectando, #floorplan-canvas.is-conectando * { cursor: crosshair !important; }
.floorplan-linha-svg polyline { fill: none; }
.floorplan-linha-svg polyline.traco { stroke-linejoin: round; }
.floorplan-conector-ao-vivo { position: absolute; left: 0; top: 0; z-index: 35; pointer-events: none; overflow: visible; }
.floorplan-conector-ao-vivo polyline { fill: none; stroke: #181D24; stroke-width: 2px; stroke-linecap: round; stroke-linejoin: round; }
.floorplan-conector-ao-vivo circle { fill: #FFFFFF; stroke: #181D24; stroke-width: 1.5px; }

/* Pop-up do presente: Voltar (texto) e Salvar pequeno no canto direito; sem Duplicar. */
html body .gift-rodape-acoes:not(#love-h-a) { display: flex; justify-content: flex-end; align-items: center; gap: 16px; }
html body .gift-voltar-texto:not(#love-h-a) { padding: 0; background: transparent; border: 0; font-size: 14px; font-weight: 600; color: #3F3F46; cursor: pointer; }
html body .gift-voltar-texto:not(#love-h-a):hover { color: #181D24; text-decoration: underline; }
html body .gift-salvar-pequeno:not(#love-h-a) { width: auto !important; flex: 0 0 auto !important; height: 40px !important; padding: 0 20px !important; }

/* Pop-up do presente mais baixo: espaços e descrição menores. */
html body #drawer-add-gift > div:first-child:not(#love-h-a) { padding-top: 18px !important; padding-bottom: 14px !important; }
html body #drawer-add-gift > div:nth-child(2):not(#love-h-a) { padding-top: 18px !important; padding-bottom: 18px !important; }
html body #form-add-gift:not(#love-h-a) { row-gap: 14px; }
html body #gift-description-input:not(#love-h-a) { min-height: 72px !important; height: 72px !important; }
html body #form-add-gift > .gift-campo-salvar:not(#love-h-a) { padding-top: 14px !important; }

/* Pop-up do presente: valor embaixo da imagem; a descrição ocupa a coluna
   da esquerda até a mesma altura em que a imagem termina. */
html body #form-add-gift:not(#love-h-a) { align-items: stretch; }
html body #form-add-gift:not(#love-h-a) > :first-child { grid-column: 1; grid-row: 1; }
html body #form-add-gift:not(#love-h-a) > .gift-campo-imagem { grid-column: 2; grid-row: 1 / span 2; }
html body #form-add-gift:not(#love-h-a) > :has(#gift-description-input) { grid-column: 1; grid-row: 2; display: flex; flex-direction: column; }
html body #form-add-gift > :has(#gift-description-input) #gift-description-input:not(#love-h-a) { flex: 1 1 auto; height: auto !important; min-height: 72px !important; }
html body #form-add-gift:not(#love-h-a) > :has(#gift-price-input) { grid-column: 2; grid-row: 3; }
html body #form-add-gift:not(#love-h-a) > .gift-valor-extra:not(.gift-contribuicao-coletiva) { grid-column: 1; grid-row: 3; align-self: end; }
html body #form-add-gift:not(#love-h-a) > .gift-contribuicao-coletiva { grid-column: 1 / -1; grid-row: 4; }
html body #form-add-gift:not(#love-h-a) > .gift-campo-salvar { grid-row: 5; }
@media (max-width: 720px) {
  html body #form-add-gift:not(#love-h-a) > * { grid-column: 1 !important; grid-row: auto !important; }
}

/* Vaquinha (crowdfunding): só na coluna da esquerda, terminando na linha da descrição, texto justificado. */
html body #form-add-gift:not(#love-h-a) > .gift-contribuicao-coletiva { grid-column: 1; }
html body #form-add-gift .gift-contribuicao-texto:not(#love-h-a), html body #form-add-gift .gift-contribuicao-descricao:not(#love-h-a) { text-align: justify; }

/* Pop-up do presente: vaquinha já paga — valor bloqueado e progresso embaixo. */
html body #gift-price-input.is-bloqueado:not(#love-h-a) { background: #F4F4F5 !important; color: #71717A !important; cursor: not-allowed; }
html body .gift-vaquinha-progresso[hidden]:not(#love-h-a) { display: none !important; }
html body .gift-vaquinha-progresso:not(#love-h-a) { margin-top: 10px !important; }
html body .gift-vaquinha-progresso .gift-vaquinha-info:not(#love-h-a) { font-size: 12px; margin-top: 6px; }
html body .gift-contribuicao-coletiva.is-bloqueado:not(#love-h-a) { opacity: 0.6; cursor: not-allowed; }

/* ==========================================================================
   Fornecedores › Solicitações de orçamento
   - Tabela vazia como Meus convidados: só as linhas, até o fim da tela.
   - "Criar nova" abre a solicitação na própria página, uma etapa de cada vez
     (modelo de Adicionar novo produto do Hub): título grande à esquerda e a
     caixa à direita; Cancelar/Voltar e Continuar embaixo, fora da caixa.
   ========================================================================== */
html body #view-event-os-dashboard .dashboard-content-wrapper:has(> #tab-b2b.active #b2b-pedidos-view:not(.hidden)):not(#love-h-a) { display: flex; flex-direction: column; }
html body #tab-b2b.active:has(#b2b-pedidos-view:not(.hidden)):not(#love-h-a) { display: flex !important; flex-direction: column; flex: 1 0 auto; }
html body #b2b-pedidos-view:not(.hidden):not(#love-h-a) { display: flex; flex-direction: column; flex: 1 0 auto; }
html body:not(.rfp-editor-aberto) #rfp-caixa:not(#love-h-a) { flex: 1 0 auto; display: flex; flex-direction: column; }
html body #rfp-caixa > .overflow-x-auto:not(#love-h-a) { flex: 1 0 auto; }
html body #view-event-os-dashboard .dashboard-main-area:has(#b2b-pedidos-view:not(.hidden)) > .rodape-respiro:not(#love-h-a) { flex-basis: 2rem; height: 2rem; }
html body.rfp-editor-aberto #rfp-caixa:not(#love-h-a),
html body.rfp-editor-aberto #rfp-lista-aviso:not(#love-h-a) { display: none !important; }

html body .rfp-voltar-seta:not(#love-h-a) { width: 32px; height: 32px; margin-left: -6px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; flex-shrink: 0; }
html body .rfp-voltar-seta:not(#love-h-a):hover { background: #F4F6F7; }
html body .rfp-voltar-seta[hidden]:not(#love-h-a) { display: none; }
.rfp-voltar-seta svg { width: 20px; height: 20px; }

html body .rfp-editor[hidden]:not(#love-h-a) { display: none !important; }
html body .rfp-editor:not(#love-h-a) { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); column-gap: 3rem; align-items: start; width: 100%; max-width: 1040px; margin: 0 auto; }
.rfp-etapa-num { margin: 0.35rem 0 0.75rem; font-size: 13px; font-weight: 600; color: #71717A; }
html body .rfp-etapa-titulo:not(#love-h-a) { margin: 0; font-size: 2rem; font-weight: 700; line-height: 1.2; letter-spacing: -0.03em; color: #18181B; }
.rfp-etapa-sub { margin: 1rem 0 0; font-size: 0.875rem; line-height: 1.6; color: #52525B; }
html body .rfp-caixa-form:not(#love-h-a) { padding: 1.5rem; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; }
html body .rfp-caixa-form .rfp-corpo:not(#love-h-a) { padding: 0; max-height: none; overflow: visible; }
html body .rfp-caixa-form .rfp-corpo > .rfp-tela > :first-child:not(#love-h-a) { margin-top: 0; }
html body .rfp-editor .rfp-rodape:not(#love-h-a) { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; padding: 1.25rem 0 0; background: transparent; border: none; }
html body .rfp-editor .rfp-erro-geral:not(#love-h-a) { margin: 0 auto 0 0; }
html body .rfp-voltar-texto:not(#love-h-a) { border: none; background: none; padding: 0 0.5rem; font-family: inherit; font-size: 0.875rem; font-weight: 600; color: #52525B; cursor: pointer; }
html body .rfp-voltar-texto:not(#love-h-a):hover { color: #181D24; }
html body .rfp-editor .rfp-rodape .btn-primary:not(#love-h-a) { min-width: 120px; height: 44px; }
@media (max-width: 900px) {
  html body .rfp-editor:not(#love-h-a) { display: flex; flex-direction: column; }
  html body .rfp-etapa-titulo:not(#love-h-a) { font-size: 1.5rem; }
  .rfp-intro { margin-bottom: 1rem; }
}

/* Adicione uma lista › lista aberta: "Selecionar lista" com as cores do
   "Salvar" de Informações, em tamanho normal de botão. */
html body button.lista-selecionar:not(#love-h-a) {
  display: inline-flex; align-items: center; justify-content: center; width: auto; height: 42px; padding: 0 16px;
  background: #FAFAFA; border: 1px solid #E4E4E7; border-radius: 8px; color: #181D24; font-family: inherit; font-size: 14px; font-weight: 600;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04); cursor: pointer; white-space: nowrap; flex-shrink: 0;
}
html body button.lista-selecionar:not(#love-h-a):hover { background: #FAFAFA; border-color: #181D24; box-shadow: 0 3px 10px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.05); }
body[data-theme="dark"] button.lista-selecionar { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }

/* Nova solicitação de orçamento: mais respiro abaixo do cabeçalho e Categoria
   em drop-down (mesmo do campo Categoria do Hub). */
html body .rfp-editor:not(#love-h-a) { padding-top: 2.5rem; }
.rfp-cat-rotulo { display: block; margin: 0 0 8px; font-size: 14px; font-weight: 600; color: #18181B; }
.rfp-cat-select { position: relative; }
html body .rfp-cat-gatilho:not(#love-h-a) { width: 100%; height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 14px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 14px; color: #18181B; text-align: left; cursor: pointer; box-shadow: none; }
html body .rfp-cat-gatilho:not(#love-h-a):hover,
html body .rfp-cat-select.is-open .rfp-cat-gatilho:not(#love-h-a) { border-color: #181D24; }
.rfp-cat-vazio { color: #A1A1AA; }
.rfp-cat-seta { width: 16px; height: 16px; flex-shrink: 0; color: #A1A1AA; transition: transform .15s ease; }
.rfp-cat-select.is-open .rfp-cat-seta { transform: rotate(180deg); }
html body .rfp-cat-painel:not(#love-h-a) { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 30; max-height: 360px; overflow-y: auto; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,0.08); }
html body .rfp-cat-opcao:not(#love-h-a) { display: block; width: 100%; padding: 0.8rem 0.9rem; background: #FFFFFF; border: 0; border-bottom: 1px solid #F4F4F5; font-family: inherit; font-size: 14px; font-weight: 600; color: #3F3F46; text-align: left; cursor: pointer; }
html body .rfp-cat-opcao:last-child:not(#love-h-a) { border-bottom: 0; }
html body .rfp-cat-opcao:not(#love-h-a):hover { background: #FAFAFA; }
html body .rfp-cat-opcao.ativa:not(#love-h-a) { background: #EBF4FF; color: #18181B; }
body[data-theme="dark"] .rfp-cat-rotulo { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-cat-gatilho { background: #333333 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-cat-painel { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .rfp-cat-opcao { background: #252525 !important; color: #D4D4D8 !important; border-bottom-color: #404040 !important; }
body[data-theme="dark"] .rfp-cat-opcao.ativa { background: #333333 !important; color: #FFFFFF !important; }

/* Co-anfitriões › convite: Cancelar e Enviar convite à direita (Enviar por último). */
html body .org-convite-acoes:not(#love-h-a) { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; padding-top: 0.25rem; }
html body .org-convite-cancelar:not(#love-h-a) { background: transparent; border: 0; padding: 0 0.25rem; font-family: inherit; font-size: 0.875rem; font-weight: 600; color: #52525B; cursor: pointer; }
html body .org-convite-cancelar:not(#love-h-a):hover { color: #181D24; }
body[data-theme="dark"] .org-convite-cancelar { color: #D4D4D8 !important; }

/* Personalizar evento › Co-anfitriões: única aba do Personalizar com rodapé
   (Aparência e Informações continuam sem). */
@media (min-width: 768px) and (hover: hover), (min-width: 768px) and (pointer: fine), (min-width: 768px) and (min-height: 501px) {
  html body.editor-split-mode.organizadores-sem-previa #view-event-os-dashboard .dashboard-main-area > footer#dashboard-footer:not(#love-h-a) { display: block !important; }
}
html body.editor-split-mode.organizadores-sem-previa #view-event-os-dashboard .dashboard-main-area > .rodape-respiro:not(#love-h-a) { display: block !important; }

/* Lista aberta: "Adicionar este presente" embaixo do valor de cada presente. */
.lista-item-card .lista-pronta-corpo { flex: 1 1 auto; }
.lista-item-card .lista-item-preco { margin-bottom: 12px; }
html body button.lista-item-adicionar:not(#love-h-a) { margin-top: auto; align-self: stretch; height: 36px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 13px; font-weight: 600; color: #3F3F46; cursor: pointer; box-shadow: none; }
html body button.lista-item-adicionar:not(#love-h-a):hover:not(:disabled) { border-color: #181D24; color: #181D24; }
html body button.lista-item-adicionar:disabled:not(#love-h-a) { cursor: default; }
html body button.lista-item-adicionar.is-adicionado:not(#love-h-a) { background: #F4F4F5; border-color: #E4E4E7; color: #71717A; }
.lista-item-erro { margin-top: 6px; font-size: 12px; color: #DC2626; }
.lista-item-erro[hidden] { display: none; }
body[data-theme="dark"] button.lista-item-adicionar { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] button.lista-item-adicionar.is-adicionado { background: #333333 !important; color: #A1A1AA !important; }

/* Configurações › Preferências (igual a Preferências do Hub): linhas com
   toggle que salva na hora e "Salvo" ao lado. */
html body #config-painel-preferencias .prefs-email-lista:not(#love-h-a) { margin-top: 0.75rem; }
html body #config-painel-preferencias .prefs-email-linha:not(#love-h-a) { display: flex; align-items: center; gap: 1rem; padding: 0.9rem 0; border-top: 1px solid #E4E4E7; }
html body #config-painel-preferencias .prefs-email-linha:last-child:not(#love-h-a) { padding-bottom: 0; }
html body #config-painel-preferencias .prefs-email-textos:not(#love-h-a) { flex: 1; min-width: 0; }
html body #config-painel-preferencias .prefs-email-nome:not(#love-h-a) { font-size: 0.875rem; font-weight: 500; color: #18181B; margin: 0; }
html body #config-painel-preferencias .prefs-email-desc:not(#love-h-a) { font-size: 0.8125rem; color: #71717A; margin: 0.15rem 0 0; }
html body #config-painel-preferencias .prefs-email-salvo:not(#love-h-a) { font-size: 0.75rem; font-weight: 500; color: #1E9E5E; opacity: 0; transition: opacity .2s ease; white-space: nowrap; }
html body #config-painel-preferencias .prefs-email-salvo.is-erro:not(#love-h-a) { color: #DC2626; }
html body #config-painel-preferencias .prefs-email-salvo.is-visivel:not(#love-h-a) { opacity: 1; }
html body #config-painel-preferencias .prefs-email-switch .settings-switch-track:not(#love-h-a) { background: #E4E4E7; }
html body #config-painel-preferencias .prefs-email-switch input:checked ~ .settings-switch-track:not(#love-h-a) { background: #181D24; }
body[data-theme="dark"] #config-painel-preferencias .prefs-email-linha { border-top-color: #404040 !important; }
body[data-theme="dark"] #config-painel-preferencias .prefs-email-nome { color: #FFFFFF !important; }
body[data-theme="dark"] #config-painel-preferencias .prefs-email-desc { color: #A1A1AA !important; }

/* Pop-ups Adicionar convidado e Novo presente: todo branco (fundo, rodapé e
   caixa da foto), sem o cinza #F4F6F7. Só no tema claro. */
html body:not([data-theme="dark"]) #drawer-add-guest:not(#love-h-a),
html body:not([data-theme="dark"]) #drawer-add-gift:not(#love-h-a),
html body:not([data-theme="dark"]) #drawer-add-guest .border-t:not(#love-h-a),
html body:not([data-theme="dark"]) #drawer-add-guest > .guest-drawer-rodape:not(#love-h-a),
html body:not([data-theme="dark"]) #drawer-add-gift .gift-rodape-acoes:not(#love-h-a),
html body:not([data-theme="dark"]) #drawer-add-gift #gift-image-dropzone:not(#love-h-a) { background: #FFFFFF !important; background-color: #FFFFFF !important; }

/* Meus presentes vazio: frase + dois cards (Adicionar presente / Adicionar lista pronta). */
html body .presentes-vazio:not(#love-h-a) { display: flex; flex-direction: column; align-items: center; padding: 40px 24px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; }
.presentes-vazio-texto { margin: 0 0 20px; font-size: 14px; font-weight: 500; color: #71717A; }
.presentes-vazio-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 16px; width: 100%; justify-content: center; }
html body .presentes-vazio .lista-pronta-criar:not(#love-h-a) { min-height: 240px; }
@media (max-width: 560px) { .presentes-vazio-cards { grid-template-columns: minmax(0, 1fr); } }
body[data-theme="dark"] .presentes-vazio { background: #252525 !important; border-color: #404040 !important; }

/* Fornecedores › Contratos: abas Solicitações / Meus contratos (24px até a
   tabela), lista de solicitações ocupando até o rodapé e tela de propostas. */
html body #view-event-os-dashboard .dashboard-content-wrapper:has(> #tab-b2b.active #b2b-contracted-view:not(.hidden)):not(#love-h-a) { display: flex; flex-direction: column; }
html body #tab-b2b.active:has(#b2b-contracted-view:not(.hidden)):not(#love-h-a) { display: flex !important; flex-direction: column; flex: 1 0 auto; }
html body #b2b-contracted-view:not(.hidden):not(#love-h-a) { display: flex; flex-direction: column; flex: 1 0 auto; }
html body #b2b-contracted-view .contratos-painel:not(#love-h-a) { margin-top: 24px; }
html body #contratos-painel-solicitacoes:not(.hidden):not(#love-h-a),
html body #rfp-lista-wrap:not(.hidden):not(#love-h-a) { display: flex; flex-direction: column; flex: 1 0 auto; }
html body #rfp-lista-wrap .rfp-lista-aviso:not(#love-h-a) { margin-bottom: 16px; }
html body #rfp-lista tr.rfp-linha-clicavel:not(#love-h-a) { cursor: pointer; }
html body #rfp-lista tr.rfp-linha-clicavel:not(#love-h-a):hover > td { background: #FAFAFA; }
.rfp-propostas-topo { display: flex; align-items: center; gap: 8px; margin-bottom: 24px; }
html body .rfp-propostas-titulo:not(#love-h-a) { margin: 0; font-size: 16px; font-weight: 700; color: #18181B; letter-spacing: -0.025em; }
.rfp-propostas-sub { margin: 2px 0 0; font-size: 13px; color: #71717A; }
.rfp-forn { display: inline-flex; align-items: center; gap: 10px; }
.rfp-forn-foto { width: 32px; height: 32px; border-radius: 8px; object-fit: cover; flex-shrink: 0; background: #F4F4F5; }
.rfp-forn-inicial { display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; color: #52525B; }
.rfp-col-inclui { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 320px; }
html body .rfp-proposta-enviada:not(#love-h-a) { background: #EBF4FF; color: #183b54; }
html body .rfp-proposta-vista:not(#love-h-a) { background: #F4F4F5; color: #52525B; }
html body .rfp-proposta-aceita:not(#love-h-a) { background: #ECFDF3; color: #067647; }
html body .rfp-proposta-recusada:not(#love-h-a) { background: #FEF3F2; color: #B42318; }
html body button.rfp-conversar:not(#love-h-a) { height: 32px; padding: 0 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 13px; font-weight: 600; color: #3F3F46; cursor: pointer; white-space: nowrap; }
html body button.rfp-conversar:not(#love-h-a):hover { border-color: #181D24; color: #181D24; }
body[data-theme="dark"] .rfp-propostas-titulo { color: #FFFFFF !important; }
body[data-theme="dark"] #rfp-lista tr.rfp-linha-clicavel:hover > td { background: #2A2A2A !important; }
body[data-theme="dark"] button.rfp-conversar { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }

/* Nova solicitação: Continuar / Publicar como o Continuar do Hub
   (Adicionar novo produto): fundo #181D24, texto branco. */
html body .rfp-editor .rfp-rodape button.btn-primary:not(#love-h-a) { background: #181D24 !important; border: 1px solid #181D24 !important; color: #FFFFFF !important; }
html body .rfp-editor .rfp-rodape button.btn-primary:not(#love-h-a):hover:not(:disabled) { background: #262D36 !important; border-color: #262D36 !important; color: #FFFFFF !important; }
html body .rfp-editor .rfp-rodape button.btn-primary:not(#love-h-a) * { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-editor .rfp-rodape button.btn-primary { background: #EBF4FF !important; border-color: #EBF4FF !important; color: #000000 !important; }

/* Nova solicitação: Título antes da Categoria; "(opcional)" na mesma linha
   do rótulo (CEP alinhado com Cidade); campo do "Outro" em celebração. */
html body .rfp-campo-titulo:not(#love-h-a) { height: 44px; padding: 0 14px; margin-bottom: 0; }
html body .rfp-cat-rotulo-categoria:not(#love-h-a) { margin-top: 20px; }
.rfp-rotulo-texto { display: block; line-height: 1.4; }
html body .rfp-campo-outro:not(#love-h-a) { margin-top: 12px; max-width: 360px; }

/* Nova solicitação, etapa 1: exemplos de título abaixo do subtítulo. */
html body .rfp-exemplos[hidden]:not(#love-h-a) { display: none; }
html body .rfp-exemplos:not(#love-h-a) { margin-top: 1.25rem; }
html body .rfp-exemplos-titulo:not(#love-h-a) { margin: 0 0 0.5rem; font-size: 0.875rem; font-weight: 600; color: #18181B; }
html body .rfp-exemplos ul:not(#love-h-a) { margin: 0; padding-left: 1.1rem; list-style: disc; display: flex; flex-direction: column; gap: 0.35rem; }
html body .rfp-exemplos li:not(#love-h-a) { font-size: 0.875rem; line-height: 1.5; color: #52525B; }
body[data-theme="dark"] .rfp-exemplos-titulo { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-exemplos li { color: #A1A1AA !important; }
/* "Exemplos de título" em negrito (outra regra do .rfp-intro p zerava o peso). */
html body #rfp-editor .rfp-intro p.rfp-exemplos-titulo:not(#love-h-a) { font-weight: 700 !important; }

/* Nova solicitação › Local: CEP | UF (pequena) | Cidade numa linha só. */
html body .rfp-grade-local:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) 72px minmax(0, 2fr); }
@media (max-width: 640px) { html body .rfp-grade-local:not(#love-h-a) { grid-template-columns: 72px minmax(0, 1fr); } html body .rfp-grade-local > .rfp-rotulo:first-child:not(#love-h-a) { grid-column: 1 / -1; } }
html body .rfp-grade-local .rfp-campo-uf:not(#love-h-a) { width: 100%; min-width: 0; text-align: center; }

/* UF em drop-down (2 letras): seta própria, sem o visual nativo. */
html body .rfp-grade-local select.rfp-campo-uf:not(#love-h-a) { appearance: none; -webkit-appearance: none; text-align: left; padding: 0 22px 0 10px; background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A1A1AA' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 6px center / 14px; cursor: pointer; }
body[data-theme="dark"] .rfp-grade-local select.rfp-campo-uf { background-color: #333333 !important; color: #FFFFFF !important; border-color: #404040 !important; }

/* Nova solicitação: erros no vermelho do coração de Favoritar (#c7305b);
   "horas" escrito ao lado do número de horas de serviço. */
html body #rfp-editor :is(.rfp-erro, .rfp-erro-geral):not(#love-h-a) { color: #c7305b !important; }
.rfp-horas-campo { display: inline-flex; align-items: center; gap: 10px; }
html body .rfp-horas-campo .rfp-campo:not(#love-h-a) { width: 88px; min-width: 0; }
.rfp-horas-sufixo { font-size: 14px; font-weight: 500; color: #3F3F46; }
body[data-theme="dark"] .rfp-horas-sufixo { color: #D4D4D8 !important; }

/* Nova solicitação › orçamento: De / Até em reais (opcional). */
.rfp-orcamento { display: grid; grid-template-columns: repeat(2, minmax(0, 200px)); gap: 12px; }
.rfp-moeda { position: relative; display: block; }
.rfp-moeda > span { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-size: 14px; color: #71717A; pointer-events: none; }
html body .rfp-moeda .rfp-campo:not(#love-h-a) { padding-left: 36px; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .rfp-orcamento { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Meus presentes vazio: a caixa ocupa a tela até o rodapé (como a tabela de
   Meus convidados), com a frase e os dois cards centralizados. */
html body #view-event-os-dashboard .dashboard-content-wrapper:has(> #tab-gifts.active #host-gifts-grid:not(.hidden) > .presentes-vazio):not(#love-h-a) { display: flex; flex-direction: column; }
html body #tab-gifts.active:has(#host-gifts-grid:not(.hidden) > .presentes-vazio):not(#love-h-a) { display: flex !important; flex-direction: column; flex: 1 0 auto; }
html body #tab-gifts.active > div:has(> #gifts-panel-products #host-gifts-grid:not(.hidden) > .presentes-vazio):not(#love-h-a) { flex: 1 0 auto; display: flex; flex-direction: column; }
html body #gifts-panel-products:has(> #host-gifts-grid:not(.hidden) > .presentes-vazio):not(#love-h-a) { flex: 1 0 auto; display: flex; flex-direction: column; }
html body #host-gifts-grid:not(.hidden):has(> .presentes-vazio):not(#love-h-a) { flex: 1 0 auto; display: flex !important; flex-direction: column; }
html body #host-gifts-grid > .presentes-vazio:not(#love-h-a) { flex: 1 0 auto; justify-content: center; min-height: 420px; }
html body #view-event-os-dashboard .dashboard-main-area:has(#tab-gifts.active #host-gifts-grid:not(.hidden) > .presentes-vazio) > .rodape-respiro:not(#love-h-a) { flex-basis: 2rem; height: 2rem; }

/* Contratos › Solicitações: lista no modelo "All job posts" e propostas em
   cards (modelo "All proposals"). */
html body #rfp-caixa .rfp-posts:not(#love-h-a) { display: flex; flex-direction: column; }
.rfp-post { display: grid; grid-template-columns: minmax(0, 1fr) 140px 120px 40px; align-items: start; gap: 16px; padding: 22px 24px; border-bottom: 1px solid rgba(0, 0, 0, 0.06); cursor: pointer; }
.rfp-post:hover { background: #FAFAFA; }
html body button.rfp-post-titulo:not(#love-h-a) { display: block; max-width: 100%; padding: 0; background: none; border: 0; font-family: inherit; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; color: #18181B; text-align: left; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body button.rfp-post-titulo:not(#love-h-a):hover { text-decoration: underline; text-underline-offset: 3px; }
.rfp-post-criado { margin: 4px 0 0; font-size: 13px; color: #71717A; }
.rfp-post-situacao { margin: 14px 0 0; font-size: 13px; color: #3F3F46; }
.rfp-post-situacao b { font-weight: 600; color: #18181B; }
.rfp-post-num { display: flex; flex-direction: column; gap: 2px; padding-top: 2px; }
.rfp-post-num b { font-size: 14px; font-weight: 600; color: #18181B; font-variant-numeric: tabular-nums; }
.rfp-post-num span { font-size: 13px; color: #71717A; }
html body button.rfp-post-mais:not(#love-h-a) { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #3F3F46; cursor: pointer; }
html body button.rfp-post-mais:not(#love-h-a):hover { border-color: #181D24; color: #181D24; }
.rfp-post-mais svg { width: 18px; height: 18px; }
html body .rfp-post .rfp-menu button[data-rfp-acao]:not(#love-h-a) { color: #18181B !important; }
.rfp-posts-vazio { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 56px 24px; text-align: center; }
.rfp-posts-vazio p { margin: 0; font-size: 14px; color: #71717A; }
html body button.rfp-post-criar:not(#love-h-a) { height: 40px; padding: 0 16px; background: #181D24; border: 1px solid #181D24; border-radius: 8px; font-family: inherit; font-size: 14px; font-weight: 600; color: #FFFFFF; cursor: pointer; }
@media (max-width: 760px) {
  .rfp-post { grid-template-columns: minmax(0, 1fr) 40px; }
  .rfp-post-num { display: none; }
}
html body .rfp-propostas-abas:not(#love-h-a) { margin-bottom: 24px; }
.rfp-props { display: flex; flex-direction: column; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 10px; }
.rfp-prop { padding: 24px; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
.rfp-prop:last-child { border-bottom: 0; }
.rfp-prop-selos { display: flex; gap: 6px; margin-bottom: 14px; }
.rfp-selo { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; background: #EBF4FF; color: #183b54; font-size: 12px; font-weight: 600; }
.rfp-selo-aceita { background: #ECFDF3; color: #067647; }
.rfp-selo-recusada { background: #F4F4F5; color: #52525B; }
.rfp-prop-topo { display: flex; align-items: center; gap: 14px; }
.rfp-prop-foto { width: 52px; height: 52px; border-radius: 999px; object-fit: cover; flex-shrink: 0; background: #F4F4F5; }
.rfp-prop-inicial { display: inline-flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 600; color: #52525B; }
.rfp-prop-quem { flex: 1; min-width: 0; }
.rfp-prop-nome { margin: 0; font-size: 15px; font-weight: 600; color: #18181B; }
.rfp-prop-local { margin: 2px 0 0; font-size: 13px; color: #71717A; }
.rfp-prop-acoes { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
html body button.rfp-prop-aceitar:not(#love-h-a) { height: 36px; padding: 0 14px; background: #181D24; border: 1px solid #181D24; border-radius: 8px; font-family: inherit; font-size: 13px; font-weight: 600; color: #FFFFFF; cursor: pointer; white-space: nowrap; }
html body button.rfp-prop-aceitar:not(#love-h-a):hover { background: #262D36; }
html body .rfp-prop-acoes button.rfp-conversar:not(#love-h-a) { height: 36px; }
.rfp-prop-dados { display: flex; flex-wrap: wrap; gap: 12px 40px; margin: 18px 0 0; }
.rfp-prop-dados p { margin: 0; display: flex; flex-direction: column; gap: 2px; }
.rfp-prop-dados b { font-size: 14px; font-weight: 600; color: #18181B; font-variant-numeric: tabular-nums; }
.rfp-prop-dados span { font-size: 12px; color: #71717A; }
.rfp-prop-msg { margin: 16px 0 0; font-size: 14px; line-height: 1.55; color: #3F3F46; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rfp-prop-inclui { margin: 10px 0 0; font-size: 14px; line-height: 1.55; color: #3F3F46; }
.rfp-prop-inclui b { font-weight: 600; color: #18181B; }
html body button.rfp-prop-recusar:not(#love-h-a) { margin-top: 14px; padding: 0; background: none; border: 0; font-family: inherit; font-size: 13px; font-weight: 600; color: #71717A; cursor: pointer; }
html body button.rfp-prop-recusar:not(#love-h-a):hover { color: #181D24; }
@media (max-width: 640px) { .rfp-prop-topo { flex-wrap: wrap; } .rfp-prop-acoes { width: 100%; } }
body[data-theme="dark"] .rfp-post:hover { background: #2A2A2A !important; }
body[data-theme="dark"] button.rfp-post-titulo, body[data-theme="dark"] .rfp-post-situacao b, body[data-theme="dark"] .rfp-post-num b, body[data-theme="dark"] .rfp-prop-nome, body[data-theme="dark"] .rfp-prop-dados b, body[data-theme="dark"] .rfp-prop-inclui b { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-props { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .rfp-prop, body[data-theme="dark"] .rfp-post { border-bottom-color: #404040 !important; }
body[data-theme="dark"] button.rfp-post-mais { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }

/* Criar solicitação: abas Criar nova / Minhas solicitações, com 24px até o
   conteúdo (editor ou lista); a lista vai até o rodapé. */
html body #b2b-pedidos-view .rfp-editor:not(#love-h-a) { padding-top: 24px; }
html body #pedidos-painel-minhas:not(.hidden):not(#love-h-a) { display: flex; flex-direction: column; flex: 1 0 auto; margin-top: 24px; }
html body #pedidos-abas.hidden + #pedidos-painel-minhas:not(#love-h-a) { margin-top: 0; }
html body #b2b-pedidos-view:has(#pedidos-abas.hidden) #rfp-propostas:not(#love-h-a) { margin-top: 0; }

/* Minhas solicitações: linha sem clique; Mensagens, Propostas, botão
   "Ver propostas" / "Editar rascunho" e o ⋯. */
html body .rfp-post:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) 110px 140px 132px 36px; align-items: center; cursor: default; }
html body .rfp-post:not(#love-h-a):hover { background: transparent; }
html body .rfp-post p.rfp-post-titulo:not(#love-h-a) { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; color: #18181B; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body button.rfp-post-botao:not(#love-h-a) { height: 36px; padding: 0 14px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 13px; font-weight: 600; color: #18181B; cursor: pointer; white-space: nowrap; }
html body button.rfp-post-botao:not(#love-h-a):hover { border-color: #181D24; color: #181D24; }
@media (max-width: 760px) {
  html body .rfp-post:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) auto 36px; }
}
body[data-theme="dark"] .rfp-post p.rfp-post-titulo { color: #FFFFFF !important; }
body[data-theme="dark"] button.rfp-post-botao { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }

/* Remover / Excluir nunca em vermelho: o botão de confirmar dos pop-ups segue
   o padrão escuro dos outros botões (#181D24, texto branco); botões de
   remover e itens de menu ficam neutros. */
html body button.love-confirmar-perigo:not(#love-h-a) { background: #181D24 !important; border-color: #181D24 !important; color: #FFFFFF !important; }
html body button.love-confirmar-perigo:not(#love-h-a):hover:not(:disabled) { background: #262D36 !important; border-color: #262D36 !important; }
body[data-theme="dark"] button.love-confirmar-perigo { background: #EBF4FF !important; border-color: #EBF4FF !important; color: #000000 !important; }
html body #btn-confirm-delete-event:not(#love-h-a) { background: #181D24 !important; color: #FFFFFF !important; border-radius: 8px !important; box-shadow: none !important; }
html body #btn-confirm-delete-event:not(#love-h-a):hover { background: #262D36 !important; }
html body #btn-trigger-delete-event:not(#love-h-a) { background: #FFFFFF !important; border: 1px solid #E4E4E7 !important; color: #18181B !important; border-radius: 8px !important; box-shadow: none !important; }
html body #btn-trigger-delete-event:not(#love-h-a):hover { border-color: #181D24 !important; color: #181D24 !important; }
html body :is(#btn-delete-cover-img, #btn-delete-venue-img, #btn-delete-closing-img):not(#love-h-a):hover { background: #181D24 !important; }
html body .rfp-menu button[data-rfp-acao="excluir"]:not(#love-h-a) { color: #18181B !important; }

/* Botões e itens de "Remover/Excluir" em toda a plataforma: neutros (texto
   #18181B, borda #E4E4E7; no hover só escurece para #181D24). Vermelho fica
   só para mensagens de erro. */
html body :is(.floorplan-remove-btn, .inspector-list-item-remove, .inspector-list-item-remove-inline, .guest-comment-delete):not(#love-h-a):hover { background: #F4F4F5 !important; color: #181D24 !important; }
html body :is(.floorplan-seat-assignment-remove, .menu-order-row-delete, .floorplan-acao.acao-excluir):not(#love-h-a):hover { color: #181D24 !important; }
html body .btn-delete-text-block:not(#love-h-a):hover { background-color: #F4F4F5 !important; color: #181D24 !important; transform: none !important; }
html body button.color-alpha-remove-btn:not(#love-h-a), html body .color-alpha-remove-btn:not(#love-h-a) { color: #18181B !important; }
html body :is(button.guest-remove-sim, button.meus-eventos-excluir, button.guest-remove-lixeira, .config-btn-desativar, #view-event-os-dashboard .love-tabela-lixeira):not(#love-h-a) { border-color: #E4E4E7 !important; color: #18181B !important; }
html body :is(button.guest-remove-sim, button.meus-eventos-excluir, button.guest-remove-lixeira, .config-btn-desativar, #view-event-os-dashboard .love-tabela-lixeira):not(#love-h-a):hover { border-color: #181D24 !important; color: #181D24 !important; background: #FFFFFF !important; }
html body :is(.conv-menu .conv-menu-perigo, .gift-card-menu button.is-perigo):not(#love-h-a) { color: #18181B !important; }
body[data-theme="dark"] :is(.conv-menu .conv-menu-perigo, .gift-card-menu button.is-perigo, button.guest-remove-sim, button.meus-eventos-excluir, button.guest-remove-lixeira, .config-btn-desativar, .rfp-menu button) { color: #FFFFFF !important; }

/* Cancelar nunca dentro de caixa: só texto (cinza; no hover escurece). */
html body :is(#love-confirmar-cancelar, button.b2b-mensagem-cancelar, button.chat-msg-editor-cancelar, button.org-convite-cancelar, button.rfp-voltar-texto):not(#love-h-a) { background: transparent !important; border: 0 !important; box-shadow: none !important; padding-left: 0.5rem !important; padding-right: 0.5rem !important; color: #52525B !important; font-weight: 600 !important; }
html body :is(#love-confirmar-cancelar, button.b2b-mensagem-cancelar, button.chat-msg-editor-cancelar, button.org-convite-cancelar, button.rfp-voltar-texto):not(#love-h-a):hover { color: #181D24 !important; background: transparent !important; }
body[data-theme="dark"] :is(#love-confirmar-cancelar, .b2b-mensagem-cancelar, .chat-msg-editor-cancelar, .org-convite-cancelar, .rfp-voltar-texto) { color: #D4D4D8 !important; background: transparent !important; }

/* Propostas recebidas: as abas Criar nova / Minhas solicitações somem de verdade
   (o display das abas vencia o .hidden). */
html body #pedidos-abas.hidden:not(#love-h-a) { display: none !important; }

/* Confirmar remoção nos pop-ups: cinza claro, como o "Sim, deletar" do Hub
   (#F4F4F5, borda #E4E4E7, texto escuro; hover só escurece a borda). */
html body button.love-confirmar-perigo:not(#love-h-a) { background: #F4F4F5 !important; border: 1px solid #E4E4E7 !important; color: #18181B !important; box-shadow: none !important; }
html body button.love-confirmar-perigo:not(#love-h-a):hover:not(:disabled) { background: #F4F4F5 !important; border-color: #181D24 !important; color: #181D24 !important; }
body[data-theme="dark"] button.love-confirmar-perigo { background: #333333 !important; border-color: #404040 !important; color: #FFFFFF !important; }
html body #btn-confirm-delete-event:not(#love-h-a) { background: #F4F4F5 !important; border: 1px solid #E4E4E7 !important; color: #18181B !important; }
html body #btn-confirm-delete-event:not(#love-h-a):hover { background: #F4F4F5 !important; border-color: #181D24 !important; color: #181D24 !important; }

/* Minhas solicitações: título como link (só ele), campo de "Editar título" e
   a solicitação inteira na mesma caixa da lista. */
html body button.rfp-post-titulo.rfp-post-link:not(#love-h-a) { display: block; max-width: 100%; margin: 0; padding: 0; background: none; border: 0; font-family: inherit; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; color: #183b54; text-align: left; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: underline; text-decoration-color: rgba(24, 59, 84, 0.3); text-underline-offset: 4px; }
html body button.rfp-post-titulo.rfp-post-link:not(#love-h-a):hover { text-decoration-color: #183b54; }
html body input.rfp-post-titulo-input:not(#love-h-a) { width: 100%; max-width: 560px; height: 40px; font-size: 16px; font-weight: 600; }
.rfp-detalhe { padding: 24px; }
html body button.rfp-detalhe-voltar:not(#love-h-a) { display: inline-flex; align-items: center; gap: 4px; margin: 0 0 16px -4px; padding: 0; background: none; border: 0; font-family: inherit; font-size: 13px; font-weight: 600; color: #52525B; cursor: pointer; }
html body button.rfp-detalhe-voltar:not(#love-h-a):hover { color: #181D24; }
.rfp-detalhe-voltar svg { width: 16px; height: 16px; }
html body .rfp-detalhe-titulo:not(#love-h-a) { margin: 0; font-size: 20px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
.rfp-detalhe-meta { margin: 4px 0 0; font-size: 13px; color: #71717A; }
.rfp-detalhe-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 32px; margin: 24px 0 0; padding: 20px 0 0; border-top: 1px solid rgba(0, 0, 0, 0.06); }
.rfp-detalhe-grade dt { font-size: 12px; font-weight: 500; color: #71717A; }
.rfp-detalhe-grade dd { margin: 4px 0 0; font-size: 14px; color: #18181B; }
html body .rfp-detalhe-sub:not(#love-h-a) { margin: 24px 0 8px; font-size: 14px; font-weight: 600; color: #18181B; }
.rfp-detalhe-desc { margin: 0; font-size: 14px; line-height: 1.6; color: #3F3F46; white-space: pre-line; }
.rfp-detalhe-fotos { display: flex; flex-wrap: wrap; gap: 10px; }
.rfp-detalhe-fotos img { width: 120px; height: 90px; object-fit: cover; border-radius: 8px; border: 1px solid #E4E4E7; display: block; }
@media (max-width: 640px) { .rfp-detalhe-grade { grid-template-columns: minmax(0, 1fr); } }
body[data-theme="dark"] button.rfp-post-titulo.rfp-post-link { color: #EBF4FF !important; }
body[data-theme="dark"] .rfp-detalhe-titulo, body[data-theme="dark"] .rfp-detalhe-grade dd, body[data-theme="dark"] .rfp-detalhe-sub { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-detalhe-desc { color: #D4D4D8 !important; }

/* Solicitação aberta (modelo da página do job): cabeçalho com a seta numa
   caixinha à esquerda do título e "Ver propostas" à direita; descrição no
   topo e blocos separados por linhas finas. */
html body .rfp-detalhe:not(#love-h-a) { padding: 0; }
.rfp-detalhe-cabeca { display: flex; align-items: center; gap: 14px; padding: 22px 24px; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
html body button.rfp-detalhe-voltar:not(#love-h-a) { width: 36px; height: 36px; margin: 0; padding: 0; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #3F3F46; cursor: pointer; }
html body button.rfp-detalhe-voltar:not(#love-h-a):hover { border-color: #181D24; color: #181D24; }
html body .rfp-detalhe-voltar svg:not(#love-h-a) { width: 18px; height: 18px; }
.rfp-detalhe-nome { flex: 1; min-width: 0; }
html body .rfp-detalhe-titulo:not(#love-h-a) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body .rfp-detalhe-meta:not(#love-h-a) { margin: 2px 0 0; }
.rfp-detalhe-sec { padding: 22px 24px; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
.rfp-detalhe-sec:last-child { border-bottom: 0; }
html body .rfp-detalhe-sec .rfp-detalhe-desc:not(#love-h-a) { font-size: 14px; line-height: 1.65; color: #18181B; }
.rfp-detalhe-destaques { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rfp-detalhe-destaque { display: flex; align-items: flex-start; gap: 10px; }
.rfp-detalhe-destaque svg { width: 20px; height: 20px; flex-shrink: 0; color: #18181B; margin-top: 1px; }
.rfp-detalhe-destaque p { margin: 0; display: flex; flex-direction: column; gap: 2px; }
.rfp-detalhe-destaque b { font-size: 14px; font-weight: 600; color: #18181B; }
.rfp-detalhe-destaque span { font-size: 12px; color: #71717A; }
.rfp-detalhe-linhas p { margin: 0 0 8px; font-size: 14px; color: #3F3F46; }
.rfp-detalhe-linhas p:last-child { margin-bottom: 0; }
.rfp-detalhe-linhas b { font-weight: 600; color: #18181B; margin-right: 4px; }
html body .rfp-detalhe-sec .rfp-detalhe-sub:not(#love-h-a) { margin: 0 0 12px; font-size: 16px; font-weight: 600; letter-spacing: -0.02em; }
.rfp-detalhe-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.rfp-detalhe-tags span { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 6px; background: #F4F4F5; font-size: 13px; color: #3F3F46; }
@media (max-width: 640px) { .rfp-detalhe-destaques { grid-template-columns: minmax(0, 1fr); } .rfp-detalhe-cabeca { flex-wrap: wrap; } }
body[data-theme="dark"] .rfp-detalhe-cabeca, body[data-theme="dark"] .rfp-detalhe-sec { border-bottom-color: #404040 !important; }
body[data-theme="dark"] button.rfp-detalhe-voltar { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-detalhe-destaque b, body[data-theme="dark"] .rfp-detalhe-destaque svg, body[data-theme="dark"] .rfp-detalhe-linhas b, body[data-theme="dark"] .rfp-detalhe-sec .rfp-detalhe-desc { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-detalhe-tags span { background: #333333 !important; color: #D4D4D8 !important; }

/* Seta de voltar da solicitação aberta: idêntica à de "Adicione uma lista"
   (sem borda, 32px, hover com fundo #F4F6F7). */
html body button.rfp-detalhe-voltar:not(#love-h-a) { width: 32px; height: 32px; margin: 0 -4px 0 -6px; padding: 0; background: transparent !important; border: 0 !important; border-radius: 8px; color: #18181B !important; }
html body button.rfp-detalhe-voltar:not(#love-h-a):hover { background: #F4F6F7 !important; color: #18181B !important; }
html body .rfp-detalhe-voltar svg:not(#love-h-a) { width: 20px; height: 20px; }
body[data-theme="dark"] button.rfp-detalhe-voltar { background: transparent !important; color: #FFFFFF !important; }
body[data-theme="dark"] button.rfp-detalhe-voltar:hover { background: #333333 !important; }

/* Solicitação aberta: Data do evento / Convidados / Horário numa faixa cinza
   com divisórias (modelo dos números do Admin): rótulo em negrito em cima,
   valor embaixo, sem ícone. */
html body .rfp-detalhe-destaques:not(#love-h-a) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 22px 24px; padding: 18px 0; background: #F4F5F7; border: 0; border-radius: 10px; }
html body .rfp-detalhe-destaque:not(#love-h-a) { display: flex; flex-direction: column; gap: 6px; padding: 0 22px; border-left: 1px solid #E4E4E7; }
html body .rfp-detalhe-destaque:first-child:not(#love-h-a) { border-left: 0; }
.rfp-detalhe-destaque-rotulo { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #18181B; }
html body .rfp-detalhe-destaque b:not(#love-h-a) { font-size: 18px; font-weight: 600; letter-spacing: -0.02em; color: #18181B; }
@media (max-width: 640px) { html body .rfp-detalhe-destaques:not(#love-h-a) { grid-template-columns: minmax(0, 1fr); gap: 14px; } html body .rfp-detalhe-destaque:not(#love-h-a) { border-left: 0; } }
body[data-theme="dark"] .rfp-detalhe-destaques { background: #2A2A2A !important; }
body[data-theme="dark"] .rfp-detalhe-destaque { border-left-color: #404040 !important; }
body[data-theme="dark"] .rfp-detalhe-destaque-rotulo { color: #FFFFFF !important; }

/* "Adicionar lista completa" no cabeçalho da lista pronta aberta. */
html body #btn-gifts-lista-completa[hidden]:not(#love-h-a) { display: none !important; }

/* ==========================================================================
   Checklist (Convidados › Checklist) — js/checklist.js
   ========================================================================== */
.chk-raiz { max-width: 1040px; }
.chk-carregando, .chk-vazio { margin: 0; padding: 40px 24px; text-align: center; font-size: 14px; color: #71717A; }
html body .chk-aviso:not(#love-h-a) { margin: 0 0 12px; font-size: 13px; color: #c7305b; }
.chk-aviso[hidden] { display: none !important; }
.chk-progresso { padding: 20px 24px; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 10px; }
.chk-progresso-texto { margin: 0; font-size: 14px; color: #3F3F46; }
.chk-progresso-texto b { font-weight: 600; color: #18181B; }
.chk-barra { height: 6px; margin: 12px 0 14px; border-radius: 999px; background: #F4F4F5; overflow: hidden; }
.chk-barra span { display: block; height: 100%; border-radius: 999px; background: #183b54; transition: width .3s ease; }
.chk-contadores { display: flex; flex-wrap: wrap; gap: 8px; }
.chk-contador { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: 6px; background: #F4F4F5; font-size: 12px; color: #52525B; }
.chk-contador b { font-weight: 700; color: #18181B; font-variant-numeric: tabular-nums; }
.chk-contador.is-atrasadas { background: #FDF2F5; color: #c7305b; }
.chk-contador.is-atrasadas b { color: #c7305b; }
.chk-dica { margin: 12px 0 0; font-size: 12px; color: #71717A; }
html body .chk-filtros:not(#love-h-a) { margin-top: 24px; }
.chk-filtros-espaco { flex: 1; }
.chk-lista { margin-top: 24px; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 10px; overflow: hidden; }
.chk-grupo + .chk-grupo { border-top: 1px solid rgba(0, 0, 0, 0.06); }
html body button.chk-grupo-topo:not(#love-h-a) { display: flex; align-items: center; gap: 10px; width: 100%; padding: 16px 20px; background: #FAFAFA; border: 0; font-family: inherit; text-align: left; cursor: pointer; }
.chk-grupo-seta { display: inline-flex; color: #71717A; transition: transform .15s ease; transform: rotate(-90deg); }
.chk-grupo.is-aberto .chk-grupo-seta { transform: none; }
.chk-grupo-seta svg { width: 16px; height: 16px; }
.chk-grupo-nome { flex: 1; font-size: 14px; font-weight: 600; letter-spacing: -0.01em; color: #18181B; }
.chk-grupo.is-atrasadas .chk-grupo-nome { color: #c7305b; }
.chk-grupo-conta { font-size: 12px; color: #71717A; font-variant-numeric: tabular-nums; }
.chk-tarefa { display: flex; align-items: flex-start; gap: 14px; padding: 14px 20px; border-top: 1px solid rgba(0, 0, 0, 0.04); }
html body button.chk-check:not(#love-h-a) { width: 22px; height: 22px; margin-top: 1px; padding: 0; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; background: #FFFFFF; border: 1.5px solid #D4D4D8; border-radius: 999px; color: transparent; cursor: pointer; }
html body button.chk-check:not(#love-h-a):hover { border-color: #181D24; }
.chk-check svg { width: 13px; height: 13px; }
html body .chk-tarefa.is-feita button.chk-check:not(#love-h-a) { background: #183b54; border-color: #183b54; color: #FFFFFF; }
.chk-corpo { flex: 1; min-width: 0; }
.chk-titulo { margin: 0; font-size: 14px; font-weight: 500; line-height: 1.4; color: #18181B; }
.chk-tarefa.is-feita .chk-titulo { text-decoration: line-through; text-decoration-color: #A1A1AA; }
.chk-tarefa.is-feita .chk-corpo { opacity: 0.55; }
.chk-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; }
.chk-tag { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; background: #F4F4F5; font-size: 11px; font-weight: 500; color: #52525B; }
.chk-prazo { font-size: 12px; color: #71717A; }
.chk-prazo.is-atrasada { color: #c7305b; font-weight: 500; }
.chk-extra { font-size: 12px; color: #71717A; }
.chk-notas { margin: 6px 0 0; font-size: 12px; line-height: 1.5; color: #71717A; white-space: pre-line; }
.chk-acoes { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
html body button.chk-buscar:not(#love-h-a) { height: 30px; padding: 0 10px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 12px; font-weight: 600; color: #3F3F46; cursor: pointer; white-space: nowrap; }
html body button.chk-buscar:not(#love-h-a):hover { border-color: #181D24; color: #181D24; }
.chk-resp { position: relative; display: inline-flex; cursor: pointer; }
.chk-resp select { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.chk-avatar { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: #EBF4FF; color: #183b54; font-size: 11px; font-weight: 700; }
.chk-avatar.is-vazio { background: #FFFFFF; border: 1px dashed #D4D4D8; color: #A1A1AA; }
.chk-avatar svg { width: 15px; height: 15px; }
.chk-resp:hover .chk-avatar.is-vazio { border-color: #181D24; color: #181D24; }
.chk-menu-wrap { position: relative; }
html body button.chk-mais:not(#love-h-a) { width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; border-radius: 8px; color: #71717A; cursor: pointer; }
html body button.chk-mais:not(#love-h-a):hover { background: #F4F4F5; color: #181D24; }
.chk-mais svg { width: 16px; height: 16px; }
.chk-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; min-width: 220px; padding: 4px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.chk-menu[hidden] { display: none; }
html body .chk-menu button:not(#love-h-a) { display: block; width: 100%; padding: 8px 10px; background: transparent; border: 0; border-radius: 8px; font-family: inherit; font-size: 13px; color: #18181B; text-align: left; cursor: pointer; }
html body .chk-menu button:not(#love-h-a):hover { background: #F4F4F5; }
@media (max-width: 640px) {
  .chk-tarefa { flex-wrap: wrap; padding: 14px 16px; }
  .chk-acoes { width: 100%; padding-left: 36px; }
  html body button.chk-grupo-topo:not(#love-h-a) { padding: 14px 16px; }
  .chk-filtros-espaco { flex-basis: 100%; height: 0; }
}
/* Pop-up Nova tarefa / Editar tarefa */
.chk-modal { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0, 0, 0, 0.45); }
.chk-modal[hidden] { display: none; }
.chk-modal-card { width: 100%; max-width: 480px; padding: 24px; background: #FFFFFF; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
html body .chk-modal-titulo:not(#love-h-a) { margin: 0 0 18px; font-size: 18px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
.chk-form { display: flex; flex-direction: column; gap: 14px; }
.chk-form-linha { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.chk-campo { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 500; color: #3F3F46; }
.chk-campo em { font-style: normal; font-weight: 400; color: #A1A1AA; }
html body .chk-campo :is(input, select, textarea):not(#love-h-a) { width: 100%; min-height: 40px; padding: 8px 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 14px; color: #18181B; outline: none; box-shadow: none; }
html body .chk-campo :is(input, select, textarea):not(#love-h-a):focus { border-color: #181D24; }
.chk-form-erro { margin: 0; font-size: 12px; color: #c7305b; }
.chk-form-erro[hidden] { display: none; }
.chk-form-acoes { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 6px; }
html body button.chk-cancelar:not(#love-h-a) { padding: 0 8px; background: transparent; border: 0; font-family: inherit; font-size: 14px; font-weight: 600; color: #52525B; cursor: pointer; }
html body button.chk-cancelar:not(#love-h-a):hover { color: #181D24; }
html body button.chk-salvar:not(#love-h-a) { height: 40px; padding: 0 18px; background: #181D24; border: 1px solid #181D24; border-radius: 8px; font-family: inherit; font-size: 14px; font-weight: 600; color: #FFFFFF; cursor: pointer; }
html body button.chk-salvar:not(#love-h-a):hover { background: #262D36; }
/* Tema escuro */
body[data-theme="dark"] .chk-progresso, body[data-theme="dark"] .chk-lista, body[data-theme="dark"] .chk-modal-card, body[data-theme="dark"] .chk-menu { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] button.chk-grupo-topo { background: #2A2A2A !important; }
body[data-theme="dark"] .chk-grupo + .chk-grupo, body[data-theme="dark"] .chk-tarefa { border-top-color: #404040 !important; }
body[data-theme="dark"] :is(.chk-progresso-texto b, .chk-contador b, .chk-grupo-nome, .chk-titulo, .chk-modal-titulo, .chk-menu button) { color: #FFFFFF !important; }
body[data-theme="dark"] :is(.chk-progresso-texto, .chk-contador, .chk-tag, .chk-campo) { color: #D4D4D8 !important; }
body[data-theme="dark"] :is(.chk-barra, .chk-contador, .chk-tag) { background: #333333 !important; }
body[data-theme="dark"] button.chk-check { background: #252525 !important; border-color: #52525B !important; }
body[data-theme="dark"] .chk-tarefa.is-feita button.chk-check { background: #EBF4FF !important; border-color: #EBF4FF !important; color: #000000 !important; }
body[data-theme="dark"] :is(button.chk-buscar, .chk-campo input, .chk-campo select, .chk-campo textarea) { background: #333333 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] button.chk-salvar { background: #EBF4FF !important; border-color: #EBF4FF !important; color: #000000 !important; }
body[data-theme="dark"] .chk-barra span { background: #EBF4FF !important; }

/* Checklist › responsável: menu da própria Love (como Notificações), no lugar
   da lista do navegador. */
.chk-resp-wrap { position: relative; }
html body button.chk-resp:not(#love-h-a) { padding: 0; background: transparent; border: 0; border-radius: 999px; cursor: pointer; display: inline-flex; }
.chk-resp-pop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; width: 240px; max-height: 320px; overflow-y: auto; padding: 6px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.chk-resp-pop[hidden] { display: none; }
.chk-resp-titulo { margin: 4px 8px 6px; font-size: 11px; font-weight: 500; color: #A1A1AA; }
html body button.chk-resp-opcao:not(#love-h-a) { display: flex; align-items: center; gap: 10px; width: 100%; padding: 6px 8px; background: transparent; border: 0; border-radius: 8px; font-family: inherit; font-size: 13px; color: #18181B; text-align: left; cursor: pointer; }
html body button.chk-resp-opcao:not(#love-h-a):hover { background: #F4F4F5; }
html body .chk-resp-opcao .chk-avatar:not(#love-h-a) { width: 26px; height: 26px; font-size: 10px; flex-shrink: 0; }
.chk-resp-nome { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chk-resp-opcao.is-ativo .chk-resp-nome { font-weight: 600; }
.chk-resp-ok { display: inline-flex; color: #183b54; }
.chk-resp-ok svg { width: 14px; height: 14px; }
body[data-theme="dark"] .chk-resp-pop { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] button.chk-resp-opcao { color: #FFFFFF !important; }
body[data-theme="dark"] button.chk-resp-opcao:hover { background: #333333 !important; }

/* Checklist: ⋯, Buscar fornecedores e Responsável iguais aos de Minhas
   solicitações (quadradinho 36px, borda #E4E4E7, cantos 8px). */
html body button.chk-mais:not(#love-h-a) { width: 36px; height: 36px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #3F3F46; }
html body button.chk-mais:not(#love-h-a):hover { background: #FFFFFF; border-color: #181D24; color: #181D24; }
html body .chk-mais svg:not(#love-h-a) { width: 18px; height: 18px; }
html body button.chk-buscar:not(#love-h-a) { height: 36px; padding: 0 14px; font-size: 13px; color: #18181B; }
html body button.chk-resp:not(#love-h-a) { width: 36px; height: 36px; align-items: center; justify-content: center; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; }
html body button.chk-resp:not(#love-h-a):hover { border-color: #181D24; }
html body button.chk-resp .chk-avatar:not(#love-h-a) { width: auto; height: auto; background: transparent; border: 0; border-radius: 0; color: #18181B; font-size: 12px; }
html body button.chk-resp .chk-avatar.is-vazio:not(#love-h-a) { color: #3F3F46; }
html body button.chk-resp .chk-avatar svg:not(#love-h-a) { width: 18px; height: 18px; }
html body button.chk-resp:not(#love-h-a):hover .chk-avatar { color: #181D24; }
body[data-theme="dark"] :is(button.chk-mais, button.chk-resp) { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] button.chk-resp .chk-avatar { color: #FFFFFF !important; background: transparent !important; }

/* Checklist: "Saiba mais" à esquerda de Adicionar tarefa (abre a Central de ajuda › Checklist). */
html body .chk-saiba-mais:not(#love-h-a) { font-size: 14px; font-weight: 600; color: #183b54; text-decoration: underline; text-decoration-color: rgba(24, 59, 84, 0.3); text-underline-offset: 4px; white-space: nowrap; }
html body .chk-saiba-mais:not(#love-h-a):hover { text-decoration-color: #183b54; }
body[data-theme="dark"] .chk-saiba-mais { color: #EBF4FF !important; }

/* Nova solicitação: texto de apoio das imagens de referência. */
.rfp-ajuda { margin: -4px 0 10px; font-size: 13px; line-height: 1.5; color: #71717A; }
body[data-theme="dark"] .rfp-ajuda { color: #A1A1AA !important; }

/* Propostas recebidas: foto do fornecedor quadrada com cantos arredondados
   (padrão da Love) e tudo o que o fornecedor preencheu na proposta. */
html body .rfp-prop-foto:not(#love-h-a) { width: 56px; height: 56px; border-radius: 10px; border: 1px solid rgba(0, 0, 0, 0.06); }
.rfp-prop-produto-nome { margin: 2px 0 0; font-size: 13px; color: #3F3F46; }
.rfp-prop-produto { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding: 12px; background: #FAFAFA; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 10px; }
.rfp-prop-produto img { width: 56px; height: 42px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.rfp-prop-produto p { margin: 2px 0 0; font-size: 14px; font-weight: 500; color: #18181B; }
.rfp-prop-rotulo { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #71717A; }
.rfp-prop-bloco { margin-top: 18px; }
.rfp-prop-texto { margin: 6px 0 0; font-size: 14px; line-height: 1.6; color: #3F3F46; white-space: pre-line; }
html body .rfp-prop .rfp-prop-dados:not(#love-h-a) { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 24px; }
@media (max-width: 760px) { html body .rfp-prop .rfp-prop-dados:not(#love-h-a) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body[data-theme="dark"] .rfp-prop-produto { background: #2A2A2A !important; border-color: #404040 !important; }
body[data-theme="dark"] :is(.rfp-prop-produto p, .rfp-prop-texto) { color: #E4E4E7 !important; }

/* ==========================================================================
   Criar várias (solicitação em massa) e lotes em Minhas solicitações
   ========================================================================== */
.rfp-lote-cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
html body button.rfp-lote-cat:not(#love-h-a) { position: relative; display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 12px 40px 12px 14px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; font-family: inherit; text-align: left; cursor: pointer; }
html body button.rfp-lote-cat:not(#love-h-a):hover { border-color: #A1A1AA; }
html body button.rfp-lote-cat.ativa:not(#love-h-a) { border-color: #181D24; box-shadow: inset 0 0 0 1px #181D24; }
.rfp-lote-cat-icone { width: 34px; height: 34px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: #F4F6F7; color: #18181B; }
.rfp-lote-cat-icone svg { width: 18px; height: 18px; }
.rfp-lote-cat-nome { font-size: 14px; font-weight: 600; color: #18181B; }
.rfp-lote-cat-check { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; border: 1.5px solid #D4D4D8; border-radius: 999px; color: transparent; }
.rfp-lote-cat-check svg { width: 12px; height: 12px; }
.rfp-lote-cat.ativa .rfp-lote-cat-check { background: #183b54; border-color: #183b54; color: #FFFFFF; }
html body button.rfp-lote-copiar:not(#love-h-a) { margin-top: 10px; padding: 0; background: none; border: 0; font-family: inherit; font-size: 13px; font-weight: 600; color: #183b54; text-decoration: underline; text-decoration-color: rgba(24, 59, 84, 0.3); text-underline-offset: 4px; cursor: pointer; }
html body button.rfp-lote-copiar:not(#love-h-a):hover { text-decoration-color: #183b54; }
.rfp-lote-itens { display: flex; flex-direction: column; margin-top: 20px; border: 1px solid #E4E4E7; border-radius: 10px; overflow: hidden; }
.rfp-lote-item + .rfp-lote-item { border-top: 1px solid #E4E4E7; }
html body button.rfp-lote-item-topo:not(#love-h-a) { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; background: #FAFAFA; border: 0; font-family: inherit; text-align: left; cursor: pointer; }
.rfp-lote-item-nome { flex: 1; min-width: 0; font-size: 14px; font-weight: 600; color: #18181B; }
.rfp-lote-item-status { font-size: 12px; color: #71717A; white-space: nowrap; }
.rfp-lote-item-status.is-pronto { color: #067647; }
.rfp-lote-item-status.is-erro { color: #c7305b; }
.rfp-lote-item-seta { display: inline-flex; color: #71717A; transition: transform .15s ease; transform: rotate(-90deg); }
.rfp-lote-item.is-aberto .rfp-lote-item-seta { transform: none; }
.rfp-lote-item-seta svg { width: 16px; height: 16px; }
.rfp-lote-item-corpo { padding: 16px 14px 18px; background: #FFFFFF; }
.rfp-lote-item-corpo > .rfp-rotulo { margin-bottom: 4px; }
.rfp-lote-resumo { margin: 0 0 14px; font-size: 14px; line-height: 1.6; color: #3F3F46; }
.rfp-lote-resumo b { color: #18181B; }
.rfp-lote-revisao { display: flex; flex-direction: column; border: 1px solid #E4E4E7; border-radius: 10px; overflow: hidden; }
.rfp-lote-revisao-linha { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 14px; font-size: 13px; }
.rfp-lote-revisao-linha + .rfp-lote-revisao-linha { border-top: 1px solid #F0F0F0; }
.rfp-lote-revisao-cat { font-weight: 600; color: #18181B; }
.rfp-lote-revisao-titulo { color: #3F3F46; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rfp-lote-revisao-valor { color: #71717A; white-space: nowrap; }
.rfp-lote-grupo { border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
.rfp-lote-grupo-topo { padding: 18px 24px 14px; background: #FAFAFA; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
.rfp-lote-grupo-titulo { margin: 0; font-size: 15px; font-weight: 700; letter-spacing: -0.02em; color: #18181B; }
.rfp-lote-selos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.rfp-lote-selo { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: 6px; background: #FFFFFF; border: 1px solid #E4E4E7; font-size: 12px; color: #3F3F46; }
.rfp-lote-grupo .rfp-post { padding-left: 40px; }
.rfp-lote-grupo .rfp-post:last-child { border-bottom: 0; }
@media (max-width: 640px) {
  .rfp-lote-cats { grid-template-columns: minmax(0, 1fr); }
  .rfp-lote-revisao-linha { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .rfp-lote-grupo .rfp-post { padding-left: 24px; }
}
body[data-theme="dark"] button.rfp-lote-cat, body[data-theme="dark"] .rfp-lote-item-corpo, body[data-theme="dark"] .rfp-lote-selo { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] button.rfp-lote-item-topo, body[data-theme="dark"] .rfp-lote-grupo-topo { background: #2A2A2A !important; }
body[data-theme="dark"] :is(.rfp-lote-cat-nome, .rfp-lote-item-nome, .rfp-lote-grupo-titulo, .rfp-lote-revisao-cat, .rfp-lote-resumo b) { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-lote-cat-icone { background: #333333 !important; color: #FFFFFF !important; }
body[data-theme="dark"] :is(.rfp-lote-itens, .rfp-lote-revisao) { border-color: #404040 !important; }

/* Criar solicitação (formulário único): passos no topo da caixa e
   "Salvar como rascunho" ao lado de Publicar. */
.rfp-passos { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 14px; padding: 0; list-style: none; }
.rfp-passos li { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: #A1A1AA; }
.rfp-passos li span { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid #E4E4E7; font-size: 11px; font-weight: 700; color: #A1A1AA; background: #FFFFFF; }
.rfp-passos li.is-atual { color: #18181B; }
.rfp-passos li.is-atual span { background: #181D24; border-color: #181D24; color: #FFFFFF; }
.rfp-passos li.is-feito { color: #3F3F46; }
.rfp-passos li.is-feito span { background: #EBF4FF; border-color: #EBF4FF; color: #183b54; }
html body button.rfp-rascunho-btn:not(#love-h-a) { height: 44px; padding: 0 16px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 14px; font-weight: 600; color: #18181B; cursor: pointer; }
html body button.rfp-rascunho-btn:not(#love-h-a):hover { border-color: #181D24; color: #181D24; }
html body button.rfp-rascunho-btn[hidden]:not(#love-h-a) { display: none; }
body[data-theme="dark"] .rfp-passos li.is-atual { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-passos li span { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .rfp-passos li.is-atual span { background: #EBF4FF !important; color: #000000 !important; }
body[data-theme="dark"] button.rfp-rascunho-btn { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }

/* Criar solicitação em página única (modelo "publicar vaga"): título em cima,
   seções separadas por linhas finas, dados do evento numa linha compacta,
   grade compacta de serviços; sem passos. */
html body #b2b-pedidos-view .rfp-editor:not(#love-h-a) { display: block; max-width: 880px; margin: 0 auto; }
html body #b2b-pedidos-view .rfp-intro:not(#love-h-a) { margin: 0 0 20px; }
html body #b2b-pedidos-view .rfp-etapa-titulo:not(#love-h-a) { font-size: 26px; }
html body #b2b-pedidos-view .rfp-etapa-sub:not(#love-h-a) { margin-top: 6px; }
html body #b2b-pedidos-view .rfp-passos[hidden]:not(#love-h-a) { display: none; }
.rfp-secao + .rfp-secao { margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(0, 0, 0, 0.06); }
html body .rfp-secao > .rfp-pergunta:first-child:not(#love-h-a), html body .rfp-secao > .rfp-secao-titulo:not(#love-h-a) { margin-top: 0; }
html body .rfp-secao-titulo:not(#love-h-a) { margin: 0 0 14px; font-size: 16px; font-weight: 700; letter-spacing: -0.02em; color: #18181B; }
.rfp-evento-linha { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.4fr) 76px minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: end; }
html body .rfp-evento-linha select.rfp-campo:not(#love-h-a) { appearance: none; -webkit-appearance: none; width: 100%; min-width: 0; padding: 0 26px 0 12px; background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A1A1AA' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 8px center / 14px; cursor: pointer; text-align: left; }
html body .rfp-evento-linha .rfp-campo:not(#love-h-a) { width: 100%; min-width: 0; }
html body .rfp-check-flexivel:not(#love-h-a) { margin-top: 10px; }
html body #b2b-pedidos-view .rfp-lote-cats:not(#love-h-a) { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
html body #b2b-pedidos-view button.rfp-lote-cat:not(#love-h-a) { min-height: 48px; padding: 8px 32px 8px 10px; gap: 10px; }
html body #b2b-pedidos-view .rfp-lote-cat-icone:not(#love-h-a) { width: 28px; height: 28px; }
html body #b2b-pedidos-view .rfp-lote-cat-icone svg:not(#love-h-a) { width: 16px; height: 16px; }
html body #b2b-pedidos-view .rfp-lote-cat-nome:not(#love-h-a) { font-size: 13px; }
html body #b2b-pedidos-view .rfp-lote-cat-check:not(#love-h-a) { right: 10px; width: 18px; height: 18px; }
@media (max-width: 760px) {
  .rfp-evento-linha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body #b2b-pedidos-view .rfp-lote-cats:not(#love-h-a) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
body[data-theme="dark"] .rfp-secao + .rfp-secao { border-top-color: #404040 !important; }
body[data-theme="dark"] .rfp-secao-titulo { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-evento-linha select.rfp-campo { background-color: #333333 !important; color: #FFFFFF !important; border-color: #404040 !important; }

/* Criar solicitação: dois jeitos de começar (cards) e lista simples do
   "Montar evento completo". */
.rfp-modos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 24px; }
html body button.rfp-modo:not(#love-h-a) { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 16px 44px 16px 16px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; font-family: inherit; text-align: left; cursor: pointer; }
html body button.rfp-modo:not(#love-h-a):hover { border-color: #A1A1AA; }
html body button.rfp-modo.ativo:not(#love-h-a) { border-color: #181D24; box-shadow: inset 0 0 0 1px #181D24; }
.rfp-modo-icone { width: 36px; height: 36px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: #F4F6F7; color: #18181B; }
.rfp-modo-icone svg { width: 20px; height: 20px; }
.rfp-modo-textos { display: flex; flex-direction: column; gap: 4px; }
.rfp-modo-textos b { font-size: 15px; font-weight: 700; letter-spacing: -0.02em; color: #18181B; }
.rfp-modo-textos span { font-size: 13px; line-height: 1.5; color: #71717A; }
html body .rfp-modo .rfp-lote-cat-check:not(#love-h-a) { top: 16px; transform: none; right: 14px; }
.rfp-modo.ativo .rfp-lote-cat-check { background: #183b54; border-color: #183b54; color: #FFFFFF; }
html body .rfp-secao .rfp-cat-select:not(#love-h-a) { max-width: 420px; margin-bottom: 4px; }
html body .rfp-check-geral:not(#love-h-a) { margin-top: 10px; }
.rfp-lote-lista { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.rfp-lote-linha { padding: 16px; border: 1px solid #E4E4E7; border-radius: 10px; }
.rfp-lote-linha-topo { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.rfp-lote-linha-topo b { font-size: 14px; font-weight: 700; color: #18181B; }
.rfp-lote-explica { margin: 18px 0 0; font-size: 13px; line-height: 1.5; color: #71717A; }
@media (max-width: 640px) { .rfp-modos { grid-template-columns: minmax(0, 1fr); } }
body[data-theme="dark"] button.rfp-modo { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] button.rfp-modo.ativo { border-color: #EBF4FF !important; box-shadow: inset 0 0 0 1px #EBF4FF !important; }
body[data-theme="dark"] .rfp-modo-textos b, body[data-theme="dark"] .rfp-lote-linha-topo b { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-modo-icone { background: #333333 !important; color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-lote-linha { border-color: #404040 !important; }

/* Lista da mesa: "Mover" à esquerda do X e a tela "< Mover (nome) para" no mesmo pop-up. */
html body button.floorplan-lista-mover:not(#love-h-a) { height: 28px; padding: 0 10px; margin-right: 2px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 12px; font-weight: 600; color: #3F3F46; cursor: pointer; flex-shrink: 0; }
html body button.floorplan-lista-mover:not(#love-h-a):hover { border-color: #181D24; color: #181D24; }
html body .floorplan-lista-topo-mover:not(#love-h-a) { justify-content: flex-start; gap: 6px; }
html body .floorplan-lista-topo-mover p:not(#love-h-a) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body button.floorplan-lista-voltar:not(#love-h-a) { width: 28px; height: 28px; margin-left: -6px; padding: 0; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; }
html body button.floorplan-lista-voltar:not(#love-h-a):hover { background: #F4F6F7; }
.floorplan-lista-voltar svg { width: 18px; height: 18px; }
body[data-theme="dark"] button.floorplan-lista-mover { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] button.floorplan-lista-voltar { color: #FFFFFF !important; }

/* Cards "Serviço avulso" / "Evento completo": ícone em cima, nome e texto
   embaixo, bolinha de seleção no canto (modelo da referência). */
html body button.rfp-modo:not(#love-h-a) { flex-direction: column; align-items: flex-start; gap: 10px; padding: 18px 48px 18px 18px; }
html body .rfp-modo .rfp-modo-icone:not(#love-h-a) { width: auto; height: auto; background: transparent; border-radius: 0; color: #18181B; }
html body .rfp-modo .rfp-modo-icone svg:not(#love-h-a) { width: 22px; height: 22px; }
html body .rfp-modo .rfp-modo-textos b:not(#love-h-a) { font-size: 15px; }
html body .rfp-modo .rfp-modo-textos span:not(#love-h-a) { font-size: 14px; }
html body .rfp-modo .rfp-lote-cat-check:not(#love-h-a) { top: 18px; right: 18px; width: 22px; height: 22px; }
body[data-theme="dark"] .rfp-modo .rfp-modo-icone { background: transparent !important; }

/* Cards de modo sem ícone; bolinha de seleção um pouco maior. */
html body .rfp-modo .rfp-lote-cat-check:not(#love-h-a) { width: 26px; height: 26px; top: 16px; right: 16px; border-width: 1.5px; }
html body .rfp-modo .rfp-lote-cat-check svg:not(#love-h-a) { width: 14px; height: 14px; }
html body button.rfp-modo:not(#love-h-a) { padding-right: 56px; }
html body #b2b-pedidos-view .rfp-modo .rfp-lote-cat-check:not(#love-h-a) { width: 26px; height: 26px; top: 16px; right: 16px; transform: none; }
html body #b2b-pedidos-view .rfp-modo .rfp-lote-cat-check svg:not(#love-h-a) { width: 14px; height: 14px; }
html body .rfp-etapa-titulo[hidden]:not(#love-h-a) { display: none; }
html body #b2b-pedidos-view .rfp-etapa-titulo[hidden] + .rfp-etapa-sub:not(#love-h-a) { margin-top: 0; }
html body .presentes-vazio-texto b:not(#love-h-a) { font-weight: 700; color: #18181B; }
body[data-theme="dark"] .presentes-vazio-texto b { color: #FFFFFF !important; }

/* Meus presentes: barra no topo da lista (busca à esquerda, total à direita),
   igual à de Meus convidados; 24px até os cards. */
html body #gifts-barra:not(#love-h-a) { margin-bottom: 24px; overflow: visible; }
html body #gifts-barra[hidden]:not(#love-h-a) { display: none !important; }
html body #gifts-barra .gifts-total-linha:not(#love-h-a) { margin: 0; font-size: 14px; }

/* Criar solicitação / Minhas solicitações: abas coladas na caixa logo abaixo
   (a linha das abas faz o papel da borda de cima), como em Meus convidados.
   Título/subtítulo da etapa dentro da caixa. */
html body #b2b-pedidos-view #pedidos-abas:not(#love-h-a) { margin: 0 !important; border-bottom: 1px solid #E4E4E7 !important; }
#pedidos-abas button.love-tab-item.love-tab-item.love-tab-item { border-radius: 0 !important; }
html body #b2b-pedidos-view #pedidos-painel-minhas:not(.hidden):not(#love-h-a) { margin-top: 0; }
html body #pedidos-painel-minhas #rfp-caixa:not(#love-h-a) { border-top: 0 !important; border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; }
html body #rfp-lista-wrap:not(#love-h-a) { display: flex; flex-direction: column; }
html body #rfp-lista-wrap > #rfp-lista-aviso:not(#love-h-a) { order: 2; margin: 12px 0 0; }
html body #b2b-pedidos-view .rfp-editor:not(#love-h-a) { padding-top: 0 !important; max-width: none; margin: 0; }
html body #b2b-pedidos-view .rfp-editor .rfp-intro:not(#love-h-a) { display: none; }
html body #b2b-pedidos-view .rfp-caixa-form:not(#love-h-a) { border-top: 0 !important; border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; }
html body #pedidos-abas.hidden ~ .rfp-editor .rfp-caixa-form:not(#love-h-a) { border-top: 1px solid #E4E4E7 !important; border-radius: 10px !important; }
.rfp-etapa-cab { margin-bottom: 24px; }
html body .rfp-etapa-cab-titulo:not(#love-h-a) { margin: 0; font-size: 20px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
.rfp-etapa-cab-sub { margin: 6px 0 0; font-size: 14px; line-height: 1.6; color: #52525B; }
.rfp-modos-sub { margin: 0 0 14px; }
body[data-theme="dark"] .rfp-etapa-cab-titulo { color: #FFFFFF !important; }
body[data-theme="dark"] .rfp-etapa-cab-sub { color: #A1A1AA !important; }
body[data-theme="dark"] #b2b-pedidos-view #pedidos-abas { border-bottom-color: #404040 !important; }

/* Minhas solicitações: rascunho com o título em cinza (publicadas na cor primária). */
html body .rfp-post[data-rascunho-id] button.rfp-post-titulo.rfp-post-link:not(#love-h-a) { color: #A1A1AA; text-decoration-color: rgba(161, 161, 170, 0.4); }
html body .rfp-post[data-rascunho-id] button.rfp-post-titulo.rfp-post-link:not(#love-h-a):hover { color: #71717A; text-decoration-color: #71717A; }
body[data-theme="dark"] .rfp-post[data-rascunho-id] button.rfp-post-titulo.rfp-post-link { color: #71717A !important; }

/* ==========================================================================
   Carteira digital: abas Saque / Contas bancárias (js/carteira.js)
   ========================================================================== */
html body #tab-wallet #wallet-sub-digital:not(#love-h-a) { margin-top: 0 !important; }
#carteira-raiz { display: flex; flex-direction: column; }
html body #carteira-raiz .cart-abas:not(#love-h-a) { margin: 0 !important; border-bottom: 1px solid #E4E4E7 !important; }
.cart-abas button.love-tab-item.love-tab-item.love-tab-item { border-radius: 0 !important; }
.cart-aviso { order: 9; margin: 12px 0 0; font-size: 13px; color: #067647; }
.cart-aviso.is-erro { color: #c7305b; }
.cart-aviso[hidden] { display: none; }
.cart-caixa { background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 10px; }
html body #carteira-raiz > section.cart-caixa:first-of-type:not(#love-h-a) { border-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }
.cart-resumo { padding: 16px 24px 28px; }
.cart-resumo-topo { display: flex; justify-content: flex-end; }
html body button.cart-link:not(#love-h-a) { display: inline-flex; align-items: center; gap: 6px; padding: 0; background: none; border: 0; font-family: inherit; font-size: 13px; font-weight: 600; color: #183b54; cursor: pointer; text-decoration: underline; text-decoration-color: rgba(24, 59, 84, 0.3); text-underline-offset: 4px; }
.cart-link svg { width: 16px; height: 16px; }
.cart-resumo-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 8px; }
.cart-resumo-col { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 4px 24px; border-left: 1px solid #E4E4E7; }
.cart-resumo-col:first-child { border-left: 0; padding-left: 0; }
.cart-resumo-total { justify-content: center; }
.cart-numero-grande { margin: 0; font-size: 28px; font-weight: 700; letter-spacing: -0.02em; color: #18181B; font-variant-numeric: tabular-nums; }
.cart-numero { margin: 0; font-size: 20px; font-weight: 700; letter-spacing: -0.02em; color: #18181B; font-variant-numeric: tabular-nums; }
.cart-rotulo { margin: 0; font-size: 13px; font-weight: 500; color: #52525B; }
.cart-dica { margin: 4px 0 0; font-size: 12px; line-height: 1.5; color: #71717A; }
html body button.cart-link-texto:not(#love-h-a) { padding: 0; background: none; border: 0; font: inherit; font-weight: 600; color: #183b54; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cart-valor.is-escondido { letter-spacing: 0.08em; }
html body button.cart-btn-escuro:not(#love-h-a) { height: 40px; margin-top: 8px; padding: 0 18px; background: #181D24; border: 1px solid #181D24; border-radius: 8px; font-family: inherit; font-size: 14px; font-weight: 600; color: #FFFFFF; cursor: pointer; }
html body button.cart-btn-escuro:not(#love-h-a):hover:not(:disabled) { background: #262D36; }
html body button.cart-btn-escuro:not(#love-h-a):disabled { background: #E4E4E7; border-color: #E4E4E7; color: #A1A1AA; cursor: default; }
.cart-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.cart-caixa-topo { padding: 20px 24px 12px; }
html body .cart-titulo:not(#love-h-a) { margin: 0; font-size: 16px; font-weight: 700; letter-spacing: -0.02em; color: #18181B; }
.cart-sub { margin: 2px 0 0; font-size: 13px; color: #71717A; }
.cart-tabela-rolagem { overflow-x: auto; }
.cart-tabela { width: 100%; border-collapse: collapse; font-size: 13px; }
.cart-tabela th { padding: 10px 24px; text-align: left; font-size: 12px; font-weight: 500; color: #71717A; border-bottom: 1px solid #E4E4E7; white-space: nowrap; }
.cart-tabela td { padding: 12px 24px; color: #3F3F46; border-bottom: 1px solid rgba(0, 0, 0, 0.05); vertical-align: top; }
.cart-tabela tr:last-child td { border-bottom: 0; }
.cart-tabela td b { font-weight: 600; color: #18181B; }
.cart-sub-linha { display: block; margin-top: 2px; font-size: 12px; color: #71717A; }
.cart-num { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cart-entrada { color: #067647 !important; font-weight: 600; }
.cart-status { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.cart-status-solicitado { background: #EBF4FF; color: #183b54; }
.cart-status-processando { background: #FEF7E6; color: #92400E; }
.cart-status-realizado { background: #ECFDF3; color: #067647; }
.cart-status-recusado { background: #F4F4F5; color: #52525B; }
.cart-vazio { margin: 0; padding: 28px 24px 32px; font-size: 13px; color: #71717A; }
.cart-contas { padding-bottom: 8px; }
.cart-contas-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 24px 0; }
html body .cart-contas-topo .cart-btn-escuro:not(#love-h-a) { margin-top: 0; }
.cart-contas-barra { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 24px; flex-wrap: wrap; }
.cart-busca { position: relative; width: 320px; max-width: 100%; }
.cart-busca svg { position: absolute; right: 12px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); color: #71717A; pointer-events: none; }
html body .cart-busca input:not(#love-h-a) { width: 100%; height: 38px; padding: 0 36px 0 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 13px; color: #18181B; outline: none; box-shadow: none; }
html body .cart-busca input:not(#love-h-a):focus { border-color: #181D24; }
.cart-contagem { margin: 0; font-size: 13px; color: #52525B; }
.cart-contagem b { color: #18181B; }
.cart-faixa-vazia { margin: 0 0 16px; padding: 22px 24px; background: #F4F4F5; text-align: center; font-size: 13px; color: #3F3F46; }
.cart-col-acoes { width: 48px; text-align: right !important; }
.cart-menu-wrap { position: relative; display: inline-block; }
html body button.cart-mais:not(#love-h-a) { width: 32px; height: 32px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #3F3F46; cursor: pointer; }
html body button.cart-mais:not(#love-h-a):hover { border-color: #181D24; color: #181D24; }
.cart-mais svg { width: 16px; height: 16px; }
.cart-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; min-width: 150px; padding: 4px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.cart-menu[hidden] { display: none; }
html body .cart-menu button:not(#love-h-a) { display: block; width: 100%; padding: 8px 10px; background: transparent; border: 0; border-radius: 8px; font-family: inherit; font-size: 13px; color: #18181B; text-align: left; cursor: pointer; }
html body .cart-menu button:not(#love-h-a):hover { background: #F4F4F5; }
/* Pop-ups da carteira (centralizados) */
.cart-modal { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0, 0, 0, 0.45); }
.cart-modal-card { width: 100%; max-width: 480px; max-height: 90vh; overflow-y: auto; padding: 24px; background: #FFFFFF; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
html body .cart-modal-titulo:not(#love-h-a) { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
.cart-modal-sub { margin: 4px 0 16px; font-size: 13px; color: #71717A; }
html body .cart-metodos:not(#love-h-a) { margin: 0 0 16px; }
.cart-form-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cart-form-pix { grid-template-columns: 160px minmax(0, 1fr); }
.cart-form-grade[hidden] { display: none; }
.cart-campo { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 500; color: #3F3F46; }
.cart-campo-largo { grid-column: 1 / -1; }
html body .cart-campo :is(input, select):not(#love-h-a) { width: 100%; height: 40px; padding: 0 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 14px; color: #18181B; outline: none; box-shadow: none; }
html body .cart-campo :is(input, select):not(#love-h-a):focus { border-color: #181D24; }
.cart-moeda { position: relative; display: block; }
.cart-moeda > span { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-size: 14px; color: #71717A; pointer-events: none; }
html body .cart-moeda input:not(#love-h-a) { padding-left: 36px; font-variant-numeric: tabular-nums; }
.cart-saque-saldo { display: flex; align-items: center; justify-content: space-between; margin: 14px 0 16px; padding: 12px 14px; background: #F4F6F7; border-radius: 8px; font-size: 13px; color: #3F3F46; }
.cart-saque-saldo b { font-size: 16px; color: #18181B; font-variant-numeric: tabular-nums; }
html body .cart-tudo:not(#love-h-a) { margin-top: 6px; font-size: 13px; }
.cart-campo-rotulo { margin: 16px 0 8px; font-size: 13px; font-weight: 500; color: #3F3F46; }
.cart-contas-escolha { display: flex; flex-direction: column; gap: 8px; }
html body button.cart-conta-opcao:not(#love-h-a) { display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 13px; color: #18181B; text-align: left; cursor: pointer; }
html body button.cart-conta-opcao.ativa:not(#love-h-a) { border-color: #181D24; box-shadow: inset 0 0 0 1px #181D24; }
.cart-conta-radio { width: 16px; height: 16px; flex-shrink: 0; border: 1.5px solid #D4D4D8; border-radius: 999px; }
.cart-conta-opcao.ativa .cart-conta-radio { border: 5px solid #183b54; }
.cart-form-erro { margin: 12px 0 0; font-size: 12px; color: #c7305b; }
.cart-form-erro[hidden] { display: none; }
.cart-modal-acoes { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 20px; }
html body .cart-modal-acoes .cart-btn-escuro:not(#love-h-a) { margin-top: 0; }
html body button.cart-cancelar:not(#love-h-a) { padding: 0 8px; background: transparent; border: 0; font-family: inherit; font-size: 14px; font-weight: 600; color: #52525B; cursor: pointer; }
html body button.cart-cancelar:not(#love-h-a):hover { color: #181D24; }
@media (max-width: 900px) {
  .cart-resumo-cols { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .cart-resumo-col { border-left: 0; padding: 0; }
  .cart-grade { grid-template-columns: minmax(0, 1fr); }
}
/* Tema escuro */
body[data-theme="dark"] :is(.cart-caixa, .cart-modal-card, .cart-menu) { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] #carteira-raiz .cart-abas { border-bottom-color: #404040 !important; }
body[data-theme="dark"] :is(.cart-numero-grande, .cart-numero, .cart-titulo, .cart-tabela td b, .cart-modal-titulo, .cart-saque-saldo b, .cart-contagem b) { color: #FFFFFF !important; }
body[data-theme="dark"] :is(.cart-tabela td, .cart-rotulo, .cart-campo, .cart-menu button, button.cart-conta-opcao) { color: #D4D4D8 !important; }
body[data-theme="dark"] .cart-resumo-col { border-left-color: #404040 !important; }
body[data-theme="dark"] :is(.cart-faixa-vazia, .cart-saque-saldo) { background: #2A2A2A !important; color: #D4D4D8 !important; }
body[data-theme="dark"] :is(.cart-busca input, .cart-campo input, .cart-campo select, button.cart-mais, button.cart-conta-opcao) { background: #333333 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] button.cart-btn-escuro:not(:disabled) { background: #EBF4FF !important; border-color: #EBF4FF !important; color: #000000 !important; }
body[data-theme="dark"] :is(button.cart-link, button.cart-link-texto) { color: #EBF4FF !important; }

/* Lista de presentes › Recados recebidos: tabela com o recado aberto na
   própria linha ao clicar no nome. */
.recados-contagem { margin: 0; font-size: 13px; color: #52525B; }
html body button.recado-nome:not(#love-h-a) { padding: 0; background: none; border: 0; font-family: inherit; font-size: 14px; font-weight: 600; color: #183b54; text-align: left; cursor: pointer; text-decoration: underline; text-decoration-color: rgba(24, 59, 84, 0.3); text-underline-offset: 4px; }
html body button.recado-nome:not(#love-h-a):hover { text-decoration-color: #183b54; }
.recado-sub { display: block; margin-top: 2px; font-size: 12px; color: #71717A; }
.recado-data { white-space: nowrap; color: #52525B; }
.recado-previa { max-width: 420px; color: #52525B; cursor: pointer; }
.recado-linha.is-aberto > td { border-bottom: 0 !important; }
.recado-mensagem td { padding-top: 0 !important; }
.recado-mensagem p { margin: 0 0 4px; padding: 14px 16px; background: #F4F6F7; border-radius: 8px; font-size: 14px; line-height: 1.65; color: #18181B; white-space: pre-line; }
.recados-vazio { padding: 40px 16px !important; text-align: center; font-size: 13px; color: #71717A; }
body[data-theme="dark"] button.recado-nome { color: #EBF4FF !important; }
body[data-theme="dark"] .recado-mensagem p { background: #2A2A2A !important; color: #FFFFFF !important; }

/* Carteira › Saque: dois saldos (disponível e pendente), no estilo do
   Financeiro do Hub (rótulo 13px cinza, valor 28px na fonte dos títulos), e
   embaixo uma tabela só — extrato ou histórico de saques —, como Meus convidados. */
html body #carteira-raiz .cart-resumo:not(#love-h-a) { padding: 16px 24px 24px; }
html body #carteira-raiz .cart-resumo-cols:not(#love-h-a) { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
html body #carteira-raiz .cart-resumo-col:not(#love-h-a) { gap: 0; padding: 0 24px; }
html body #carteira-raiz .cart-resumo-col:first-child:not(#love-h-a) { padding-left: 0; }
html body #carteira-raiz .cart-rotulo:not(#love-h-a) { font-size: 0.8125rem; font-weight: 500; color: #71717A; }
html body #carteira-raiz .cart-numero:not(#love-h-a) { margin-top: 4px; font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 1.75rem; font-weight: 700; letter-spacing: -0.02em; color: #18181B; line-height: 1.2; font-variant-numeric: tabular-nums; }
html body #carteira-raiz .cart-dica:not(#love-h-a) { margin-top: 8px; font-size: 0.8125rem; color: #71717A; }
html body #carteira-raiz button.cart-sacar:not(#love-h-a) { margin-top: 14px; }
html body #carteira-raiz button.cart-sacar:disabled:not(#love-h-a) { opacity: 0.5; cursor: default; }
html body #carteira-raiz button.cart-ver:not(#love-h-a) { margin-top: 14px; font-size: 0.8125rem; text-decoration-color: rgba(24, 59, 84, 0.3); text-underline-offset: 4px; }
html body #carteira-raiz button.cart-ver[aria-current="true"]:not(#love-h-a) { text-decoration-color: #183b54; }
html body #carteira-raiz .cart-lista:not(#love-h-a) { margin-top: 24px; }
.cart-nome { font-weight: 600; color: #18181B; }
.cart-data { white-space: nowrap; }
body[data-theme="dark"] #carteira-raiz .cart-numero, body[data-theme="dark"] .cart-nome { color: #FFFFFF !important; }
html body #carteira-raiz .cart-numero:not(#love-h-a), html body #carteira-raiz .cart-numero .cart-valor:not(#love-h-a) { font-weight: 700 !important; }

/* ==========================================================================
   Padrão único de caixas e botões claros (referência: a caixa "Pesquisar
   presente" de Meus presentes): linha fina cinza (--borda-suave, preto a 6%)
   + anel bem leve (--anel-suave, preto a 3%), cantos 10px nas caixas e 8px
   nos botões. Vale para dashboard, tabelas, cards e botões claros.
   ========================================================================== */
html body #view-event-os-dashboard :is(
  .dash-card, .love-tabela-caixa, .rsvp-caixa-abaixo-das-abas,
  #host-gifts-grid > .group, .presentes-vazio, .lista-pronta-card, .lista-item-card,
  .cart-caixa, .rfp-caixa-form, .rfp-props, .rfp-lote-linha, .rfp-lote-itens, .rfp-lote-revisao,
  .chk-progresso, .chk-lista,
  .rfp-modo:not(.ativo), .rfp-lote-cat:not(.ativa)
):not(#love-h-a) {
  border-color: var(--borda-suave) !important;
  box-shadow: var(--anel-suave) !important;
}
html body #view-event-os-dashboard #host-gifts-grid > .group:not(#love-h-a) { border-width: 1px !important; border-style: solid !important; }
html body #view-event-os-dashboard #host-gifts-grid > .group:not(#love-h-a):hover { box-shadow: var(--anel-suave), 0 4px 12px rgba(0, 0, 0, 0.05) !important; }

/* Botões claros: mesma linha e anel; no hover só a borda escurece (#181D24). */
html body #view-event-os-dashboard :is(
  .btn-secondary, .btn-white, .love-tabela-botao,
  .rfp-post-mais, .rfp-post-botao, .rfp-conversar,
  .chk-mais, .chk-resp, .chk-buscar,
  .cart-mais, .floorplan-lista-mover, .lista-item-adicionar, .lista-selecionar
):not(#love-h-a):not(:hover):not(:focus-visible):not(:disabled) {
  border-color: var(--borda-suave) !important;
  box-shadow: var(--anel-suave) !important;
}
html body #view-event-os-dashboard :is(.chk-mais):not(#love-h-a) { border-style: solid !important; border-width: 1px !important; }
/* Cards da Home e demais caixas com cantos de card (rounded-[var(--radius-card)]). */
html body #view-event-os-dashboard [class*="rounded-[var(--radius-card"].border:not(#love-h-a),
html body #view-event-os-dashboard [class*="rounded-[var(--radius-card"].bg-white:not(#love-h-a) {
  border-color: var(--borda-suave) !important;
  box-shadow: var(--anel-suave) !important;
}

/* Carteira: título acima da tabela (24px até a caixa), botão de período
   (calendário) no lugar da contagem e valor perto da data no histórico. */
html body #carteira-raiz .cart-lista-titulo:not(#love-h-a) { margin: 32px 0 0; font-size: 16px; font-weight: 700; letter-spacing: -0.02em; color: #18181B; }
html body #carteira-raiz .cart-lista-titulo + .cart-lista:not(#love-h-a) { margin-top: 24px; }
.cart-periodo { position: relative; }
html body button.cart-periodo-btn:not(#love-h-a) { display: inline-flex; align-items: center; gap: 10px; height: 38px; padding: 0 14px; background: #FFFFFF; border: 1px solid var(--borda-suave, rgba(0,0,0,.06)); border-radius: 8px; box-shadow: var(--anel-suave, 0 0 0 1px rgba(0,0,0,.03)); font-family: inherit; font-size: 14px; color: #18181B; cursor: pointer; white-space: nowrap; font-variant-numeric: tabular-nums; }
html body button.cart-periodo-btn:not(#love-h-a):hover { border-color: #181D24; }
.cart-periodo-btn svg { width: 17px; height: 17px; color: #71717A; }
.cart-periodo-pop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; width: 280px; display: flex; flex-direction: column; gap: 10px; padding: 14px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.cart-periodo-acoes { display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin-top: 4px; }
html body .cart-periodo-acoes .cart-btn-escuro:not(#love-h-a) { margin-top: 0; height: 36px; }
html body #carteira-raiz .cart-tabela-saques th:nth-child(1):not(#love-h-a), html body #carteira-raiz .cart-tabela-saques td:nth-child(1):not(#love-h-a) { width: 170px; }
html body #carteira-raiz .cart-tabela-saques th:nth-child(2):not(#love-h-a), html body #carteira-raiz .cart-tabela-saques td:nth-child(2):not(#love-h-a) { width: 150px; }
.cart-valor-saque { white-space: nowrap; font-weight: 600; color: #18181B; font-variant-numeric: tabular-nums; }
body[data-theme="dark"] #carteira-raiz .cart-lista-titulo, body[data-theme="dark"] .cart-valor-saque { color: #FFFFFF !important; }
body[data-theme="dark"] button.cart-periodo-btn { background: #252525 !important; color: #FFFFFF !important; }
body[data-theme="dark"] .cart-periodo-pop { background: #252525 !important; border-color: #404040 !important; }

/* Mapa do evento: linhas das mesas e das cadeiras com a mesma grossura das
   linhas dos itens (1,5px na tela, mesmo com a planta reduzida para caber) e
   cadeiras no lugar das bolinhas (encosto para fora; iniciais por cima). */
html body .floorplan-mesa-core:not(#love-h-a) {
  border: calc(1.5px / (var(--escala-planta, 1) * var(--escala-mesa, 1))) solid #52525B;
  box-shadow: none;
}
html body .floorplan-el.is-mesa:hover .floorplan-mesa-core:not(#love-h-a) { border-color: #181D24; }
html body .floorplan-seat-dot:not(#love-h-a) {
  width: 32px; height: 32px; min-width: 32px; max-width: 32px; min-height: 32px;
  background: transparent !important; border: 0 !important; border-radius: 6px; box-shadow: none;
  --cad-fundo: #FFFFFF; --cad-linha: #52525B;
}
.floorplan-cadeira { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.floorplan-cadeira * { fill: var(--cad-fundo); stroke: var(--cad-linha); stroke-width: 1.5px; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
html body .floorplan-seat-dot .floorplan-seat-dot-line:not(#love-h-a) { position: relative; z-index: 1; }
html body .floorplan-seat-dot.is-assigned:not(#love-h-a) { --cad-fundo: #FFFFFF; --cad-linha: #181D24; color: #181D24; }
html body .floorplan-seat-dot.is-confirmed:not(#love-h-a) { --cad-fundo: #181D24; --cad-linha: #181D24; color: #FFFFFF; }
html body .floorplan-seat-dot.is-declined:not(#love-h-a) { --cad-fundo: #FEF2F2; --cad-linha: #F87171; color: #F87171; }
html body .floorplan-seat-dot.tem-restricao:not(#love-h-a) { --cad-fundo: var(--cor-restricao); --cad-linha: var(--cor-restricao-borda); }
html body .floorplan-seat-dot.is-dragover:not(#love-h-a) { --cad-linha: #537bae; box-shadow: none; }
body[data-theme="dark"] .floorplan-mesa-core { border-color: #A1A1AA !important; }
body[data-theme="dark"] .floorplan-seat-dot { --cad-fundo: #252525; --cad-linha: #A1A1AA; }
body[data-theme="dark"] .floorplan-seat-dot.is-confirmed { --cad-fundo: #EBF4FF; --cad-linha: #EBF4FF; color: #000000 !important; }
/* Contorno da mesa como sombra interna (borda CSS de 1,5px é arredondada para 1px). */
html body .floorplan-mesa-core:not(#love-h-a) { border: 0 !important; box-shadow: inset 0 0 0 calc(1.5px / (var(--escala-planta, 1) * var(--escala-mesa, 1))) #52525B !important; }
html body .floorplan-el.is-mesa:hover .floorplan-mesa-core:not(#love-h-a) { box-shadow: inset 0 0 0 calc(1.5px / (var(--escala-planta, 1) * var(--escala-mesa, 1))) #181D24 !important; }
body[data-theme="dark"] .floorplan-mesa-core { box-shadow: inset 0 0 0 calc(1.5px / (var(--escala-planta, 1) * var(--escala-mesa, 1))) #A1A1AA !important; }

/* Recados recebidos: só a tabela (sem a busca/total e o vazio dos presentes),
   ocupando a altura da tela mesmo vazia, como em Meus convidados. */
html body #tab-gifts:has(#gifts-panel-messages:not(.hidden)) > div:has(> #gifts-panel-products):not(#love-h-a) { display: none !important; }
html body #tab-gifts.active:has(#gifts-panel-messages:not(.hidden)):not(#love-h-a) { display: flex !important; flex-direction: column; flex: 1 0 auto; }
html body #gifts-panel-messages:not(.hidden):not(#love-h-a) { display: flex; flex-direction: column; flex: 1 0 auto; }
html body #gifts-panel-messages #recados-raiz:not(#love-h-a) { flex: 1 0 auto; display: flex; flex-direction: column; }
html body #recados-raiz .recados-caixa:not(#love-h-a) { flex: 1 0 auto; display: flex; flex-direction: column; min-height: 420px; }
html body #recados-raiz .recados-caixa > .overflow-x-auto:not(#love-h-a) { flex: 1 0 auto; }

/* Cadeira um pouco maior (36px) para as iniciais respirarem; contorno único, sem linha entre encosto e assento. */
html body .floorplan-seat-dot:not(#love-h-a) { width: 36px; height: 36px; min-width: 36px; max-width: 36px; min-height: 36px; }

/* Recados recebidos vazio: texto no centro da caixa; link para Meus presentes. */
html body #recados-raiz .recados-caixa .love-tabela:has(.recados-vazio):not(#love-h-a) { height: 100%; }
html body #recados-raiz .recados-caixa > .overflow-x-auto:not(#love-h-a) { display: flex; flex-direction: column; }
html body #recados-raiz .recados-caixa .love-tabela:has(.recados-vazio):not(#love-h-a) { flex: 1 0 auto; }
html body #recados-raiz td.recados-vazio:not(#love-h-a) { text-align: center !important; vertical-align: middle !important; border-bottom: 0 !important; }
html body #recados-raiz button.recados-link:not(#love-h-a) { padding: 0; background: none; border: 0; font: inherit; font-weight: 600; color: #183b54; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
body[data-theme="dark"] #recados-raiz button.recados-link { color: #FFFFFF !important; }
html body #recados-raiz td.recados-vazio:not(#love-h-a) { line-height: 1.7; }

/* Contas bancárias: Cadastrar conta abre dentro da caixa (no lugar da tabela). */
.cart-form-sub { margin: 4px 0 0; font-size: 13px; color: #71717A; }
html body #carteira-raiz .cart-form-corpo:not(#love-h-a) { display: flex; flex-direction: column; gap: 16px; padding: 4px 24px 24px; max-width: 640px; }
html body #carteira-raiz .cart-form-corpo .cart-metodos:not(#love-h-a) { margin: 0; }
html body #carteira-raiz .cart-form-acoes:not(#love-h-a) { display: flex; align-items: center; justify-content: flex-end; gap: 16px; }
html body #carteira-raiz .cart-form-acoes .cart-btn-escuro:not(#love-h-a) { margin-top: 0; }

/* Carteira › Contas bancárias: tabela no padrão de Meus convidados (sem busca),
   aviso de documentos com ilustração e verificação de identidade na página. */
html body #carteira-raiz .cart-contas-cab:not(#love-h-a) { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--divisor-suave, rgba(0,0,0,.04)); }
.cart-contas-cab-texto { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
html body #carteira-raiz .cart-contas-cab .cart-titulo:not(#love-h-a) { margin: 0; font-size: 15px; }
html body #carteira-raiz .cart-contas-cab .cart-btn-escuro:not(#love-h-a) { margin-top: 0; height: 38px; }
html body #carteira-raiz .cart-contas-tabela:not(#love-h-a) { display: flex; flex-direction: column; min-height: 420px; }
html body #carteira-raiz .cart-contas-tabela > .overflow-x-auto:not(#love-h-a) { flex: 1 0 auto; display: flex; flex-direction: column; }
html body #carteira-raiz .cart-contas-tabela .love-tabela:has(.cart-contas-vazio):not(#love-h-a) { flex: 1 0 auto; height: 100%; }
html body #carteira-raiz td.cart-contas-vazio:not(#love-h-a) { text-align: center !important; vertical-align: middle !important; border-bottom: 0 !important; color: #71717A; }
html body #carteira-raiz .cart-contas-tabela td:not(#love-h-a) { white-space: nowrap; }
.cart-conta-em_analise { background: #EBF4FF; color: #183b54; }
.cart-conta-aprovado { background: #ECFDF3; color: #067647; }
.cart-conta-recusado { background: #F4F4F5; color: #52525B; }
html body #carteira-raiz button.cart-remover:not(#love-h-a) { padding: 0; background: none; border: 0; font: inherit; font-size: 13px; font-weight: 500; color: #52525B; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(82, 82, 91, 0.35); }
html body #carteira-raiz button.cart-remover:not(#love-h-a):hover { color: #181D24; text-decoration-color: #181D24; }

.cart-docs-aviso { display: flex; align-items: center; gap: 40px; padding: 28px 40px; }
.cart-docs-ilustra { flex: 0 0 140px; width: 140px; height: 140px; }
.cart-docs-ilustra svg { width: 100%; height: 100%; display: block; }
html body .cart-docs-texto h3:not(#love-h-a) { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -0.025em; line-height: 1.25; color: #18181B; }
html body .cart-docs-texto p:not(#love-h-a) { margin: 12px 0 0; font-size: 14px; line-height: 1.6; color: #3F3F46; }
html body .cart-docs-texto .cart-btn-escuro:not(#love-h-a) { margin-top: 20px; }
@media (max-width: 640px) { .cart-docs-aviso { flex-direction: column; align-items: flex-start; gap: 20px; padding: 24px; } .cart-docs-ilustra { flex-basis: auto; width: 110px; height: 110px; } }

html body #carteira-raiz .cart-verif:not(#love-h-a) { overflow: hidden; padding-bottom: 32px; }
html body .cart-verif-faixa:not(#love-h-a) { padding: 40px 32px 96px; background-color: #EBF4FF; background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27160%27%20height%3D%2728%27%20viewBox%3D%270%200%20160%2028%27%3E%3Cpath%20d%3D%27M0%2014%20C20%204%2060%204%2080%2014%20S140%2024%20160%2014%27%20fill%3D%27none%27%20stroke%3D%27white%27%20stroke-opacity%3D%270.75%27%20stroke-width%3D%271.2%27%2F%3E%3C%2Fsvg%3E"); background-size: 160px 28px; }
html body .cart-verif-faixa h3:not(#love-h-a) { margin: 0; max-width: 560px; font-size: 28px; font-weight: 700; letter-spacing: -0.025em; line-height: 1.25; color: #18181B; }
html body .cart-verif-faixa p:not(#love-h-a) { margin: 12px 0 0; font-size: 15px; color: #3F3F46; }
html body .cart-verif-cartao:not(#love-h-a) { position: relative; margin: -64px 32px 0; max-width: 760px; padding: 24px 28px; background: #FFFFFF; border: 1px solid var(--borda-suave, rgba(0,0,0,.06)); border-radius: 10px; box-shadow: var(--anel-suave, 0 0 0 1px rgba(0,0,0,.03)); display: flex; flex-direction: column; gap: 16px; }
html body .cart-verif-titulo:not(#love-h-a) { margin: 0; padding-bottom: 14px; border-bottom: 1px solid #E4E4E7; font-size: 15px; font-weight: 700; color: #18181B; }
.cart-verif-intro { margin: 0; font-size: 14px; color: #52525B; }
.cart-verif-lista { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.cart-verif-lista li { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; color: #3F3F46; line-height: 1.5; }
.cart-verif-lista svg { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px; color: #183b54; }
.cart-verif-arquivos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: -8px; }
html body .cart-arquivo:not(#love-h-a) { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 112px; padding: 16px; border: 1px dashed #D4D4D8; border-radius: 8px; background: #FFFFFF; text-align: center; cursor: pointer; }
html body .cart-arquivo:not(#love-h-a):hover, html body .cart-arquivo.tem-arquivo:not(#love-h-a) { border-color: #181D24; }
.cart-arquivo input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.cart-arquivo svg { width: 22px; height: 22px; color: #71717A; }
.cart-arquivo b { font-size: 13px; font-weight: 600; color: #18181B; }
.cart-arquivo span { font-size: 12px; color: #71717A; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart-arquivo.tem-arquivo svg { color: #183b54; }
@media (max-width: 640px) { html body .cart-verif-faixa:not(#love-h-a) { padding: 28px 24px 88px; } html body .cart-verif-faixa h3:not(#love-h-a) { font-size: 22px; } html body .cart-verif-cartao:not(#love-h-a) { margin: -64px 16px 0; padding: 20px; } .cart-verif-arquivos { grid-template-columns: 1fr; } }

body[data-theme="dark"] .cart-docs-texto h3, body[data-theme="dark"] .cart-verif-faixa h3, body[data-theme="dark"] .cart-verif-titulo, body[data-theme="dark"] .cart-arquivo b { color: #FFFFFF !important; }
body[data-theme="dark"] .cart-docs-texto p, body[data-theme="dark"] .cart-verif-faixa p, body[data-theme="dark"] .cart-verif-lista li { color: #A1A1AA !important; }
body[data-theme="dark"] .cart-verif-faixa { background-color: #1E2733 !important; background-image: none !important; }
body[data-theme="dark"] .cart-verif-cartao, body[data-theme="dark"] .cart-arquivo { background: #252525 !important; border-color: #404040 !important; }


/* Recados recebidos vazio: envelope com coração acima do texto. */
html body #recados-raiz .recados-vazio-icone:not(#love-h-a) { display: block; width: 48px; height: 48px; margin: 0 auto 14px; color: #D4D4D8; }
body[data-theme="dark"] #recados-raiz .recados-vazio-icone { color: #52525B; }
body[data-theme="dark"] #recados-raiz .recados-vazio-icone path[fill] { fill: #252525; }

/* Pop-up Criar/Editar presente: sem as linhas horizontais do cabeçalho e do rodapé. */
html body #drawer-add-gift > div:first-child:not(#love-h-a) { border-bottom: 0 !important; }
html body #form-add-gift > .gift-campo-salvar:not(#love-h-a) { border-top: 0 !important; }

/* Checklist: título das tarefas prontas é clicável (sem sublinhado) e leva à
   página da plataforma. */
html body button.chk-titulo-link:not(#love-h-a) { display: block; padding: 0; margin: 0; background: none; border: 0; font: inherit; text-align: left; cursor: pointer; }
html body .chk-tarefa:not(.is-feita) button.chk-titulo-link:not(#love-h-a):hover { color: #183b54; }

/* Pop-up Adicionar/Editar tarefa no padrão do pop-up de presente: 880px, duas
   colunas (campos à esquerda, notas à direita), cabeçalho com o X. */
html body .chk-modal-card:not(#love-h-a) { max-width: 880px; padding: 0; border: 1px solid var(--borda-suave, rgba(0,0,0,.06)); box-shadow: var(--sombra-overlay, 0 8px 24px rgba(0, 0, 0, 0.08)); max-height: calc(100vh - 48px); overflow-y: auto; }
.chk-modal-cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 24px 14px; }
html body .chk-modal-cab .chk-modal-titulo:not(#love-h-a) { margin: 0; }
html body button.chk-modal-x:not(#love-h-a) { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin-right: -6px; padding: 0; background: none; border: 0; border-radius: 8px; color: #A1A1AA; cursor: pointer; }
html body button.chk-modal-x:not(#love-h-a):hover { color: #181D24; }
.chk-modal-x svg { width: 20px; height: 20px; }
.chk-modal-salvar-topo { display: none; }
html body #chk-modal .chk-form:not(#love-h-a) { padding: 18px 24px 22px; }
.chk-form-colunas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px 32px; align-items: stretch; }
.chk-form-col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
html body #chk-modal .chk-campo-notas:not(#love-h-a) { flex: 1 1 auto; display: flex; flex-direction: column; }
html body #chk-modal .chk-campo-notas textarea:not(#love-h-a) { flex: 1 1 auto; min-height: 120px; resize: none; }
@media (max-width: 720px) { .chk-form-colunas { grid-template-columns: minmax(0, 1fr); } }
html body .chk-modal-card:not(#love-h-a) { min-height: min(563px, calc(100vh - 48px)); display: flex; flex-direction: column; }
html body #chk-modal .chk-form:not(#love-h-a) { flex: 1 1 auto; display: flex; flex-direction: column; }
html body #chk-modal .chk-form-colunas:not(#love-h-a) { flex: 1 1 auto; }
html body #chk-modal .chk-form-acoes:not(#love-h-a) { margin-top: auto; padding-top: 18px; }

/* "Adicionar/Editar tarefa" do Checklist em tela cheia no celular — mesmo
   visual e posicionamento da ficha de "Adicionar convidado" (Meus
   Convidados): seta de voltar + título centralizado + Salvar no topo,
   cartão branco com os campos. Desktop mantém o pop-up centralizado. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .chk-modal:not([hidden]):not(#love-h-a) {
    position: fixed; inset: 0; bottom: var(--bottom-bar-height-mobile, 64px); z-index: 58;
    padding: 0; align-items: stretch; justify-content: flex-start;
    background: linear-gradient(180deg, #EEF1F3 0%, #F6F7F8 40%, #F6F7F8 100%);
  }
  html body .chk-modal-card:not(#love-h-a) {
    width: 100%; max-width: none; height: 100%; min-height: 0; max-height: none;
    margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent;
    overflow: hidden;
  }
  html body .chk-modal-cab:not(#love-h-a) {
    padding: calc(env(safe-area-inset-top, 0px) + 12px) 16px 8px; flex-shrink: 0;
  }
  html body .chk-modal-titulo:not(#love-h-a) {
    flex: 1 1 auto; min-width: 0; margin: 0; font-size: 17px; font-weight: 600;
    text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  html body button.chk-modal-x:not(#love-h-a) {
    width: 44px; height: 44px; margin-right: 0; background: transparent !important; border: 0 !important; color: #18181B;
  }
  html body .chk-modal-x svg:not(#love-h-a) { width: 24px; height: 24px; }
  html body .chk-modal-salvar-topo:not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
    height: 44px; padding: 0 18px; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 8px;
    font-family: inherit; font-size: 16px; font-weight: 600; color: #183b54; cursor: pointer;
  }
  html body #chk-modal .chk-form:not(#love-h-a) {
    padding: 8px 16px 32px; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
  }
  html body #chk-modal .chk-form-colunas:not(#love-h-a) {
    margin-top: 8px; padding: 18px 16px; background: #FFFFFF; border-radius: 10px;
  }
  html body #chk-modal .chk-form-acoes:not(#love-h-a) { display: none !important; }
  body[data-theme="dark"] .chk-modal:not([hidden]) { background: #1A1A1A; }
  body[data-theme="dark"] #chk-modal .chk-form-colunas { background: #252525; }
  body[data-theme="dark"] .chk-modal-salvar-topo { background: #252525; border-color: #333333; color: #FFFFFF; }
  body[data-theme="dark"] .chk-modal-titulo, body[data-theme="dark"] .chk-modal-x { color: #FFFFFF; }
}

/* Cadeira: assento centralizado na cadeira, iniciais no meio com a mesma margem dos quatro lados. */
html body .floorplan-seat-dot:not(#love-h-a) { padding: 0; justify-content: center; align-items: center; }
html body .floorplan-seat-dot .floorplan-seat-dot-line:not(#love-h-a) { max-width: 22px; text-align: center; line-height: 1; }

/* Pop-up Adicionar/Editar convidado: sem a linha horizontal abaixo do título. */
html body #drawer-add-guest > div:first-child:not(#love-h-a) { border-bottom: 0 !important; }

/* Criar evento › "Ou digite outro tipo": sugestões do catálogo de tipos. */
.tipo-evento-sugestoes { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 30; display: flex; flex-direction: column; padding: 4px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); max-height: 240px; overflow-y: auto; }
.tipo-evento-sugestoes[hidden] { display: none; }
html body button.tipo-evento-opcao:not(#love-h-a) { display: block; width: 100%; padding: 8px 10px; background: none; border: 0; border-radius: 6px; font: inherit; font-size: 13px; color: #18181B; text-align: left; cursor: pointer; }
html body button.tipo-evento-opcao:not(#love-h-a):hover, html body button.tipo-evento-opcao.is-ativa:not(#love-h-a) { background: #F4F4F5; }
body[data-theme="dark"] .tipo-evento-sugestoes { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] button.tipo-evento-opcao { color: #FFFFFF !important; }
body[data-theme="dark"] button.tipo-evento-opcao:hover, body[data-theme="dark"] button.tipo-evento-opcao.is-ativa { background: #333333 !important; }

/* Drop-down "Seus eventos": mesmo texto do menu do perfil
   (itens 14.5px/500 cinza-escuro; título como o nome no topo do perfil). */
html body #dropdown-events-list > div:first-child:not(#love-h-a) {
  font-size: 0.875rem; font-weight: 700; color: #18181B;
  text-transform: none; letter-spacing: normal; line-height: 1.6;
  padding: 0.375rem 0.875rem;
}
html body #dropdown-events-list .event-switcher-item:not(#love-h-a) {
  font-size: 14.5px; font-weight: 500; line-height: 1.5;
  padding: 0.5625rem 0.8125rem;
}
html body #dropdown-events-list .event-switcher-item:not(#love-h-a) span { font-weight: 500; }
html body #dropdown-events-list .event-switcher-item.is-inactive:not(#love-h-a) span { color: #334155; }
html body #btn-dropdown-create-new-event:not(#love-h-a) { font-size: 14.5px; padding-left: 0.875rem; padding-right: 0.875rem; }
body[data-theme="dark"] #dropdown-events-list > div:first-child { color: #F4F4F5 !important; }

/* Criar solicitação: descrição com tamanho fixo (sem puxar o canto) e a
   contagem de caracteres no canto inferior direito da caixa. */
html body .rfp-desc-caixa:not(#love-h-a) { position: relative; }
html body .rfp-desc-caixa .rfp-descricao:not(#love-h-a) { display: block; resize: none; padding-bottom: 28px; }
html body .rfp-desc-contador:not(#love-h-a) {
  position: absolute; right: 12px; bottom: 8px; pointer-events: none;
  font-size: 11px; font-weight: 500; color: #A1A1AA; font-variant-numeric: tabular-nums;
}
/* Imagem de referência: quadradinhos como em Conteúdo de mídia (Hub). */
html body .rfp-fotos-grade:not(#love-h-a) { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.6rem; }
@media (max-width: 640px) { html body .rfp-fotos-grade:not(#love-h-a) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
html body .rfp-foto-quadro:not(#love-h-a),
html body .rfp-foto-adicionar:not(#love-h-a),
html body .rfp-foto-vaga:not(#love-h-a) { aspect-ratio: 1; border-radius: 10px; }
html body .rfp-foto-quadro:not(#love-h-a) { position: relative; overflow: hidden; background: #F4F4F5; border: 1px solid #E4E4E7; }
html body .rfp-foto-quadro img:not(#love-h-a) { width: 100%; height: 100%; object-fit: cover; display: block; }
html body .rfp-foto-remover:not(#love-h-a) {
  position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border: 0; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(24, 24, 27, 0.75); color: #FFFFFF; cursor: pointer;
}
html body .rfp-foto-remover:hover:not(#love-h-a) { background: rgba(24, 24, 27, 0.92); }
html body .rfp-foto-remover svg:not(#love-h-a) { width: 12px; height: 12px; }
html body .rfp-foto-adicionar:not(#love-h-a) {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem;
  border: 1.5px dashed #E4E4E7; background: #FAFAFA; cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}
html body .rfp-foto-adicionar:hover:not(#love-h-a),
html body .rfp-foto-adicionar.arrastando:not(#love-h-a) { border-color: #183b54; background: #F4F8FC; }
html body .rfp-foto-mais:not(#love-h-a) {
  width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: #FFFFFF; border: 1px solid #E4E4E7; color: #183b54;
}
html body .rfp-foto-mais svg:not(#love-h-a) { width: 13px; height: 13px; }
html body .rfp-foto-adicionar-texto:not(#love-h-a) { font-size: 0.6875rem; color: #A1A1AA; }
html body .rfp-foto-vaga:not(#love-h-a) { display: block; border: 1.5px dashed #E4E4E7; background: #FCFCFC; cursor: pointer; transition: border-color .15s ease; }
html body .rfp-foto-vaga:hover:not(#love-h-a) { border-color: #A1A1AA; }
body[data-theme="dark"] .rfp-foto-adicionar, body[data-theme="dark"] .rfp-foto-vaga { background: #1F1F1F !important; border-color: #404040 !important; }
body[data-theme="dark"] .rfp-foto-mais { background: #333333 !important; border-color: #404040 !important; color: #EBF4FF !important; }
body[data-theme="dark"] .rfp-foto-quadro { background: #333333 !important; border-color: #404040 !important; }

/* Criar solicitação no mesmo estilo de caixa do Hub (Adicionar novo produto):
   rótulos 14px/700 pretos, campos 14px/400 com 10px 14px de respiro,
   24px entre os campos e sem linhas divisórias entre as seções. */
html body #b2b-pedidos-view .rfp-rotulo-texto:not(#love-h-a),
html body #b2b-pedidos-view .rfp-pergunta:not(#love-h-a) {
  font-size: 14px; font-weight: 700; color: #18181B; letter-spacing: -0.025em;
}
html body #b2b-pedidos-view .rfp-rotulo:not(#love-h-a) { gap: 9.6px; color: #18181B; }
html body #b2b-pedidos-view .rfp-pergunta:not(#love-h-a) { margin-bottom: 9.6px; }
html body #b2b-pedidos-view .rfp-rotulo-texto .rfp-opcional:not(#love-h-a),
html body #b2b-pedidos-view .rfp-pergunta .rfp-opcional:not(#love-h-a) { font-weight: 400; color: #A1A1AA; letter-spacing: normal; }
html body #b2b-pedidos-view .rfp-campo:not(#love-h-a),
html body #b2b-pedidos-view .rfp-cat-gatilho:not(#love-h-a) {
  height: auto; min-height: 43px; padding: 10px 14px; font-size: 14px; font-weight: 400; letter-spacing: normal;
  line-height: 21px; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 8px; background-color: #FFFFFF; box-shadow: none;
}
html body #b2b-pedidos-view .rfp-desc-caixa .rfp-descricao:not(#love-h-a) { padding-bottom: 28px; }
html body #b2b-pedidos-view .rfp-secao + .rfp-secao:not(#love-h-a) { border-top: 0; padding-top: 0; margin-top: 24px; }
body[data-theme="dark"] #b2b-pedidos-view .rfp-rotulo-texto,
body[data-theme="dark"] #b2b-pedidos-view .rfp-pergunta { color: #F4F4F5 !important; }
html body #b2b-pedidos-view .rfp-moeda .rfp-campo:not(#love-h-a) { padding-left: 36px; }
body[data-theme="dark"] #b2b-pedidos-view .rfp-secao + .rfp-secao { border-top: 0 !important; }
html body #b2b-pedidos-view .rfp-cat-gatilho:not(#love-h-a) { height: 43px; min-height: 0; padding: 0 14px; }

/* Criar solicitação igual a Adicionar novo produto do Hub: título grande e
   subtítulo à esquerda, caixa do formulário à direita (com borda inteira,
   24px abaixo das abas); "Serviço avulso" e "Evento completo" um embaixo do outro. */
html body #b2b-pedidos-view .rfp-editor:not([hidden]):not(#love-h-a) {
  display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); column-gap: 3rem; align-items: start;
  max-width: 1040px; margin: 0; padding-top: 24px !important;
}
html body #b2b-pedidos-view .rfp-editor .rfp-intro:not(#love-h-a) { display: block; margin: 0; }
html body #b2b-pedidos-view .rfp-etapa-titulo:not(#love-h-a) { margin: 0.25rem 0 0; font-size: 2rem; font-weight: 700; line-height: 1.2; letter-spacing: -0.03em; color: #18181B; }
html body #b2b-pedidos-view .rfp-etapa-sub:not(#love-h-a) { margin: 1rem 0 0; font-size: 0.875rem; line-height: 1.6; color: #52525B; }
html body #b2b-pedidos-view .rfp-caixa-form:not(#love-h-a) { border-top: 1px solid #E4E4E7 !important; border-radius: 10px !important; }
html body #b2b-pedidos-view .rfp-modos:not(#love-h-a) { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 900px) {
  html body #b2b-pedidos-view .rfp-editor:not([hidden]):not(#love-h-a) { display: flex; flex-direction: column; }
  html body #b2b-pedidos-view .rfp-etapa-titulo:not(#love-h-a) { font-size: 1.5rem; }
  html body #b2b-pedidos-view .rfp-editor .rfp-intro:not(#love-h-a) { margin-bottom: 1rem; }
}
body[data-theme="dark"] #b2b-pedidos-view .rfp-etapa-titulo { color: #FFFFFF !important; }
body[data-theme="dark"] #b2b-pedidos-view .rfp-etapa-sub { color: #A1A1AA !important; }
body[data-theme="dark"] #b2b-pedidos-view .rfp-caixa-form { border-color: #404040 !important; }

/* Categoria na largura toda (igual a Título e aos cards de cima) e o
   drop-down de serviços do Evento completo com caixinhas de marcar. */
html body #b2b-pedidos-view .rfp-secao .rfp-cat-select:not(#love-h-a) { max-width: none; width: 100%; }
html body .rfp-cat-opcao.rfp-cat-opcao-check:not(#love-h-a) { display: flex; align-items: center; gap: 10px; font-weight: 500; }
html body .rfp-cat-opcao.rfp-cat-opcao-check.ativa:not(#love-h-a) { background: #FFFFFF; color: #18181B; }
html body .rfp-cat-opcao.rfp-cat-opcao-check:not(#love-h-a):hover { background: #FAFAFA; }
.rfp-cat-caixinha { width: 18px; height: 18px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border: 1.5px solid #D4D4D8; border-radius: 4px; background: #FFFFFF; color: transparent; }
.rfp-cat-caixinha svg { width: 12px; height: 12px; }
.rfp-cat-opcao-check.ativa .rfp-cat-caixinha { background: #183b54; border-color: #183b54; color: #FFFFFF; }
body[data-theme="dark"] .rfp-cat-caixinha { background: #333333 !important; border-color: #52525B !important; }
body[data-theme="dark"] .rfp-cat-opcao-check.ativa .rfp-cat-caixinha { background: #EBF4FF !important; border-color: #EBF4FF !important; color: #000000 !important; }
body[data-theme="dark"] .rfp-cat-opcao.rfp-cat-opcao-check.ativa { background: #252525 !important; }

/* Telas grandes: só o conteúdo de cada página fica numa faixa centralizada
   de até 1280px (o cabeçalho continua com o título na esquerda e os botões e
   a busca na direita), em vez de esticar até as bordas. Abaixo disso, continua a margem
   de 32px. Ficam de fora o editor do
   site e o mapa do evento (usam a tela toda) e Mensagens. */
:root { --love-conteudo-max: 1280px; }
@media (min-width: 640px) {
  html body #view-event-os-dashboard .dashboard-tab-content > [class*="px-8"]:not(#love-h-a),
  html body #view-event-os-dashboard #b2b-insurance-view > [class*="px-8"]:not(#love-h-a) {
    padding-left: max(2rem, calc((100% - var(--love-conteudo-max)) / 2)) !important;
    padding-right: max(2rem, calc((100% - var(--love-conteudo-max)) / 2)) !important;
  }
}
/* Criar solicitação ocupa a faixa toda (título à esquerda alinhado com o
   cabeçalho e as abas; caixa até o fim da faixa). */
html body #b2b-pedidos-view .rfp-editor:not([hidden]):not(#love-h-a) { max-width: none; }
html body #view-event-os-dashboard #tab-overview.dashboard-tab-content:not(#love-h-a) { max-width: var(--love-conteudo-max); margin-left: auto; margin-right: auto; }

/* Criar solicitação: Continuar apagado (como no Hub) enquanto a etapa não
   está toda preenchida. */
html body .rfp-editor .rfp-rodape button.btn-primary:disabled:not(#love-h-a) { opacity: 0.5; cursor: default; pointer-events: none; }

/* Criar solicitação, etapa 2: data e horários numa linha (data inteira
   visível), depois UF/cidade/bairro e convidados; cada aviso embaixo do campo. */
html body #b2b-pedidos-view .rfp-ev-grade:not(#love-h-a) { display: grid; gap: 12px; align-items: start; }
html body #b2b-pedidos-view .rfp-ev-tempo:not(#love-h-a) { grid-template-columns: minmax(170px, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); }
html body #b2b-pedidos-view .rfp-ev-local:not(#love-h-a) { grid-template-columns: 96px minmax(0, 1.3fr) minmax(0, 1fr); margin-top: 24px; }
html body #b2b-pedidos-view .rfp-ev-convidados:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-top: 24px; }
html body #b2b-pedidos-view .rfp-ev-campo .rfp-campo:not(#love-h-a) { width: 100%; min-width: 0; }
html body #b2b-pedidos-view .rfp-ev-campo .rfp-erro:not(#love-h-a) { margin: 6px 0 0; }
html body #b2b-pedidos-view .rfp-ev-campo select.rfp-campo:not(#love-h-a) { appearance: none; -webkit-appearance: none; padding-right: 30px; background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A1A1AA' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 14px; cursor: pointer; }
html body #b2b-pedidos-view .rfp-ev-campo input:disabled:not(#love-h-a) { background: #F4F4F5; color: #A1A1AA; }
@media (max-width: 640px) {
  html body #b2b-pedidos-view .rfp-ev-tempo:not(#love-h-a),
  html body #b2b-pedidos-view .rfp-ev-convidados:not(#love-h-a) { grid-template-columns: minmax(0, 1fr); }
  html body #b2b-pedidos-view .rfp-ev-local:not(#love-h-a) { grid-template-columns: 80px minmax(0, 1fr); }
}
/* Orçamento De/Até ocupando a largura toda. */
html body #b2b-pedidos-view .rfp-orcamento:not(#love-h-a) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; max-width: none; width: 100%; }
html body #b2b-pedidos-view .rfp-orcamento .rfp-rotulo:not(#love-h-a),
html body #b2b-pedidos-view .rfp-orcamento .rfp-moeda:not(#love-h-a) { width: 100%; }
/* Continuar apagado enquanto falta algo, mas clicável (mostra o que falta). */
html body .rfp-editor .rfp-rodape button.btn-primary.is-incompleto:not(#love-h-a) { opacity: 0.5; }
html body .rfp-editor .rfp-rodape button.btn-primary.is-incompleto:not(#love-h-a):hover { background: #181D24 !important; }
html body #rfp-editor .rfp-erro-geral:not(#love-h-a) { font-size: 13px; text-align: left; }

/* ==========================================================================
   Fornecedores › Contratos (js/contratos.js): lista no modelo de Minhas
   solicitações e página do contrato (visão geral, atualizações, detalhes).
   ========================================================================== */
html body .ct-caixa:not(#love-h-a) { padding: 0; overflow: hidden; }
.ct-linha { display: grid; grid-template-columns: minmax(0, 1fr) 260px auto; align-items: center; gap: 24px; padding: 22px 24px; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
.ct-linha:last-child { border-bottom: 0; }
html body button.ct-titulo:not(#love-h-a) { display: block; max-width: 100%; margin: 0 0 14px; padding: 0; background: none; border: 0; font-family: inherit; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; color: #183b54; text-align: left; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: underline; text-decoration-color: rgba(24, 59, 84, 0.3); text-underline-offset: 4px; }
html body button.ct-titulo:not(#love-h-a):hover { text-decoration-color: #183b54; }
html body button.ct-quem:not(#love-h-a) { display: flex; align-items: center; gap: 12px; padding: 0; background: none; border: 0; font-family: inherit; text-align: left; cursor: pointer; min-width: 0; max-width: 100%; }
.ct-foto { width: 44px; height: 44px; border-radius: 999px; object-fit: cover; flex-shrink: 0; border: 1px solid rgba(0, 0, 0, 0.06); background: #F4F4F5; }
.ct-foto-grande { width: 52px; height: 52px; }
.ct-inicial { display: inline-flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 600; color: #183b54; background: #EEF3F7; }
.ct-quem-texto { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ct-quem-texto b { font-size: 15px; font-weight: 600; color: #18181B; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct-quem-texto span { font-size: 13px; color: #71717A; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body button.ct-quem:not(#love-h-a):hover .ct-quem-texto b { text-decoration: underline; text-underline-offset: 3px; }
.ct-datas { margin: 14px 0 0; font-size: 13px; color: #71717A; }
.ct-linha-meio { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.ct-valor { margin: 0; font-size: 14px; font-weight: 600; color: #18181B; font-variant-numeric: tabular-nums; }
.ct-valor span { font-weight: 400; color: #71717A; }
.ct-barra { width: 100%; max-width: 220px; height: 6px; border-radius: 999px; background: #F4F4F5; overflow: hidden; }
.ct-barra span { display: block; height: 100%; border-radius: 999px; background: #183b54; }
.ct-pago { margin: 0; font-size: 13px; color: #71717A; font-variant-numeric: tabular-nums; }
.ct-linha-acoes { display: flex; align-items: center; gap: 8px; }
html body button.ct-botao:not(#love-h-a) { height: 36px; display: inline-flex; align-items: center; gap: 6px; padding: 0 14px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font-family: inherit; font-size: 13px; font-weight: 600; color: #18181B; cursor: pointer; white-space: nowrap; box-shadow: none; }
html body button.ct-botao:not(#love-h-a):hover { border-color: #181D24; color: #181D24; background: #FFFFFF; }
.ct-botao svg { width: 16px; height: 16px; }
html body button.ct-botao-escuro:not(#love-h-a) { height: 40px; padding: 0 16px; background: #181D24; border: 1px solid #181D24; border-radius: 8px; font-family: inherit; font-size: 14px; font-weight: 600; color: #FFFFFF; cursor: pointer; }
.ct-selo { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; font-size: 12px; font-weight: 600; background: #F4F4F5; color: #3F3F46; white-space: nowrap; }
.ct-selo.is-andamento { background: #EEF3F7; color: #183b54; }
.ct-selo.is-quitado { background: #ECFDF3; color: #067647; }
.ct-selo.is-concluido { background: #F4F4F5; color: #3F3F46; }
.ct-selo.is-pendente { background: #F4F4F5; color: #52525B; }
.ct-selo.is-atrasado { background: #FEF3F2; color: #B42318; }
.ct-vazio { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 56px 24px; text-align: center; }
.ct-vazio-pequeno { padding: 24px 8px; }
.ct-vazio-titulo { margin: 0; font-size: 16px; font-weight: 600; color: #18181B; }
.ct-vazio-texto { margin: 0; max-width: 460px; font-size: 14px; line-height: 1.5; color: #71717A; }
.ct-carregando { padding: 40px 24px; }
.ct-vazio-icone svg { width: 36px; height: 36px; color: #A1A1AA; }
@media (max-width: 900px) {
  .ct-linha { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

/* Página do contrato */
html body button.ct-voltar:not(#love-h-a) { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 16px; padding: 0; background: none; border: 0; font-family: inherit; font-size: 14px; font-weight: 600; color: #52525B; cursor: pointer; }
html body button.ct-voltar:not(#love-h-a):hover { color: #181D24; }
.ct-voltar svg { width: 16px; height: 16px; }
.ct-topo { padding: 28px 28px 0; border: 1px solid #E4E4E7; border-radius: 10px; background: #FFFFFF; }
.ct-topo-linha { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ct-topo-situacao { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 13px; color: #71717A; }
html body .ct-topo-titulo:not(#love-h-a) { margin: 0; font-family: 'Inter', sans-serif; font-size: 26px; font-weight: 600; letter-spacing: -0.025em; line-height: 1.25; color: #18181B; }
.ct-topo-quem { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
html body .ct-abas:not(#love-h-a) { margin: 24px 0 0; border-bottom: 0; }
.ct-painel { margin-top: 24px; }
html body .ct-numeros:not(#love-h-a) { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; padding: 24px 0; }
.ct-numeros > div { display: flex; flex-direction: column; gap: 6px; padding: 0 24px; border-left: 1px solid rgba(0, 0, 0, 0.06); }
.ct-numeros > div:first-child { border-left: 0; }
.ct-numeros span { font-size: 13px; color: #52525B; }
.ct-numeros b { font-size: 22px; font-weight: 600; letter-spacing: -0.02em; color: #18181B; font-variant-numeric: tabular-nums; }
.ct-numeros small { font-size: 12px; color: #A1A1AA; }
.ct-colunas { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; margin-top: 32px; align-items: start; }
.ct-bloco { margin-bottom: 32px; }
html body .ct-bloco-titulo:not(#love-h-a), html body .ct-cartao-titulo:not(#love-h-a) { margin: 0 0 16px; font-family: 'Inter', sans-serif; font-size: 18px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; }
html body .ct-cartao:not(#love-h-a) { padding: 24px; }
.ct-cartao-sub { margin: -8px 0 16px; font-size: 14px; color: #71717A; }
.ct-lateral-topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ct-linha-tempo { list-style: none; margin: 0; padding: 0; }
.ct-marco { position: relative; display: flex; gap: 16px; padding-bottom: 24px; }
.ct-marco:last-child { padding-bottom: 0; }
.ct-marco::before { content: ""; position: absolute; left: 13px; top: 30px; bottom: 2px; width: 1px; background: #D4D4D8; }
.ct-marco:last-child::before { display: none; }
.ct-marco-bola { width: 28px; height: 28px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #A1A1AA; border-radius: 999px; background: #FFFFFF; color: #FFFFFF; }
.ct-marco.is-feito .ct-marco-bola { background: #183b54; border-color: #183b54; }
.ct-marco-bola svg { width: 15px; height: 15px; }
.ct-marco-corpo { min-width: 0; padding-top: 3px; }
.ct-marco-titulo { margin: 0; font-size: 14px; font-weight: 500; color: #18181B; }
.ct-marco-linha { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 8px 0 0; font-size: 14px; color: #18181B; }
.ct-marco-linha b { font-weight: 600; font-variant-numeric: tabular-nums; }
.ct-marco-data { font-size: 13px; color: #71717A; }
html body button.ct-link:not(#love-h-a) { margin-top: 8px; padding: 0; background: none; border: 0; font-family: inherit; font-size: 13px; font-weight: 600; color: #183b54; cursor: pointer; text-decoration: underline; text-decoration-color: rgba(24, 59, 84, 0.3); text-underline-offset: 3px; }
html body button.ct-link:not(#love-h-a):hover { text-decoration-color: #183b54; }
html body .ct-lateral-topo button.ct-link:not(#love-h-a) { margin: 0 0 16px; }
.ct-nota { margin: 16px 0 0; font-size: 13px; color: #71717A; }
.ct-texto { margin: 0; font-size: 14px; line-height: 1.6; color: #3F3F46; white-space: pre-line; }
.ct-atualizacoes { display: flex; flex-direction: column; gap: 20px; }
.ct-atualizacao { display: flex; flex-direction: column; gap: 8px; padding-bottom: 20px; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
.ct-atualizacao:last-child { padding-bottom: 0; border-bottom: 0; }
.ct-atualizacao-quando { margin: 0; font-size: 12px; font-weight: 500; color: #A1A1AA; }
.ct-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.ct-atualizacoes.is-resumo .ct-fotos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ct-fotos a { display: block; aspect-ratio: 1; border-radius: 8px; overflow: hidden; border: 1px solid rgba(0, 0, 0, 0.06); }
.ct-fotos img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ct-detalhes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 32px; margin: 0; }
.ct-detalhe dt { font-size: 13px; color: #71717A; }
.ct-detalhe dd { margin: 4px 0 0; font-size: 15px; font-weight: 500; color: #18181B; }
.ct-painel > .dash-card + .ct-bloco { margin-top: 32px; }
@media (max-width: 1100px) {
  .ct-colunas { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .ct-topo { padding: 20px 20px 0; }
  .ct-topo-linha { flex-direction: column; }
  html body .ct-numeros:not(#love-h-a) { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
  .ct-numeros > div:nth-child(3) { border-left: 0; }
  .ct-detalhes { grid-template-columns: minmax(0, 1fr); }
}
body[data-theme="dark"] .ct-topo { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .ct-quem-texto b, body[data-theme="dark"] .ct-valor, body[data-theme="dark"] .ct-topo-titulo, body[data-theme="dark"] .ct-numeros b, body[data-theme="dark"] .ct-bloco-titulo, body[data-theme="dark"] .ct-cartao-titulo, body[data-theme="dark"] .ct-marco-titulo, body[data-theme="dark"] .ct-marco-linha, body[data-theme="dark"] .ct-detalhe dd, body[data-theme="dark"] .ct-vazio-titulo { color: #FFFFFF !important; }
body[data-theme="dark"] .ct-texto { color: #D4D4D8 !important; }
body[data-theme="dark"] button.ct-titulo, body[data-theme="dark"] button.ct-link { color: #EBF4FF !important; }
body[data-theme="dark"] button.ct-botao { background: #252525 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] .ct-linha, body[data-theme="dark"] .ct-atualizacao, body[data-theme="dark"] .ct-numeros > div { border-color: #404040 !important; }
body[data-theme="dark"] .ct-marco-bola { background: #252525; }

/* Checkout do convite: recado escrito ou em vídeo (js/site-builder.js) */
.convite-recado { display: flex; flex-direction: column; gap: 0.35rem; }
.convite-recado-rotulo { margin: 0; font-size: 0.8125rem; font-weight: 600; color: inherit; }
.convite-recado-rotulo span { font-weight: 400; color: #A1A1AA; }
.convite-recado-ajuda { margin: 0; font-size: 0.8125rem; color: #71717A; }
.convite-recado-abas { display: flex; gap: 1.25rem; margin: 0.35rem 0 0.5rem; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
html body button.convite-recado-aba:not(#love-h-a) { margin: 0 0 -1px; padding: 0 0 0.55rem; background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; font: inherit; font-size: 0.8125rem; font-weight: 600; color: #A1A1AA; cursor: pointer; box-shadow: none; }
html body button.convite-recado-aba.is-ativo:not(#love-h-a) { color: #18181B; border-bottom-color: var(--bx-primary, #183b54); }
html body .convite-form textarea.convite-recado-texto:not(#love-h-a) { width: 100%; min-height: 84px; resize: none; overflow: hidden; }
.convite-recado-video-vazio { display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 0.3rem !important; padding: 1.4rem 1rem; border: 1px dashed #D4D4D8; border-radius: 10px; background: #FFFFFF; text-align: center; cursor: pointer; }
.convite-recado-video-vazio:hover { border-color: #181D24; }
.convite-recado-video-vazio svg { width: 28px; height: 28px; color: #71717A; }
.convite-recado-video-vazio b { font-size: 0.875rem; font-weight: 600; color: #18181B; }
.convite-recado-video-vazio span { font-size: 0.75rem; font-weight: 400; color: #A1A1AA !important; }
.convite-recado-video video { display: block; width: 100%; max-height: 320px; border-radius: 10px; background: #000; }
.convite-recado-video-acoes { display: flex; gap: 1rem; margin-top: 0.5rem; }
html body .convite-recado-video-acoes button:not(#love-h-a) { padding: 0; background: none; border: 0; font: inherit; font-size: 0.8125rem; font-weight: 600; color: #3F3F46; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(0, 0, 0, 0.2); }
html body .convite-recado-video-acoes button:not(#love-h-a):hover { color: #181D24; }

/* ==========================================================================
   Recebimento dos presentes (js/recebimento.js): aviso em Meus presentes e
   pop-up "Ativar recebimento" (dados + verificação facial).
   ========================================================================== */
#recebimento-aviso:empty { display: none; }
.rc-aviso { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; padding: 20px 24px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; }
.rc-aviso-titulo { margin: 0; font-size: 16px; font-weight: 600; letter-spacing: -0.02em; color: #18181B; }
.rc-aviso-sub { margin: 4px 0 0; font-size: 14px; line-height: 1.5; color: #71717A; }
.rc-passos { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 14px 0 0; padding: 0; list-style: none; }
.rc-passo { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: #3F3F46; }
.rc-passo-bola { width: 20px; height: 20px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #A1A1AA; border-radius: 999px; color: #FFFFFF; background: #FFFFFF; }
.rc-passo.is-feito { color: #71717A; }
.rc-passo.is-feito .rc-passo-bola { background: #183b54; border-color: #183b54; }
.rc-passo-bola svg { width: 12px; height: 12px; }
html body button.rc-link:not(#love-h-a) { padding: 0; background: none; border: 0; font: inherit; font-size: 13px; font-weight: 600; color: #183b54; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(24, 59, 84, 0.3); }
.rc-aviso-acao { flex-shrink: 0; }
html body button.rc-botao:not(#love-h-a) { height: 40px; padding: 0 18px; background: #183b54; border: 1px solid #183b54; border-radius: 8px; font-family: inherit; font-size: 14px; font-weight: 600; color: #FFFFFF; cursor: pointer; white-space: nowrap; box-shadow: none; }
html body button.rc-botao:not(#love-h-a):hover { background: #122c3f; border-color: #122c3f; }
html body button.rc-botao:not(#love-h-a):disabled { opacity: 0.5; cursor: default; }
html body button.rc-cancelar:not(#love-h-a) { padding: 0 6px; height: 40px; background: none; border: 0; font-family: inherit; font-size: 14px; font-weight: 600; color: #52525B; cursor: pointer; }
html body button.rc-cancelar:not(#love-h-a):hover { color: #181D24; }
@media (max-width: 700px) {
  .rc-aviso { flex-direction: column; align-items: stretch; }
}

.rc-fundo { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0, 0, 0, 0.45); }
.rc-popup { width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto; background: #FFFFFF; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.rc-popup-corpo { padding: 28px; }
html body .rc-popup-titulo:not(#love-h-a) { margin: 0; font-family: 'Inter', sans-serif; font-size: 20px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; }
.rc-popup-sub { margin: 6px 0 20px; font-size: 14px; line-height: 1.5; color: #71717A; }
.rc-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rc-campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rc-inteiro { grid-column: 1 / -1; }
.rc-rotulo { font-size: 14px; font-weight: 600; color: #18181B; }
html body .rc-campo input:not(#love-h-a), html body .rc-campo select:not(#love-h-a) { width: 100%; height: 43px; padding: 0 14px; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 8px; font-family: inherit; font-size: 14px; color: #18181B; box-shadow: none; outline: none; }
html body .rc-campo input:not(#love-h-a):focus, html body .rc-campo select:not(#love-h-a):focus { border-color: #181D24; }
.rc-erro { font-size: 12px; color: #B42318; }
.rc-erro-geral { margin: 16px 0 0; font-size: 13px; color: #B42318; }
.rc-nota { margin: 20px 0 0; font-size: 12px; line-height: 1.5; color: #A1A1AA; }
.rc-preparando { margin: 0; font-size: 14px; color: #52525B; }
.rc-rodape { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 24px; }
@media (max-width: 560px) {
  .rc-form { grid-template-columns: minmax(0, 1fr); }
  .rc-popup-corpo { padding: 20px; }
}
body[data-theme="dark"] .rc-aviso, body[data-theme="dark"] .rc-popup { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] .rc-aviso-titulo, body[data-theme="dark"] .rc-popup-titulo, body[data-theme="dark"] .rc-rotulo { color: #FFFFFF !important; }

/* ==========================================================================
   Pagamento do presente no convite publicado (Pix com QR Code ou cartão).
   ========================================================================== */
.convite-form .convite-campo-ajuda { font-size: 12px; font-weight: 400; color: #A1A1AA; }
.convite-pagar { display: flex; flex-direction: column; align-items: stretch; gap: 20px; padding-top: 8px; }
.convite-pagar-resumo { border: 1px solid #E4E4E7; border-radius: 10px; padding: 4px 16px; background: #FFFFFF; }
.convite-pagar-resumo > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; font-size: 14px; color: #52525B; border-top: 1px solid rgba(0, 0, 0, 0.04); }
.convite-pagar-resumo > div:first-child { border-top: 0; }
.convite-pagar-resumo strong { font-weight: 600; color: #18181B; font-variant-numeric: tabular-nums; white-space: nowrap; }
.convite-pagar-resumo .is-total span, .convite-pagar-resumo .is-total strong { font-size: 15px; font-weight: 600; color: #18181B; }
.convite-pagar-instrucao { margin: 0; font-size: 14px; line-height: 1.5; color: #52525B; text-align: center; }
.convite-pagar-qr { display: block; width: 220px; height: 220px; margin: 0 auto; border: 1px solid #E4E4E7; border-radius: 10px; }
.convite-pagar-copia { display: flex; flex-direction: column; gap: 10px; }
.convite-pagar-copia input { width: 100%; height: 43px; padding: 0 14px; border: 1px solid #E4E4E7; border-radius: 8px; background: #FAFAFA; font-family: inherit; font-size: 13px; color: #52525B; outline: none; }
.convite-pagar a.convite-botao { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.convite-pagar-status { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0; font-size: 13px; font-weight: 500; color: #71717A; }
.convite-pagar-ponto { width: 8px; height: 8px; border-radius: 999px; background: var(--bx-primary, #183b54); animation: convite-pagar-pulso 1.4s ease-in-out infinite; }
@keyframes convite-pagar-pulso { 0%, 100% { opacity: 0.25; } 50% { opacity: 1; } }

/* Suas informações: "(opcional)" ao lado do rótulo. */
.conta-opcional { font-weight: 400; color: #A1A1AA; }
/* Suas informações: endereço largo; número e complemento em caixas menores ao lado. */
html body .conta-endereco-linha:not(#love-h-a) { display: grid; grid-template-columns: minmax(0, 1fr) 96px 140px; gap: 16px; }
@media (max-width: 640px) {
  html body .conta-endereco-linha:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) 1fr; gap: 1.25rem; }
  html body .conta-endereco-linha:not(#love-h-a) > :first-child { grid-column: 1 / -1; }
}

/* Confirmar presença pela lista (convite publicado): nomes como os
   anfitriões escreveram; o escolhido fica com a borda na cor do convite. */
.convite-form .convite-rsvp-ajuda { margin: -0.25rem 0 0; font-size: 0.8125rem; line-height: 1.5; color: #71717A; }
.convite-rsvp-opcoes { display: flex; flex-direction: column; gap: 8px; }
.convite-rsvp-opcoes:empty { display: none; }
.convite-form .convite-rsvp-opcao { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 0.8rem 0.9rem; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font: inherit; font-size: 0.9375rem; font-weight: 500; color: #18181B; text-align: left; cursor: pointer; }
.convite-form .convite-rsvp-opcao:hover { border-color: #A1A1AA; }
.convite-form .convite-rsvp-opcao.is-ativo { border-color: var(--bx-primary, #183b54); box-shadow: inset 0 0 0 1px var(--bx-primary, #183b54); }
.convite-form .convite-rsvp-opcao small { flex-shrink: 0; font-size: 11px; font-weight: 500; color: #A1A1AA; }
.convite-form .convite-botao:disabled { opacity: 0.5; cursor: default; }

/* Suas informações: campo obrigatório vazio ao salvar. */
html body #view-event-os-dashboard #form-user-settings .field-input.is-faltando:not(#love-h-a) { border-color: #B42318 !important; }

/* Convite publicado: presentes indisponíveis (cadastro do anfitrião incompleto). */
.convite-presentes-indisponivel { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 48px 16px; text-align: center; font-size: 0.9375rem; line-height: 1.5; color: #71717A; }
.convite-presentes-indisponivel svg { width: 40px; height: 40px; margin-bottom: 8px; color: var(--bx-primary, #183b54); }
.convite-presentes-indisponivel p { margin: 0; max-width: 320px; }
.convite-presentes-indisponivel .convite-presentes-indisponivel-titulo { font-size: 1.0625rem; font-weight: 600; color: #18181B; }

/* Aviso "Finalize seu cadastro": título escuro e forte; subtítulo cinza mais claro (vencendo a regra geral de <p> do painel). */
html body .rc-aviso .rc-aviso-titulo:not(#love-h-a) { color: #18181B !important; font-weight: 600 !important; }
html body .rc-aviso .rc-aviso-sub:not(#love-h-a) { color: #A1A1AA !important; }
body[data-theme="dark"] .rc-aviso .rc-aviso-sub { color: #A1A1AA !important; }

/* Recados recebidos: como Meus convidados, a página estica até o rodapé e o
   "Mostrar / Página" fica no pé da caixa, mesmo sem recados. */
html body #view-event-os-dashboard .dashboard-content-wrapper:has(> #tab-gifts.active #gifts-panel-messages:not(.hidden)):not(#love-h-a) { display: flex; flex-direction: column; }
html body #view-event-os-dashboard .dashboard-main-area:has(#gifts-panel-messages:not(.hidden)) > .rodape-respiro:not(#love-h-a) { flex-basis: 2rem; height: 2rem; }
html body #recados-raiz .recados-paginacao:not(#love-h-a) { margin-top: auto; }

/* Confirmar presença: os nomes aparecem num menu suspenso colado no campo. */
.convite-form > label[for="rsvp-nome"] { margin-bottom: -0.5rem; }
.convite-rsvp-campo { position: relative; display: flex; flex-direction: column; }
.convite-rsvp-campo input { width: 100%; }
.convite-form .convite-rsvp-opcoes { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 20; display: flex; flex-direction: column; gap: 0; max-height: 280px; overflow-y: auto; padding: 4px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
.convite-form .convite-rsvp-opcoes[hidden] { display: none; }
.convite-form .convite-rsvp-opcoes .convite-rsvp-opcao { padding: 10px 12px; border: 0; border-radius: 6px; box-shadow: none; }
.convite-form .convite-rsvp-opcoes .convite-rsvp-opcao:hover,
.convite-form .convite-rsvp-opcoes .convite-rsvp-opcao:focus-visible { background: #F4F4F5; outline: none; }
.convite-form .convite-rsvp-nada { margin: 0; padding: 10px 12px; font-size: 0.875rem; font-weight: 400; color: #71717A; }

/* Recados: paginação com o mesmo respiro de Meus convidados (16px 24px 20px). */
html body #recados-raiz .recados-caixa .guests-pagination:not(#love-h-a) { margin-top: auto; padding: 1rem 1.5rem 1.25rem; }

/* Depois de confirmar presença: e-mail, WhatsApp e aceites (opcionais). */
.convite-rsvp-dados { margin-top: 8px; padding-top: 24px; border-top: 1px solid #E4E4E7; }
.convite-form .convite-rsvp-dados-titulo { margin: 0; font-size: 0.9375rem; font-weight: 600; color: #18181B; }
.convite-form label.convite-rsvp-aceite { flex-direction: row; align-items: flex-start; gap: 10px; font-size: 0.875rem; font-weight: 400; line-height: 1.45; color: #3F3F46; cursor: pointer; }
.convite-form label.convite-rsvp-aceite span { color: #3F3F46; font-weight: 400; }
.convite-form .convite-rsvp-aceite input { width: 16px; height: 16px; flex-shrink: 0; margin: 2px 0 0; padding: 0; accent-color: var(--bx-primary, #183b54); }
.convite-form .convite-rsvp-depois { align-self: center; padding: 4px 8px; background: none; border: 0; font: inherit; font-size: 0.875rem; font-weight: 600; color: #71717A; cursor: pointer; }
.convite-form .convite-rsvp-depois:hover { color: #181D24; }
.convite-rsvp-dados-ok { margin: 16px 0 0; text-align: center; font-size: 0.9375rem; color: #3F3F46; }

/* Taxa da lista: "(recomendado)" ao lado de Seus convidados. */
#gifts-panel-settings .gift-fee-titulo .gift-fee-recomendado { font-weight: 500; color: #71717A; }

/* Taxa de Serviço e Conveniência (Presentes › Configurações): radio cards. */
html body #gifts-panel-settings .gift-fee-opcoes:not(#love-h-a) { display: flex; flex-direction: column; gap: 12px; }
html body #gifts-panel-settings .gift-fee-card:not(#love-h-a) { display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: none; cursor: pointer; outline: none; transition: border-color .15s, background-color .15s, box-shadow .15s; }
html body #gifts-panel-settings .gift-fee-card:not(#love-h-a):hover { border-color: #A1A1AA; }
html body #gifts-panel-settings .gift-fee-card.active:not(#love-h-a) { border-color: #183b54; background: #F7F9FB; box-shadow: 0 0 0 3px rgba(24, 59, 84, 0.08); }
html body #gifts-panel-settings .gift-fee-card:not(#love-h-a):focus-visible { border-color: #183b54; }
html body #gifts-panel-settings .gift-fee-card:not(#love-h-a) .fee-radio-indicator { width: 18px; height: 18px; margin-top: 1px; border: 1.5px solid #A1A1AA; }
html body #gifts-panel-settings .gift-fee-card.active:not(#love-h-a) .fee-radio-indicator { border-color: #183b54; }
html body #gifts-panel-settings .gift-fee-card.active:not(#love-h-a) .fee-radio-indicator::after { width: 8px; height: 8px; background: #183b54; }
html body #gifts-panel-settings .gift-fee-corpo { min-width: 0; }
html body #gifts-panel-settings .gift-fee-titulo:not(#love-h-a) { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; font-size: 0.9375rem; line-height: 1.25rem; font-weight: 600; color: #18181B; }
html body #gifts-panel-settings .gift-fee-badge { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 6px; background: rgba(24, 59, 84, 0.08); color: #183b54; font-size: 0.75rem; line-height: 1rem; font-weight: 500; letter-spacing: 0; }
html body #gifts-panel-settings p.gift-fee-descricao:not(#love-h-a) { margin: 6px 0 0; font-size: 0.8125rem; line-height: 1.25rem; color: #52525B !important; }
html body #gifts-panel-settings p.gift-fee-exemplo:not(#love-h-a) { margin: 6px 0 0; font-size: 0.75rem; line-height: 1.125rem; color: #71717A !important; }
body[data-theme="dark"] #gifts-panel-settings .gift-fee-card:not(#love-h-a) { background: #252525; border-color: #404040; }
body[data-theme="dark"] #gifts-panel-settings .gift-fee-card.active:not(#love-h-a) { background: #2A2F35; border-color: #8FB3CC; box-shadow: 0 0 0 3px rgba(143, 179, 204, 0.12); }
body[data-theme="dark"] #gifts-panel-settings .gift-fee-card.active:not(#love-h-a) .fee-radio-indicator { border-color: #8FB3CC; }
body[data-theme="dark"] #gifts-panel-settings .gift-fee-card.active:not(#love-h-a) .fee-radio-indicator::after { background: #8FB3CC; }
body[data-theme="dark"] #gifts-panel-settings .gift-fee-titulo:not(#love-h-a) { color: #FFFFFF; }
body[data-theme="dark"] #gifts-panel-settings .gift-fee-badge { background: rgba(143, 179, 204, 0.14); color: #C9DAE6; }
body[data-theme="dark"] #gifts-panel-settings p.gift-fee-descricao:not(#love-h-a) { color: #D4D4D8 !important; }
body[data-theme="dark"] #gifts-panel-settings p.gift-fee-exemplo:not(#love-h-a) { color: #A1A1AA !important; }

/* Carteira › verificação: faixa com o mesmo degradê azul do Admin, texto branco. */
html body .cart-verif-faixa:not(#love-h-a) {
  background-color: #183b54;
  background-image:
    radial-gradient(120% 140% at 100% 0%, rgba(42, 120, 214, .55) 0%, rgba(42, 120, 214, 0) 55%),
    linear-gradient(180deg, #183b54 0%, #1d4664 100%);
  background-size: auto;
  background-repeat: no-repeat;
}
html body .cart-verif-faixa h3:not(#love-h-a) { color: #FFFFFF !important; }
html body .cart-verif-faixa p:not(#love-h-a) { color: rgba(255, 255, 255, .8) !important; }
body[data-theme="dark"] .cart-verif-faixa:not(#love-h-a) { background-color: #183b54 !important; background-image: radial-gradient(120% 140% at 100% 0%, rgba(42, 120, 214, .55) 0%, rgba(42, 120, 214, 0) 55%), linear-gradient(180deg, #183b54 0%, #1d4664 100%) !important; }
/* Logotipo branco da Love no título da faixa (a imagem tem respiro em volta). */
html body .cart-verif-faixa .cart-verif-logo { display: inline-block; height: 0.92em; width: auto; margin: 0 0 0 0.12em; vertical-align: -0.073em; }

/* Carteira › Extrato completo: filtro de período igual ao do Dashboard do Admin
   (botão com o período e seta; calendário com atalhos, mês e Aplicar). */
html body button.cart-periodo-btn:not(#love-h-a) { min-width: 132px; justify-content: space-between; gap: 1rem; height: 38px; padding: 0 14px 0 16px; background: #FFFFFF; border: 1px solid #CCD5E0; box-shadow: none; color: #3F3F46; font-size: 14px; font-weight: 600; }
html body button.cart-periodo-btn:not(#love-h-a):hover { background: #F4F4F5; border-color: #CCD5E0; }
html body button.cart-periodo-btn.is-ativo:not(#love-h-a) { border-color: #183b54; color: #183b54; }
.cart-periodo-btn .cart-periodo-seta { width: 15px; height: 15px; color: #667085; transition: transform .2s ease; }
.cart-periodo-btn[aria-expanded="true"] .cart-periodo-seta { transform: rotate(180deg); }
html body .cart-periodo-pop.cart-cal:not(#love-h-a) { width: auto; flex-direction: row; gap: .75rem; padding: .75rem; top: calc(100% + .5rem); border-color: #E4E4E7; box-shadow: 0 12px 28px rgba(16, 24, 40, .14); }
.cart-cal-atalhos { display: flex; flex-direction: column; gap: .125rem; min-width: 128px; padding-right: .75rem; border-right: 1px solid #F0F0F2; }
html body button.cart-cal-atalho:not(#love-h-a) { border: 0; background: none; padding: .4375rem .5rem; border-radius: 6px; font: inherit; font-size: .8125rem; font-weight: 400; color: #101828; text-align: left; cursor: pointer; white-space: nowrap; }
html body button.cart-cal-atalho:not(#love-h-a):hover { background: #F4F4F5; }
.cart-cal-corpo { width: 252px; }
.cart-cal-topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; }
.cart-cal-mes { font-size: .875rem; font-weight: 600; color: #101828; }
html body button.cart-cal-nav:not(#love-h-a) { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 6px; background: none; color: #667085; cursor: pointer; padding: 0; }
html body button.cart-cal-nav:not(#love-h-a):hover:not(:disabled) { border-color: #E4E4E7; color: #181D24; }
html body button.cart-cal-nav:not(#love-h-a):disabled { opacity: .35; cursor: default; }
.cart-cal-nav svg { width: 16px; height: 16px; }
.cart-cal-semana, .cart-cal-dias { display: grid; grid-template-columns: repeat(7, 36px); }
.cart-cal-semana span { text-align: center; font-size: .6875rem; font-weight: 500; color: #A1A1AA; padding-bottom: .25rem; }
html body button.cart-cal-dia:not(#love-h-a) { height: 34px; border: 0; background: none; font: inherit; font-size: .8125rem; font-weight: 400; color: #101828; cursor: pointer; border-radius: 6px; font-variant-numeric: tabular-nums; padding: 0; }
html body button.cart-cal-dia:not(#love-h-a):hover:not(:disabled) { background: #F4F4F5; }
html body button.cart-cal-dia:not(#love-h-a):disabled { color: #D4D4D8; cursor: default; }
html body button.cart-cal-dia.is-hoje:not(#love-h-a) { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
html body button.cart-cal-dia.is-meio:not(#love-h-a) { background: #F4F4F5; border-radius: 0; }
html body button.cart-cal-dia.is-inicio:not(#love-h-a), html body button.cart-cal-dia.is-fim:not(#love-h-a) { background: #181D24; color: #FFFFFF; }
html body p.cart-cal-dica:not(#love-h-a) { margin: .5rem 0; font-size: .75rem; color: #667085 !important; text-align: center; min-height: 1.1em; }
html body button.cart-cal-aplicar:not(#love-h-a) { width: 100%; margin-top: .25rem; display: inline-flex; align-items: center; justify-content: center; padding: .65rem 1.25rem; border-radius: 8px; border: 1px solid #E4E4E7; background: #F4F4F5; color: #3F3F46; font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; }
html body button.cart-cal-aplicar:not(#love-h-a):hover { background: #E9E9EC; }
@media (max-width: 640px) {
  html body .cart-periodo-pop.cart-cal:not(#love-h-a) { flex-direction: column; }
  .cart-cal-atalhos { flex-direction: row; flex-wrap: wrap; border-right: 0; padding-right: 0; border-bottom: 1px solid #F0F0F2; padding-bottom: .5rem; }
}
body[data-theme="dark"] button.cart-periodo-btn { border-color: #404040 !important; }
body[data-theme="dark"] .cart-cal-mes, body[data-theme="dark"] button.cart-cal-atalho, body[data-theme="dark"] button.cart-cal-dia:not(:disabled):not(.is-inicio):not(.is-fim) { color: #FFFFFF !important; }
body[data-theme="dark"] button.cart-cal-dia.is-meio, body[data-theme="dark"] button.cart-cal-atalho:hover, body[data-theme="dark"] button.cart-cal-dia:hover:not(:disabled) { background: #333333 !important; }
body[data-theme="dark"] .cart-cal-atalhos { border-color: #404040; }
body[data-theme="dark"] button.cart-cal-dia.is-inicio, body[data-theme="dark"] button.cart-cal-dia.is-fim { background: #FFFFFF !important; color: #181D24 !important; }
html body .cart-arquivo[hidden]:not(#love-h-a) { display: none; }

/* Minhas solicitações: caixinha à esquerda do título e barra de exclusão em massa. */
.rfp-post-topo { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rfp-post-topo .rfp-post-titulo { flex: 1 1 auto; min-width: 0; }
.rfp-post-topo + .rfp-post-criado, .rfp-post-info .rfp-post-topo ~ p { margin-left: 30px; }
html body .rfp-selecao-barra[hidden]:not(#love-h-a) { display: none; }
html body .rfp-selecao-barra:not(#love-h-a) { padding: 12px 24px; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
.rfp-selecao-todas { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; color: #18181B; cursor: pointer; font-variant-numeric: tabular-nums; }
body[data-theme="dark"] .rfp-selecao-todas { color: #FFFFFF; }
body[data-theme="dark"] .rfp-selecao-barra { border-bottom-color: #404040 !important; }
/* Minhas solicitações: paginação igual a Meus convidados (a última linha já tem o divisor). */
html body #rfp-caixa .rfp-paginacao:not(#love-h-a) { margin-top: 0; padding: 1rem 1.5rem 1.25rem; border-top: 0; }
html body #rfp-caixa .rfp-paginacao[hidden]:not(#love-h-a) { display: none; }

/* Explorar: cidades como abas (igual a Criar solicitação / Minhas solicitações) e setas sem contorno. */
.b2b-cidades-abas:not(.hidden) { display: flex; align-items: flex-start; gap: 8px; border-bottom: 1px solid #EAEAEA; }
.b2b-cidades-fileira { display: flex; align-items: flex-start; gap: 1.5rem; overflow-x: auto; min-width: 0; flex: 1 1 auto; }
html body .b2b-cidades-fileira button.love-tab-item:not(#love-h-a) { flex-shrink: 0; margin-bottom: -1px !important; }
html body button.b2b-cidades-seta:not(#love-h-a) { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #71717A; cursor: pointer; }
html body button.b2b-cidades-seta.hidden:not(#love-h-a) { display: none; }
html body button.b2b-cidades-seta:not(#love-h-a):hover { color: #181D24; background: transparent; }
.b2b-cidades-seta svg { width: 16px; height: 16px; }
body[data-theme="dark"] .b2b-cidades-abas { border-bottom-color: #404040; }
body[data-theme="dark"] button.b2b-cidades-seta { color: #A1A1AA !important; }

/* ---- Orçamento (Financeiro): resumo no mesmo estilo da Carteira Digital,
   data do próximo pagamento na tabela e a despesa aberta na mesma caixa ---- */
html body #wallet-sub-budget .orc-resumo:not(#love-h-a) { padding: 16px 24px 24px; margin-bottom: 24px; }
html body #wallet-sub-budget .cart-resumo-cols:not(#love-h-a) { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; }
html body #wallet-sub-budget .cart-resumo-col:not(#love-h-a) { gap: 0; padding: 0 24px; }
html body #wallet-sub-budget .cart-resumo-col:first-child:not(#love-h-a) { padding-left: 0; }
html body #wallet-sub-budget .cart-rotulo:not(#love-h-a) { margin: 0; font-size: 0.8125rem; font-weight: 500; color: #71717A !important; }
html body #wallet-sub-budget .cart-numero:not(#love-h-a) { margin: 4px 0 0; font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 1.75rem; font-weight: 700 !important; letter-spacing: -0.02em; color: #18181B !important; line-height: 1.2; font-variant-numeric: tabular-nums; }
html body #wallet-sub-budget .cart-dica:not(#love-h-a) { margin: 8px 0 0; font-size: 0.8125rem; color: #71717A !important; }
html body #wallet-sub-budget button.cart-ver:not(#love-h-a) { margin-top: 14px; font-size: 0.8125rem; text-decoration-color: rgba(24, 59, 84, 0.3); text-underline-offset: 4px; }
html body #wallet-sub-budget button.cart-ver:not(#love-h-a):hover { text-decoration-color: #183b54; }
html body #wallet-sub-budget .orc-atrasado:not(#love-h-a), html body #wallet-sub-budget .cart-dica.orc-atrasado:not(#love-h-a) { color: #B42318 !important; font-weight: 500; }
#wallet-sub-budget .orc-quitado { color: #71717A; }
html body #wallet-sub-budget button.orc-abrir:not(#love-h-a) svg { width: 18px; height: 18px; }
/* "+" aberto: some a busca e a tabela; a despesa ocupa a caixa. */
#wallet-sub-budget .budget-table-full-bleed.is-detalhe > .love-tabela-barra,
#wallet-sub-budget .budget-table-full-bleed.is-detalhe > table,
#wallet-sub-budget .budget-table-full-bleed.is-detalhe .love-tabela-rolagem,
#wallet-sub-budget .budget-table-full-bleed.is-detalhe .guests-pagination { display: none !important; }
#wallet-sub-budget .orc-detalhe[hidden] { display: none !important; }
#wallet-sub-budget .orc-detalhe { padding: 24px; }
#wallet-sub-budget .orc-detalhe-dados { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 24px; }
html body #wallet-sub-budget .orc-dado-valor:not(#love-h-a) { margin: 4px 0 0; font-size: 0.9375rem; font-weight: 600; color: #18181B !important; font-variant-numeric: tabular-nums; word-break: break-word; }
html body #wallet-sub-budget .orc-detalhe-nota:not(#love-h-a) { margin: 20px 0 0; font-size: 0.8125rem; color: #71717A !important; }
html body #wallet-sub-budget button.orc-editar:not(#love-h-a) { margin-top: 20px; font-size: 0.8125rem; text-underline-offset: 4px; }
html body #wallet-sub-budget .orc-extrato-titulo:not(#love-h-a) { margin: 28px 0 12px; padding-top: 24px; border-top: 1px solid #E4E4E7; font-family: Inter, sans-serif; font-size: 0.9375rem; font-weight: 600; letter-spacing: -0.025em; color: #18181B; }
#wallet-sub-budget .orc-extrato { border: 1px solid #E4E4E7; border-radius: 10px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
#wallet-sub-budget .orc-extrato th, #wallet-sub-budget .orc-extrato td { padding: 10px 16px; font-size: 0.8125rem; border-bottom: 1px solid #F4F4F5; }
#wallet-sub-budget .orc-extrato tbody tr:last-child td { border-bottom: 0; }
#wallet-sub-budget .orc-extrato th { font-weight: 500; color: #71717A; background: #FAFAFA; }
#wallet-sub-budget .orc-extrato td { color: #18181B; font-variant-numeric: tabular-nums; }
html body #wallet-sub-budget .orc-extrato-vazio:not(#love-h-a) { margin: 0; font-size: 0.8125rem; color: #71717A !important; }
@media (max-width: 767px) {
  html body #wallet-sub-budget .cart-resumo-cols:not(#love-h-a) { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  html body #wallet-sub-budget .cart-resumo-col:not(#love-h-a) { border-left: 0; padding: 0; }
  #wallet-sub-budget .orc-detalhe { padding: 20px 16px; }
  #wallet-sub-budget .orc-detalhe-dados { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
body[data-theme="dark"] #wallet-sub-budget :is(.cart-numero, .orc-dado-valor, .orc-extrato-titulo, .orc-extrato td) { color: #FFFFFF !important; }
body[data-theme="dark"] #wallet-sub-budget :is(.cart-rotulo, .cart-dica, .orc-quitado, .orc-extrato th) { color: #A1A1AA !important; }
body[data-theme="dark"] #wallet-sub-budget .orc-extrato { border-color: #404040; }
body[data-theme="dark"] #wallet-sub-budget .orc-extrato th { background: #2A2A2A; }
body[data-theme="dark"] #wallet-sub-budget :is(.orc-extrato th, .orc-extrato td, .orc-extrato-titulo) { border-color: #404040; }
body[data-theme="dark"] #wallet-sub-budget :is(.orc-atrasado, .cart-dica.orc-atrasado) { color: #F97066 !important; }

/* ---- Recados recebidos: a linha inteira abre o recado; ele aparece como
   uma carta (ou vídeo) no meio da mesma caixa ---- */
html body #recados-raiz tr.recado-linha:not(#love-h-a) { cursor: pointer; }
html body #recados-raiz tr.recado-linha:not(#love-h-a):hover > td { background: #FAFAFA; }
html body #recados-raiz tr.recado-linha:not(#love-h-a):focus-visible { outline: none; }
html body #recados-raiz tr.recado-linha:not(#love-h-a):focus-visible > td { background: #F4F4F5; }
html body #recados-raiz .recado-nome:not(#love-h-a) { font-size: 14px; font-weight: 600; color: #18181B; }
#recados-raiz .recado-tag-video { display: inline-block; padding: 1px 6px; border: 1px solid #E4E4E7; border-radius: 6px; font-size: 11px; font-weight: 500; color: #52525B; white-space: nowrap; }
html body #recados-raiz .recados-caixa.is-carta:not(#love-h-a) { justify-content: center; }
#recados-raiz .recado-palco { flex: 1 0 auto; display: flex; align-items: center; justify-content: center; padding: 48px 24px; background: #FAFAFA; border-radius: 10px; }
#recados-raiz .recado-carta { position: relative; width: 100%; max-width: 520px; padding: 44px 44px 32px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; text-align: left; }
#recados-raiz .recado-carta::before { content: ""; position: absolute; top: 0; left: 44px; right: 44px; height: 3px; background: #183b54; border-radius: 0 0 3px 3px; }
#recados-raiz .recado-carta.tem-video { max-width: 640px; padding-top: 32px; }
#recados-raiz .recado-video { display: block; width: 100%; max-height: 60vh; margin: 0 0 24px; border-radius: 8px; background: #000; }
html body #recados-raiz .recado-carta-texto:not(#love-h-a) { margin: 0; font-size: 17px; line-height: 1.8; color: #27272A !important; white-space: pre-line; word-break: break-word; }
html body #recados-raiz .recado-carta-assinatura:not(#love-h-a) { margin: 28px 0 0; font-size: 15px; font-weight: 600; color: #18181B !important; }
#recados-raiz .recado-carta-assinatura span { display: block; margin-bottom: 2px; font-size: 13px; font-weight: 400; color: #71717A; }
html body #recados-raiz .recado-carta-rodape:not(#love-h-a) { margin: 28px 0 0; padding-top: 16px; border-top: 1px solid #F4F4F5; font-size: 11px; font-weight: 500; color: #A1A1AA !important; }
@media (max-width: 767px) {
  #recados-raiz .recado-palco { padding: 24px 12px; }
  #recados-raiz .recado-carta { padding: 32px 22px 24px; }
  #recados-raiz .recado-carta::before { left: 22px; right: 22px; }
}
body[data-theme="dark"] #recados-raiz tr.recado-linha:hover > td { background: #2A2A2A !important; }
body[data-theme="dark"] #recados-raiz .recado-nome { color: #FFFFFF !important; }
body[data-theme="dark"] #recados-raiz .recado-palco { background: #1F1F1F; }
body[data-theme="dark"] #recados-raiz .recado-carta { background: #252525; border-color: #404040; }
body[data-theme="dark"] #recados-raiz .recado-carta::before { background: #EBF4FF; }
body[data-theme="dark"] #recados-raiz :is(.recado-carta-texto, .recado-carta-assinatura) { color: #FFFFFF !important; }
body[data-theme="dark"] #recados-raiz .recado-carta-rodape { border-top-color: #404040; }
body[data-theme="dark"] #recados-raiz .recado-tag-video { border-color: #404040; color: #D4D4D8; }

/* ---- Criar solicitação: layout pelo tamanho da caixa (não só da tela).
   Título ao lado só quando sobra espaço; senão vai para cima da caixa.
   Data, início e término em 3 colunas iguais; caixa estreita: data em
   cima e os dois horários lado a lado. Sem bairro. ---- */
html body #b2b-pedidos-view:not(#love-h-a) { container-type: inline-size; container-name: rfp-pagina; }
html body #b2b-pedidos-view .rfp-caixa-form:not(#love-h-a) { container-type: inline-size; container-name: rfp-caixa; width: 100%; min-width: 0; box-sizing: border-box; }
@container rfp-pagina (max-width: 900px) {
  html body #b2b-pedidos-view .rfp-editor:not([hidden]):not(#love-h-a) { display: flex; flex-direction: column; }
  html body #b2b-pedidos-view .rfp-etapa-titulo:not(#love-h-a) { font-size: 1.5rem; }
  html body #b2b-pedidos-view .rfp-editor .rfp-intro:not(#love-h-a) { margin-bottom: 1rem; }
}
html body #b2b-pedidos-view .rfp-ev-grade .rfp-rotulo-texto:not(#love-h-a) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body #b2b-pedidos-view .rfp-ev-tempo:not(#love-h-a) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
html body #b2b-pedidos-view .rfp-ev-local:not(#love-h-a) { grid-template-columns: repeat(3, minmax(0, 1fr)); } /* UF, Cidade e Convidados alinhados com Data, Início e Término */
html body #b2b-pedidos-view .rfp-ev-convidados:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
@container rfp-caixa (max-width: 560px) {
  html body #b2b-pedidos-view .rfp-ev-tempo:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  html body #b2b-pedidos-view .rfp-ev-tempo > .rfp-ev-campo:first-child:not(#love-h-a) { grid-column: 1 / -1; }
  html body #b2b-pedidos-view .rfp-ev-local:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  html body #b2b-pedidos-view .rfp-ev-local > .rfp-ev-campo:last-child:not(#love-h-a) { grid-column: 1 / -1; }
}
@container rfp-caixa (max-width: 380px) {
  html body #b2b-pedidos-view .rfp-ev-convidados:not(#love-h-a) { grid-template-columns: minmax(0, 1fr); }
}
@container rfp-caixa (max-width: 280px) {
  html body #b2b-pedidos-view .rfp-ev-tempo:not(#love-h-a), html body #b2b-pedidos-view .rfp-ev-local:not(#love-h-a) { grid-template-columns: minmax(0, 1fr); }
}

/* ---- Pedir orçamento (Explorar): mesma grade de 3 colunas de Criar
   solicitação. Data · Início · Término; Convidados · Local (2 colunas).
   Caixa estreita: data sozinha e os horários lado a lado; local embaixo. ---- */
html body #modal-b2b-orcamento .orc-corpo:not(#love-h-a) { container-type: inline-size; container-name: orc-corpo; }
html body #modal-b2b-orcamento .orc-grade:not(#love-h-a) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: start; }
html body #modal-b2b-orcamento .orc-grade-campo:not(#love-h-a) { min-width: 0; }
html body #modal-b2b-orcamento .orc-grade-campo.hidden:not(#love-h-a) { display: none; }
html body #modal-b2b-orcamento .orc-grade .orc-label:not(#love-h-a) { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body #modal-b2b-orcamento .orc-grade-local-campo:not(#love-h-a) { grid-column: span 2; }
html body #modal-b2b-orcamento .orc-contador .orc-contador-input:not(#love-h-a) { min-width: 0; padding: 0 4px; }
html body #modal-b2b-orcamento select.orc-select:not(#love-h-a) { appearance: none; -webkit-appearance: none; padding-right: 30px; background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A1A1AA' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 14px; cursor: pointer; text-overflow: ellipsis; }
html body #modal-b2b-orcamento .orc-dica:not(#love-h-a) { margin: 6px 0 0; font-size: 11px; font-weight: 500; color: #A1A1AA !important; }
@container orc-corpo (max-width: 480px) {
  html body #modal-b2b-orcamento .orc-grade:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  html body #modal-b2b-orcamento .orc-grade-tempo > .orc-grade-campo:first-child:not(#love-h-a),
  html body #modal-b2b-orcamento .orc-grade-local > .orc-grade-campo:not(#love-h-a) { grid-column: 1 / -1; }
}
body[data-theme="dark"] #modal-b2b-orcamento select.orc-select { background-color: #333333 !important; color: #FFFFFF !important; border-color: #404040 !important; }

/* ---- Home: caixinha do link do convite, entre o banner e o Guia de
   primeiros passos (status · endereço | editar · compartilhar · abrir) ---- */
html body .home-link-convite:not(#love-h-a) { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 8px 8px 8px 14px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: none; font-family: Inter, sans-serif; }
.home-link-status { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; font-size: 13px; color: #71717A; white-space: nowrap; }
.home-link-ponto { width: 8px; height: 8px; border-radius: 50%; background: #F79009; }
.home-link-convite.is-publicado .home-link-ponto { background: #12B76A; }
html body a.home-link-url:not(#love-h-a) { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: #18181B; text-decoration: none; }
html body a.home-link-url:not(#love-h-a):hover { text-decoration: underline; text-underline-offset: 3px; }
.home-link-acoes { display: flex; align-items: center; flex-shrink: 0; }
html body button.home-link-botao:not(#love-h-a) { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; background: transparent; border: 0; border-radius: 8px !important; color: #3F3F46; cursor: pointer; box-shadow: none; }
html body button.home-link-botao:not(#love-h-a):hover { color: #181D24; background: transparent; }
html body button.home-link-botao + button.home-link-botao:not(#love-h-a) { margin-left: 2px; }
html body button.home-link-botao:first-child:not(#love-h-a) { position: relative; margin-right: 6px; }
html body button.home-link-botao:first-child:not(#love-h-a)::after { content: ""; position: absolute; right: -4px; top: 7px; bottom: 7px; width: 1px; background: #E4E4E7; }
.home-link-botao svg { width: 17px; height: 17px; }
html body button.home-link-botao.is-copiado:not(#love-h-a) { color: #12B76A; }
body[data-theme="dark"] .home-link-convite { background: #252525 !important; border-color: #404040 !important; }
body[data-theme="dark"] a.home-link-url { color: #FFFFFF !important; }
body[data-theme="dark"] .home-link-status, body[data-theme="dark"] button.home-link-botao { color: #A1A1AA !important; }
body[data-theme="dark"] button.home-link-botao:first-child::after { background: #404040 !important; }
/* Caixinha estreita: fica só a bolinha do status (o texto vira dica). */
html body .home-link-convite:not(#love-h-a) { container-type: inline-size; container-name: home-link; }
@container home-link (max-width: 380px) {
  #home-link-status-texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* ---- Co-anfitriões: "Adicionar novo" no cabeçalho (só nessa aba); o
   convite (texto, e-mail e funções) ocupa a caixa inteira no lugar da tabela ---- */
html body #btn-org-adicionar:not(#love-h-a) { display: none; }
html body.organizadores-sem-previa #btn-org-adicionar:not(.hidden):not(#love-h-a) { display: inline-flex; }
#organizadores-caixa #organizadores-convidar { display: none; }
#organizadores-caixa.is-adicionando #organizadores-convidar { display: block; }
#organizadores-caixa.is-adicionando > .overflow-x-auto,
#organizadores-caixa.is-adicionando > .love-tabela-barra,
#organizadores-caixa.is-adicionando > .guests-pagination { display: none !important; }
html body #organizadores-caixa .org-form:not(#love-h-a) { display: flex; flex-direction: column; gap: 20px; padding: 24px; }
html body #organizadores-caixa .org-form-intro:not(#love-h-a) { margin: 0; font-size: 0.875rem; line-height: 1.6; color: #52525B !important; }
html body #organizadores-caixa .org-form-campo:not(#love-h-a) { display: flex; flex-direction: column; gap: 6px; max-width: 420px; }
html body #organizadores-caixa .org-form-rotulo:not(#love-h-a) { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: #18181B !important; }
html body #organizadores-caixa .org-form-campo .org-form-rotulo:not(#love-h-a) { margin: 0; }
html body #organizadores-caixa input.org-convite-email:not(#love-h-a) { width: 100%; max-width: none; height: 40px; padding: 0 12px; border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FFFFFF; font: inherit; font-size: 14px; color: #18181B; box-shadow: none; outline: none; }
html body #organizadores-caixa input.org-convite-email:not(#love-h-a):focus { border-color: #181D24; box-shadow: none; }
html body #organizadores-caixa .org-passo2:not(#love-h-a) { padding: 0; border: 0; }
html body #organizadores-caixa .org-form-erro:not(#love-h-a) { margin: 0; font-size: 13px; color: #B42318 !important; }
html body #organizadores-caixa .org-form .org-convite-acoes:not(#love-h-a) { display: flex; align-items: center; justify-content: flex-end; gap: 20px; margin: 0; padding-top: 20px; border-top: 1px solid #F4F4F5; }
html body #organizadores-caixa button.org-enviar:not(#love-h-a) { height: 38px; padding: 0 16px; border-radius: 8px !important; font-size: 0.875rem; font-weight: 600; }
html body #organizadores-caixa .org-feedback:not(#love-h-a) { margin: 0; padding: 12px 16px; border-bottom: 1px solid #F4F4F5; font-size: 13px; line-height: 1.6; color: #52525B; }
body[data-theme="dark"] #organizadores-caixa .org-form-intro, body[data-theme="dark"] #organizadores-caixa .org-feedback { color: #A1A1AA !important; }
body[data-theme="dark"] #organizadores-caixa .org-form-rotulo { color: #FFFFFF !important; }
body[data-theme="dark"] #organizadores-caixa input.org-convite-email { background: #333333 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] #organizadores-caixa :is(.org-form .org-convite-acoes, .org-feedback) { border-color: #404040 !important; }

/* ---- Adicionar despesa (Orçamento): mesmo formato do pop-up de Criar
   presente — 880 × 563, branco, sem linhas; campos à esquerda, valores,
   entrada e parcelas à direita; Cancelar (texto) e salvar no rodapé ---- */
html body #drawer-add-budget-expense.despesa-popup:not(#love-h-a) { max-width: 880px; height: min(563px, calc(100vh - 48px)); background: #FFFFFF !important; display: flex; flex-direction: column; }
html body #drawer-add-budget-expense .despesa-topo:not(#love-h-a) { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 32px 14px; background: #FFFFFF; border: 0 !important; flex-shrink: 0; }
html body #drawer-add-budget-expense .despesa-titulo:not(#love-h-a) { margin: 0; font-family: Inter, sans-serif; font-size: 18px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
html body #drawer-add-budget-expense button.despesa-fechar:not(#love-h-a) { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin-right: -8px; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #71717A; cursor: pointer; }
html body #drawer-add-budget-expense button.despesa-fechar:not(#love-h-a):hover { color: #181D24; background: transparent; }
.despesa-fechar svg { width: 20px; height: 20px; }
html body #drawer-add-budget-expense .despesa-aviso:not(#love-h-a) { margin: -6px 32px 8px; font-size: 13px; color: #71717A !important; }
html body #drawer-add-budget-expense .despesa-aviso[hidden]:not(#love-h-a) { display: none; }
#drawer-add-budget-expense .despesa-form { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
#drawer-add-budget-expense .despesa-corpo { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 32px; align-items: start; padding: 4px 32px 18px; background: #FFFFFF; }
#drawer-add-budget-expense .despesa-coluna { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
#drawer-add-budget-expense .despesa-campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; position: relative; }
html body #drawer-add-budget-expense .despesa-rotulo:not(#love-h-a) { font-size: 12px; font-weight: 700; color: #3F3F46; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body #drawer-add-budget-expense .desp-input:not(#love-h-a) { width: 100%; min-width: 0; height: 44px; padding: 0 14px; border: 1px solid #E4E4E7; border-radius: 8px !important; background: #FFFFFF; font: inherit; font-size: 14px; color: #18181B; box-shadow: none; outline: none; box-sizing: border-box; }
html body #drawer-add-budget-expense .desp-input:not(#love-h-a):focus { border-color: #181D24; box-shadow: none; }
html body #drawer-add-budget-expense .desp-input:disabled:not(#love-h-a) { background: #FAFAFA; color: #52525B; }
html body #drawer-add-budget-expense select.desp-select:not(#love-h-a) { appearance: none; -webkit-appearance: none; padding-right: 34px; background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A1A1AA' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 14px; cursor: pointer; }
#drawer-add-budget-expense .desp-moeda { position: relative; display: block; min-width: 0; }
#drawer-add-budget-expense .desp-moeda > span { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-size: 13px; font-weight: 600; color: #A1A1AA; pointer-events: none; }
html body #drawer-add-budget-expense .desp-moeda .desp-input:not(#love-h-a) { padding-left: 36px; font-variant-numeric: tabular-nums; }
html body #drawer-add-budget-expense .despesa-dica:not(#love-h-a) { margin: 0; font-size: 11px; font-weight: 500; color: #A1A1AA !important; }
#drawer-add-budget-expense .despesa-sugestoes { position: absolute; left: 0; right: 0; top: 70px; z-index: 30; max-height: 192px; overflow-y: auto; padding: 4px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
#drawer-add-budget-expense .despesa-sugestoes.hidden { display: none; }
html body #drawer-add-budget-expense button.despesa-sugestao:not(#love-h-a) { display: flex; flex-direction: column; align-items: flex-start; width: 100%; padding: 8px 10px; background: transparent; border: 0; border-radius: 6px; text-align: left; cursor: pointer; font: inherit; }
html body #drawer-add-budget-expense button.despesa-sugestao:not(#love-h-a):hover { background: #F4F4F5; }
.despesa-sugestao b { font-size: 13px; font-weight: 600; color: #18181B; }
.despesa-sugestao span { font-size: 11px; color: #71717A; }
#drawer-add-budget-expense .despesa-linha-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
/* Entrada e parcelas: nome · data · valor · pago, todas na mesma grade. */
#drawer-add-budget-expense .despesa-pagamentos { display: flex; flex-direction: column; gap: 8px; }
#drawer-add-budget-expense #expense-parcelas-lista { display: flex; flex-direction: column; gap: 8px; }
#drawer-add-budget-expense #expense-parcelas-lista:empty { display: none; }
#drawer-add-budget-expense .despesa-pag-cab,
#drawer-add-budget-expense .despesa-pag-linha { display: grid; grid-template-columns: 74px minmax(0, 1.15fr) minmax(0, 1fr) 34px; gap: 8px; align-items: center; }
#drawer-add-budget-expense .despesa-pag-cab span { font-size: 12px; font-weight: 700; color: #3F3F46; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#drawer-add-budget-expense .despesa-pag-cab span:last-child, #drawer-add-budget-expense .despesa-pag-linha > input[type="checkbox"] { justify-self: center; text-align: center; }
#drawer-add-budget-expense .despesa-pag-nome { font-size: 13px; font-weight: 600; color: #18181B; white-space: nowrap; }
html body #drawer-add-budget-expense .despesa-pag-linha .desp-input:not(#love-h-a) { height: 40px; padding-left: 10px; padding-right: 8px; font-size: 13px; }
html body #drawer-add-budget-expense .despesa-pag-linha .desp-moeda .desp-input:not(#love-h-a) { padding-left: 32px; }
html body #drawer-add-budget-expense .despesa-todo-pago:not(#love-h-a) { margin: 0; }
html body #drawer-add-budget-expense .despesa-erro:not(#love-h-a) { margin: 0; font-size: 13px; color: #B42318 !important; }
html body #drawer-add-budget-expense .despesa-erro[hidden]:not(#love-h-a) { display: none; }
html body #drawer-add-budget-expense .despesa-rodape:not(#love-h-a) { flex-shrink: 0; padding: 14px 32px 18px; background: #FFFFFF !important; border: 0 !important; }
@media (max-width: 720px) {
  #drawer-add-budget-expense .despesa-corpo { grid-template-columns: minmax(0, 1fr); row-gap: 18px; padding: 4px 20px 18px; }
  html body #drawer-add-budget-expense .despesa-topo:not(#love-h-a) { padding: 16px 20px 12px; }
  html body #drawer-add-budget-expense .despesa-rodape:not(#love-h-a) { padding: 12px 20px 16px; }
  html body #drawer-add-budget-expense.despesa-popup:not(#love-h-a) { height: auto; max-height: calc(100vh - 32px); }
}
body[data-theme="dark"] #drawer-add-budget-expense.despesa-popup, body[data-theme="dark"] #drawer-add-budget-expense :is(.despesa-topo, .despesa-corpo, .despesa-rodape) { background: #252525 !important; }
body[data-theme="dark"] #drawer-add-budget-expense :is(.despesa-titulo, .despesa-pag-nome) { color: #FFFFFF !important; }
body[data-theme="dark"] #drawer-add-budget-expense :is(.despesa-rotulo, .despesa-pag-cab span) { color: #D4D4D8 !important; }
body[data-theme="dark"] #drawer-add-budget-expense .desp-input { background-color: #333333 !important; border-color: #404040 !important; color: #FFFFFF !important; }
body[data-theme="dark"] #drawer-add-budget-expense .despesa-sugestoes { background: #252525; border-color: #404040; }

/* Meus convidados sem resultado: aviso no meio da caixa (igual a Recados recebidos). */
html body #tab-rsvp .rsvp-caixa-abaixo-das-abas > .overflow-x-auto:has(> #rsvp-empty-state:not(.hidden)):not(#love-h-a) { display: flex; flex-direction: column; }
html body #rsvp-empty-state:not(.hidden):not(#love-h-a) { flex: 1 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; min-height: 280px; padding: 40px 16px; text-align: center; }
html body #rsvp-empty-state p:first-of-type:not(#love-h-a) { margin: 0; font-size: 13px; font-weight: 400; line-height: 1.7; color: #71717A !important; }
html body #rsvp-empty-state p + p:not(#love-h-a) { margin: 0; font-size: 13px; line-height: 1.7; color: #71717A !important; }
html body #rsvp-empty-state .rsvp-vazio-icone:not(#love-h-a) { display: block; width: 48px; height: 48px; margin: 0 auto 14px; color: #D4D4D8; }
body[data-theme="dark"] #rsvp-empty-state .rsvp-vazio-icone { color: #52525B; }
html body #rsvp-empty-state p.rsvp-vazio-titulo:not(#love-h-a) { margin: 0 0 4px; font-size: 14px; font-weight: 600 !important; color: #18181B !important; }
html body #rsvp-empty-state p[hidden]:not(#love-h-a) { display: none; }
html body #rsvp-empty-state p + p:not(#love-h-a) { max-width: 420px; }
body[data-theme="dark"] #rsvp-empty-state .rsvp-vazio-titulo { color: #FFFFFF !important; }

/* ==========================================================================
   Celular como app (PWA) — só até 768px; o desktop não muda nada.
   - sem rolagem para os lados; altura real da tela (dvh);
   - áreas seguras do iPhone/Android (notch em cima, barrinha embaixo);
   - barra de baixo com 5 atalhos e nome: Início, Convite, Convidados,
     Presentes e Financeiro;
   - toques de no mínimo 44px e campos com 16px (o Safari não dá zoom).
   ========================================================================== */
.rail-rotulo { display: none; }

@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  :root {
    --navbar-height-mobile: calc(60px + env(safe-area-inset-top, 0px));
    --bottom-bar-height-mobile: calc(64px + env(safe-area-inset-bottom, 0px));
  }
  html, body { overflow-x: clip; max-width: 100%; }
  html body #view-event-os-dashboard:not(#love-h-a) { min-height: 100dvh; overflow-x: clip; }

  /* Topo: desce o conteúdo abaixo do notch / barra de status do PWA. */
  html body .dashboard-top-navbar:not(#love-h-a) {
    height: var(--navbar-height-mobile) !important;
    padding-top: env(safe-area-inset-top, 0px) !important;
    padding-left: max(0.75rem, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(0.75rem, env(safe-area-inset-right, 0px)) !important;
    box-sizing: border-box;
  }

  /* Conteúdo: respiro de app (16px dos lados) e sobra embaixo para a barra. */
  html body .dashboard-main-area:not(#love-h-a) {
    min-height: 100dvh;
    padding-top: calc(var(--navbar-height-mobile) + 1.25rem) !important;
    padding-bottom: calc(var(--bottom-bar-height-mobile) + 1.5rem) !important;
    padding-left: max(1rem, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(1rem, env(safe-area-inset-right, 0px)) !important;
  }

  /* Barra de baixo: 5 atalhos do mesmo tamanho, ícone + nome. */
  html body .sidebar-icon-rail:not(#love-h-a) {
    height: var(--bottom-bar-height-mobile) !important;
    padding: 0 max(0.25rem, env(safe-area-inset-right, 0px)) env(safe-area-inset-bottom, 0px) max(0.25rem, env(safe-area-inset-left, 0px)) !important;
    box-shadow: none !important;
    border-top: 1px solid rgba(0, 0, 0, 0.06) !important;
    box-sizing: border-box;
  }
  html body .sidebar-icon-rail > div:first-child:not(#love-h-a) { height: 64px; gap: 0 !important; justify-content: space-between !important; align-items: stretch !important; }
  html body .sidebar-icon-rail .rail-icon-btn:not(#love-h-a),
  html body .sidebar-icon-rail .rail-icon-btn.mobile-center-edit:not(#love-h-a) {
    flex: 1 1 0 !important; width: auto !important; min-width: 44px !important; height: 64px !important; min-height: 44px !important;
    flex-direction: column !important; gap: 4px; padding: 6px 2px !important;
    border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important;
    transform: none !important; color: rgba(255, 255, 255, 0.68) !important;
  }
  html body .sidebar-icon-rail .rail-icon-btn:not(#love-h-a) svg,
  html body .sidebar-icon-rail .rail-icon-btn:not(#love-h-a) svg *,
  html body .sidebar-icon-rail .rail-icon-btn.mobile-center-edit:not(#love-h-a) svg {
    width: 22px !important; height: 22px !important; color: currentColor !important; stroke: currentColor !important;
  }
  html body .sidebar-icon-rail .rail-icon-btn.active:not(#love-h-a),
  html body .sidebar-icon-rail .rail-icon-btn.mobile-center-edit.active:not(#love-h-a) { color: #FFFFFF !important; background: transparent !important; }
  html body .sidebar-icon-rail .rail-icon-btn:not(#love-h-a):hover,
  html body .sidebar-icon-rail .rail-icon-btn:not(#love-h-a):active { background: transparent !important; transform: none !important; }
  html body .sidebar-icon-rail .rail-rotulo:not(#love-h-a) {
    display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-family: Inter, sans-serif; font-size: 11px; font-weight: 500; line-height: 1.2; letter-spacing: 0; color: currentColor;
  }
  html body .sidebar-icon-rail .rail-icon-btn.active .rail-rotulo:not(#love-h-a) { font-weight: 600; }
  /* Ordem: Início, Convite, Convidados, Presentes, Financeiro. Fornecedores sai da barra. */
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="overview"]:not(#love-h-a) { order: 1 !important; }
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="edit-site"]:not(#love-h-a) { order: 2 !important; }
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="rsvp"]:not(#love-h-a) { order: 3 !important; }
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="gifts"]:not(#love-h-a) { order: 4 !important; }
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="wallet"]:not(#love-h-a) { order: 5 !important; }
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="b2b"]:not(#love-h-a) { display: none !important; }
  /* Tema escuro: barra escura, ícones claros. */
  body[data-theme="dark"] .sidebar-icon-rail .rail-icon-btn { color: rgba(255, 255, 255, 0.6) !important; }
  body[data-theme="dark"] .sidebar-icon-rail .rail-icon-btn.active { color: #FFFFFF !important; }

  /* Submenu (folha lateral) para acima da barra de baixo. */
  html body #sidebar-sub-drawer:not(#love-h-a) { top: var(--navbar-height-mobile) !important; bottom: var(--bottom-bar-height-mobile) !important; }

  /* Toque de no mínimo 44px nos botões só de ícone e nos botões de ação. */
  html body :is(.header-icon-btn, #btn-user-account-menu, .rfp-voltar-seta, .gifts-listas-voltar, .builder-tool-btn, .love-tabela-mais, .guests-pagination-btn, .home-link-botao, .despesa-fechar, .orc-fechar, .modal-sair-fechar, .orc-contador-btn):not(#love-h-a) { min-width: 44px !important; min-height: 44px !important; }
  html body :is(.btn-primary, .btn-secondary, .btn-white, .btn-brand, .love-tabela-botao, .informacoes-salvar-rodape):not(#love-h-a) { min-height: 44px !important; }

  /* Campos com 16px: o Safari do iPhone não dá zoom ao tocar. */
  html body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]), select, textarea):not(#love-h-a):not(#love-h-b) { font-size: 16px !important; }
}

/* Criar solicitação em tablet/celular: textos em cima e a caixa do formulário
   embaixo, na largura toda (sem encolher para o tamanho do conteúdo). */
@container rfp-pagina (max-width: 900px) {
  html body #b2b-pedidos-view .rfp-editor:not([hidden]):not(#love-h-a) { align-items: stretch; }
  html body #b2b-pedidos-view .rfp-editor > .rfp-coluna:not(#love-h-a) { width: 100%; min-width: 0; }
}
@media (max-width: 900px) {
  html body #b2b-pedidos-view .rfp-editor:not([hidden]):not(#love-h-a) { align-items: stretch; }
  html body #b2b-pedidos-view .rfp-editor > .rfp-coluna:not(#love-h-a) { width: 100%; min-width: 0; }
}

/* Minhas solicitações: a linha se ajusta à largura da caixa (não da janela).
   Caixa média: some Mensagens/Propostas e o texto vai até o botão.
   Caixa estreita: o botão desce para baixo do texto. */
html body #rfp-lista:not(#love-h-a) { container-type: inline-size; container-name: rfp-lista; width: 100%; min-width: 0; }
@container rfp-lista (max-width: 720px) {
  html body #rfp-lista .rfp-post:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) auto 36px; }
  html body #rfp-lista .rfp-post-num:not(#love-h-a) { display: none; }
}
@container rfp-lista (max-width: 440px) {
  html body #rfp-lista .rfp-post:not(#love-h-a) { grid-template-columns: minmax(0, 1fr) 36px; row-gap: 12px; padding: 18px 16px; }
  html body #rfp-lista .rfp-post > .rfp-post-info:not(#love-h-a) { grid-column: 1; grid-row: 1; }
  html body #rfp-lista .rfp-post > .rfp-menu-wrap:not(#love-h-a) { grid-column: 2; grid-row: 1; align-self: start; }
  html body #rfp-lista .rfp-post > button.rfp-post-botao:not(#love-h-a) { grid-column: 1 / -1; grid-row: 2; justify-self: start; margin-left: 30px; }
}

/* Barra das tabelas (todos os menus): a busca encolhe para "Filtrar por" e
   "Exportar" caberem na mesma linha; só quebra quando não cabe nem assim.
   Tabela solta na caixa rola para o lado dentro da borda, sem vazar. */
html body #view-event-os-dashboard .love-tabela-barra-esq:not(#love-h-a) { flex: 1 1 160px; min-width: 0; }
html body #view-event-os-dashboard .love-tabela-barra-dir:not(#love-h-a) { flex: 0 0 auto; }
html body #view-event-os-dashboard .love-tabela-barra-esq > .love-tabela-busca:not(#love-h-a) { width: 100% !important; max-width: 280px; min-width: 0; }
@media (max-width: 640px) { html body #view-event-os-dashboard .love-tabela-barra-esq > .love-tabela-busca:not(#love-h-a) { max-width: none; } }
html body #view-event-os-dashboard .love-tabela-rolagem:not(#love-h-a) { width: 100%; max-width: 100%; overflow-x: auto; }
html body #view-event-os-dashboard .love-tabela-caixa.budget-table-full-bleed:not(#love-h-a) { width: 100% !important; max-width: 100% !important; min-width: 0; }

/* ==========================================================================
   Celular: submenu como barra segmentada no topo (só até 768px).
   A lateral do submenu some; no desktop nada muda (a barra fica escondida).
   ========================================================================== */
.submenu-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #sidebar-sub-drawer:not(#love-h-a),
  html body #mobile-drawer-backdrop:not(#love-h-a) { display: none !important; }
  html body #dashboard-main-area .submenu-celular:not([hidden]):not(#love-h-a) {
    position: relative; display: flex; gap: 2px; width: 100%; max-width: 100%; box-sizing: border-box;
    margin: 0 0 16px; padding: 3px; background: #F4F4F5; border: 1px solid rgba(0, 0, 0, 0.04); border-radius: 10px;
    overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  html body #dashboard-main-area .submenu-celular::-webkit-scrollbar { display: none; }
  html body .submenu-celular .submenu-celular-item:not(#love-h-a) {
    flex: 1 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    min-height: 38px; padding: 0 14px; background: transparent; border: 1px solid transparent; border-radius: 8px;
    font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; line-height: 1; letter-spacing: -0.01em;
    color: #52525B; white-space: nowrap; cursor: pointer; box-shadow: none; transform: none;
    -webkit-tap-highlight-color: transparent;
  }
  html body .submenu-celular .submenu-celular-item.is-ativo:not(#love-h-a) { background: #FFFFFF; border-color: #E4E4E7; color: #18181B; font-weight: 600; }
  html body .submenu-celular .submenu-celular-selo:not(#love-h-a) { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 6px; background: #183b54; color: #FFFFFF; font-size: 11px; font-weight: 600; line-height: 18px; text-align: center; }
  body[data-theme="dark"] #dashboard-main-area .submenu-celular { background: #1F1F1F; border-color: #333333; }
  body[data-theme="dark"] .submenu-celular .submenu-celular-item { color: #A1A1AA; }
  body[data-theme="dark"] .submenu-celular .submenu-celular-item.is-ativo { background: #333333; border-color: #404040; color: #FFFFFF; }
}

/* Menu lateral: Financeiro sai (abre pelo menu do perfil) e o chat entra no
   lugar dele, no desktop e na barra de baixo do celular. O botão do
   Financeiro continua no HTML, escondido, porque o menu do perfil o usa. */
html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="wallet"]:not(#love-h-a) { display: none !important; }
html body .sidebar-icon-rail .rail-chat-selo:not(#love-h-a) {
  position: absolute; top: 4px; left: calc(50% + 4px); min-width: 16px; height: 16px; padding: 0 4px;
  display: flex; align-items: center; justify-content: center; border-radius: 6px; pointer-events: none;
}
html body .sidebar-icon-rail .rail-chat-selo.hidden:not(#love-h-a) { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .sidebar-icon-rail .rail-chat-btn:not(#love-h-a) { order: 5 !important; }
  html body .sidebar-icon-rail .rail-chat-selo:not(#love-h-a) { top: 6px; left: calc(50% + 5px); }
}

/* ==========================================================================
   Celular (só até 768px): abas do submenu como app (iguais à referência),
   fundo #F4F6F7 (mesmo do desktop e do B2B), sem caixas com borda nem
   margem de fundo.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Abas grudadas no topo, de ponta a ponta: mesma largura, texto limpo,
     linha cinza embaixo e a linha da cor primária em cima da aba ativa. */
  html body #dashboard-main-area .submenu-celular:not([hidden]):not(#love-h-a) {
    position: sticky; top: var(--navbar-height-mobile); z-index: 20;
    gap: 0; width: auto; max-width: none;
    margin: -1.25rem calc(-1 * max(1rem, env(safe-area-inset-right, 0px))) 16px calc(-1 * max(1rem, env(safe-area-inset-left, 0px)));
    padding: 0; background: #FFFFFF; border: 0; border-bottom: 1px solid #E4E4E7; border-radius: 0;
  }
  /* Convite (edit-site): o cabeçalho "Convite digital/Salvar/Publicar" não é
     sticky (rola junto com a página) e fica logo acima da barra no HTML —
     então a barra não precisa "grudar" alto (top: 0, só entra em ação se
     um dia esse cabeçalho passar a ser sticky). O problema real era a
     margem negativa de -1.25rem (pensada pra colar a barra embaixo da
     navbar padrão, que aqui está escondida): sem essa compensação, ela
     puxava a barra pra cima e cobria o cabeçalho. */
  html body #tab-edit-site #submenu-celular:not([hidden]):not(#love-h-a) { top: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; }
  html body .submenu-celular .submenu-celular-item:not(#love-h-a) {
    flex: 1 0 auto; min-width: 33.333%; min-height: 46px; padding: 0 14px;
    background: #FFFFFF; border: 0; border-radius: 0; box-shadow: none;
    font-size: 14px; font-weight: 500; color: #52525B;
  }
  html body .submenu-celular .submenu-celular-item.is-ativo:not(#love-h-a) {
    background: #F7F7F8; border: 0; color: #18181B; font-weight: 600;
    box-shadow: inset 0 3px 0 #183b54;
  }
  body[data-theme="dark"] #dashboard-main-area .submenu-celular { background: #1A1A1A !important; border-bottom-color: #333333 !important; }
  body[data-theme="dark"] .submenu-celular .submenu-celular-item { background: #1A1A1A !important; color: #A1A1AA !important; }
  body[data-theme="dark"] .submenu-celular .submenu-celular-item.is-ativo { background: #252525 !important; color: #FFFFFF !important; box-shadow: inset 0 3px 0 #EBF4FF !important; }

  /* Mesmo fundo #F4F6F7 do desktop e do B2B (cards/caixas continuam brancos). */
  :root { --bg-dashboard: #F4F6F7; }
  html body:not([data-theme="dark"]) :is(#view-event-os-dashboard, #dashboard-main-area, .dashboard-content-wrapper):not(#love-h-a) { background: #F4F6F7 !important; }
  /* Convite digital/Informações/Co-anfitriões: cabeçalho branco é coisa do
     desktop (regra fora de media query) — no celular ele deve ficar igual
     ao de Meus Convidados, no mesmo cinza do resto do dashboard. */
  html body:not([data-theme="dark"]) #view-event-os-dashboard #site-builder-root > .builder-toolbar:not(#love-h-a),
  html body:not([data-theme="dark"]) #view-event-os-dashboard #classic-editor-toolbar:not(#love-h-a) { background: var(--bg-dashboard) !important; border-bottom: 0 !important; }

  /* Caixas e tabelas sem borda, sem cantos e sem fundo próprio, de ponta a
     ponta da tela (as linhas da tabela vão até a borda). */
  html body #view-event-os-dashboard :is(
    .love-tabela-caixa, .rsvp-caixa-abaixo-das-abas, .cart-caixa, .rfp-caixa-form, .rfp-props,
    .chk-lista, #organizadores-caixa, #config-eventos-caixa, .dash-card:has(table)
  ):not(#love-h-a) {
    margin-left: -1rem !important; margin-right: -1rem !important;
    width: auto !important; max-width: none !important;
    border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important;
  }
  /* .floorplan-wrap: o fundo branco + linha no topo são pensados pro desktop,
     onde .floorplan-toolbar continua dentro dela — no celular essa toolbar é
     deslocada pra cima das abas (submenu-celular), deixando esse branco +
     linha como sobra visual embaixo das abas de Meus Convidados. Não mexe no
     modo tela cheia (.is-expandida), que precisa continuar opaco. */
  html body #view-event-os-dashboard .floorplan-wrap:not(.is-expandida):not(#love-h-a) {
    border: 0 !important; background: transparent !important;
  }
  html body #view-event-os-dashboard :is(.love-tabela-caixa, .rsvp-caixa-abaixo-das-abas, .dash-card:has(table)) :is(thead, thead tr, thead th):not(#love-h-a) { border-radius: 0 !important; }
  html body #view-event-os-dashboard :is(.love-tabela-caixa, .rsvp-caixa-abaixo-das-abas, .dash-card:has(table)) :is(tr > :first-child):not(#love-h-a) { padding-left: 16px !important; }
  html body #view-event-os-dashboard :is(.love-tabela-caixa, .rsvp-caixa-abaixo-das-abas, .dash-card:has(table)) :is(tr > :last-child):not(#love-h-a) { padding-right: 16px !important; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Um respiro só: os 16px da área principal. Os blocos de cada página
     (cabeçalho e conteúdo) não somam margem própria no celular. */
  html body #view-event-os-dashboard .dashboard-tab-content:not(#tab-edit-site) > :not(#b2b-messages-view):not(#love-h-a) { padding-left: 0 !important; padding-right: 0 !important; }
  html body #view-event-os-dashboard #tab-rsvp-tables:not(#love-h-a) { padding-left: 0 !important; padding-right: 0 !important; }
  html body #view-event-os-dashboard #b2b-messages-view:not(#love-h-a) { margin-left: -1rem !important; margin-right: -1rem !important; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Telas sem submenu (Home, avisos, ajuda, configurações...): sem a barra de abas. */
  html body:has(:is(#tab-overview, #tab-create-event-page, #tab-legal-doc, #tab-notifications, #tab-faq, #tab-account-settings, #tab-info-event).active) #submenu-celular:not(#love-h-a) { display: none !important; }
}

/* ==========================================================================
   Celular (só até 768px): cabeçalho da página primeiro (título, + e lupa),
   abas logo abaixo; linha da aba ativa reta; busca abre pela lupa;
   Meus presentes com 2 por linha. Desktop não muda.
   ========================================================================== */
.busca-celular-botao { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Cabeçalho compacto: título à esquerda, botões à direita. */
  html body #view-event-os-dashboard .dashboard-tab-content:not(#tab-edit-site) > .builder-toolbar:not(#love-h-a) {
    display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: nowrap !important;
    min-height: 44px; margin: 0 !important; padding: 0 0 12px !important;
    background: transparent !important; border: 0 !important; box-shadow: none !important;
  }
  html body #view-event-os-dashboard .dashboard-tab-content:not(#tab-edit-site) > .builder-toolbar > :first-child:not(#love-h-a) { flex: 1 1 auto; min-width: 0; }

  /* Abas logo abaixo do cabeçalho, de ponta a ponta. */
  html body #view-event-os-dashboard .dashboard-tab-content > .submenu-celular:not([hidden]):not(#love-h-a) { margin: 0 -1rem 16px !important; }
  html body #view-event-os-dashboard .dashboard-tab-content > .submenu-celular:not([hidden]) + *:not(#love-h-a) { padding-top: 0 !important; }

  /* Aba ativa: linha reta da cor primária embaixo, sem cantos. */
  html body #dashboard-main-area .submenu-celular .submenu-celular-item:not(#love-h-a),
  html body #dashboard-main-area .submenu-celular .submenu-celular-item.is-ativo:not(#love-h-a) { position: relative; border-radius: 0 !important; box-shadow: none !important; }
  html body #dashboard-main-area .submenu-celular .submenu-celular-item.is-ativo:not(#love-h-a)::before {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: #183b54; border-radius: 0;
  }
  body[data-theme="dark"] #dashboard-main-area .submenu-celular .submenu-celular-item.is-ativo::before { background: #EBF4FF; }

  /* "Adicionar novo" e afins: só o ícone de +. */
  html body #view-event-os-dashboard :is(#btn-host-add-gift, #btn-host-add-guest, #btn-open-add-expense, #btn-checklist-nova, #btn-rfp-novo):not(.hidden):not([hidden]):not(#love-h-a) {
    display: inline-flex !important; align-items: center; justify-content: center;
    width: 44px !important; min-width: 44px !important; height: 44px !important; min-height: 44px !important; padding: 0 !important;
    font-size: 0 !important; line-height: 0 !important; gap: 0 !important; border-radius: 8px !important;
  }
  html body #view-event-os-dashboard :is(#btn-host-add-gift, #btn-host-add-guest, #btn-open-add-expense, #btn-checklist-nova, #btn-rfp-novo):not(#love-h-a) > * { display: none !important; }
  html body #view-event-os-dashboard :is(#btn-host-add-gift, #btn-host-add-guest, #btn-open-add-expense, #btn-checklist-nova, #btn-rfp-novo):not(#love-h-a)::before {
    content: ''; display: block; width: 20px; height: 20px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 20px no-repeat;
  }

  /* Lupa ao lado do +. */
  html body #view-event-os-dashboard .builder-toolbar > button.busca-celular-botao:not([hidden]):not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
    width: 44px; height: 44px; padding: 0; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px;
    color: #18181B; cursor: pointer; box-shadow: none;
  }
  html body #view-event-os-dashboard .builder-toolbar > button.busca-celular-botao:not(#love-h-a) svg { width: 20px; height: 20px; }
  body[data-theme="dark"] #view-event-os-dashboard .builder-toolbar > button.busca-celular-botao { background: #252525; border-color: #404040; color: #FFFFFF; }

  /* Busca da tabela escondida até tocar na lupa. */
  html body #view-event-os-dashboard .dashboard-tab-content:not(#tab-edit-site):not(.busca-celular-aberta) .love-tabela-busca:not(#love-h-a) { display: none !important; }
  html body #view-event-os-dashboard .dashboard-tab-content.busca-celular-aberta .love-tabela-busca:not(#love-h-a) { width: 100% !important; max-width: none !important; }

  /* Meus presentes: 2 por linha. */
  html body #host-gifts-grid:not(#love-h-a) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
}

/* ==========================================================================
   Celular (só até 768px): o topo com logotipo, notificações e perfil fica só
   na Home; nas outras telas o cabeçalho da página (título) é o topo. Tudo
   de ponta a ponta, sem caixas.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body:not(:has(#tab-overview.active)) .dashboard-top-navbar:not(#love-h-a) { display: none !important; }
  html body:not(:has(#tab-overview.active)) { --navbar-height-mobile: env(safe-area-inset-top, 0px); }

  /* Nenhum modo (editor etc.) empurra o conteúdo para o lado no celular. */
  html body .dashboard-main-area:not(#love-h-a) { margin-left: 0 !important; width: auto !important; max-width: 100% !important; }

  /* Caixas restantes (Configurações, Checklist...): sem borda, de ponta a ponta. */
  html body #view-event-os-dashboard .dashboard-tab-content:not(#tab-overview) :is(.dash-card, .chk-progresso):not(#love-h-a) {
    margin-left: -1rem !important; margin-right: -1rem !important;
    width: auto !important; max-width: none !important;
    border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important;
  }
  html body #view-event-os-dashboard .dashboard-tab-content:not(#tab-overview) :is(.dash-card:not(:has(table)), .chk-progresso):not(#love-h-a) { padding-left: 16px !important; padding-right: 16px !important; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard #tab-rsvp-tables > .floorplan-wrap:not(#love-h-a) { margin-left: -1rem !important; margin-right: -1rem !important; width: auto !important; max-width: none !important; }
}

/* ==========================================================================
   Meus convidados no celular (só até 768px): lista só com os nomes (ordem
   alfabética), avatar com iniciais e o grupo de acompanhantes contornado;
   "RSVP ⌄" no lugar de "Filtrar por"; sem Importar/Exportar; lupa sem caixa
   à esquerda do +; ficha do convidado ao tocar no nome. Desktop não muda.
   ========================================================================== */
.guest-trilho { display: none; }
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) { .ficha-convidado { display: none !important; } }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Cabeçalho: lupa sem caixa e à esquerda do +. */
  html body #view-event-os-dashboard .builder-toolbar > :first-child:not(#love-h-a) { order: 0; }
  html body #view-event-os-dashboard .builder-toolbar > button.busca-celular-botao:not(#love-h-a) { order: 1; background: transparent !important; border: 0 !important; color: #18181B; }
  html body #view-event-os-dashboard .builder-toolbar > :not(:first-child):not(.busca-celular-botao):not(#love-h-a) { order: 2; }
  body[data-theme="dark"] #view-event-os-dashboard .builder-toolbar > button.busca-celular-botao { background: transparent !important; color: #FFFFFF; }

  /* Sem Importar e sem Exportar no celular. */
  html body #view-event-os-dashboard :is(#btn-rsvp-importar, .love-tabela-exportar, #btn-wallet-export):not(#love-h-a) { display: none !important; }

  /* Lista: só o nome. */
  html body #tab-rsvp #rsvp-status-tabs:not(#love-h-a),
  html body #tab-rsvp .guests-table thead:not(#love-h-a),
  html body #tab-rsvp .guests-table tbody td:not(:first-child):not(#love-h-a),
  html body #tab-rsvp .guests-table :is(.guest-select-check, .guest-select-espaco, .guest-tipo-badge, .guest-sub-conector):not(#love-h-a) { display: none !important; }
  html body #tab-rsvp .guests-table:not(#love-h-a) { min-width: 0 !important; width: 100% !important; table-layout: fixed; }
  html body #tab-rsvp .guests-table tbody tr:not(#love-h-a),
  html body #tab-rsvp .guests-table tbody tr td:not(#love-h-a),
  html body #tab-rsvp .guests-table tbody tr:hover td:not(#love-h-a) { background: transparent !important; border: 0 !important; }
  html body #tab-rsvp .guests-table tbody td:first-child:not(#love-h-a) { padding: 0 16px !important; height: auto !important; }
  html body #tab-rsvp .guests-table tbody td:first-child > div:not(#love-h-a) { align-items: stretch !important; gap: 14px !important; min-height: 60px; }
  html body #tab-rsvp .tabela-com-linhas-vazias:not(#love-h-a) { background-image: none !important; }
  html body #tab-rsvp .guests-table .guest-trilho:not(#love-h-a) {
    display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 46px; padding: 6px 0; box-sizing: border-box;
  }
  html body #tab-rsvp .guests-table .guest-trilho:is(.is-inicio, .is-meio, .is-fim):not(#love-h-a) { border-left: 1.5px solid #18181B; border-right: 1.5px solid #18181B; }
  html body #tab-rsvp .guests-table .guest-trilho.is-inicio:not(#love-h-a) { border-top: 1.5px solid #18181B; border-radius: 23px 23px 0 0; margin-top: 6px; padding-top: 2px; }
  html body #tab-rsvp .guests-table .guest-trilho.is-fim:not(#love-h-a) { border-bottom: 1.5px solid #18181B; border-radius: 0 0 23px 23px; margin-bottom: 6px; padding-bottom: 2px; }
  html body #tab-rsvp .guests-table .guest-avatar-celular:not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%;
    background: #FFFFFF; border: 1px solid #E4E4E7; color: #183b54; font-family: Inter, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0;
  }
  html body #tab-rsvp .guests-table .is-acompanhante-row .guest-avatar-celular:not(#love-h-a) { background: #F4F4F5; color: #71717A; }
  /* Com restrição alimentar, o avatar fica na cor dela (igual ao assento no Mapa do evento). */
  html body #tab-rsvp .guests-table .guest-avatar-celular.tem-restricao:not(#love-h-a) { background: var(--cor-restricao) !important; border: 1px solid var(--cor-restricao-borda); color: #18181B !important; }
  html body #tab-rsvp .guests-table button.guest-nome-btn:not(#love-h-a) {
    align-self: center; flex: 1 1 auto; min-width: 0; padding: 12px 0; text-align: left;
    font-family: Inter, sans-serif; font-size: 17px !important; font-weight: 400 !important; color: #18181B !important; text-decoration: none !important;
  }
  html body #tab-rsvp .guests-table .guest-nome-resto:not(#love-h-a) { font-weight: 600; }
  body[data-theme="dark"] #tab-rsvp .guests-table button.guest-nome-btn { color: #FFFFFF !important; }
  body[data-theme="dark"] #tab-rsvp .guests-table .guest-trilho { border-color: #FFFFFF !important; }

  /* "RSVP ⌄" no lugar de "Filtrar por". Margem igual acima e abaixo da busca
     (contando o respiro que já vem de cima, antes das abas): sem isso, a
     busca ficava visivelmente mais perto da linha de baixo que da de cima. */
  html body #tab-rsvp .love-tabela-barra:not(#love-h-a) { padding: 0 16px 16px !important; border-bottom: 1px solid #E4E4E7 !important; }
  html body #tab-rsvp .love-tabela-filtro-btn:not(#love-h-a) {
    height: 40px !important; min-height: 40px !important; padding: 0 12px 0 16px !important; gap: 6px !important;
    background: #FFFFFF !important; border: 1px solid #E4E4E7 !important; border-radius: 8px !important; color: #18181B !important;
  }
  html body #tab-rsvp .love-tabela-filtro-btn > *:not(#love-h-a) { display: none !important; }
  html body #tab-rsvp .love-tabela-filtro-btn:not(#love-h-a)::before { content: 'RSVP'; font-family: Inter, sans-serif; font-size: 15px; font-weight: 500; }
  html body #tab-rsvp .love-tabela-filtro-btn:not(#love-h-a)::after {
    content: ''; width: 18px; height: 18px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318181B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / 18px no-repeat;
  }
  html body #tab-rsvp .love-tabela-filtro-btn.is-ativo:not(#love-h-a) { border-color: #183b54 !important; }

  /* Ficha do convidado (tela cheia, acima do conteúdo e abaixo da barra). */
  body.ficha-aberta { overflow: hidden; }
  .ficha-convidado { position: fixed; left: 0; right: 0; top: 0; bottom: var(--bottom-bar-height-mobile, 64px); z-index: 58; display: flex; flex-direction: column; background: linear-gradient(180deg, #EEF1F3 0%, #F6F7F8 40%, #F6F7F8 100%); font-family: Inter, sans-serif; }
  .ficha-convidado[hidden] { display: none !important; }
  .ficha-convidado .ficha-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: calc(env(safe-area-inset-top, 0px) + 12px) 16px 8px; flex-shrink: 0; }
  .ficha-convidado button { font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .ficha-convidado .ficha-circulo { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 50%; color: #3F3F46; }
  .ficha-convidado .ficha-circulo svg { width: 20px; height: 20px; }
  .ficha-convidado .ficha-texto { height: 44px; padding: 0 4px; background: transparent; border: 0; font-size: 16px; font-weight: 500; color: #3F3F46; }
  .ficha-convidado .ficha-pilula { height: 44px; padding: 0 18px; margin-left: auto; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 8px; font-size: 16px; font-weight: 600; color: #18181B; }
  .ficha-convidado .ficha-pilula.is-salvar { color: #183b54; }
  .ficha-convidado .ficha-pilula:disabled { opacity: 0.6; }
  .ficha-convidado [hidden] { display: none !important; }
  .ficha-convidado .ficha-corpo { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 8px 16px 32px; display: flex; flex-direction: column; align-items: center; }
  .ficha-convidado .ficha-avatar { width: 96px; height: 96px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #EBF4FF; color: #183b54; font-size: 32px; font-weight: 600; }
  .ficha-convidado .ficha-nome { margin: 14px 0 10px; font-size: 22px; font-weight: 700; letter-spacing: -0.025em; color: #27272A; text-align: center; }
  .ficha-convidado .ficha-status { display: inline-flex; align-items: center; height: 34px; padding: 0 16px; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 8px; font-size: 14px; font-weight: 500; color: #3F3F46; }
  .ficha-convidado .ficha-status[data-status="confirmed"] { color: #0E9F6E; }
  .ficha-convidado .ficha-status[data-status="declined"] { color: #b04369; }
  .ficha-convidado .ficha-cartao { width: 100%; margin-top: 20px; padding: 18px 16px 6px; background: #FFFFFF; border-radius: 10px; box-sizing: border-box; text-align: left; }
  .ficha-convidado .ficha-cartao h3 { margin: 0 0 6px; font-size: 19px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
  .ficha-convidado .ficha-linha { display: flex; flex-direction: column; gap: 3px; padding: 10px 0; border-bottom: 1px solid #EDEDED; }
  .ficha-convidado .ficha-linha:last-child { border-bottom: 0; }
  .ficha-convidado .ficha-rotulo { font-size: 13px; color: #71717A; }
  .ficha-convidado .ficha-valor { font-size: 16px; color: #18181B; overflow-wrap: anywhere; }
  .ficha-convidado .ficha-valor.is-vazio { color: #A1A1AA; }
  .ficha-convidado .ficha-valor.is-email { color: #183b54; }
  /* Respostas no mesmo alinhamento do contato: rótulo em cima, valor embaixo, tudo à esquerda. */
  .ficha-convidado .ficha-linha.is-resposta .ficha-valor { text-align: left; }
  .ficha-convidado .ficha-campo { display: flex; align-items: center; gap: 8px; }
  .ficha-convidado .ficha-campo input { flex: 1 1 auto; min-width: 0; height: 26px; padding: 0; background: transparent; border: 0; outline: none; box-shadow: none; font: inherit; font-size: 16px !important; color: #18181B; }
  .ficha-convidado .ficha-campo input::placeholder { color: #C4C4C8; }
  .ficha-convidado .ficha-limpar { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; padding: 0; background: transparent; border: 0; color: #A1A1AA; }
  .ficha-convidado .ficha-limpar svg { width: 20px; height: 20px; }
  .ficha-convidado .ficha-mais { width: 100%; min-height: 52px; margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 16px; background: #FFFFFF; border: 0; border-radius: 10px; font-size: 15px; font-weight: 500; color: #18181B; text-align: left; }
  .ficha-convidado .ficha-mais svg { width: 18px; height: 18px; color: #A1A1AA; flex-shrink: 0; }
  .ficha-convidado.is-editando .ficha-mais { display: none; }
  .ficha-convidado .ficha-erro { width: 100%; margin: 12px 0 0; font-size: 13px; color: #B42318; text-align: left; }
  body[data-theme="dark"] .ficha-convidado { background: #1A1A1A; }
  body[data-theme="dark"] .ficha-convidado :is(.ficha-cartao, .ficha-mais, .ficha-pilula, .ficha-circulo, .ficha-status) { background: #252525; border-color: #333333; color: #FFFFFF; }
  body[data-theme="dark"] .ficha-convidado :is(.ficha-nome, .ficha-valor, .ficha-cartao h3, .ficha-campo input) { color: #FFFFFF; }
  body[data-theme="dark"] .ficha-convidado .ficha-linha { border-bottom-color: #333333; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-rsvp .love-tabela-barra-dir:not(#love-h-a) { justify-content: flex-end !important; margin-left: auto !important; }
}

/* ==========================================================================
   Setas de voltar: a mesma seta (←) em toda a plataforma, sem caixa e sem
   fundo cinza no hover. Mapa do evento expandido ganha a seta ao lado do
   título para voltar à tela reduzida.
   ========================================================================== */
html body :is(.gifts-listas-voltar, .guest-voltar, .rfp-voltar-seta, button.rfp-detalhe-voltar, .floorplan-lista-voltar, .floorplan-voltar):not(#love-h-a),
html body .convite-tela:not(.convite-tela-presente) .convite-voltar:not(#love-h-a) {
  background: transparent !important; border: 0 !important; box-shadow: none !important; color: #18181B !important;
}
html body :is(.gifts-listas-voltar, .guest-voltar, .rfp-voltar-seta, button.rfp-detalhe-voltar, .floorplan-lista-voltar, .floorplan-voltar, .convite-voltar):not(#love-h-a):hover { background-color: transparent !important; color: #181D24 !important; }
body[data-theme="dark"] :is(.gifts-listas-voltar, .guest-voltar, .rfp-voltar-seta, button.rfp-detalhe-voltar, .floorplan-lista-voltar, .floorplan-voltar) { color: #FFFFFF !important; }

.floorplan-toolbar-esq { display: flex; align-items: center; gap: 4px; min-width: 0; }
html body .floorplan-voltar:not(#love-h-a) { display: none; width: 32px; height: 32px; margin-left: -6px; padding: 0; align-items: center; justify-content: center; cursor: pointer; border-radius: 8px; }
html body .floorplan-wrap.is-expandida .floorplan-voltar:not(#love-h-a) { display: inline-flex; }
.floorplan-voltar svg { width: 20px; height: 20px; }

/* ==========================================================================
   Celular (só até 768px): topo com ☰ à esquerda, logo Love no meio e o sino
   à direita. O ☰ abre o menu em tela cheia (logo, seus eventos e os itens de
   Minha conta). Meus convidados: busca fixa ao lado do RSVP e lista contínua.
   Mapa do evento: cabeçalho antes das abas. Desktop não muda.
   ========================================================================== */
.menu-celular-botao, .logo-celular { display: none; }
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) { .menu-celular, .menu-celular-fundo, .menu-conta, .menu-conta-fundo { display: none !important; } }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Topo */
  html body .dashboard-top-navbar > .logo-celular + div:not(#love-h-a),
  html body .dashboard-top-navbar #btn-user-account-menu:not(#love-h-a),
  html body .dashboard-top-navbar #dropdown-user-account:not(#love-h-a) { display: none !important; }
  html body .dashboard-top-navbar > .menu-celular-botao:not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-left: -10px; padding: 0;
    background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  .menu-celular-botao svg, .menu-celular-fechar svg { width: 24px; height: 24px; }
  html body .dashboard-top-navbar > .logo-celular:not(#love-h-a) {
    position: absolute; left: 50%; top: env(safe-area-inset-top, 0px); bottom: 0; transform: translateX(-50%);
    display: flex; align-items: center; gap: 6px; cursor: pointer;
  }
  .logo-celular { display: flex; align-items: center; gap: 6px; }
  .logo-celular .logo-celular-icone { height: 24px; width: auto; }
  .logo-celular .logo-celular-nome { height: 18px; width: auto; }
  .logo-celular .logo-escuro { display: none; }
  body[data-theme="dark"] .logo-celular .logo-claro { display: none; }
  body[data-theme="dark"] .logo-celular .logo-escuro { display: block; }
  body[data-theme="dark"] .dashboard-top-navbar > .menu-celular-botao { color: #FFFFFF; }

  /* Meus convidados: sem lupa; a busca fica sempre à esquerda do RSVP. */
  html body #view-event-os-dashboard #tab-rsvp .builder-toolbar > button.busca-celular-botao:not(#love-h-a) { display: none !important; }
  html body #view-event-os-dashboard #tab-rsvp .love-tabela-barra:not(#love-h-a) { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 8px !important; }
  html body #view-event-os-dashboard #tab-rsvp .love-tabela-barra-esq:not(#love-h-a) { flex: 1 1 auto !important; min-width: 0 !important; }
  html body #view-event-os-dashboard #tab-rsvp .love-tabela-barra-dir:not(#love-h-a) { flex: 0 0 auto !important; margin-left: 0 !important; width: auto !important; }
  html body #view-event-os-dashboard #tab-rsvp .love-tabela-busca:not(#love-h-a):not(#love-h-b) { display: block !important; width: 100% !important; max-width: none !important; flex: 1 1 auto; }
  html body #view-event-os-dashboard #tab-rsvp #rsvp-search-input:not(#love-h-a) { height: 40px !important; font-size: 16px !important; border-radius: 8px !important; }
  /* Lista contínua: sem "Mostrar 15" e sem páginas. */
  html body #tab-rsvp #rsvp-pagination:not(#love-h-a) { display: none !important; }

  /* Mapa do evento: título e ferramentas no topo, abas logo abaixo. */
  html body #view-event-os-dashboard #tab-rsvp-tables .floorplan-wrap > .floorplan-toolbar:not(#love-h-a) {
    display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 8px !important;
    min-height: 44px; padding: 0 16px 12px !important; background: transparent !important; border: 0 !important; box-shadow: none !important;
  }
  html body #view-event-os-dashboard #tab-rsvp-tables .floorplan-wrap > .submenu-celular:not([hidden]):not(#love-h-a) { margin: 0 0 16px !important; }
  html body #view-event-os-dashboard #tab-rsvp-tables .floorplan-toolbar-esq:not(#love-h-a) { flex: 1 1 auto; min-width: 0; }
  html body #view-event-os-dashboard #tab-rsvp-tables .floorplan-toolbar .floorplan-page-name:not(#love-h-a) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-left: 0 !important; padding-right: 0 !important; border-left-width: 0 !important; }
  html body #view-event-os-dashboard #btn-open-add-table-modal:not(#love-h-a) {
    display: inline-flex !important; align-items: center; justify-content: center;
    width: 44px !important; min-width: 44px !important; height: 44px !important; min-height: 44px !important; padding: 0 !important;
    font-size: 0 !important; line-height: 0 !important; gap: 0 !important; border-radius: 8px !important;
  }
  html body #view-event-os-dashboard #btn-open-add-table-modal:not(#love-h-a) > * { display: none !important; }
  html body #view-event-os-dashboard #btn-open-add-table-modal:not(#love-h-a)::before {
    content: ''; display: block; width: 20px; height: 20px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 20px no-repeat;
  }
}

/* ==========================================================================
   Celular (só até 768px)
   1) Barra de baixo flutuante: pílula de vidro fosco na cor da plataforma,
      solta das bordas e acima da barrinha do iPhone.
   2) Mapa do evento: planta na tela toda (sem a lista de convidados), botão
      flutuante que abre a gaveta de mesas e itens, e a tela da mesa.
   Desktop não muda.
   ========================================================================== */
.planta-fab, .planta-gaveta, .planta-gaveta-fundo, .planta-fantasma, .mesa-celular, .mesa-celular-fundo { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  :root { --bottom-bar-height-mobile: calc(64px + env(safe-area-inset-bottom, 0px)); }

  /* Barra fixa, de ponta a ponta (não mais pílula flutuante). */
  html body .sidebar-icon-rail:not(#love-h-a):not(#love-h-b) {
    top: auto !important; left: 0 !important; right: 0 !important; width: 100% !important;
    bottom: 0 !important; height: calc(64px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 0 6px !important; padding-bottom: env(safe-area-inset-bottom, 0px) !important;
    border-radius: 0 !important; border: 1px solid rgba(255, 255, 255, 0.14) !important; border-bottom: 0 !important;
    background: rgba(24, 59, 84, 0.78) !important;
    -webkit-backdrop-filter: blur(20px) saturate(160%); backdrop-filter: blur(20px) saturate(160%);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1) !important; overflow: visible !important;
  }
  html body .sidebar-icon-rail > div:first-child:not(#love-h-a):not(#love-h-b) { height: 62px !important; align-items: center !important; }
  html body .sidebar-icon-rail .rail-icon-btn:not(#love-h-a):not(#love-h-b),
  html body .sidebar-icon-rail .rail-icon-btn.mobile-center-edit:not(#love-h-a):not(#love-h-b) {
    height: 52px !important; min-height: 44px !important; padding: 4px 2px !important; gap: 3px !important; border-radius: 999px !important;
  }
  html body .sidebar-icon-rail .rail-icon-btn.active:not(#love-h-a):not(#love-h-b),
  html body .sidebar-icon-rail .rail-icon-btn.mobile-center-edit.active:not(#love-h-a):not(#love-h-b) { background: rgba(255, 255, 255, 0.16) !important; color: #FFFFFF !important; }
  html body .sidebar-icon-rail .rail-icon-btn:not(#love-h-a):not(#love-h-b) svg { width: 21px !important; height: 21px !important; }
  html body .sidebar-icon-rail .rail-rotulo:not(#love-h-a):not(#love-h-b) { font-size: 10.5px; }
  body[data-theme="dark"] .sidebar-icon-rail { background: rgba(28, 28, 30, 0.78) !important; }

  /* 2) Mapa do evento */
  html body #tab-rsvp-tables #floorplan-guests-panel:not(#love-h-a),
  html body #tab-rsvp-tables .floorplan-toolbar-right:not(#love-h-a) { display: none !important; }
  html body #tab-rsvp-tables .floorplan-body:not(#love-h-a) { min-height: calc(100dvh - var(--bottom-bar-height-mobile) - 150px); }
  html body #tab-rsvp-tables #floorplan-canvas:not(#love-h-a) { flex: 1 1 auto; border: 0 !important; border-radius: 0 !important; }

  /* Botão flutuante */
  .planta-fab {
    position: fixed; left: 50%; bottom: calc(var(--bottom-bar-height-mobile) + 14px); transform: translateX(-50%); z-index: 48;
    align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 20px; white-space: nowrap;
    background: #183b54; color: #FFFFFF; border: 0; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    font-family: Inter, sans-serif; font-size: 15px; font-weight: 600; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  .planta-fab svg { width: 18px; height: 18px; }
  body:has(#tab-rsvp-tables.active):not(.planta-gaveta-aberta):not(.mesa-celular-aberta):not(.menu-celular-aberto) .planta-fab { display: inline-flex; }

  /* Gaveta (sobe de baixo) */
  .planta-gaveta-fundo { display: block; position: fixed; inset: 0; z-index: 64; background: rgba(0, 0, 0, 0.25); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
  .planta-gaveta-fundo.is-aberta { opacity: 1; pointer-events: auto; }
  .planta-gaveta {
    display: flex; flex-direction: column; position: fixed; left: 0; right: 0; bottom: 0; z-index: 66; max-height: 78dvh;
    padding: 6px 16px calc(20px + env(safe-area-inset-bottom, 0px)); background: #FFFFFF; border-radius: 10px 10px 0 0;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.08); font-family: Inter, sans-serif;
    transform: translateY(100%); visibility: hidden; transition: transform .28s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .28s;
  }
  .planta-gaveta.is-aberta { transform: translateY(0); visibility: visible; transition: transform .28s cubic-bezier(.2, .8, .2, 1); }
  .planta-gaveta.is-aberta.is-arrastando { transform: translateY(calc(100% - 40px)); }
  .planta-gaveta-alca { width: 40px; height: 5px; margin: 4px auto 8px; border-radius: 999px; background: #D4D4D8; flex-shrink: 0; }
  .planta-gaveta-topo { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
  .planta-gaveta-topo h3 { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
  .planta-gaveta-fechar { width: 40px; height: 40px; margin-right: -8px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; color: #52525B; cursor: pointer; }
  .planta-gaveta-fechar svg { width: 22px; height: 22px; }
  .planta-gaveta-dica { margin: 2px 0 8px; font-size: 13px; color: #71717A; flex-shrink: 0; }
  .planta-gaveta-corpo { overflow-y: auto; -webkit-overflow-scrolling: touch; min-height: 0; }
  .planta-gaveta-secao { margin: 12px 0 8px; font-size: 11px; font-weight: 500; color: #A1A1AA; text-transform: none; }
  .planta-gaveta-grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 8px; }
  .planta-gaveta-item { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 0; background: transparent; border: 0; cursor: grab; touch-action: none; -webkit-tap-highlight-color: transparent; font-family: inherit; }
  .planta-gaveta-icone { width: 100%; aspect-ratio: 1; max-width: 72px; display: flex; align-items: center; justify-content: center; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; color: #183b54; }
  .planta-gaveta-icone svg { width: 38px; height: 38px; }
  .planta-gaveta-nome { font-size: 12px; font-weight: 500; color: #3F3F46; text-align: center; line-height: 1.25; }
  .planta-fantasma { display: flex; position: fixed; left: 0; top: 0; z-index: 100; width: 64px; height: 64px; align-items: center; justify-content: center; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; color: #183b54; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18); pointer-events: none; }
  .planta-fantasma svg { width: 40px; height: 40px; }

  /* Tela da mesa: gaveta que sobe de baixo (igual à de "Adicionar mesas e
     itens"), não mais tela cheia — abre sobre o mapa com o fundo escurecido
     atrás, puxando a alça pra baixo ou tocando fora pra fechar. */
  body.mesa-celular-aberta { overflow: hidden; }
  .mesa-celular-fundo { display: block; position: fixed; inset: 0; z-index: 69; background: rgba(0, 0, 0, 0.25); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
  .mesa-celular-fundo.is-aberta { opacity: 1; pointer-events: auto; }
  .mesa-celular {
    display: flex; flex-direction: column; position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; max-height: 88dvh;
    overflow: hidden; background: #F6F7F8; font-family: Inter, sans-serif; border-radius: 14px 14px 0 0;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.12);
    transform: translateY(100%); visibility: hidden; transition: transform .28s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .28s;
  }
  .mesa-celular.is-aberta { transform: translateY(0); visibility: visible; transition: transform .28s cubic-bezier(.2, .8, .2, 1); }
  .mesa-celular.is-aberta.is-arrastando { transform: translateY(calc(100% - 40px)); }
  .mesa-celular-alca { width: 40px; height: 5px; margin: 10px auto 0; border-radius: 999px; background: #D4D4D8; flex-shrink: 0; }
  .mesa-celular button { font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .mesa-celular-topo { flex-shrink: 0; display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: 4px; padding: 6px 12px 8px; background: #F6F7F8; }
  .mesa-celular-topo h2 { margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mesa-celular-icone { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; color: #18181B; }
  .mesa-celular-icone svg { width: 22px; height: 22px; }
  .mesa-celular-corpo { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 4px 16px calc(32px + env(safe-area-inset-bottom, 0px)); }
  .mesa-celular-desenho { display: flex; flex-direction: column; align-items: center; padding: 24px 16px 20px; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 10px; background-image: radial-gradient(circle at 1.5px 1.5px, rgba(0, 0, 0, 0.07) 1.5px, transparent 1.6px); background-size: 20px 20px; }
  .mesa-celular-tampo { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 128px; height: 128px; border-radius: 50%; background: var(--cor-da-mesa, #EBF4FF); color: var(--cor-texto-da-mesa, #18181B); border: 1px solid rgba(0, 0, 0, 0.08); }
  .mesa-celular-tampo.formato-retangular { width: 220px; height: 88px; border-radius: 8px; }
  .mesa-celular-tampo.formato-quadrada { border-radius: 8px; }
  .mesa-celular-tampo.formato-bistro { width: 96px; height: 96px; }
  .mesa-celular-tampo strong { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; }
  .mesa-celular-tampo span { font-size: 11px; font-weight: 500; opacity: 0.8; }
  .mesa-celular-lugares { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 18px; }
  /* :not(#love-h-a):not(#love-h-b) só pra vencer o reset global de
     border-radius dos <button> (12px via var(--radius-control), !important). */
  .mesa-celular-lugar:not(#love-h-a):not(#love-h-b) { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border-radius: 10px !important; background: #FFFFFF; border: 1.5px dashed #A1A1AA; color: #A1A1AA; font-size: 13px; font-weight: 600; }
  .mesa-celular-lugar svg { width: 16px; height: 16px; }
  .mesa-celular-lugar.is-ocupado { background: #183b54; border: 0; color: #FFFFFF; }
  .mesa-celular-cartao { margin-top: 16px; padding: 16px; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 10px; }
  .mesa-celular-rotulo { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 500; color: #71717A; }
  .mesa-celular-campo, .mesa-celular-busca { width: 100%; height: 44px; padding: 0 12px; box-sizing: border-box; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; font: inherit; font-size: 16px !important; color: #18181B; outline: none; box-shadow: none; }
  .mesa-celular-campo:focus, .mesa-celular-busca:focus { border-color: #181D24; }
  .mesa-celular-cartao .mesa-celular-rotulo + .mesa-celular-campo { margin-bottom: 16px; }
  .mesa-celular-formatos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
  .mesa-celular-formato { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 2px 8px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #52525B; font-size: 12px; font-weight: 500; }
  .mesa-celular-formato svg { width: 28px; height: 28px; }
  .mesa-celular-formato.is-ativo { border-color: #183b54; background: #EBF4FF; color: #183b54; }
  .mesa-celular-linha { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; border-top: 1px solid rgba(0, 0, 0, 0.06); }
  .mesa-celular-linha .mesa-celular-rotulo { margin: 0; font-size: 15px; color: #3F3F46; }
  .mesa-celular-passos { display: flex; align-items: center; gap: 12px; }
  .mesa-celular-passos button { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; color: #18181B; }
  .mesa-celular-passos button:disabled { opacity: 0.4; }
  .mesa-celular-passos button svg { width: 16px; height: 16px; }
  .mesa-celular-passos span { min-width: 24px; text-align: center; font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; color: #18181B; }
  .mesa-celular-cor { position: relative; width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, 0.12); overflow: hidden; }
  .mesa-celular-cor input { position: absolute; inset: -8px; width: calc(100% + 16px); height: calc(100% + 16px); opacity: 0; cursor: pointer; }
  .mesa-celular-acoes { display: flex; gap: 20px; padding-top: 14px; border-top: 1px solid rgba(0, 0, 0, 0.06); }
  .mesa-celular-acoes button { padding: 4px 0; background: transparent; border: 0; font-size: 14px; font-weight: 500; color: #3F3F46; }
  .mesa-celular-cabeca { display: flex; align-items: center; justify-content: space-between; margin: 24px 0 8px; }
  .mesa-celular-cabeca h3 { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
  .mesa-celular-cabeca button { padding: 6px 0; background: transparent; border: 0; font-size: 15px; font-weight: 600; color: #183b54; }
  .mesa-celular-lista { background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 10px; overflow: hidden; }
  .mesa-celular-pessoa { width: 100%; display: flex; align-items: center; gap: 12px; min-height: 58px; padding: 6px 8px 6px 14px; box-sizing: border-box; background: #FFFFFF; border: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.06); text-align: left; }
  .mesa-celular-pessoa:last-child { border-bottom: 0; }
  .mesa-celular-numero { width: 18px; flex-shrink: 0; font-size: 14px; color: #A1A1AA; font-variant-numeric: tabular-nums; }
  .mesa-celular-nome { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  .mesa-celular-nome strong { font-size: 15px; font-weight: 500; color: #18181B; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mesa-celular-nome span { font-size: 12px; color: #71717A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mesa-celular-tirar { width: 40px; height: 40px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; color: #A1A1AA; }
  .mesa-celular-tirar svg { width: 18px; height: 18px; }
  .mesa-celular-avatar { width: 36px; height: 36px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #EBF4FF; color: #183b54; font-size: 13px; font-weight: 600; }
  .mesa-celular-mais { width: 36px; height: 36px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; color: #183b54; }
  .mesa-celular-mais svg { width: 20px; height: 20px; }
  .mesa-celular-busca { margin-bottom: 8px; }
  .mesa-celular-contagem { margin: 0 0 12px; font-size: 13px; color: #71717A; }
  .mesa-celular-vazio { margin: 0; padding: 20px 16px; font-size: 14px; color: #71717A; text-align: center; }

  body[data-theme="dark"] :is(.planta-gaveta, .mesa-celular, .mesa-celular-topo) { background: #1A1A1A; }
  body[data-theme="dark"] :is(.planta-gaveta-icone, .planta-fantasma, .mesa-celular-desenho, .mesa-celular-cartao, .mesa-celular-lista, .mesa-celular-pessoa, .mesa-celular-campo, .mesa-celular-busca, .mesa-celular-formato, .mesa-celular-passos button) { background-color: #252525; border-color: #404040; }
  body[data-theme="dark"] :is(.planta-gaveta-topo h3, .mesa-celular-topo h2, .mesa-celular-icone, .mesa-celular-nome strong, .mesa-celular-cabeca h3, .mesa-celular-campo, .mesa-celular-busca, .mesa-celular-passos span, .mesa-celular-passos button) { color: #FFFFFF; }
  body[data-theme="dark"] :is(.planta-gaveta-icone, .planta-fantasma, .mesa-celular-cabeca button, .mesa-celular-mais) { color: #EBF4FF; }
  body[data-theme="dark"] .planta-gaveta-nome { color: #D4D4D8; }
  body[data-theme="dark"] .mesa-celular-formato.is-ativo { border-color: #EBF4FF; color: #EBF4FF; background: #183b54; }
}

/* ==========================================================================
   Celular (só até 768px): topo da Home sem a linha embaixo (uma coisa só com
   a página), logo maior, ☰ e sino maiores em círculos de vidro branco.
   O ☰ abre a gaveta lateral (logo, seções e a conta embaixo); a conta abre o
   pop-up de baixo para cima (eventos, itens de Minha conta e Sair).
   Desktop não muda.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Topo */
  html body .dashboard-top-navbar:not(#love-h-a):not(#love-h-b) { border-bottom: 0 !important; box-shadow: none !important; background: #FFFFFF !important; padding-left: 16px !important; padding-right: 16px !important; }
  html body .dashboard-top-navbar:not(#love-h-a)::after { display: none !important; }
  body[data-theme="dark"] .dashboard-top-navbar { background: #1A1A1A !important; }
  html body .dashboard-top-navbar > .logo-celular:not(#love-h-a) { gap: 8px; }
  html body .dashboard-top-navbar > .logo-celular .logo-celular-icone:not(#love-h-a) { height: 30px; }
  html body .dashboard-top-navbar > .logo-celular .logo-celular-nome:not(#love-h-a) { height: 23px; }
  html body .dashboard-top-navbar > .menu-celular-botao:not(#love-h-a),
  html body .dashboard-top-navbar #btn-notifications-menu:not(#love-h-a):not(#love-h-b) {
    width: 48px !important; height: 48px !important; min-width: 48px !important; margin: 0 !important; padding: 0 !important;
    display: inline-flex !important; align-items: center !important; justify-content: center !important;
    border-radius: 50% !important; color: #18181B !important;
    background: rgba(255, 255, 255, 0.72) !important; border: 1px solid rgba(0, 0, 0, 0.06) !important;
    -webkit-backdrop-filter: blur(16px) saturate(160%); backdrop-filter: blur(16px) saturate(160%);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06) !important;
  }
  html body .dashboard-top-navbar > .menu-celular-botao:not(#love-h-a) svg,
  html body .dashboard-top-navbar #btn-notifications-menu:not(#love-h-a) svg { width: 24px !important; height: 24px !important; }
  html body .dashboard-top-navbar #btn-notifications-menu .badge-header-notifications:not(#love-h-a) { top: 4px !important; right: 4px !important; }
  body[data-theme="dark"] .dashboard-top-navbar :is(.menu-celular-botao, #btn-notifications-menu) { background: rgba(37, 37, 37, 0.72) !important; border-color: rgba(255, 255, 255, 0.1) !important; color: #FFFFFF !important; }

  /* Gaveta lateral */
  body.menu-celular-aberto { overflow: hidden; }
  .menu-celular-fundo, .menu-conta-fundo { display: block; position: fixed; inset: 0; background: rgba(0, 0, 0, 0.35); opacity: 0; pointer-events: none; transition: opacity .22s ease; }
  .menu-celular-fundo { z-index: 88; }
  .menu-conta-fundo { z-index: 92; background: rgba(0, 0, 0, 0.2); }
  .menu-celular-fundo.is-aberta, .menu-conta-fundo.is-aberta { opacity: 1; pointer-events: auto; }
  .menu-celular {
    display: flex; flex-direction: column; position: fixed; top: 0; bottom: 0; left: 0; z-index: 90;
    width: min(80vw, 330px); background: #FFFFFF; font-family: Inter, sans-serif;
    padding-top: env(safe-area-inset-top, 0px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    transform: translateX(-100%); visibility: hidden; transition: transform .26s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .26s;
  }
  .menu-celular.is-aberta { transform: translateX(0); visibility: visible; transition: transform .26s cubic-bezier(.2, .8, .2, 1); }
  .menu-celular button, .menu-conta button { font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .menu-celular-topo { display: flex; align-items: center; justify-content: space-between; height: 68px; padding: 0 12px 0 20px; flex-shrink: 0; }
  .menu-celular-topo .logo-celular { display: flex; gap: 8px; }
  .menu-celular-topo .logo-celular-icone { height: 28px; }
  .menu-celular-topo .logo-celular-nome { height: 21px; }
  .menu-celular-fechar { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; color: #18181B; }
  .menu-celular-fechar svg { width: 24px; height: 24px; }
  .menu-celular-nav { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 8px 12px 16px; }
  .menu-celular-secao { margin: 22px 8px 6px; font-size: 13px; font-weight: 500; color: #A1A1AA; }
  .menu-celular-link { width: 100%; min-height: 48px; display: flex; align-items: center; gap: 14px; padding: 0 8px; background: transparent; border: 0; border-radius: 8px; font-size: 16px; font-weight: 400; color: #18181B; text-align: left; }
  .menu-celular-link svg { width: 23px; height: 23px; flex-shrink: 0; color: #3F3F46; }
  .menu-celular-link.is-ativo { font-weight: 600; color: #183b54; }
  .menu-celular-link.is-ativo svg { color: #183b54; }
  .menu-celular-conta {
    display: flex; align-items: center; gap: 12px; flex-shrink: 0; width: 100%; padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px));
    background: #FFFFFF; border: 0; border-top: 1px solid rgba(0, 0, 0, 0.06); text-align: left;
  }
  .menu-celular-conta-textos { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  .menu-celular-conta .menu-celular-nome { font-size: 16px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .menu-celular-conta .menu-celular-evento-nome { font-size: 13px; font-weight: 400; color: #71717A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .menu-celular-conta-seta { width: 20px; height: 20px; flex-shrink: 0; color: #A1A1AA; }
  html body .menu-celular .menu-celular-avatar:not(#love-h-a),
  html body .menu-conta .menu-conta-avatar:not(#love-h-a) { width: 44px; height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 50%; background: #EBF4FF; color: #183b54; font-size: 15px; font-weight: 600; }
  html body .menu-conta .menu-conta-avatar:not(#love-h-a) { width: 72px; height: 72px; min-width: 72px; font-size: 24px; }
  :is(.menu-celular-avatar, .menu-conta-avatar) img { width: 100%; height: 100%; object-fit: cover; }

  /* Pop-up da conta (sobe de baixo, por cima da gaveta) */
  .menu-conta {
    display: flex; flex-direction: column; position: fixed; left: 8px; right: 8px; bottom: 8px; z-index: 94; max-height: calc(100dvh - 72px);
    padding: 6px 20px calc(16px + env(safe-area-inset-bottom, 0px)); overflow-y: auto; -webkit-overflow-scrolling: touch;
    background: #FFFFFF; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); font-family: Inter, sans-serif;
    transform: translateY(calc(100% + 16px)); visibility: hidden; transition: transform .28s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .28s;
  }
  .menu-conta.is-aberta { transform: translateY(0); visibility: visible; transition: transform .28s cubic-bezier(.2, .8, .2, 1); }
  .menu-conta-alca { width: 40px; height: 5px; margin: 4px auto 0; border-radius: 999px; background: #D4D4D8; flex-shrink: 0; }
  .menu-conta-fechar {
    position: absolute; top: 14px; left: 14px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0;
    border-radius: 50%; color: #52525B; background: rgba(255, 255, 255, 0.72); border: 1px solid rgba(0, 0, 0, 0.06);
    -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
  }
  .menu-conta-fechar svg { width: 20px; height: 20px; }
  .menu-conta-cabeca { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 26px 0 16px; text-align: center; }
  .menu-conta-nome { margin: 8px 0 0; font-size: 17px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
  .menu-conta-email { margin: 0; font-size: 13px; color: #71717A; }
  .menu-conta-email:empty { display: none; }
  .menu-conta-eventos { margin-bottom: 8px; }
  .menu-conta .menu-celular-evento-atual { width: 100%; min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; text-align: left; color: #18181B; }
  .menu-conta .menu-celular-evento-atual:disabled { opacity: 0.5; }
  .menu-conta .menu-celular-evento-textos { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .menu-conta .menu-celular-evento-rotulo { font-size: 11px; font-weight: 500; color: #A1A1AA; }
  .menu-conta .menu-celular-evento-nome { font-size: 16px; font-weight: 600; color: #18181B; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .menu-conta .menu-celular-evento-seta { width: 20px; height: 20px; flex-shrink: 0; color: #71717A; transition: transform .15s ease; }
  .menu-conta .menu-celular-evento-atual[aria-expanded="true"] .menu-celular-evento-seta { transform: rotate(180deg); }
  .menu-conta .menu-celular-eventos-lista { margin-top: 8px; border: 1px solid #E4E4E7; border-radius: 10px; overflow: hidden; }
  .menu-conta .menu-celular-evento { width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 14px; background: #FFFFFF; border: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.06); font-size: 15px; color: #18181B; text-align: left; }
  .menu-conta .menu-celular-evento:last-child { border-bottom: 0; }
  .menu-conta .menu-celular-evento > span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .menu-conta .menu-celular-evento svg { width: 18px; height: 18px; flex-shrink: 0; }
  .menu-conta .menu-celular-evento.is-ativo { font-weight: 600; color: #183b54; }
  .menu-conta .menu-celular-evento.is-criar { justify-content: flex-start; font-weight: 600; color: #183b54; }
  .menu-conta-itens { display: flex; flex-direction: column; }
  .menu-conta-item { width: 100%; min-height: 54px; display: flex; align-items: center; gap: 16px; padding: 0 4px; background: transparent; border: 0; font-size: 16px; font-weight: 400; color: #18181B; text-align: left; }
  .menu-conta-item svg { width: 23px; height: 23px; flex-shrink: 0; color: #3F3F46; }
  .menu-conta-item span { flex: 1 1 auto; min-height: 54px; display: flex; align-items: center; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
  .menu-conta-sair { margin: 14px auto 0; padding: 8px 16px; background: transparent; border: 0; font-size: 16px; font-weight: 500; color: #183b54; }

  body[data-theme="dark"] :is(.menu-celular, .menu-celular-conta, .menu-conta) { background: #1A1A1A; }
  body[data-theme="dark"] :is(.menu-celular-fechar, .menu-celular-link, .menu-celular-conta .menu-celular-nome, .menu-conta-nome, .menu-conta-item, .menu-conta .menu-celular-evento, .menu-conta .menu-celular-evento-nome) { color: #FFFFFF; }
  body[data-theme="dark"] :is(.menu-celular-link svg, .menu-conta-item svg) { color: #D4D4D8; }
  body[data-theme="dark"] .menu-celular-link.is-ativo, body[data-theme="dark"] .menu-celular-link.is-ativo svg, body[data-theme="dark"] .menu-conta-sair { color: #EBF4FF; }
  body[data-theme="dark"] :is(.menu-conta .menu-celular-evento-atual, .menu-conta .menu-celular-evento) { background: #252525; border-color: #404040; }
  body[data-theme="dark"] :is(.menu-celular-conta, .menu-conta-item span, .menu-conta .menu-celular-evento) { border-color: rgba(255, 255, 255, 0.08); }
  body[data-theme="dark"] .menu-conta-fechar { background: rgba(37, 37, 37, 0.72); border-color: rgba(255, 255, 255, 0.1); color: #FFFFFF; }
}

/* ==========================================================================
   Celular (só até 768px)
   - Barra de baixo: caixa flutuante com os mesmos cantos das outras caixas
     (10px), no cinza de fundo do desktop (#F4F6F7) com vidro fosco; ícones
     escuros e o ativo na cor primária.
   - Notificações com cara de app: texto maior e data curta (DD/MM/AA) com o
     horário embaixo, sobrando mais espaço para o texto.
   Desktop não muda.
   ========================================================================== */
.notif-tempo-curto { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .sidebar-icon-rail:not(#love-h-a):not(#love-h-b) {
    border-radius: 0 !important; padding: 0 6px !important;
    background: rgba(244, 246, 247, 0.92) !important; border: 1px solid rgba(0, 0, 0, 0.06) !important; border-bottom: 0 !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06) !important;
  }
  html body .sidebar-icon-rail .rail-icon-btn:not(#love-h-a):not(#love-h-b),
  html body .sidebar-icon-rail .rail-icon-btn.mobile-center-edit:not(#love-h-a):not(#love-h-b) { border-radius: 8px !important; color: #52525B !important; }
  html body .sidebar-icon-rail .rail-icon-btn.active:not(#love-h-a):not(#love-h-b),
  html body .sidebar-icon-rail .rail-icon-btn.mobile-center-edit.active:not(#love-h-a):not(#love-h-b) { background: #FFFFFF !important; color: #183b54 !important; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04) !important; }
  html body .sidebar-icon-rail .rail-chat-selo:not(#love-h-a) { border-color: #F4F6F7 !important; }
  body[data-theme="dark"] .sidebar-icon-rail { background: rgba(30, 30, 30, 0.82) !important; border-color: rgba(255, 255, 255, 0.08) !important; }
  body[data-theme="dark"] .sidebar-icon-rail .rail-icon-btn { color: #A1A1AA !important; }
  body[data-theme="dark"] .sidebar-icon-rail .rail-icon-btn.active { background: #2A2A2A !important; color: #FFFFFF !important; }

  /* Notificações */
  html body #notifications-list-container:not(#love-h-a) { margin: 0 -16px !important; max-width: none !important; }
  html body #notifications-list-container .notification-row:not(#love-h-a) {
    margin: 0 !important; padding: 14px 16px !important; gap: 12px !important; border-radius: 0 !important;
  }
  html body #notifications-list-container .notification-row > div:first-child:not(#love-h-a) { width: 40px; height: 40px; border-radius: 10px !important; }
  html body #notifications-list-container .notification-row > div:first-child svg:not(#love-h-a) { width: 22px; height: 22px; }
  html body #notifications-list-container .notification-row p:not(#love-h-a) { font-size: 15px !important; line-height: 1.4 !important; }
  html body #notifications-list-container .notification-row p.font-bold:not(#love-h-a) { font-weight: 600 !important; }
  html body #notifications-list-container .notification-row > div:last-child:not(#love-h-a) { gap: 10px !important; }
  html body #notifications-list-container .notif-tempo-longo:not(#love-h-a) { display: none !important; }
  html body #notifications-list-container .notif-tempo-curto:not(#love-h-a) {
    display: flex; flex-direction: column; align-items: flex-end; gap: 2px;
    font-family: Inter, sans-serif; font-size: 12px; font-weight: 500; line-height: 1.2; color: #A1A1AA; font-variant-numeric: tabular-nums; white-space: nowrap;
  }
  html body #notifications-list-container .notification-row > div:last-child > div:last-child:not(#love-h-a) { align-items: flex-start !important; padding-top: 2px; }
  html body #btn-notifications-mark-all-read:not(#love-h-a) { height: 40px !important; padding: 0 4px !important; background: transparent !important; border: 0 !important; color: #183b54 !important; font-size: 14px !important; font-weight: 600 !important; }
}

/* ==========================================================================
   Celular (só até 768px): Home como app.
   Ordem: Olá → foto do convite + link do site → Presentes → Convidados →
   atalhos em bolinhas (Organização e Benefícios, 4 cada).
   Sem data/local ao lado do nome, sem "Benefícios & Serviços", sem "Mais
   Recursos" e sem o Guia de primeiros passos. Desktop não muda.
   ========================================================================== */
.home-atalhos-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-overview > .grid.lg\:grid-cols-12:not(#love-h-a) { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 20px !important; }
  html body #tab-overview > .grid.lg\:grid-cols-12 > div:not(#love-h-a) { display: contents !important; }
  html body #tab-overview > .grid.lg\:grid-cols-12 > div > *:not(#love-h-a) { margin: 0 !important; }
  html body #tab-overview .home-saudacao:not(#love-h-a) { order: 1; }
  /* Card de Presentes antes da imagem; o de Convidados/Confirmados continua
     abaixo da URL — por isso .home-kpis vira "display:contents" e cada
     card dentro dela recebe sua própria ordem, em vez de mover as duas
     juntas. */
  html body #tab-overview .home-kpis:not(#love-h-a) { display: contents !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) { order: 2; }
  html body #tab-overview #dashboard-promo-carousel:not(#love-h-a) { order: 3; }
  html body #tab-overview #home-link-convite:not(#love-h-a) { order: 4; margin-top: -8px !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) { order: 5; }
  html body #tab-overview #home-atalhos-celular:not(#love-h-a) { order: 6; }
  html body #tab-overview :is(#dash-hub-event-date-badge, #dash-hub-event-location-badge, .home-beneficios, .home-mais-recursos, #quick-start-guide-widget):not(#love-h-a) { display: none !important; }
  html body #tab-overview #dash-hub-title:not(#love-h-a) { font-size: 24px !important; letter-spacing: -0.025em; }

  /* Atalhos em bolinhas */
  .home-atalhos-celular { display: flex; flex-direction: column; gap: 28px; padding-bottom: 8px; font-family: Inter, sans-serif; }
  .home-atalhos-titulo { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
  .home-atalhos-titulo h3 { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; white-space: nowrap; }
  .home-atalhos-titulo span { flex: 1 1 auto; height: 1px; background: #E4E4E7; }
  .home-atalhos-grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .home-atalho { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 0; background: transparent; border: 0; cursor: pointer; font-family: inherit; -webkit-tap-highlight-color: transparent; }
  .home-atalho-bola { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: #FFFFFF; background: #183b54; }
  .is-beneficios .home-atalho-bola { background: #537bae; }
  .home-atalho-bola svg { width: 28px; height: 28px; }
  .home-atalho-nome { font-size: 13px; font-weight: 500; line-height: 1.3; color: #18181B; text-align: center; }
  body[data-theme="dark"] .home-atalhos-titulo h3, body[data-theme="dark"] .home-atalho-nome { color: #FFFFFF; }
  body[data-theme="dark"] .home-atalhos-titulo span { background: #333333; }
}

/* ==========================================================================
   Celular (só até 768px): efeito de vidro de verdade na barra de baixo e nos
   botões ☰ e sino — mais transparente, desfoque forte, brilho interno em cima
   e uma borda escura bem leve nas laterais. Logo da Love maior. Desktop não muda.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .sidebar-icon-rail:not(#love-h-a):not(#love-h-b),
  html body .dashboard-top-navbar > .menu-celular-botao:not(#love-h-a):not(#love-h-b),
  html body .dashboard-top-navbar #btn-notifications-menu:not(#love-h-a):not(#love-h-b) {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.62) 0%, rgba(244, 246, 247, 0.42) 100%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(190%); backdrop-filter: blur(24px) saturate(190%);
    border: 1px solid rgba(0, 0, 0, 0.09) !important;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.95),
      inset 0 0 0 1px rgba(255, 255, 255, 0.45),
      inset 0 -8px 16px rgba(255, 255, 255, 0.25),
      0 8px 24px rgba(0, 0, 0, 0.10) !important;
  }
  html body .dashboard-top-navbar > .menu-celular-botao:not(#love-h-a):not(#love-h-b),
  html body .dashboard-top-navbar #btn-notifications-menu:not(#love-h-a):not(#love-h-b) {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.95),
      inset 0 0 0 1px rgba(255, 255, 255, 0.45),
      0 4px 14px rgba(0, 0, 0, 0.08) !important;
  }
  /* Aba ativa da barra: mesma cor do item ativo no rail do desktop (#F4F6F7, a
     cor de fundo das telas logadas "vazando" através do ícone ativo). */
  html body .sidebar-icon-rail .rail-icon-btn.active:not(#love-h-a):not(#love-h-b),
  html body .sidebar-icon-rail .rail-icon-btn.mobile-center-edit.active:not(#love-h-a):not(#love-h-b) {
    background: #F4F6F7 !important;
    color: #333333 !important;
    box-shadow: none !important;
  }

  /* Logo maior no topo da Home. */
  html body .dashboard-top-navbar > .logo-celular .logo-celular-icone:not(#love-h-a):not(#love-h-b) { height: 36px; }
  html body .dashboard-top-navbar > .logo-celular .logo-celular-nome:not(#love-h-a):not(#love-h-b) { height: 28px; }

  body[data-theme="dark"] :is(.sidebar-icon-rail, .dashboard-top-navbar .menu-celular-botao, .dashboard-top-navbar #btn-notifications-menu) {
    background: linear-gradient(180deg, rgba(60, 60, 60, 0.55) 0%, rgba(30, 30, 30, 0.45) 100%) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 8px 24px rgba(0, 0, 0, 0.3) !important;
  }
}

/* ==========================================================================
   Celular (só até 768px): ficha do convidado em tela inteira para ver, editar
   e adicionar. Seta ← para voltar e título no topo; campos com borda quase
   transparente; avatar quadrado com cantos de 10px; acompanhantes e restrição
   alimentar editáveis na própria tela. Desktop não muda.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .ficha-convidado .ficha-topo { gap: 8px; }
  .ficha-convidado .ficha-voltar { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: flex-start; flex-shrink: 0; padding: 0; background: transparent !important; border: 0 !important; box-shadow: none !important; color: #18181B; }
  .ficha-convidado .ficha-voltar svg { width: 24px; height: 24px; }
  .ficha-convidado .ficha-titulo { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ficha-convidado .ficha-pilula { margin-left: 0; flex-shrink: 0; }
  .ficha-convidado .ficha-avatar { border-radius: 10px; }
  .ficha-convidado.is-novo :is(.ficha-avatar, .ficha-nome, .ficha-status) { display: none !important; }
  .ficha-convidado.is-novo .ficha-cartao:first-of-type { margin-top: 8px; }
  .ficha-convidado:not(.is-editando) .ficha-so-edicao { display: none !important; }
  .ficha-convidado.is-editando .ficha-so-leitura { display: none !important; }
  .ficha-convidado .ficha-cartao { padding-bottom: 16px; }

  /* Campos: só uma borda quase transparente; o toque escurece de leve. */
  html body .ficha-convidado .ficha-linha.is-editando:not(#love-h-a) { border-bottom: 0; padding: 8px 0; }
  html body .ficha-convidado .ficha-campo:not(#love-h-a) { height: 46px; padding: 0 8px 0 12px; border: 1px solid rgba(0, 0, 0, 0.05); border-radius: 8px; background: rgba(255, 255, 255, 0.6); box-sizing: border-box; }
  html body .ficha-convidado .ficha-campo:focus-within:not(#love-h-a) { border-color: rgba(24, 29, 36, 0.22); }
  html body .ficha-convidado .ficha-campo input:not(#love-h-a),
  html body .ficha-convidado .ficha-campo input:focus:not(#love-h-a) { height: 100%; border: 0 !important; box-shadow: none !important; outline: none !important; background: transparent !important; }
  html body .ficha-convidado .ficha-acomp .ficha-input:not(#love-h-a),
  html body .ficha-convidado .ficha-restricao .field-input:not(#love-h-a) { width: 100%; height: 46px; padding: 0 12px; border: 1px solid rgba(0, 0, 0, 0.05) !important; border-radius: 8px !important; background: rgba(255, 255, 255, 0.6) !important; box-shadow: none !important; outline: none !important; font: inherit; font-size: 16px !important; color: #18181B; box-sizing: border-box; }
  html body .ficha-convidado .ficha-acomp .ficha-input:focus:not(#love-h-a),
  html body .ficha-convidado .ficha-restricao .field-input:focus:not(#love-h-a) { border-color: rgba(24, 29, 36, 0.22) !important; }
  .ficha-convidado .ficha-acomp .ficha-input::placeholder { color: #C4C4C8; }
  .ficha-convidado .ficha-restricao { margin-top: 6px; }
  .ficha-convidado .ficha-restricao .restricao-detalhe .field-input { margin-top: 0; }

  /* Acompanhantes */
  .ficha-convidado .ficha-acomp { display: flex; flex-direction: column; gap: 8px; padding: 12px 0 14px; border-bottom: 1px solid #EDEDED; }
  .ficha-convidado .ficha-acomp-topo { display: flex; align-items: center; justify-content: space-between; }
  .ficha-convidado .ficha-acomp-remover { width: 36px; height: 36px; margin-right: -8px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; color: #71717A; }
  .ficha-convidado .ficha-acomp-remover svg { width: 18px; height: 18px; }
  .ficha-convidado .ficha-acomp .ficha-restricao { margin-top: 0; }
  .ficha-convidado .ficha-add-acomp { width: 100%; height: 46px; margin-top: 12px; display: flex; align-items: center; justify-content: center; gap: 8px; background: transparent; border: 1px dashed rgba(0, 0, 0, 0.14); border-radius: 8px; font-size: 15px; font-weight: 600; color: #183b54; }
  .ficha-convidado .ficha-add-acomp svg { width: 18px; height: 18px; }

  body[data-theme="dark"] .ficha-convidado :is(.ficha-titulo, .ficha-voltar) { color: #FFFFFF; }
  body[data-theme="dark"] .ficha-convidado :is(.ficha-campo, .ficha-acomp .ficha-input, .ficha-restricao .field-input) { background: rgba(255, 255, 255, 0.04) !important; border-color: rgba(255, 255, 255, 0.08) !important; color: #FFFFFF; }
  body[data-theme="dark"] .ficha-convidado .ficha-acomp { border-bottom-color: #333333; }
}

/* ==========================================================================
   Celular (só até 768px): Mapa do evento com pinça e arraste. A área do mapa
   tem altura fixa e rola por dentro (o dedo move a planta, não a página);
   botões + / − / centralizar à direita. Desktop não muda.
   ========================================================================== */
.planta-zoom { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-rsvp-tables .floorplan-body:not(#love-h-a) {
    height: calc(100dvh - var(--bottom-bar-height-mobile) - 150px); min-height: 0;
    overflow: auto; overscroll-behavior: contain; scrollbar-width: none;
    padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px);
  }
  html body #tab-rsvp-tables .floorplan-body:not(#love-h-a)::-webkit-scrollbar { display: none; }
  html body #tab-rsvp-tables #floorplan-canvas:not(#love-h-a) { touch-action: none; min-width: 0; }
  html body #tab-rsvp-tables #floorplan-canvas.tem-zoom:not(#love-h-a) { flex: 0 0 auto !important; }
  /* Folga no fim para a última mesa não ficar atrás do botão e da barra. */
  html body #tab-rsvp-tables #floorplan-canvas:not(#love-h-a) { margin-bottom: 72px; }

  .planta-zoom {
    position: fixed; right: calc(16px + env(safe-area-inset-right, 0px)); bottom: calc(var(--bottom-bar-height-mobile) + 76px); z-index: 48;
    flex-direction: column; overflow: hidden;
    background: rgba(255, 255, 255, 0.72); -webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 10px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 8px 24px rgba(0, 0, 0, 0.08);
  }
  .planta-zoom button { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; color: #18181B; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .planta-zoom button + button { border-top: 1px solid rgba(0, 0, 0, 0.06); }
  .planta-zoom svg { width: 20px; height: 20px; }
  body:has(#tab-rsvp-tables.active):not(.planta-gaveta-aberta):not(.mesa-celular-aberta):not(.menu-celular-aberto) .planta-zoom { display: flex; }
  body[data-theme="dark"] .planta-zoom { background: rgba(40, 40, 40, 0.72); border-color: rgba(255, 255, 255, 0.1); }
  body[data-theme="dark"] .planta-zoom button { color: #FFFFFF; }
}

/* ==========================================================================
   Celular (até 768px ou deitado): Checklist, Mensagens e editor do convite.
   - Checklist: contadores em 3 colunas na largura toda; sem as abas
     Cronograma / Por categoria / Todas / Pendentes / Concluídas.
   - Mensagens: ocupa a largura toda (sem faixa branca à direita) e sem as
     abas Explorar / Mensagens / Contratos em cima.
   - Convite digital: prévia em tela cheia; botão flutuante "Adicionar
     elementos" abre a gaveta de baixo para cima. Desktop não muda.
   ========================================================================== */
.builder-fab, .builder-gaveta, .builder-gaveta-fundo { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Checklist */
  html body .chk-contadores:not(#love-h-a) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: 100%; }
  html body .chk-contador:not(#love-h-a) { height: auto; min-height: 64px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; padding: 10px 12px; border-radius: 8px; font-size: 13px; line-height: 1.25; }
  html body .chk-contador b:not(#love-h-a) { font-size: 20px; line-height: 1.1; }
  html body .chk-filtros:not(#love-h-a) { display: none !important; }
  html body .chk-lista:not(#love-h-a) { margin-top: 20px; }

  /* Mensagens */
  html body #tab-b2b #b2b-messages-view:not(#love-h-a) { width: calc(100% + 32px) !important; max-width: none !important; }
  html body #tab-b2b #b2b-messages-view .b2b-chat-contacts-column:not(#love-h-a) { width: 100% !important; min-width: 0 !important; border-right: 0 !important; }
  html body #tab-b2b #b2b-chat-search:not(#love-h-a) { height: 40px !important; font-size: 16px !important; border-radius: 8px !important; }
  /* Mesmo alinhamento/padding da busca de Meus Convidados (.love-tabela-barra). */
  html body #tab-b2b #b2b-messages-view .b2b-chat-contacts-column > div:first-of-type:not(#love-h-a) { height: auto !important; padding: 0 16px 16px !important; border-bottom: 1px solid #E4E4E7 !important; }
  body:has(#b2b-messages-view:not(.hidden)) #submenu-celular { display: none !important; }

  /* Convite digital: prévia na tela toda */
  html body #tab-edit-site .builder-narrow-notice:not(#love-h-a) { display: none !important; }
  html body #tab-edit-site .builder-wrap:not(#love-h-a) { display: flex !important; flex-direction: column; border: 0 !important; border-radius: 0 !important; background: transparent !important; margin: 0 -16px; width: calc(100% + 32px); }
  html body #tab-edit-site .builder-device-toggle:not(#love-h-a),
  html body #tab-edit-site .builder-toolbar-divider:not(#love-h-a) { display: none !important; }
  /* Mesmo "padding" vertical de Informações/Co-anfitriões (0 em cima, 12px
     embaixo) — tinha 6px simétrico, deixando os botões (Salvar, seta de
     redirecionar) mais baixos que os de lá. */
  html body #tab-edit-site .builder-wrap > .builder-toolbar:not(#love-h-a) { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 8px !important; height: auto !important; min-height: 56px; padding: 0 16px 12px !important; border-bottom: 1px solid rgba(0, 0, 0, 0.05) !important; }
  html body #tab-edit-site .builder-toolbar-left:not(#love-h-a) { flex: 1 1 auto; min-width: 0; }
  html body #tab-edit-site .builder-toolbar-right:not(#love-h-a) { display: flex !important; align-items: center; gap: 6px; flex: 0 0 auto; margin: 0 !important; }
  html body #tab-edit-site .builder-toolbar-right .builder-tool-btn:not(#love-h-a) { width: 40px; height: 40px; }
  html body #tab-edit-site .builder-toolbar-right .builder-toolbar-btn:not(#love-h-a) { height: 40px; padding: 0 12px !important; font-size: 14px !important; }
  html body #tab-edit-site .builder-body:not(#love-h-a) { display: block !important; height: auto !important; min-height: 0 !important; }
  html body #tab-edit-site .builder-canvas-viewport:not(#love-h-a) { width: 100% !important; height: auto !important; padding: 0 !important; overflow: visible !important; background: transparent !important; }
  html body #tab-edit-site .builder-canvas-frame:not(#love-h-a) { width: 100% !important; max-width: none !important; height: auto !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
  html body #tab-edit-site .builder-canvas-scroll:not(#love-h-a) { height: auto !important; max-height: none !important; overflow: visible !important; }
  html body #tab-edit-site .builder-canvas:not(#love-h-a) { padding-bottom: calc(var(--bottom-bar-height-mobile, 76px) + 72px) !important; }

  /* Botão flutuante e gaveta */
  .builder-fab {
    position: fixed; left: 50%; bottom: calc(var(--bottom-bar-height-mobile, 76px) + 14px); transform: translateX(-50%); z-index: 48;
    align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 20px; white-space: nowrap;
    background: #183b54; color: #FFFFFF; border: 0; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    font-family: Inter, sans-serif; font-size: 15px; font-weight: 600; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  .builder-fab svg { width: 18px; height: 18px; }
  body:has(#tab-edit-site.active #site-builder-root):not(.builder-gaveta-aberta):not(.menu-celular-aberto) .builder-fab { display: inline-flex; }
  body:has(#tab-edit-site.active .builder-wrap[style*="display: none"]) .builder-fab,
  body:has(#tab-edit-site.active .builder-wrap.hidden) .builder-fab { display: none !important; }
  .builder-gaveta-fundo { position: fixed; inset: 0; z-index: 60; background: rgba(0, 0, 0, 0.18); opacity: 0; pointer-events: none; transition: opacity .2s ease; display: block; }
  .builder-gaveta-fundo.is-aberta { opacity: 1; pointer-events: auto; }
  .builder-gaveta {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 61; display: flex; flex-direction: column;
    max-height: 78dvh; padding-bottom: env(safe-area-inset-bottom, 0px);
    background: #FFFFFF; border-radius: 10px 10px 0 0; box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.08);
    transform: translateY(105%); transition: transform .25s ease; font-family: Inter, sans-serif;
  }
  .builder-gaveta.is-aberta { transform: translateY(0); }
  .builder-gaveta-alca { width: 40px; height: 5px; margin: 8px auto 2px; border-radius: 3px; background: #E4E4E7; flex-shrink: 0; }
  .builder-gaveta-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 16px 10px; flex-shrink: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.05); }
  .builder-gaveta-titulo { margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; }
  .builder-gaveta-fechar { width: 44px; height: 44px; margin-right: -10px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; color: #52525B; cursor: pointer; }
  .builder-gaveta-fechar svg { width: 20px; height: 20px; }
  .builder-gaveta-corpo { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
  html body .builder-gaveta #builder-elements-panel:not(#love-h-a) { position: static !important; width: 100% !important; max-width: none !important; height: auto !important; max-height: none !important; border: 0 !important; overflow: visible !important; background: transparent !important; }
  html body .builder-gaveta #builder-elements-panel .builder-panel-tab-body:not(#love-h-a) { height: auto !important; max-height: none !important; overflow: visible !important; padding: 8px 16px 20px !important; }
  html body .builder-gaveta .builder-el-grid:not(#love-h-a) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  html body .builder-gaveta .builder-el-item:not(#love-h-a) { min-height: 76px; border-radius: 8px !important; font-size: 13px !important; }
  html body .builder-gaveta .builder-el-item svg:not(#love-h-a) { width: 24px; height: 24px; }
  body[data-theme="dark"] .builder-gaveta { background: #1c1c1c; }
  body[data-theme="dark"] .builder-gaveta-titulo { color: #FFFFFF; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Topo do editor no celular: nome da página, ver convite, Salvar e Publicar. */
  html body #tab-edit-site :is(#builder-undo, #builder-redo):not(#love-h-a) { display: none !important; }
  html body #tab-edit-site .builder-wrap:not(#love-h-a) { height: auto !important; min-height: 0 !important; }
  /* Mesmo tamanho e posição do título de Meus Convidados/Meus Presentes/
     Informações/Co-anfitriões (.floorplan-page-name, 20px, rente à borda) —
     antes ficava menor (17px) e com o padding do botão empurrando o texto
     pra direita. A seta do dropdown (fundo da direita) continua do mesmo
     jeito. */
  html body #tab-edit-site .builder-page-name:not(#love-h-a) { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-left: 0; }
  /* Aparência também precisa entrar sem a animação da aba (fadeInTab, que
     começa com translateY(6px) e só assenta depois de uns 300ms) — Informações
     e Co-anfitriões já tinham essa regra, só faltava aqui. Sem isso, o
     cabeçalho "pulava" 6px pra baixo toda vez que a pessoa entrava em
     Aparência, parecendo desalinhado de Informações/Co-anfitriões. */
  html body #tab-edit-site:has(#site-builder-root:not([style*="none"])):not(#love-h-a) { animation: none !important; transform: none !important; }
}

/* Celular: Convite digital › Informações — prévia na tela toda e o formulário
   numa gaveta de baixo para cima ("Editar informações"). Desktop não muda. */
.info-gaveta-cabeca { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #classic-editor-toolbar:not(#love-h-a) { flex-wrap: nowrap !important; align-items: center !important; gap: 8px !important; height: auto !important; min-height: 56px; padding: 6px 0 !important; }
  html body #classic-editor-toolbar :is(#classic-editor-undo, #classic-editor-redo):not(#love-h-a) { display: none !important; }
  html body #tab-edit-site > .editor-split-wrapper:not(#love-h-a) { flex-direction: column !important; margin: 0 -16px; width: calc(100% + 32px) !important; height: auto !important; border: 0 !important; }
  html body #tab-edit-site #editor-live-preview-column:not(#love-h-a) { position: static !important; width: 100% !important; height: auto !important; min-height: 0 !important; border: 0 !important; overflow: visible !important; }
  html body #tab-edit-site #live-preview-container:not(#love-h-a),
  html body #tab-edit-site #classic-builder-preview:not(#love-h-a) { height: auto !important; max-height: none !important; overflow: visible !important; }
  html body #tab-edit-site #editor-live-preview-column:not(#love-h-a) { padding-bottom: calc(var(--bottom-bar-height-mobile, 76px) + 72px) !important; }

  /* O formulário vira a página inteira (igual ao editar convidado): some
     por completo até abrir, sem gaveta nem fundo escurecido por trás. */
  body:has(#editor-form-data:not(.hidden)) #tab-edit-site #editor-form-column {
    display: none !important; position: fixed !important; left: 0; right: 0; top: 0; bottom: var(--bottom-bar-height-mobile, 76px); z-index: 61; width: auto !important; max-height: none;
    padding: 0 16px calc(24px + env(safe-area-inset-bottom, 0px)) !important; overflow-y: auto !important; overscroll-behavior: contain;
    background: linear-gradient(180deg, #EEF1F3 0%, #F6F7F8 40%, #F6F7F8 100%); border-radius: 0; box-shadow: none;
  }
  /* Vence o "body.editor-split-mode #editor-form-column { display:none !important }" do desktop. */
  body.info-gaveta-aberta:has(#editor-form-data:not(.hidden)) #tab-edit-site #editor-form-column { display: block !important; }
  body:has(#editor-form-data:not(.hidden)) .info-gaveta-cabeca { display: block; position: sticky; top: 0; z-index: 2; margin: 0 -16px 8px; background: #EEF1F3; }
  body:has(#editor-form-data:not(.hidden)) .info-gaveta-cabeca .builder-gaveta-topo { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: 4px; padding-top: calc(env(safe-area-inset-top, 0px) + 6px); }
  body:has(#editor-form-data:not(.hidden)) .info-gaveta-cabeca .builder-gaveta-titulo { text-align: center; }
  body:has(#editor-form-data:not(.hidden)) #editor-form-data { padding-bottom: 8px !important; }
  html body #tab-edit-site #editor-form-data :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not(#love-h-a) { font-size: 16px !important; }

  .info-fab { display: none !important; }
  body:has(#tab-edit-site.active #editor-form-data:not(.hidden)):not(.info-gaveta-aberta):not(.menu-celular-aberto) .info-fab { display: inline-flex !important; }
  body[data-theme="dark"]:has(#editor-form-data:not(.hidden)) #tab-edit-site #editor-form-column { background: linear-gradient(180deg, #1A1A1A 0%, #141414 100%) !important; }
  body[data-theme="dark"]:has(#editor-form-data:not(.hidden)) .info-gaveta-cabeca { background: #1A1A1A !important; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* A entrada da aba (fadeInTab, fill forwards) deixa um transform que prende
     a gaveta fixa dentro da aba: em Informações a aba entra sem ele. */
  html body #tab-edit-site:has(#editor-form-data:not(.hidden)):not(#love-h-a) { animation: none !important; transform: none !important; }
  body:has(#editor-form-data:not(.hidden)) #tab-edit-site #editor-form-column { left: 0 !important; right: 0 !important; margin: 0 !important; }
}

/* ==========================================================================
   Co-anfitriões no celular, igual a Meus convidados: lista com avatar e nome
   (primeiro nome leve, sobrenome em negrito), "+" quadrado no cabeçalho e
   "Adicionar co-anfitrião" em página inteira (seta, título e Enviar no topo).
   Desktop não muda.
   ========================================================================== */
.org-avatar-celular, .org-pagina-topo { display: none; }
.org-nome-celula, .org-nome-texto { display: contents; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* "+" do cabeçalho, igual ao de Meus convidados — só em Co-anfitriões
     (senão aparecia também em Informações, que não tem esse botão). */
  body:has(#editor-form-about:not(.hidden)) #view-event-os-dashboard #btn-org-adicionar:not(.hidden):not([hidden]):not(#love-h-a) {
    display: inline-flex !important; align-items: center; justify-content: center;
    width: 44px !important; min-width: 44px !important; height: 44px !important; min-height: 44px !important; padding: 0 !important;
    font-size: 0 !important; line-height: 0 !important; gap: 0 !important; border-radius: 8px !important; margin-left: auto;
  }
  html body #view-event-os-dashboard #btn-org-adicionar:not(#love-h-a) > * { display: none !important; }
  body:has(#editor-form-about:not(.hidden)) #view-event-os-dashboard #btn-org-adicionar:not(#love-h-a)::before {
    content: ''; display: block; width: 20px; height: 20px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 20px no-repeat;
  }
  body:has(#editor-form-about:not(.hidden)) #classic-editor-toolbar :is(#editor-header-save-container, #classic-editor-ver-publicada) { display: none !important; }

  /* Lista: avatar + nome; situação e ⋯ à direita; sem cabeçalho e sem e-mail/funções. */
  html body #organizadores-tabela thead:not(#love-h-a),
  html body #organizadores-tabela tbody tr > td:nth-child(2):not(#love-h-a),
  html body #organizadores-tabela tbody tr > td:nth-child(3):not(#love-h-a) { display: none !important; }
  html body #organizadores-tabela:not(#love-h-a) { min-width: 0 !important; width: 100% !important; }
  html body #organizadores-tabela tbody tr:not(.org-editar-linha):not(#love-h-a) { display: flex; align-items: center; gap: 8px; padding: 0 16px; min-height: 60px; background: transparent !important; }
  html body #organizadores-tabela tbody tr:not(.org-editar-linha) > td:not(#love-h-a) { padding: 0 !important; border: 0 !important; background: transparent !important; height: auto !important; }
  html body #organizadores-tabela tbody tr:not(.org-editar-linha) > td:first-child:not(#love-h-a) { flex: 1 1 auto; min-width: 0; }
  html body #organizadores-tabela tbody tr.org-editar-linha:not(.hidden) > td:not(#love-h-a) { display: block; padding: 12px 16px 16px !important; }
  html body #organizadores-tabela .org-nome-celula:not(#love-h-a) { display: flex; align-items: center; gap: 14px; min-width: 0; }
  html body #organizadores-tabela .org-avatar-celular:not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 38px; height: 38px; margin: 0 4px; border-radius: 50%;
    background: #EBF4FF; color: #183b54; font-family: Inter, sans-serif; font-size: 13px; font-weight: 600;
  }
  html body #organizadores-tabela .org-nome-texto:not(#love-h-a) { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: Inter, sans-serif; font-size: 17px; font-weight: 400; color: #18181B; }
  html body #organizadores-tabela .org-nome-texto .guest-nome-resto:not(#love-h-a) { font-weight: 600; }
  html body #organizadores-caixa .tabela-com-linhas-vazias:not(#love-h-a) { background-image: none !important; }
  html body #organizadores-caixa:not(#love-h-a) { border-left: 0 !important; border-right: 0 !important; border-radius: 0 !important; margin: 0 -16px; }

  /* Página inteira de adicionar (presa fora da aba: sem a animação de entrada). */
  html body #tab-edit-site:has(#editor-form-about:not(.hidden)):not(#love-h-a) { animation: none !important; transform: none !important; }
  html body #organizadores-caixa.is-adicionando #organizadores-convidar:not(#love-h-a) {
    position: fixed; left: 0; right: 0; top: 0; bottom: var(--bottom-bar-height-mobile, 76px); z-index: 58;
    display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain;
    background: linear-gradient(180deg, #EEF1F3 0%, #F6F7F8 40%, #F6F7F8 100%); font-family: Inter, sans-serif;
  }
  html body #organizadores-convidar .org-pagina-topo:not(#love-h-a) { display: flex; align-items: center; gap: 8px; padding: calc(env(safe-area-inset-top, 0px) + 12px) 16px 8px; flex-shrink: 0; position: sticky; top: 0; z-index: 1; }
  html body #organizadores-convidar .org-pagina-voltar:not(#love-h-a) { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: flex-start; flex-shrink: 0; padding: 0; background: transparent !important; border: 0 !important; color: #18181B; cursor: pointer; }
  html body #organizadores-convidar .org-pagina-voltar svg:not(#love-h-a) { width: 24px; height: 24px; }
  html body #organizadores-convidar .org-pagina-titulo:not(#love-h-a) { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html body #organizadores-convidar .org-pagina-enviar:not(#love-h-a) { height: 44px; padding: 0 18px; flex-shrink: 0; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 8px; font-family: inherit; font-size: 16px; font-weight: 600; color: #183b54; cursor: pointer; }
  html body #organizadores-convidar .org-form:not(#love-h-a) { margin: 8px 16px 32px; padding: 18px 16px !important; gap: 18px !important; background: #FFFFFF; border-radius: 10px; }
  html body #organizadores-convidar .org-form-intro:not(#love-h-a) { font-size: 15px !important; }
  html body #organizadores-convidar .org-form-campo:not(#love-h-a) { max-width: none !important; }
  html body #organizadores-convidar .org-convite-email:not(#love-h-a) { height: 46px !important; padding: 0 12px !important; font-size: 16px !important; border: 1px solid rgba(0, 0, 0, 0.05) !important; border-radius: 8px !important; background: rgba(255, 255, 255, 0.6) !important; box-shadow: none !important; }
  html body #organizadores-convidar .org-convite-email:focus:not(#love-h-a) { border-color: rgba(24, 29, 36, 0.22) !important; }
  html body #organizadores-convidar #host-invite-areas label:not(#love-h-a) { min-height: 44px; font-size: 15px !important; }
  html body #organizadores-convidar .org-convite-acoes:not(#love-h-a) { display: none !important; }
  body[data-theme="dark"] #organizadores-caixa.is-adicionando #organizadores-convidar { background: #1A1A1A !important; }
  body[data-theme="dark"] #organizadores-convidar :is(.org-form, .org-pagina-enviar) { background: #252525 !important; }
  body[data-theme="dark"] #organizadores-convidar :is(.org-pagina-titulo, .org-pagina-voltar) { color: #FFFFFF !important; }
  body[data-theme="dark"] #organizadores-tabela .org-nome-texto { color: #FFFFFF !important; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Co-anfitriões: sem prévia em cima, lista de ponta a ponta, campo de app. */
  html body.organizadores-sem-previa #tab-edit-site #editor-live-preview-column:not(#love-h-a) { display: none !important; }
  html body.organizadores-sem-previa #tab-edit-site #editor-form-column:not(#love-h-a) { padding: 8px 16px 32px !important; }
  html body #editor-form-about #organizadores-convidar input.org-convite-email:not(#love-h-a) { height: 46px !important; min-height: 46px !important; max-width: none !important; padding: 0 12px !important; font-size: 16px !important; border: 1px solid rgba(0, 0, 0, 0.05) !important; background: rgba(255, 255, 255, 0.6) !important; }
  html body #editor-form-about #organizadores-convidar input.org-convite-email:not(#love-h-a):focus { border-color: rgba(24, 29, 36, 0.22) !important; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Cabeçalho do editor clássico (Informações / Co-anfitriões) alinhado como em Meus convidados. */
  html body #view-event-os-dashboard #tab-edit-site #classic-editor-toolbar:not(#love-h-a) { padding: 0 0 12px !important; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Aparência e Informações iguais no celular: cabeçalho com a mesma altura
     (57px), "ver convite" e Salvar do mesmo tamanho e com o mesmo espaço, e a
     primeira imagem de Informações no mesmo formato da capa de Aparência
     (366px de altura, começando na mesma linha). */
  html body #view-event-os-dashboard #tab-edit-site #classic-editor-toolbar:not(#love-h-a) { min-height: 57px !important; box-sizing: border-box; }
  html body #tab-edit-site .builder-toolbar-right:not(#love-h-a),
  html body #tab-edit-site #classic-editor-toolbar > div:last-child:not(#love-h-a) { gap: 8px !important; }
  html body #tab-edit-site :is(#builder-save, #builder-publish, #btn-save-header-edit):not(#love-h-a) { height: 38px !important; padding: 0 14px !important; font-size: 14px !important; }
  html body #tab-edit-site #classic-builder-preview .convite-tela-capa:not(#love-h-a) { height: 366px !important; margin-top: calc(-1.5rem + 1px) !important; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Título e botões de Informações/Co-anfitriões na mesma linha de Aparência. */
  html body #view-event-os-dashboard #tab-edit-site #classic-editor-toolbar:not(#love-h-a) { align-items: flex-start !important; }
  html body #tab-edit-site #editor-active-sub-title:not(#love-h-a) { min-height: 45px; display: flex; align-items: center; padding-top: 0 !important; padding-bottom: 0 !important; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Aparência: a capa (primeira seção) ocupa 100% da largura, como em
     Informações — sem a borda de 1px da seção (deixava uma linha branca em
     volta da foto). Seleção vira contorno por dentro, por cima da foto. */
  html body #site-builder-root .builder-section.is-first-content-section:not(#love-h-a) { border: 0 !important; padding-top: 25px; padding-bottom: 25px; }
  html body #site-builder-root .builder-section.is-first-content-section.is-selected:not(#love-h-a) { outline: 2px solid var(--primary-blue, #183b54); outline-offset: -2px; }
  /* Informações acompanha: 368px a partir da mesma linha. */
  html body #tab-edit-site #classic-builder-preview .convite-tela-capa:not(#love-h-a) { height: 368px !important; margin-top: -1.5rem !important; }
}

/* ==========================================================================
   Celular: Lista de presentes — Configurações vira ícone à esquerda do +,
   sem lupa no cabeçalho e a busca sempre aberta, igual a Meus convidados.
   Desktop não muda.
   ========================================================================== */
.gifts-config-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard #tab-gifts .gifts-config-celular:not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
    width: 44px; height: 44px; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  html body #view-event-os-dashboard #tab-gifts .gifts-config-celular svg:not(#love-h-a) { width: 22px; height: 22px; }
  body[data-theme="dark"] #tab-gifts .gifts-config-celular { color: #FFFFFF; }

  html body #view-event-os-dashboard #tab-gifts .builder-toolbar > button.busca-celular-botao:not(#love-h-a) { display: none !important; }
  html body #view-event-os-dashboard #tab-gifts .love-tabela-barra:not(#love-h-a) { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 8px !important; }
  html body #view-event-os-dashboard #tab-gifts .love-tabela-barra-esq:not(#love-h-a) { flex: 1 1 auto !important; min-width: 0 !important; }
  html body #view-event-os-dashboard #tab-gifts .love-tabela-barra-dir:not(#love-h-a) { flex: 0 0 auto !important; margin-left: 0 !important; width: auto !important; }
  html body #view-event-os-dashboard #tab-gifts .love-tabela-busca:not(#love-h-a):not(#love-h-b) { display: block !important; width: 100% !important; max-width: none !important; flex: 1 1 auto; }
  html body #view-event-os-dashboard #tab-gifts #gifts-search-input:not(#love-h-a) { height: 40px !important; font-size: 16px !important; border-radius: 8px !important; }
  /* Mesma barra de Meus convidados: de ponta a ponta, 16px de respiro, linha embaixo e lupa a 12px. */
  html body #view-event-os-dashboard #tab-gifts #gifts-barra:not(#love-h-a) { padding: 0 !important; border: 0 !important; background: transparent !important; margin-left: -16px !important; margin-right: -16px !important; width: auto !important; }
  html body #view-event-os-dashboard #tab-gifts #gifts-barra .love-tabela-barra:not(#love-h-a) { padding: 0 16px 16px !important; border-bottom: 1px solid #E4E4E7 !important; }
  html body #view-event-os-dashboard #tab-gifts #gifts-search-input:not(#love-h-a):not(#love-h-b) { padding: 0 12px 0 44px !important; }
  html body #view-event-os-dashboard #tab-gifts .love-tabela-busca > svg:not(#love-h-a) { left: 12px !important; width: 14px !important; height: 14px !important; }
  body[data-theme="dark"] #tab-gifts #gifts-barra .love-tabela-barra { border-bottom-color: rgba(255,255,255,0.08) !important; }
}

/* ==========================================================================
   Celular: ficha do convidado com nome, status e iniciais centralizados (o
   invólucro .ficha-cabeca não muda o layout). Mapa do evento:
   quadriculado sempre de ponta a ponta (também durante a pinça) e botões de
   zoom que não mexem no zoom do navegador. Desktop não muda.
   ========================================================================== */
.ficha-cabeca, .ficha-cabeca-texto { display: contents; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {

  /* Fundo da área do mapa também quadriculado: na pinça nunca aparece branco. */
  html body #tab-rsvp-tables .floorplan-body:not(#love-h-a) {
    touch-action: none;
    background-color: #FAFCFF;
    background-image:
      linear-gradient(to right, rgba(229, 231, 235, 0.65) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(229, 231, 235, 0.65) 1px, transparent 1px),
      linear-gradient(to right, rgba(229, 231, 235, 0.35) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(229, 231, 235, 0.35) 1px, transparent 1px);
    background-size: 50px 50px, 50px 50px, 10px 10px, 10px 10px;
  }
  body[data-theme="dark"] #tab-rsvp-tables .floorplan-body {
    background-color: transparent;
    background-image:
      linear-gradient(to right, rgba(255, 255, 255, 0.10) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(255, 255, 255, 0.10) 1px, transparent 1px),
      linear-gradient(to right, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  }
  html body .planta-zoom:not(#love-h-a), html body .planta-zoom button:not(#love-h-a) { touch-action: none; -webkit-user-select: none; user-select: none; }
}

/* Celular: o fundo atrás da planta tem a mesma cor da planta (nada de
   quadrado de outra cor ao afastar). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body:not([data-theme="dark"]) #tab-rsvp-tables .floorplan-body:not(#love-h-a) { background-color: var(--bg-dashboard) !important; }
  html body #tab-rsvp-tables .floorplan-wrap.is-expandida #floorplan-canvas:not(#love-h-a) { margin-left: 0; margin-top: 0; }
}

/* Celular: em Presentes só "Total" ao lado da busca (mais espaço para pesquisar). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #gifts-barra .gifts-total-da-lista:not(#love-h-a) { display: none; }
}

/* Celular: Configurações da lista sem as abas (Meus presentes / Recados) e com
   a seta de voltar ao lado do título. Desktop não muda. */
.gifts-config-voltar { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard #tab-gifts.is-configuracoes .gifts-config-voltar:not(#love-h-a) {
    display: inline-flex !important; align-items: center; justify-content: flex-start; flex: 0 0 auto;
    width: 36px; height: 44px; padding: 0; margin: 0; background: transparent !important; border: 0 !important; color: #18181B; cursor: pointer;
  }
  html body #tab-gifts .gifts-config-voltar svg:not(#love-h-a) { width: 24px; height: 24px; }
  body:has(#tab-gifts.active.is-configuracoes) #submenu-celular { display: none !important; }
  body[data-theme="dark"] #tab-gifts .gifts-config-voltar { color: #FFFFFF; }
}

/* ==========================================================================
   Celular: lista de convidados em ordem alfabética com a letra de cada grupo
   (A, B, C…), total de convidados acima da busca e botões de adicionar com
   ícone de pessoa+ (convidados) e presente+ (presentes). Desktop não muda.
   ========================================================================== */
.rsvp-total-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-rsvp .rsvp-total-celular:not(#love-h-a) {
    display: block; margin: 0; padding: 0 16px 12px; font-family: Inter, sans-serif;
    font-size: 17px; font-weight: 600; letter-spacing: 0; color: #18181B;
  }
  html body #tab-rsvp .guests-table tbody tr.guest-letra-linha:not(#love-h-a) td:not(#love-h-a) {
    display: table-cell !important; height: auto !important; padding: 6px 16px !important;
    background: #F4F4F5 !important; border-top: 1px solid #E4E4E7 !important; border-bottom: 1px solid #E4E4E7 !important;
    font-family: Inter, sans-serif; font-size: 13px; font-weight: 600; line-height: 1.4; color: #71717A;
  }
  /* A primeira letra encosta na linha da busca: sem borda dupla. */
  html body #tab-rsvp .guests-table tbody tr.guest-letra-linha:first-child td:not(#love-h-a) { border-top: 0 !important; }
  body[data-theme="dark"] #tab-rsvp .rsvp-total-celular { color: #FFFFFF; }
  body[data-theme="dark"] #tab-rsvp .guests-table tbody tr.guest-letra-linha td { background: #252525 !important; border-color: #333333 !important; color: #A1A1AA; }

  html body #view-event-os-dashboard #btn-host-add-guest:not(#love-h-a)::before {
    width: 22px; height: 22px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318181B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 7.5v3m0 0v3m0-3h3m-3 0h-3m-2.25-4.125a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0ZM3 19.235v-.11a6.375 6.375 0 0 1 12.75 0v.109A12.318 12.318 0 0 1 9.374 21c-2.331 0-4.512-.645-6.374-1.766Z'/%3E%3C/svg%3E") center / 22px no-repeat;
  }
  html body #view-event-os-dashboard #btn-host-add-gift:not(#love-h-a)::before {
    width: 22px; height: 22px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318181B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4.5v15m7.5-7.5h-15'/%3E%3C/svg%3E") center / 22px no-repeat;
  }
}

/* Celular: adicionar convidado/presente só com o ícone escuro, sem a caixinha
   colorida (igual ao ícone de Configurações da lista). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard :is(#btn-host-add-guest, #btn-host-add-gift):not(.hidden):not([hidden]):not(#love-h-a):not(#love-h-b) {
    background: transparent !important; border: 0 !important; box-shadow: none !important; color: #18181B !important;
  }
  body[data-theme="dark"] #view-event-os-dashboard :is(#btn-host-add-guest, #btn-host-add-gift)::before { filter: invert(1); }
}

/* ==========================================================================
   Celular: Convite digital / Save the Date. Seletor de página em
   azul com a setinha azul; sem Salvar (salva sozinho a cada edição); no
   Convite, ícone de enviar (pôr no ar); no Save the Date, ícone de
   compartilhar — os dois no estilo dos ícones de Convidados e Presentes.
   Desktop não muda.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-edit-site #builder-page-select-btn:not(#love-h-a) {
    min-width: 0 !important; max-width: 100% !important; padding: 6px 24px 6px 0 !important;
    font-size: 20px !important; font-weight: 700 !important; color: #183b54 !important;
    background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23183b54' stroke-width='2.4'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E") no-repeat right 2px center / 14px !important; border-color: transparent !important;
  }
  body[data-theme="dark"] #tab-edit-site #builder-page-select-btn { color: #EBF4FF !important; filter: none; }

  html body #view-event-os-dashboard #tab-edit-site #builder-save:not(#love-h-a) { display: none !important; }
  html body #view-event-os-dashboard #tab-edit-site :is(#builder-publish, #builder-share):not(#love-h-a):not(#love-h-b) {
    position: relative; display: inline-flex !important; align-items: center; justify-content: center;
    width: 44px !important; min-width: 44px !important; height: 44px !important; padding: 0 !important; margin: 0 !important;
    background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 8px !important;
    font-size: 0 !important; line-height: 0 !important; color: transparent !important;
  }
  html body #view-event-os-dashboard #tab-edit-site #site-builder-root[data-pagina="savethedate"] #builder-publish:not(#love-h-a):not(#love-h-b),
  html body #view-event-os-dashboard #tab-edit-site #builder-share-wrap.hidden:not(#love-h-a) { display: none !important; }
  html body #view-event-os-dashboard #tab-edit-site :is(#builder-publish, #builder-share):not(#love-h-a)::before {
    content: ''; display: block; width: 22px; height: 22px; background: center / 22px no-repeat;
  }
  html body #view-event-os-dashboard #tab-edit-site #builder-publish:not(#love-h-a)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318181B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15V3m0 0L7.5 7.5M12 3l4.5 4.5M4 14v5a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-5'/%3E%3C/svg%3E"); }
  html body #view-event-os-dashboard #tab-edit-site #builder-share:not(#love-h-a)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318181B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 8.25H7.5a2.25 2.25 0 0 0-2.25 2.25v9a2.25 2.25 0 0 0 2.25 2.25h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25H15m0-3-3-3m0 0-3 3m3-3V15'/%3E%3C/svg%3E"); }
  html body #view-event-os-dashboard #tab-edit-site #builder-publish:disabled:not(#love-h-a) { opacity: 0.45; }
  /* "Publicado" / "Erro ao publicar" num balãozinho embaixo do ícone. */
  html body #view-event-os-dashboard #tab-edit-site #builder-publish[data-resultado]:not(#love-h-a)::after {
    content: attr(data-resultado); position: absolute; top: calc(100% + 4px); right: 0; z-index: 5; white-space: nowrap;
    padding: 6px 10px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; line-height: 1.2; color: #18181B;
  }
  body[data-theme="dark"] #tab-edit-site :is(#builder-publish, #builder-share)::before { filter: invert(1); }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard #tab-edit-site #builder-preview-link:not(#love-h-a) { color: #18181B !important; }
  body[data-theme="dark"] #tab-edit-site #builder-preview-link { color: #FFFFFF !important; }
}

/* Celular: bússola no cabeçalho de Mensagens (vai para Explorar fornecedores),
   no estilo dos ícones de Convidados e Presentes. Desktop não muda. */
.b2b-explorar-celular { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body.b2b-chat-mode #view-event-os-dashboard #btn-b2b-explorar-celular:not(#love-h-a) {
    display: inline-flex !important; align-items: center; justify-content: center; flex: 0 0 auto; margin-left: auto;
    width: 44px; height: 44px; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  html body #btn-b2b-explorar-celular svg:not(#love-h-a) { width: 24px; height: 24px; }
  body[data-theme="dark"] #btn-b2b-explorar-celular { color: #FFFFFF !important; }
}

/* ==========================================================================
   Celular: Recados recebidos. Busca no mesmo lugar e altura da de Meus
   presentes, sem a contagem; lista como Minha lista (iniciais, nome, presente
   e valor à direita); tocar abre o recado em tela inteira, como a ficha do
   convidado. Desktop não muda.
   ========================================================================== */
.recado-avatar-celular, .recado-celular-presente, .recado-celular-valor { display: none; }
.recado-celular-texto { display: contents; }
#recado-ficha[hidden] { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard #gifts-panel-messages:not(#love-h-a) { padding: 3px 0 0 !important; }
  html body #view-event-os-dashboard #gifts-panel-messages .recados-caixa:not(#love-h-a) { margin: 0 -16px !important; width: auto !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
  html body #view-event-os-dashboard .recados-caixa .love-tabela-barra:not(#love-h-a) { padding: 0 16px 16px !important; border-bottom: 1px solid #E4E4E7 !important; }
  html body #view-event-os-dashboard .recados-caixa .love-tabela-busca:not(#love-h-a) { width: 100% !important; max-width: none !important; }
  html body #view-event-os-dashboard .recados-caixa .love-tabela-barra-esq:not(#love-h-a) { flex: 1 1 auto !important; min-width: 0 !important; }
  html body #view-event-os-dashboard #recados-busca:not(#love-h-a) { height: 40px !important; padding: 0 12px 0 44px !important; font-size: 16px !important; border-radius: 8px !important; }
  html body #view-event-os-dashboard .recados-caixa .love-tabela-busca > svg:not(#love-h-a) { left: 12px !important; width: 14px !important; height: 14px !important; }
  html body #view-event-os-dashboard .recados-caixa :is(.love-tabela-barra-dir, .recados-contagem):not(#love-h-a) { display: none !important; }

  /* Lista: iniciais + nome, presente embaixo, valor à direita. */
  html body .recados-tabela thead:not(#love-h-a),
  html body .recados-tabela tbody tr.recado-linha > td:not(:first-child):not(#love-h-a) { display: none !important; }
  html body .recados-tabela:not(#love-h-a) { min-width: 0 !important; width: 100% !important; }
  html body .recados-tabela tbody tr.recado-linha > td:first-child:not(#love-h-a) {
    display: flex !important; align-items: center; gap: 14px; min-height: 64px; padding: 8px 16px !important;
    border: 0 !important; background: transparent !important; height: auto !important;
  }
  html body .recados-tabela tbody tr.recado-linha:not(#love-h-a), html body .recados-tabela tbody tr.recado-linha:hover td:not(#love-h-a) { background: transparent !important; }
  html body .recados-tabela .recado-avatar-celular:not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 38px; height: 38px; margin: 0 4px; border-radius: 50%;
    background: #FFFFFF; border: 1px solid #E4E4E7; color: #183b54; font-family: Inter, sans-serif; font-size: 13px; font-weight: 600;
  }
  html body .recados-tabela .recado-celular-texto:not(#love-h-a) { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
  html body .recados-tabela .recado-nome:not(#love-h-a) { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: Inter, sans-serif; font-size: 17px; font-weight: 400; color: #18181B; }
  html body .recados-tabela .recado-nome .guest-nome-resto:not(#love-h-a) { font-weight: 600; }
  html body .recados-tabela .recado-celular-presente:not(#love-h-a) { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; color: #71717A; }
  html body .recados-tabela .recado-celular-valor:not(#love-h-a) { display: block; flex: 0 0 auto; font-family: Inter, sans-serif; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; color: #18181B; }
  html body .recados-caixa .tabela-com-linhas-vazias:not(#love-h-a) { background-image: none !important; }

  /* Recado aberto (tela inteira). */
  html body .recado-ficha .ficha-topo:not(#love-h-a) { justify-content: space-between; }
  html body .recado-ficha .recado-ficha-espaco:not(#love-h-a) { width: 44px; height: 44px; flex-shrink: 0; }
  html body .recado-ficha .ficha-status:not(#love-h-a) { color: #71717A; }
  html body .recado-ficha .recado-ficha-texto:not(#love-h-a) { margin: 4px 0 12px; font-size: 16px; line-height: 1.55; color: #18181B; white-space: pre-wrap; overflow-wrap: anywhere; }
  html body .recado-ficha .recado-video:not(#love-h-a) { display: block; width: 100%; margin: 8px 0 12px; border-radius: 8px; background: #000; }
  body[data-theme="dark"] .recados-tabela :is(.recado-nome, .recado-celular-valor) { color: #FFFFFF !important; }
  body[data-theme="dark"] .recado-ficha .recado-ficha-texto { color: #FFFFFF; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* A linha cabe na tela: tabela vira lista simples. */
  html body .recados-tabela:not(#love-h-a), html body .recados-tabela tbody:not(#love-h-a), html body .recados-tabela tbody tr.recado-linha:not(#love-h-a) { display: block !important; width: 100% !important; min-width: 0 !important; }
  html body .recados-tabela tbody tr.recado-linha > td:first-child:not(#love-h-a) { width: 100% !important; box-sizing: border-box; }
}

/* ==========================================================================
   Celular: Fornecedores. Cabeçalho só com o título; busca e local logo abaixo
   das abas (mesma barra de Convidados/Presentes) em Explorar e Meus
   contratos; Criar solicitação sem as abas internas e com o ícone de lista
   (Minhas solicitações) / + (voltar a criar) à direita. Desktop não muda.
   ========================================================================== */
.rfp-lista-celular { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard #b2b-toolbar-controls:not(#love-h-a) { display: none !important; }
  html body #view-event-os-dashboard #tab-b2b > #b2b-busca-celular:not(#love-h-a):not(#love-h-b) {
    display: none; align-items: center; gap: 8px; margin: 0 -1rem !important; padding: 0 16px 16px !important; border-bottom: 1px solid #E4E4E7; box-sizing: border-box;
  }
  html body #view-event-os-dashboard #tab-b2b:has(#b2b-explore-view:not(.hidden)) #b2b-busca-celular:not(#love-h-a),
  html body #view-event-os-dashboard #tab-b2b:has(#b2b-contracted-view:not(.hidden)) #b2b-busca-celular:not(#love-h-a) { display: flex; }
  html body.b2b-chat-mode #b2b-busca-celular:not(#love-h-a) { display: none !important; }
  html body #b2b-busca-celular #b2b-search-container:not(#love-h-a) { flex: 1 1 auto; min-width: 0; width: auto !important; }
  html body #b2b-busca-celular > div:last-child:not(#b2b-search-container):not(#love-h-a) { flex: 0 0 auto; width: 118px !important; }
  html body #b2b-busca-celular :is(#b2b-search-input, #b2b-location-input):not(#love-h-a) {
    height: 40px !important; font-size: 16px !important; border-radius: 8px !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important; background: #FFFFFF !important; box-shadow: none !important;
  }
  html body #b2b-busca-celular #b2b-search-input:not(#love-h-a) { padding: 0 12px 0 44px !important; }
  html body #b2b-busca-celular #b2b-location-input:not(#love-h-a) { padding: 0 10px 0 36px !important; }
  html body #b2b-busca-celular #b2b-search-container > div:first-child:not(#love-h-a) { padding-left: 14px !important; }
  html body #b2b-busca-celular #b2b-search-container > div:first-child svg:not(#love-h-a) { width: 14px !important; height: 14px !important; }
  html body #b2b-busca-celular input:focus:not(#love-h-a) { border-color: #181D24 !important; }
  html body #b2b-busca-celular #b2b-category-menu:not(#love-h-a) { width: min(288px, calc(100vw - 32px)) !important; }
  /* O conteúdo começa logo abaixo da barra (sem o respiro duplo de cima). */
  html body #view-event-os-dashboard #tab-b2b :is(#b2b-explore-view, #b2b-contracted-view):not(#love-h-a) { padding-top: 16px !important; }
  body[data-theme="dark"] #b2b-busca-celular { border-bottom-color: #333333 !important; }

  /* Criar solicitação: sem as abas internas; ícone de lista / + no cabeçalho. */
  html body #view-event-os-dashboard #pedidos-abas:not(#love-h-a) { display: none !important; }
  html body #view-event-os-dashboard #tab-b2b:has(#b2b-pedidos-view:not(.hidden)) #btn-rfp-lista-celular:not(#love-h-a) {
    display: inline-flex !important; align-items: center; justify-content: center; flex: 0 0 auto; margin-left: auto;
    width: 44px; height: 44px; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  html body #btn-rfp-lista-celular svg:not(#love-h-a) { width: 22px; height: 22px; }
  html body #btn-rfp-lista-celular .rfp-icone-mais:not(#love-h-a),
  html body #tab-b2b:has(#pedidos-painel-minhas:not(.hidden)) #btn-rfp-lista-celular .rfp-icone-lista:not(#love-h-a) { display: none; }
  html body #tab-b2b:has(#pedidos-painel-minhas:not(.hidden)) #btn-rfp-lista-celular .rfp-icone-mais:not(#love-h-a) { display: block; }
  body[data-theme="dark"] #btn-rfp-lista-celular { color: #FFFFFF !important; }
}

/* Celular: Configurações da lista só com a Taxa de Serviço e Conveniência
   (sem a tabela "Lista adicionada"). Desktop não muda. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard #gifts-panel-settings > div:has(.suas-listas-caixa):not(#love-h-a) { display: none !important; }
}

/* Celular: Recados sem paginação (rolagem contínua); em Criar solicitação,
   setinha à esquerda do título volta para Encontrar fornecedor. Desktop não muda. */
html body .rfp-voltar-explorar-celular:not(#love-h-a) { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard #gifts-panel-messages .recados-paginacao:not(#love-h-a) { display: none !important; }
  html body #view-event-os-dashboard #tab-b2b:has(#b2b-pedidos-view:not(.hidden)):has(#pedidos-painel-minhas.hidden) #btn-rfp-voltar[hidden] ~ #btn-rfp-voltar-explorar-celular:not(#love-h-a) {
    display: inline-flex !important; width: 44px !important; height: 44px !important; margin: 0 0 0 -10px !important;
  }
  html body #btn-rfp-voltar-explorar-celular svg:not(#love-h-a) { width: 24px; height: 24px; }
}

/* ==========================================================================
   Celular: Criar solicitação no estilo de app. Título grande e texto cinza
   centralizados, perguntas centralizadas, caixas grandes, número de
   convidados grande com - e +, Continuar largo embaixo (sem Cancelar) e os
   pontinhos das etapas. Arrastar para o lado troca de etapa. Desktop não muda.
   ========================================================================== */
.rfp-pontos { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #b2b-pedidos-view .rfp-editor .rfp-intro:not(#love-h-a):not(#love-h-b) { display: block; margin: 8px 0 24px; text-align: center; }
  html body #b2b-pedidos-view .rfp-etapa-titulo:not(#love-h-a):not(#love-h-b) { margin: 0; font-size: 30px; font-weight: 700; line-height: 1.15; letter-spacing: -0.03em; color: #18181B; }
  html body #b2b-pedidos-view .rfp-editor .rfp-etapa-sub:not(#love-h-a):not(#love-h-b) { margin: 10px auto 0; max-width: 340px; font-size: 16px; line-height: 1.5; color: #8E8E93; text-align: center; }
  html body #b2b-pedidos-view .rfp-caixa-form:not(#love-h-a):not(#love-h-b) { margin: 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; }
  html body #b2b-pedidos-view .rfp-editor .rfp-rotulo-texto:not(#love-h-a),
  html body #b2b-pedidos-view .rfp-editor .rfp-pergunta:not(#love-h-a) { display: block; text-align: center; font-size: 17px !important; font-weight: 600 !important; color: #18181B !important; margin-bottom: 10px; }

  /* Etapa 2: uma pergunta por bloco. */
  html body #b2b-pedidos-view .rfp-cel-bloco:not(#love-h-a) { margin: 0 0 32px; text-align: center; }
  html body #b2b-pedidos-view .rfp-cel-pergunta:not(#love-h-a) { margin: 0 0 12px; font-size: 18px; font-weight: 600; letter-spacing: -0.01em; color: #18181B; }
  html body #b2b-pedidos-view .rfp-cel-ajuda:not(#love-h-a) { margin: -6px 0 12px; font-size: 15px; color: #8E8E93; }
  html body #b2b-pedidos-view .rfp-cel-caixa:not(#love-h-a) {
    display: block; width: 100% !important; min-width: 0; height: 56px !important; box-sizing: border-box; margin: 0;
    padding: 0 16px !important; font-size: 17px !important; font-weight: 500; text-align: center; text-align-last: center; color: #18181B;
    background-color: #FFFFFF !important; border: 1px solid #E4E4E7 !important; border-radius: 10px !important; box-shadow: none !important;
    -webkit-appearance: none; appearance: none;
  }
  html body #b2b-pedidos-view input[type="date"].rfp-cel-caixa:not(#love-h-a) { line-height: 54px; }
  html body #b2b-pedidos-view input[type="date"].rfp-cel-caixa::-webkit-date-and-time-value { text-align: center; }
  html body #b2b-pedidos-view .rfp-cel-caixa:focus:not(#love-h-a) { border-color: #181D24 !important; outline: none; }
  html body #b2b-pedidos-view .rfp-cel-caixa:disabled:not(#love-h-a) { color: #A1A1AA; background-color: #F4F4F5 !important; }
  html body #b2b-pedidos-view .rfp-cel-local:not(#love-h-a) { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 8px; }
  html body #b2b-pedidos-view .rfp-cel-bloco .rfp-check-flexivel:not(#love-h-a) { justify-content: center; margin-top: 12px; font-size: 15px; }
  html body #b2b-pedidos-view .rfp-cel-qtd:not(#love-h-a) {
    display: flex; align-items: center; justify-content: space-between; height: 88px; margin: 0 auto; max-width: 280px; padding: 0 8px; box-sizing: border-box;
    background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px;
  }
  html body #b2b-pedidos-view .rfp-cel-qtd:focus-within:not(#love-h-a) { border-color: #181D24; }
  html body #b2b-pedidos-view .rfp-cel-qtd-numero:not(#love-h-a) {
    flex: 1 1 auto; min-width: 0; width: 100%; height: 100%; padding: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; outline: none;
    text-align: center; font-family: Inter, sans-serif; font-size: 44px; font-weight: 600; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: #3F3F46;
  }
  html body #b2b-pedidos-view .rfp-cel-qtd-passo:not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 44px; height: 44px; padding: 0;
    background: transparent; border: 0; border-radius: 8px; color: #71717A; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  html body #b2b-pedidos-view .rfp-cel-qtd-passo svg:not(#love-h-a) { width: 22px; height: 22px; }
  html body #b2b-pedidos-view .rfp-cel-bloco .rfp-erro:not(#love-h-a) { text-align: center; }

  /* Rodapé: só o Continuar largo e os pontinhos. */
  html body #b2b-pedidos-view .rfp-editor .rfp-rodape:not(#love-h-a):not(#love-h-b) {
    position: static; display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 8px 0 24px !important; background: transparent !important; border: 0 !important;
  }
  html body #b2b-pedidos-view .rfp-editor .rfp-voltar-texto:not(#love-h-a) { display: none !important; }
  html body #b2b-pedidos-view .rfp-editor .rfp-rodape button.btn-primary:not(#love-h-a):not(#love-h-b) {
    width: 100%; max-width: 340px; min-width: 0; height: 54px !important; flex: 0 0 auto; border-radius: 10px !important; font-size: 17px !important; font-weight: 600;
  }
  html body #b2b-pedidos-view .rfp-editor .rfp-erro-geral:not(#love-h-a) { order: -1; text-align: center; }
  html body #b2b-pedidos-view .rfp-pontos:not(#love-h-a) { display: flex; align-items: center; justify-content: center; gap: 8px; }
  html body #b2b-pedidos-view .rfp-pontos span:not(#love-h-a) { width: 8px; height: 8px; border-radius: 4px; background: #E4E4E7; transition: width 0.2s ease, background 0.2s ease; }
  html body #b2b-pedidos-view .rfp-pontos span.is-atual:not(#love-h-a) { width: 24px; background: #181D24; }
  body[data-theme="dark"] #b2b-pedidos-view :is(.rfp-etapa-titulo, .rfp-cel-pergunta, .rfp-pergunta, .rfp-rotulo-texto) { color: #FFFFFF !important; }
  body[data-theme="dark"] #b2b-pedidos-view :is(.rfp-cel-caixa, .rfp-cel-qtd) { background-color: #1F1F1F !important; border-color: #404040 !important; color: #FFFFFF; }
  body[data-theme="dark"] #b2b-pedidos-view .rfp-cel-qtd-numero { color: #FFFFFF; }
  body[data-theme="dark"] #b2b-pedidos-view .rfp-pontos span { background: #404040; }
  body[data-theme="dark"] #b2b-pedidos-view .rfp-pontos span.is-atual { background: #FFFFFF; }
}

/* ==========================================================================
   Desktop: Meus convidados como no celular. Iniciais numa bolinha no lugar
   do "C"/"A", convidado e acompanhantes unidos por um contorno oval (no
   lugar da arvorezinha) e a letra de cada grupo (A, B, C...).
   ========================================================================== */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body #tab-rsvp .guests-table :is(.guest-tipo-badge, .guest-sub-conector):not(#love-h-a) { display: none !important; }
  html body #tab-rsvp .guests-table tbody tr.group > td:first-child:not(#love-h-a) { padding-top: 0 !important; padding-bottom: 0 !important; }
  html body #tab-rsvp .guests-table tbody tr.group > td:first-child > div:not(#love-h-a) { align-items: stretch !important; gap: 12px !important; min-height: 52px; }
  html body #tab-rsvp .guests-table tbody tr.group :is(.guest-select-check, .guest-select-espaco):not(#love-h-a) { align-self: center; }
  html body #tab-rsvp .guests-table .guest-trilho:not(#love-h-a) {
    display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 40px; padding: 5px 0; box-sizing: border-box;
  }
  html body #tab-rsvp .guests-table .guest-trilho:is(.is-inicio, .is-meio, .is-fim):not(#love-h-a) { border-left: 1.5px solid #18181B; border-right: 1.5px solid #18181B; }
  html body #tab-rsvp .guests-table .guest-trilho.is-inicio:not(#love-h-a) { border-top: 1.5px solid #18181B; border-radius: 20px 20px 0 0; margin-top: 5px; padding-top: 0; }
  html body #tab-rsvp .guests-table .guest-trilho.is-fim:not(#love-h-a) { border-bottom: 1.5px solid #18181B; border-radius: 0 0 20px 20px; margin-bottom: 5px; padding-bottom: 0; }
  /* Cobre a linha divisória entre as pessoas do mesmo grupo (o oval não quebra). */
  html body #tab-rsvp .guests-table .guest-trilho:is(.is-meio, .is-fim):not(#love-h-a) { margin-top: -1px; }
  html body #tab-rsvp .guests-table .guest-avatar-celular:not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%;
    background: #FFFFFF; border: 1px solid #E4E4E7; color: #183b54; font-family: Inter, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 0;
  }
  html body #tab-rsvp .guests-table .is-acompanhante-row .guest-avatar-celular:not(#love-h-a) { background: #F4F4F5; color: #71717A; }
  html body #tab-rsvp .guests-table .guest-avatar-celular.tem-restricao:not(#love-h-a) { background: var(--cor-restricao) !important; border: 1px solid var(--cor-restricao-borda); color: #18181B !important; }
  html body #tab-rsvp .guests-table button.guest-nome-btn:not(#love-h-a) { align-self: center; }

  /* Letra de cada grupo. */
  html body #tab-rsvp .guests-table tbody tr.guest-letra-linha td:not(#love-h-a) {
    height: auto !important; padding: 6px 16px !important;
    background: #F4F4F5 !important; border-top: 1px solid #E4E4E7 !important; border-bottom: 1px solid #E4E4E7 !important;
    font-family: Inter, sans-serif; font-size: 12px; font-weight: 600; line-height: 1.4; color: #71717A;
  }
  html body #tab-rsvp .guests-table tbody tr.guest-letra-linha:first-child td:not(#love-h-a) { border-top: 0 !important; }
  html body #tab-rsvp .guests-table tbody tr.guest-letra-linha:hover td:not(#love-h-a) { background: #F4F4F5 !important; }
  body[data-theme="dark"] #tab-rsvp .guests-table .guest-trilho { border-color: #FFFFFF !important; }
  body[data-theme="dark"] #tab-rsvp .guests-table .guest-avatar-celular:not(.tem-restricao) { background: #1F1F1F; border-color: #404040; color: #EBF4FF; }
  body[data-theme="dark"] #tab-rsvp .guests-table tbody tr.guest-letra-linha td { background: #252525 !important; border-color: #333333 !important; color: #A1A1AA; }
}

/* Celular: abas do submenu com a mesma largura (Minha lista | Mapa do evento,
   Meus presentes | Recados recebidos...). Com 4 ou mais, continuam rolando. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .submenu-celular:not(:has(> :nth-child(4))) .submenu-celular-item:not(#love-h-a):not(#love-h-b) { flex: 1 1 0 !important; min-width: 0 !important; }
}

/* ==========================================================================
   Celular: Convite digital com as seções fixas. Sem o botão "Adicionar
   elementos", sem as barrinhas de mover/duplicar/apagar das seções e dos
   elementos e sem as áreas de nova seção; tocar num elemento só abre a
   edição dele (sem o "Voltar" para a lista de elementos). Desktop não muda.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #builder-fab:not(#love-h-a),
  html body #builder-canvas .builder-block-toolbar:not(#love-h-a),
  html body #builder-canvas .builder-new-section-dropzone:not(#love-h-a),
  html body .builder-gaveta .builder-breadcrumb-back:not(#love-h-a) { display: none !important; }
}

/* ==========================================================================
   Celular: Encontrar fornecedor sem o "Em local" na barra de busca; a cidade
   fica no cabeçalho, à direita (ícone de local + "São Paulo, SP"). Tocar
   abre uma caixinha para trocar a cidade. Desktop não muda.
   ========================================================================== */
.b2b-cidade-celular, .b2b-cidade-caixa { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #b2b-busca-celular > div:last-child:not(#b2b-search-container):not(#love-h-a) { display: none !important; }
  html body #view-event-os-dashboard #tab-b2b:has(#b2b-explore-view:not(.hidden)) #btn-b2b-cidade-celular:not(#love-h-a) {
    display: inline-flex !important; align-items: center; gap: 4px; flex: 0 1 auto; min-width: 0; max-width: 46%; margin-left: auto;
    height: 44px; padding: 0 2px 0 6px; background: transparent; border: 0; border-radius: 8px; cursor: pointer; -webkit-tap-highlight-color: transparent;
    font-family: Inter, sans-serif; font-size: 15px; font-weight: 600; color: #183b54;
  }
  html body.b2b-chat-mode #btn-b2b-cidade-celular:not(#love-h-a) { display: none !important; }
  html body #btn-b2b-cidade-celular svg:not(#love-h-a) { flex: 0 0 auto; width: 18px; height: 18px; }
  html body #btn-b2b-cidade-celular span:not(#love-h-a) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html body .b2b-cidade-caixa:not([hidden]):not(#love-h-a) {
    display: flex !important; flex-direction: column; position: fixed; right: 16px; left: 16px; z-index: 80; max-height: 60vh; padding: 8px;
    background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  }
  html body .b2b-cidade-caixa .b2b-cidade-campo:not(#love-h-a) {
    flex: 0 0 auto; height: 44px; padding: 0 12px; font-size: 16px; color: #18181B;
    border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 8px; background: #FFFFFF; outline: none; box-shadow: none;
  }
  html body .b2b-cidade-caixa .b2b-cidade-campo:focus:not(#love-h-a) { border-color: #181D24; }
  html body .b2b-cidade-caixa .b2b-cidade-lista:not(#love-h-a) { margin-top: 6px; overflow-y: auto; }
  html body .b2b-cidade-caixa .b2b-cidade-opcao:not(#love-h-a) {
    display: block; width: 100%; min-height: 44px; padding: 0 12px; text-align: left; background: transparent; border: 0; border-radius: 8px;
    font-family: Inter, sans-serif; font-size: 16px; color: #18181B; cursor: pointer;
  }
  html body .b2b-cidade-caixa .b2b-cidade-opcao.is-ativa:not(#love-h-a) { font-weight: 600; color: #183b54; }
  body[data-theme="dark"] #btn-b2b-cidade-celular { color: #EBF4FF !important; }
  body[data-theme="dark"] .b2b-cidade-caixa { background: #1F1F1F !important; border-color: #404040 !important; }
  body[data-theme="dark"] .b2b-cidade-caixa :is(.b2b-cidade-campo, .b2b-cidade-opcao) { background: transparent; color: #FFFFFF; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Título e cidade na mesma linha. */
  html body #view-event-os-dashboard #tab-b2b:has(#b2b-explore-view:not(.hidden)) #b2b-toolbar-title:not(#love-h-a) { white-space: nowrap; }
  html body #view-event-os-dashboard #tab-b2b:has(#b2b-explore-view:not(.hidden)) #btn-b2b-cidade-celular:not(#love-h-a) { font-size: 14px; gap: 3px; max-width: 40%; }
  html body #btn-b2b-cidade-celular svg:not(#love-h-a) { width: 16px; height: 16px; }
}

/* ==========================================================================
   Celular: Encontrar fornecedor. No card, só o botão Mensagem; o favoritar
   vai para o canto de cima da capa e o título e a empresa aparecem inteiros.
   Na página do serviço, Compartilhar, Favoritar, Mensagem e Solicitar ficam
   abaixo da foto e do nome; o endereço sai de baixo do nome e vai para o
   Sobre. Desktop não muda.
   ========================================================================== */
.b2b-fav-capa, .b2b-perfil-sobre-endereco { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Card */
  html body #b2b-cards-list-container .b2b-item-card .btn-hire-supplier:not(#love-h-a),
  html body #b2b-cards-list-container .b2b-item-card .btn-toggle-card-fav:not(.b2b-fav-capa):not(#love-h-a) { display: none !important; }
  html body #b2b-cards-list-container .b2b-item-card .b2b-fav-capa:not(#love-h-a) {
    display: inline-flex !important; align-items: center; justify-content: center; position: absolute; top: 10px; right: 10px; z-index: 2;
    width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: #FFFFFF; color: #A1A1AA;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  html body #b2b-cards-list-container .b2b-item-card .b2b-fav-capa svg:not(#love-h-a) { width: 18px; height: 18px; }
  html body #b2b-cards-list-container .b2b-item-card h4:not(#love-h-a),
  html body #b2b-cards-list-container .b2b-item-card h4 + p:not(#love-h-a) { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; }

  /* Página do serviço: ações abaixo da foto e do nome. */
  html body #b2b-vendor-profile-view:not(.hidden):not(#love-h-a) { display: flex !important; flex-direction: column; }
  html body #b2b-vendor-profile-view > *:not(#love-h-a) { order: 5; }
  html body #b2b-vendor-profile-view > .b2b-perfil-topo:not(#love-h-a) { display: contents !important; }
  html body #b2b-vendor-profile-view #b2b-profile-breadcrumb:not(#love-h-a) { order: 0; margin-bottom: 16px; }
  html body #b2b-vendor-profile-view > .b2b-perfil-capa:not(#love-h-a) { order: 1; }
  html body #b2b-vendor-profile-view > .b2b-perfil-cabeca:not(#love-h-a) { order: 2; }
  html body #b2b-vendor-profile-view .b2b-perfil-acoes:not(#love-h-a) { order: 3; display: flex !important; gap: 8px !important; margin-top: 16px; width: 100%; }
  html body #b2b-vendor-profile-view .b2b-perfil-acoes > :is(#btn-b2b-profile-share, #btn-b2b-profile-favorite):not(#love-h-a) { flex: 0 0 44px; width: 44px !important; height: 44px !important; }
  html body #b2b-vendor-profile-view .b2b-perfil-acoes > :is(#btn-b2b-profile-message, #btn-b2b-profile-hire):not(#love-h-a) { flex: 1 1 0; min-width: 0; height: 44px !important; justify-content: center; font-size: 15px !important; }
  html body #b2b-vendor-profile-view #b2b-profile-location:not(#love-h-a) { display: none !important; }
  html body #b2b-vendor-profile-view .b2b-perfil-sobre-endereco:not(.hidden):not(#love-h-a) { display: block !important; margin: 12px 0 0; font-size: 14px; color: #52525B; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Título e empresa na largura toda; Mensagem logo abaixo. */
  html body #b2b-cards-list-container .b2b-item-card .flex-nowrap:not(#love-h-a) { flex-wrap: wrap !important; row-gap: 12px; }
  html body #b2b-cards-list-container .b2b-item-card .flex-nowrap > .min-w-0.flex-1:not(#love-h-a) { flex: 1 1 100%; }
  html body #b2b-cards-list-container .b2b-item-card .btn-message-supplier:not(#love-h-a) { height: 44px; padding: 0 20px; font-size: 15px; }
}

/* ==========================================================================
   Celular: Convite digital termina com o rodapé ("Feito com Love") encostado
   na barra de baixo, sem espaço branco (a folga era do botão "Adicionar
   elementos", que saiu). Desktop não muda.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-edit-site.active .builder-canvas:not(#love-h-a):not(#love-h-b) { padding-bottom: 0 !important; }
  html body #view-event-os-dashboard .dashboard-main-area:has(#tab-edit-site.active #site-builder-root:not(.hidden):not([style*="display: none"])):not(#love-h-a):not(#love-h-b) { padding-bottom: var(--bottom-bar-height-mobile, 64px) !important; }
  html body #view-event-os-dashboard .dashboard-main-area:has(#tab-edit-site.active #site-builder-root:not(.hidden):not([style*="display: none"])) > .rodape-respiro:not(#love-h-a):not(#love-h-b) { display: none !important; }
}

/* ==========================================================================
   Celular: Orçamento pelo botão da Home em página inteira. O pop-up
   "Defina seu orçamento" ocupa a tela toda; depois dele, "Seu orçamento"
   com as barras (orçamento máximo, custo total, a pagar) e as despesas por
   categoria com Custo / A pagar. Desktop não muda.
   ========================================================================== */
.orc-celular, .orc-setup-fechar { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .orc-celular:not([hidden]):not(#love-h-a) {
    display: flex !important; flex-direction: column; position: fixed; inset: 0; z-index: 70; background: #FFFFFF; overflow: hidden;
    font-family: Inter, sans-serif; color: #18181B;
  }
  html body .orc-celular .orc-cel-topo:not(#love-h-a) {
    flex: 0 0 auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 56px;
    padding: env(safe-area-inset-top, 0px) 6px 0; border-bottom: 1px solid rgba(0, 0, 0, 0.06); background: #FFFFFF;
  }
  html body .orc-celular .orc-cel-topo h2:not(#love-h-a) { margin: 0; font-family: Inter, sans-serif; font-size: 17px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; text-align: center; white-space: nowrap; }
  html body .orc-celular .orc-cel-topo-acoes:not(#love-h-a) { display: flex; justify-content: flex-end; }
  html body .orc-celular .orc-cel-icone:not(#love-h-a) {
    display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0;
    background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  html body .orc-celular .orc-cel-icone svg:not(#love-h-a) { width: 22px; height: 22px; }
  html body .orc-celular .orc-cel-corpo:not(#love-h-a) { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 16px 16px calc(24px + env(safe-area-inset-bottom, 0px)); }

  /* Barras do resumo */
  html body .orc-celular .orc-cel-resumo:not(#love-h-a) { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px solid #E4E4E7; border-radius: 10px; }
  html body .orc-celular .orc-cel-barra:not(#love-h-a) {
    position: relative; box-sizing: border-box; min-width: max-content; max-width: 100%; display: flex; flex-direction: column; gap: 2px;
    padding: 8px 12px; border-radius: 8px;
  }
  html body .orc-celular .orc-cel-barra.is-max:not(#love-h-a) { background: rgba(24, 59, 84, 0.14); padding-right: 80px; }
  html body .orc-celular .orc-cel-barra.is-custo:not(#love-h-a) { background: rgba(24, 59, 84, 0.09); }
  html body .orc-celular .orc-cel-barra.is-pagar:not(#love-h-a) { background: rgba(24, 59, 84, 0.05); }
  html body .orc-celular .orc-cel-barra-rotulo:not(#love-h-a) { font-size: 12px; font-weight: 500; color: #52525B; }
  html body .orc-celular .orc-cel-barra-valor:not(#love-h-a) { font-family: Inter, sans-serif; font-size: 16px; font-weight: 600; color: #183b54; font-variant-numeric: tabular-nums; }
  html body .orc-celular .orc-cel-barra.is-acima .orc-cel-barra-valor:not(#love-h-a) { color: #B42318; }
  html body .orc-celular .orc-cel-editar:not(#love-h-a) {
    position: absolute; right: 4px; top: 50%; transform: translateY(-50%); height: 44px; padding: 0 10px;
    background: transparent; border: 0; font-family: Inter, sans-serif; font-size: 15px; font-weight: 600; color: #183b54; cursor: pointer;
  }

  /* Despesas por categoria */
  html body .orc-celular .orc-cel-colunas:not(#love-h-a) {
    display: grid; grid-template-columns: minmax(0, 1fr) 88px 88px; gap: 8px; padding: 20px 12px 8px;
    font-size: 11px; font-weight: 500; color: #A1A1AA; text-align: right;
  }
  html body .orc-celular .orc-cel-grupo:not(#love-h-a) { border: 1px solid #E4E4E7; border-radius: 10px; overflow: hidden; }
  html body .orc-celular .orc-cel-grupo + .orc-cel-grupo:not(#love-h-a) { margin-top: 12px; }
  html body .orc-celular .orc-cel-grupo-cab:not(#love-h-a) {
    display: flex; align-items: center; gap: 8px; width: 100%; min-height: 48px; padding: 0 12px;
    background: #FAFAFA; border: 0; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;
    font-family: Inter, sans-serif; font-size: 15px; font-weight: 600; color: #18181B;
  }
  html body .orc-celular .orc-cel-grupo-cab svg:not(#love-h-a) { flex: 0 0 auto; width: 18px; height: 18px; color: #52525B; transition: transform .15s ease; }
  html body .orc-celular .orc-cel-grupo-cab[aria-expanded="false"] svg:not(#love-h-a) { transform: rotate(180deg); }
  html body .orc-celular .orc-cel-linha:not(#love-h-a) {
    display: grid; grid-template-columns: minmax(0, 1fr) 88px 88px; gap: 8px; align-items: center; width: 100%; min-height: 48px; padding: 0 12px;
    background: #FFFFFF; border: 0; border-top: 1px solid rgba(0, 0, 0, 0.04); text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;
    font-family: Inter, sans-serif; color: #18181B;
  }
  html body .orc-celular .orc-cel-nome:not(#love-h-a) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; }
  html body .orc-celular .orc-cel-valor:not(#love-h-a) { font-size: 14px; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
  html body .orc-celular .orc-cel-valor.is-zero:not(#love-h-a) { color: #A1A1AA; }
  html body .orc-celular .orc-cel-vazio:not(#love-h-a) { margin: 32px 0 0; text-align: center; font-size: 15px; color: #71717A; }

  /* Por cima da página: drawer da despesa e o pop-up de definir. */
  html body.orc-celular-aberto #budget-expense-drawer-backdrop:not(#love-h-a) { z-index: 94 !important; }
  html body.orc-celular-aberto #drawer-add-budget-expense:not(#love-h-a) { z-index: 95 !important; }

  /* "Defina seu orçamento" em tela cheia */
  html body #modal-setup-budget:not(#love-h-a) { z-index: 96 !important; padding: 0 !important; align-items: stretch !important; background: #FFFFFF !important; backdrop-filter: none !important; }
  html body #modal-setup-budget > .modal-container-custom:not(#love-h-a) {
    max-width: none !important; width: 100%; height: 100dvh; max-height: none !important; overflow-y: auto !important; border-radius: 0 !important; box-shadow: none !important;
    padding: calc(56px + env(safe-area-inset-top, 0px)) 16px calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  }
  html body #modal-setup-budget .orc-setup-fechar:not(#love-h-a) {
    display: inline-flex !important; align-items: center; justify-content: center; position: absolute; top: calc(6px + env(safe-area-inset-top, 0px)); left: 6px; margin: 0 !important;
    width: 44px; height: 44px; padding: 0; background: transparent; border: 0; border-radius: 8px; color: #18181B; cursor: pointer;
  }
  html body #modal-setup-budget .orc-setup-fechar svg:not(#love-h-a) { width: 22px; height: 22px; }
  html body #modal-setup-budget h3:not(#love-h-a) { font-size: 24px !important; letter-spacing: -0.025em; }
  html body #modal-setup-budget input:not(#love-h-a) { height: 44px; font-size: 16px !important; border-radius: 8px !important; border-color: #E4E4E7 !important; box-shadow: none !important; }
  html body #modal-setup-budget input:focus:not(#love-h-a) { border-color: #181D24 !important; }
  html body #modal-setup-budget label:not(#love-h-a) { font-size: 13px !important; }
  html body #modal-setup-budget #btn-submit-budget-setup:not(#love-h-a) { height: 48px; padding: 0 !important; background: #183b54 !important; border-radius: 8px !important; box-shadow: none !important; font-size: 16px !important; font-weight: 600 !important; }

  body[data-theme="dark"] .orc-celular, body[data-theme="dark"] .orc-celular .orc-cel-topo, body[data-theme="dark"] .orc-celular .orc-cel-linha { background: #1F1F1F !important; color: #FFFFFF; }
  body[data-theme="dark"] .orc-celular .orc-cel-grupo-cab { background: #252525 !important; color: #FFFFFF !important; }
  body[data-theme="dark"] .orc-celular :is(.orc-cel-resumo, .orc-cel-grupo) { border-color: #404040 !important; }
  body[data-theme="dark"] .orc-celular :is(.orc-cel-icone, .orc-cel-topo h2) { color: #FFFFFF !important; }
  body[data-theme="dark"] .orc-celular :is(.orc-cel-barra-valor, .orc-cel-editar) { color: #EBF4FF !important; }
  body[data-theme="dark"] .orc-celular .orc-cel-barra { background: rgba(235, 244, 255, 0.08) !important; }
  body[data-theme="dark"] #modal-setup-budget, body[data-theme="dark"] #modal-setup-budget > .modal-container-custom { background: #1F1F1F !important; }
}

/* ==========================================================================
   Celular: Convite digital com edição enxuta. Gaveta pequena por elemento
   (Título/Texto: negrito, itálico, tamanho e o texto; Data/Contagem: data e
   horário; Botões: cores e quais aparecem). Aviso de que no computador há
   mais recursos, antes da imagem. Desktop não muda.
   ========================================================================== */
.builder-aviso-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #site-builder-root:not([data-pagina="savethedate"]) .builder-aviso-celular:not(#love-h-a) {
    display: flex; align-items: flex-start; gap: 10px; margin: 0 16px 12px; padding: 10px 12px;
    border: 1px solid #E4E4E7; border-radius: 8px; background: #FFFFFF;
    font-family: Inter, sans-serif; font-size: 13px; line-height: 1.45; color: #52525B;
  }
  html body .builder-aviso-celular svg:not(#love-h-a) { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 1px; color: #183b54; }
  body[data-theme="dark"] #site-builder-root .builder-aviso-celular { background: #1F1F1F !important; border-color: #404040 !important; color: #D4D4D8 !important; }

  html body .builder-gaveta .inspector-header:not(#love-h-a),
  html body .builder-gaveta .inspector-tabs:not(#love-h-a) { display: none !important; }
  html body .builder-gaveta .inspector-body.cel-edit:not(#love-h-a) { display: flex; flex-direction: column; gap: 14px; padding: 14px 16px 20px !important; }
  html body .builder-gaveta .cel-edit .inspector-field:not(#love-h-a) { margin: 0 !important; }
  html body .builder-gaveta .cel-edit .cel-edit-barra:not(#love-h-a) { display: flex; align-items: center; gap: 8px; }
  html body .builder-gaveta .cel-edit .cel-edit-barra .inspector-segmented:not(#love-h-a) { flex: 0 0 auto; margin: 0 !important; }
  html body .builder-gaveta .cel-edit .cel-edit-barra .inspector-segmented button:not(#love-h-a) { width: 44px; height: 44px; }
  html body .builder-gaveta .cel-edit [data-typography-toggle="sombra"]:not(#love-h-a) { display: none !important; }
  html body .builder-gaveta .cel-edit .cel-edit-tamanho:not(#love-h-a) { flex: 1 1 auto; min-width: 0; height: 44px; font-size: 16px !important; }
  html body .builder-gaveta .cel-edit .inspector-rich:not(#love-h-a) { min-height: 96px; max-height: 40dvh; overflow-y: auto; font-size: 16px !important; }
  html body .builder-gaveta .cel-edit :is(input.inspector-input, select.inspector-select):not(#love-h-a) { height: 44px; font-size: 16px !important; }
  html body .builder-gaveta .cel-edit .cel-edit-rotulo:not(#love-h-a) { margin-bottom: -6px; }
  html body .builder-gaveta .cel-edit .cel-edit-botoes .menu-order-row:not(#love-h-a) { display: flex; align-items: center; gap: 10px; }
  html body .builder-gaveta .cel-edit .cel-edit-botoes .inspector-input:not(#love-h-a) { flex: 1 1 auto; min-width: 0; }
}

/* ==========================================================================
   Celular: Editar informações do Convite digital sem sair para o lado.
   Campos menores (44px, cantos de 8px) e sempre do tamanho da coluna — no
   iPhone os campos de data/hora têm largura própria e passavam da tela.
   Desktop não muda.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-edit-site #editor-form-column:not(#love-h-a) { overflow-x: hidden !important; }
  html body #tab-edit-site #editor-form-column :is(.grid, .flex) > *:not(#love-h-a) { min-width: 0; }
  html body #tab-edit-site #editor-form-column :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):not(#love-h-a) {
    box-sizing: border-box; max-width: 100%; min-width: 0; border-radius: 8px !important;
  }
  html body #tab-edit-site #editor-form-column :is(input, select):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):not(#love-h-a) {
    height: 44px; padding-top: 0 !important; padding-bottom: 0 !important; padding-left: 12px !important; padding-right: 12px !important;
  }
  html body #tab-edit-site #editor-form-column :is(input[type="date"], input[type="time"]):not(#love-h-a) {
    -webkit-appearance: none; appearance: none; display: block; width: 100% !important; text-align: left; line-height: 44px;
  }
  html body #tab-edit-site #editor-form-column :is(input[type="date"], input[type="time"])::-webkit-date-and-time-value { text-align: left; }
  html body #tab-edit-site #editor-form-column textarea:not(#love-h-a) { width: 100% !important; padding: 10px 12px !important; }
}

/* ==========================================================================
   Celular, Home: aviso de mensagens de fornecedores ("2 fornecedores te
   mandaram mensagem!" + "Ver as mensagens"), logo antes de Organização.
   ========================================================================== */
.home-aviso-mensagens { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #home-atalhos-celular .home-aviso-mensagens:not([hidden]):not(#love-h-a) {
    display: flex !important; align-items: center; gap: 14px; width: 100%; margin: 0; padding: 14px 16px; box-sizing: border-box;
    background: #F7F8FA; border: 1px solid #E4E4E7; border-radius: 10px; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;
    font-family: Inter, sans-serif;
  }
  html body .home-aviso-mensagens .home-aviso-mensagens-mao:not(#love-h-a) { flex: 0 0 auto; width: 34px; height: 34px; color: #183b54; transform: rotate(-12deg); }
  html body .home-aviso-mensagens .home-aviso-mensagens-texto:not(#love-h-a) { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
  html body .home-aviso-mensagens .home-aviso-mensagens-titulo:not(#love-h-a) { font-size: 16px; font-weight: 500; line-height: 1.3; color: #18181B; }
  html body .home-aviso-mensagens .home-aviso-mensagens-link:not(#love-h-a) { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 600; color: #183b54; }
  html body .home-aviso-mensagens .home-aviso-mensagens-link svg:not(#love-h-a) { width: 18px; height: 18px; }
  html body .home-aviso-mensagens .home-aviso-mensagens-ponto:not(#love-h-a) { flex: 0 0 auto; align-self: flex-start; width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; background: #c7305b; }
  body[data-theme="dark"] #home-atalhos-celular .home-aviso-mensagens { background: #1F1F1F !important; border-color: #404040 !important; }
  body[data-theme="dark"] .home-aviso-mensagens .home-aviso-mensagens-titulo { color: #FFFFFF !important; }
  body[data-theme="dark"] .home-aviso-mensagens :is(.home-aviso-mensagens-mao, .home-aviso-mensagens-link) { color: #EBF4FF !important; }
}

/* ==========================================================================
   Celular, Home: topo como nas outras páginas (logo à esquerda; sino e ☰ à
   direita, botões simples de 44px sem o círculo de vidro). Foto do convite
   colada no topo com a caixa "Olá, nome!" e os dias que faltam; depois o
   link, Convidados e os atalhos. Desktop não muda.
   ========================================================================== */
.home-capa-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .dashboard-top-navbar > .logo-celular:not(#love-h-a):not(#love-h-b) {
    position: static; transform: none; order: 0; margin-right: auto; height: 100%;
  }
  html body .dashboard-top-navbar > div:has(#btn-notifications-menu):not(#love-h-a) { order: 1; margin: 0 !important; gap: 0 !important; }
  html body .dashboard-top-navbar > .menu-celular-botao:not(#love-h-a):not(#love-h-b):not(#love-h-c) { order: 2; margin-left: 10px !important; margin-right: -0px !important; }
  html body .dashboard-top-navbar > .menu-celular-botao:not(#love-h-a):not(#love-h-b):not(#love-h-c),
  html body .dashboard-top-navbar #btn-notifications-menu:not(#love-h-a):not(#love-h-b):not(#love-h-c) {
    width: 44px !important; height: 44px !important; min-width: 44px !important; padding: 0 !important;
    background: transparent !important; border: 0 !important; border-radius: 8px !important; box-shadow: none !important;
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important; color: #18181B !important;
  }
  body[data-theme="dark"] .dashboard-top-navbar :is(.menu-celular-botao, #btn-notifications-menu) { background: transparent !important; border: 0 !important; color: #FFFFFF !important; }

  /* Foto colada no topo (sem o respiro de cima e de ponta a ponta) */
  html body #tab-overview.active:not(#love-h-a) { animation: none !important; transform: none !important; }
  html body #tab-overview .home-capa-celular:not(#love-h-a) { display: block; position: relative; margin: -52px -16px 28px; }
  html body #tab-overview .home-capa-celular-foto:not(#love-h-a) {
    height: 240px; background: #E8EEF4 center / cover no-repeat;
  }
  html body #tab-overview .home-capa-celular-caixa:not(#love-h-a) {
    position: relative; margin: -48px 16px 0; padding: 18px 16px; text-align: center;
    background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px;
  }
  html body #tab-overview .home-capa-celular-ola:not(#love-h-a) { margin: 0; font-family: Inter, sans-serif; font-size: 22px; font-weight: 600; letter-spacing: -0.025em; line-height: 1.25; color: #18181B; }
  html body #tab-overview .home-capa-celular-dias:not(#love-h-a) { margin: 6px 0 0; font-family: Inter, sans-serif; font-size: 15px; color: #52525B; font-variant-numeric: tabular-nums; }
  body[data-theme="dark"] #tab-overview .home-capa-celular-caixa { background: #1F1F1F !important; border-color: #404040 !important; }
  body[data-theme="dark"] #tab-overview .home-capa-celular-ola { color: #FFFFFF !important; }
  body[data-theme="dark"] #tab-overview .home-capa-celular-dias { color: #D4D4D8 !important; }

  /* Saem: saudação com as pílulas, card de Presentes e o carrossel. */
  html body #tab-overview .home-saudacao:not(#love-h-a),
  html body #tab-overview .home-kpis > :first-child:not(#love-h-a),
  html body #tab-overview #dashboard-promo-carousel:not(#love-h-a) { display: none !important; }
}

/* ==========================================================================
   Celular, Home (modelo de app): foto do convite atrás do topo (logo e
   ícones brancos por cima, topo branco de novo ao rolar); caixa com "Olá,
   nome!", os dias que faltam e os atalhos (Checklist, Pedir orçamento,
   Orçamento, Meu site, Mapear mesas, Save the date). Desktop não muda.
   ========================================================================== */
.home-capa-celular-atalhos { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-overview .home-capa-celular:not(#love-h-a):not(#love-h-b) { margin-top: calc(-112px - env(safe-area-inset-top, 0px)); }
  html body #tab-overview .home-capa-celular-foto:not(#love-h-a):not(#love-h-b) { height: calc(300px + env(safe-area-inset-top, 0px)); position: relative; }
  html body #tab-overview .home-capa-celular-foto:not(#love-h-a)::before {
    content: ""; position: absolute; inset: 0 0 auto 0; height: 120px; background: linear-gradient(180deg, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0) 100%);
  }
  html body #tab-overview .home-capa-celular-caixa:not(#love-h-a):not(#love-h-b) { margin-top: -56px; padding: 20px 12px 18px; }

  /* Topo transparente sobre a foto */
  html body:has(#tab-overview.active):not(.home-rolou):not(.menu-celular-aberto) .dashboard-top-navbar:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: transparent !important; transition: background-color .2s ease; }
  html body:has(#tab-overview.active):not(.home-rolou):not(.menu-celular-aberto) .dashboard-top-navbar > .menu-celular-botao:not(#love-h-a):not(#love-h-b):not(#love-h-c),
  html body:has(#tab-overview.active):not(.home-rolou):not(.menu-celular-aberto) .dashboard-top-navbar #btn-notifications-menu:not(#love-h-a):not(#love-h-b):not(#love-h-c) { color: #FFFFFF !important; }
  html body:has(#tab-overview.active):not(.home-rolou):not(.menu-celular-aberto) .dashboard-top-navbar #btn-notifications-menu svg *:not(#love-h-a) { stroke: #FFFFFF !important; }
  html body:has(#tab-overview.active):not(.home-rolou):not(.menu-celular-aberto) .dashboard-top-navbar > .logo-celular .logo-claro:not(#love-h-a) { display: none !important; }
  html body:has(#tab-overview.active):not(.home-rolou):not(.menu-celular-aberto) .dashboard-top-navbar > .logo-celular .logo-escuro:not(#love-h-a) { display: block !important; }

  /* Atalhos dentro da caixa */
  html body #tab-overview .home-capa-celular-atalhos:not(#love-h-a) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 8px; margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(0, 0, 0, 0.06); }
  html body #tab-overview .home-capa-celular-atalhos .home-atalho:not(#love-h-a) { min-height: 44px; }
  html body #tab-overview .home-capa-celular-atalhos .home-atalho-bola:not(#love-h-a) { width: 56px; height: 56px; background: #EAF0F5; color: #183b54; }
  html body #tab-overview .home-capa-celular-atalhos .home-atalho-bola svg:not(#love-h-a) { width: 26px; height: 26px; }
  html body #tab-overview .home-capa-celular-atalhos .home-atalho-nome:not(#love-h-a) { font-size: 13px; }
  body[data-theme="dark"] #tab-overview .home-capa-celular-atalhos .home-atalho-bola { background: #252525 !important; color: #EBF4FF !important; }
}

/* ==========================================================================
   Celular: Convite digital — escolha de modelo (cartões que passam de lado),
   texto/título editados direto no convite e o aviso com respiro igual em
   cima e embaixo. Desktop não muda.
   ========================================================================== */
.modelos-celular, .builder-aviso-celular-modelos { display: none !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #site-builder-root:not([data-pagina="savethedate"]) .builder-aviso-celular:not(#love-h-a):not(#love-h-b) { margin: 16px 16px 16px; }
  html body .builder-aviso-celular .builder-aviso-celular-modelos:not(#love-h-a) {
    display: inline !important; padding: 0; margin: 0; background: transparent; border: 0; cursor: pointer;
    font: inherit; font-weight: 600; color: #183b54; text-decoration: underline; text-underline-offset: 2px;
  }

  html body .modelos-celular:not([hidden]):not(#love-h-a) {
    display: flex !important; flex-direction: column; position: fixed; inset: 0; z-index: 75; overflow-y: auto;
    padding: calc(24px + env(safe-area-inset-top, 0px)) 0 calc(24px + env(safe-area-inset-bottom, 0px));
    background: #FFFFFF; font-family: Inter, sans-serif;
  }
  html body .modelos-celular .modelos-celular-carregando:not(#love-h-a) { margin: auto; font-size: 15px; color: #71717A; }
  html body .modelos-celular .modelos-celular-topo:not(#love-h-a) { padding: 8px 16px 20px; }
  html body .modelos-celular .modelos-celular-topo h2:not(#love-h-a) { margin: 0; font-size: 24px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; }
  html body .modelos-celular .modelos-celular-topo p:not(#love-h-a) { margin: 6px 0 0; font-size: 15px; line-height: 1.45; color: #52525B; }
  html body .modelos-celular .modelos-celular-trilho:not(#love-h-a) {
    display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    padding: 4px 16px 8px; scroll-padding: 0 16px; scrollbar-width: none; outline: none;
  }
  html body .modelos-celular .modelos-celular-trilho::-webkit-scrollbar { display: none; }
  html body .modelos-celular .modelos-celular-cartao:not(#love-h-a) {
    flex: 0 0 72%; scroll-snap-align: start; display: flex; flex-direction: column; gap: 10px; padding: 0;
    background: transparent; border: 0; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  html body .modelos-celular .modelos-celular-folha:not(#love-h-a) {
    display: flex; flex-direction: column; aspect-ratio: 3 / 4.4; overflow: hidden; border: 1px solid #E4E4E7; border-radius: 10px;
  }
  html body .modelos-celular .modelos-celular-foto:not(#love-h-a) { flex: 0 0 52%; background: #E8EEF4 center / cover no-repeat; }
  html body .modelos-celular .modelos-celular-texto:not(#love-h-a) { flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 12px; text-align: center; }
  html body .modelos-celular .modelos-celular-nome:not(#love-h-a) { font-size: 22px; line-height: 1.2; text-transform: uppercase; letter-spacing: 0.04em; }
  html body .modelos-celular .modelos-celular-data:not(#love-h-a) { font-size: 12px; letter-spacing: 0.12em; }
  html body .modelos-celular .modelos-celular-rotulo:not(#love-h-a) { font-size: 16px; font-weight: 500; color: #18181B; }
  html body .modelos-celular .modelos-celular-pontos:not(#love-h-a) { display: flex; justify-content: center; gap: 6px; margin-top: 16px; }
  html body .modelos-celular .modelos-celular-pontos span:not(#love-h-a) { width: 6px; height: 6px; border-radius: 50%; background: #D4D4D8; }
  html body .modelos-celular .modelos-celular-pontos span.is-ativo:not(#love-h-a) { background: #183b54; }
  html body .modelos-celular .modelos-celular-pular:not(#love-h-a) {
    align-self: center; min-height: 44px; margin-top: 16px; padding: 0 12px; background: transparent; border: 0;
    font-family: Inter, sans-serif; font-size: 15px; font-weight: 500; color: #52525B; cursor: pointer;
  }
  body[data-theme="dark"] .modelos-celular { background: #1A1A1A !important; }
  body[data-theme="dark"] .modelos-celular :is(h2, .modelos-celular-rotulo) { color: #FFFFFF !important; }
  body[data-theme="dark"] .modelos-celular .modelos-celular-topo p { color: #D4D4D8 !important; }
}

/* ==========================================================================
   Celular, Home: o topo (logo, sino e menu) não gruda ao rolar; sobe junto
   com a foto e fica sempre transparente por cima dela. Desktop não muda.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body:has(#tab-overview.active):not(.menu-celular-aberto) .dashboard-top-navbar:not(#love-h-a):not(#love-h-b):not(#love-h-c) { position: absolute !important; top: 0 !important; background: transparent !important; }
  html body:has(#tab-overview.active):not(.menu-celular-aberto) .dashboard-top-navbar > .menu-celular-botao:not(#love-h-a):not(#love-h-b):not(#love-h-c),
  html body:has(#tab-overview.active):not(.menu-celular-aberto) .dashboard-top-navbar #btn-notifications-menu:not(#love-h-a):not(#love-h-b):not(#love-h-c) { color: #FFFFFF !important; }
  html body:has(#tab-overview.active):not(.menu-celular-aberto) .dashboard-top-navbar #btn-notifications-menu svg *:not(#love-h-a) { stroke: #FFFFFF !important; }
  html body:has(#tab-overview.active):not(.menu-celular-aberto) .dashboard-top-navbar > .logo-celular .logo-claro:not(#love-h-a) { display: none !important; }
  html body:has(#tab-overview.active):not(.menu-celular-aberto) .dashboard-top-navbar > .logo-celular .logo-escuro:not(#love-h-a) { display: block !important; }
}

/* ==========================================================================
   Celular, Convite digital: "Escolher novo modelo" com o mesmo cabeçalho da
   ficha de Adicionar convidado (seta de voltar 44px, título 17px centralizado).
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .modelos-celular:not([hidden]):not(#love-h-a):not(#love-h-b) { padding-top: 0; }
  html body .modelos-celular .modelos-celular-topo:not(#love-h-a):not(#love-h-b) {
    display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-shrink: 0;
    padding: calc(env(safe-area-inset-top, 0px) + 12px) 16px 8px;
  }
  html body .modelos-celular .modelos-celular-voltar:not(#love-h-a) {
    width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: flex-start; flex-shrink: 0;
    padding: 0; background: transparent; border: 0; box-shadow: none; color: #18181B; cursor: pointer;
  }
  html body .modelos-celular .modelos-celular-voltar svg:not(#love-h-a) { width: 24px; height: 24px; }
  html body .modelos-celular .modelos-celular-espaco:not(#love-h-a) { width: 44px; height: 44px; flex-shrink: 0; }
  html body .modelos-celular .modelos-celular-topo h2:not(#love-h-a):not(#love-h-b) {
    flex: 1 1 auto; min-width: 0; margin: 0; font-size: 17px !important; font-weight: 600 !important; letter-spacing: -0.025em; color: #18181B;
    text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  html body .modelos-celular .modelos-celular-descricao:not(#love-h-a) { margin: 8px 16px 20px; font-size: 15px; line-height: 1.45; color: #52525B; text-align: center; }
  body[data-theme="dark"] .modelos-celular .modelos-celular-voltar { color: #FFFFFF !important; }
  body[data-theme="dark"] .modelos-celular .modelos-celular-descricao { color: #D4D4D8 !important; }
}

/* ==========================================================================
   Celular: (1) Escolher novo modelo em grade de 2 colunas — miniatura com
   borda fina, nome e a data em que entrou na loja de modelos. (2) Criar/editar
   presente ocupa a tela toda até embaixo; Salvar igual ao da ficha de
   Adicionar convidado; caixinhas de marcar (valor extra, vaquinha) maiores.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .modelos-celular .modelos-celular-trilho:not(#love-h-a):not(#love-h-b) {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; overflow: visible; scroll-snap-type: none; padding: 0 16px;
  }
  html body .modelos-celular .modelos-celular-cartao:not(#love-h-a):not(#love-h-b) { flex: none; width: auto; gap: 0; min-width: 0; }
  html body .modelos-celular .modelos-celular-folha:not(#love-h-a):not(#love-h-b) { aspect-ratio: 3 / 4; margin-bottom: 10px; }
  html body .modelos-celular .modelos-celular-foto:not(#love-h-a):not(#love-h-b) { flex-basis: 48%; }
  html body .modelos-celular .modelos-celular-texto:not(#love-h-a):not(#love-h-b) { gap: 6px; padding: 8px; }
  html body .modelos-celular .modelos-celular-nome:not(#love-h-a):not(#love-h-b) { font-size: 14px; letter-spacing: 0.03em; }
  html body .modelos-celular .modelos-celular-data:not(#love-h-a):not(#love-h-b) { font-size: 9px; }
  html body .modelos-celular .modelos-celular-rotulo:not(#love-h-a):not(#love-h-b) { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html body .modelos-celular .modelos-celular-adicionado:not(#love-h-a) { margin-top: 2px; font-size: 13px; line-height: 1.35; color: #A1A1AA; }
  html body .modelos-celular .modelos-celular-pontos:not(#love-h-a):not(#love-h-b) { display: none; }
  html body .modelos-celular .modelos-celular-pular:not(#love-h-a):not(#love-h-b) { margin-top: 24px; }
  body[data-theme="dark"] .modelos-celular .modelos-celular-folha { border-color: #404040 !important; }

  html body .gift-drawer:not(#love-h-a):not(#love-h-b) { bottom: 0 !important; z-index: 70 !important; }
  html body .gift-drawer > .overflow-y-auto:not(#love-h-a) { padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)) !important; }
  html body .gift-drawer .gift-drawer-salvar-topo:not(#love-h-a):not(#love-h-b) { border-radius: 8px !important; box-shadow: none !important; }
  html body #form-add-gift .gift-valor-extra .gifts-select-all-check:not(#love-h-a) { width: 24px; height: 24px; border-radius: 6px; }
  html body #form-add-gift .gift-valor-extra .gifts-select-all-check:not(#love-h-a)::before { width: 13px; height: 13px; }
}

/* ==========================================================================
   Celular: cabeçalho das telas branco de ponta a ponta; logo abaixo, uma linha
   fina e a barra de abas no cinza do fundo; a aba ativa fica branca (cor do
   cabeçalho) com a linha da cor primária em cima. Mapa do evento com o aviso
   de que no computador há mais recursos. Desktop não muda.
   ========================================================================== */
.aviso-computador-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard :is(.dashboard-tab-content > .builder-toolbar, #site-builder-root > .builder-toolbar, .floorplan-wrap:not(.is-expandida) > .floorplan-toolbar):not(#love-h-a):not(#love-h-b) { position: relative; isolation: isolate; background: transparent !important; border-bottom: 0 !important; }
  html body #view-event-os-dashboard :is(.dashboard-tab-content > .builder-toolbar, #site-builder-root > .builder-toolbar, .floorplan-wrap:not(.is-expandida) > .floorplan-toolbar):not(#love-h-a):not(#love-h-b)::before {
    content: ""; position: absolute; z-index: -1; top: -80px; bottom: 0; left: -100vw; right: -100vw; background: #FFFFFF; pointer-events: none;
  }
  body[data-theme="dark"] #view-event-os-dashboard :is(.dashboard-tab-content > .builder-toolbar, #site-builder-root > .builder-toolbar, .floorplan-wrap:not(.is-expandida) > .floorplan-toolbar)::before { background: #1F1F1F !important; }

  html body #dashboard-main-area .submenu-celular:not([hidden]):not(#love-h-a):not(#love-h-b) { background: #FFFFFF !important; border-top: 1px solid #E4E4E7 !important; border-bottom: 0 !important; }
  html body:not([data-theme="dark"]) #dashboard-main-area .submenu-celular .submenu-celular-item:not(#love-h-a):not(#love-h-b) { background: #FFFFFF !important; }
  html body:not([data-theme="dark"]) #dashboard-main-area .submenu-celular .submenu-celular-item.is-ativo:not(#love-h-a):not(#love-h-b) { background: #F4F6F7 !important; }
  html body #dashboard-main-area .submenu-celular .submenu-celular-item.is-ativo:not(#love-h-a):not(#love-h-b)::before { top: 0; bottom: auto; }
  body[data-theme="dark"] #dashboard-main-area .submenu-celular:not([hidden]) { background: #1F1F1F !important; border-top-color: #333333 !important; }
  body[data-theme="dark"] #dashboard-main-area .submenu-celular .submenu-celular-item { background: #1F1F1F !important; }
  body[data-theme="dark"] #dashboard-main-area .submenu-celular .submenu-celular-item.is-ativo { background: #1A1A1A !important; }

  html body #tab-rsvp-tables .floorplan-wrap:not(.is-expandida) > .aviso-computador-celular:not(#love-h-a) {
    display: flex; align-items: flex-start; gap: 10px; margin: 0 16px 16px; padding: 10px 12px;
    border: 1px solid #E4E4E7; border-radius: 8px; background: #FFFFFF;
    font-family: Inter, sans-serif; font-size: 13px; line-height: 1.45; color: #52525B;
  }
  html body .aviso-computador-celular svg:not(#love-h-a) { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 1px; color: #183b54; }
  body[data-theme="dark"] .aviso-computador-celular { background: #1F1F1F !important; border-color: #404040 !important; color: #D4D4D8 !important; }
}

/* ==========================================================================
   Mensagens no celular: sem os três pontinhos na linha. Arrastar a conversa
   para a esquerda revela "Mais" e "Apagar" por trás do card (como no
   WhatsApp). Nome um pouco maior. No computador a linha não muda.
   ========================================================================== */
.conv-acoes { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #b2b-chat-contacts-list .conv-linha:not(#love-h-a) { position: relative; overflow: hidden; }
  html body #b2b-chat-contacts-list .conv-linha > .conv-item:not(#love-h-a) {
    position: relative; z-index: 1; touch-action: pan-y; will-change: transform; background: #FFFFFF;
    -webkit-user-select: none; user-select: none;
  }
  html body #b2b-chat-contacts-list .conv-linha > .conv-item.is-ativa:not(#love-h-a) { background: #EBF4FF; }
  html body #b2b-chat-contacts-list .conv-acoes:not(#love-h-a) {
    display: flex; position: absolute; top: 0; right: 0; bottom: 0; width: 144px; z-index: 0;
  }
  html body #b2b-chat-contacts-list .conv-acao:not(#love-h-a) {
    flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    padding: 0; border: 0; border-radius: 0; box-shadow: none; cursor: pointer;
    font-family: Inter, sans-serif; font-size: 13px; font-weight: 500;
  }
  html body #b2b-chat-contacts-list .conv-acao svg:not(#love-h-a) { width: 22px; height: 22px; }
  html body #b2b-chat-contacts-list .conv-acao-mais:not(#love-h-a) { background: #E4E4E7; color: #18181B; }
  html body #b2b-chat-contacts-list .conv-acao-apagar:not(#love-h-a) { background: #181D24; color: #FFFFFF; }
  body[data-theme="dark"] #b2b-chat-contacts-list .conv-linha > .conv-item { background: #1A1A1A !important; }
  body[data-theme="dark"] #b2b-chat-contacts-list .conv-acao-mais { background: #333333 !important; color: #FFFFFF !important; }
  body[data-theme="dark"] #b2b-chat-contacts-list .conv-acao-apagar { background: #EBF4FF !important; color: #181D24 !important; }

  /* Em repouso: sem os três pontinhos; o horário fica à mostra. */
  html body #b2b-chat-contacts-list .conv-item .conv-item-mais:not(#love-h-a):not(#love-h-b) { display: none !important; }
  html body #b2b-chat-contacts-list .conv-item .conv-item-hora:not(#love-h-a):not(#love-h-b) { display: inline !important; font-size: 12px; }
  html body #b2b-chat-contacts-list .conv-item h4:not(#love-h-a) { font-size: 16px !important; line-height: 1.3; }
  html body #b2b-chat-contacts-list .conv-item p:not(#love-h-a) { font-size: 14px !important; line-height: 1.35; }
}

/* ==========================================================================
   Meus convidados.
   Celular: arrastar o convidado para a esquerda revela os três pontinhos
   (Editar / Remover convidado, com confirmação); sem botões fixos na linha.
   Computador: sem as abas Todos/Confirmados/Pendentes/Recusados; "RSVP ⌄" no
   lugar de "Filtrar por"; o bonequinho com + no lugar de "Adicionar novo",
   abrindo a mesma ficha do celular como pop-up centralizado.
   ========================================================================== */
.guest-acao-mais, .acoes-convidado { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-rsvp .guests-table tbody td.guest-celula-arraste:not(#love-h-a) { position: relative; overflow: hidden; }
  html body #tab-rsvp .guests-table tbody td.guest-celula-arraste > .guest-card-arraste:not(#love-h-a) {
    position: relative; z-index: 1; margin: 0 -16px; padding: 0 16px; background: #F4F6F7; touch-action: pan-y; will-change: transform;
  }
  html body #tab-rsvp .guests-table .guest-acao-mais:not(#love-h-a) {
    display: flex; align-items: center; justify-content: center; position: absolute; top: 0; right: 0; bottom: 0; width: 80px; z-index: 0;
    padding: 0; border: 0; border-radius: 0; box-shadow: none; background: #E4E4E7; color: #18181B; cursor: pointer;
  }
  html body #tab-rsvp .guests-table .guest-acao-mais svg:not(#love-h-a) { width: 24px; height: 24px; }
  body[data-theme="dark"] #tab-rsvp .guests-table td.guest-celula-arraste > .guest-card-arraste { background: #1A1A1A !important; }
  body[data-theme="dark"] #tab-rsvp .guests-table .guest-acao-mais { background: #333333 !important; color: #FFFFFF !important; }

  html body .acoes-convidado:not([hidden]):not(#love-h-a) { display: block; position: fixed; inset: 0; z-index: 95; }
  html body .acoes-convidado .acoes-convidado-fundo:not(#love-h-a) { position: absolute; inset: 0; background: rgba(24, 29, 36, 0.32); }
  html body .acoes-convidado .acoes-convidado-folha:not(#love-h-a) {
    position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column;
    padding: 8px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: #FFFFFF; border-radius: 10px 10px 0 0;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.08); font-family: Inter, sans-serif; animation: acoesConvidadoSobe .22s ease-out;
  }
  @keyframes acoesConvidadoSobe { from { transform: translateY(100%); } to { transform: none; } }
  html body .acoes-convidado .acoes-convidado-nome:not(#love-h-a) { margin: 8px 0 4px; font-size: 13px; color: #71717A; text-align: center; }
  html body .acoes-convidado .acoes-convidado-opcao:not(#love-h-a) {
    min-height: 52px; padding: 0 4px; background: transparent; border: 0; border-bottom: 1px solid #EDEDED; border-radius: 0;
    font-family: inherit; font-size: 16px; font-weight: 500; color: #18181B; text-align: left; cursor: pointer;
  }
  html body .acoes-convidado .acoes-convidado-cancelar:not(#love-h-a) {
    min-height: 52px; margin-top: 4px; background: transparent; border: 0; box-shadow: none;
    font-family: inherit; font-size: 16px; font-weight: 500; color: #52525B; cursor: pointer;
  }
  body[data-theme="dark"] .acoes-convidado .acoes-convidado-folha { background: #1F1F1F !important; }
  body[data-theme="dark"] .acoes-convidado .acoes-convidado-opcao { color: #FFFFFF !important; border-bottom-color: #333333 !important; }
  body[data-theme="dark"] .acoes-convidado .acoes-convidado-cancelar { color: #D4D4D8 !important; }
}

@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  /* Sem as abas de status; o filtro vira "RSVP ⌄". */
  html body #tab-rsvp #rsvp-status-tabs:not(#love-h-a) { display: none !important; }
  html body #tab-rsvp .love-tabela-filtro-btn:not(#love-h-a):not(#love-h-b) { gap: 6px !important; padding: 0 10px 0 14px !important; }
  html body #tab-rsvp .love-tabela-filtro-btn > *:not(#love-h-a):not(#love-h-b) { display: none !important; }
  html body #tab-rsvp .love-tabela-filtro-btn:not(#love-h-a):not(#love-h-b)::before { content: 'RSVP'; font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; }
  html body #tab-rsvp .love-tabela-filtro-btn:not(#love-h-a):not(#love-h-b)::after {
    content: ''; width: 16px; height: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318181B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / 16px no-repeat;
  }
  html body #tab-rsvp .love-tabela-filtro-btn.is-ativo:not(#love-h-a):not(#love-h-b) { border-color: #183b54 !important; }
  body[data-theme="dark"] #tab-rsvp .love-tabela-filtro-btn::after { filter: invert(1); }

  /* Adicionar convidado: só o bonequinho com +, sem caixinha em volta;
     o ícone termina na mesma linha da tabela. */
  html body #view-event-os-dashboard #btn-host-add-guest:not(#love-h-a):not(#love-h-b) {
    display: inline-flex !important; align-items: center; justify-content: center;
    width: 24px !important; min-width: 24px !important; height: 40px !important; min-height: 40px !important; padding: 0 !important; gap: 0 !important;
    background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
    font-size: 0 !important; line-height: 0 !important; color: #18181B !important;
  }
  html body #view-event-os-dashboard #btn-host-add-guest:not(#love-h-a):not(#love-h-b):hover { background: transparent !important; border: 0 !important; transform: none !important; opacity: 0.7; }
  html body #view-event-os-dashboard #btn-host-add-guest:not(#love-h-a):not(#love-h-b) > * { display: none !important; }
  html body #view-event-os-dashboard #btn-host-add-guest:not(#love-h-a):not(#love-h-b)::before {
    content: ''; display: block; width: 20px; height: 20px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318181B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 7.5v3m0 0v3m0-3h3m-3 0h-3m-2.25-4.125a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0ZM3 19.235v-.11a6.375 6.375 0 0 1 12.75 0v.109A12.318 12.318 0 0 1 9.374 21c-2.331 0-4.512-.645-6.374-1.766Z'/%3E%3C/svg%3E") center / 20px no-repeat;
  }
  body[data-theme="dark"] #view-event-os-dashboard #btn-host-add-guest { background: transparent !important; border: 0 !important; }
  body[data-theme="dark"] #view-event-os-dashboard #btn-host-add-guest::before { filter: invert(1); }

  /* Ficha do convidado (as mesmas regras do celular)… */
  body.ficha-aberta { overflow: hidden; }
  .ficha-convidado { position: fixed; left: 0; right: 0; top: 0; bottom: var(--bottom-bar-height-mobile, 64px); z-index: 58; display: flex; flex-direction: column; background: linear-gradient(180deg, #EEF1F3 0%, #F6F7F8 40%, #F6F7F8 100%); font-family: Inter, sans-serif; }
  .ficha-convidado[hidden] { display: none !important; }
  .ficha-convidado .ficha-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: calc(env(safe-area-inset-top, 0px) + 12px) 16px 8px; flex-shrink: 0; }
  .ficha-convidado button { font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .ficha-convidado .ficha-circulo { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 50%; color: #3F3F46; }
  .ficha-convidado .ficha-circulo svg { width: 20px; height: 20px; }
  .ficha-convidado .ficha-texto { height: 44px; padding: 0 4px; background: transparent; border: 0; font-size: 16px; font-weight: 500; color: #3F3F46; }
  .ficha-convidado .ficha-pilula { height: 44px; padding: 0 18px; margin-left: auto; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 8px; font-size: 16px; font-weight: 600; color: #18181B; }
  .ficha-convidado .ficha-pilula.is-salvar { color: #183b54; }
  .ficha-convidado .ficha-pilula:disabled { opacity: 0.6; }
  .ficha-convidado [hidden] { display: none !important; }
  .ficha-convidado .ficha-corpo { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 8px 16px 32px; display: flex; flex-direction: column; align-items: center; }
  .ficha-convidado .ficha-avatar { width: 96px; height: 96px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #EBF4FF; color: #183b54; font-size: 32px; font-weight: 600; }
  .ficha-convidado .ficha-nome { margin: 14px 0 10px; font-size: 22px; font-weight: 700; letter-spacing: -0.025em; color: #27272A; text-align: center; }
  .ficha-convidado .ficha-status { display: inline-flex; align-items: center; height: 34px; padding: 0 16px; background: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 8px; font-size: 14px; font-weight: 500; color: #3F3F46; }
  .ficha-convidado .ficha-status[data-status="confirmed"] { color: #0E9F6E; }
  .ficha-convidado .ficha-status[data-status="declined"] { color: #b04369; }
  .ficha-convidado .ficha-cartao { width: 100%; margin-top: 20px; padding: 18px 16px 6px; background: #FFFFFF; border-radius: 10px; box-sizing: border-box; text-align: left; }
  .ficha-convidado .ficha-cartao h3 { margin: 0 0 6px; font-size: 19px; font-weight: 700; letter-spacing: -0.025em; color: #18181B; }
  .ficha-convidado .ficha-linha { display: flex; flex-direction: column; gap: 3px; padding: 10px 0; border-bottom: 1px solid #EDEDED; }
  .ficha-convidado .ficha-linha:last-child { border-bottom: 0; }
  .ficha-convidado .ficha-rotulo { font-size: 13px; color: #71717A; }
  .ficha-convidado .ficha-valor { font-size: 16px; color: #18181B; overflow-wrap: anywhere; }
  .ficha-convidado .ficha-valor.is-vazio { color: #A1A1AA; }
  .ficha-convidado .ficha-valor.is-email { color: #183b54; }
  /* Respostas no mesmo alinhamento do contato: rótulo em cima, valor embaixo, tudo à esquerda. */
  .ficha-convidado .ficha-linha.is-resposta .ficha-valor { text-align: left; }
  .ficha-convidado .ficha-campo { display: flex; align-items: center; gap: 8px; }
  .ficha-convidado .ficha-campo input { flex: 1 1 auto; min-width: 0; height: 26px; padding: 0; background: transparent; border: 0; outline: none; box-shadow: none; font: inherit; font-size: 16px !important; color: #18181B; }
  .ficha-convidado .ficha-campo input::placeholder { color: #C4C4C8; }
  .ficha-convidado .ficha-limpar { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; padding: 0; background: transparent; border: 0; color: #A1A1AA; }
  .ficha-convidado .ficha-limpar svg { width: 20px; height: 20px; }
  .ficha-convidado .ficha-mais { width: 100%; min-height: 52px; margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 16px; background: #FFFFFF; border: 0; border-radius: 10px; font-size: 15px; font-weight: 500; color: #18181B; text-align: left; }
  .ficha-convidado .ficha-mais svg { width: 18px; height: 18px; color: #A1A1AA; flex-shrink: 0; }
  .ficha-convidado.is-editando .ficha-mais { display: none; }
  .ficha-convidado .ficha-erro { width: 100%; margin: 12px 0 0; font-size: 13px; color: #B42318; text-align: left; }
  body[data-theme="dark"] .ficha-convidado { background: #1A1A1A; }
  body[data-theme="dark"] .ficha-convidado :is(.ficha-cartao, .ficha-mais, .ficha-pilula, .ficha-circulo, .ficha-status) { background: #252525; border-color: #333333; color: #FFFFFF; }
  body[data-theme="dark"] .ficha-convidado :is(.ficha-nome, .ficha-valor, .ficha-cartao h3, .ficha-campo input) { color: #FFFFFF; }
  body[data-theme="dark"] .ficha-convidado .ficha-linha { border-bottom-color: #333333; }
  .ficha-convidado .ficha-topo { gap: 8px; }
  .ficha-convidado .ficha-voltar { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: flex-start; flex-shrink: 0; padding: 0; background: transparent !important; border: 0 !important; box-shadow: none !important; color: #18181B; }
  .ficha-convidado .ficha-voltar svg { width: 24px; height: 24px; }
  .ficha-convidado .ficha-titulo { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ficha-convidado .ficha-pilula { margin-left: 0; flex-shrink: 0; }
  .ficha-convidado .ficha-avatar { border-radius: 10px; }
  .ficha-convidado.is-novo :is(.ficha-avatar, .ficha-nome, .ficha-status) { display: none !important; }
  .ficha-convidado.is-novo .ficha-cartao:first-of-type { margin-top: 8px; }
  .ficha-convidado:not(.is-editando) .ficha-so-edicao { display: none !important; }
  .ficha-convidado.is-editando .ficha-so-leitura { display: none !important; }
  .ficha-convidado .ficha-cartao { padding-bottom: 16px; }

  /* Campos: só uma borda quase transparente; o toque escurece de leve. */
  html body .ficha-convidado .ficha-linha.is-editando:not(#love-h-a) { border-bottom: 0; padding: 8px 0; }
  html body .ficha-convidado .ficha-campo:not(#love-h-a) { height: 46px; padding: 0 8px 0 12px; border: 1px solid rgba(0, 0, 0, 0.05); border-radius: 8px; background: rgba(255, 255, 255, 0.6); box-sizing: border-box; }
  html body .ficha-convidado .ficha-campo:focus-within:not(#love-h-a) { border-color: rgba(24, 29, 36, 0.22); }
  html body .ficha-convidado .ficha-campo input:not(#love-h-a),
  html body .ficha-convidado .ficha-campo input:focus:not(#love-h-a) { height: 100%; border: 0 !important; box-shadow: none !important; outline: none !important; background: transparent !important; }
  html body .ficha-convidado .ficha-acomp .ficha-input:not(#love-h-a),
  html body .ficha-convidado .ficha-restricao .field-input:not(#love-h-a) { width: 100%; height: 46px; padding: 0 12px; border: 1px solid rgba(0, 0, 0, 0.05) !important; border-radius: 8px !important; background: rgba(255, 255, 255, 0.6) !important; box-shadow: none !important; outline: none !important; font: inherit; font-size: 16px !important; color: #18181B; box-sizing: border-box; }
  html body .ficha-convidado .ficha-acomp .ficha-input:focus:not(#love-h-a),
  html body .ficha-convidado .ficha-restricao .field-input:focus:not(#love-h-a) { border-color: rgba(24, 29, 36, 0.22) !important; }
  .ficha-convidado .ficha-acomp .ficha-input::placeholder { color: #C4C4C8; }
  .ficha-convidado .ficha-restricao { margin-top: 6px; }
  .ficha-convidado .ficha-restricao .restricao-detalhe .field-input { margin-top: 0; }

  /* Acompanhantes */
  .ficha-convidado .ficha-acomp { display: flex; flex-direction: column; gap: 8px; padding: 12px 0 14px; border-bottom: 1px solid #EDEDED; }
  .ficha-convidado .ficha-acomp-topo { display: flex; align-items: center; justify-content: space-between; }
  .ficha-convidado .ficha-acomp-remover { width: 36px; height: 36px; margin-right: -8px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 0; color: #71717A; }
  .ficha-convidado .ficha-acomp-remover svg { width: 18px; height: 18px; }
  .ficha-convidado .ficha-acomp .ficha-restricao { margin-top: 0; }
  .ficha-convidado .ficha-add-acomp { width: 100%; height: 46px; margin-top: 12px; display: flex; align-items: center; justify-content: center; gap: 8px; background: transparent; border: 1px dashed rgba(0, 0, 0, 0.14); border-radius: 8px; font-size: 15px; font-weight: 600; color: #183b54; }
  .ficha-convidado .ficha-add-acomp svg { width: 18px; height: 18px; }

  body[data-theme="dark"] .ficha-convidado :is(.ficha-titulo, .ficha-voltar) { color: #FFFFFF; }
  body[data-theme="dark"] .ficha-convidado :is(.ficha-campo, .ficha-acomp .ficha-input, .ficha-restricao .field-input) { background: rgba(255, 255, 255, 0.04) !important; border-color: rgba(255, 255, 255, 0.08) !important; color: #FFFFFF; }
  body[data-theme="dark"] .ficha-convidado .ficha-acomp { border-bottom-color: #333333; }

  /* …num pop-up centralizado, com as medidas do computador. */
  html body .ficha-convidado:not([hidden]):not(#love-h-a):not(#love-h-b) {
    display: flex !important; top: 50%; left: 50%; right: auto; bottom: auto; transform: translate(-50%, -50%);
    width: min(560px, calc(100vw - 48px)); max-height: min(760px, calc(100vh - 48px)); z-index: 90;
    border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); overflow: hidden;
  }
  body.ficha-aberta::after { content: ''; position: fixed; inset: 0; z-index: 89; background: rgba(24, 29, 36, 0.32); }
  html body .ficha-convidado .ficha-topo:not(#love-h-a) { padding: 16px 24px 8px; }
  html body .ficha-convidado .ficha-corpo:not(#love-h-a) { padding: 8px 24px 24px; }
  html body .ficha-convidado .ficha-voltar:not(#love-h-a) { width: 40px; height: 40px; }
  html body .ficha-convidado .ficha-voltar svg:not(#love-h-a) { width: 20px; height: 20px; }
  html body .ficha-convidado .ficha-titulo:not(#love-h-a) { font-size: 18px; }
  html body .ficha-convidado .ficha-pilula:not(#love-h-a) { height: 40px; padding: 0 16px; font-size: 14px; }
  html body .ficha-convidado .ficha-avatar:not(#love-h-a) { width: 80px; height: 80px; font-size: 26px; }
  html body .ficha-convidado .ficha-nome:not(#love-h-a) { font-size: 20px; }
  html body .ficha-convidado .ficha-cartao:not(#love-h-a) { padding: 18px 20px 16px; border: 1px solid #E4E4E7; }
  html body .ficha-convidado .ficha-cartao h3:not(#love-h-a) { font-size: 16px; }
  html body .ficha-convidado .ficha-rotulo:not(#love-h-a) { font-size: 12px; }
  html body .ficha-convidado .ficha-valor:not(#love-h-a) { font-size: 14px; }
  html body .ficha-convidado .ficha-campo:not(#love-h-a):not(#love-h-b) { height: 40px; background: #FFFFFF; border-color: #E4E4E7; }
  html body .ficha-convidado .ficha-campo input:not(#love-h-a):not(#love-h-b) { font-size: 14px !important; }
  html body .ficha-convidado .ficha-acomp .ficha-input:not(#love-h-a):not(#love-h-b),
  html body .ficha-convidado .ficha-restricao .field-input:not(#love-h-a):not(#love-h-b) { height: 40px; font-size: 14px !important; background: #FFFFFF !important; border-color: #E4E4E7 !important; }
  html body .ficha-convidado .ficha-campo:focus-within:not(#love-h-a):not(#love-h-b),
  html body .ficha-convidado :is(.ficha-acomp .ficha-input, .ficha-restricao .field-input):focus:not(#love-h-a):not(#love-h-b) { border-color: #181D24 !important; }
  html body .ficha-convidado .ficha-add-acomp:not(#love-h-a) { height: 40px; font-size: 14px; }
  html body .ficha-convidado .ficha-mais:not(#love-h-a) { min-height: 48px; border: 1px solid #E4E4E7; font-size: 14px; }
  body[data-theme="dark"] .ficha-convidado { border-color: #404040 !important; }
  body[data-theme="dark"] .ficha-convidado :is(.ficha-campo, .ficha-acomp .ficha-input, .ficha-restricao .field-input) { background: #252525 !important; border-color: #404040 !important; }
}

/* ==========================================================================
   Ficha do convidado: "Convidado de quem?" e "Relação" ao adicionar e editar
   (no celular e no pop-up do computador), com a mesma caixa dos outros campos.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .ficha-convidado .ficha-campo.is-escolha:not(#love-h-a) { padding: 0; }
  html body .ficha-convidado .ficha-campo.is-escolha select:not(#love-h-a) {
    flex: 1 1 auto; min-width: 0; height: 100%; padding: 0 40px 0 12px; border: 0 !important; border-radius: 8px; box-shadow: none !important; outline: none;
    -webkit-appearance: none; appearance: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center / 18px no-repeat !important;
    font-family: inherit; font-size: 16px !important; color: #18181B; cursor: pointer;
  }
  body[data-theme="dark"] .ficha-convidado .ficha-campo.is-escolha select { color: #FFFFFF !important; }
}
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body .ficha-convidado .ficha-campo.is-escolha:not(#love-h-a):not(#love-h-b) { padding: 0; }
  html body .ficha-convidado .ficha-campo.is-escolha select:not(#love-h-a) {
    flex: 1 1 auto; min-width: 0; height: 100%; padding: 0 40px 0 12px; border: 0 !important; border-radius: 8px; box-shadow: none !important; outline: none;
    -webkit-appearance: none; appearance: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center / 18px no-repeat !important;
    font-family: inherit; font-size: 14px !important; color: #18181B; cursor: pointer;
  }
  body[data-theme="dark"] .ficha-convidado .ficha-campo.is-escolha select { color: #FFFFFF !important; }
}

/* ==========================================================================
   Meus presentes (celular e computador): grade de ponta a ponta, presentes
   colados um no outro (só um fio do fundo entre eles), sem caixas com cantos
   arredondados. Foto quadrada, selo "Comprado" na foto, categoria em
   maiúsculas acima do nome e o valor na cor primária. Acima: "N itens".
   ========================================================================== */
html body #view-event-os-dashboard #host-gifts-grid:not(#love-h-a):not(#love-h-b) { gap: 2px !important; }
html body #view-event-os-dashboard #host-gifts-grid > .group:not(#love-h-a):not(#love-h-b),
html body #view-event-os-dashboard #host-gifts-grid > .group:not(#love-h-a):not(#love-h-b):hover {
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: #FFFFFF !important; justify-content: flex-start !important;
}
html body #host-gifts-grid > .group > div:first-child:not(#love-h-a) { height: auto !important; aspect-ratio: 1 / 1; background: #F4F4F5 !important; }
html body #host-gifts-grid > .group img:not(#love-h-a) { transform: none !important; transition: none !important; }
html body #host-gifts-grid > .group > div:last-child:not(#love-h-a) { justify-content: flex-start !important; padding: 12px 14px 18px !important; }
html body #host-gifts-grid > .group > div:last-child > * + *:not(#love-h-a) { margin-top: 2px !important; }
html body #host-gifts-grid > .group > div:last-child > div:first-child:not(#love-h-a) { display: flex; flex-direction: column; }
html body #host-gifts-grid > .group > div:last-child > div:first-child > p:not(#love-h-a) {
  order: -1; margin: 0 0 6px !important; font-family: Inter, sans-serif; font-size: 12px !important; font-weight: 500 !important;
  letter-spacing: 0.06em; text-transform: uppercase; color: #71717A !important;
}
html body #host-gifts-grid > .group h4:not(#love-h-a) { font-family: Inter, sans-serif; font-size: 15px !important; font-weight: 400 !important; line-height: 1.35; letter-spacing: 0 !important; color: #18181B !important; }
html body #host-gifts-grid > .group > div:last-child > div:last-child > p:first-child:not(#love-h-a) { margin: 0; font-family: Inter, sans-serif; font-size: 15px !important; font-weight: 500 !important; color: #183b54 !important; font-variant-numeric: tabular-nums; }
html body #host-gifts-grid > .group .gift-situacao:not(#love-h-a),
html body #host-gifts-grid > .group .gift-received-buyer:not(#love-h-a) { display: none !important; }
html body #host-gifts-grid .gift-selo-comprado:not(#love-h-a) {
  position: absolute; top: 8px; left: 8px; z-index: 2; padding: 3px 8px; border-radius: 6px; background: #183b54; color: #FFFFFF;
  font-family: Inter, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.4; pointer-events: none;
}
html body #gifts-barra #gifts-total-value:not(#love-h-a) { font-weight: 500; color: #18181B; }
body[data-theme="dark"] #view-event-os-dashboard #host-gifts-grid > .group { background: #1F1F1F !important; }
body[data-theme="dark"] #host-gifts-grid > .group > div:first-child { background: #252525 !important; }
body[data-theme="dark"] #host-gifts-grid > .group h4 { color: #FFFFFF !important; }
body[data-theme="dark"] #host-gifts-grid > .group > div:last-child > div:last-child > p:first-child { color: #EBF4FF !important; }
body[data-theme="dark"] #gifts-barra #gifts-total-value { color: #FFFFFF; }

@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* De ponta a ponta da tela. */
  html body #view-event-os-dashboard #host-gifts-grid:not(#love-h-a):not(#love-h-b) { margin-left: -16px !important; margin-right: -16px !important; width: calc(100% + 32px) !important; max-width: none !important; }
  html body #host-gifts-grid > .group > div:last-child:not(#love-h-a):not(#love-h-b) { padding: 12px 12px 16px !important; }
  /* "N itens" à esquerda, como no app. */
  html body #view-event-os-dashboard #tab-gifts #gifts-barra .love-tabela-barra:not(#love-h-a):not(#love-h-b) { justify-content: flex-start !important; padding-bottom: 12px !important; border-bottom: 0 !important; }
  html body #gifts-barra .love-tabela-barra-dir:not(#love-h-a) { order: -1; margin: 0 !important; }
  html body #gifts-barra .gifts-total-linha:not(#love-h-a):not(#love-h-b) { font-size: 15px; }
  html body #gifts-barra #gifts-total-value:not(#love-h-a):not(#love-h-b) { font-weight: 400; }

  /* Editar presente: a página de trás não rola junto e a foto ocupa menos
     altura, para tudo caber na tela sem rolagem à toa. */
  html body:has(#drawer-add-gift.open):not(#love-h-a) { overflow: hidden !important; }
  html body #drawer-add-gift .overflow-y-auto:not(#love-h-a) { overscroll-behavior: contain; }
  html body #drawer-add-gift #gift-image-dropzone:not(#love-h-a) { aspect-ratio: auto !important; height: 150px; }
}

/* ==========================================================================
   Celular: editar presente com os textos das caixinhas maiores ("Permitir
   valor extra no presente" e "Habilitar vaquinha") e "Alterar imagem" igual
   ao da capa do Convite digital (toque abre Fototeca / Tirar foto / Arquivo).
   Convite digital: o branco do cabeçalho vai até o topo da tela, como em
   Informações e Co-anfitriões. Desktop não muda.
   ========================================================================== */
.gift-texto-celular, .gift-alterar-imagem-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #form-add-gift .gift-texto-computador:not(#love-h-a) { display: none !important; }
  html body #form-add-gift .gift-texto-celular:not(#love-h-a) { display: inline !important; }
  html body #form-add-gift .gift-valor-extra:not(#love-h-a) { align-items: center; gap: 12px; font-size: 16px !important; line-height: 1.35; color: #18181B; }
  html body #form-add-gift .gift-contribuicao-coletiva:not(#love-h-a) { align-items: flex-start; }
  html body #form-add-gift .gift-contribuicao-coletiva .gifts-select-all-check:not(#love-h-a) { margin-top: 0; }
  html body #form-add-gift .gift-contribuicao-texto > span:first-child:not(#love-h-a) { font-size: 16px; line-height: 1.35; color: #18181B; }
  html body #form-add-gift .gift-contribuicao-descricao:not(#love-h-a) { font-size: 14px !important; line-height: 1.45; text-align: left !important; }
  html body #form-add-gift .gift-contribuicao-texto:not(#love-h-a) { text-align: left !important; }
  body[data-theme="dark"] #form-add-gift :is(.gift-valor-extra, .gift-contribuicao-texto > span:first-child) { color: #FFFFFF !important; }

  html body #gift-image-change-overlay:not(#love-h-a) { display: none !important; }
  html body #gift-image-dropzone #gift-image-preview-img:not(.hidden) ~ .gift-alterar-imagem-celular:not(#love-h-a) {
    display: flex; position: absolute; inset: 0; margin: auto; width: fit-content; height: fit-content; z-index: 6;
    align-items: center; gap: 0.45rem; padding: 0.65rem 1.15rem; border-radius: 999px;
    background: rgba(0, 0, 0, 0.5); border: 1px solid rgba(255, 255, 255, 0.4); color: #FFFFFF;
    font-family: Inter, sans-serif; font-size: 0.8125rem; font-weight: 600; pointer-events: none;
    -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
  }
  html body #gift-image-dropzone .gift-alterar-imagem-celular svg:not(#love-h-a) { width: 15px; height: 15px; }

  /* O editor do convite cortava o branco do cabeçalho acima dele (overflow). */
  html body #tab-edit-site #site-builder-root:not(#love-h-a) { overflow: visible !important; overflow-x: clip !important; }
}

/* ==========================================================================
   Celular, Mensagens: a tela do chat ocupa a largura toda (nada cortado),
   cabeçalho branco de ponta a ponta até o topo, como em Lista de presentes.
   Arrastar a conversa mostra só os três pontinhos; o menu tem letra maior.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body.b2b-chat-mode .dashboard-main-area:not(#love-h-a):not(#love-h-b) { padding-left: 0 !important; padding-right: 0 !important; }
  html body.b2b-chat-mode .dashboard-main-area > .dashboard-content-wrapper:not(#love-h-a):not(#love-h-b),
  html body.b2b-chat-mode #tab-b2b:not(#love-h-a):not(#love-h-b) { overflow: visible !important; overflow-x: clip !important; }
  html body.b2b-chat-mode #tab-b2b #b2b-messages-view:not(#love-h-a):not(#love-h-b) { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; }
  html body.b2b-chat-mode #view-event-os-dashboard #tab-b2b > #b2b-top-search-bar:not(#love-h-a):not(#love-h-b) { padding: 0 16px 12px !important; border-bottom: 1px solid #E4E4E7 !important; }
  body[data-theme="dark"].b2b-chat-mode #tab-b2b > #b2b-top-search-bar { border-bottom-color: #333333 !important; }
  html body.b2b-chat-mode #tab-b2b #b2b-messages-view .b2b-chat-contacts-column > div:first-of-type:not(#love-h-a):not(#love-h-b) { padding-top: 16px !important; }

  html body #b2b-chat-contacts-list .conv-acoes:not(#love-h-a):not(#love-h-b) { width: 80px; }
  html body #b2b-chat-contacts-list .conv-acao svg:not(#love-h-a):not(#love-h-b) { width: 24px; height: 24px; }
  html body .conv-menu:not(#love-h-a) { min-width: 200px; padding: 6px; }
  html body .conv-menu button:not(#love-h-a) { min-height: 48px; padding: 0 14px; font-size: 16px; font-weight: 500; }
}

/* ==========================================================================
   Celular, Mensagens: o espaço acima do cabeçalho também é branco (sem
   depender do prolongamento ::before, que alguns navegadores cortam).
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body.b2b-chat-mode .dashboard-main-area:not(#love-h-a):not(#love-h-b),
  html body.b2b-chat-mode .dashboard-main-area > .dashboard-content-wrapper:not(#love-h-a):not(#love-h-b),
  html body.b2b-chat-mode #tab-b2b:not(#love-h-a):not(#love-h-b) { background: #FFFFFF !important; }
  body[data-theme="dark"].b2b-chat-mode .dashboard-main-area,
  body[data-theme="dark"].b2b-chat-mode .dashboard-main-area > .dashboard-content-wrapper,
  body[data-theme="dark"].b2b-chat-mode #tab-b2b { background: #1F1F1F !important; }
}

/* ==========================================================================
   Celular, Meus convidados: o acompanhante arrasta junto com o convidado;
   os três pontinhos aparecem só uma vez, na linha do convidado.
   ========================================================================== */
.guest-acao-fundo { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-rsvp .guests-table .guest-acao-fundo:not(#love-h-a) { display: block; position: absolute; top: 0; right: 0; bottom: 0; width: 80px; z-index: 0; background: #E4E4E7; }
  body[data-theme="dark"] #tab-rsvp .guests-table .guest-acao-fundo { background: #333333 !important; }
}

/* ==========================================================================
   Celular, Meus presentes: "13 itens" acima da busca, com a mesma letra de
   "28 convidados" em Convidados (o total ao lado da busca some no celular).
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-gifts .rsvp-total-celular:not(#love-h-a) {
    display: block; margin: 0; padding: 0 0 12px; font-family: Inter, sans-serif;
    font-size: 17px; font-weight: 600; letter-spacing: 0; color: #18181B;
  }
  body[data-theme="dark"] #tab-gifts .rsvp-total-celular { color: #FFFFFF; }
  html body #gifts-barra .love-tabela-barra-dir:not(#love-h-a):not(#love-h-b) { display: none !important; }
}

/* ==========================================================================
   Celular, Mapa do evento: o branco do cabeçalho vai até o topo da tela,
   como em Convidados e Convite digital (a caixa do mapa cortava o branco).
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard .floorplan-wrap:not(.is-expandida):not(#love-h-a):not(#love-h-b) { overflow: visible !important; overflow-x: clip !important; }
}
/* Convite digital: o título desce 6px para ficar na mesma altura das outras telas. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-edit-site #site-builder-root > .builder-toolbar:not(#love-h-a):not(#love-h-b) { padding-top: 6px !important; }
}

/* ==========================================================================
   Celular: arrastar para o lado revela dois botões retos, de ponta a ponta
   da altura da linha (sem margem, sem cantos arredondados), como no app:
   Convidados -> Editar e Remover (na altura do grupo com os acompanhantes);
   Mensagens  -> Abrir e Remover. Remover nunca em vermelho.
   Editar presente: as duas caixinhas alinhadas (celular e computador).
   ========================================================================== */
.guest-acoes { display: none; }
html body #form-add-gift > .gift-valor-extra:not(#love-h-a):not(#love-h-b) { align-self: stretch !important; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-rsvp .guests-table tbody td.guest-celula-arraste:not(#love-h-a):not(#love-h-b) { overflow: visible !important; }
  html body #tab-rsvp .guests-table .guest-acao-mais:not(#love-h-a):not(#love-h-b),
  html body #tab-rsvp .guests-table .guest-acao-fundo:not(#love-h-a):not(#love-h-b) { display: none !important; }
  html body #tab-rsvp .guests-table .guest-acoes:not(#love-h-a):not(#love-h-b) {
    display: flex; position: absolute; top: 0; right: 0; width: 160px; height: 100%; z-index: 0; margin: 0; padding: 0; gap: 0 !important;
  }
  html body #tab-rsvp .guests-table tbody td.guest-celula-arraste > .guest-card-arraste:not(#love-h-a):not(#love-h-b) { z-index: 1; }
  /* A célula do acompanhante não fica por cima dos botões do convidado. */
  html body #tab-rsvp .guests-table tbody tr.is-acompanhante-row td.guest-celula-arraste:not(#love-h-a):not(#love-h-b) { position: static !important; }

  html body :is(#tab-rsvp .guests-table .guest-acao, #b2b-chat-contacts-list .conv-acao):not(#love-h-a):not(#love-h-b) {
    flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    height: 100%; min-width: 0; margin: 0 !important; padding: 0 !important;
    border: 0 !important; border-radius: 0 !important; box-shadow: none !important; outline: none;
    font-family: Inter, sans-serif; font-size: 15px; font-weight: 600; line-height: 1; color: #FFFFFF !important; cursor: pointer;
  }
  html body :is(#tab-rsvp .guests-table .guest-acao, #b2b-chat-contacts-list .conv-acao) svg:not(#love-h-a):not(#love-h-b) { width: 22px; height: 22px; }
  html body :is(#tab-rsvp .guests-table .guest-acao-editar, #b2b-chat-contacts-list .conv-acao-abrir):not(#love-h-a):not(#love-h-b) { background: #333333 !important; }
  html body :is(#tab-rsvp .guests-table .guest-acao-remover, #b2b-chat-contacts-list .conv-acao-remover):not(#love-h-a):not(#love-h-b) { background: #183b54 !important; }

  html body #b2b-chat-contacts-list .conv-acoes:not(#love-h-a):not(#love-h-b) { width: 160px; margin: 0; padding: 0; border-radius: 0; }
}

/* ==========================================================================
   Informações (prévia, computador e celular): foto própria da tela, com
   "Alterar imagem" igual ao da capa em Convite digital. Sem foto, caixa
   cinza (mesma altura da foto) com "Adicionar imagem". No computador, com foto, o botão aparece
   ao passar o mouse (como na capa); no celular fica sempre visível.
   ========================================================================== */
.convite-tela-capa.tem-alterar-imagem { position: relative; }
.convite-tela-capa.is-vazia { background: #F4F4F5; }
.convite-tela-capa.tem-alterar-imagem:not(.is-vazia) .informacoes-imagem-btn { opacity: 0; }
.convite-tela-capa.tem-alterar-imagem:not(.is-vazia):hover .informacoes-imagem-btn,
.convite-tela-capa.tem-alterar-imagem .informacoes-imagem-btn:focus-visible { opacity: 1; }
body[data-theme="dark"] .convite-tela-capa.is-vazia { background: #252525; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .convite-tela-capa.tem-alterar-imagem .informacoes-imagem-btn:not(#love-h-a) { opacity: 1; }
}

/* ==========================================================================
   Celular, Home: a caixa Presentes (saldo arrecadado), igual à do computador,
   volta logo antes da caixa Convidados e Confirmados.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a):not(#love-h-b) { display: flex !important; order: 5; }
}

/* ==========================================================================
   Computador, Meus convidados: sem as abas em cima, a caixa da tabela volta
   a ter borda e cantos arredondados no topo, iguais aos de baixo.
   ========================================================================== */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body #tab-rsvp #rsvp-status-tabs + .rsvp-caixa-abaixo-das-abas:not(#love-h-a):not(#love-h-b) {
    border-top: 1px solid rgba(0, 0, 0, 0.06) !important; border-top-left-radius: 10px !important; border-top-right-radius: 10px !important;
  }
  body[data-theme="dark"] #tab-rsvp #rsvp-status-tabs + .rsvp-caixa-abaixo-das-abas { border-top-color: rgba(255, 255, 255, 0.08) !important; }
}

/* ==========================================================================
   Celular: "Adicionar convidado" pergunta antes (menu pequeno): Adicionar
   manualmente / Importar contatos. Home: caixa "Monte sua lista de
   convidados a partir dos seus contatos" depois de Benefícios.
   ========================================================================== */
.menu-add-convidado {
  position: fixed; z-index: 120; min-width: 248px; padding: 6px; background: #FFFFFF;
  border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  font-family: Inter, sans-serif;
}
.menu-add-convidado button {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 0 12px;
  border: 0; border-radius: 8px; background: transparent; box-shadow: none; text-align: left; cursor: pointer;
  font-family: inherit; font-size: 16px; font-weight: 500; color: #18181B; -webkit-tap-highlight-color: transparent;
}
.menu-add-convidado button:active { background: #F4F4F5; }
.menu-add-convidado button svg { width: 22px; height: 22px; flex-shrink: 0; color: #183b54; }
body[data-theme="dark"] .menu-add-convidado { background: #1F1F1F; border-color: #333333; }
body[data-theme="dark"] .menu-add-convidado button { color: #FFFFFF; }
body[data-theme="dark"] .menu-add-convidado button svg { color: #EBF4FF; }

.home-contatos {
  padding: 24px 20px 20px; background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; text-align: center; font-family: Inter, sans-serif;
}
.home-contatos h3 { margin: 0 auto 20px; max-width: 280px; font-size: 18px; font-weight: 600; line-height: 1.3; letter-spacing: -0.025em; color: #18181B; }
.home-contatos-ilustra { display: flex; align-items: center; justify-content: center; gap: 22px; margin-bottom: 24px; }
.hc-celular {
  position: relative; width: 92px; height: 168px; flex-shrink: 0; border: 6px solid #E4E4E7; border-radius: 20px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
}
.hc-celular::before { content: ''; position: absolute; top: -1px; left: 50%; width: 34px; height: 6px; background: #E4E4E7; border-radius: 0 0 6px 6px; transform: translateX(-50%); }
.hc-avatar { width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; display: flex; align-items: flex-end; justify-content: center; overflow: hidden; color: #FFFFFF; }
.hc-avatar svg { width: 30px; height: 30px; margin-bottom: -3px; opacity: 0.9; }
.hc-a1 { background: #183b54; }
.hc-a2 { background: #537bae; }
.hc-a3 { background: #A9C1DD; }
.hc-vazio { background: #F4F4F5; color: #D4D4D8; }
.hc-lista { flex: 1 1 auto; max-width: 150px; display: flex; flex-direction: column; gap: 16px; }
.hc-linha { position: relative; display: flex; align-items: center; gap: 10px; }
.hc-barra { height: 10px; border-radius: 6px; background: #E4E4E7; }
.hc-chegando { position: absolute; left: -20px; top: -18px; box-shadow: 0 0 0 3px #FFFFFF; }
.home-contatos-continuar {
  width: 100%; height: 48px; padding: 0 16px; border: 0; border-radius: 8px; background: #183b54; box-shadow: none;
  font-family: inherit; font-size: 16px; font-weight: 600; color: #FFFFFF; cursor: pointer;
}
.home-contatos-continuar:active { background: #122c3f; }
body[data-theme="dark"] .home-contatos { background: #1F1F1F; border-color: #333333; }
body[data-theme="dark"] .home-contatos h3 { color: #FFFFFF; }
body[data-theme="dark"] :is(.hc-celular, .hc-celular::before) { border-color: #404040; }
body[data-theme="dark"] .hc-celular::before, body[data-theme="dark"] .hc-barra { background: #404040; }
body[data-theme="dark"] .hc-vazio { background: #2A2A2A; color: #52525B; }
body[data-theme="dark"] .hc-chegando { box-shadow: 0 0 0 3px #1F1F1F; }

/* ==========================================================================
   Celular, Meus convidados: Remover no vermelho do coração de favoritar
   (Fornecedores); Editar e Remover somem por completo com a linha fechada
   (nenhum risco fica aparecendo embaixo).
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-rsvp .guests-table .guest-acao-remover:not(#love-h-a):not(#love-h-b) { background: #c7305b !important; }
  html body #tab-rsvp .guests-table .guest-acoes:not(.is-visivel):not(#love-h-a):not(#love-h-b) { visibility: hidden; }
}

/* ==========================================================================
   Celular: Remover do arrastar em Mensagens também no vermelho do coração.
   Ajuda "Abrir os contatos do iPhone" (folha de baixo) quando o navegador
   não deixa abrir a agenda.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-b2b #b2b-chat-contacts-list .conv-linha .conv-acao-remover:not(#love-h-a):not(#love-h-b) { background: #c7305b !important; }
}
.ajuda-contatos { position: fixed; inset: 0; z-index: 130; font-family: Inter, sans-serif; }
.ajuda-contatos-fundo { position: absolute; inset: 0; background: rgba(24, 29, 36, 0.32); }
.ajuda-contatos-folha {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 24px 20px calc(16px + env(safe-area-inset-bottom));
  background: #FFFFFF; border-radius: 10px 10px 0 0; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); color: #18181B;
}
.ajuda-contatos-folha h3 { margin: 0 0 8px; font-size: 18px; font-weight: 600; letter-spacing: -0.025em; }
.ajuda-contatos-folha p { margin: 0 0 12px; font-size: 15px; line-height: 1.45; color: #52525B; }
.ajuda-contatos-folha ol { margin: 0 0 20px; padding-left: 20px; font-size: 15px; line-height: 1.5; color: #18181B; }
.ajuda-contatos-folha li + li { margin-top: 6px; }
.ajuda-contatos-folha strong { font-weight: 600; }
.ajuda-contatos-ok {
  width: 100%; height: 48px; border: 0; border-radius: 8px; background: #183b54; box-shadow: none;
  font-family: inherit; font-size: 16px; font-weight: 600; color: #FFFFFF; cursor: pointer;
}
.ajuda-contatos-arquivo {
  display: block; width: 100%; margin-top: 8px; padding: 12px 0; border: 0; background: transparent; box-shadow: none;
  font-family: inherit; font-size: 14px; font-weight: 500; color: #52525B; cursor: pointer;
}
body[data-theme="dark"] .ajuda-contatos-folha { background: #1F1F1F; color: #FFFFFF; }
body[data-theme="dark"] .ajuda-contatos-folha :is(p, .ajuda-contatos-arquivo) { color: #A1A1AA; }
body[data-theme="dark"] .ajuda-contatos-folha ol { color: #FFFFFF; }

/* Ajuda dos contatos do iPhone: passo a passo com o desenho de cada tela dos Ajustes. */
.ajuda-contatos-folha { max-height: 92vh; overflow-y: auto; }
.ajuda-passos {
  display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin: 4px -20px 0; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.ajuda-passos::-webkit-scrollbar { display: none; }
.ajuda-passo { flex: 0 0 100%; box-sizing: border-box; padding: 0 20px; scroll-snap-align: start; }
.ajuda-passo-num { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 600; color: #183b54; letter-spacing: 0.02em; }
.ajuda-contatos-folha .ajuda-passo-texto { min-height: 66px; margin: 0 0 12px; font-size: 15px; line-height: 1.45; color: #18181B; }
.ajuda-pontos { display: flex; justify-content: center; gap: 6px; margin: 14px 0 16px; }
.ajuda-pontos span { width: 6px; height: 6px; border-radius: 3px; background: #D4D4D8; transition: width .2s ease, background-color .2s ease; }
.ajuda-pontos span.is-atual { width: 16px; background: #183b54; }

.ios-tela { padding: 10px 10px 12px; background: #F2F2F7; border-radius: 10px; font-family: -apple-system, BlinkMacSystemFont, Inter, sans-serif; }
.ios-topo { position: relative; display: flex; align-items: center; justify-content: center; height: 22px; margin-bottom: 8px; }
.ios-voltar { position: absolute; left: 0; font-size: 13px; color: #0A84FF; }
.ios-titulo { max-width: 58%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; font-weight: 600; color: #000000; }
.ios-dica { display: block; margin: -2px 0 6px; text-align: center; font-size: 11px; font-weight: 600; color: #183b54; }
.ios-grupo { background: #FFFFFF; border-radius: 10px; }
.ios-linha { display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 10px; border-bottom: 1px solid #E5E5EA; font-size: 13px; color: #000000; }
.ios-linha:last-child { border-bottom: 0; }
.ios-linha.is-destaque { position: relative; z-index: 1; border-bottom-color: transparent; border-radius: 8px; background: #EBF4FF; box-shadow: inset 0 0 0 2px #183b54; font-weight: 600; }
.ios-icone { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; flex-shrink: 0; border-radius: 6px; color: #FFFFFF; }
.ios-icone svg { width: 14px; height: 14px; }
.ios-texto { flex: 1 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ios-barra { flex: 0 1 55%; height: 8px; margin-right: auto; border-radius: 4px; background: #E5E5EA; }
.ios-seta { margin-left: auto; font-size: 18px; line-height: 1; color: #C7C7CC; }
.ios-chave { position: relative; width: 34px; height: 20px; flex-shrink: 0; margin-left: auto; border-radius: 10px; background: #E9E9EA; }
.ios-chave::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #FFFFFF; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); }
.ios-chave.is-ligada { background: #34C759; }
.ios-chave.is-ligada::after { left: 16px; }
body[data-theme="dark"] .ajuda-contatos-folha .ajuda-passo-texto { color: #FFFFFF; }
body[data-theme="dark"] .ajuda-passo-num, body[data-theme="dark"] .ios-dica { color: #A9C1DD; }
body[data-theme="dark"] .ajuda-pontos span.is-atual { background: #EBF4FF; }

/* ==========================================================================
   Celular, Home: caixa Convidados e Confirmados no formato "número em cima,
   nome embaixo" (sem Lista geral / Presenças RSVP), centralizado, e o
   "Ver lista" vira um botão cheio na cor primária logo abaixo.
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid { padding: 18px 16px 16px !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid > div {
    display: flex !important; flex-direction: column-reverse; align-items: center; justify-content: flex-end; gap: 2px; padding-left: 12px !important; padding-right: 12px !important; text-align: center;
  }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid > div > * { margin: 0 !important; padding: 0 !important; justify-content: center; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid p { display: none !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid h4 { font-size: 13px !important; font-weight: 500 !important; color: #52525B !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) #kpi-invites-sent,
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) #kpi-rsvp-confirmed { font-size: 26px !important; line-height: 1.15 !important; color: #183b54 !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid + div {
    margin: 0 16px 16px; height: 44px; padding: 0 16px !important; justify-content: center !important;
    background: #183b54 !important; border: 0 !important; border-radius: 8px; color: #fff !important;
  }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid + div span { color: #fff !important; font-size: 14px; font-weight: 600 !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid + div svg { display: none !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid + div:active { background: #122c3f !important; }
  body[data-theme="dark"] #tab-overview .home-kpis > div:has(#kpi-invites-sent) > .grid h4 { color: #A1A1AA !important; }
  body[data-theme="dark"] #tab-overview .home-kpis > div:has(#kpi-invites-sent) #kpi-invites-sent,
  body[data-theme="dark"] #tab-overview .home-kpis > div:has(#kpi-invites-sent) #kpi-rsvp-confirmed { color: #fff !important; }
}

/* ==========================================================================
   Celular, Home: títulos de seção "Presentes" e "Lista de convidados" (como
   em Benefícios) antes de cada caixa, e a caixa Presentes no mesmo formato
   da de Convidados: duas colunas (Saldo arrecadado | Presentes recebidos),
   número em cima e nome embaixo, e o botão primário embaixo.
   ========================================================================== */
.home-kpi-titulo, .home-presentes-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-overview .home-kpis > .home-kpi-titulo:not(#love-h-a):not(#love-h-b) { display: flex !important; order: 5; margin: 8px 0 -4px !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) > div:first-child { display: none !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) .home-presentes-celular {
    display: grid; grid-template-columns: 1fr 1fr; padding: 18px 0 16px;
  }
  html body #tab-overview .home-presentes-celular > div { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 0 12px; text-align: center; min-width: 0; }
  html body #tab-overview .home-presentes-celular > div + div { border-left: 1px solid #F4F4F5; }
  html body #tab-overview .home-presentes-valor { font-family: Inter, sans-serif; font-size: 22px; line-height: 30px; font-weight: 700; letter-spacing: -0.025em; color: #183b54; font-variant-numeric: tabular-nums; white-space: nowrap; }
  html body #tab-overview .home-presentes-nome { font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; color: #52525B; }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) > div[onclick] {
    margin: 0 16px 16px; height: 44px; padding: 0 16px !important; justify-content: center !important;
    background: #183b54 !important; border: 0 !important; border-radius: 8px; color: #fff !important;
  }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) > div[onclick] span { color: #fff !important; font-size: 14px; font-weight: 600 !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) > div[onclick] svg { display: none !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) > div[onclick]:active { background: #122c3f !important; }
  body[data-theme="dark"] #tab-overview .home-presentes-valor { color: #fff; }
  body[data-theme="dark"] #tab-overview .home-presentes-nome { color: #A1A1AA; }
  body[data-theme="dark"] #tab-overview .home-presentes-celular > div + div { border-left-color: #333333; }
}

/* ==========================================================================
   Celular, Mapa do evento: aviso verde no topo ao pôr alguém na mesa
   ("Gregory H. foi adicionado à Mesa 1"), por cima da gaveta da mesa.
   ========================================================================== */
.mesa-celular-aviso { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .mesa-celular-aviso {
    display: flex; align-items: center; gap: 10px; position: fixed; z-index: 90;
    left: 16px; right: 16px; top: calc(env(safe-area-inset-top, 0px) + 12px); max-width: 480px; margin: 0 auto;
    padding: 12px 14px; border-radius: 8px; background: #1E7A55; color: #FFFFFF;
    font-family: Inter, sans-serif; font-size: 14px; font-weight: 600; line-height: 1.3;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    opacity: 0; transform: translateY(-12px); pointer-events: none; transition: opacity .2s ease, transform .2s ease;
  }
  .mesa-celular-aviso.is-visivel { opacity: 1; transform: translateY(0); }
  .mesa-celular-aviso svg { width: 20px; height: 20px; flex-shrink: 0; }
  .mesa-celular-aviso span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* ==========================================================================
   Desktop, Home inspirada no celular (pedido de 2026-10-29). Para voltar ao
   desktop anterior basta apagar este bloco. Só desktop; o celular não muda.
   - Topo: foto do convite larga com a caixa "Olá, nome!" + dias que faltam
     por cima, e os 6 atalhos redondos com o nome embaixo.
   - Coluna da esquerda: títulos de seção (Presentes / Lista de convidados)
     e as duas caixas no formato número em cima, nome embaixo e botão
     primário; depois Benefícios em bolinhas.
   - Coluna da direita: link do convite e Guia de primeiros passos.
   - Saem: saudação com pílulas, carrossel, Benefícios & Serviços (marcas)
     e Mais Recursos.
   ========================================================================== */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body #tab-overview :is(.home-saudacao, #dashboard-promo-carousel, .home-beneficios, .home-mais-recursos):not(#love-h-a):not(#love-h-b) { display: none !important; }

  /* ---- Topo: foto + caixa do Olá ---- */
  html body #tab-overview .home-capa-celular:not(#love-h-a) { display: block; position: relative; margin: 0 0 28px; }
  html body #tab-overview .home-capa-celular-foto:not(#love-h-a) {
    height: 260px; border-radius: 10px; background: #E8EEF4 center / cover no-repeat; position: relative; overflow: hidden;
  }
  html body #tab-overview .home-capa-celular-foto:not(#love-h-a)::after {
    content: ""; position: absolute; inset: auto 0 0 0; height: 50%; background: linear-gradient(0deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0) 100%);
  }
  html body #tab-overview .home-capa-celular-caixa:not(#love-h-a) {
    position: relative; margin: -80px 32px 0; padding: 24px 28px;
    display: grid; grid-template-columns: minmax(220px, auto) 1fr; align-items: center; gap: 12px 32px;
    background: #FFFFFF; border: 1px solid #E4E4E7; border-radius: 10px; text-align: left;
  }
  html body #tab-overview .home-capa-celular-ola:not(#love-h-a) { grid-column: 1; align-self: end; margin: 0; font-family: Inter, sans-serif; font-size: 26px; font-weight: 600; letter-spacing: -0.025em; line-height: 1.2; color: #18181B; }
  html body #tab-overview .home-capa-celular-dias:not(#love-h-a) { grid-column: 1; align-self: start; margin: -6px 0 0; font-family: Inter, sans-serif; font-size: 15px; color: #52525B; font-variant-numeric: tabular-nums; }
  html body #tab-overview .home-capa-celular-atalhos:not(#love-h-a) {
    grid-column: 2; grid-row: 1 / span 2; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px;
    padding-left: 32px; border-left: 1px solid rgba(0, 0, 0, 0.06);
  }

  /* ---- Atalhos redondos (topo e Benefícios) ---- */
  html body #tab-overview .home-atalho:not(#love-h-a) { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 0; background: transparent; border: 0; cursor: pointer; font-family: Inter, sans-serif; min-width: 0; }
  html body #tab-overview .home-atalho-bola:not(#love-h-a) {
    width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; border-radius: 50%;
    background: #EAF0F5; color: #183b54; box-shadow: inset 0 0 0 1px transparent; transition: box-shadow .15s ease, color .15s ease;
  }
  html body #tab-overview .home-atalho-bola svg:not(#love-h-a) { width: 24px; height: 24px; }
  html body #tab-overview .home-atalho-nome:not(#love-h-a) { font-size: 13px; font-weight: 500; line-height: 1.3; color: #3F3F46; text-align: center; transition: color .15s ease; }
  html body #tab-overview .home-atalho:not(#love-h-a):hover .home-atalho-bola { box-shadow: inset 0 0 0 1px #183b54; }
  html body #tab-overview .home-atalho:not(#love-h-a):hover .home-atalho-nome { color: #181D24; }
  html body #tab-overview .is-beneficios .home-atalho-bola:not(#love-h-a) { width: 64px; height: 64px; background: #537bae; color: #FFFFFF; }
  html body #tab-overview .is-beneficios .home-atalho-bola svg:not(#love-h-a) { width: 28px; height: 28px; }
  html body #tab-overview .is-beneficios .home-atalho:not(#love-h-a):hover .home-atalho-bola { box-shadow: inset 0 0 0 2px #183b54; }

  /* ---- Títulos de seção com a linha ao lado (como Benefícios no celular) ---- */
  html body #tab-overview .home-atalhos-titulo:not(#love-h-a) { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; }
  html body #tab-overview .home-atalhos-titulo h3:not(#love-h-a) { margin: 0; font-family: Inter, sans-serif; font-size: 18px; font-weight: 600; letter-spacing: -0.025em; color: #18181B; white-space: nowrap; }
  html body #tab-overview .home-atalhos-titulo span:not(#love-h-a) { flex: 1 1 auto; height: 1px; background: #E4E4E7; }

  /* ---- Presentes | Lista de convidados: título em cima de cada caixa ---- */
  html body #tab-overview .home-kpis:not(#love-h-a) { display: grid !important; grid-template-columns: 1fr 1fr; grid-template-rows: auto 1fr; grid-auto-flow: column; gap: 0 20px !important; margin-top: 0 !important; }
  html body #tab-overview .home-kpis > .home-kpi-titulo:not(#love-h-a):not(#love-h-b) { display: flex !important; }
  html body #tab-overview .home-kpis > div:is(:has(#kpi-total-arrecadado), :has(#kpi-invites-sent)):not(#love-h-a) { border-radius: 10px !important; box-shadow: none !important; }
  /* Presentes: duas colunas (Saldo arrecadado | Presentes recebidos) */
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) > div:first-child { display: none !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) .home-presentes-celular { display: grid; grid-template-columns: 1fr 1fr; padding: 24px 0 20px; }
  html body #tab-overview .home-presentes-celular > div:not(#love-h-a) { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 0 12px; text-align: center; min-width: 0; }
  html body #tab-overview .home-presentes-celular > div + div:not(#love-h-a) { border-left: 1px solid #F4F4F5; }
  html body #tab-overview .home-presentes-valor:not(#love-h-a) { font-family: Inter, sans-serif; font-size: 28px; line-height: 1.15; font-weight: 700; letter-spacing: -0.025em; color: #183b54; font-variant-numeric: tabular-nums; white-space: nowrap; }
  html body #tab-overview .home-presentes-nome:not(#love-h-a) { font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; color: #52525B; }
  /* Convidados: número em cima, nome embaixo, sem Lista geral / Presenças RSVP */
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid { padding: 24px 0 20px !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid > div {
    display: flex !important; flex-direction: column-reverse; align-items: center; justify-content: flex-end; gap: 4px; padding: 0 12px !important; text-align: center;
  }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid > div > * { margin: 0 !important; padding: 0 !important; justify-content: center; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid p { display: none !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid h4 { font-size: 13px !important; font-weight: 500 !important; color: #52525B !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) :is(#kpi-invites-sent, #kpi-rsvp-confirmed) { font-size: 28px !important; line-height: 1.15 !important; color: #183b54 !important; font-variant-numeric: tabular-nums; }
  /* Botão primário embaixo das duas caixas (Sacar disponível / Ver lista) */
  html body #tab-overview .home-kpis > div:is(:has(#kpi-total-arrecadado), :has(#kpi-invites-sent)):not(#love-h-a) > div[onclick] {
    margin: 0 20px 20px; height: 42px; padding: 0 16px !important; justify-content: center !important;
    background: #183b54 !important; border: 0 !important; border-radius: 8px; color: #FFFFFF !important; transition: background-color .15s ease;
  }
  html body #tab-overview .home-kpis > div:is(:has(#kpi-total-arrecadado), :has(#kpi-invites-sent)):not(#love-h-a) > div[onclick]:hover { background: #122c3f !important; }
  html body #tab-overview .home-kpis > div:is(:has(#kpi-total-arrecadado), :has(#kpi-invites-sent)):not(#love-h-a) > div[onclick] span { color: #FFFFFF !important; font-size: 14px; font-weight: 600 !important; }
  html body #tab-overview .home-kpis > div:is(:has(#kpi-total-arrecadado), :has(#kpi-invites-sent)):not(#love-h-a) > div[onclick] svg { display: none !important; }

  /* ---- Benefícios em bolinhas ---- */
  html body #tab-overview #home-atalhos-celular:not(#love-h-a) { display: flex; flex-direction: column; gap: 28px; margin-top: 8px; font-family: Inter, sans-serif; }
  html body #tab-overview #home-atalhos-celular .home-atalhos-grade:not(#love-h-a) { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }

  /* ---- Coluna da direita: começa na altura das caixas (abaixo dos títulos) ---- */
  html body #tab-overview > .grid > .lg\:col-span-4:not(#love-h-a) { padding-top: 0; }
  html body #tab-overview #home-link-convite:not(#love-h-a):not(#love-h-b) { margin-top: 0 !important; }

  /* ---- Escuro ---- */
  body[data-theme="dark"] #tab-overview .home-capa-celular-caixa { background: #1F1F1F !important; border-color: #404040 !important; }
  body[data-theme="dark"] #tab-overview .home-capa-celular-ola, body[data-theme="dark"] #tab-overview .home-atalhos-titulo h3 { color: #FFFFFF !important; }
  body[data-theme="dark"] #tab-overview .home-capa-celular-dias, body[data-theme="dark"] #tab-overview .home-atalho-nome { color: #D4D4D8 !important; }
  body[data-theme="dark"] #tab-overview .home-capa-celular-atalhos { border-left-color: #333333 !important; }
  body[data-theme="dark"] #tab-overview .home-capa-celular-atalhos .home-atalho-bola { background: #252525 !important; color: #EBF4FF !important; }
  body[data-theme="dark"] #tab-overview .home-atalhos-titulo span { background: #333333 !important; }
  body[data-theme="dark"] #tab-overview .home-presentes-valor, body[data-theme="dark"] #tab-overview :is(#kpi-invites-sent, #kpi-rsvp-confirmed) { color: #FFFFFF !important; }
  body[data-theme="dark"] #tab-overview .home-presentes-nome { color: #A1A1AA !important; }
  body[data-theme="dark"] #tab-overview .home-presentes-celular > div + div { border-left-color: #333333 !important; }
}
/* Desktop estreito (até 1279px): Presentes e Lista de convidados uma embaixo da outra, para o valor caber. */
@media (min-width: 769px) and (max-width: 1279px) and (hover: hover), (min-width: 769px) and (max-width: 1279px) and (pointer: fine) {
  html body #tab-overview .home-kpis:not(#love-h-a):not(#love-h-b) { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-flow: row; }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a) { margin-bottom: 28px; }
}

/* ==========================================================================
   Celular, Home: Benefícios vem antes da Lista de convidados; o cartão
   "Monte sua lista..." (Continuar) fica logo depois da caixa de convidados,
   que perde o botão "Ver lista" (ele aparece no menu do Continuar).
   ========================================================================== */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-overview #home-atalhos-celular:not(#love-h-a):not(#love-h-b) { display: contents !important; }
  html body #tab-overview #home-atalhos-celular > :is(.home-aviso-mensagens, .is-beneficios):not(#love-h-a) { order: 6; }
  html body #tab-overview .home-kpis > :is(.home-kpi-titulo:has(+ div #kpi-invites-sent), div:has(#kpi-invites-sent)):not(#love-h-a):not(#love-h-b) { order: 7; }
  html body #tab-overview #home-atalhos-celular > .home-contatos:not(#love-h-a) { order: 8; }
  html body #tab-overview #home-atalhos-celular > .is-beneficios:not(#love-h-a) { margin-top: 8px !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid + div { display: none !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a) > .grid { padding-bottom: 18px !important; }
}

/* ==========================================================================
   Desktop, Home (segue o celular): uma coluna só na esquerda, na ordem
   Presentes → Benefícios → Lista de convidados (sem "Ver lista") → "Monte
   sua lista de convidados a partir dos seus contatos". Link do convite logo
   abaixo da caixa do Olá. Sem "Faltam X dias" no cabeçalho (já está no Olá).
   ========================================================================== */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body #dash-event-countdown-badge:not(#love-h-a):not(#love-h-b) { display: none !important; }

  html body #tab-overview > .grid > .lg\:col-span-8:not(#love-h-a) { display: flex; flex-direction: column; }
  html body #tab-overview > .grid > .lg\:col-span-8 > *:not(#love-h-a) { margin-top: 0 !important; }
  html body #tab-overview .home-kpis:not(#love-h-a):not(#love-h-b):not(#love-h-c),
  html body #tab-overview #home-atalhos-celular:not(#love-h-a):not(#love-h-b):not(#love-h-c) { display: contents !important; }
  html body #tab-overview .home-kpis > .home-kpi-titulo:first-child:not(#love-h-a):not(#love-h-b) { order: 1; }
  html body #tab-overview .home-kpis > div:has(#kpi-total-arrecadado):not(#love-h-a):not(#love-h-b):not(#love-h-c) { order: 2; margin: 0 0 32px !important; }
  html body #tab-overview #home-atalhos-celular > .is-beneficios:not(#love-h-a):not(#love-h-b) { order: 3; margin: 0 0 32px !important; }
  html body #tab-overview .home-kpis > .home-kpi-titulo:not(:first-child):not(#love-h-a):not(#love-h-b) { order: 4; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a):not(#love-h-b):not(#love-h-c) { order: 5; margin: 0 0 20px !important; }
  html body #tab-overview #home-atalhos-celular > .home-contatos:not(#love-h-a):not(#love-h-b) { order: 6; }

  /* Lista de convidados sem o botão "Ver lista" (fica no menu do Continuar) */
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a):not(#love-h-b) > div[onclick] { display: none !important; }
  html body #tab-overview .home-kpis > div:has(#kpi-invites-sent):not(#love-h-a):not(#love-h-b) > .grid { padding-bottom: 24px !important; }

  /* Cartão dos contatos na horizontal: desenho à esquerda, texto e botão à direita */
  html body #tab-overview .home-contatos:not(#love-h-a) {
    display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; align-items: center; column-gap: 40px;
    padding: 28px 40px; text-align: left;
  }
  html body #tab-overview .home-contatos-ilustra:not(#love-h-a) { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
  html body #tab-overview .home-contatos h3:not(#love-h-a) { grid-column: 2; align-self: end; max-width: 360px; margin: 0 0 20px; font-size: 20px; }
  html body #tab-overview .home-contatos-continuar:not(#love-h-a) { grid-column: 2; align-self: start; justify-self: start; width: auto; min-width: 160px; height: 44px; padding: 0 24px; font-size: 15px; transition: background-color .15s ease; }
  html body #tab-overview .home-contatos-continuar:not(#love-h-a):hover { background: #122c3f; }
}

/* Computador: janela "Importar seus contatos" (centralizada, não folha de baixo) */
.ajuda-contatos.is-computador .ajuda-contatos-folha {
  left: 50%; right: auto; top: 50%; bottom: auto; width: min(520px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow-y: auto;
  transform: translate(-50%, -50%); padding: 28px; border-radius: 10px;
}
.ajuda-contatos.is-computador .ajuda-contatos-folha p { font-size: 14px; margin-bottom: 16px; }
.ajuda-origens { display: flex; flex-direction: column; margin: 0 0 24px; border: 1px solid #E4E4E7; border-radius: 10px; }
.ajuda-origem { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; }
.ajuda-origem + .ajuda-origem { border-top: 1px solid #F4F4F5; }
.ajuda-origem strong { font-size: 14px; font-weight: 600; color: #18181B; }
.ajuda-origem span { font-size: 13px; line-height: 1.5; color: #52525B; }
.ajuda-origem b { font-weight: 600; color: #18181B; }
.ajuda-origem a { color: #183b54; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.ajuda-contatos-acoes { display: flex; align-items: center; justify-content: flex-end; gap: 20px; }
.ajuda-contatos.is-computador .ajuda-contatos-ok { width: auto; height: 40px; padding: 0 20px; font-size: 14px; transition: background-color .15s ease; }
.ajuda-contatos.is-computador .ajuda-contatos-ok:hover { background: #122c3f; }
.ajuda-contatos-cancelar { padding: 0; border: 0; background: transparent; box-shadow: none; font-family: inherit; font-size: 14px; font-weight: 500; color: #52525B; cursor: pointer; }
.ajuda-contatos-cancelar:hover { color: #181D24; }
body[data-theme="dark"] .ajuda-origens { border-color: #404040; }
body[data-theme="dark"] .ajuda-origem + .ajuda-origem { border-top-color: #333333; }
body[data-theme="dark"] .ajuda-origem :is(strong, b) { color: #FFFFFF; }
body[data-theme="dark"] .ajuda-origem span, body[data-theme="dark"] .ajuda-contatos-cancelar { color: #A1A1AA; }
body[data-theme="dark"] .ajuda-origem a { color: #EBF4FF; }

/* ==========================================================================
   Desktop, Home: aviso "N fornecedores te mandaram mensagem!" na coluna da
   direita, acima do Guia de primeiros passos (só quando há mensagem nova).
   ========================================================================== */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body #tab-overview .home-aviso-mensagens:not([hidden]):not(#love-h-a):not(#love-h-b) {
    display: flex !important; align-items: center; gap: 14px; width: 100%; padding: 16px 18px; box-sizing: border-box;
    background: #F7F8FA; border: 1px solid #E4E4E7; border-radius: 10px; box-shadow: none; text-align: left; cursor: pointer;
    font-family: Inter, sans-serif; transition: border-color .15s ease;
  }
  html body #tab-overview .home-aviso-mensagens:not([hidden]):not(#love-h-a):hover { border-color: #181D24; }
  html body #tab-overview .home-aviso-mensagens .home-aviso-mensagens-mao:not(#love-h-a) { flex: 0 0 auto; width: 32px; height: 32px; color: #183b54; transform: rotate(-12deg); }
  html body #tab-overview .home-aviso-mensagens .home-aviso-mensagens-texto:not(#love-h-a) { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
  html body #tab-overview .home-aviso-mensagens .home-aviso-mensagens-titulo:not(#love-h-a) { font-size: 15px; font-weight: 500; line-height: 1.3; color: #18181B; }
  html body #tab-overview .home-aviso-mensagens .home-aviso-mensagens-link:not(#love-h-a) { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: #183b54; }
  html body #tab-overview .home-aviso-mensagens .home-aviso-mensagens-link svg:not(#love-h-a) { width: 16px; height: 16px; }
  html body #tab-overview .home-aviso-mensagens .home-aviso-mensagens-ponto:not(#love-h-a) { flex: 0 0 auto; align-self: flex-start; width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; background: #c7305b; }
  body[data-theme="dark"] #tab-overview .home-aviso-mensagens { background: #1F1F1F !important; border-color: #404040 !important; }
  body[data-theme="dark"] #tab-overview .home-aviso-mensagens .home-aviso-mensagens-titulo { color: #FFFFFF !important; }
  body[data-theme="dark"] #tab-overview .home-aviso-mensagens :is(.home-aviso-mensagens-mao, .home-aviso-mensagens-link) { color: #EBF4FF !important; }
}

/* Celular: aba ativa da barra de baixo em azul clarinho, a mesma cor do
   ícone do logo no topo do celular (icon-white1.png, #EBF4FF). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body:not([data-theme="dark"]) .sidebar-icon-rail .rail-icon-btn.active:not(#love-h-a):not(#love-h-b):not(#love-h-c),
  html body:not([data-theme="dark"]) .sidebar-icon-rail .rail-icon-btn.mobile-center-edit.active:not(#love-h-a):not(#love-h-b):not(#love-h-c) {
    background: #EBF4FF !important; color: #183b54 !important; box-shadow: none !important;
  }
}

/* Desktop, Home: foto de capa mais perto do cabeçalho (24px de respiro). */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body .dashboard-main-area:has(#tab-overview.active):not(#love-h-a):not(#love-h-b) { padding-top: 94px !important; }
  html body #tab-overview.active:not(#love-h-a):not(#love-h-b) { margin-top: 0 !important; }
}

/* Celular, Mensagens: com a linha fechada, Abrir/Remover ficam escondidos
   (não sobra risco escuro/rosa embaixo das conversas depois do arraste). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #b2b-chat-contacts-list .conv-linha:not(.acoes-visiveis) > .conv-acoes:not(#love-h-a):not(#love-h-b) { visibility: hidden; }
}

/* Celular, Mapa do evento: situação do RSVP embaixo do nome de cada pessoa
   na lista da mesa (Confirmado / Pendente / Recusado). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .mesa-celular-nome .mesa-celular-situacao {
    align-self: flex-start; display: inline-flex; align-items: center; height: 22px; margin-top: 4px; padding: 0 8px;
    border-radius: 6px; font-style: normal; font-size: 12px; font-weight: 500; line-height: 1;
    background: #F4F4F5; color: #52525B;
  }
  .mesa-celular-situacao.is-confirmed { background: #E7F6EE; color: #0E7A50; }
  .mesa-celular-situacao.is-declined { background: #FBEFF3; color: #A33A5E; }
  body[data-theme="dark"] .mesa-celular-situacao { background: #2A2A2A; color: #D4D4D8; }
  body[data-theme="dark"] .mesa-celular-situacao.is-confirmed { background: rgba(47, 203, 126, 0.16); color: #5FE0A0; }
  body[data-theme="dark"] .mesa-celular-situacao.is-declined { background: rgba(199, 48, 91, 0.18); color: #F08AA8; }
}

/* Celular, arrastar a linha: Editar (Convidados) e Abrir (Mensagens) no azul
   da barra lateral do desktop (#183b54) em vez do cinza. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body :is(#tab-rsvp .guests-table .guest-acao-editar, #b2b-chat-contacts-list .conv-acao-abrir):not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: #183b54 !important; color: #FFFFFF !important; }
}

/* Celular, mesa bistrô: "lugares ocupados" centralizado dentro do círculo. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  .mesa-celular-tampo span { text-align: center; line-height: 1.2; }
  .mesa-celular-tampo.formato-bistro { box-sizing: border-box; padding: 0 12px; }
  .mesa-celular-tampo.formato-bistro strong { font-size: 18px; }
  .mesa-celular-tampo.formato-bistro span { max-width: 64px; font-size: 10px; }
}

/* Mapa do evento: a cor da restrição alimentar fica só dentro do assento
   (o desenho), sem pintar o quadrado de fundo maior em volta. */
html body .floorplan-seat-dot.tem-restricao:not(#love-h-a):not(#love-h-b) { background: transparent !important; border-color: transparent !important; box-shadow: none !important; }

/* Celular, Editar convidado: sem o topo com iniciais, nome e situação
   (o nome já está nos campos logo abaixo), como em Adicionar convidado. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .ficha-convidado.is-editando .ficha-cabeca:not(#love-h-a):not(#love-h-b) { display: none !important; }
}

/* Celular, barra de baixo: Início, Convidados, Presentes, Convite, Mensagens. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="overview"]:not(#love-h-a):not(#love-h-b) { order: 1 !important; }
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="rsvp"]:not(#love-h-a):not(#love-h-b) { order: 2 !important; }
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="gifts"]:not(#love-h-a):not(#love-h-b) { order: 3 !important; }
  html body .sidebar-icon-rail .rail-icon-btn[data-rail-tab="edit-site"]:not(#love-h-a):not(#love-h-b) { order: 4 !important; }
  html body .sidebar-icon-rail .rail-chat-btn:not(#love-h-a):not(#love-h-b) { order: 5 !important; }
}

/* Desktop, barra lateral: item ativo em azul clarinho, a mesma cor do ícone
   do logo no topo da barra (icon-white1.png, #EBF4FF), ícone na primária. */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body:not([data-theme="dark"]) .sidebar-icon-rail .rail-icon-btn.active:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background-color: #EBF4FF !important; color: #183b54 !important; }
  html body:not([data-theme="dark"]) .sidebar-icon-rail .rail-icon-btn.active:not(#love-h-a):not(#love-h-b):not(#love-h-c) :is(svg, svg *) { color: #183b54 !important; stroke: #183b54 !important; }
}

/* Celular, Recados recebidos vazio: ícone e texto no meio da caixa, usando
   todo o espaço até a barra de baixo (como em Meus presentes vazio). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #recados-raiz .recados-tabela:has(.recados-vazio):not(#love-h-a):not(#love-h-b) { display: flex !important; flex-direction: column; }
  html body #recados-raiz .recados-tabela:has(.recados-vazio) > thead:not(#love-h-a):not(#love-h-b) { display: none !important; }
  html body #recados-raiz .recados-tabela:has(.recados-vazio) > tbody:not(#love-h-a):not(#love-h-b) { flex: 1 1 auto; display: flex !important; align-items: center; justify-content: center; }
  html body #recados-raiz .recados-tabela:has(.recados-vazio) tr:not(#love-h-a):not(#love-h-b) { display: block; width: 100%; border: 0 !important; background: transparent !important; }
  html body #recados-raiz td.recados-vazio:not(#love-h-a):not(#love-h-b) { display: block; width: 100%; max-width: 300px; margin: 0 auto; padding: 24px 16px !important; box-sizing: border-box; font-size: 14px; }
}

/* Recados vazios: animação Lottie da cartinha no lugar do ícone (desktop e celular). */
html body #recados-raiz .recados-vazio-lottie:not(#love-h-a):not(#love-h-b) { display: block; width: 96px; height: 96px; margin: 0 auto 12px; }

/* Celular, Recados recebidos vazio: a caixa branca ocupa todo o espaço,
   igual a Meus presentes vazio (fundo branco, borda fina, cantos de 10px);
   o texto fica sem fundo próprio no meio dela. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #recados-raiz .recados-tabela:has(.recados-vazio):not(#love-h-a):not(#love-h-b):not(#love-h-c) {
    background: #FFFFFF !important; border: 1px solid rgba(0, 0, 0, 0.06) !important; border-radius: 10px !important;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.03) !important; overflow: hidden; min-height: 420px;
  }
  html body #recados-raiz .recados-tabela:has(.recados-vazio) :is(tbody, tr, td):not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: transparent !important; box-shadow: none !important; }
  body[data-theme="dark"] #recados-raiz .recados-tabela:has(.recados-vazio) { background: #252525 !important; border-color: #404040 !important; }
}

/* Celular, Recados recebidos: "N recados" acima da busca, alinhado com ela
   (como "N itens" em Meus presentes). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #recados-raiz .recados-total-celular:not(#love-h-a):not(#love-h-b) { padding: 0 16px 12px; }
}

/* Celular: o título no topo de cada tela fica sempre na mesma altura, com ou
   sem botão à direita (a linha do título tem a altura do botão, 44px). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard div:has(> :is(#gifts-header-title, #b2b-toolbar-title, #rsvp-header-title, #wallet-header-title)):not(#love-h-a):not(#love-h-b) { min-height: 44px; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard .floorplan-toolbar-esq:not(#love-h-a):not(#love-h-b) { min-height: 44px; }
  html body #view-event-os-dashboard .floorplan-toolbar-esq > .floorplan-page-name:not(#love-h-a):not(#love-h-b) { line-height: 26px; }
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Convite digital: o botão do título tinha 1px de borda e empurrava o texto. */
  html body #view-event-os-dashboard #builder-page-select-btn:not(#love-h-a):not(#love-h-b) { border-left-width: 0 !important; border-right-width: 0 !important; }
}

/* Celular, Convite digital: avisos ("Alterações salvas", "Convite publicado")
   no topo da tela, fora da barra de baixo. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #builder-toast.toast:not(#love-h-a) {
    left: 16px; right: 16px; bottom: auto; top: calc(env(safe-area-inset-top, 0px) + 12px); max-width: 480px; margin: 0 auto;
    padding: 12px 14px; border-radius: 8px; background: #181D24; font-family: Inter, sans-serif; font-size: 14px; font-weight: 600; line-height: 1.3;
    transform: translateY(-12px); z-index: 300;
  }
  html body #builder-toast.toast.show:not(#love-h-a) { transform: translateY(0); }
}

/* Meus convidados vazio: animação (SVG animado) no lugar do ícone, como em Recados. */
html body #rsvp-empty-state .rsvp-vazio-animado:not(#love-h-a):not(#love-h-b) { width: 96px; height: 96px; margin: 0 auto 12px; }

/* Meus presentes vazio: "Adicionar lista pronta" com a animação Lottie no
   lugar do ícone, sem a bolinha em volta. */
html body .presentes-vazio .lista-pronta-lottie:not(#love-h-a) { display: block; width: 64px; height: 64px; margin: 0 auto 6px; }

/* Celular, Meus convidados vazio: mesma caixa branca de Recados recebidos
   vazio (fundo branco, borda fina, cantos de 10px, ocupa o espaço todo). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-rsvp .rsvp-caixa-abaixo-das-abas > .overflow-x-auto:has(> #rsvp-empty-state:not(.hidden)):not(#love-h-a):not(#love-h-b):not(#love-h-c) {
    background: #FFFFFF !important; border: 1px solid rgba(0, 0, 0, 0.06) !important; border-radius: 10px !important;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.03) !important; overflow: hidden; min-height: 420px; margin-left: 0 !important; margin-right: 0 !important;
  }
  html body #tab-rsvp .rsvp-caixa-abaixo-das-abas > .overflow-x-auto:has(> #rsvp-empty-state:not(.hidden)) > table:not(#love-h-a):not(#love-h-b):not(#love-h-c) { display: none !important; }
  html body #rsvp-empty-state:not(.hidden):not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: transparent !important; }
  body[data-theme="dark"] #tab-rsvp .rsvp-caixa-abaixo-das-abas > .overflow-x-auto:has(> #rsvp-empty-state:not(.hidden)) { background: #252525 !important; border-color: #404040 !important; }
}

/* Meus convidados vazio: o título "Adicione os seus primeiros convidados" é
   clicável (abre a ficha de Adicionar convidado). Continua com cara de título,
   na cor primária; no hover escurece e ganha sublinhado. */
html body #rsvp-empty-state .rsvp-vazio-link:not(#love-h-a):not(#love-h-b) {
  appearance: none; background: none; border: 0; padding: 0; margin: 0; font: inherit; font-weight: 600;
  color: #183b54; cursor: pointer; text-decoration: none; text-underline-offset: 3px;
}
html body #rsvp-empty-state .rsvp-vazio-link:hover:not(#love-h-a):not(#love-h-b) { color: #122c3f; text-decoration: underline; }
html body #rsvp-empty-state .rsvp-vazio-link:focus-visible:not(#love-h-a):not(#love-h-b) { outline: none; text-decoration: underline; }
body[data-theme="dark"] #rsvp-empty-state .rsvp-vazio-link { color: #FFFFFF; }

/* Celular, ficha de Adicionar/Editar convidado: cabeçalho igual ao de
   "Adicione uma lista" (Presentes) — seta de voltar no mesmo lugar e o título
   à esquerda, ao lado dela, em 20px/700. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .ficha-convidado .ficha-topo .ficha-voltar:not(#love-h-a):not(#love-h-b):not(#love-h-c) { margin-left: -6px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; }
  html body .ficha-convidado .ficha-topo .ficha-voltar svg:not(#love-h-a):not(#love-h-b):not(#love-h-c) { width: 20px; height: 20px; }
  html body .ficha-convidado .ficha-topo .ficha-titulo:not(#love-h-a):not(#love-h-b):not(#love-h-c) {
    text-align: left; font-size: 20px; font-weight: 700 !important; line-height: 26px; letter-spacing: -0.4px !important; color: #18181B;
  }
  body[data-theme="dark"] .ficha-convidado .ficha-topo .ficha-titulo { color: #FFFFFF; }
}

/* Desktop, Meus presentes: criar/editar presente abre dentro da própria caixa
   da página (sem pop-up e sem fundo escuro), ocupando a largura toda no lugar
   da lista. Ao fechar, a lista volta (js: abrirPresenteNaPagina). */
@media (min-width: 769px) and (hover: hover), (min-width: 769px) and (pointer: fine), (min-width: 769px) and (min-height: 501px) {
  html body #tab-gifts.presente-na-pagina #gifts-panel-products > :not(#drawer-add-gift):not(#love-h-a):not(#love-h-b):not(#love-h-c) { display: none !important; }
  html body #tab-gifts.presente-na-pagina :is(#gifts-top-search-bar, #btn-gifts-lista-completa, #btn-gifts-listas-voltar):not(#love-h-a):not(#love-h-b):not(#love-h-c) { display: none !important; }
  html body #drawer-add-gift.gift-drawer.na-pagina:not(#love-h-a):not(#love-h-b):not(#love-h-c) {
    position: static !important; inset: auto !important; transform: none !important; z-index: auto !important;
    width: 100% !important; max-width: none !important; height: auto !important; max-height: none !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.03) !important; border-radius: 10px !important;
    overflow: visible !important; background: #FFFFFF !important;
  }
  html body #drawer-add-gift.na-pagina > *:not(#love-h-a):not(#love-h-b) { max-height: none !important; overflow: visible !important; }
  body[data-theme="dark"] #drawer-add-gift.gift-drawer.na-pagina { background: #252525 !important; border-color: #404040 !important; }
}
/* Adicione uma lista: o card "Adicionar presente" usa o mesmo presentinho
   animado de Meus presentes vazio (64px). */
html body #gifts-listas-prontas .lista-pronta-lottie:not(#love-h-a) { display: block; width: 64px; height: 64px; margin: 0 auto 6px; }

/* Celular, fichas de Adicionar/Editar convidado e Criar/Editar presente:
   cabeçalho branco; corpo no cinza da plataforma (#F4F6F7); sem a caixa
   branca em volta — só os campos (nome, telefone, valor...) em branco.
   Título igual ao de "Adicione uma lista": à esquerda da seta, 20px/700. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  /* Convidado */
  html body .ficha-convidado.is-editando:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: #F4F6F7 !important; }
  html body .ficha-convidado.is-editando .ficha-topo:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: #FFFFFF !important; }
  html body .ficha-convidado.is-editando .ficha-corpo:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: transparent !important; padding-top: 16px; }
  html body .ficha-convidado.is-editando .ficha-cartao:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; }
  html body .ficha-convidado.is-editando .ficha-cartao + .ficha-cartao:not(#love-h-a):not(#love-h-b):not(#love-h-c) { margin-top: 24px; }
  html body .ficha-convidado.is-editando :is(.ficha-campo, .ficha-add-acomp, .restricao-select > :first-child):not(#love-h-a):not(#love-h-b):not(#love-h-c) {
    background: #FFFFFF !important; border: 1px solid #E4E4E7 !important; box-shadow: none !important;
  }

  /* Presente */
  html body #drawer-add-gift:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: #F4F6F7 !important; }
  html body #drawer-add-gift > .gift-drawer-cab:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: #FFFFFF !important; padding: 12px 16px 8px !important; gap: 8px; align-items: center !important; }
  html body #drawer-add-gift > .gift-drawer-cab > div:not(#love-h-a):not(#love-h-b):not(#love-h-c) { text-align: left !important; }
  html body #drawer-add-gift #drawer-gift-heading-title:not(#love-h-a):not(#love-h-b):not(#love-h-c) { font-size: 20px !important; font-weight: 700 !important; line-height: 26px !important; letter-spacing: -0.4px !important; color: #18181B !important; }
  html body #drawer-add-gift #btn-close-gift-drawer:not(#love-h-a):not(#love-h-b):not(#love-h-c) { margin-left: -6px !important; margin-right: 0 !important; width: 44px; height: 44px; color: #18181B !important; }
  html body #drawer-add-gift #btn-close-gift-drawer .gift-drawer-icone-voltar:not(#love-h-a):not(#love-h-b):not(#love-h-c) { width: 20px !important; height: 20px !important; }
  html body #drawer-add-gift > .overflow-y-auto:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: transparent !important; padding-left: 16px !important; padding-right: 16px !important; padding-top: 16px !important; }
  html body #drawer-add-gift :is(.gift-rodape-acoes):not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: transparent !important; }
  html body:not([data-theme="dark"]) #drawer-add-gift:not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: #F4F6F7 !important; background-color: #F4F6F7 !important; }
  html body #drawer-add-gift :is(input[type="text"], input[type="number"], input:not([type]), textarea, select, #gift-image-dropzone):not(#love-h-a):not(#love-h-b):not(#love-h-c) { background: #FFFFFF !important; }

  body[data-theme="dark"] :is(.ficha-convidado.is-editando, #drawer-add-gift) { background: #1A1A1A !important; }
  body[data-theme="dark"] :is(.ficha-convidado.is-editando .ficha-topo, #drawer-add-gift > .gift-drawer-cab) { background: #252525 !important; }
  body[data-theme="dark"] .ficha-convidado.is-editando :is(.ficha-campo, .ficha-add-acomp) { background: #252525 !important; border-color: #404040 !important; }
}
/* Celular, Criar/Editar presente: rótulos (Nome do presente, Adicionar imagem,
   Descrição, Valor total) iguais aos de Adicionar convidado — 13px/500,
   #71717A; "Permitir valor extra" e "Habilitar crowdfunding" na cor padrão
   dos textos (#18181B). */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #form-add-gift label.block:not(#love-h-a):not(#love-h-b):not(#love-h-c) { font-size: 13px !important; font-weight: 500 !important; line-height: 19.5px !important; letter-spacing: -0.13px !important; color: #71717A !important; }
  html body #form-add-gift :is(.gift-texto-celular, .gift-contribuicao-texto > span:first-child):not(#love-h-a):not(#love-h-b):not(#love-h-c) { color: #18181B !important; }
  body[data-theme="dark"] #form-add-gift :is(.gift-texto-celular, .gift-contribuicao-texto > span:first-child) { color: #FFFFFF !important; }
}

/* Mapa do evento vazio: ícone animado de adicionar no lugar da moldura,
   no mesmo tamanho, cor (#D4D4D8) e traço (2,5px) do de Meus convidados. */
html body .floorplan-empty-hint .floorplan-vazio-animado:not(#love-h-a):not(#love-h-b) { display: block; width: 96px; height: 96px; margin: 0 auto 4px; flex-shrink: 0; }

/* Mensagens: "N conversas" acima da pesquisa — só no celular, como no Hub
   (mesmo estilo das contagens de Meus convidados e Meus presentes). */
.chat-total-celular { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #tab-b2b #b2b-messages-view .chat-total-celular:not(#love-h-a):not(#love-h-b) {
    display: block; flex-shrink: 0; margin: 0 !important; padding: 16px 16px 12px !important; font-family: Inter, sans-serif !important;
    font-size: 17px !important; font-weight: 600 !important; letter-spacing: 0 !important; line-height: 1.3 !important; color: #18181B !important;
  }
  html body #tab-b2b #b2b-messages-view .chat-total-celular:empty:not(#love-h-a):not(#love-h-b) { display: none; }
  html body #tab-b2b #b2b-messages-view .chat-total-celular:not(:empty) + div:not(#love-h-a):not(#love-h-b):not(#love-h-c) { padding-top: 0 !important; }
  body[data-theme="dark"] #tab-b2b #b2b-messages-view .chat-total-celular { color: #FFFFFF !important; }
}

/* Celular: rodapé só na Home, copiado do Hub — linha fina em cima,
   © Love Hub Ltda. e, embaixo, Privacidade / Termos, centralizados, 12px. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-event-os-dashboard:has(#tab-overview.active:not(.hidden)) #dashboard-footer.rodape-logado:not(#love-h-a):not(#love-h-b):not(#love-h-c) {
    display: block !important; flex-shrink: 0; margin-top: 8px !important; padding: 20px 16px 24px !important;
    background: transparent !important; border: 0 !important; border-top: 1px solid #E4E4E7 !important;
  }
  html body #view-event-os-dashboard:not(:has(#tab-overview.active:not(.hidden))) #dashboard-footer.rodape-logado:not(#love-h-a):not(#love-h-b) { display: none !important; }
  html body #dashboard-footer .rodape-logado-linha:not(#love-h-a):not(#love-h-b) { display: flex; flex-direction: column; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 8px; text-align: center; }
  html body #dashboard-footer .rodape-logado-texto:not(#love-h-a):not(#love-h-b) { margin: 0; font-size: 12px !important; color: #71717A !important; white-space: nowrap; }
  html body #dashboard-footer .rodape-logado-links:not(#love-h-a):not(#love-h-b) { display: flex; flex-wrap: nowrap; justify-content: center; gap: 16px; margin: 0; }
  html body #dashboard-footer .rodape-logado-links a:not(#love-h-a):not(#love-h-b) { font-size: 12px !important; font-weight: 500 !important; color: #52525B !important; text-decoration: none !important; white-space: nowrap; }
  html body #view-event-os-dashboard:has(#tab-overview.active:not(.hidden)) .dashboard-main-area > .rodape-respiro:not(#love-h-a):not(#love-h-b) { flex-basis: 16px !important; height: 16px !important; }
  body[data-theme="dark"] #view-event-os-dashboard #dashboard-footer.rodape-logado { border-top-color: #333333 !important; }
  body[data-theme="dark"] #dashboard-footer .rodape-logado-texto { color: #A1A1AA !important; }
  body[data-theme="dark"] #dashboard-footer .rodape-logado-links a { color: #D4D4D8 !important; }
}

/* Celular: o lápis do mapa vazio passa a maior parte da animação escrevendo
   à esquerda; 4px para a direita deixa o desenho no meio, na média. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body .floorplan-empty-hint .floorplan-vazio-animado:not(#love-h-a):not(#love-h-b) { transform: translateX(4px); }
}

/* Barra de baixo (celular): item ativo com o fundo #EAF0F5 e o ícone
   #183b54, as mesmas cores dos atalhos Cobrar / Orçamento / Construtor. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body:not([data-theme="dark"]) .sidebar-icon-rail .rail-icon-btn.active:not(#love-h-a):not(#love-h-b):not(#love-h-c):not(#love-h-d) {
    background-color: #EAF0F5 !important;
    color: #183b54 !important;
  }
  html body:not([data-theme="dark"]) .sidebar-icon-rail .rail-icon-btn.active:not(#love-h-a):not(#love-h-b):not(#love-h-c):not(#love-h-d) :is(svg, svg *) {
    color: #183b54 !important;
    stroke: #183b54 !important;
  }
}

/* Sem foto/iniciais: o menu da conta (celular) mostra só nome e e-mail, e
   Configurações não tem mais a foto de perfil — os campos usam a largura
   toda da caixa (celular e desktop). */
html body .menu-conta .menu-conta-avatar:not(#love-h-a):not(#love-h-b) { display: none !important; }
html body .menu-conta .menu-conta-cabeca:not(#love-h-a) { padding-top: 32px; }
html body .conta-perfil-linha .conta-avatar-coluna:not(#love-h-a) { display: none !important; }
html body .conta-perfil-linha:not(#love-h-a):not(#love-h-b) { display: block; }

/* ==========================================================================
   /login no celular (só até 768px): logo no meio, sem o título, Google em
   cima, "ou" e depois e-mail/senha; campos no cinza do fundo da plataforma;
   Entrar com as cores dos atalhos redondos da Home; e uma prévia da barra de
   baixo da plataforma (só enfeite). Desktop não muda.
   ========================================================================== */
.login-barra-previa { display: none; }
@media (max-width: 768px), (hover: none) and (pointer: coarse) and (max-height: 500px) {
  html body #view-login #login-panel-signin:not(#love-h-a) { display: flex; flex-direction: column; padding-bottom: 72px; }
  html body #view-login #login-panel-forgot:not(#love-h-a) { padding-bottom: 72px; }
  #login-panel-signin > div:first-child { order: 1; margin-bottom: 32px !important; text-align: center; }
  #login-panel-signin > div:first-child img { margin: 0 auto !important; }
  #login-panel-signin > div:first-child h3 { display: none; }
  #login-panel-signin > div:has(#btn-google-login) { order: 2; }
  #login-panel-signin > div:has(#btn-google-login) > * { margin-top: 0 !important; }
  #login-panel-signin > div:has(.login-ou-continue) { order: 3; margin: 20px 0 !important; }
  #login-panel-signin > form { order: 4; }
  #login-panel-signin > div:has(#btn-login-to-register) { order: 5; justify-content: center; padding-top: 28px !important; }
  html body #view-login .login-ou-continue:not(#love-h-a) { font-size: 0; }
  html body #view-login .login-ou-continue:not(#love-h-a)::after { content: 'ou'; font-size: 13px; font-weight: 500; color: #71717A; }

  /* Vazio: branco com borda cinza fina. Preenchido: cinza claro. */
  html body #view-login :is(input[type="email"], input[type="password"], input[type="text"]):not(#love-h-a):not(#love-h-b) {
    background: #FFFFFF !important; border: 1px solid #E4E4E7 !important; box-shadow: none !important; outline: none !important;
  }
  html body #view-login :is(input[type="email"], input[type="password"], input[type="text"]):not(:placeholder-shown):not(#love-h-a):not(#love-h-b) { background: #F4F6F7 !important; }
  html body #view-login :is(input[type="email"], input[type="password"], input[type="text"]):focus:not(#love-h-a):not(#love-h-b) { border-color: #181D24 !important; }
  /* Preenchimento automático do navegador (que pinta de azul claro): cinza claro
     também. Mais específico que o box-shadow:none acima para valer. */
  html body #view-login input:is(:-webkit-autofill, :autofill):not(#love-h-a):not(#love-h-b):not(#love-h-c) {
    -webkit-box-shadow: 0 0 0 1000px #F4F6F7 inset !important; box-shadow: 0 0 0 1000px #F4F6F7 inset !important;
    -webkit-text-fill-color: #18181B !important; caret-color: #18181B;
    transition: background-color 600000s 0s, color 600000s 0s;
  }

  html body #view-login :is(#btn-do-email-login, #btn-do-forgot-password):not(#love-h-a):not(#love-h-b) {
    background: #EAF0F5 !important; color: #183b54 !important; box-shadow: none !important; border: 0 !important;
  }
  html body #view-login :is(#btn-do-email-login, #btn-do-forgot-password):hover:not(#love-h-a):not(#love-h-b) { background: #EAF0F5 !important; box-shadow: inset 0 0 0 1px #183b54 !important; }

  .login-barra-previa {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex;
    height: calc(64px + env(safe-area-inset-bottom, 0px)); padding: 6px 8px env(safe-area-inset-bottom, 0px);
    background: #FFFFFF; border-top: 1px solid #E4E4E7; pointer-events: none; user-select: none;
  }
  .login-barra-item {
    flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    height: 52px; margin: 0 2px; border-radius: 999px; color: #52525B;
    font: 500 10.5px/1 Inter, sans-serif;
  }
  .login-barra-item small { font-size: 10.5px; }
  .login-barra-item svg { width: 21px; height: 21px; }
  .login-barra-item.is-ativo { background: #EAF0F5; color: #183b54; }
}
