﻿/* ── RSVP Page ───────────────────────────────────────────────── */
.rsvp-page {
    max-width: 480px;
    margin: 0 auto;
    min-height: 100svh;
    background: #FAF6F1;
    display: flex;
    flex-direction: column;
}

/* ── Top bar ─────────────────────────────────────────────────── */
.rsvp-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    background: #fff;
    border-bottom: 1px solid #E8DDD4;
    position: sticky;
    top: 0;
    z-index: 10;
}

.rsvp-topbar-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 18px;
    color: #1A0F0C;
    font-weight: 300;
}

.rsvp-back, .rsvp-refresh {
    background: none;
    border: none;
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    color: #9E8C87;
    cursor: pointer;
    padding: 4px 8px;
    transition: color .15s;
}

    .rsvp-back:hover, .rsvp-refresh:hover {
        color: #C48B9F;
    }

/* ── Summary cards ───────────────────────────────────────────── */
.rsvp-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: #E8DDD4;
    border-bottom: 1px solid #E8DDD4;
}

.rsvp-stat {
    background: #fff;
    padding: 16px 8px;
    text-align: center;
}

.rsvp-stat-val {
    font-family: 'Cormorant Garamond', serif;
    font-size: 28px;
    font-weight: 300;
    line-height: 1;
    margin-bottom: 4px;
}

.rsvp-stat-label {
    font-family: 'Jost', sans-serif;
    font-size: 9px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #9E8C87;
}

.rsvp-stat-attending .rsvp-stat-val {
    color: #5A8A55;
}

.rsvp-stat-declined .rsvp-stat-val {
    color: #C0392B;
}

.rsvp-stat-maybe .rsvp-stat-val {
    color: #C9A96E;
}

.rsvp-stat-total .rsvp-stat-val {
    color: #C48B9F;
}

/* ── List ────────────────────────────────────────────────────── */
.rsvp-list {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: #E8DDD4;
    flex: 1;
}

.rsvp-entry {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 20px;
    background: #fff;
}

.rsvp-entry-left {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    flex: 1;
}

.rsvp-entry-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #F0E8DC;
    color: #C48B9F;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    flex-shrink: 0;
}

.rsvp-entry-name {
    font-family: 'Jost', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #1A0F0C;
    margin: 0 0 2px;
}

.rsvp-entry-time {
    font-family: 'Jost', sans-serif;
    font-size: 10px;
    color: #9E8C87;
    margin: 0 0 4px;
}

.rsvp-entry-msg {
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    color: #6B5B54;
    font-style: italic;
    margin: 0;
}

.rsvp-entry-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0;
}

.rsvp-status-badge {
    font-family: 'Jost', sans-serif;
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 2px;
}

.rsvp-status-attending {
    background: rgba(90,138,85,.1);
    color: #5A8A55;
}

.rsvp-status-declined {
    background: rgba(192,57,43,.08);
    color: #C0392B;
}

.rsvp-status-maybe {
    background: rgba(201,169,110,.12);
    color: #8A6520;
}

.rsvp-guest-count {
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    color: #9E8C87;
}

.rsvp-delete-btn {
    background: none;
    border: none;
    font-size: 11px;
    color: #C4B4A8;
    cursor: pointer;
    padding: 2px;
    transition: color .15s;
}

    .rsvp-delete-btn:hover {
        color: #C0392B;
    }

/* ── Empty ───────────────────────────────────────────────────── */
.rsvp-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 24px;
    text-align: center;
    gap: 8px;
}

.rsvp-empty-icon {
    font-size: 48px;
    opacity: .3;
    margin: 0;
}

.rsvp-empty-text {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 22px;
    color: #1A0F0C;
    margin: 0;
}

.rsvp-empty-sub {
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    color: #9E8C87;
    margin: 0;
    line-height: 1.7;
}

