*{box-sizing:border-box;margin:0;padding:0}body,html{max-width:100%;overflow-x:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f5f5f5,#e8e8e8);color:#1a1a1a;font-family:Cormorant Garamond,serif;min-height:100vh}img{height:auto;max-width:100%}#root{align-items:center;display:flex;justify-content:center;min-height:100vh}.App{width:100%}h1,h2,h3,h4,h5,h6{color:#000;font-weight:400}p{color:#333;line-height:1.8}.cursive{font-family:Great Vibes,cursive}.App{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:20px}@media (max-width:640px){.App{align-items:flex-start;padding:12px}}.login-container{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:20px;width:100%}.login-card{background:linear-gradient(180deg,#fff,#fafafa);border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 8px 32px #0000001f;max-width:480px;padding:3rem 2.5rem;width:100%}.login-welcome{margin-bottom:2rem;text-align:center}.login-welcome h2{color:#000;font-size:2rem;font-weight:400;margin-bottom:.5rem}.login-welcome p{color:#666;font-size:1rem;font-weight:300}.login-tip{background-color:#f8f8f8;border-left:3px solid #d0d0d0;border-radius:4px;color:#888;font-size:.9375rem;font-weight:300;margin-top:1rem;padding:.75rem}.login-tip strong{color:#555;font-weight:500}.login-form{margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.form-input{font-size:1.125rem}.form-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{font-size:.9375rem;margin-bottom:1rem;padding:.875rem}.login-footer{border-top:1px solid #e0e0e0;padding-top:1.5rem;text-align:center}.login-footer p{color:#888;font-size:.875rem;font-weight:300}@media (max-width:640px){.login-card{padding:2rem 1.5rem}.login-welcome h2{font-size:1.75rem}}.family-chooser{margin-bottom:2rem}.family-chooser-prompt{color:#555;font-size:1rem;margin-bottom:1.25rem;text-align:center}.family-choice-list{display:flex;flex-direction:column;gap:.75rem}.family-choice{align-items:flex-start;background-color:#fff;border:2px solid #d0d0d0;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:.25rem;padding:1rem;text-align:left;transition:all .3s ease;width:100%}.family-choice:hover:not(:disabled){background-color:#f8f8f8;border-color:#000}.family-choice:disabled{cursor:not-allowed;opacity:.6}.family-choice-name{color:#000;font-size:1.125rem;font-weight:500}.family-choice-members{color:#777;font-size:.9rem;word-break:break-word}.link-back-btn{background:none;border:none;color:#666;cursor:pointer;display:inline-block;font-family:inherit;font-size:.95rem;margin-top:1rem;padding:.25rem 0}.link-back-btn:hover:not(:disabled){color:#000}.logo-container{margin-bottom:2rem;text-align:center}.logo-svg{display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));height:220px;margin:0 auto;max-width:100%;width:auto}@media (max-width:640px){.logo-svg{height:150px}}.rsvp-container{display:flex;justify-content:center;min-height:100vh;padding:40px 20px;width:100%}.rsvp-card{background:linear-gradient(180deg,#fff,#fafafa);border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 8px 32px #0000001f;margin:20px 0;max-width:700px;padding:3rem 2.5rem;width:100%}.rsvp-header{margin-bottom:2.5rem;text-align:center}.rsvp-header h1{color:#000;font-size:2.5rem;font-weight:400;margin-bottom:1rem}.thank-you-text{color:#444;font-size:1.125rem;font-style:italic;font-weight:300;line-height:1.8;margin:0 auto;max-width:600px}.success-message{background:linear-gradient(135deg,#e8f5e9,#f1f8f4);border:1px solid #a5d6a7;border-radius:4px;color:#2e7d32;font-size:1rem}.error-message,.success-message{margin-bottom:2rem;padding:1rem;text-align:center}.error-message{background-color:#ffe0e0;border:1px solid #fcc;border-radius:4px;color:#c00}.event-details{background:linear-gradient(to bottom right,#f8f8f8,#fff);border:2px solid #e0e0e0;border-radius:8px;margin-bottom:2.5rem;padding:2rem}.event-details h2{color:#000;font-size:1.875rem;font-weight:400;margin-bottom:1.5rem;text-align:center}.event-section{align-items:flex-start;display:flex;gap:1.5rem}.event-icon{flex-shrink:0;font-size:2.5rem}.event-info h3{color:#000;font-size:1.5rem;font-weight:500;margin-bottom:.75rem}.event-venue{color:#1a1a1a;font-size:1.125rem;font-weight:500;margin-bottom:.25rem}.event-address{color:#555;font-size:1rem;margin-bottom:.125rem}.event-address-link{border-bottom:2px solid #0000;cursor:pointer;display:inline-block;margin:.25rem 0;text-decoration:none;transition:all .3s ease}.event-address-link:hover{border-bottom:2px solid #000}.event-address-link:hover .event-address{color:#000}.event-address-link .event-address{transition:color .3s ease}.event-time{color:#666;font-size:1rem;font-style:italic;font-weight:500;margin-top:.75rem}.event-divider{background:linear-gradient(90deg,#0000,#d0d0d0,#0000);height:1px;margin:2rem 0}.rsvp-form{margin-bottom:2rem}.rsvp-form h2{color:#000;font-size:1.875rem;font-weight:400;margin-bottom:1.5rem;text-align:center}.form-section{border-bottom:1px solid #e8e8e8;margin-bottom:2rem;padding-bottom:2rem}.form-section:last-of-type{border-bottom:none}.form-label{color:#1a1a1a;display:block;font-size:1.125rem;font-weight:500;margin-bottom:1rem}.radio-group{display:flex;flex-direction:column;gap:.875rem}.radio-label{align-items:center;background-color:#fff;border:2px solid #d0d0d0;border-radius:4px;cursor:pointer;display:flex;padding:1rem;transition:all .3s ease}.radio-label:hover{background-color:#fafafa;border-color:#999}.radio-label input[type=radio]{cursor:pointer;flex-shrink:0;height:20px;margin-right:.875rem;width:20px}.radio-label input[type=radio]:checked+span{color:#000;font-weight:500}.radio-label:has(input[type=radio]:checked){background-color:#f8f8f8;border-color:#000}.radio-label span{color:#333;font-size:1rem}.meal-note{color:#888;font-size:.875rem;font-style:italic;font-weight:300}.child-meal-info{background:#f8f8f8;border-left:3px solid #d0d0d0;border-radius:4px;color:#555;font-size:1rem;line-height:1.6;margin:0;padding:.75rem 1rem}.child-meal-info strong{color:#333}.form-input{background-color:#fff;border:2px solid #d0d0d0;border-radius:4px;color:#1a1a1a;font-family:Cormorant Garamond,serif;font-size:1rem;padding:1rem;transition:all .3s ease;width:100%}.form-input:focus{border-color:#000;box-shadow:0 0 0 3px #0000000d;outline:none}.form-input::placeholder{color:#999}.form-help{color:#888;font-size:.875rem;font-style:italic;margin-top:.5rem}.submit-btn{background-color:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;font-family:Cormorant Garamond,serif;font-size:1.125rem;font-weight:500;letter-spacing:1px;margin-top:1rem;padding:1rem;text-transform:uppercase;transition:all .3s ease;width:100%}.submit-btn:hover:not(:disabled){background-color:#333;box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{background-color:#666;cursor:not-allowed;transform:none}.rsvp-footer{border-top:2px solid #e0e0e0;padding-top:2rem;text-align:center}.appreciation-text{color:#444;font-size:1rem;font-style:italic;font-weight:300;line-height:1.8;margin-bottom:1.5rem}.signature{color:#1a1a1a;font-size:1.125rem;font-weight:400;line-height:1.6;margin-bottom:2rem}.logout-btn{background-color:initial;border:1px solid #d0d0d0;border-radius:4px;color:#666;cursor:pointer;font-family:Cormorant Garamond,serif;font-size:.9375rem;letter-spacing:1px;padding:.625rem 1.5rem;text-transform:uppercase;transition:all .3s ease}.logout-btn:hover{background-color:#f5f5f5;border-color:#999;color:#333}.menu-section{background:linear-gradient(to bottom right,#f8f8f8,#fff);border:2px solid #e0e0e0;border-radius:8px;margin-bottom:2.5rem;padding:2rem}.menu-section h2{color:#000;font-size:1.875rem;font-weight:400;margin-bottom:1.5rem;text-align:center}.menu-category{margin-bottom:2rem}.menu-category h3{border-bottom:2px solid #000;color:#000;font-size:1.5rem;font-weight:500;margin-bottom:1rem;padding-bottom:.5rem}.menu-divider{background:linear-gradient(90deg,#0000,#d0d0d0,#0000);height:1px;margin:2rem 0}.menu-course{margin-bottom:1.5rem}.menu-course h4{color:#333;font-size:1.125rem;font-weight:500;letter-spacing:1px;margin-bottom:.75rem;text-transform:uppercase}.menu-item{margin-bottom:1rem;padding-left:1rem}.menu-item-name{color:#1a1a1a;font-size:1.125rem;font-weight:500;margin-bottom:.25rem}.menu-item-description{color:#666;font-size:1rem;font-style:italic;font-weight:300;line-height:1.6}.menu-allergen{color:#c00;font-size:.875rem;font-style:italic;font-weight:400}.menu-disclaimer{background-color:#fff8e1;border-left:3px solid #ffa000;border-radius:4px;margin-top:1.5rem;padding:1rem}.menu-disclaimer p{color:#555;font-size:.9375rem;margin:0}.menu-disclaimer strong{color:#000}.faq-section{background:linear-gradient(to bottom right,#f8f8f8,#fff);border:2px solid #e0e0e0;border-radius:8px;margin-bottom:2.5rem;padding:2rem}.faq-section h2{color:#000;font-size:1.875rem;font-weight:400;margin-bottom:1.5rem;text-align:center}.faq-item{border-bottom:1px solid #e8e8e8;margin-bottom:1.5rem;padding-bottom:1.5rem}.faq-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.faq-item h3{color:#000;font-size:1.25rem;font-weight:500;margin-bottom:.75rem}.faq-item p{color:#555;font-size:1rem;line-height:1.7}.faq-item a{border-bottom:1px solid #000;color:#000;text-decoration:none;transition:opacity .3s ease}.faq-item a:hover{opacity:.7}@media (max-width:640px){.rsvp-container{padding:20px 12px}.rsvp-card{padding:2rem 1.25rem}.rsvp-header h1{font-size:2rem;word-break:break-word}.event-section{flex-direction:column;gap:1rem}.event-icon{font-size:2rem}.event-details{padding:1.5rem 1.25rem}.event-info h3{font-size:1.3rem}.radio-group{gap:.75rem}.radio-label{padding:.875rem}.guest-block{padding:1.25rem 1rem}.guest-block-header{align-items:flex-start;flex-direction:column;gap:.25rem}.guest-block-name{font-size:1.3rem;word-break:break-word}.form-label{font-size:1.05rem}.faq-section,.menu-section{padding:1.5rem 1.25rem}.faq-section h2,.menu-section h2{font-size:1.5rem}.menu-category h3{font-size:1.25rem}.menu-item{padding-left:.5rem}.faq-item h3{font-size:1.125rem}}.guest-block{background:#fff;border:2px solid #e0e0e0;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.guest-block-header{align-items:baseline;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:.75rem}.guest-block-name{color:#000;font-size:1.5rem;font-weight:500}.guest-block-count{color:#888;font-size:.875rem;letter-spacing:1px;text-transform:uppercase}.admin-container{margin:0 auto;max-width:1100px;min-width:0;padding:2rem 1.5rem;width:100%}.admin-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.admin-header h1{font-size:2rem;font-weight:400;margin:0}.admin-signout{background:#0000;border:1px solid #d0d0d0;border-radius:4px;cursor:pointer;font-family:inherit;font-size:.85rem;letter-spacing:1px;padding:.5rem 1rem;text-transform:uppercase}.admin-signout:hover{background:#f5f5f5}.admin-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:2rem}.admin-stats .stat{background:#fafafa;border:1px solid #e0e0e0;border-radius:6px;color:#555;font-size:.9rem;letter-spacing:1px;padding:1rem;text-align:center;text-transform:uppercase}.admin-stats .stat span{color:#000;display:block;font-size:2rem;font-weight:500;margin-bottom:.25rem}.admin-stats .stat-clickable{cursor:pointer;font-family:inherit;transition:all .2s ease}.admin-stats .stat-clickable:hover{background:#f0f0f0;border-color:#b0b0b0;transform:translateY(-2px)}.admin-stats .stat-clickable.active{background:#000;border-color:#000;color:#fff}.admin-stats .stat-clickable.active span{color:#fff}.admin-active-filter{align-items:center;background:#f5f5f5;border:1px solid #e0e0e0;border-left:3px solid #000;border-radius:4px;color:#333;display:flex;flex-wrap:wrap;font-size:.95rem;gap:1rem;justify-content:space-between;margin-bottom:1.5rem;padding:.75rem 1rem}.admin-active-filter-clear{background:#0000;border:none;border-radius:4px;color:#666;cursor:pointer;font-family:inherit;font-size:.9rem;letter-spacing:.5px;padding:.25rem .5rem;text-transform:uppercase;transition:all .2s ease}.admin-active-filter-clear:hover{background:#e0e0e0;color:#000}.admin-error{background:#ffe0e0;border:1px solid #fcc;border-radius:4px;color:#c00;margin-bottom:1rem;padding:.75rem 1rem}.admin-add-family{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.admin-add-family input,.admin-add-guest input{border:2px solid #d0d0d0;border-radius:4px;flex:1 1;font-family:inherit;font-size:1rem;min-width:0;padding:.75rem}.admin-add-family button,.admin-add-guest button{background:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;font-family:inherit;font-size:.85rem;letter-spacing:1px;padding:.75rem 1.25rem;text-transform:uppercase}.admin-add-family button:hover,.admin-add-guest button:hover{background:#333}.admin-search{margin-bottom:2rem;position:relative}.admin-search-input{border:2px solid #d0d0d0;border-radius:4px;box-sizing:border-box;font-family:inherit;font-size:1rem;padding:.875rem 2.5rem .875rem 1rem;transition:border-color .3s ease;width:100%}.admin-search-input:focus{border-color:#000;outline:none}.admin-search-input::placeholder{color:#999}.admin-search-clear{align-items:center;background:#0000;border:none;border-radius:3px;color:#666;cursor:pointer;display:flex;font-size:1rem;height:1.5rem;justify-content:center;line-height:1;padding:0;position:absolute;right:.5rem;top:.875rem;transition:all .2s ease;width:1.5rem}.admin-search-clear:hover{background:#f5f5f5;color:#000}.admin-search-results{color:#666;font-size:.9rem;font-style:italic;margin-top:.5rem}.admin-empty{color:#888;font-style:italic}.admin-family{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1.5rem;min-width:0;overflow:hidden;padding:1.25rem 1.5rem}.admin-family-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.admin-family-header h2{font-size:1.4rem;font-weight:500;margin:0}.admin-family-actions{display:flex;gap:.75rem}.link-btn{background:none;border:none;color:#444;cursor:pointer;font-family:inherit;font-size:.9rem;padding:.25rem .4rem;text-decoration:underline}.link-btn:hover{color:#000}.link-btn.danger{color:#c00}.admin-guests-wrap{margin-bottom:1rem;overflow-x:auto;width:100%}.admin-guests{border-collapse:collapse;font-size:.95rem;width:100%}.admin-guests td,.admin-guests th{border-bottom:1px solid #eee;padding:.5rem .6rem;text-align:left;vertical-align:top}.admin-guests .dietary-cell{max-width:260px;min-width:160px;overflow-wrap:anywhere;word-break:break-word}.admin-guests th{color:#555;font-size:.75rem;font-weight:500;letter-spacing:1px;text-transform:uppercase;white-space:nowrap}.admin-guests .muted{color:#888;font-style:italic;text-align:center}.admin-guests .row-actions{display:flex;flex-wrap:nowrap;gap:.25rem;justify-content:flex-end}.admin-guests .row-actions .link-btn{white-space:nowrap}.admin-add-guest{display:flex;flex-wrap:wrap;gap:.5rem}.admin-child-checkbox{align-items:center;color:#555;cursor:pointer;display:flex;font-size:.9rem;gap:.4rem;white-space:nowrap}.admin-child-checkbox input{cursor:pointer;height:1rem;width:1rem}.guest-type-badge{background:#eee;border-radius:999px;color:#555;display:inline-block;font-size:.75rem;letter-spacing:.5px;padding:.1rem .5rem;text-transform:uppercase}.guest-type-badge.child{background:#e3f0ff;color:#1d4e89}@media (max-width:700px){.admin-guests{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;white-space:nowrap;width:100%}}@media (max-width:640px){.admin-container{padding:1.25rem 1rem}.admin-header{flex-wrap:wrap;gap:.75rem}.admin-header h1{font-size:1.6rem}.admin-stats{gap:.75rem;grid-template-columns:repeat(2,1fr)}.admin-stats .stat{font-size:.8rem}.admin-stats .stat span{font-size:1.6rem}.admin-add-family,.admin-add-guest{align-items:stretch;flex-direction:column}.admin-add-family button,.admin-add-guest button{width:100%}.admin-family{padding:1rem}.admin-family-header{align-items:flex-start;flex-direction:column;gap:.5rem}.admin-family-actions{flex-wrap:wrap;gap:.5rem}.link-btn{padding:.35rem 0}}.admin-family-address{color:#666;font-size:.95rem;margin:.25rem 0 0;white-space:pre-line}.admin-family-address em{color:#aaa;font-style:italic}.admin-family-heading{flex:1 1;min-width:0}.admin-address-edit{margin-top:.5rem}.admin-address-edit input{border:2px solid #000;border-radius:4px;font-family:inherit;font-size:1rem;padding:.6rem .75rem;width:100%}.admin-address-edit-actions{display:flex;gap:.5rem;margin-top:.4rem}.address-autocomplete-warning{color:#c00;display:block;font-size:.8rem;margin-top:.25rem}.pac-container{font-family:inherit;z-index:10000!important}.admin-missing-addresses{background:#fff8e1;border:1px solid #f0d97a;border-radius:6px;margin-bottom:1.5rem;padding:.9rem 1rem}.admin-missing-addresses-header{color:#6b5100;font-size:.95rem;margin-bottom:.6rem}.admin-missing-addresses-header strong{font-size:1.05rem}.admin-missing-addresses-list{display:flex;flex-wrap:wrap;gap:.4rem}.admin-missing-address-chip{background:#fff;border:1px solid #d9b84a;border-radius:999px;color:#4a3800;cursor:pointer;font-family:inherit;font-size:.9rem;padding:.3rem .75rem;transition:background .15s ease,border-color .15s ease}.admin-missing-address-chip:hover{background:#fdefb8;border-color:#b39229}.admin-back-to-top{background:#000;border:none;border-radius:50%;bottom:24px;box-shadow:0 4px 14px #00000040;color:#fff;cursor:pointer;font-size:1.3rem;height:48px;line-height:1;position:fixed;right:24px;transition:transform .15s ease,background .15s ease;width:48px;z-index:1000}.admin-back-to-top:hover{background:#333;transform:translateY(-2px)}.admin-back-to-top:active{transform:translateY(0)}
/*# sourceMappingURL=main.14d72f08.css.map*/