:root{--primary-green:#1c3d2f;--primary-green-hover:#153129;--accent-green:#27ae60;--decline-red:#e74c3c;--text-dark:#2c3e50;--text-light:#7f8c8d;--border-light:#e9ecef;--background-light:#f8f9fa;--gold-accent:#c9a96e;--gold-light:#f4f1ec}.event-module{border-radius:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:2rem auto;max-width:750px;padding:2.5rem;position:relative;width:100%}.step-indicator{display:flex;justify-content:center;margin-bottom:3rem;padding:1rem 0}.step-item{align-items:center;display:flex;flex:1;flex-direction:column;max-width:120px;position:relative}.step-item:not(:last-child):after{background:var(--border-light);content:"";height:2px;left:60%;position:absolute;right:-40%;top:15px;z-index:1}.step-item.active:not(:last-child):after,.step-item.completed:not(:last-child):after{background:var(--primary-green)}.step-number{align-items:center;background:var(--border-light);border-radius:50%;color:var(--text-light);display:flex;font-size:.9rem;font-weight:600;height:32px;justify-content:center;position:relative;transition:all .3s ease;width:32px;z-index:2}.step-item.active .step-number{background:var(--primary-green);color:#fff}.step-item.completed .step-number{background:var(--accent-green);color:#fff}.step-label{color:var(--text-light);font-size:.8rem;font-weight:500;margin-top:.5rem;text-align:center}.step-item.active .step-label{color:var(--primary-green);font-weight:600}.wizard-step{animation:fadeIn .3s ease-in-out;display:none}.wizard-step.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.module-header{margin-bottom:2rem;text-align:center}.module-header h2{color:var(--text-dark);font-size:2rem;font-weight:500;margin-bottom:1.5rem}.module-description{color:var(--text-light);font-size:1rem;line-height:1.6}.email-lookup-form{background:none;margin-bottom:3rem;padding:0 1 rem}.input-group{margin-bottom:2rem}.email-label{color:var(--text-dark);display:block;font-size:1rem;font-weight:600;margin-bottom:1rem}.input-button-group{display:flex;gap:1rem}.email-input{background:hsla(0,0%,100%,.7);border:1px solid hsla(0,0%,66%,.15);border-radius:8px;flex:1;font-size:1rem;padding:1rem 1.25rem;transition:border-color .3s ease}.email-input:focus{border-color:var(--primary-green);outline:none}.search-button{align-items:center;background:linear-gradient(135deg,var(--primary-green),var(--primary-green-hover));border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.625rem 1.25rem;transition:all .3s ease}.search-button:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-green-hover),#0f2419);transform:translateY(-2px)}.search-button:disabled{background:#bdc3c7;cursor:not-allowed;transform:none}.button-spinner,.search-button.loading .button-text{display:none}.search-button.loading .button-spinner{display:flex}.spinner{height:20px;width:20px}.error-message{background:#ffe6e6;border-left:4px solid var(--decline-red);border-radius:8px;color:#c0392b;display:none;margin-top:1rem;padding:1rem}.not-found-message{background:#fff5f5;border-radius:12px;display:none;margin-top:2rem;padding:2rem;text-align:center}.not-found-content h3{color:var(--text-dark);font-size:1.5rem;margin-bottom:1rem}.not-found-content p{color:var(--text-light);margin-bottom:1.5rem}.secondary-button{background:#ecf0f1;border:2px solid #bdc3c7;border-radius:6px;color:var(--text-dark);cursor:pointer;font-weight:600;padding:.75rem 1.5rem}.secondary-button:hover{background:#d5dbdb}.step-header{font-size:.9rem;margin-bottom:2rem;text-align:center}.wedding-date-badge{background:var(--primary-green);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;margin-bottom:2rem;padding:2rem;position:relative}.decorative-element{display:block;height:40px;margin:0 auto 1rem;width:150px}.wedding-title{color:#fff;font-family:Georgia,serif;font-size:1.75rem;font-weight:600;letter-spacing:1px;margin:0 0 1rem}.wedding-date{align-items:center;color:#fff;display:flex;flex-wrap:wrap;font-size:1rem;font-weight:400;gap:.75rem;justify-content:center}.wedding-date-item{align-items:center;display:flex;gap:.5rem}.wedding-date-item svg{flex-shrink:0;min-height:16px;min-width:16px}@media (max-width:480px){.wedding-date{flex-direction:column;gap:.5rem}.wedding-date-item span{font-size:.5rem;line-height:1.3}}.party-name-display{margin-bottom:2rem}.party-name{color:var(--text-dark);font-size:1.5rem;font-weight:600;margin:0}.rsvp-guests-container{margin-bottom:2rem}.rsvp-guest-card{align-items:center;background:#fff;border:2px solid var(--border-light);border-radius:12px;display:grid;gap:1.5rem;grid-template-columns:1fr auto;justify-content:space-between;margin-bottom:1rem;padding:1.5rem;transition:all .3s ease}.rsvp-guest-card:hover{border-color:var(--primary-green);box-shadow:0 4px 12px rgba(28,61,47,.1)}.rsvp-guest-card.party-lead{border-left:4px solid var(--primary-green)}.guest-info{flex:1}.guest-name{color:var(--text-dark);font-size:.9rem;font-weight:600;margin:0 0 .25rem}.guest-role{color:var(--primary-green);font-size:.7rem;font-weight:500;margin:0}.rsvp-buttons{flex-shrink:0;gap:.75rem;min-width:200px}.rsvp-btn{align-items:center;background:#fff;border:1px solid var(--border-light);border-radius:6px;cursor:pointer;display:flex;flex:1 1 auto;font-size:.85rem;font-weight:600;justify-content:center;max-width:85px;min-width:70px;padding:.625rem .75rem;text-align:center;transition:all .3s ease}.rsvp-btn.accept{color:var(--primary-green)}.rsvp-btn.accept.active,.rsvp-btn.accept:hover{background:var(--primary-green);border-color:var(--primary-green);color:#fff}.rsvp-btn.decline{color:var(--decline-red)}.rsvp-btn.decline.active,.rsvp-btn.decline:hover{background:var(--decline-red);border-color:var(--decline-red);color:#fff}.step-description{color:var(--text-light);font-size:1rem;margin:.5rem 0 0}.form-sections{margin-bottom:2rem}.form-section{background:#fff;border:2px solid var(--border-light);border-radius:12px;padding:2rem}.form-section,.section-header{margin-bottom:1.5rem}.section-title{color:var(--text-dark);font-size:.9rem;font-weight:600;margin:0 0 .5rem}.section-subtitle{color:var(--text-light);font-size:.8rem;margin:0}.form-field{margin-bottom:1.5rem}.field-label{color:var(--text-dark);display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.field-label.required:after{color:var(--decline-red);content:" *"}.field-input{border:2px solid var(--border-light);border-radius:8px;box-sizing:border-box;font-size:1rem;padding:.875rem 1rem;transition:border-color .3s ease;width:100%}.field-input:focus{border-color:var(--primary-green);outline:none}.field-input.error{border-color:var(--decline-red)}.field-textarea{border:2px solid var(--border-light);border-radius:8px;font-family:inherit;font-size:1rem;min-height:100px;padding:.875rem 1rem;resize:vertical;transition:border-color .3s ease;width:100%}.field-textarea:focus{border-color:var(--primary-green);outline:none}.button-group{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.option-btn{background:#fff;border:2px solid var(--border-light);border-radius:6px;color:var(--text-light);cursor:pointer;flex:1;font-size:.85rem;font-weight:600;padding:.75rem 1rem;text-align:center;transition:all .3s ease}.option-btn:hover{background:var(--background-light);border-color:var(--primary-green);color:var(--text-dark)}.option-btn.active{background:var(--primary-green);border-color:var(--primary-green);color:#fff}.button-group.four-options .option-btn{flex:1 1 calc(25% - 0.375rem);min-width:100px}.confirmation-summary{background:var(--background-light);border-radius:12px;margin-bottom:2rem;padding:2rem}.summary-section{margin-bottom:2rem}.summary-section:last-child{margin-bottom:0}.summary-title{align-items:center;color:var(--text-dark);display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin:0 0 1rem}.summary-content{background:#fff;border:1px solid var(--border-light);border-radius:8px;padding:1.5rem}.summary-item{align-items:center;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;padding:.75rem 0}.summary-item:last-child{border-bottom:none}.summary-label{color:var(--text-dark);font-weight:500}.summary-value{color:var(--text-light);font-weight:500}.summary-value.accepted{color:var(--accent-green);font-weight:600}.summary-value.declined{color:var(--decline-red);font-weight:600}.step-navigation{display:flex;gap:1rem;margin-top:2rem}.continue-button{background:var(--primary-green);border:none;border-radius:8px;color:#fff;cursor:pointer;flex:1;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.continue-button:hover:not(:disabled){background:var(--primary-green-hover);transform:translateY(-2px)}.continue-button:disabled{background:#bdc3c7;cursor:not-allowed;transform:none}.back-button{background:transparent;border:2px solid #e9ecef;border-radius:8px;color:#6c757d;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.back-button:hover{background:var(--primary-green);border-color:var(--primary-green);color:#fff;transform:translateY(-1px)}.submit-button{background:linear-gradient(135deg,var(--accent-green),#229954);border:none;border-radius:8px;color:#fff;cursor:pointer;flex:1;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#229954,#1e8449);transform:translateY(-2px)}.submit-button:disabled{background:#bdc3c7;cursor:not-allowed;transform:none}.loading-overlay{align-items:center;background:#fff;border-radius:12px;bottom:0;display:none;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:100}.loading-content{color:var(--text-dark);text-align:center}.loading-logo{align-items:center;background:#fff;border:3px solid var(--background-light);border-radius:50%;box-shadow:0 4px 20px rgba(28,61,47,.15);color:var(--primary-green);display:flex;font-size:2rem;font-weight:700;height:120px;justify-content:center;margin:0 auto 1.5rem;width:120px}.loading-logo img{animation:logoRotate 3s linear infinite;height:90px;object-fit:contain;width:90px}.loading-logo-initials{animation:logoRotate 3s linear infinite;font-family:Georgia,serif;font-weight:700;letter-spacing:2px}@keyframes logoRotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-content p{color:var(--primary-green);font-size:1.1rem;font-weight:500;margin:0}@media (max-width:768px){.event-module{padding:1rem}.input-button-group{flex-direction:column}.step-indicator{margin-bottom:2rem}.step-item{max-width:80px}.step-label{font-size:.4rem}.wedding-title{font-size:1.5rem}.rsvp-guest-card{align-items:stretch;flex-direction:column;gap:1rem}.guest-info{text-align:center}.rsvp-buttons{justify-content:center}.step-navigation{flex-direction:column}.back-button{order:2}.button-group.four-options .option-btn{flex:1 1 calc(50% - 0.25rem)}.form-section{box-shadow:0 2px 8px rgba(28,61,47,.04);padding:1.5rem}}@media (max-width:480px){.step-number{font-size:.8rem;height:28px;width:28px}.button-group.four-options .option-btn{flex:1 1 100%}.rsvp-guest-card{gap:1rem;grid-template-columns:1fr;text-align:center}.rsvp-buttons{gap:.4rem;justify-content:center;margin:0 auto;max-width:100%;min-width:auto;width:fit-content}.rsvp-btn{font-size:.75rem;max-width:75px;min-width:60px;padding:.5rem .4rem}.rsvp-btn.no-response{font-size:.5rem;max-width:65px;min-width:55px}}.guest-cards-container{display:flex;flex-direction:column;gap:1.5rem;padding:0}.guest-detail-card{background:#fff;border:2px solid var(--border-light);border-radius:12px;overflow:hidden;padding:0;transition:all .3s ease}.guest-detail-card:hover{border-color:var(--primary-green);box-shadow:0 4px 12px rgba(28,61,47,.1)}.guest-card-header{align-items:center;background:linear-gradient(135deg,var(--primary-green),var(--primary-green-hover));display:flex;justify-content:space-between;padding:1.25rem}.guest-card-name{color:#fff;font-size:1.1rem;font-weight:600;margin:0}.party-lead-badge{background:hsla(0,0%,100%,.2);border:1px solid hsla(0,0%,100%,.3);border-radius:20px;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.guest-card-content{padding:1.5rem}.guest-detail-item{align-items:flex-start;border-bottom:1px solid var(--border-light);display:flex;gap:1rem;justify-content:space-between;padding:.75rem 0}.guest-detail-item:last-child{border-bottom:none}.detail-label{color:var(--text-dark)}.detail-label,.detail-value{flex:1;font-size:.9rem;font-weight:500;min-width:0}.detail-value{color:var(--text-light);text-align:right;word-break:break-word}.no-details{color:var(--text-light);font-style:italic;padding:1rem 0;text-align:center}.rsvp-btn.no-response{background:#f8f9fa;border-color:#e9ecef;color:#6c757d;flex:0 0 auto;font-size:.5rem;max-width:75px;min-width:65px;padding:.625rem .5rem}.rsvp-btn.no-response:hover{background:#e9ecef;border-color:#dee2e6;color:#495057}.rsvp-btn.no-response.active{background:#6c757d;border-color:#6c757d;color:#fff}.rsvp-buttons{display:flex;gap:.5rem;justify-content:flex-end;max-width:300px;min-width:240px}@media (max-width:768px){.rsvp-btn.no-response{flex:1 1 100%;margin-top:.5rem}.guest-card-header{align-items:flex-start;flex-direction:column;gap:.5rem}.party-lead-badge{align-self:flex-start}.guest-detail-item{align-items:flex-start;flex-direction:column;gap:.5rem}.detail-value{text-align:left}.event-module{border-radius:12px;margin:1rem auto;padding:1.5rem}}@media (min-width:768px){.guest-cards-container.grid-layout{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}}