@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Playfair+Display:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap');

/* Use um arquivo de fonte licenciado para publicação na Web em assets/fonts/.
   Sem o arquivo, a fonte cursiva Great Vibes será usada como alternativa. */
@font-face {
  font-family: 'Amoresa';
  src: url('./assets/fonts/Amoresa-Regular.woff2') format('woff2'),
       url('./assets/fonts/Amoresa-Regular.otf') format('opentype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  /* Opt out of automatic darkening (Chrome/Android). */
  color-scheme: only light;
  --bg: #f5f1e9;
  --paper: #fbf8f2;
  --paper-strong: #fffdfa;
  --text: #675b53;
  --muted: #7d736a;
  --heading: #5a4e47;
  --gold: #ccb276;
  --gold-soft: #e7d8ae;
  --line: #e7dfd0;
  --green: #607465;
  --green-soft: #7e927f;
  --shadow: 0 24px 60px rgba(95, 79, 67, 0.08);
  --radius: 26px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background-color: #f8f4ee; color-scheme: only light; }
body {
  margin: 0;
  font-family: 'Montserrat', Arial, sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.65), transparent 28%),
    linear-gradient(180deg, #f8f4ee 0%, var(--bg) 100%);
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }

.container { width: min(1120px, calc(100% - 40px)); margin-inline: auto; }

.site-header {
  /* Cabeçalho acompanha o fluxo normal da página (não fixo). */
  position: static;
  z-index: auto;
  background: rgba(250, 247, 241, 0.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(214, 198, 165, 0.45);
}

.nav {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-block: 10px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.brand-logo {
  width: 58px;
  height: 58px;
  object-fit: contain;
  filter: drop-shadow(0 8px 18px rgba(95, 79, 67, 0.10));
}


.brand-copy { display: flex; flex-direction: column; line-height: 1.1; }
.brand-overline {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 2.4px;
  color: #9f8d72;
  margin-bottom: 5px;
}
.brand strong {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 24px;
  font-weight: 600;
  color: var(--heading);
}

.nav-caption,
.back-link {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #98856c;
  font-weight: 600;
}

.back-link:hover,
.hero-link:hover,
.footer a:hover { color: #7f6c54; }

.hero {
  padding-top: 26px;
}

.invitation-frame {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.9)),
    var(--paper);
  border: 1px solid var(--line);
  border-radius: 32px;
  box-shadow: var(--shadow);
}

.invitation-frame::before {
  content: '';
  position: absolute;
  inset: 16px;
  border: 1px solid rgba(207, 185, 130, 0.45);
  border-radius: 24px;
  pointer-events: none;
}

.hero-inner {
  text-align: center;
  padding: 76px 88px 80px;
  isolation: isolate;
}
.hero-inner > *:not(.hero-floral) {
  position: relative;
  z-index: 2;
}


.hero-floral {
  position: absolute;
  pointer-events: none;
  user-select: none;
  opacity: .96;
  z-index: 0;
}
.hero-floral-top {
  width: min(290px, 30vw);
  top: 12px;
  right: 14px;
}
.hero-floral-bottom {
  width: min(300px, 31vw);
  left: 16px;
  bottom: 14px;
}


.eyebrow,
.section-kicker,
.modal-kicker {
  display: inline-block;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 2.8px;
  color: #9d8a6f;
  font-weight: 700;
}

.hero-logo,
.dialog-logo,
.admin-logo,
.admin-panel-logo {
  object-fit: contain;
}
.hero-logo {
  width: min(160px, 34vw);
  margin: 22px auto 14px;
}

.hero-quote {
  width: min(770px, 100%);
  margin: 0 auto 16px;
  font-family: 'Great Vibes', cursive;
  font-size: clamp(26px, 3.3vw, 44px);
  line-height: 1.25;
  color: #7f7366;
}
.hero h1,
.section-title h2,
.admin-intro h1,
.admin-panel h2,
.empty-state h3 {
  margin: 0;
  font-family: 'Playfair Display', Georgia, serif;
  color: var(--heading);
}
.hero h1 {
  font-size: clamp(40px, 6vw, 72px);
  margin-top: 10px;
  margin-bottom: 18px;
  font-weight: 600;
}
.hero-message {
  max-width: 690px;
  margin: 0 auto 26px;
  font-size: 15px;
  line-height: 1.9;
  color: var(--muted);
}
.hero-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .4px;
  color: #8a775d;
  border-bottom: 1px solid rgba(138, 119, 93, 0.55);
  padding-bottom: 5px;
}

.gifts-section {
  padding-block: 56px 96px;
}

.section-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 32px;
}
.section-title h2,
.admin-intro h1,
.admin-panel h2 {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 600;
  margin-bottom: 10px;
}
.section-title p,
.admin-intro p,
.admin-panel-heading p,
.empty-state p {
  margin: 0;
  color: var(--muted);
  line-height: 1.8;
  font-size: 14px;
}