/* ── Loading ─────────────────────────────────────────────────── */
.rsvp-loading {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ════════════════════════════════════════════
   RSVP DASHBOARD
   ════════════════════════════════════════════ */
.rsvp-dashboard {
    min-height: 100vh;
    background: #fbfbee;
    padding: 0 0 48px;
    font-family: 'Jost', sans-serif;
    max-width: 480px;
    margin: 0 auto;
}

/* ── Loading ─────────────────────────────────────────────────── */
.rsvp-dash-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    gap: 12px;
    color: #9E8C87;
    font-size: 13px;
}

.rsvp-dash-spinner {
    width: 28px;
    height: 28px;
    border: 2px solid #E8DDD4;
    border-top-color: #C48B9F;
    border-radius: 50%;
    animation: rsvp-spin .8s linear infinite;
}

@keyframes rsvp-spin {
    to {
        transform: rotate(360deg);
    }
}

/* ── Header ──────────────────────────────────────────────────── */
.rsvp-dash-header {
    background: #fff;
    border-bottom: 1px solid #E8DDD4;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.rsvp-dash-brand {
    display: flex;
    align-items: center;
    gap: 8px;
}

.rsvp-dash-brand-logo {
    width: 28px;
    height: 28px;
    object-fit: contain;
    border-radius: 6px;
}

.rsvp-dash-brand-name {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 18px;
    font-weight: 300;
    color: #1A0F0C;
}

.rsvp-dash-header-label {
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #9E8C87;
    margin: 0;
}

/* ── Invitation card ─────────────────────────────────────────── */
.rsvp-dash-inv-card {
    background: #fff;
    margin: 16px;
    border-radius: 12px;
    border: 1px solid #E8DDD4;
    overflow: hidden;
}

.rsvp-dash-inv-top {
    padding: 20px 20px 16px;
    background: linear-gradient(160deg, #FFFAF7 0%, #FDF3F7 50%, #FAF0F5 100%);
    border-bottom: 1px solid #E8DDD4;
}

.rsvp-dash-inv-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.rsvp-dash-inv-type {
    font-size: 11px;
    color: #9E8C87;
    letter-spacing: .06em;
}

.rsvp-dash-inv-tier {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 2px;
}

.rsvp-dash-inv-tier--free {
    background: #F0EBE5;
    color: #9E8C87;
}

.rsvp-dash-inv-tier--premium {
    background: rgba(196,139,159,.12);
    color: #C48B9F;
}

.rsvp-dash-inv-tier--plus {
    background: rgba(201,169,110,.12);
    color: #8A6520;
}

.rsvp-dash-inv-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 24px;
    font-weight: 300;
    color: #1A0F0C;
    margin: 0 0 4px;
    line-height: 1.2;
}

.rsvp-dash-inv-slug {
    font-size: 11px;
    color: #C48B9F;
    font-family: 'Courier New', monospace;
    margin: 0;
}

/* ── Detail rows ─────────────────────────────────────────────── */
.rsvp-dash-inv-details {
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    border-bottom: 1px solid #E8DDD4;
}

.rsvp-dash-detail-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.rsvp-dash-detail-icon {
    font-size: 16px;
    flex-shrink: 0;
    margin-top: 1px;
}

.rsvp-dash-detail-label {
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #9E8C87;
    margin: 0 0 2px;
}

.rsvp-dash-detail-val {
    font-size: 13px;
    color: #3A3230;
    margin: 0;
}

/* ── Actions ─────────────────────────────────────────────────── */
.rsvp-dash-actions {
    padding: 16px 20px;
    display: flex;
    gap: 10px;
}

.rsvp-dash-btn {
    flex: 1;
    padding: 12px;
    border-radius: 6px;
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .06em;
    text-align: center;
    cursor: pointer;
    border: none;
    text-decoration: none;
    display: block;
    transition: background .2s, transform .15s;
}

    .rsvp-dash-btn:active {
        transform: scale(.97);
    }

.rsvp-dash-btn--primary {
    background: #C48B9F;
    color: #fff;
}

    .rsvp-dash-btn--primary:hover {
        background: #A06070;
    }

.rsvp-dash-btn--ghost {
    background: #FAF6F1;
    color: #6B5B54;
    border: 1px solid #E8DDD4;
}

    .rsvp-dash-btn--ghost:hover {
        background: #F0EBE5;
    }

