/* ============================================================================
   Trip Wrangler — STYLES
   Brand tokens are locked (see :root). Change a color here and it updates
   everywhere it's used. Fonts: Nunito (logo), Fraunces (display), Inter (body),
   IBM Plex Mono (labels).
============================================================================ */

:root {
  /* Locked brand palette */
  --blood: #CD5000;   /* Blood Orange */
  --sky:   #93C3DB;   /* Sky Blue */
  --sagebrand: #7FAF7A;/* Sage Trail */
  --sun:   #E1B053;   /* Summer Sun */
  --oranges: #CD6200; /* Oranges */
  --sand:  #E3D6AD;   /* Sand */
  --slate: #5B656C;   /* Slate Gray */

  /* Working UI tones derived for this layout */
  --sage: #5B8C7E;
  --ink: #2B1A0E;
  --ink-soft: #6B4F3A;
  --card: #EDE4C8;
  --card-stub: #D9CC9E;
  --disc: #D0C490;
  --line: rgba(43, 26, 14, .18);
  --field: #f5eed8;
  --field-input: #e8dca8;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  background: var(--sand);
  color: var(--ink);
}

.app {
  max-width: 860px;
  margin: 0 auto;
  padding: 2rem 1.25rem 4rem;
}

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* --- Compact app-bar header --- */
.app-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 32px;
  background: #FBF6E9;
  border: 1px solid #EADFC0;
  border-radius: 18px;
  margin-bottom: 1.25rem;
  font-family: 'DM Sans', sans-serif;
}
.app-bar-left { display: flex; align-items: center; gap: 22px; min-width: 0; }
.app-bar-logo { height: 64px; width: auto; flex: none; }
.app-bar-text { min-width: 0; }
.app-bar-headline {
  font-family: 'Baloo 2', sans-serif;
  font-weight: 800;
  font-size: 22px;
  line-height: 1.1;
  letter-spacing: -0.5px;
}
.ab-slate { color: #5B656C; }
.ab-blood { color: #CD5000; }
.app-bar-support { font-size: 13px; color: #8a8f94; margin-top: 3px; }
.app-bar-cta {
  flex: none;
  font-family: 'Baloo 2', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #fff;
  background: #CD5000;
  border: none;
  border-radius: 11px;
  padding: 12px 22px;
  cursor: pointer;
  transition: background 200ms ease;
}
.app-bar-cta.coming { background: #7FAF7A; cursor: default; }

@media (max-width: 560px) {
  .app-bar { flex-wrap: wrap; gap: 14px; padding: 16px 18px; }
  .app-bar-left { flex: 1 1 100%; }
  .app-bar-cta { flex: 1 1 100%; }   /* button drops under the logo block */
}
@media (max-width: 480px) {
  .app-bar-support { display: none; } /* hide support line on very narrow screens */
}

.eyebrow {
  font-family: 'IBM Plex Mono', monospace;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--ink);            /* high-contrast dark, per brand note */
  font-weight: 700;
  margin: 0 0 .5rem;
}
.page-title {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 2.1rem;
  font-weight: 700;
  margin: 0 0 1rem;
}

/* --- Collapsible "Who's coming · when" timeline --- */
.tl-toggle {
  width: 100%;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 700;
  font-size: .85rem;
  border: 1.5px solid #6ba8c6;
  background: var(--sky);           /* brighter color for contrast */
  color: var(--ink);
  border-radius: 10px;
  padding: .7rem 1rem;
  cursor: pointer;
  font-family: inherit;
}

/* Know before we go — a different bright color for contrast */
.kbwg-wrap { margin-bottom: 1.25rem; }
.kbwg-toggle {
  width: 100%;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 700;
  font-size: .85rem;
  border: 1.5px solid #cfa23f;
  background: var(--sun);
  color: var(--ink);
  border-radius: 10px;
  padding: .7rem 1rem;
  cursor: pointer;
  font-family: inherit;
}
.kbwg-body {
  background: var(--card);
  border: 1.5px solid var(--line);
  border-top: none;
  border-radius: 0 0 10px 10px;
  margin-top: -.35rem;
  padding: 1rem;
}
.kbwg-display { font-size: .92rem; line-height: 1.5; color: var(--ink); }
.kbwg-display u { text-decoration: underline; }
.kbwg-empty { font-style: italic; color: var(--ink-soft); margin: 0; }
.kbwg-edit { margin-top: .9rem; padding-top: .8rem; border-top: 1.5px dashed var(--line); }
.kbwg-edit textarea {
  width: 100%;
  box-sizing: border-box;
  font-family: inherit;
  font-size: .9rem;
  color: var(--ink);
  border: 1.5px solid var(--line);
  border-radius: 8px;
  padding: .5rem .6rem;
  background: #fffdf6;
  resize: vertical;
}
.tl-body {
  background: var(--card);
  border: 1.5px solid var(--line);
  border-top: none;
  border-radius: 0 0 10px 10px;
  margin-top: -.35rem;
  padding: 1rem;
  overflow-x: auto;
}
.tl-wrap { margin-bottom: 1.25rem; }
.tl-table { border-collapse: collapse; font-size: .72rem; min-width: 640px; }
.tl-daycell {
  padding: .3rem .4rem;
  background: var(--ink);
  color: var(--sand);
  font-family: 'IBM Plex Mono', monospace;
  text-align: center;
  border-radius: 4px;
  white-space: nowrap;
}
.tl-name { padding: .35rem .5rem 0 0; font-weight: 600; white-space: nowrap; vertical-align: middle; }
.tl-empty { height: 26px; border-radius: 4px; background: rgba(43, 26, 14, .06); }
.tl-bar {
  height: 26px;
  background: var(--sage);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: 'IBM Plex Mono', monospace;
  font-size: .6rem;
  white-space: nowrap;
  overflow: hidden;
}
.tl-edit { margin-top: 1rem; padding-top: .9rem; border-top: 1.5px dashed var(--line); }
.tl-edit-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-soft);
  margin: 0 0 .5rem;
}
.tl-edit-row { display: flex; gap: 1rem; flex-wrap: wrap; }
.tl-edit-field { display: flex; flex-direction: column; gap: .25rem; font-size: .72rem; font-weight: 600; color: var(--ink-soft); }
.tl-edit-field input {
  font-family: inherit;
  font-size: .8rem;
  border: 1.5px solid var(--line);
  border-radius: 6px;
  padding: .35rem .5rem;
  background: var(--field);
  color: var(--ink);
}

/* --- Folder-tab navigation --- */
.folder-tabs {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  padding-left: 14px;
  position: relative;
  z-index: 2;
}
.folder-tab {
  font-family: 'Baloo 2', 'Nunito', sans-serif;
  cursor: pointer;
  /* inactive default */
  background: #E0D3AB;
  border: 1px solid #D2C599;
  border-bottom: none;
  border-radius: 11px 11px 0 0;
  padding: 11px 24px 12px;
  font-weight: 600;
  font-size: .95rem;
  color: #7A736A;
}
.folder-tab:hover { background: #E7DBB8; }
.folder-tab.active {
  background: #E9B84D;
  border: 1px solid #D9A83A;
  border-bottom: none;
  border-radius: 12px 12px 0 0;
  padding: 13px 26px 15px;
  font-weight: 700;
  color: #5B3A0E;
  box-shadow: 0 -3px 10px -6px rgba(91, 101, 108, .4);
  position: relative;
  top: 1px; /* overlap the panel border so the tab and panel read as one folder */
}
.folder-panel {
  position: relative;
  z-index: 1;
  background: #FBF6E9;
  border: 1px solid #D9A83A;
  border-radius: 0 14px 14px 14px;
  padding: 30px 32px 34px;
  box-shadow: 0 16px 40px -28px rgba(91, 101, 108, .6);
}

/* --- Identity / preview row --- */
.identity-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: .6rem;
  font-size: .85rem;
}
.identity-row .muted { color: var(--ink-soft); font-size: .75rem; font-style: italic; }
.link-blood { color: var(--blood); text-decoration: underline; cursor: pointer; }
.preview-toggle {
  font-size: .75rem;
  font-weight: 600;
  border: 1.5px solid var(--line);
  background: var(--card-stub);
  color: var(--ink-soft);
  border-radius: 8px;
  padding: .35rem .7rem;
  cursor: pointer;
  font-family: inherit;
}
.review-notice { font-size: .78rem; color: var(--blood); font-weight: 600; margin: 0 0 1.1rem; }

/* --- Per-tab dismissable banner --- */
.banner {
  position: relative;
  background: #FBF8EF;
  border: 1.5px solid var(--line);
  border-left: 4px solid var(--blood);
  border-radius: 10px;
  padding: .8rem 2.4rem .85rem 1rem;
  margin: 0 0 1.1rem;
}
.banner-title {
  display: block;
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink);
  margin-bottom: .25rem;
}
.banner p { margin: 0; font-size: .85rem; color: var(--ink-soft); line-height: 1.4; }
.banner-close {
  position: absolute;
  top: .45rem;
  right: .55rem;
  border: none;
  background: transparent;
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
  color: var(--ink-soft);
  padding: .15rem .3rem;
  border-radius: 6px;
  font-family: inherit;
}
.banner-close:hover { background: rgba(43, 26, 14, .08); color: var(--ink); }