.counter {
  white-space: nowrap;
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  border: 1px solid var(--line);
  color: #8c7a62;
  font-size: 12px;
  font-weight: 600;
}

.invitation-divider {
  position: relative;
  padding-bottom: 18px;
}
.invitation-divider::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(207,185,130,.8), transparent);
}

.gifts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.gift-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: rgba(255,255,255,.78);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: 0 14px 38px rgba(95, 79, 67, 0.07);
  transition: transform .2s ease, box-shadow .2s ease;
}
.gift-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 52px rgba(95, 79, 67, 0.11);
}
.gift-image {
  /* A mesma área para fotos horizontais, verticais e quadradas. */
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: linear-gradient(155deg, #fffdfa 0%, #f6f1e9 100%);
  border-bottom: 1px solid rgba(220, 206, 177, 0.58);
}
.gift-image img {
  /* A foto inteira fica visível; sobras formam uma moldura clara. */
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  padding: 16px;
  object-fit: contain;
  object-position: center;
}
.gift-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 24px;
}
.gift-card h3 {
  margin: 0 0 8px;
  font-size: 26px;
  line-height: 1.3;
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 500;
  color: var(--heading);
}
.gift-description {
  margin: 0 0 20px;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--muted);
  overflow-wrap: anywhere;
}
.gift-price {
  margin-top: auto;
  margin-bottom: 16px;
  font-size: 24px;
  font-weight: 700;
  color: #5d534d;
}

