:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.loading{text-align:center;padding:2rem;font-size:1.2rem;color:#666}.error-message{background-color:#fee;color:#c33;padding:1rem;border-radius:8px;margin-bottom:1rem;text-align:center}.rsvp-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.rsvp-card{background:#1a657e;border-radius:0;padding:0 2rem 2rem;max-width:600px;width:100%;box-shadow:none}.rsvp-card h1{color:#667eea;margin-bottom:.5rem;font-size:2rem}.rsvp-card h2{color:#f0eee5;margin-bottom:2rem;margin-top:0;font-size:1.5rem;text-align:center}.rsvp-form .form-group{margin-bottom:1.5rem;text-align:left}.rsvp-form .form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#f0eee5}.rsvp-form input[type=number],.rsvp-form input[type=text],.rsvp-form textarea{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;font-family:inherit;transition:border-color .3s;background-color:#f0eee5;color:#000}.rsvp-form input:focus,.rsvp-form textarea:focus{outline:none;border-color:#667eea}.radio-group{display:flex;gap:1.5rem;flex-wrap:wrap}.radio-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400;color:#f0eee5}.radio-group input[type=radio]{width:18px;height:18px;cursor:pointer}.submit-btn{width:100%;padding:1rem;background:#92a64e;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-top:1rem}.submit-btn:first-of-type{background:#59bcdb}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.wedding-info{margin-top:2rem;padding-top:2rem;border-top:2px solid #eee}.wedding-info h3{color:#667eea;margin-bottom:1rem}.info-section{text-align:left;line-height:1.8}.info-section p{margin-bottom:.5rem;color:#555}.map-container{margin-top:1rem;border-radius:8px;overflow:hidden}.thank-you-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.thank-you-card{background:#fff;border-radius:12px;padding:2rem;max-width:600px;width:100%;box-shadow:0 10px 30px #0003;text-align:center}.success-icon{width:80px;height:80px;background:#4caf50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem;margin:0 auto 1rem}.thank-you-card h1{color:#667eea;margin-bottom:1rem}.thank-you-card h2{color:#333;margin-bottom:1rem;font-size:1.3rem}.message{color:#666;font-size:1.1rem;margin-bottom:2rem}.rsvp-summary{background:#f8f9fa;padding:1.5rem;border-radius:8px;text-align:left;margin-bottom:2rem}.rsvp-summary h3{color:#667eea;margin-bottom:1rem}.rsvp-summary p{margin-bottom:.75rem;color:#555;line-height:1.6}.wedding-reminder{background:#fff9e6;padding:1.5rem;border-radius:8px;text-align:left;margin-top:2rem}.wedding-reminder h3{color:#667eea;margin-bottom:1rem}.contact-note{margin-top:1rem;font-size:.9rem;color:#666;font-style:italic}.footer-message{margin-top:2rem;font-size:1.2rem;color:#667eea}.admin-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{background:#fff;border-radius:12px;padding:2rem;max-width:400px;width:100%;box-shadow:0 10px 30px #0003}.login-card h1{color:#667eea;margin-bottom:.5rem;font-size:1.8rem;text-align:center}.login-card h2{color:#333;margin-bottom:2rem;font-size:1.3rem;text-align:center}.login-form .form-group{margin-bottom:1.5rem}.login-form label{display:block;margin-bottom:.5rem;font-weight:600;color:#333}.login-form input[type=text],.login-form input[type=password]{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .3s}.login-form input:focus{outline:none;border-color:#667eea}.login-btn{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.login-btn:disabled{opacity:.6;cursor:not-allowed}.admin-dashboard{min-height:100vh;padding:2rem;max-width:100%;width:100%;margin:0}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 10px #0000001a}.dashboard-header h1{color:#667eea;font-size:1.8rem}.header-buttons{display:flex;gap:1rem;align-items:center}.logout-btn{padding:.75rem 1.5rem;background:#dc3545;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .3s}.logout-btn:hover{background:#c82333}.download-csv-btn{padding:.75rem 1.5rem;background:#28a745;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .3s}.download-csv-btn:hover{background:#218838}.stats-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 10px #0000001a;text-align:center;color:#333}.stat-card.success{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.stat-card.declined{background:linear-gradient(135deg,#f44336,#da190b);color:#fff}.stat-card.pending{background:linear-gradient(135deg,#ff9800,#fb8c00);color:#fff}.stat-card.predicted{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.stat-label{font-size:.9rem;opacity:.9;margin-bottom:.5rem}.stat-value{font-size:2.5rem;font-weight:700}.stat-percentage{font-size:.9rem;opacity:.8;margin-top:.25rem}.add-guest-section{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem}.add-guest-section h2{color:#667eea;margin-bottom:1.5rem}.add-guest-form .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.add-guest-form .form-group{margin-bottom:0}.add-guest-form .form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#333;font-size:.9rem}.add-guest-form input{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .3s}.add-guest-form input:focus{outline:none;border-color:#667eea}.generated-link-section{margin-top:1.5rem;padding:1.5rem;background:#e8f5e9;border-radius:8px}.generated-link-section h3{color:#4caf50;margin-bottom:1rem}.link-display{display:flex;gap:.5rem;margin-bottom:.5rem}.link-display input{flex:1;padding:.75rem;border:2px solid #4caf50;border-radius:8px;font-size:.9rem}.copy-btn{padding:.75rem 1.5rem;background:#4caf50;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;white-space:nowrap}.copy-btn:hover{background:#45a049}.link-note{font-size:.9rem;color:#666;font-style:italic}.controls{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.search-box{flex:1;min-width:200px}.search-input{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem}.filter-box{display:flex;align-items:center;gap:.5rem}.filter-box label{font-weight:600;color:#333;white-space:nowrap}.status-filter{padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;cursor:pointer}.guest-table-section{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 2px 10px #0000001a}.guest-table-section h2{color:#667eea;margin-bottom:1.5rem}.no-guests{text-align:center;color:#999;padding:2rem}.table-container{overflow-x:auto}.guest-table{width:100%;border-collapse:collapse;font-size:.9rem}.guest-table th{background:#f8f9fa;padding:1rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #dee2e6;white-space:nowrap}.guest-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.guest-table th.sortable:hover{background:#e9ecef}.guest-table td{padding:1rem;border-bottom:1px solid #dee2e6;color:#333}.guest-table tr:hover{background:#f8f9fa}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600;white-space:nowrap}.badge-invited{background:#e9ecef;color:#495057}.badge-opened{background:#cfe2ff;color:#084298}.badge-submitted{background:#d1e7dd;color:#0f5132}.badge-declined{background:#f8d7da;color:#842029}.yes-text{color:#28a745;font-weight:600}.no-text{color:#dc3545;font-weight:600}.pending-text{color:#6c757d;font-style:italic}.small-text{font-size:.85rem;color:#666}.contact-info{display:flex;flex-direction:column;gap:.5rem}.contact-email,.contact-phone{font-size:.9rem;line-height:1.4}.contact-none{color:#999}.action-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.action-btn{padding:.5rem .75rem;border:none;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .2s}.action-btn:hover{opacity:.8}.action-btn.copy{background:#0d6efd;color:#fff}.action-btn.regenerate{background:#ffc107;color:#333}.action-btn.delete{background:#dc3545;color:#fff}.action-btn.edit{background:#28a745;color:#fff}.action-btn.whatsapp{background:#25d366;color:#fff}.action-btn.whatsapp:disabled{background:#ccc;cursor:not-allowed;opacity:.5}.action-btn.whatsapp:disabled:hover{opacity:.5}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-dialog{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #eee}.modal-header h2{margin:0;color:#667eea;font-size:1.5rem}.modal-close-btn{background:none;border:none;font-size:2rem;color:#999;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.modal-close-btn:hover{background:#f0f0f0;color:#333}.modal-body{padding:1.5rem}.form-section{margin-bottom:2rem}.form-section h3{color:#667eea;margin-bottom:1rem;font-size:1.2rem;padding-bottom:.5rem;border-bottom:2px solid #eee}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;font-weight:600;color:#000;font-size:.9rem}.form-group input{padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.info-text{padding:.75rem;background-color:#ffffff1a;border:2px solid rgba(255,255,255,.3);color:#f0eee5;border-radius:8px;font-size:1rem;min-height:45px;display:flex;align-items:center}.readonly-section{background:#f8f9fa;padding:1.5rem;border-radius:8px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-item.full-width{grid-column:1 / -1}.info-item strong{color:#667eea;font-size:.9rem}.info-item span{color:#555;font-size:1rem}.token-display{background:#fff;padding:.5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.85rem;color:#333;border:1px solid #ddd;word-break:break-all}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:2px solid #eee}.btn-cancel,.btn-save{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel{background:#6c757d;color:#fff}.btn-cancel:hover:not(:disabled){background:#5a6268}.btn-save{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-save:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.btn-cancel:disabled,.btn-save:disabled{opacity:.6;cursor:not-allowed}.dialog-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.dialog-content{background:#fff;border-radius:12px;width:100%;max-width:600px;box-shadow:0 10px 40px #0000004d}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #eee}.dialog-header h2{color:#25d366;margin:0;font-size:1.5rem}.close-btn{background:none;border:none;font-size:2rem;color:#999;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-btn:hover{background:#f0f0f0;color:#333}.dialog-body{padding:1.5rem}.guest-info{background:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.guest-info p{margin:.5rem 0;color:#555}.guest-info strong{color:#333}.whatsapp-message-textarea{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;font-family:inherit;resize:vertical;transition:border-color .3s}.whatsapp-message-textarea:focus{outline:none;border-color:#25d366}.char-count{text-align:right;font-size:.85rem;color:#999;margin-top:.5rem}.dialog-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:2px solid #eee}.btn-send-whatsapp{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;background:#25d366;color:#fff;transition:all .2s}.btn-send-whatsapp:hover:not(:disabled){background:#20ba5a;transform:translateY(-2px);box-shadow:0 5px 15px #25d36666}.btn-send-whatsapp:disabled{background:#ccc;cursor:not-allowed;opacity:.6}@media(max-width:768px){.admin-dashboard{padding:1rem}.dashboard-header{flex-direction:column;gap:1rem}.stats-panel{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-value{font-size:2rem}.add-guest-form .form-row{grid-template-columns:1fr}.controls{flex-direction:column}.search-box,.filter-box{width:100%}.status-filter{flex:1}.guest-table{font-size:.8rem}.guest-table th,.guest-table td{padding:.5rem}.action-buttons{flex-direction:column}.action-btn{width:100%}}@media(max-width:480px){.rsvp-card,.thank-you-card,.login-card{padding:1.5rem}.rsvp-card h1,.thank-you-card h1{font-size:1.5rem}.rsvp-card h2,.thank-you-card h2{font-size:1.2rem}.radio-group{flex-direction:column;gap:1rem}}.homepage-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2)}.homepage-card{background:#fff;border-radius:16px;padding:3rem;box-shadow:0 10px 40px #0003;max-width:500px;width:100%}.homepage-header{text-align:center;margin-bottom:2rem}.homepage-header h1{font-size:2.5rem;color:#333;margin-bottom:.5rem;font-weight:700}.homepage-subtitle{font-size:1.1rem;color:#666;margin:0}.homepage-form{display:flex;flex-direction:column;gap:1.5rem}.homepage-form .form-group{display:flex;flex-direction:column;gap:.5rem}.homepage-form label{font-weight:600;color:#333;font-size:.95rem}.homepage-form input{padding:.9rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:all .3s ease}.homepage-form input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.homepage-form input:disabled{background-color:#f5f5f5;cursor:not-allowed}.homepage-form .submit-button{padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-top:.5rem}.homepage-form .submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.homepage-form .submit-button:active:not(:disabled){transform:translateY(0)}.homepage-form .submit-button:disabled{opacity:.6;cursor:not-allowed}.homepage-footer{margin-top:2rem;text-align:center;padding-top:1.5rem;border-top:1px solid #eee}.homepage-footer p{font-size:.9rem;color:#666;margin:0}@media(max-width:600px){.homepage-card{padding:2rem}.homepage-header h1{font-size:2rem}.homepage-subtitle{font-size:1rem}}@media(max-width:480px){.homepage-card{padding:1.5rem}.homepage-header h1{font-size:1.75rem}}.rsvp-grid-container{display:flex;flex-direction:column;width:100%}.rsvp-image-container{width:100%;display:flex;justify-content:center;align-items:flex-start;background-color:#fff;flex-shrink:0}.rsvp-image{width:100%;height:auto;display:block;max-width:100%}.rsvp-form-container{background-color:#1a657e;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0 2rem 3rem;min-height:100vh;width:100%}.rsvp-form-container .rsvp-card{max-width:600px;width:100%}.monograma-container{width:100%;max-width:600px;display:flex;justify-content:center;align-items:center;margin-top:.5rem;padding:0;margin-bottom:0}.monograma-image{width:15%;max-width:50px;height:auto;display:block}@media(min-width:1025px){.rsvp-form-container .rsvp-card{max-width:700px}}@media(max-width:1024px)and (min-width:769px){.rsvp-form-container{padding:0 1.5rem 2rem}.rsvp-form-container .rsvp-card{max-width:600px}}@media(max-width:768px){.rsvp-form-container{padding:0 1rem 2rem}.rsvp-form-container .rsvp-card{max-width:100%}}@media(max-width:480px){.rsvp-form-container{padding:0 1rem 1.5rem}.rsvp-form-container .rsvp-card h2{font-size:1.5rem}.info-text{font-size:.95rem;padding:.65rem;min-height:40px}.form-group label{font-size:.85rem}.rsvp-form textarea{font-size:.95rem}.download-images-btn{font-size:.9rem;padding:.65rem 1.5rem}}.download-images-section{margin-top:1.5rem;text-align:center;padding-top:1rem;border-top:2px solid #e0e0e0}.download-images-btn{padding:.75rem 2rem;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .3s,transform .2s}.download-images-btn:hover{background:#5568d3;transform:translateY(-2px)}.download-images-btn:active{transform:translateY(0)}