/* Megaphone that appears after a banner is dismissed — click to reopen it. */
.msg-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1.5px solid var(--line);
  background: var(--card);
  color: var(--ink);
  border-radius: 10px;
  cursor: pointer;
  margin: 0 0 1.1rem;
  font-family: inherit;
}
.msg-toggle:hover { background: var(--card-stub); }
.msg-badge {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 19px;
  height: 19px;
  padding: 0 4px;
  background: #D12E28;            /* notification red */
  color: #fff;
  border-radius: 999px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--sand);
}

/* --- Day headers --- */
.day-block { margin-bottom: 2rem; }
.day-head { display: flex; align-items: center; gap: .7rem; margin-bottom: .8rem; }
.day-pill {
  font-family: 'Nunito', sans-serif;
  font-weight: 800;
  font-size: .72rem;
  color: #fff;
  border-radius: 6px;
  padding: .2rem .6rem;
}
.day-pill.populated { background: var(--oranges); }
.day-pill.empty { background: var(--ink-soft); }
.day-date { font-family: 'IBM Plex Mono', monospace; font-size: .78rem; color: var(--ink-soft); }
.day-rule { flex: 1; height: 2px; background: var(--ink); opacity: .12; }
.day-empty-note {
  background: var(--card);
  border: 1.5px dashed var(--line);
  border-radius: 14px;
  padding: 1rem 1.4rem;
  font-style: italic;
  color: var(--ink-soft);
  font-size: .92rem;
}
.free-day-lead { font-style: italic; color: var(--ink-soft); font-size: .85rem; margin: 0 0 .8rem; }

