/* The host dashboard shares the site's paper, chocolate and botanical palette. */
.rsvp-dashboard { padding-bottom: 70px; }
.rsvp-dashboard .dashboard-intro { padding-top: 48px; padding-bottom: 30px; }
.rsvp-dashboard .dashboard-intro .lede { max-width: 690px; margin-top: 20px; }
.dashboard-demo-note { display: flex; align-items: center; gap: 9px; margin-top: 24px; color: #775e48; font-size: 13px; }
.dashboard-demo-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #6a7c5a; box-shadow: 0 0 0 4px #6a7c5a14; }
.dashboard-context { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 25px 28px; border: 1px solid #c7a67c70; border-radius: 18px; background: #f6eddf; }
.dashboard-context h2 { margin: 5px 0 8px; color: #47271a; font: 400 clamp(28px, 3vw, 40px)/1.16 Editorial, Georgia, serif; overflow-wrap: anywhere; }
.dashboard-context .eyebrow { font-size: 10px; letter-spacing: 1.8px; }
.dashboard-context p:not(.eyebrow) { font-size: 13px; color: #7c6552; }
.dashboard-celebration-label { display: grid; gap: 7px; min-width: 225px; color: #795b42; font: 500 11px/1.4 Studio, Arial, sans-serif; letter-spacing: .05em; }
.dashboard-celebration-label select { width: 100%; padding: 12px 34px 12px 14px; border: 1px solid #c8ad8b; border-radius: 10px; background-color: #fffaf1; color: #472b1e; font-size: 14px; letter-spacing: 0; }
.dashboard-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 23px 0 10px; }
.dashboard-actions .button { min-height: 46px; gap: 10px; padding: 12px 20px; font-size: 14px; }
.dashboard-feedback { min-height: 28px; margin: 0 0 14px; color: #4e674b; font-size: 13px; }
.dashboard-how-to { margin: 0 0 15px; max-width: 720px; color: #8a7056; font-size: 12px; line-height: 1.8; }
.dashboard-link-generator { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); gap: 20px 32px; margin: 9px 0 27px; }
.dashboard-link-generator .eyebrow { margin-bottom: 8px; font-size: 9px; letter-spacing: 1.6px; }
.dashboard-link-generator .card-caption { max-width: 430px; margin-bottom: 15px; line-height: 1.8; }
.dashboard-link-design { color: #667b52; font-size: 12px; }
.dashboard-link-generator .dashboard-form { gap: 13px; }
.dashboard-generated-link { grid-column: 1 / -1; padding-top: 20px; border-top: 1px solid #e3cfb0; }
.dashboard-generated-link[hidden] { display: none; }
.dashboard-greeting-preview { margin-bottom: 15px; color: #61754f; font: italic 25px/1.4 Editorial,Georgia,serif; overflow-wrap: anywhere; }
.dashboard-generated-link label { display: grid; gap: 8px; color: #86664a; font-size: 11px; }
.dashboard-generated-link textarea { width: 100%; min-width: 0; padding: 13px; border: 1px solid #d4bc99; border-radius: 10px; background: #faf2e3; color: #63462e; font: 400 13px/1.7 Studio,Arial,sans-serif; overflow-wrap: anywhere; resize: vertical; }
.dashboard-link-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 15px; }
.dashboard-link-actions .button { min-height: 44px; padding: 10px 20px; font-size: 13px; }
.dashboard-link-feedback { grid-column: 1 / -1; min-height: 18px; margin: 0; color: #6d805b; font-size: 12px; }
.dashboard-guest-link { display: block; margin-top: 5px; font-size: 11px; }
.dashboard-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 17px; }
.dashboard-stat { min-width: 0; padding: 23px; border: 1px solid #d9c6aa; border-radius: 16px; background: #fff9ee; }
.dashboard-stat strong { display: block; margin: 8px 0 6px; color: #4c2c1c; font: 400 clamp(34px, 4vw, 48px)/1.05 Editorial, Georgia, serif; font-variant-numeric: tabular-nums; }
.dashboard-stat .stat-label { font-size: 12px; color: #765b45; }
.dashboard-stat .stat-detail { display: block; min-height: 18px; font-size: 12px; color: #866e57; }
.dashboard-stat.is-attending { background: #ebefdf; border-color: #b4c09e; }
.dashboard-stat.is-attending strong { color: #43573c; }
.dashboard-progress { display: flex; align-items: center; gap: 18px; padding: 21px 0 29px; }
.dashboard-progress-label { flex: 0 0 auto; color: #71563e; font-size: 12px; }
.dashboard-progress-track { display: flex; flex: 1; height: 7px; overflow: hidden; border-radius: 99px; background: #e8dbc6; }
.dashboard-progress-track span { display: block; height: 100%; transition: width .3s ease; }
.dashboard-progress-yes { background: #71815e; }
.dashboard-progress-no { background: #af8c72; }
.dashboard-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.dashboard-section-head h2 { margin: 0; color: #4b2b1b; font: 400 29px/1.2 Editorial, Georgia, serif; }
.dashboard-section-head p { margin-top: 5px; color: #836a52; font-size: 12px; }
.dashboard-event-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; margin-bottom: 30px; }
.dashboard-event { min-width: 0; padding: 21px 23px; border: 1px solid #d7c2a3; border-radius: 15px; background: linear-gradient(135deg, #f3e6d1, #fbf4e8); }
.dashboard-event h3 { color: #583a26; font: 400 24px/1.2 Editorial, Georgia, serif; overflow-wrap: anywhere; }
.dashboard-event p { margin-top: 5px; color: #8b7057; font-size: 12px; }
.dashboard-event strong { display: inline-block; margin: 16px 7px 0 0; color: #526447; font: 400 33px/1.1 Editorial, Georgia, serif; }
.dashboard-event > span { color: #7b6048; font-size: 12px; }
.dashboard-event-note { margin: -15px 0 29px; color: #866d56; font-size: 12px; }
.dashboard-layout { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 22px; align-items: start; }
.dashboard-card { min-width: 0; padding: 24px; border: 1px solid #d8c4a7; border-radius: 17px; background: #fffaf2; box-shadow: 0 8px 28px #482b1708; }
.dashboard-card h2 { margin: 0; color: #4c2c1c; font: 400 29px/1.2 Editorial, Georgia, serif; }
.dashboard-card h3 { margin: 0 0 5px; color: #5c3d29; font: 400 24px/1.2 Editorial, Georgia, serif; }
.dashboard-card .card-caption { margin: 7px 0 19px; color: #8a7158; font-size: 12px; }
.dashboard-card-top { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin-bottom: 20px; }
.dashboard-link-button { padding: 0; border: 0; background: transparent; color: #8c512f; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.dashboard-filters { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }
.dashboard-filter { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 8px 11px; border: 1px solid #d9c7ad; border-radius: 99px; background: transparent; color: #74543d; font: 400 12px/1.3 Studio, Arial, sans-serif; }
.dashboard-filter[aria-pressed="true"] { border-color: #543320; background: #543320; color: #fff1d9; }
.dashboard-filter-count { opacity: .76; font-size: 11px; }
.dashboard-search-row { display: grid; grid-template-columns: minmax(0, 1fr) 175px; gap: 10px; margin-bottom: 18px; }
.dashboard-search-row label { display: grid; gap: 6px; font-size: 11px; color: #866a50; }
.dashboard-search-row input, .dashboard-search-row select { width: 100%; min-width: 0; min-height: 43px; padding: 10px 12px; border: 1px solid #d7c2a5; border-radius: 9px; background: #fcf6eb; color: #513523; font-size: 13px; }
.dashboard-table-wrap { overflow-x: auto; }
.dashboard-table { width: 100%; border-collapse: collapse; text-align: left; }
.dashboard-table th { padding: 12px 8px; border-block: 1px solid #e5d6bf; color: #8d745a; font: 500 10px/1.5 Studio, Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.dashboard-table td { padding: 16px 8px; border-bottom: 1px solid #ecdfcc; vertical-align: top; color: #5c402d; font-size: 12px; line-height: 1.6; }
.dashboard-table td:first-child, .dashboard-table th:first-child { padding-left: 0; }
.dashboard-table td:last-child, .dashboard-table th:last-child { padding-right: 0; text-align: right; }
.dashboard-table strong { display: block; color: #492f20; font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.dashboard-table small { display: block; margin-top: 3px; color: #967d63; font-size: 10px; }
.dashboard-table .guest-events span { display: block; }
.dashboard-status { display: inline-block; max-width: 100%; padding: 5px 8px; border-radius: 7px; font: 500 10px/1.35 Studio, Arial, sans-serif; }
.dashboard-status.is-yes { background: #e8eedf; color: #4e6643; }
.dashboard-status.is-no { background: #f0e1d7; color: #8b5740; }
.dashboard-status.is-pending { background: #f6eacb; color: #936f2c; }
.dashboard-view { padding: 5px 0; border: 0; background: transparent; color: #865335; font-size: 12px; white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
.dashboard-empty { text-align: center !important; padding: 42px 16px !important; color: #8c7055 !important; }
.dashboard-list-count { margin-top: 17px; color: #957d64; font-size: 11px; }
.dashboard-aside { display: grid; gap: 20px; }
.dashboard-preference { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; padding: 10px 0; border-bottom: 1px solid #eadcc8; color: #7d624c; font-size: 12px; }
.dashboard-preference strong { color: #526447; font-weight: 600; }
.dashboard-travel { margin-top: 19px; color: #6c5945; font-size: 12px; line-height: 1.8; }
.dashboard-guest-note { margin: 0; padding: 16px 0; border-bottom: 1px solid #eadcc8; }
.dashboard-guest-note p { color: #7c624a; font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
.dashboard-guest-note cite { display: block; margin-top: 7px; color: #4e674b; font-size: 11px; font-style: normal; }
.dashboard-plan-note { padding: 28px 0 0; color: #83684e; font-size: 13px; text-align: center; }
.dashboard-plan-note a { color: #754b2d; text-decoration: underline; text-underline-offset: 4px; }
.dashboard-dialog { width: min(620px, calc(100% - 24px)); max-height: calc(100dvh - 32px); padding: 0; border: 1px solid #c7a577; border-radius: 20px; background: #fff8ed; color: #513523; box-shadow: 0 24px 100px #20130966; overflow-y: auto; }
.dashboard-dialog::backdrop { background: #2a1a10a6; backdrop-filter: blur(5px); }
.dashboard-dialog-header { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; padding: 23px 25px 18px; border-bottom: 1px solid #e2cfb1; background: #fff8edf5; }
.dashboard-dialog h2 { margin: 4px 0 0; color: #4c2c1c; font: 400 30px/1.15 Editorial, Georgia, serif; overflow-wrap: anywhere; }
.dashboard-dialog-header .eyebrow { font-size: 9px; }
.dashboard-dialog-close { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border: 1px solid #d6be9d; border-radius: 50%; background: transparent; color: #735038; font-size: 25px; line-height: 1; }
.dashboard-dialog-body { padding: 23px 25px 26px; }
.dashboard-dialog-body > p { margin-bottom: 20px; color: #85684c; font-size: 13px; line-height: 1.8; }
.dashboard-form { display: grid; gap: 17px; }
.dashboard-form label { display: grid; gap: 7px; min-width: 0; color: #74583f; font-size: 12px; }
.dashboard-form input:not([type="checkbox"]), .dashboard-form select, .dashboard-form textarea { width: 100%; min-width: 0; min-height: 46px; padding: 11px 13px; border: 1px solid #d6be9d; border-radius: 10px; background: #fffdf7; color: #4d3322; font-size: 16px; }
.dashboard-form textarea { min-height: 85px; resize: vertical; }
.dashboard-form-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.dashboard-form fieldset { min-width: 0; margin: 0; padding: 16px; border: 1px solid #d8c3a6; border-radius: 12px; }
.dashboard-form legend { padding-inline: 6px; color: #74583f; font-size: 12px; }
.dashboard-form .dashboard-check { display: flex; align-items: flex-start; gap: 10px; padding-block: 7px; font-size: 13px; line-height: 1.5; }
.dashboard-check input { width: 17px; height: 17px; flex: 0 0 17px; margin-top: 1px; accent-color: #667957; }
.dashboard-form-extras { display: grid; gap: 17px; }
.dashboard-form-extras[hidden] { display: none; }
.dashboard-form .button, .dashboard-dialog-body .button { min-height: 46px; padding: 12px 18px; font-size: 14px; }
.dashboard-response-detail { display: grid; gap: 0; margin: 0 0 24px; }
.dashboard-response-detail > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 16px; padding: 13px 0; border-bottom: 1px solid #eadbc4; }
.dashboard-response-detail dt { color: #96795e; font-size: 12px; }
.dashboard-response-detail dd { margin: 0; color: #5d422d; font-size: 13px; overflow-wrap: anywhere; white-space: pre-wrap; }
.rsvp-dashboard-teaser { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 35px; align-items: center; padding-block: 55px; }
.rsvp-dashboard-teaser h2 { margin: 14px 0 20px; }
.rsvp-dashboard-teaser p:not(.eyebrow) { max-width: 600px; }
.rsvp-dashboard-teaser .button { margin-top: 22px; }
.rsvp-teaser-card { position: relative; padding: 32px; border: 1px solid #c6ac86; border-radius: 20px; background: linear-gradient(130deg, #f5e9d6, #fdf6e9); box-shadow: 0 15px 38px #4b2b1710; }
.rsvp-teaser-card::after { content: ''; position: absolute; right: 6px; bottom: 2px; width: 65px; height: 85px; background: url('bronze-botanical.svg') no-repeat right bottom / contain; opacity: .32; pointer-events: none; }
.rsvp-teaser-card h3 { color: #51321e; font: 400 27px/1.2 Editorial, Georgia, serif; }
.rsvp-teaser-card ul { padding: 0; margin: 18px 0 0; list-style: none; }
.rsvp-teaser-card li { padding: 10px 0; border-bottom: 1px solid #ddc8a9; color: #76583e; font-size: 14px; }
.rsvp-teaser-card li::before { content: '✓'; margin-right: 12px; color: #60744f; }
.rsvp-inline-link { color: #89502f; text-decoration: underline; text-underline-offset: 4px; font-size: inherit; }
.rsvp-home-dashboard { min-width: 0; padding: 27px; border: 1px solid #c5a57c; border-radius: 20px; background: #fff7e9; box-shadow: 0 16px 44px #48291412; }
.rsvp-home-dashboard-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid #e4d1b5; }
.rsvp-home-dashboard-top h3 { margin: 5px 0 0; font: 400 28px/1.15 Editorial, Georgia, serif; color: #513220; overflow-wrap: anywhere; }
.rsvp-home-dashboard .eyebrow { color: #93714d; font-size: 9px; letter-spacing: 1.3px; }
.rsvp-home-live { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; color: #647953; font-size: 10px; }
.rsvp-home-live::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #71805c; }
.rsvp-home-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 19px 0; }
.rsvp-home-totals > div { min-width: 0; padding: 14px 12px; border-radius: 11px; background: #f1e6d2; }
.rsvp-home-totals > div:nth-child(2) { background: #e7eddb; }
.rsvp-home-totals span { display: block; color: #806449; font-size: 10px; }
.rsvp-home-totals strong { display: block; margin-top: 7px; color: #4c5f3e; font: 400 35px/1.05 Editorial, Georgia, serif; }
.rsvp-home-progress-label { color: #8f7558; font-size: 10px; }
.rsvp-home-progress-track { height: 5px; margin: 8px 0 20px; overflow: hidden; border-radius: 99px; background: #e6d7bd; }
.rsvp-home-progress-track > span { display: block; width: 75%; height: 100%; border-radius: inherit; background: #758660; transition: width .3s ease; }
.rsvp-home-dashboard h4 { margin: 0 0 4px; color: #846448; font: 500 10px/1.5 Studio, Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.rsvp-home-replies { padding: 0; margin: 0 0 19px; list-style: none; }
.rsvp-home-reply { display: flex; justify-content: space-between; align-items: center; gap: 13px; padding: 12px 0; border-bottom: 1px solid #e8d8be; }
.rsvp-home-reply > div { min-width: 0; }
.rsvp-home-reply strong { display: block; color: #583b25; font: 500 12px/1.5 Studio, Arial, sans-serif; overflow-wrap: anywhere; }
.rsvp-home-reply > div > span { display: block; margin-top: 2px; color: #9b8164; font-size: 10px; }
.rsvp-home-reply > .dashboard-status { flex: 0 0 auto; }
.rsvp-home-try { width: 100%; min-height: 46px; padding: 11px 16px; border: 1px solid #637651; border-radius: 99px; background: #637651; color: #fff4dd; font: 500 13px/1.5 Studio, Arial, sans-serif; }
.rsvp-home-try:hover { background: #526444; }
.rsvp-home-try:disabled { background: #e7eadf; color: #6e7b60; border-color: #c7d0b8; }
.rsvp-home-feedback { min-height: 32px; margin: 10px 0 0; color: #71805b; font-size: 10px; line-height: 1.6; }
@media (max-width:980px) { .rsvp-dashboard-teaser { grid-template-columns: 1fr; } }
@media (max-width:1100px) { .dashboard-layout { grid-template-columns: minmax(0, 1fr); } .dashboard-aside { grid-template-columns: 1fr 1fr; } }
@media (max-width:760px) {
  .dashboard-link-generator { grid-template-columns: 1fr; gap: 20px; }
  .rsvp-dashboard .dashboard-intro { padding-top: 35px; }
  .dashboard-context { align-items: stretch; flex-direction: column; padding: 22px; gap: 19px; }
  .dashboard-celebration-label { min-width: 0; }
  .dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .dashboard-stat { padding: 18px; }
  .dashboard-event-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .dashboard-event { padding: 18px; }
  .dashboard-event h3 { font-size: 22px; }
  .dashboard-card { padding: 20px; }
  .dashboard-aside { grid-template-columns: 1fr; }
  .dashboard-search-row { grid-template-columns: 1fr; }
  .dashboard-table, .dashboard-table tbody, .dashboard-table tr, .dashboard-table td { display: block; width: 100%; }
  .dashboard-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .dashboard-table tbody tr { padding: 16px 0; border-bottom: 1px solid #ddc9ab; }
  .dashboard-table td, .dashboard-table td:first-child, .dashboard-table td:last-child { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; padding: 7px 0; border: 0; text-align: left; }
  .dashboard-table td::before { content: attr(data-label); color: #9b8165; font-size: 10px; padding-top: 2px; }
  .dashboard-table td.dashboard-empty { display: block; }
  .dashboard-table td.dashboard-empty::before { display: none; }
  .dashboard-table .dashboard-view { width: max-content; }
  .dashboard-view { min-height: 44px; }
  .dashboard-table .dashboard-status { width: max-content; max-width: 100%; }
  .dashboard-progress { gap: 12px; }
  .dashboard-dialog-body, .dashboard-dialog-header { padding-inline: 20px; }
  .dashboard-dialog h2 { font-size: 27px; }
  .dashboard-form-pair { gap: 10px; }
  .rsvp-dashboard-teaser { grid-template-columns: 1fr; gap: 26px; padding-block: 38px; }
  .rsvp-home-dashboard { padding: 20px; }
  .rsvp-home-dashboard-top h3 { font-size: 25px; }
  .rsvp-home-totals { gap: 8px; }
  .rsvp-home-totals > div { padding: 12px 9px; }
  .rsvp-home-totals strong { font-size: 30px; }
}
@media (max-width:370px) { .dashboard-event-grid { grid-template-columns: 1fr; } .dashboard-response-detail > div { grid-template-columns: 1fr; gap: 6px; } .dashboard-form-pair { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion:reduce) { .dashboard-progress-track span, .rsvp-home-progress-track > span { transition: none; } }
