/* One palette across the invitation, RSVP, music and private host pages.
   Inspired by the seated-couple artwork: jasmine ivory, woven gold,
   rose silk and the muted green of the drape and garden. */
:root {
  --ivory: #fff2d8;
  --paper: #fff8e9;
  --sand: #f3dfbc;
  --blush: #f5d8c9;
  --rose-silk: #98494d;
  --rose-deep: #7f393e;
  --rose-wash: #fae8dc;
  --sage: #536047;
  --sage-deep: #424e38;
  --sage-wash: #edf0e0;
  --antique-gold: #b88743;
  --gold-ink: #7e592e;
  --gold-line: #c8a26d;
  --ink: #503b2c;
  --quiet-ink: #715a46;
  --wine: var(--rose-silk);
  --deep-wine: var(--rose-deep);
  --gold: var(--antique-gold);
  --cream: var(--ivory);
  --rose: var(--blush);
}
body { background: var(--ivory); color: var(--ink); }
::selection { background: var(--blush); color: var(--rose-deep); }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible,
.optional-details summary:focus-visible, .radio-options input:focus-visible + span {
  outline-color: var(--sage-deep);
}
.site-header {
  background: var(--paper);
  border-color: var(--gold-line);
  box-shadow: inset 0 3px var(--antique-gold);
}
.site-header .monogram, nav .nav-rsvp, h2, .signature, .text-link { color: var(--rose-silk); }
.monogram > span:first-child { color: var(--gold-ink); }
nav, .eyebrow, .blessing { color: var(--sage); }
nav .nav-rsvp, .text-link { border-color: var(--gold-line); }
.text-link:hover { color: var(--rose-deep); border-color: var(--rose-silk); }
.compact-invite .invitation-hero { background: var(--ivory); border-color: var(--antique-gold); }
.hero-occasion, .invitation-hero h1 { color: var(--rose-silk); }
.invitation-hero .hero-description { color: var(--quiet-ink); }
.hero-date { color: var(--ink); }
.hero-date strong { border-color: var(--gold-line); }
.compact-invite .invitation-hero .hero-place { color: var(--sage); }
.gold-divider { color: var(--gold-ink); }
.button.primary, .mobile-rsvp a {
  color: var(--paper);
  background: var(--rose-silk);
  border-color: var(--rose-silk);
  box-shadow: 0 3px 10px #98494d20;
}
.button.primary:hover, .mobile-rsvp a:hover { background: var(--rose-deep); border-color: var(--rose-deep); }
.button.secondary { color: var(--sage-deep); border-color: var(--sage); background: var(--sage-wash); }
.button.secondary:hover { color: var(--paper); background: var(--sage); }
.gathering { position: relative; isolation: isolate; }
.gathering::before, .rsvp-section::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  pointer-events: none;
}
.gathering::before { background: linear-gradient(105deg, var(--ivory), #f7e8ce 65%, #e8e9d6); }
.gathering-welcome h2, .gathering-details h3 { color: var(--rose-silk); }
.gathering-welcome > p:last-child, .gathering-details address { color: var(--quiet-ink); }
.gathering-details, .gathering-attire { border-color: var(--gold-line); }
.gathering-details .eyebrow, .gathering-welcome .eyebrow { color: var(--sage); }
.compact-invite .rsvp-section { isolation: isolate; border-color: var(--gold-line); }
.rsvp-section::before { background: linear-gradient(125deg, var(--sand), var(--blush) 65%, var(--rose-wash)); }
.compact-invite .rsvp-copy h2 { color: var(--rose-silk); }
.compact-invite .rsvp-copy .eyebrow { color: var(--sage-deep); }
.compact-invite .rsvp-copy .privacy-note { color: var(--quiet-ink); }
.rsvp-artwork { border-color: var(--paper); outline-color: var(--antique-gold); box-shadow: 0 10px 28px #7e592e20; }
.compact-invite .form-card {
  background: var(--paper);
  border-color: var(--gold-line);
  border-top: 3px solid var(--antique-gold);
  box-shadow: 0 12px 32px #7e592e14;
}
label, legend { color: var(--ink); }
label span, .field small, .field-note, .fine-print { color: var(--quiet-ink); }
input, textarea {
  color: var(--ink);
  background: #fffcf3;
  border-color: #b99c7b;
  caret-color: var(--rose-silk);
}
input::placeholder, textarea::placeholder { color: var(--quiet-ink); }
input:focus, textarea:focus { border-color: var(--sage); }
.radio-options span { color: var(--ink); background: var(--rose-wash); border-color: #b99c7b; }
.radio-options label:hover span { background: var(--blush); border-color: var(--rose-silk); }
.radio-options input:checked + span { color: var(--paper); background: var(--sage); border-color: var(--sage); }
.optional-details { border-color: var(--gold-line); }
.optional-details summary { color: var(--rose-silk); }
.optional-details summary span { color: var(--quiet-ink); }
.service-status, .notice { background: var(--sage-wash); color: var(--sage-deep); }
#form-message { color: var(--rose-deep); }
.confirmation-mark, .small-status { color: var(--sage); }
#confirmation h3 { color: var(--rose-silk); }
footer, .compact-invite .compact-footer { background: var(--sage); border-color: var(--antique-gold); }
footer p, .compact-footer .text-link, .compact-footer .small-status { color: var(--paper); }
.compact-footer .text-link { border-color: #c8bc92; }
.compact-footer .text-link:hover { color: #ffe0ca; border-color: #ffe0ca; }
.compact-footer a:focus-visible, .compact-footer button:focus-visible { outline-color: var(--paper); }
.mobile-rsvp { background: #fff2d8f5; border-color: var(--gold-line); }
.music-toggle { color: var(--sage-deep); background: var(--paper); border-color: var(--gold-line); box-shadow: 0 3px 18px #503b2c20; }
.music-toggle:hover { color: var(--sage-deep); background: var(--sage-wash); }
.music-toggle[data-enabled='true'] { color: var(--paper); background: var(--sage); border-color: var(--sage); }
.music-status { color: var(--ink); background: var(--paper); border-color: var(--gold-line); }
.skip { background: var(--paper); color: var(--rose-deep); }
/* The private host screens use the same palette without changing access or data. */
.admin-page { background: linear-gradient(135deg, var(--ivory), var(--rose-wash)); min-height: 100vh; }
.admin-heading h1, .stat strong, #admin-message { color: var(--rose-silk); }
.admin-subtitle, .admin-footnote { color: var(--quiet-ink); }
.admin-login, .table-wrap { background: var(--paper); border-color: var(--gold-line); }
.stat { background: var(--sage-wash); border-color: var(--sage); }
.stat:nth-child(3) { background: var(--sand); border-color: var(--antique-gold); }
.stat:nth-child(4) { background: var(--blush); border-color: var(--rose-silk); }
th { background: var(--sage-wash); color: var(--sage-deep); }
th, td { border-color: #dcc8aa; }
@media (max-width: 600px) {
  .gathering::before { background: linear-gradient(155deg, var(--ivory), #f7e8ce 70%, #e8e9d6); }
  .rsvp-section::before { background: linear-gradient(160deg, var(--sand), var(--blush) 55%, var(--rose-wash)); }
  .music-toggle { box-shadow: none; }
}
