body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.navbar{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;padding:1rem 0}.navbar-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem}.navbar-brand{color:#fff;font-size:1.5rem;font-weight:700;text-decoration:none;transition:color .3s ease}.navbar-brand:hover{color:#f1c40f}.navbar-menu{align-items:center;display:flex;gap:2rem}.navbar-item{border-radius:6px;color:#fff;padding:.5rem 1rem;text-decoration:none;transition:all .3s ease}.navbar-item:hover{background-color:#ffffff1a}.navbar-item-primary{background-color:#f1c40f;color:#333;font-weight:600}.navbar-item-primary:hover{background-color:#f39c12;color:#333}.navbar-user{align-items:center;color:#fff;display:flex;gap:1rem}.logout-btn{background:#fff3;border:none;border-radius:6px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background-color .3s ease}.logout-btn:hover{background:#ffffff4d}.navbar-auth{display:flex;gap:1rem}@media (max-width:768px){.navbar-container{padding:0 1rem}.navbar-menu{gap:1rem}.navbar-user span{display:none}}.homepage{min-height:calc(100vh - 80px)}.hero{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;min-height:70vh;padding:4rem 2rem}.hero-content{grid-gap:4rem;align-items:center;display:grid;gap:4rem;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1200px;width:100%}.hero-text h1{font-size:3rem;line-height:1.2;margin-bottom:1.5rem}.hero-text p{font-size:1.2rem;line-height:1.6;margin-bottom:2rem;opacity:.9}.cta-buttons{display:flex;flex-wrap:wrap;gap:1rem}.cta-button{border-radius:8px;display:inline-block;font-weight:600;padding:1rem 2rem;text-align:center;text-decoration:none;transition:all .3s ease}.cta-button.primary{background-color:#f1c40f;color:#333}.cta-button.primary:hover{background-color:#f39c12;box-shadow:0 8px 20px #f1c40f4d;transform:translateY(-2px)}.cta-button.secondary{background-color:initial;border:2px solid #fff;color:#fff}.cta-button.secondary:hover{background-color:#fff;color:#333}.cta-button.large{font-size:1.2rem;padding:1.5rem 3rem}.hero-image,.hero-placeholder{align-items:center;display:flex;justify-content:center}.hero-placeholder{animation:float 3s ease-in-out infinite;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:50%;font-size:8rem;height:300px;width:300px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.benefits{background-color:#fff;padding:4rem 2rem}.benefits h2{color:#333;font-size:2.5rem;margin-bottom:1rem;text-align:center}.benefits-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto;max-width:1200px}.benefit-card{background:#fff;border:2px solid #f0f0f0;border-radius:12px;padding:2rem;text-align:center;transition:all .3s ease}.benefit-card:hover{border-color:#667eea;box-shadow:0 8px 30px #667eea26;transform:translateY(-5px)}.benefit-icon{font-size:3.5rem;margin-bottom:1rem}.benefit-card h3{color:#333;font-size:1.3rem;margin-bottom:.5rem}.benefit-card p{color:#666;font-size:.95rem;line-height:1.6}.packages{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:4rem 2rem}.packages h2{color:#333;font-size:2.5rem;margin-bottom:.5rem;text-align:center}.packages-subtitle{color:#666;font-size:1.1rem;margin-bottom:3rem;text-align:center}.packages-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto;max-width:1200px}.package-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a;cursor:pointer;overflow:hidden;padding:2rem;position:relative;transition:all .3s ease}.package-card:hover{box-shadow:0 12px 40px #00000026;transform:translateY(-10px)}.package-card.popular{border:3px solid #667eea;transform:scale(1.05)}.package-card.selected{border:3px solid #f1c40f}.popular-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;font-size:.85rem;font-weight:600;padding:.5rem 1rem;position:absolute;right:1rem;top:1rem}.package-header{border-bottom:2px solid #f0f0f0;margin-bottom:2rem;padding-bottom:1.5rem;text-align:center}.package-header h3{color:#333;font-size:1.8rem;margin-bottom:1rem}.package-price{margin-bottom:.5rem}.price{color:#667eea;font-size:2.5rem;font-weight:700}.duration{color:#666;font-size:1rem}.package-storage{color:#555;font-size:1.1rem;margin-top:.5rem}.package-features{list-style:none;margin-bottom:2rem;padding:0}.package-features li{border-bottom:1px solid #f5f5f5;color:#333;font-size:.95rem;padding:.75rem 0}.package-features li:last-child{border-bottom:none}.package-features li.disabled{color:#999;opacity:.6}.package-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:block;font-size:1.1rem;font-weight:600;padding:1rem;text-align:center;text-decoration:none;transition:all .3s ease;width:100%}.package-button:hover{box-shadow:0 6px 20px #667eea4d;transform:translateY(-2px)}.package-card.popular .package-button{background:linear-gradient(135deg,#f1c40f,#f39c12);color:#333}.additional-products{background-color:#f8f9fa;padding:4rem 2rem}.additional-products h2{color:#333;font-size:2.5rem;margin-bottom:.5rem;text-align:center}.section-subtitle{color:#666;font-size:1.1rem;margin-bottom:3rem;text-align:center}.products-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1200px}.product-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:2rem;text-align:center;transition:all .3s ease}.product-card:hover{box-shadow:0 8px 30px #00000026;transform:translateY(-5px)}.product-icon{font-size:3.5rem;margin-bottom:1rem}.product-card h3{color:#333;font-size:1.3rem;margin-bottom:.75rem}.product-card p{color:#666;font-size:.95rem;line-height:1.6;margin-bottom:1rem}.product-price{color:#667eea;font-size:1.8rem;font-weight:700;margin-bottom:1rem}.product-button{background-color:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease;width:100%}.product-button:hover{background-color:#764ba2;transform:translateY(-2px)}.features{background-color:#fff;padding:4rem 2rem}.features h2{color:#333;font-size:2.5rem;margin-bottom:3rem;text-align:center}.features-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:0 auto;max-width:1200px}.feature-card{background:#fff;border:2px solid #f0f0f0;border-radius:12px;padding:2rem;text-align:center;transition:transform .3s ease}.feature-card:hover{border-color:#667eea;transform:translateY(-5px)}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature-card h3{color:#333;font-size:1.4rem;margin-bottom:1rem}.feature-card p{color:#666;line-height:1.6}.how-it-works{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:4rem 2rem}.how-it-works h2{color:#333;font-size:2.5rem;margin-bottom:3rem;text-align:center}.steps{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1200px}.step{background:#fff;border-radius:12px;padding:2rem;text-align:center}.step-number{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;font-size:1.5rem;font-weight:700;height:60px;justify-content:center;margin:0 auto 1rem;width:60px}.step h3{color:#333;font-size:1.4rem;margin-bottom:1rem}.step p{color:#666;line-height:1.6}.final-cta{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4rem 2rem;text-align:center}.final-cta h2{font-size:2.5rem;margin-bottom:1rem}.final-cta p{font-size:1.2rem;margin-bottom:2rem;opacity:.9}@media (max-width:768px){.hero-content{grid-template-columns:1fr;text-align:center}.hero-text h1{font-size:2rem}.hero-text p{font-size:1rem}.cta-buttons{align-items:stretch;flex-direction:column}.hero-placeholder{font-size:4rem;height:200px;width:200px}.additional-products h2,.benefits h2,.features h2,.final-cta h2,.how-it-works h2,.packages h2{font-size:2rem}.package-card.popular{transform:scale(1)}.benefits-grid,.features-grid,.packages-grid,.products-grid,.steps{grid-template-columns:1fr}}@media (max-width:480px){.hero{padding:2rem 1rem}.hero-text h1{font-size:1.5rem}.price{font-size:2rem}.cta-button.large{font-size:1rem;padding:1rem 2rem}}.auth-page{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;justify-content:center;min-height:calc(100vh - 80px);padding:2rem}.auth-container{max-width:500px;width:100%}.auth-card{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;padding:3rem}.auth-card h2{color:#333;font-size:2rem;margin-bottom:.5rem;text-align:center}.auth-card p{color:#666;margin-bottom:2rem;text-align:center}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{grid-gap:1rem;gap:1rem;grid-template-columns:1fr 1fr}.form-group input{border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;padding:.75rem;transition:border-color .3s ease}.form-group input:focus{border-color:#667eea;outline:none}.auth-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:1rem;padding:1rem;transition:all .3s ease}.auth-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.auth-button:disabled{cursor:not-allowed;opacity:.7}.auth-footer{border-top:1px solid #e1e5e9;margin-top:2rem;padding-top:2rem;text-align:center}.auth-footer p{color:#666;margin:0}.auth-footer a{color:#667eea;font-weight:600;text-decoration:none}.auth-footer a:hover{text-decoration:underline}@media (max-width:768px){.auth-page{padding:1rem}.auth-card{padding:2rem}.form-row{grid-template-columns:1fr}}.dashboard{margin:0 auto;max-width:1400px;padding:2rem}.dashboard-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:400px}.dashboard-header{align-items:center;border-bottom:1px solid #e1e5e9;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:2rem}.dashboard-header h1{color:#333;font-size:2.5rem;margin:0}.dashboard-header p{color:#666;margin:.5rem 0 0}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:3rem}.stat-card{align-items:center;background:#fff;box-shadow:0 4px 20px #0000001a;display:flex;gap:1rem;transition:transform .3s ease}.stat-card:hover{transform:translateY(-2px)}.stat-icon{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;font-size:2.5rem}.stat-content h3{color:#333;font-size:2rem;margin:0}.stat-content p{color:#666;font-size:.9rem;margin:.25rem 0 0}.dashboard-content{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:2fr 1fr}.section-header{margin-bottom:1.5rem}.section-header h2{color:#333;font-size:1.8rem}.view-all-link{color:#667eea;font-weight:600;text-decoration:none}.view-all-link:hover{text-decoration:underline}.wedding-cards{display:flex;flex-direction:column;gap:1.5rem}.wedding-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:1.5rem;transition:transform .3s ease}.wedding-card:hover{transform:translateY(-2px)}.wedding-card h3{color:#333;font-size:1.4rem;margin:0 0 1rem}.wedding-date,.wedding-venue{align-items:center;color:#666;display:flex;gap:.5rem}.wedding-stats{display:flex;gap:1.5rem;margin:1rem 0}.mini-stat{align-items:center;display:flex;flex-direction:column}.mini-stat-number{color:#667eea;font-size:1.5rem;font-weight:700}.mini-stat-label{color:#666;font-size:.8rem}.wedding-actions{margin-top:1rem}.empty-state{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a}.empty-state p{margin-bottom:2rem}.quick-actions h2{color:#333;font-size:1.8rem;margin-bottom:1.5rem}.action-cards{display:flex;flex-direction:column;gap:1rem}.action-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;display:flex;gap:1rem;padding:1.5rem;transition:transform .3s ease}.action-card,.action-card:hover{color:inherit;text-decoration:none}.action-card:hover{transform:translateY(-2px)}.action-icon{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;font-size:2rem}.action-card h3{color:#333;font-size:1.1rem;margin:0 0 .25rem}.action-card p{color:#666;font-size:.9rem;margin:0}@media (max-width:1024px){.dashboard-content{grid-template-columns:1fr}}@media (max-width:768px){.dashboard{padding:1rem}.dashboard-header{align-items:flex-start;flex-direction:column;gap:1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.action-card,.wedding-actions{flex-direction:column}.action-card{text-align:center}}.places-autocomplete{position:relative;width:100%}.places-dropdown{background:#fff;border:1px solid #e1e5e9;border-radius:0 0 8px 8px;border-top:none;box-shadow:0 4px 12px #0000001a;left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.place-suggestion{border-bottom:1px solid #f1f3f4;cursor:pointer;padding:.75rem;transition:background-color .2s ease}.place-suggestion:hover{background-color:#f8f9fa}.place-suggestion:last-child{border-bottom:none}.place-main{color:#333;font-weight:600;margin-bottom:.25rem}.place-secondary{color:#666;font-size:.9rem}.places-autocomplete input:focus+.places-dropdown{border-color:#667eea}.places-autocomplete .form-control:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.places-autocomplete .text-muted{color:#6c757d;display:block;font-size:.875rem;margin-top:.25rem}.suggestions-list{background:#fff;border:1px solid #e1e5e9;border-radius:8px;box-shadow:0 4px 12px #0000001a;left:0;list-style:none;margin:0;max-height:200px;overflow-y:auto;padding:0;position:absolute;right:0;top:100%;z-index:1000}.create-wedding-page{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:calc(100vh - 80px);padding:2rem}.create-wedding-container{margin:0 auto;max-width:900px}.page-header{margin-bottom:3rem;text-align:center}.page-header h1{color:#333;font-size:2.5rem;margin-bottom:.5rem}.page-header p{color:#666;font-size:1.1rem}.wedding-form{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;overflow:hidden}.form-section{border-bottom:1px solid #e1e5e9}.form-section:last-of-type{border-bottom:none}.form-section h2{font-size:1.5rem}.form-row{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:1.5rem}.form-row:last-child{margin-bottom:0}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.9rem}.form-group input,.form-group textarea,.form-input{border:2px solid #e1e5e9;border-radius:8px;font-family:inherit;font-size:1rem;padding:.75rem;transition:border-color .3s ease}.form-group input:focus,.form-group textarea:focus,.form-input:focus{border-color:#667eea;outline:none}.form-group textarea{min-height:80px}.form-group input[type=date],.form-group input[type=time]{cursor:pointer}.form-group input[type=number]{-moz-appearance:textfield}.form-group input[type=number]::-webkit-inner-spin-button,.form-group input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-actions{background:#f8f9fa;display:flex;gap:1rem;justify-content:flex-end;padding:2rem}.btn{align-items:center;border-radius:8px;display:inline-flex;justify-content:center;padding:.75rem 2rem}.btn-primary:hover:not(:disabled){box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.btn-primary:disabled{cursor:not-allowed;opacity:.7;transform:none}@media (max-width:768px){.create-wedding-page{padding:1rem}.page-header h1{font-size:2rem}.form-section{padding:1.5rem}.form-row{gap:1rem;grid-template-columns:1fr}.form-actions{flex-direction:column-reverse;padding:1.5rem}.btn{width:100%}}.form-group input:invalid,.form-group textarea:invalid{border-color:#e74c3c}.form-group input:valid,.form-group textarea:valid{border-color:#27ae60}.btn:disabled{position:relative}.btn:disabled:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:initial;content:"";height:16px;margin:auto;position:absolute;width:16px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.section-header h2{margin:0}.subsection-header{align-items:center;border-top:1px solid #eee;display:flex;justify-content:space-between;margin:2rem 0 1rem;padding-top:1rem}.subsection-header h3{color:#555;font-size:1.2rem;margin:0}.checkbox-container{align-items:center;color:#667eea;cursor:pointer;display:flex;font-weight:500}.checkbox-container input[type=checkbox]{display:none}.checkmark{background-color:#fff;border:2px solid #ddd;border-radius:4px;height:20px;margin-right:8px;position:relative;transition:all .3s ease;width:20px}.checkbox-container:hover .checkmark{border-color:#667eea}.checkbox-container input[type=checkbox]:checked+.checkmark{background-color:#667eea;border-color:#667eea}.checkbox-container input[type=checkbox]:checked+.checkmark:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:10px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:5px}.form-section .form-group:last-child,.form-section .form-row:last-child{margin-bottom:0}.form-section{background:#fff;border:1px solid #e1e5e9;border-radius:12px;box-shadow:0 2px 10px #0000000d;margin-bottom:2rem;padding:2rem}.form-section h2{align-items:center;color:#333;display:flex;font-size:1.4rem;gap:.5rem;margin-bottom:1.5rem}.wedding-detail-page{margin:0 auto;max-width:1400px;padding:2rem}.wedding-detail-loading,.wedding-not-found{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:400px}.wedding-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;color:#fff;display:flex;justify-content:space-between;margin-bottom:2rem;padding:2rem}.wedding-info h1{font-size:2.5rem;margin-bottom:1rem}.wedding-date,.wedding-venue{font-size:1.1rem;margin:.5rem 0;opacity:.9}.wedding-actions{display:flex;gap:1rem}.invitation-link-section{margin-bottom:2rem}.invitation-link-card{background:#fff;border-left:4px solid #764ba2;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:1.5rem}.invitation-link-card h3{color:#333;font-size:1.2rem;margin-bottom:1rem}.invitation-url{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;color:#495057;font-family:Courier New,monospace;font-size:.9rem;margin-bottom:1rem;padding:.75rem;word-break:break-all}.link-actions{display:flex;gap:.5rem}.link-actions .btn{font-size:.9rem;padding:.5rem 1rem}.wedding-tabs{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;display:flex;margin-bottom:2rem;overflow:hidden}.tab{background:none;border:none;color:#666;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.tab:hover:not(.active){background:#f8f9fa}.tab-content{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a}.quick-stats{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{background:#f8f9fa;border-radius:12px;padding:1.5rem;text-align:center}.stat-card h3{color:#667eea;font-size:2rem;margin:0 0 .5rem}.stat-card p{color:#666;margin:0}.invitation-preview{background:#f8f9fa;border-left:4px solid #667eea;border-radius:12px;padding:2rem}.invitation-preview h3{color:#333;margin-bottom:1rem}.guest-form-section{border-bottom:1px solid #e1e5e9;margin-bottom:2rem;padding-bottom:2rem}.guest-form-section h3{color:#333;margin-bottom:1rem}.guest-form .form-row{grid-gap:1rem;align-items:center;display:grid;gap:1rem;grid-template-columns:2fr 2fr 1.5fr auto auto}.guest-form input{border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;padding:.75rem}.guest-form input:focus{border-color:#667eea;outline:none}.checkbox-label{align-items:center;color:#666;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem}.guests-list h3{color:#333;margin-bottom:1rem}.guests-table{display:flex;flex-direction:column;gap:.5rem}.table-header,.table-row{grid-gap:1rem;align-items:center;display:grid;gap:1rem;grid-template-columns:2fr 2fr 1.5fr auto 1.5fr;padding:1rem}.table-header{background:#f8f9fa;border-radius:8px;color:#333;font-weight:600}.table-row{background:#fff;border:1px solid #e1e5e9;border-radius:8px;transition:transform .2s ease}.table-row:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.rsvp-status{border-radius:20px;font-size:.8rem;font-weight:600;padding:.25rem .75rem;text-align:center}.rsvp-status.pending{background:#fff3cd;color:#856404}.rsvp-status.attending{background:#d4edda;color:#155724}.rsvp-status.not_attending{background:#f8d7da;color:#721c24}.no-guests{color:#666;font-style:italic;padding:2rem;text-align:center}.analytics-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.analytics-card{background:#f8f9fa;border-left:4px solid #667eea;border-radius:12px;padding:1.5rem}.analytics-card h3{color:#333;margin-bottom:1rem}.chart-placeholder{display:flex;flex-direction:column;gap:.75rem}.stat-item{align-items:center;display:flex;justify-content:space-between;padding:.5rem 0}.stat-label{color:#666;font-weight:500}.stat-value{font-size:1.1rem;font-weight:600}.stat-value.attending{color:#27ae60}.stat-value.pending{color:#f39c12}.stat-value.not-attending{color:#e74c3c}.stat-value.opened{color:#27ae60}.stat-value.not-opened{color:#95a5a6}@media (max-width:1024px){.wedding-header{gap:1.5rem;text-align:center}.wedding-actions,.wedding-header{flex-direction:column}}@media (max-width:768px){.wedding-detail-page{padding:1rem}.wedding-header{padding:1.5rem}.wedding-info h1{font-size:2rem}.wedding-tabs{flex-direction:column}.tab-content{padding:1.5rem}.quick-stats{grid-template-columns:repeat(2,1fr)}.guest-form .form-row,.table-header,.table-row{grid-template-columns:1fr}.table-header,.table-row{text-align:left}.table-header span,.table-row span{padding:.25rem 0}.analytics-grid{grid-template-columns:1fr}}.invitation-view-page{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh}.invitation-not-found,.invitation-view-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:100vh;padding:2rem;text-align:center}.invitation-tabs{background:#fff;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:center;position:-webkit-sticky;position:sticky;top:0;z-index:100}.invitation-tabs .tab{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;max-width:200px;padding:1rem 2rem;transition:all .3s ease}.invitation-tabs .tab:hover{background:#f8f9fa;color:#333}.invitation-tabs .tab.active{background:#f8f9ff;border-bottom-color:#667eea;color:#667eea}.tab-content{margin:0 auto;max-width:1200px;padding:2rem}.invitation-card{background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000001a;margin:0 auto;max-width:600px;overflow:hidden}.invitation-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:3rem 2rem;position:relative;text-align:center}.couple-names h1{font-size:2.5rem;font-weight:300;letter-spacing:2px;margin:0}.wedding-rings{animation:pulse 2s infinite;font-size:3rem;margin:1rem 0}.invitation-content{padding:3rem 2rem;text-align:center}.wedding-date h2{color:#333;font-size:2rem;font-weight:400;margin-bottom:2rem}.ceremony-info{background:#f8f9ff;border-left:4px solid #667eea}.ceremony-info,.henna-info{border-radius:12px;margin:1rem 0;padding:1.5rem}.henna-info{background:#fff0f8;border-left:4px solid #fd79a8}.dinner-info{background:#f0fff4;border-left:4px solid #00b894}.dinner-info,.service-info{border-radius:12px;margin:1rem 0;padding:1.5rem}.service-info{background:#f5f3ff;border-left:4px solid #a29bfe}.convoy-info{background:#f0f8ff;border-left:4px solid #74b9ff;border-radius:12px;margin:1rem 0;padding:1.5rem}.ceremony-info h3,.convoy-info h3,.dinner-info h3,.henna-info h3,.service-info h3{font-size:1.2rem;margin:0 0 .5rem}.ceremony-info h3{color:#667eea}.henna-info h3{color:#fd79a8}.dinner-info h3{color:#00b894}.service-info h3{color:#a29bfe}.convoy-info h3{color:#74b9ff}.ceremony-info p,.convoy-info p,.dinner-info p,.henna-info p,.service-info p{color:#666;font-size:1.1rem;margin:0}.venue-info{background:#fff8f0;border-left:4px solid #ff9500;border-radius:12px;margin:2rem 0;padding:1.5rem}.venue-info h3{color:#ff9500;font-size:1.3rem;margin:0 0 .5rem}.venue-address{color:#666;font-size:1rem;line-height:1.5;margin:.5rem 0 0}.invitation-message{background:#f0f8f0;border-left:4px solid #28a745;border-radius:12px;margin-top:2rem;padding:2rem}.invitation-message p{color:#555;font-size:1.1rem;font-style:italic;line-height:1.6;margin:0}.family-info{background:#f8f9ff;border-left:4px solid #667eea;border-radius:12px;margin:1.5rem 0;padding:1.5rem}.bride-family,.groom-family{margin-bottom:1rem}.bride-family:last-child,.groom-family:last-child{margin-bottom:0}.bride-family h4,.groom-family h4{color:#667eea;font-size:1.1rem;margin:0 0 .5rem}.bride-family p,.groom-family p{color:#555;line-height:1.5;margin:0}.gallery-tab{display:flex;flex-direction:column;gap:2rem}.memory-form{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a}.memory-form h3{color:#333;font-size:1.5rem;margin:0 0 1.5rem}.form-group{margin-bottom:1rem}.form-group input,.form-group select,.form-group textarea{border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;padding:12px 16px;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;outline:none}.form-group textarea{min-height:100px;resize:vertical}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.gallery-item{background:#fff}.gallery-item:hover{transform:translateY(-4px)}.memory-info{text-align:center}.memory-info .author{color:#333;display:block;margin-bottom:.25rem}.memory-info .date{color:#666}.guestbook-tab{display:flex;flex-direction:column;gap:2rem}.guestbook-message{background:#fff;box-shadow:0 2px 10px #0000000d}.message-info{border-top:1px solid #eee;padding-top:1rem}.message-info .date{color:#666;font-size:.9rem}@media (max-width:768px){.invitation-tabs .tab{font-size:.9rem;padding:.75rem 1rem}.tab-content{padding:1rem}.invitation-header{padding:2rem 1rem}.couple-names h1{font-size:2rem}.wedding-date h2{font-size:1.5rem}.invitation-content{padding:2rem 1rem}.gallery-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.guestbook-message,.memory-form{padding:1rem}}@media (max-width:480px){.invitation-tabs{flex-direction:column}.invitation-tabs .tab{border-bottom:1px solid #eee;border-right:none;text-align:center}.invitation-tabs .tab.active{border-bottom-color:#667eea}.couple-names h1{font-size:1.75rem}.gallery-grid{grid-template-columns:1fr}}.venue-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.map-button{background:#4285f4;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .3s ease;white-space:nowrap}.map-button:hover{background:#3367d6;box-shadow:0 2px 5px #4285f44d;transform:translateY(-1px)}.map-button.small{font-size:.8rem;padding:.3rem .6rem}.service-sub-info{background:#ffffffb3;border-left:3px solid #a29bfe;border-radius:8px;margin-top:1rem;padding:1rem}.service-sub-info h4{color:#a29bfe;font-size:1rem;margin:0 0 .5rem}.venue-address.small{font-size:.85rem}.venue-info.main-wedding{background:linear-gradient(135deg,#fff3f3,#ffeaa7);border-left-color:#e17055}.events-accordion{margin-top:2rem}.accordion-item{border:1px solid #e1e5e9;border-radius:8px;margin-bottom:.5rem;overflow:hidden}.accordion-header{align-items:center;background:#f8f9fa;cursor:pointer;display:flex;justify-content:space-between;padding:1rem 1.5rem;transition:background-color .3s ease}.accordion-header:hover{background:#e9ecef}.accordion-header h3{color:#333;font-size:1.1rem;font-weight:600;margin:0}.accordion-arrow{color:#666;font-size:.8rem;transition:transform .3s ease}.accordion-arrow.expanded{transform:rotate(180deg)}.accordion-content{background:#fff;border-top:1px solid #e1e5e9;padding:1.5rem}.event-details p{font-size:1rem;margin:.5rem 0}.event-details .venue-address{color:#666;font-style:italic;margin:1rem 0}.gallery-section,.guestbook-section,.memory-section{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;margin:2rem auto;max-width:800px;padding:2rem}.gallery-section h2,.guestbook-section h2,.memory-section h2{color:#333;font-size:1.8rem;font-weight:600;margin-bottom:2rem;text-align:center}.memory-form{background:#f8f9fa;border-radius:12px;margin-bottom:2rem;padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group textarea{border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;padding:.75rem;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#667eea;outline:none}.memory-type-selector{display:flex;flex-wrap:wrap;gap:1rem}.radio-option{align-items:center;background:#fff;border:2px solid #e1e5e9;border-radius:8px;cursor:pointer;display:flex;gap:.5rem;padding:.75rem 1rem;transition:all .3s ease}.radio-option:hover{border-color:#667eea}.radio-option input[type=radio]{margin:0;width:auto}.radio-option input[type=radio]:checked+span{color:#667eea;font-weight:600}.radio-option:has(input[type=radio]:checked){background:#f8f9ff;border-color:#667eea}.quick-upload-area{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;margin-bottom:2rem;padding:1.5rem;text-align:center}.quick-upload-area p{color:#666;font-size:1rem;margin:0 0 1rem}.upload-note{color:#888!important;font-size:.9rem!important;font-style:italic;margin-top:1rem!important}.section-description{color:#666;font-size:.95rem;font-style:italic;margin-bottom:1.5rem;text-align:center}.upload-buttons{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.upload-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-size:1.1rem;font-weight:600;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.upload-btn:hover{box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.file-input-container{position:relative}.file-input-label{cursor:pointer;display:block}.file-input-hidden{height:0;opacity:0;overflow:hidden;position:absolute;width:0}.file-input-button{background:#f8f9ff;border:2px dashed #667eea;border-radius:8px;color:#667eea;display:inline-block;font-weight:500;padding:12px 16px;text-align:center;transition:all .3s ease;width:100%}.file-input-button:hover{background:#f0f2ff;border-color:#5a6fd8}.selected-file{align-items:center;background:#e8f5e8;border-left:4px solid #4caf50;border-radius:8px;display:flex;justify-content:space-between;margin-top:.5rem;padding:.75rem}.file-info{color:#2d5a2d;font-size:.9rem;font-weight:500}.remove-file-btn{background:none;border:none;border-radius:50%;cursor:pointer;font-size:1rem;padding:.25rem;transition:background .2s ease}.remove-file-btn:hover{background:#ff00001a}.empty-gallery,.empty-messages{background:#fff;border:2px dashed #ddd;border-radius:12px;color:#666;grid-column:1/-1;padding:3rem;text-align:center}.empty-gallery p:first-child,.empty-messages p:first-child{font-size:1.2rem;margin-bottom:.5rem}.memory-text{color:#555;font-size:.85rem;font-style:italic;margin-top:.5rem}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem;transition:transform .2s ease;width:100%}.submit-button:hover:not(:disabled){transform:translateY(-2px)}.submit-button:disabled{cursor:not-allowed;opacity:.6}.gallery-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:1rem}.gallery-item{border-radius:12px;box-shadow:0 4px 15px #0000001a;overflow:hidden;position:relative;transition:transform .3s ease}.gallery-item:hover{transform:translateY(-5px)}.gallery-item img,.gallery-item video{display:block;height:200px;object-fit:cover;width:100%}.memory-info{background:linear-gradient(#0000,#000000b3);bottom:0;color:#fff;left:0;padding:1rem;position:absolute;right:0}.memory-info .author{font-weight:600;margin:0}.memory-info .date{font-size:.9rem;margin:0;opacity:.8}.guestbook-messages{display:flex;flex-direction:column;gap:1rem}.guestbook-message{background:#f8f9fa;border-left:4px solid #667eea;border-radius:12px;padding:1.5rem}.message-content p{color:#333;font-size:1rem;line-height:1.6;margin:0 0 1rem}.message-info{align-items:center;border-top:1px solid #e1e5e9;color:#666;display:flex;font-size:.9rem;justify-content:space-between;padding-top:.75rem}.message-info .author{color:#667eea;font-weight:600}.upload-info{color:#666!important;font-size:.85rem!important;margin:.5rem 0!important;text-align:center}.upload-progress{align-items:center;background:#f0f8ff;border-left:4px solid #4ecdc4;border-radius:8px;display:flex;gap:.5rem;justify-content:center;padding:.75rem}.spinner-small{animation:spin 1s linear infinite;border:2px solid #f3f3f3;border-radius:50%;border-top-color:#4ecdc4;height:16px;width:16px}.upload-progress span{color:#4ecdc4;font-size:.9rem;font-weight:500}@media (max-width:768px){.invitation-view-page{padding:1rem}.couple-names h1{font-size:2rem}.gallery-section,.guestbook-section,.invitation-card,.memory-section{margin:1rem auto;padding:1.5rem}.memory-type-selector{flex-direction:column}.radio-option{justify-content:center;width:100%}.gallery-grid{grid-template-columns:1fr}.message-info{align-items:flex-start;flex-direction:column;gap:.25rem}}.optional-label{color:#666;font-size:.9rem;font-style:italic;font-weight:400}.photo-upload-page{margin:0 auto;max-width:1200px;min-height:calc(100vh - 80px);padding:2rem}.upload-header{margin-bottom:2rem;text-align:center}.upload-header h1{color:#333;font-size:2.5rem;margin-bottom:.5rem}.upload-header p{color:#666;font-size:1.1rem}.uploader-info{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;margin-bottom:2rem;padding:1.5rem}.info-form{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin:0 auto;max-width:600px}.info-form input{border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;padding:.75rem;transition:border-color .3s ease}.info-form input:focus{border-color:#667eea;outline:none}.upload-tabs{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;display:flex;margin-bottom:2rem;overflow:hidden}.upload-tabs .tab{background:none;border:none;color:#666;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.upload-tabs .tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.upload-tabs .tab:hover:not(.active){background:#f8f9fa}.upload-section{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:2rem}.upload-area{background:#f8f9fa;border:2px dashed #e1e5e9;border-radius:12px;margin-bottom:3rem;padding:2rem;text-align:center}.upload-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-size:1.1rem;font-weight:600;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.upload-button:hover:not(.uploading){box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.upload-button.uploading{animation:pulse 1.5s infinite;cursor:not-allowed;opacity:.7}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}.upload-hint{color:#666;font-size:.9rem;margin-top:1rem}.media-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.media-item{background:#f8f9fa;border-radius:12px;box-shadow:0 4px 12px #0000001a;overflow:hidden;transition:transform .3s ease}.media-item:hover{transform:translateY(-4px)}.media-item img,.media-item video{display:block;height:200px;object-fit:cover;width:100%}.media-item video{background:#000}.media-info{padding:1rem}.media-info p{color:#666;font-size:.9rem;margin:.25rem 0}.uploader{color:#333!important;font-weight:600}.loading{font-size:1.1rem}.empty-state,.loading{color:#666;grid-column:1/-1;padding:3rem;text-align:center}.empty-icon{display:block;font-size:4rem;margin-bottom:1rem}.empty-state h3{color:#333;font-size:1.5rem;margin-bottom:.5rem}.empty-state p{color:#666}@media (max-width:768px){.photo-upload-page{padding:1rem}.upload-header h1{font-size:2rem}.info-form{grid-template-columns:1fr}.upload-tabs{flex-direction:column}.upload-area,.upload-section{padding:1.5rem}.media-grid{grid-template-columns:1fr}.media-item img,.media-item video{height:250px}}.media-item img{cursor:pointer}.media-item img:hover{opacity:.9}.media-item video{outline:none}.media-item video::-webkit-media-controls-panel{background:linear-gradient(#0000001a,#00000080)}input[type=file]{display:none}.upload-progress{background:#e1e5e9;border-radius:2px;height:4px;margin-top:1rem;overflow:hidden;width:100%}.upload-progress-bar{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:2px;height:100%;transition:width .3s ease}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.App{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 1}.container{margin:0 auto;max-width:1200px;padding:0 1rem}.btn{border:none;border-radius:6px;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;text-decoration:none;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.btn-secondary{background:#0000;border:2px solid #667eea;color:#667eea}.btn-secondary:hover{background:#667eea;color:#fff}.btn-outline{background:#0000;border:2px solid #764ba2;color:#764ba2}.btn-outline:hover{background:#764ba2;box-shadow:0 8px 25px #764ba24d;color:#fff;transform:translateY(-2px)}.loading{align-items:center;display:flex;justify-content:center;min-height:200px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.container{padding:0 1rem}}a{color:inherit;text-decoration:none}
/*# sourceMappingURL=main.97555527.css.map*/