/* --- Activity card --- */
.card-top {
  background: var(--card);
  border: 1.5px solid var(--line);
  border-radius: 14px 14px 0 0;
  display: grid;
  grid-template-columns: 1fr 190px;
  overflow: hidden;
  margin-bottom: 1px;
}
.card-main { padding: 1rem 1.2rem; }
.card-title { font-family: 'Fraunces', Georgia, serif; font-size: 1.05rem; font-weight: 600; margin: 0 0 .35rem; }
.card-desc { font-size: .85rem; margin: 0 0 .5rem; }
.detail-link {
  font-size: .72rem;
  color: var(--blood);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid var(--blood);
}
.card-time { font-family: 'IBM Plex Mono', monospace; font-size: .7rem; color: var(--ink-soft); }
.inline-row { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }

.meta-row { margin-top: .5rem; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; font-size: .75rem; }
.mono-label {
  font-size: .68rem;
  color: var(--ink-soft);
  font-family: 'IBM Plex Mono', monospace;
  text-transform: uppercase;
}
.meet-line { font-size: .75rem; color: var(--ink-soft); margin: .4rem 0 0; }
.mandy-note {
  font-size: .78rem;
  color: var(--ink-soft);
  border-left: 3px solid var(--sky);
  padding-left: .6rem;
  margin: .5rem 0 0;
}

