:root{--color-primary: #000000;--color-primary-light: #333333;--color-secondary: #5856D6;--color-secondary-light: #8B89E6;--color-background: #FFFFFF;--color-surface: #F2F2F7;--color-success: #34C759;--color-success-light: #d4edda;--color-error: #FF3B30;--color-error-light: #f8d7da;--color-warning: #FF9500;--color-warning-light: #fff3cd;--color-text: #000000;--color-text-secondary: #8E8E93;--color-text-tertiary: #C7C7CC;--color-text-on-primary: #FFFFFF;--color-border: #E5E5EA;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-control: 12px;--radius-card: 16px;--button-height: 48px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);background:var(--color-background);color:var(--color-text);line-height:1.5}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--color-text-secondary);font-size:16px}.error-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg);text-align:center}.error-icon{width:48px;height:48px;border-radius:50%;background:var(--color-error);color:var(--color-text-on-primary);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;margin-bottom:var(--spacing-md)}.error-title{font-size:24px;font-weight:600;margin-bottom:var(--spacing-sm)}.error-message{color:var(--color-text-secondary);font-size:16px}.not-found-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.not-found-title{font-size:72px;font-weight:700;color:var(--color-text-tertiary)}.not-found-message{font-size:18px;color:var(--color-text-secondary)}.rsvp-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);background:var(--color-surface)}.rsvp-card{background:var(--color-background);border-radius:var(--radius-card);box-shadow:0 2px 8px #00000014;max-width:480px;width:100%;overflow:hidden}.rsvp-header{background:var(--color-primary);color:var(--color-text-on-primary);padding:var(--spacing-xl) var(--spacing-lg);text-align:center}.rsvp-header-title{font-size:28px;font-weight:600;margin-bottom:var(--spacing-xs)}.rsvp-header-subtitle{font-size:16px;opacity:.8}.rsvp-content{padding:var(--spacing-lg)}.rsvp-response-section{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.rsvp-section-title{font-size:18px;font-weight:600;margin-bottom:var(--spacing-md)}.rsvp-download-section{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border);text-align:center}.rsvp-footer{padding:var(--spacing-lg);background:var(--color-surface);text-align:center;font-size:14px;color:var(--color-text-secondary)}.event-card{display:flex;flex-direction:column;gap:var(--spacing-md)}.event-title{font-size:24px;font-weight:600}.event-image-container{margin-bottom:var(--spacing-sm);border-radius:var(--radius-control);overflow:hidden}.event-image{width:100%;height:auto;max-height:200px;object-fit:cover;display:block}.event-organizer{font-size:14px;color:var(--color-text-secondary)}.event-description{padding:var(--spacing-md);background:var(--color-surface);border-radius:var(--radius-control);margin-top:var(--spacing-md)}.event-description-text{font-size:16px;color:var(--color-text);line-height:1.6;white-space:pre-wrap;margin:0}.event-details{display:flex;flex-direction:column;gap:var(--spacing-sm)}.event-detail{display:flex;flex-direction:column;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border-radius:var(--radius-control)}.event-detail-label{font-size:12px;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.event-detail-value{font-size:16px;color:var(--color-text)}.status-badge{display:inline-block;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-control);font-size:14px;font-weight:600;text-align:center;margin-bottom:var(--spacing-md)}.status-badge--pending{background:var(--color-warning-light);color:#856404}.status-badge--accepted{background:var(--color-success-light);color:#155724}.status-badge--declined{background:var(--color-error-light);color:#721c24}.status-badge--maybe{background:#d1ecf1;color:#0c5460}.rsvp-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.rsvp-button{height:var(--button-height);border:2px solid;border-radius:var(--radius-control);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;background:transparent}.rsvp-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.rsvp-button:active:not(:disabled){transform:translateY(0)}.rsvp-button:disabled{opacity:.6;cursor:not-allowed}.rsvp-button--accept{border-color:var(--color-success);color:var(--color-success)}.rsvp-button--accept:hover:not(:disabled),.rsvp-button--accept.rsvp-button--selected{background:var(--color-success);color:var(--color-text-on-primary)}.rsvp-button--decline{border-color:var(--color-error);color:var(--color-error)}.rsvp-button--decline:hover:not(:disabled),.rsvp-button--decline.rsvp-button--selected{background:var(--color-error);color:var(--color-text-on-primary)}.rsvp-button--maybe{border-color:var(--color-secondary);color:var(--color-secondary)}.rsvp-button--maybe:hover:not(:disabled),.rsvp-button--maybe.rsvp-button--selected{background:var(--color-secondary);color:var(--color-text-on-primary)}.invitee-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.invitee-item{padding:var(--spacing-md);background:var(--color-surface);border-radius:var(--radius-control)}.invitee-info{margin-bottom:var(--spacing-sm)}.invitee-name{font-size:16px;font-weight:600;color:var(--color-text)}.invitee-contact{font-size:14px;color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.invitee-status{margin-bottom:var(--spacing-sm)}.invitee-status .status-badge{margin-bottom:0}.invitee-actions .rsvp-buttons{gap:var(--spacing-xs)}.invitee-actions .rsvp-button{height:36px;font-size:13px}.berry-user-label{font-size:12px;color:var(--color-text-muted);font-style:italic;padding:var(--spacing-xs) 0}.download-button{display:inline-flex;align-items:center;justify-content:center;height:var(--button-height);padding:0 var(--spacing-lg);background:var(--color-primary);color:var(--color-text-on-primary);border-radius:var(--radius-control);text-decoration:none;font-size:16px;font-weight:600;transition:all .2s}.download-button:hover{background:var(--color-primary-light);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.app-store-section{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);margin-top:var(--spacing-sm)}.app-store-text{font-size:13px;color:var(--color-text-secondary);text-align:center}.app-store-button{display:inline-flex;align-items:center;gap:8px;height:var(--button-height);padding:0 var(--spacing-lg);background:#000;color:#fff;border-radius:var(--radius-control);text-decoration:none;font-size:15px;font-weight:600;transition:all .2s}.app-store-button:hover{background:#333;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.success-toast{position:fixed;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);background:var(--color-success);color:var(--color-text-on-primary);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-control);font-size:16px;font-weight:500;box-shadow:0 4px 12px #00000026;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (max-width: 640px){.rsvp-buttons{grid-template-columns:1fr}.rsvp-header-title{font-size:24px}.event-title{font-size:20px}.rsvp-container{padding:0;align-items:flex-start}.rsvp-card{border-radius:0;min-height:100vh}}
