:root{--primary-dark: #0D525D;--primary-light: #2B7F8B;--accent-green: #CBE7E4;--cream: #FFF5EB;--app-white: #FFFDFC;--yes-bg: #DAE7E3;--yes-text: #0F4447;--no-bg: #FFD7D0;--no-text: #8F0E06;--maybe-bg: #F5E6A8;--maybe-text: #8B6914}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Quicksand,sans-serif;background:var(--app-white);color:var(--primary-dark);line-height:1.6;padding-bottom:env(safe-area-inset-bottom)}h1,h2,h3{font-family:"Averia Serif Libre",serif}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.page{max-width:600px;margin:0 auto;padding:0 0 40px}.card{background:var(--cream);border-radius:16px;padding:32px;margin-bottom:16px}.error-card{background:var(--no-bg);color:var(--no-text);text-align:center;max-width:400px}.event-header{background:var(--cream);padding:24px 20px;text-align:center;border-radius:0 0 20px 20px;margin-bottom:20px}.organizer-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid var(--primary-dark);margin:0 auto 12px;display:block}.event-banner{background:linear-gradient(135deg,var(--primary-dark),var(--primary-light));height:120px;border-radius:12px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;font-size:48px}.event-title{font-size:22px;color:var(--primary-dark);margin-bottom:6px}.event-meta{color:var(--primary-light);font-size:14px;margin-bottom:4px}.rsvp-options{display:grid;gap:12px;margin:24px 20px}.rsvp-option{border:2px solid;border-radius:14px;padding:18px;cursor:pointer;text-align:center;font-weight:600;font-size:17px;font-family:Quicksand,sans-serif;transition:transform .15s,box-shadow .15s;min-height:72px;display:flex;align-items:center;justify-content:center;gap:10px;touch-action:manipulation;background:none}.rsvp-option:active{transform:scale(.97)}.rsvp-option.selected{transform:scale(1.02);box-shadow:0 6px 20px #00000021}.rsvp-option.yes{border-color:var(--yes-text);background:var(--yes-bg);color:var(--yes-text)}.rsvp-option.maybe{border-color:var(--maybe-text);background:var(--maybe-bg);color:var(--maybe-text)}.rsvp-option.no{border-color:var(--no-text);background:var(--no-bg);color:var(--no-text)}.menu-section{padding:0 20px 20px}.menu-section h2{margin-bottom:16px;font-size:18px}.menu-category{margin-bottom:20px}.menu-category h3{font-size:16px;margin-bottom:8px}.menu-chips{display:flex;flex-wrap:wrap;gap:8px}.menu-chip{background:var(--app-white);border:2px solid var(--accent-green);border-radius:20px;padding:8px 16px;cursor:pointer;font-size:14px;font-weight:500;font-family:Quicksand,sans-serif;touch-action:manipulation;min-height:40px;transition:all .15s}.menu-chip.selected{background:var(--primary-dark);color:var(--app-white);border-color:var(--primary-dark)}.special-section{padding:0 20px 20px}.special-section h2{margin-bottom:16px;font-size:18px}.form-group{margin-bottom:16px}.form-group label{display:block;font-weight:600;margin-bottom:6px;font-size:14px}.form-input{width:100%;padding:12px 16px;border:2px solid var(--accent-green);border-radius:10px;font-family:Quicksand,sans-serif;font-size:16px;background:var(--app-white);color:var(--primary-dark);transition:border-color .2s;-webkit-appearance:none}.form-input:focus{outline:none;border-color:var(--primary-dark)}textarea.form-input{resize:vertical;min-height:96px}.dietary-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.dietary-tag{background:var(--primary-dark);color:var(--app-white);padding:4px 12px;border-radius:14px;font-size:12px;display:flex;align-items:center;gap:6px}.dietary-tag button{background:none;border:none;color:var(--app-white);cursor:pointer;font-size:14px;line-height:1;padding:0}.consent-box{background:var(--app-white);border:2px solid var(--accent-green);border-radius:10px;padding:16px;margin:16px 0}.consent-label{display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-weight:500;font-size:13px;line-height:1.5}.consent-label input[type=checkbox]{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--primary-dark);cursor:pointer}.consent-label a{color:var(--primary-light)}.btn{width:100%;background:var(--primary-dark);color:var(--app-white);border:none;padding:16px 24px;border-radius:10px;font-family:Quicksand,sans-serif;font-weight:600;font-size:16px;cursor:pointer;transition:background .2s,transform .1s;min-height:54px;touch-action:manipulation}.btn:hover{background:var(--primary-light)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-outline{background:transparent;color:var(--primary-dark);border:2px solid var(--primary-dark)}.btn-outline:hover{background:var(--cream)}.btn-sm{padding:10px 18px;font-size:14px;min-height:40px}.verify-card{max-width:420px;width:100%;background:var(--cream);border-radius:20px;padding:36px 28px;box-shadow:0 4px 24px #00000014}.verify-card h1{font-size:22px;margin-bottom:8px;text-align:center}.verify-card .subtitle{color:var(--primary-light);text-align:center;margin-bottom:28px;font-size:14px}.otp-row{display:flex;gap:8px;justify-content:center;margin:20px 0}.otp-digit{width:46px;height:58px;text-align:center;font-size:24px;font-weight:600;font-family:Quicksand,sans-serif;border:2px solid var(--accent-green);border-radius:10px;background:var(--app-white);color:var(--primary-dark);-webkit-appearance:none}.otp-digit:focus{outline:none;border-color:var(--primary-dark)}.msg{padding:14px 16px;border-radius:10px;font-weight:600;font-size:14px;margin:12px 0;text-align:center}.msg.success{background:var(--yes-bg);color:var(--yes-text)}.msg.error{background:var(--no-bg);color:var(--no-text)}.icon-lg{font-size:56px;text-align:center;margin-bottom:16px}.spinner{width:40px;height:40px;border:3px solid var(--accent-green);border-top-color:var(--primary-dark);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.divider{margin:16px 0;border:none;border-top:1px solid var(--accent-green)}.verified-badge{font-size:12px;color:var(--primary-light);margin-top:4px}.success-screen{text-align:center;padding:40px 20px}.success-screen h1{font-size:26px;margin-bottom:12px}.success-screen p{color:var(--primary-light);margin-bottom:8px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