/* ── Section ─────────────────────────────────────────────────── */
.rsvp-dash-section {
    margin: 16px;
}

.rsvp-dash-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.rsvp-dash-section-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 20px;
    font-weight: 300;
    color: #1A0F0C;
    margin: 0;
}

.rsvp-dash-refresh {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid #E8DDD4;
    background: #fff;
    font-size: 14px;
    color: #9E8C87;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s;
}

    .rsvp-dash-refresh:hover {
        background: #F0EBE5;
    }

/* ── Stats ───────────────────────────────────────────────────── */
.rsvp-dash-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}

.rsvp-dash-stat {
    background: #fff;
    border: 1px solid #E8DDD4;
    border-radius: 10px;
    padding: 16px 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.rsvp-dash-stat-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: 28px;
    font-weight: 300;
    line-height: 1;
}

.rsvp-dash-stat-label {
    font-size: 9px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #9E8C87;
}

.rsvp-dash-stat--attending .rsvp-dash-stat-num {
    color: #5A8A55;
}

.rsvp-dash-stat--declined .rsvp-dash-stat-num {
    color: #C0392B;
}

.rsvp-dash-stat--total .rsvp-dash-stat-num {
    color: #C48B9F;
}

/* ── No entries ──────────────────────────────────────────────── */
.rsvp-dash-no-entries {
    background: #fff;
    border: 1px solid #E8DDD4;
    border-radius: 10px;
    padding: 32px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rsvp-dash-no-entries-icon {
    font-size: 32px;
}

.rsvp-dash-no-entries-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 18px;
    font-weight: 300;
    color: #1A0F0C;
    margin: 0;
}

.rsvp-dash-no-entries-sub {
    font-size: 12px;
    color: #9E8C87;
    line-height: 1.6;
    margin: 0 0 8px;
}

/* ── Entry list ──────────────────────────────────────────────── */
.rsvp-dash-entries {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rsvp-dash-entry {
    background: #fff;
    border: 1px solid #E8DDD4;
    border-radius: 10px;
    padding: 14px 16px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    border-left: 3px solid transparent;
    transition: border-color .2s;
}

.rsvp-dash-entry--attending {
    border-left-color: #5A8A55;
}

.rsvp-dash-entry--declined {
    border-left-color: #C0392B;
}

.rsvp-dash-entry-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #F7D6E6, #F0C0D8);
    color: #C48B9F;
    font-family: 'Cormorant Garamond', serif;
    font-size: 16px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rsvp-dash-entry-body {
    flex: 1;
}

.rsvp-dash-entry-name {
    font-size: 14px;
    font-weight: 500;
    color: #1A0F0C;
    margin: 0 0 2px;
}

.rsvp-dash-entry-time {
    font-size: 10px;
    color: #9E8C87;
    margin: 0;
}

.rsvp-dash-entry-msg {
    font-size: 11px;
    color: #A06070;
    font-style: italic;
    margin: 8px 5px;
    line-height: 1.2;
}

.rsvp-dash-entry-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    flex-shrink: 0;
}

.rsvp-dash-badge {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 2px;
}

.rsvp-dash-badge--attending {
    background: rgba(90,138,85,.1);
    color: #5A8A55;
}

.rsvp-dash-badge--declined {
    background: rgba(192,57,43,.08);
    color: #C0392B;
}

.rsvp-dash-guest-count {
    font-size: 10px;
    color: #9E8C87;
}

.rsvp-dash-delete {
    background: none;
    border: none;
    color: #D4C4B0;
    font-size: 12px;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 4px;
    transition: color .2s, background .2s;
}

    .rsvp-dash-delete:hover {
        color: #C0392B;
        background: rgba(192,57,43,.06);
    }

/* ── Empty state ─────────────────────────────────────────────── */
.rsvp-dash-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 60vh;
    text-align: center;
    padding: 32px;
    color: #9E8C87;
    font-size: 14px;
}

.rsvp-dash-empty-icon {
    font-size: 40px;
}
