@import url(https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600;700&family=Montserrat:wght@300;400;500&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary-color:#7d9d7f;--secondary-color:#e0ead7;--accent-color:#bfd0c0;--dark-sage:#5a7d63;--warm-neutral:#f4f1de;--dark-text:#333;--light-text:#fff;--background-light:#f8f9f6;--spacing-xs:0.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:4rem;--font-heading:"Cormorant Garamond",serif;--font-body:"Montserrat",sans-serif;--font-size-base:1rem;--font-size-lg:1.4rem;--font-size-xl:1.8rem;--font-size-xxl:3.5rem;--shadow-sm:0 2px 4px #5a7d631a;--shadow-md:0 4px 8px #0000001a;--shadow-lg:0 8px 16px #00000026;--border-radius:8px;--border-radius-lg:12px}body{background-color:var(--background-light);background-image:url('data:image/svg+xml;utf8,<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><rect width="20" height="20" fill="%23F8F9F6"/><path d="M0,0 L20,20 M20,0 L0,20" stroke="%237D9D7F" stroke-width="0.5" stroke-opacity="0.05"/></svg>');color:var(--dark-text);font-family:var(--font-body);margin:0;padding:0}*{box-sizing:border-box}.App{display:flex;flex-direction:column;min-height:100vh;text-align:center}main{flex:1 1;padding:var(--spacing-lg)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:1px}header{align-items:center;background-color:var(--dark-sage);box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;padding:var(--spacing-md)}.logo a{color:var(--light-text);font-family:var(--font-heading);font-size:1.8rem;font-weight:700;letter-spacing:1px;text-decoration:none}nav ul{display:flex;list-style:none;margin:0;padding:0}nav li{margin-left:var(--spacing-lg)}nav a{color:var(--light-text);font-weight:500;text-decoration:none;transition:color .3s}nav a:hover{color:var(--secondary-color)}nav a.active{border-bottom:2px solid var(--warm-neutral);color:var(--warm-neutral)}footer{background-color:var(--warm-neutral);padding:var(--spacing-lg)}.auth-footer,footer{border-top:1px solid var(--accent-color);text-align:center}.auth-footer{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;padding-top:1rem}.auth-footer .separator{color:#999;-webkit-user-select:none;user-select:none}.intro{margin:0 auto;max-width:800px;padding:var(--spacing-lg) var(--spacing-sm);text-align:center}.btn{border:none;border-radius:4px;cursor:pointer;display:inline-block;font-weight:700;margin:0 .5rem;padding:.8rem 1.5rem;text-decoration:none;transition:background-color .3s}.btn.primary{background-color:var(--primary-color);color:#fff}.btn.secondary{background-color:#fff;border:2px solid var(--primary-color);color:var(--primary-color)}.btn:hover{background-color:var(--dark-sage);opacity:.9}.btn.secondary:hover{background-color:var(--secondary-color);border-color:var(--dark-sage)}.cta-buttons{margin-top:var(--spacing-lg)}.form-group{margin-bottom:1.5rem}.form-group label{color:var(--dark-text);display:block;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:2px solid var(--accent-color);border-radius:6px;font-family:var(--font-body);font-size:1rem;padding:.8rem;transition:border-color .3s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color);outline:none}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-hint{color:#666;display:block;font-size:.8rem;margin-top:.5rem}.error-message{background-color:#fee;color:#c33}.error-message,.success-message{border-radius:6px;margin-bottom:1rem;padding:.8rem;text-align:center}.success-message{background-color:#efe;color:#3c3}.auth-info{background-color:var(--warm-neutral);border-radius:6px;margin-bottom:1.5rem;padding:1rem}.info-text{color:var(--dark-sage);font-size:.9rem;margin:0}.auth-container{align-items:center;background:linear-gradient(135deg,var(--background-light) 0,var(--secondary-color) 100%);display:flex;justify-content:center;min-height:100vh;padding:var(--spacing-lg)}.auth-card{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 10px 30px #7d9d7f33;max-width:400px;padding:3rem;text-align:center;width:100%}.auth-header{margin-bottom:var(--spacing-lg)}.auth-header h1{color:var(--primary-color);font-family:var(--font-heading);font-size:2.5rem;margin-bottom:.5rem}.auth-header h2{color:var(--dark-text);font-size:1.2rem;margin-bottom:.5rem}.wedding-date{font-size:1.1rem}.auth-form{text-align:left}.auth-btn{font-size:1.1rem;margin-bottom:1rem;padding:1rem;width:100%}.link-button{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:.9rem;padding:0;text-decoration:underline}.link-button:hover{color:var(--dark-sage)}.loading-container{align-items:center;background-color:var(--background-light);display:flex;flex-direction:column;justify-content:center;min-height:100vh}.loading-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--accent-color);border:4px solid var(--accent-color);border-radius:50%;border-top-color:var(--primary-color);height:40px;margin-bottom:1rem;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.password-reset-container{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;justify-content:center;min-height:100vh;padding:20px}.password-reset-card{animation:fadeIn .5s ease-in;background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000001a;max-width:500px;padding:40px;width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.password-reset-header{margin-bottom:30px;text-align:center}.password-reset-header h2{color:var(--primary-color);font-size:1.8rem;margin-bottom:10px}.password-reset-header .subtitle{color:#666;font-size:.95rem;line-height:1.5;margin-top:10px}.password-reset-header .small-text{color:#999;font-size:.85rem;margin-top:10px}.password-reset-form{margin-bottom:20px}.password-reset-footer{border-top:1px solid #eee;padding-top:20px;text-align:center}.error-state,.loading-state,.success-state{padding:20px;text-align:center}.success-state h2{color:#4caf50;margin-bottom:20px}.error-state h2{color:#f44336;margin-bottom:20px}.error-state p,.success-state p{color:#666;line-height:1.6;margin-bottom:15px}.success-state .small-text{color:#999;font-size:.9rem;margin-top:10px}.dev-notice{background:#fff3cd;border-left:4px solid #ffc107;border-radius:4px;margin:20px 0;padding:15px;text-align:left}.dev-notice p{color:#856404;margin:8px 0}.dev-notice strong{color:#333}.dev-notice .small-text{color:#856404;font-size:.85rem;font-style:italic}.error-state .btn,.success-state .btn{margin-top:20px}.loading-state{align-items:center;display:flex;flex-direction:column;gap:20px}.spinner{animation:spinPassword 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top:4px solid var(--primary-color);height:50px;width:50px}@keyframes spinPassword{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:600px){.password-reset-card{padding:30px 20px}.password-reset-header h2{font-size:1.5rem}.password-reset-header .subtitle{font-size:.9rem}}.home{flex:1 1}.hero-section{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;min-height:60vh;padding:var(--spacing-xl) var(--spacing-lg)}.hero-content{flex:1 1;padding-right:var(--spacing-lg);text-align:left}.hero-image{flex:1 1}.couple-photo,.hero-image{align-items:center;display:flex;justify-content:center}.couple-photo{background:var(--secondary-color);border:4px solid var(--primary-color);border-radius:50%;box-shadow:0 8px 24px #7d9d7f33;height:300px;overflow:hidden;width:300px}.hero-couple-image{border-radius:50%;height:100%;object-fit:cover;width:100%}.photo-placeholder{color:var(--primary-color);font-size:4rem}.couple-names{color:var(--dark-sage);font-family:var(--font-heading);font-size:4.5rem;font-weight:600;line-height:1.2;margin-bottom:var(--spacing-sm)}.ampersand{font-size:3.5rem;font-style:italic;margin:0 var(--spacing-sm)}.ampersand,.wedding-date{color:var(--primary-color);font-family:var(--font-heading)}.wedding-date{font-size:var(--font-size-xl);font-weight:500;margin-bottom:var(--spacing-xs)}.wedding-location{color:var(--dark-text);font-size:1.2rem;margin-bottom:var(--spacing-lg)}.hero-buttons{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.intro-section{background:var(--background-light);padding:var(--spacing-xl) var(--spacing-lg);text-align:center}.intro-content{margin:0 auto;max-width:800px}.intro-content h2{color:var(--primary-color);font-family:var(--font-heading);font-size:2.5rem;margin-bottom:var(--spacing-lg)}.intro-content p{color:var(--dark-text);font-size:1.1rem;line-height:1.8;margin-bottom:var(--spacing-md)}.quick-info-section{background:#fff;padding:var(--spacing-xl) var(--spacing-lg)}.quick-info-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1000px}.info-card{background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius-lg);box-shadow:0 2px 8px #7d9d7f1a;padding:var(--spacing-lg);text-align:center;transition:all .3s ease}.info-card:hover{border-color:var(--primary-color);box-shadow:0 8px 24px #7d9d7f26;transform:translateY(-4px)}.info-icon{font-size:3rem}.info-card h3,.info-icon{margin-bottom:var(--spacing-sm)}.info-card h3{color:var(--primary-color);font-family:var(--font-heading);font-size:1.5rem}.info-card p{color:var(--dark-text);line-height:1.6;margin:0}.hero{border-bottom:1px solid var(--accent-color);margin-bottom:var(--spacing-lg);padding:var(--spacing-xl) var(--spacing-sm);text-align:center}.hero h1{color:var(--primary-color);font-size:3.5rem;margin-bottom:.5rem}.hero h1,.hero h2{font-family:var(--font-heading);letter-spacing:1px}.hero h2{font-size:var(--font-size-xl);font-weight:400;margin-bottom:var(--spacing-md)}.date{font-size:var(--font-lg);font-weight:700;margin:var(--spacing-lg) 0}.engagement-gallery{margin-top:var(--spacing-xl);padding:var(--spacing-lg) 0}.engagement-gallery h3{font-size:2rem;margin-bottom:var(--spacing-lg);text-align:center}.photo-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:0 auto;max-width:1000px}.photo-card{aspect-ratio:4/3;border:3px solid var(--accent-color);border-radius:var(--border-radius-lg);box-shadow:0 4px 12px #7d9d7f26;overflow:hidden;position:relative;transition:all .4s ease}.photo-card:hover{border-color:var(--primary-color);box-shadow:0 12px 28px #7d9d7f4d;transform:translateY(-8px) scale(1.02)}.photo-card img{height:100%;object-fit:cover;transition:transform .4s ease;width:100%}.photo-card:hover img{transform:scale(1.1)}.details-section{background:#fff;padding:var(--spacing-xl) var(--spacing-lg)}.details-grid{grid-gap:var(--spacing-xl);display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin:0 auto;max-width:1200px}.detail-card{background:var(--background-light);border:2px solid var(--accent-color);border-radius:var(--border-radius-lg);box-shadow:0 4px 12px #7d9d7f26;overflow:hidden;transition:all .3s ease}.detail-card:hover{border-color:var(--primary-color);box-shadow:0 12px 28px #7d9d7f40;transform:translateY(-6px)}.detail-image{height:300px;overflow:hidden;position:relative}.detail-image img{height:100%;object-fit:cover;transition:transform .4s ease;width:100%}.detail-card:hover .detail-image img{transform:scale(1.1)}.detail-content{padding:var(--spacing-lg);text-align:center}.detail-content h3{color:var(--primary-color);font-family:var(--font-heading);font-size:1.8rem;margin-bottom:var(--spacing-sm)}.detail-content p{color:var(--dark-text);line-height:1.6}.rsvp-page{margin:0 auto;max-width:800px;padding:var(--spacing-lg)}.rsvp-container{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg)}.rsvp-intro{color:var(--dark-text);font-size:1.1rem;line-height:1.6;margin-bottom:var(--spacing-lg);text-align:center}.form-section{margin-bottom:2.5rem}.form-section h3{color:var(--primary-color);font-family:var(--font-heading);margin-bottom:var(--spacing-sm)}.section-description{color:#666;margin-bottom:var(--spacing-md)}.attending-choice{display:flex;flex-direction:column;gap:var(--spacing-sm)}.radio-option{align-items:center;border:2px solid var(--accent-color);border-radius:var(--border-radius);cursor:pointer;display:flex;padding:var(--spacing-sm);transition:all .3s}.radio-option:hover{background-color:var(--warm-neutral)}.radio-option input[type=radio]{margin-right:var(--spacing-sm);width:auto}.radio-option input[type=radio]:checked+span{color:var(--primary-color);font-weight:700}.attendee-card{background-color:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.attendee-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm)}.attendee-header h4{color:var(--dark-sage);margin:0}.btn-remove{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.btn-remove:hover{background:#c82333}.attendee-fields{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.price-info{color:var(--primary-color);font-size:.8rem;font-weight:500;margin-top:.25rem}.checkbox-label{align-items:center;cursor:pointer;display:flex}.checkbox-label input[type=checkbox]{margin-right:.5rem;width:auto}.add-attendee-btn{width:100%}.submit-btn{font-size:1.1rem;margin-top:var(--spacing-md);padding:var(--spacing-sm);width:100%}.wedding-info-page{margin:0 auto;max-width:900px;padding:var(--spacing-lg)}.wedding-info-container{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg)}.info-intro{color:var(--dark-text);font-size:1.1rem;line-height:1.6;margin-bottom:var(--spacing-lg);text-align:center}.info-sections{display:flex;flex-direction:column;gap:var(--spacing-sm)}.info-section{border:1px solid var(--accent-color);border-radius:var(--border-radius);overflow:hidden;transition:all .3s ease}.info-section:hover{border-color:var(--primary-color)}.section-header{align-items:center;background:var(--warm-neutral);border:none;cursor:pointer;display:flex;font-size:1rem;justify-content:space-between;padding:var(--spacing-md);transition:all .3s ease;width:100%}.section-header:hover{background:var(--secondary-color)}.section-header.expanded{background:var(--primary-color);color:#fff}.section-content{background:#fff;max-height:0;overflow:hidden;transition:max-height .3s ease}.section-content.expanded{max-height:2000px}.info-content{padding:var(--spacing-lg)}.section-title{align-items:center;display:flex;gap:var(--spacing-sm)}.section-icon{font-size:1.5rem}.section-text{font-family:var(--font-heading);font-size:1.2rem;font-weight:600}.expand-icon{font-size:1.2rem;transition:transform .3s ease}.section-header.expanded .expand-icon{transform:rotate(90deg)}.timeline-item{align-items:center;background:var(--background-light);border-left:4px solid var(--primary-color);border-radius:6px;display:flex;margin:var(--spacing-sm) 0;padding:var(--spacing-sm)}.timeline-item .time{color:var(--primary-color);font-size:1.1rem;font-weight:700;margin-right:var(--spacing-sm);min-width:80px}.timeline-item .event h5{color:var(--dark-sage);font-family:var(--font-heading);font-size:1.1rem;margin:0}.location-card{background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);padding:var(--spacing-lg);text-align:center}.location-card h4{color:var(--primary-color);font-family:var(--font-heading);font-size:1.5rem;margin-bottom:var(--spacing-sm)}.address{color:var(--dark-text);font-size:1.1rem;line-height:1.6;margin-bottom:var(--spacing-lg)}.location-details{margin:var(--spacing-md) 0;text-align:left}.detail-item{margin-bottom:var(--spacing-sm)}.detail-item strong{color:var(--dark-sage);display:block;margin-bottom:.5rem}.map-placeholder{background:var(--warm-neutral);border-radius:6px;margin-top:var(--spacing-md);padding:var(--spacing-sm)}.map-placeholder a{color:var(--primary-color);font-weight:700;text-decoration:none}.map-placeholder a:hover{text-decoration:underline}.menu-section{margin-bottom:var(--spacing-lg)}.menu-options{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:var(--spacing-md) 0}.menu-option{background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);padding:var(--spacing-md);transition:all .3s ease}.menu-option:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #7d9d7f26;transform:translateY(-2px)}.menu-option h5{color:var(--primary-color);font-family:var(--font-heading);font-size:1.2rem;margin-bottom:var(--spacing-sm);text-align:center}.course{border-bottom:1px solid var(--accent-color);margin:.8rem 0;padding:.5rem 0}.course:last-child{border-bottom:none}.course strong{color:var(--dark-sage);display:block;margin-bottom:.25rem}.drinks-section{margin:var(--spacing-lg) 0}.drinks-info{background:var(--background-light);border-radius:var(--border-radius);margin:var(--spacing-sm) 0;padding:var(--spacing-md)}.drink-category{border-bottom:1px solid var(--accent-color);margin:var(--spacing-sm) 0;padding:.5rem 0}.drink-category:last-child{border-bottom:none}.drink-category strong{color:var(--dark-sage)}.allergies-section{background:var(--warm-neutral);border:1px solid var(--accent-color);border-left:4px solid var(--primary-color);border-radius:var(--border-radius);margin:var(--spacing-lg) 0;padding:var(--spacing-md)}.allergies-section h4{color:var(--primary-color);margin-bottom:var(--spacing-sm)}.hotel-intro{background:var(--warm-neutral);border:1px solid var(--accent-color);border-left:4px solid var(--primary-color);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.hotel-intro strong{color:var(--primary-color)}.hotel-options{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin:var(--spacing-lg) 0}.hotel-card{background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);padding:var(--spacing-lg);transition:all .3s ease}.hotel-card:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #7d9d7f26;transform:translateY(-2px)}.hotel-card h4{color:var(--primary-color);font-family:var(--font-heading);font-size:1.3rem;margin-bottom:.5rem}.hotel-distance{color:var(--dark-sage);font-style:italic;font-weight:700;margin-bottom:var(--spacing-md)}.hotel-details{margin:var(--spacing-sm) 0}.hotel-details p{margin:.5rem 0}.hotel-details a{color:var(--primary-color);text-decoration:none}.hotel-details a:hover{text-decoration:underline}.room-prices{background:#fff;border-radius:6px;margin:var(--spacing-sm) 0;padding:var(--spacing-sm)}.room-type{align-items:center;border-bottom:1px solid var(--accent-color);display:flex;justify-content:space-between;padding:.5rem 0}.room-type:last-child{border-bottom:none}.room-type strong{color:var(--dark-sage)}.hotel-amenities{background:var(--secondary-color);border-radius:6px;line-height:1.8;margin:var(--spacing-sm) 0;padding:var(--spacing-sm)}.shuttle-info{background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);margin:var(--spacing-lg) 0;padding:var(--spacing-md)}.shuttle-info h4{color:var(--primary-color);margin-bottom:var(--spacing-sm)}.gift-intro{background:var(--secondary-color);border-radius:6px;margin-bottom:var(--spacing-lg);padding:var(--spacing-sm);text-align:center}.gift-intro h3{color:var(--primary-color);font-family:var(--font-heading);font-size:var(--font-size-xl);margin-bottom:.5rem}.gift-intro p{color:var(--dark-text);font-size:1.1rem;margin:0}.gift-options{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-md)}.gift-option{background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);padding:var(--spacing-md);transition:all .3s ease}.gift-option:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #7d9d7f26;transform:translateY(-2px)}.gift-option h4{align-items:center;color:var(--primary-color);display:flex;font-family:var(--font-heading);font-size:1.3rem;gap:.5rem;margin-bottom:var(--spacing-sm)}.gift-option p{line-height:1.6;margin:.5rem 0}.gift-details{background:#fff;border-left:4px solid var(--primary-color);margin-top:var(--spacing-sm)}.bank-details,.gift-details{border-radius:6px;padding:var(--spacing-sm)}.bank-details{background:var(--warm-neutral);font-family:Courier New,monospace;font-size:.9rem;margin:var(--spacing-sm) 0}.bank-details strong{color:var(--dark-sage);display:block;margin-bottom:.25rem}.music-request{background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);margin-top:var(--spacing-md);padding:var(--spacing-md)}.music-request h4{color:var(--primary-color);font-family:var(--font-heading);font-size:1.3rem;margin-bottom:var(--spacing-sm)}.music-categories{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:var(--spacing-md) 0}.music-category{background:#fff;border-left:4px solid var(--primary-color);border-radius:6px;padding:var(--spacing-sm)}.music-category h5{color:var(--dark-sage);font-size:1.1rem;margin-bottom:.5rem}.music-category ul{list-style:none;margin:0;padding:0}.music-category li{color:var(--dark-text);padding:.25rem 0}.music-category li:before{content:"🎵";margin-right:.5rem}.photo-upload{background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);margin-top:var(--spacing-md);padding:var(--spacing-md)}.photo-upload h4{color:var(--primary-color);font-family:var(--font-heading);font-size:1.3rem;margin-bottom:var(--spacing-sm)}.upload-info{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:var(--spacing-md) 0}.upload-method{background:#fff;border-left:4px solid var(--primary-color);border-radius:6px;padding:var(--spacing-sm)}.upload-method h5{color:var(--dark-sage);font-size:1.1rem;margin-bottom:.5rem}.social-handles{background:var(--warm-neutral);border-radius:4px;color:var(--primary-color);font-family:Courier New,monospace;font-weight:700;margin:.5rem 0;padding:.8rem;text-align:center}.admin-dashboard,.admin-page{margin:0 auto;max-width:1200px;padding:var(--spacing-lg)}.admin-container{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg)}.admin-container h1,.admin-header h1{color:var(--primary-color);font-family:var(--font-heading);font-size:2.5rem;margin-bottom:var(--spacing-lg);text-align:center}.admin-header{border-bottom:2px solid var(--primary-color);margin-bottom:3rem;padding-bottom:var(--spacing-lg);text-align:center}.admin-header p{color:var(--dark-text);opacity:.8}.admin-tabs{border-bottom:2px solid var(--accent-color);display:flex;gap:.5rem;margin-bottom:var(--spacing-lg)}.tab-btn,.tab-button{background:none;border:none;border-bottom:3px solid #0000;color:var(--dark-text);cursor:pointer;font-size:1rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-lg);transition:all .3s}.tab-btn:hover,.tab-button:hover{background:var(--warm-neutral)}.tab-btn.active,.tab-button.active{background:var(--warm-neutral);border-bottom-color:var(--primary-color);color:var(--primary-color);font-weight:700}.stats-section h2{color:var(--dark-sage);font-family:var(--font-heading);font-size:2rem;margin-bottom:var(--spacing-lg)}.stats-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:3rem}.stat-card{align-items:center;background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);display:flex;padding:var(--spacing-md);text-align:center;transition:all .3s ease}.stat-card:hover{box-shadow:0 4px 12px #7d9d7f26;transform:translateY(-2px)}.stat-card.primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff}.stat-card.success{background:linear-gradient(135deg,#56ab2f,#a8e6cf);border:none;color:#fff}.stat-card.warning{background:linear-gradient(135deg,#f093fb,#f5576c);border:none;color:#fff}.stat-card.info{background:linear-gradient(135deg,#4facfe,#00f2fe);border:none;color:#fff}.stat-icon{font-size:3rem;margin-right:var(--spacing-md)}.stat-content h3{font-size:2.5rem;font-weight:700;margin:0}.stat-content p{font-size:1.1rem;margin:.5rem 0 0;opacity:.9}.stat-content small{font-size:.9rem;opacity:.8}.detailed-stats{margin-top:var(--spacing-lg)}.analytics-grid,.detailed-stats{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.analytics-grid{margin-bottom:var(--spacing-lg)}.analytics-card{background:#fff;border:1px solid var(--accent-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg)}.analytics-card h3{color:var(--dark-sage);font-family:var(--font-heading);margin-bottom:var(--spacing-md)}.age-stats,.meal-stats,.service-stats{display:flex;flex-direction:column;gap:var(--spacing-sm)}.age-stat,.meal-stat,.service-stat{align-items:center;background:var(--background-light);border-radius:6px;display:flex;justify-content:space-between;padding:.75rem}.age-stat span:last-child,.meal-count,.service-stat span:last-child{background:var(--primary-color);border-radius:20px;color:#fff;font-weight:500;min-width:40px;padding:.25rem .75rem;text-align:center}.stat-section{background:var(--background-light);border-left:4px solid var(--primary-color);border-radius:var(--border-radius);padding:var(--spacing-md)}.stat-section h3{color:var(--primary-color);font-family:var(--font-heading);margin-bottom:var(--spacing-sm)}.stat-breakdown{display:flex;flex-direction:column;gap:.5rem}.stat-breakdown div{align-items:center;border-bottom:1px solid var(--accent-color);display:flex;justify-content:space-between;padding:.5rem 0}.stat-breakdown div:last-child{border-bottom:none}.recent-rsvps h3,.rsvps-section h2{color:var(--dark-sage);font-family:var(--font-heading);font-size:2rem;margin-bottom:var(--spacing-lg)}.guests-header{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:space-between;margin-bottom:var(--spacing-lg)}.guests-filter{display:flex;gap:.5rem}.filter-btn{background:#fff;border:2px solid #ddd;border-radius:6px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .3s ease}.filter-btn.active,.filter-btn:hover{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.guests-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-bottom:var(--spacing-lg)}.guest-card{background:#fff;border:1px solid var(--accent-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);overflow:hidden;transition:all .3s ease}.guest-card:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #7d9d7f26;transform:translateY(-2px)}.guest-header{align-items:center;background:var(--background-light);display:flex;justify-content:space-between;padding:var(--spacing-md) var(--spacing-md) var(--spacing-sm) var(--spacing-md)}.guest-info h4{color:var(--dark-sage);font-family:var(--font-heading);font-size:1.2rem;margin:0 0 .5rem}.guest-actions{display:flex;gap:.5rem}.guest-status{border-radius:20px;font-size:.8rem;font-weight:500;letter-spacing:.5px;padding:.25rem .75rem;text-transform:uppercase}.guest-status.attending{background:#d1f2eb;color:#0e6b47}.guest-status.not-attending{background:#f8d7da;color:#721c24}.guest-status.no-response{background:#fff3cd;color:#856404}.edit-btn{background:var(--primary-color);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;min-width:40px;padding:.5rem;transition:all .3s}.edit-btn:hover{background:var(--dark-sage)}.delete-btn{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;min-width:40px;padding:.5rem;transition:all .3s}.delete-btn:hover{background:#c82333}.guest-details{padding:var(--spacing-md)}.attendees-info{margin-bottom:var(--spacing-sm)}.attendee-item{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:.5rem 0}.attendee-item:last-child{border-bottom:none}.attendee-meal{color:#666;font-size:.9rem}.alcohol-icon{font-size:1.2rem}.guest-notes{background:var(--warm-neutral);border-radius:6px;font-size:.9rem;font-style:italic;margin-top:var(--spacing-sm);padding:var(--spacing-sm)}.quick-actions{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);margin-bottom:3rem;padding:var(--spacing-lg)}.quick-actions h3{color:var(--dark-sage);font-family:var(--font-heading);margin-bottom:var(--spacing-md)}.action-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.action-btn{background:#fff;border:2px solid var(--primary-color);border-radius:var(--border-radius);color:var(--primary-color);cursor:pointer;font-weight:500;padding:.75rem var(--spacing-md);transition:all .3s ease}.action-btn:hover{background:var(--primary-color);color:#fff}.recent-rsvps{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-lg)}.rsvp-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.rsvp-item{align-items:center;background:var(--background-light);border:1px solid var(--accent-color);border-left:4px solid var(--primary-color);border-radius:var(--border-radius);display:flex;justify-content:space-between;padding:var(--spacing-md);transition:all .3s ease}.rsvp-item:hover{border-color:var(--primary-color);box-shadow:0 2px 8px #7d9d7f1a}.rsvp-info{display:flex;flex-direction:column;gap:.25rem}.attendee-count{background:var(--primary-color);border-radius:20px;color:#fff;font-size:.9rem;font-weight:500;min-width:40px;padding:.25rem .75rem;text-align:center}.rsvp-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm)}.user-info h3{color:var(--dark-sage);font-size:1.2rem;margin:0 0 .5rem}.rsvp-status{display:flex;gap:.5rem}.status{border-radius:20px;font-size:.8rem;font-weight:700;letter-spacing:.5px;padding:.25rem .75rem;text-transform:uppercase}.status.no-response,.status.pending{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.status.attending{background:#d1f2eb;border:1px solid #7bdca8;color:#0e6b47}.status.not-attending{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.attendees-summary{background:#fff;border-left:4px solid var(--primary-color);border-radius:6px;margin:var(--spacing-sm) 0;padding:var(--spacing-sm)}.attendees-summary h4{color:var(--primary-color);font-family:var(--font-heading);margin-bottom:.5rem}.attendee-summary{align-items:center;border-bottom:1px solid var(--accent-color);display:flex;justify-content:space-between;padding:.5rem 0}.attendee-summary:last-child{border-bottom:none}.attendee-summary .name{color:var(--dark-sage);font-weight:700}.attendee-summary .details{color:#666;font-size:.9rem}.notes{background:var(--warm-neutral);border-radius:6px;font-style:italic;margin-top:var(--spacing-sm);padding:var(--spacing-sm)}.notes strong{color:var(--primary-color)}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 10px 30px #0000004d;max-height:90%;max-width:800px;overflow-y:auto;width:90%}.delete-modal{max-width:500px}.modal-content form{display:flex;flex-direction:column;gap:var(--spacing-md)}.modal-header{align-items:center;background:var(--warm-neutral);border-bottom:1px solid var(--accent-color);display:flex;justify-content:space-between;padding:var(--spacing-md)}.modal-header h3{color:var(--primary-color);font-family:var(--font-heading);margin:0}.close-btn{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:1.5rem;padding:.5rem;transition:all .3s}.close-btn:hover{background:var(--accent-color);color:var(--primary-color)}.modal-content{padding:var(--spacing-lg)}.modal-footer{background:var(--background-light);border-top:1px solid var(--accent-color);justify-content:flex-end;padding:var(--spacing-md)}.modal-footer,.radio-group{display:flex;gap:var(--spacing-sm)}.radio-group{margin-top:.5rem}.radio-group label{align-items:center;cursor:pointer;display:flex;gap:.5rem}.attendees-edit h4{color:var(--primary-color);font-family:var(--font-heading);margin:var(--spacing-md) 0 var(--spacing-sm) 0}.attendee-edit-card{background:var(--background-light);border:1px solid var(--accent-color);border-radius:var(--border-radius);margin-bottom:var(--spacing-sm);padding:var(--spacing-sm)}.attendee-edit-header{align-items:center;color:var(--dark-sage);display:flex;font-weight:700;justify-content:space-between;margin-bottom:var(--spacing-sm)}.btn-remove-small{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;padding:.25rem .5rem}.btn-remove-small:hover{background:#c82333}.attendee-edit-fields{grid-gap:.5rem;align-items:end;display:grid;gap:.5rem;grid-template-columns:2fr 1.5fr 1fr 1fr 1fr;margin-top:var(--spacing-sm)}.attendee-edit-fields input,.attendee-edit-fields select{border:1px solid var(--accent-color);border-radius:4px;font-size:.9rem;padding:.5rem}.attendee-edit-fields .form-group{margin-bottom:0}.attendee-edit-fields .checkbox-label{align-items:center;display:flex;justify-content:center;padding:.5rem}.add-attendee-btn{margin-top:var(--spacing-sm)}.loading{color:var(--primary-color);font-size:1.2rem}.admin-error,.admin-loading,.loading{align-items:center;display:flex;justify-content:center;min-height:50vh}.admin-error,.admin-loading{flex-direction:column;padding:var(--spacing-lg);text-align:center}.retry-btn{background:var(--primary-color);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;margin-top:var(--spacing-sm);padding:.75rem var(--spacing-md);transition:all .3s}.retry-btn:hover{background:var(--dark-sage)}.section-divider{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 100"><path fill="%237D9D7F" fill-opacity="0.2" d="M0,64L80,69.3C160,75,320,85,480,80C640,75,800,53,960,42.7C1120,32,1280,32,1360,32L1440,32L1440,100L1360,100C1280,100,1120,100,960,100C800,100,640,100,480,100C320,100,160,100,80,100L0,100Z"></path></svg>');background-size:cover;height:30px;margin:var(--spacing-lg) 0}.special-section{border:2px solid var(--secondary-color);border-radius:var(--border-radius);box-shadow:0 4px 12px #7d9d7f1a;margin:var(--spacing-lg) auto;padding:var(--spacing-lg)}.countdown-container{background:var(--background-light);padding:var(--spacing-xl) var(--spacing-lg);text-align:center}.countdown-header{margin-bottom:var(--spacing-lg)}.countdown-header h2{color:var(--primary-color);font-family:var(--font-heading);font-size:2rem;margin-bottom:var(--spacing-sm)}.countdown-subtitle{color:var(--dark-text);font-size:1.1rem;opacity:.8}.countdown-display,.countdown-timer{align-items:center;display:flex;gap:var(--spacing-sm);justify-content:center;margin:var(--spacing-lg) 0}.countdown-item,.countdown-segment{background:#fff;border:2px solid var(--accent-color);border-radius:var(--border-radius-lg);box-shadow:0 4px 12px #7d9d7f26;min-width:100px;padding:var(--spacing-lg);transition:all .3s ease}.countdown-item:hover{border-color:var(--primary-color);box-shadow:0 8px 20px #7d9d7f40;transform:translateY(-4px)}.countdown-number{color:var(--primary-color);font-family:var(--font-heading);font-size:3rem;font-weight:700;line-height:1;margin-bottom:var(--spacing-xs)}.countdown-label{color:var(--dark-text);font-size:.9rem;font-weight:500;letter-spacing:1px;text-transform:uppercase}.countdown-separator{color:var(--primary-color);font-size:2rem;font-weight:700;margin:0 var(--spacing-xs)}.countdown-finished{background:var(--secondary-color);border:2px solid var(--primary-color);border-radius:var(--border-radius-lg);padding:var(--spacing-xl)}.countdown-finished h2{color:var(--primary-color);font-family:var(--font-heading);font-size:2.5rem;margin-bottom:var(--spacing-sm)}.countdown-finished p{color:var(--dark-text);font-size:1.2rem}.gallery-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:var(--spacing-lg) 0}.gallery-item{border-radius:var(--border-radius);height:300px;overflow:hidden;position:relative}.gallery-image{height:100%;object-fit:cover;transition:transform .5s ease;width:100%}.gallery-item:hover .gallery-image{transform:scale(1.05)}.gallery-overlay{background:#5a7d63d9;bottom:0;color:#fff;left:0;padding:var(--spacing-sm);position:absolute;right:0;transform:translateY(100%);transition:transform .3s ease}.gallery-item:hover .gallery-overlay{transform:translateY(0)}.wedding-quote{color:var(--dark-sage);font-family:var(--font-heading);font-size:1.6rem;font-style:italic;margin:3rem auto;max-width:800px;padding:0 var(--spacing-lg);position:relative}.wedding-quote:after,.wedding-quote:before{color:var(--secondary-color);content:'"';font-size:4rem;height:3rem;line-height:1;position:absolute}.wedding-quote:before{left:0;top:-1rem}.wedding-quote:after{bottom:-1rem;content:'"';right:0}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}body,html{overflow-x:hidden;width:100%}@media (max-width:768px){header{align-items:flex-start;flex-direction:column;padding:var(--spacing-sm) var(--spacing-xs)}.logo a{font-size:1.4rem}nav ul{flex-direction:column;gap:.5rem;margin-top:var(--spacing-sm);width:100%}nav li{margin-left:0;width:100%}nav a{background:#ffffff1a;border-radius:6px;display:block;padding:.75rem var(--spacing-sm);text-align:center}.hero-section{flex-direction:column;padding:var(--spacing-lg) var(--spacing-sm)}.hero-content{padding-right:0;text-align:center}.couple-names{font-size:2.5rem}.wedding-date{font-size:1.4rem}.couple-photo,.hero-couple-image{height:200px;margin:0 auto;width:200px}.hero-buttons{flex-direction:column;width:100%}.btn{width:100%}.quick-info-grid{gap:var(--spacing-sm);grid-template-columns:1fr}.rsvp-container{padding:var(--spacing-sm)}.attending-choice{flex-direction:column}.attendee-fields{grid-template-columns:1fr}.countdown-display{flex-wrap:wrap;gap:var(--spacing-sm)}.countdown-item{min-width:70px;padding:var(--spacing-sm) var(--spacing-xs)}.countdown-number{font-size:2rem}.countdown-separator{display:none}.photo-grid{gap:var(--spacing-sm)}.details-grid,.photo-grid{grid-template-columns:1fr}.admin-dashboard,.admin-page{padding:var(--spacing-sm)}.admin-tabs{flex-wrap:wrap;overflow-x:auto}.tab-btn,.tab-button{flex:1 1;font-size:.9rem;min-width:100px;padding:.75rem var(--spacing-sm)}.stats-grid{gap:var(--spacing-sm);grid-template-columns:1fr}.stat-card{padding:var(--spacing-md)}.stat-icon{font-size:2.5rem;margin-right:var(--spacing-sm)}.analytics-grid,.attendee-edit-fields,.detailed-stats,.guests-grid{grid-template-columns:1fr}.attendee-edit-fields{gap:var(--spacing-sm)}.attendee-edit-fields .form-group{margin-bottom:var(--spacing-sm)}.guest-actions{flex-direction:column;gap:.25rem}.delete-btn,.edit-btn{min-width:auto;width:100%}.hotel-options,.menu-options,.music-categories,.upload-info{grid-template-columns:1fr}.form-group input,.form-group select,.form-group textarea{font-size:16px}main{padding:var(--spacing-sm)}.modal{max-height:95%;width:95%}.modal-content{padding:var(--spacing-sm)}}@media (max-width:480px){.couple-names{font-size:2rem}.countdown-display{flex-direction:column;gap:var(--spacing-sm)}.countdown-item{margin:0 auto;max-width:200px;width:100%}.countdown-separator{display:none}main{padding:var(--spacing-sm) var(--spacing-xs)}.hero h1{font-size:2.5rem}.hero h2{font-size:1.4rem}.auth-card{padding:var(--spacing-lg)}.room-type{align-items:flex-start;flex-direction:column;gap:.5rem}}@media (min-width:1400px){.admin-container,.hero-section,.intro-content,.quick-info-grid,.rsvp-container,.wedding-info-container{margin-left:auto;margin-right:auto;max-width:1200px}}
/*# sourceMappingURL=main.5201fcee.css.map*/