/* Badges / toggles */
.badge {
  font-size: .72rem;
  font-weight: 600;
  border-radius: 999px;
  padding: .15rem .6rem;
  border: 1.5px solid var(--line);
  color: var(--ink-soft);
  display: inline-block;
}
.badge.booked { border-color: var(--sagebrand); color: var(--sagebrand); }
.toggle { cursor: pointer; }
.toggle.on-booked { background: var(--sagebrand); color: #fff; border-color: var(--sagebrand); }
.toggle.on-advance { background: var(--oranges); color: #fff; border-color: var(--oranges); }

/* Mandy-only inputs */
select, input[type="number"], input[type="text"] { font-family: inherit; }
.field {
  font-size: .75rem;
  border: 1.5px solid var(--line);
  border-radius: 6px;
  padding: .2rem .4rem;
  background: var(--field);
}
.cost-fields { display: flex; gap: .6rem; align-items: center; margin-top: .4rem; flex-wrap: wrap; }
.cost-fields input { width: 60px; }
.unconfirmed-hint { font-size: .62rem; color: var(--blood); font-style: italic; }

.move-row { margin-top: .5rem; display: flex; align-items: center; gap: .4rem; }

/* Price stub (right column) */
.card-stub {
  background: var(--card-stub);
  border-left: 2px dashed var(--line);
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.price { font-family: 'IBM Plex Mono', monospace; font-weight: 600; font-size: 1.02rem; }
.rsvp-col { display: flex; flex-direction: column; gap: .25rem; margin-top: .3rem; }

/* RSVP buttons */
.btn-rsvp {
  font-weight: 600;
  border-radius: 6px;
  padding: .35rem;
  cursor: pointer;
  border: 1.5px solid var(--ink);
  background: transparent;
  color: var(--ink);
  font-size: .75rem;
  font-family: inherit;
}
.btn-rsvp.in-on { background: var(--blood); color: #fff; }
.btn-rsvp.maybe-on { background: var(--sun); color: var(--ink); }

/* Discussion strip */
.card-disc {
  background: var(--disc);
  border: 1.5px solid var(--line);
  border-top: none;
  border-radius: 0 0 14px 14px;
  padding: .7rem 1.2rem 1rem;
  margin-bottom: 1.1rem;
}
.chips { margin-bottom: .6rem; }
.chip {
  font-size: .68rem;
  border-radius: 999px;
  padding: .1rem .5rem;
  margin: 0 .2rem .2rem 0;
  display: inline-block;
  background: #f0e8cc;
  border: 1px solid var(--line);
}
.chip.maybe { background: transparent; border: 1px dashed var(--line); color: var(--ink-soft); }
.disc-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-soft);
  margin: 0 0 .5rem;
}
.comment { border-left: 2px solid var(--sun); padding-left: .55rem; margin-bottom: .4rem; font-size: .84rem; }
.comment .who { font-family: 'IBM Plex Mono', monospace; font-weight: 600; font-size: .73rem; color: var(--oranges); margin-right: .4rem; }
.no-notes { font-size: .78rem; font-style: italic; color: var(--ink-soft); margin-bottom: .5rem; }
.note-input-row { display: flex; gap: .4rem; margin-top: .4rem; }
.note-input {
  flex: 1;
  padding: .4rem .6rem;
  border: 1.5px solid var(--line);
  border-radius: 6px;
  font-size: .8rem;
  background: var(--field-input);
}
.btn-post {
  font-weight: 700;
  font-size: .78rem;
  border: none;
  border-radius: 6px;
  padding: .4rem .7rem;
  cursor: pointer;
  background: var(--ink);
  color: var(--sand);
  font-family: inherit;
}

/* --- Free for all! compact cards --- */
.section-head { margin-bottom: .8rem; }
.section-title { font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 1.2rem; }
.section-sub { font-size: .85rem; color: var(--ink-soft); margin: .2rem 0 0; }
.compact {
  background: var(--card);
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: .9rem 1.2rem;
  margin-bottom: .9rem;
}
.compact-head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem; }
.compact-name { font-family: 'Fraunces', Georgia, serif; font-weight: 600; font-size: 1rem; }
.pill-new {
  font-size: .62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  background: var(--sky);
  color: #0c3a52;
  border-radius: 999px;
  padding: .15rem .55rem;
  margin-left: .5rem;
}

/* --- Collapsible activity cards --- */
.card {
  border: 1.5px solid var(--line);
  border-radius: 14px;
  background: var(--card);
  margin-bottom: .8rem;
  overflow: hidden;
}
.card-head {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  padding: .8rem 1.1rem;
  cursor: pointer;
}
.card-head:hover { background: rgba(43, 26, 14, .035); }
.card-caret { color: var(--ink-soft); font-size: .75rem; line-height: 1.6; flex: none; width: 1em; text-align: center; }
.card-head-text { flex: 1; min-width: 0; }
.card-head-line1 { display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.card-head-title { font-family: 'Fraunces', Georgia, serif; font-weight: 600; font-size: 1.05rem; }
.card-head-meta { font-family: 'IBM Plex Mono', monospace; font-size: .72rem; color: var(--ink-soft); }
.card-head-line2 { font-size: .8rem; color: var(--ink-soft); margin-top: .15rem; word-break: break-word; }
.card-head-empty { font-style: italic; opacity: .8; }
.card-body { padding: 0 1.1rem 1rem; border-top: 1.5px solid var(--line); padding-top: .9rem; }

.card-actions { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-top: .7rem; flex-wrap: wrap; }
.rsvp-inline { display: flex; gap: .4rem; }
.rsvp-inline .btn-rsvp { padding: .35rem .7rem; }
.card-disc-inline {
  background: var(--disc);
  border: 1.5px solid var(--line);
  border-radius: 10px;
  padding: .7rem .9rem;
  margin-top: .8rem;
}

/* Mandy content editor */
.mandy-edit {
  margin-top: .8rem;
  padding: .8rem .9rem;
  border: 1.5px dashed var(--oranges);
  border-radius: 10px;
  background: #f7efd6;
}
.me-field { display: flex; flex-direction: column; gap: .2rem; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); margin-bottom: .55rem; }
.me-field input, .me-field textarea {
  font-family: inherit;
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
  font-size: .85rem;
  color: var(--ink);
  border: 1.5px solid var(--line);
  border-radius: 6px;
  padding: .35rem .5rem;
  background: #fffdf6;
}
.ed-delete {
  margin-top: .3rem;
  font-weight: 700;
  font-size: .78rem;
  border: 1.5px solid var(--blood);
  color: var(--blood);
  background: transparent;
  border-radius: 8px;
  padding: .4rem .8rem;
  cursor: pointer;
  font-family: inherit;
}
.ed-delete:hover { background: var(--blood); color: #fff; }

/* "Someone else collects" control */
.me-notowed { margin: .2rem 0 .6rem; }
.me-check {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  font-size: .82rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: normal;
  color: var(--ink);
  cursor: pointer;
}
.me-check input { width: 16px; height: 16px; margin-top: .1rem; flex: none; }

/* Add a New Addition */
.add-activity { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .9rem; }
.add-activity input {
  flex: 1;
  min-width: 140px;
  font-family: inherit;
  font-size: .85rem;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  padding: .45rem .6rem;
  background: #fffdf6;
}
#addActivityBtn {
  font-weight: 700;
  font-size: .85rem;
  border: none;
  border-radius: 8px;
  padding: .45rem 1rem;
  cursor: pointer;
  background: var(--oranges);
  color: #fff;
  font-family: inherit;
}

/* --- Pay Mandy tab --- */
.pay-intro { color: var(--ink-soft); font-size: .88rem; margin: 0 0 .2rem; }
.pay-sign { color: var(--ink-soft); font-size: .88rem; margin: 0 0 1rem; }
.pay-due { font-family: 'IBM Plex Mono', monospace; font-size: .72rem; color: var(--ink-soft); margin: 0 0 1.25rem; }
.pay-due strong { color: var(--blood); }
.pay-due a { color: var(--blood); }

.pay-row {
  background: var(--card);
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: 1rem 1.2rem;
  margin-bottom: .7rem;
}
.pay-row.locked { border-style: dashed; border-color: var(--blood); }
.pay-row.out { opacity: .6; font-style: italic; color: var(--ink-soft); padding: .9rem 1.2rem; }
.pay-row.paid { background: var(--card-stub); opacity: .7; }
.pay-head { display: flex; justify-content: space-between; align-items: center; gap: .6rem; }
.pay-name { font-weight: 700; font-family: 'Fraunces', Georgia, serif; font-size: 1.02rem; }
.pay-total { font-family: 'IBM Plex Mono', monospace; font-weight: 600; }
.pay-total.forecast { color: var(--ink); }
.pay-total.booked { color: var(--sagebrand); }
.pay-items { margin-top: .4rem; }
.pay-item { display: flex; justify-content: space-between; font-size: .82rem; padding: .15rem 0; }
.pay-item .amt { font-family: 'IBM Plex Mono', monospace; }
.pay-see-org { font-size: .78rem; color: var(--sage); font-style: italic; white-space: nowrap; }
.pay-locked-note { font-size: .72rem; color: var(--blood); font-weight: 600; margin: .5rem 0 0; }
.pay-check { display: flex; align-items: center; gap: .6rem; cursor: pointer; }
.pay-check input { width: 16px; height: 16px; }
.pay-check .pay-name { flex: 1; }
.pay-paid-note { font-size: .78rem; color: var(--sage); font-weight: 600; margin: .4rem 0 0; }
.pay-struck { text-decoration: line-through; color: var(--ink-soft); }

.grand-total {
  background: var(--card);
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: .9rem 1.2rem;
  margin: .5rem 0 .8rem;
}
.grand-total .label { font-weight: 700; font-family: 'Fraunces', Georgia, serif; font-size: 1.05rem; }
.grand-total .amt { font-family: 'IBM Plex Mono', monospace; color: var(--blood); }

.pay-methods { background: var(--ink); color: var(--sand); border-radius: 14px; padding: 1.2rem 1.5rem; }
.pay-methods .mono-label { color: rgba(227, 214, 173, .6); margin: 0 0 .8rem; }
.btn-venmo {
  display: inline-block;
  font-weight: 700;
  font-size: .85rem;
  text-decoration: none;
  border-radius: 8px;
  padding: .6rem 1.1rem;
  background: var(--blood);
  color: #fff;
}
.alt-block { margin-top: 1rem; border-top: 1px solid rgba(227, 214, 173, .25); padding-top: 1rem; }
.alt-block p { font-size: .85rem; margin: 0 0 .6rem; }
.alt-block label { display: block; font-size: .85rem; margin-bottom: .4rem; }
.btn-confirm {
  font-weight: 700;
  font-size: .82rem;
  border: none;
  border-radius: 8px;
  padding: .5rem 1rem;
  cursor: pointer;
  background: var(--sun);
  color: var(--ink);
  font-family: inherit;
  margin-top: .3rem;
}

.hidden { display: none; }

/* --- Required "Who are you?" identity gate --- */
.gate-overlay {
  position: fixed;
  inset: 0;
  background: rgba(43, 26, 14, .6);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  z-index: 1000;
}
.gate-card {
  background: #FBF8EF;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  padding: 1.5rem 1.5rem 1.6rem;
  max-width: 400px;
  width: 100%;
  box-shadow: 0 12px 40px rgba(43, 26, 14, .35);
}
.gate-title { font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 1.5rem; margin: 0 0 .3rem; }
.gate-sub { font-size: .9rem; color: var(--ink-soft); margin: 0 0 1rem; }
.gate-list { display: flex; flex-direction: column; gap: .1rem; max-height: 46vh; overflow-y: auto; margin-bottom: 1.1rem; }
.gate-option { display: flex; align-items: center; gap: .6rem; padding: .55rem .7rem; border-radius: 8px; cursor: pointer; font-size: .95rem; }
.gate-option:hover { background: var(--card); }
.gate-option input { width: 16px; height: 16px; accent-color: var(--blood); }
.gate-continue {
  width: 100%;
  font-weight: 700;
  font-size: .95rem;
  border: none;
  border-radius: 10px;
  padding: .7rem;
  cursor: pointer;
  background: var(--blood);
  color: #fff;
  font-family: inherit;
}
.gate-continue:disabled { background: var(--card-stub); color: var(--ink-soft); cursor: not-allowed; }

/* Small screens: stack the price stub under the card body */
@media (max-width: 560px) {
  .card-top { grid-template-columns: 1fr; }
  .card-stub { border-left: none; border-top: 2px dashed var(--line); flex-direction: row; align-items: center; justify-content: space-between; }
  .rsvp-col { flex-direction: row; margin-top: 0; }
  .folder-tabs { padding-left: 8px; gap: 4px; }
  .folder-tab { padding: 9px 16px 10px; font-size: .85rem; }
  .folder-tab.active { padding: 10px 18px 12px; }
  .folder-panel { padding: 20px 16px 24px; }
}