.button {
  border: 0;
  border-radius: 12px;
  padding: 14px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-size: 14px;
  font-weight: 700;
  transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.button:active { transform: scale(.985); }
.button:disabled { opacity: .6; cursor: not-allowed; }
.button-primary {
  color: #fff;
  background: linear-gradient(180deg, #d6be8a 0%, #bea067 100%);
  box-shadow: 0 10px 20px rgba(183, 150, 90, 0.22);
}
.button-primary:hover:not(:disabled) {
  background: linear-gradient(180deg, #cbae75 0%, #b48f4f 100%);
}
.button-subtle {
  background: #f5efe5;
  color: #816d54;
  border: 1px solid var(--line);
}
.button-subtle:hover { background: #efe7da; }
.button-outline {
  background: var(--paper-strong);
  color: #7c6b54;
  border: 1px solid rgba(204, 178, 118, 0.45);
}
.button-outline:hover { background: #f9f3e8; }
.button-full,
.gift-card .button { width: 100%; }

.notice,
.empty-state,
.admin-panel,
.login-panel,
.setup-panel {
  background: rgba(255,255,255,.78);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: var(--shadow);
}
.notice {
  padding: 14px 18px;
  margin-bottom: 22px;
  color: #7d6745;
  font-size: 13px;
}
.empty-state {
  text-align: center;
  padding: 58px 24px;
}
.empty-mark {
  display: inline-grid;
  place-items: center;
  width: 84px;
  height: 84px;
  margin-bottom: 18px;
  border-radius: 50%;
  border: 1px solid var(--gold-soft);
  color: #8a775d;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 28px;
  font-weight: 600;
  background: #fffdf9;
}
.empty-state h3 {
  font-size: 34px;
  margin-bottom: 12px;
}

.footer {
  border-top: 1px solid rgba(214, 198, 165, 0.4);
  background: rgba(255,255,255,.46);
}
.footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-block: 24px;
  font-size: 12px;
  color: #887963;
  letter-spacing: .25px;
}
.footer a {
  font-weight: 700;
  color: #866f4b;
}

.pix-dialog {
  width: min(500px, calc(100% - 24px));
  max-height: calc(100dvh - 24px);
  padding: 0;
  border: none;
  background: transparent;
  overflow-y: auto;
}
.pix-dialog::backdrop {
  background: rgba(54, 40, 28, 0.56);
  backdrop-filter: blur(5px);
}
.dialog-content {
  position: relative;
  text-align: center;
  padding: 28px 28px 24px;
}
.invitation-frame-plain::before { inset: 12px; }
.dialog-logo {
  width: 82px;
  margin: 0 auto 4px;
}

.close-button {
  position: absolute;
  top: 14px;
  right: 14px;
  border: 0;
  background: transparent;
  color: #8a775d;
  font-size: 34px;
  line-height: 1;
}
.dialog-content h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 34px;
  font-weight: 600;
  margin: 8px 0 6px;
  color: var(--heading);
}
.pix-gift-name {
  margin: 0 0 8px;
  color: var(--muted);
  line-height: 1.7;
}
.pix-amount {
  font-size: 32px;
  font-weight: 700;
  color: #5d534d;
}
.qr-wrap {
  width: 220px;
  height: 220px;
  display: grid;
  place-items: center;
  margin: 15px auto 12px;
  padding: 12px;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: #fff;
}
.qr-wrap canvas,
.qr-wrap img { max-width: 100%; height: auto; }
.qr-help,
.security-note,
.pix-feedback,
.field-hint,
.signed-in,
.managed-empty,
.form-message,
.field-label,
.setup-panel p,
.managed-status,
.managed-detail p {
  font-size: 12px;
}
.qr-help,
.security-note,
.pix-feedback,
.setup-panel p,
.managed-empty,
.signed-in,
.field-hint,
.managed-detail p { line-height: 1.7; color: var(--muted); }
.field-label {
  display: block;
  margin-bottom: 8px;
  text-align: left;
  font-weight: 700;
  color: #6c6058;
}
.dialog-content textarea,
.admin-panel input:not([type='checkbox']),
.admin-panel textarea {
  width: 100%;
  border: 1px solid #dfd4c1;
  background: rgba(255,255,255,.9);
  border-radius: 12px;
  padding: 12px 14px;
  color: var(--text);
  outline: 0;
}
.dialog-content textarea:focus,
.admin-panel input:not([type='checkbox']):focus,
.admin-panel textarea:focus {
  border-color: #ccb276;
  box-shadow: 0 0 0 3px rgba(204, 178, 118, 0.18);
}
.dialog-content textarea {
  height: 78px;
  resize: none;
  word-break: break-all;
  margin-bottom: 12px;
}
.pix-feedback { min-height: 18px; color: #55715f; }
.security-note { margin: 8px 0 0; }

.admin-main {
  min-height: 74vh;
  padding-block: 34px 84px;
}
.admin-intro-card {
  text-align: center;
  margin-bottom: 28px;
  padding: 38px 26px 34px;
}
.admin-logo {
  width: 94px;
  margin: 18px auto 12px;
}
.admin-panel-logo {
  width: 74px;
  margin: 0 auto 8px;
}

.admin-panel {
  padding: 28px;
  margin-bottom: 24px;
}
.login-panel {
  width: min(470px, 100%);
  margin-inline: auto;
}
.admin-panel-heading { text-align: center; margin-bottom: 22px; }
.admin-toolbar,
.panel-topline,
.footer-inner,
.section-title {
  display: flex;
  justify-content: space-between;
}
.admin-toolbar,
.panel-topline {
  align-items: center;
  gap: 16px;
}
.form-grid {
  display: grid;
  grid-template-columns: 1.55fr 1fr;
  gap: 18px 20px;
}
.field-wide { grid-column: 1 / -1; }
.field textarea { resize: vertical; }
.image-preview-wrap {
  /* A prévia do cadastro também nunca corta a imagem. */
  position: relative;
  width: min(360px, 100%);
  aspect-ratio: 4 / 3;
  overflow: hidden;
  margin-top: 12px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: #fffdfa;
}
.image-preview-wrap img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  padding: 12px;
  object-fit: contain;
  object-position: center;
}
.managed-thumb {
  object-fit: contain;
  object-position: center;
  padding: 6px;
  border: 1px solid var(--line);
}
.toggle-label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  color: #6f645c;
  cursor: pointer;
  font-size: 13px;
}
.toggle-label input {
  width: 16px;
  height: 16px;
  accent-color: #b59458;
}
.form-message { min-height: 20px; margin: 16px 0 10px; }
.form-actions { display: flex; justify-content: flex-end; }
.error-text { color: #b04f43; }
.success-text { color: #4f7763; }
.setup-panel { color: #766554; }
.managed-list { display: flex; flex-direction: column; gap: 12px; }
.managed-gift {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.56);
}
.managed-thumb {
  width: 92px;
  height: 78px;
  flex-shrink: 0;
  border-radius: 14px;
  background: #fffdfa;
}
.managed-detail { flex: 1; min-width: 0; }
.managed-detail h3 {
  margin: 0 0 4px;
  font-size: 16px;
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  color: var(--heading);
  overflow-wrap: anywhere;
}
.managed-detail p { margin: 0 0 6px; color: #8a7658; font-weight: 700; }
.managed-status { font-weight: 700; color: #597264; }
.managed-status.inactive { color: #986659; }
.managed-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.managed-actions .button {
  font-size: 12px;
  padding: 10px 13px;
}

@media (max-width: 960px) {
  .gifts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-inner { padding-inline: 34px; }
}

@media (max-width: 720px) {
  .container { width: min(calc(100% - 24px), 1120px); }
  .nav,
  .section-title,
  .admin-toolbar,
  .panel-topline,
  .footer-inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .nav { justify-content: center; }
  .brand { width: 100%; }
  .nav-caption,
  .back-link { letter-spacing: 1.4px; }
  .hero-inner { padding: 54px 20px 176px; }
  .hero-logo { width: 126px; }
  .hero h1 { font-size: 50px; }
  .hero-quote { font-size: 28px; }
  .hero-floral-top { width: 170px; top: 10px; right: 10px; }
  .hero-floral-bottom { width: 190px; left: 10px; bottom: 10px; }
  .gifts-section { padding-block: 40px 70px; }
  .gifts-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .gift-card h3 { font-size: 24px; }
  .gift-image img { padding: 14px; }
  .admin-main { padding-top: 22px; }
  .admin-panel,
  .dialog-content { padding: 20px; }
  .form-grid { display: block; }
  .field { margin-bottom: 16px; }
  .managed-gift {
    flex-wrap: wrap;
    gap: 12px;
  }
  .managed-thumb {
    width: 76px;
    height: 76px;
  }
  .managed-actions {
    width: 100%;
    justify-content: flex-end;
  }
}

@media (max-width: 420px) {
  .brand-logo { width: 48px; height: 48px; }
  .brand strong { font-size: 20px; }
  .hero h1 { font-size: 42px; }
  .hero-quote { font-size: 25px; }
  .section-title h2,
  .admin-intro h1,
  .admin-panel h2,
  .empty-state h3 { font-size: 30px; }
  .gift-card-body { padding: 20px; }
  .pix-amount { font-size: 28px; }
  .qr-wrap { width: 200px; height: 200px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}


/* ======================================================
   Correção: manter o site claro mesmo com modo escuro do
   aparelho/navegador. Não altera o layout nem a paleta.
   ====================================================== */
:root, html {
  color-scheme: only light;
}
html {
  background-color: #f8f4ee;
}
body {
  background-color: #f8f4ee; /* fallback, preserva o gradiente existente */
  color: var(--text, #675b53);
}
input, textarea, select, button, dialog {
  color-scheme: only light;
}

/* A mesma flor nos dois cantos, como solicitado anteriormente. */
.hero-floral-bottom {
  transform: rotate(180deg);
  transform-origin: center;
  width: min(290px, 30vw);
  left: 14px;
  bottom: 12px;
}
@media (max-width: 720px) {
  .hero-floral-bottom {
    width: 170px;
    left: 10px;
    bottom: 10px;
  }
}


/* ------- Atualização de tipografia e confirmação de presença ------- */
/* O nome no topo e na apresentação usam Amoresa quando instalada. */
.brand strong,
.hero h1,
.couple-script {
  font-family: 'Amoresa', 'Great Vibes', cursive;
  font-weight: 400;
}
.brand strong { font-size: 28px; line-height: 1.25; }
.hero h1 { font-size: clamp(45px, 6.4vw, 82px); line-height: 1.35; letter-spacing: 0; }
.gift-description { font-size: 12.5px; line-height: 1.65; }
.nav-actions { display: flex; align-items: center; gap: 24px; }
.nav-rsvp {
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--gold); color: #8b734f;
  background: #fffaf2; padding: 11px 15px; border-radius: 999px;
  font-size: 12px; font-weight: 700; white-space: nowrap;
}
.nav-rsvp:hover { background: #efe4cf; }
.hero-actions { display: flex; gap: 22px; justify-content: center; align-items: center; flex-wrap: wrap; }
.hero-link-rsvp { color: #56735f; border-color: #9aaf9c; }
.rsvp-banner {
  margin-top: 44px; display: flex; align-items: center; justify-content: space-between;
  gap: 22px; padding: 26px 34px; border: 1px solid var(--line);
  border-radius: 25px; background: rgba(255,253,250,.88);
  box-shadow: 0 16px 42px rgba(95, 79, 67, .06);
}
.rsvp-banner h2 {
  color: var(--heading); font: 600 29px/1.3 'Playfair Display', Georgia, serif;
  margin: 5px 0 8px;
}
.rsvp-banner p { color: var(--muted); font-size: 13px; line-height: 1.7; margin: 0; }
.rsvp-banner .button { white-space: nowrap; }
.rsvp-banner + .gifts-section { padding-top: 48px; }
.rsvp-main { max-width: 860px; padding-top: 32px; padding-bottom: 85px; }
.rsvp-intro {
  position: relative; text-align: center; padding: 50px 22px 38px;
  overflow: hidden; border-radius: 26px; border: 1px solid var(--line);
  background: rgba(255,255,255,.88); box-shadow: var(--shadow); margin-bottom: 24px;
}
.rsvp-intro > :not(.hero-floral) { position: relative; z-index: 2; }
.rsvp-intro .hero-floral-top { width: 170px; right: 10px; top: 5px; }
.rsvp-intro .hero-floral-bottom { width: 150px; left: 10px; bottom: 5px; }
.rsvp-monogram { width: 100px; height: 92px; object-fit: contain; margin: 3px auto 8px; }
.rsvp-intro h1 {
  font: 600 clamp(31px, 5vw, 46px)/1.25 'Playfair Display',Georgia,serif;
  margin: 10px 0 12px; color: var(--heading);
}
.rsvp-intro p { color: var(--muted); font-size: 14px; line-height: 1.75; max-width: 580px; margin: 0 auto; }
.rsvp-deadline { display: block; color: #907b5d; margin-top: 14px; font-size: 12px; font-weight: 700; }
.rsvp-panel { padding: 32px; }
.rsvp-panel h2 { margin-bottom: 14px; }
.rsvp-explainer { font-size: 13px; color: var(--muted); line-height: 1.75; margin: 0 0 24px; }
.rsvp-guest { display: flex; align-items: end; gap: 12px; margin-bottom: 15px; }
.rsvp-guest .field { flex: 1; min-width: 0; }
.rsvp-guest input { width: 100%; }
.rsvp-guest .button { height: 45px; padding: 0 15px; }
.rsvp-add { margin-top: 5px; }
.rsvp-actions { display: flex; justify-content: flex-end; margin-top: 26px; }
.rsvp-actions .button { min-width: 220px; }
.rsvp-small { margin: 12px 0 0; font-size: 12px; line-height: 1.75; color: var(--muted); }
.rsvp-feedback {
  margin: 16px 0 0; padding: 13px 16px;
  border-radius: 12px; background: #f2f6f0;
  font-size: 13px; line-height: 1.6; color: #45664e;
}
.rsvp-feedback.error-text { background: #fff1ee; color: #a84b45; }
.rsvp-feedback:empty { display: none; }
.rsvp-privacy { font-size: 11px; line-height: 1.6; color: var(--muted); margin: 16px 0 0; }
.rsvp-honeypot { position: absolute !important; left: -10000px !important; }
.admin-tabs { display: flex; gap: 9px; flex-wrap: wrap; margin-bottom: 22px; }
.admin-tab {
  font-size: 13px; font-weight: 700; padding: 11px 17px;
  border-radius: 999px; border: 1px solid var(--line);
  color: #8a775d; background: rgba(255,255,255,.8);
}
.admin-tab:hover { background: #f7f0e5; }
.admin-tab.active { color: #fff; background: #ad9262; border-color: #ad9262; }
.rsvp-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-bottom: 22px; }
.rsvp-stat { background: #fffdfa; border: 1px solid var(--line); border-radius: 16px; padding: 21px 23px; }
.rsvp-stat strong { display: block; font: 600 32px/1.3 'Playfair Display',Georgia,serif; color: var(--heading); }
.rsvp-stat span { font-size: 12px; color: var(--muted); }
.confirm-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 19px; align-items: center; }
.confirm-actions .search-input { flex: 1; min-width: 170px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--text); }
.rsvp-list { display: flex; flex-direction: column; gap: 12px; }
.rsvp-entry { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 20px 22px; border: 1px solid var(--line); border-radius: 15px; background: #fffdfa; }
.rsvp-entry h3 { font: 600 20px/1.3 'Playfair Display',Georgia,serif; color: var(--heading); margin: 0 0 5px; overflow-wrap: anywhere; }
.rsvp-entry p { font-size: 13px; color: var(--muted); margin: 4px 0; overflow-wrap: anywhere; line-height: 1.6; }
.rsvp-entry .entry-date { text-align: right; white-space: nowrap; font-size: 12px; }
.rsvp-entry .entry-count { display: inline-block; color: #8c7653; font-weight: 700; font-size: 12px; margin: 6px 0; }
.rsvp-empty { font-size: 13px; line-height: 1.8; color: var(--muted); text-align: center; padding: 28px; }
@media(max-width:720px) {
  .nav-actions { width: 100%; justify-content: space-between; }
  .nav-rsvp { padding: 9px 12px; }
  .brand strong { font-size: 25px; }
  .hero h1 { font-size: clamp(43px, 11vw, 65px); line-height: 1.35; }
  .rsvp-banner { flex-direction: column; align-items: start; margin-top: 26px; padding: 23px; }
  .rsvp-banner .button { width: 100%; white-space: normal; }
  .rsvp-main { padding-top: 18px; }
  .rsvp-intro { padding: 48px 22px 35px; }
  .rsvp-intro .hero-floral-top { width: 115px; }
  .rsvp-intro .hero-floral-bottom { width: 105px; }
  .rsvp-panel { padding: 24px 17px; }
  .rsvp-guest { align-items: end; }
  .rsvp-entry { grid-template-columns: 1fr; }
  .rsvp-entry .entry-date { text-align: left; }
  .confirm-actions .button { flex: 1; }
}
@media print {
  body { background: #fff !important; color: #333 !important; }
  .site-header, .footer, .confirm-actions, .admin-tabs, .admin-toolbar, .admin-intro, .login-panel { display: none !important; }
  .admin-main { padding: 0; }
  .admin-panel { box-shadow: none; padding: 12px; }
  .rsvp-entry { break-inside: avoid; }
}


/* Evita que flores sobreponham textos na confirmação, especialmente no celular. */
@media (max-width: 720px) {
  .rsvp-intro { padding: 115px 22px 130px; }
  .rsvp-intro .hero-floral-top { width: 95px; top: 8px; right: 9px; }
  .rsvp-intro .hero-floral-bottom { width: 105px; bottom: 8px; left: 9px; }
}
