*{box-sizing:border-box}body{margin:0;min-width:320px}#root{min-height:100vh}:root{--primary-color: #0ea5e9;--primary-dark: #0284c7;--secondary-color: #f97316;--success-color: #22c55e;--warning-color: #eab308;--danger-color: #ef4444;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--gray-100);color:var(--gray-800);line-height:1.5}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{background:#fff;padding:1rem 2rem;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.app-header h1{font-size:1.5rem;color:var(--primary-color)}.header-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.user-info{display:flex;align-items:center;gap:.5rem}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-avatar-placeholder{width:32px;height:32px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.admin-badge{background:var(--secondary-color);color:#fff;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:600}.app-main{flex:1;padding:1rem;max-width:1400px;margin:0 auto;width:100%;min-height:0;display:flex;flex-direction:column}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.25rem;color:var(--gray-500)}.loading-overlay{position:absolute;inset:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:10}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);padding:1rem}.login-container{background:#fff;padding:2rem;border-radius:1rem;box-shadow:0 10px 40px #0003;text-align:center;max-width:400px;width:100%}.login-container h1{color:var(--primary-color);margin-bottom:.5rem}.login-container .tagline{color:var(--gray-500);margin-bottom:2rem}.invite-status{padding:1rem;border-radius:.5rem;margin-bottom:1.5rem}.invite-status.valid{background:#dcfce7;color:#166534}.invite-status.invalid{background:#fee2e2;color:#991b1b}.invite-required{color:var(--gray-600);margin-bottom:1.5rem}.google-login{display:flex;justify-content:center;margin:1.5rem 0}.login-footer{margin-top:1.5rem;color:var(--gray-500);font-size:.875rem}.error-message{background:#fee2e2;color:#991b1b;padding:.75rem;border-radius:.5rem;margin:1rem 0}.calendar-container{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:1rem;position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.calendar-container .fc{flex:1;min-height:0}.fc{font-family:inherit}.fc .fc-toolbar-title{font-size:1.25rem}.fc .fc-button-primary{background-color:var(--primary-color);border-color:var(--primary-color)}.fc .fc-button-primary:hover{background-color:var(--primary-dark);border-color:var(--primary-dark)}.fc .fc-button-primary:disabled{background-color:var(--gray-300);border-color:var(--gray-300)}.fc-event{cursor:pointer}.canceled-event{text-decoration:line-through;opacity:.7}.event-content{padding:.125rem;overflow:hidden}.event-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-rsvp-count{font-size:.75rem;opacity:.9}.event-rsvp-count .going{margin-right:.25rem}.event-payment-indicator{position:absolute;top:.125rem;right:.25rem;font-weight:700}button{background:var(--primary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .15s}button:hover{background:var(--primary-dark)}button:disabled{background:var(--gray-300);cursor:not-allowed}button.danger{background:var(--danger-color)}button.danger:hover{background:#dc2626}.fab{position:fixed;bottom:2rem;right:2rem;width:3.5rem;height:3.5rem;border-radius:50%;font-size:1.5rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0003;z-index:100}.fab:hover{transform:scale(1.05)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:#fff;border-radius:.5rem;padding:1.5rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.modal-close{position:absolute;top:.5rem;right:.5rem;background:none;color:var(--gray-500);font-size:1.5rem;padding:.25rem .5rem;line-height:1}.modal-close:hover{color:var(--gray-700);background:none}.event-modal h2{margin-bottom:1rem;padding-right:2rem}.canceled-banner{background:var(--gray-200);color:var(--gray-600);padding:.75rem;border-radius:.375rem;margin-bottom:1rem;text-align:center;font-weight:500}.event-details{margin-bottom:1.5rem}.detail-row{margin-bottom:.75rem}.detail-row .label{font-weight:600;color:var(--gray-600);margin-right:.5rem}.detail-row .description{display:block;margin-top:.25rem;white-space:pre-wrap}.map-link{margin-left:.5rem;color:var(--primary-color);text-decoration:none}.payment-info{background:#fef3c7;padding:.75rem;border-radius:.375rem;margin-top:.75rem}.rsvp-section{margin-bottom:1.5rem}.rsvp-section h3{margin-bottom:.75rem;font-size:1rem}.rsvp-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.rsvp-btn{background:var(--gray-200);color:var(--gray-700)}.rsvp-btn:hover{background:var(--gray-300)}.rsvp-btn.active{background:var(--success-color);color:#fff}.attendees-section h3{margin-bottom:.75rem;font-size:1rem}.rsvp-group{margin-bottom:1rem}.rsvp-group h4{font-size:.875rem;color:var(--gray-500);margin-bottom:.5rem}.rsvp-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;border-bottom:1px solid var(--gray-200)}.rsvp-item.paid{background:#dcfce7}.rsvp-item .email{font-size:.875rem}.payment-checkbox{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--gray-600)}.payment-method{color:var(--gray-400)}.no-rsvps{color:var(--gray-500);font-style:italic;padding:1rem;text-align:center}.event-actions{display:flex;gap:.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--gray-200);flex-wrap:wrap}label{display:block;margin-bottom:1rem;font-weight:500;color:var(--gray-700)}label input,label textarea,label select{display:block;width:100%;margin-top:.25rem;padding:.5rem;border:1px solid var(--gray-300);border-radius:.375rem;font-size:1rem}label input:focus,label textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e91a}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-weight:400}.checkbox-label input{width:auto;margin:0}.date-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.payment-section{background:var(--gray-100);padding:1rem;border-radius:.375rem;margin:1rem 0}.payment-fields{margin-top:1rem}.form-actions{display:flex;gap:.5rem;margin-top:1.5rem}.form-actions button[type=button]{background:var(--gray-200);color:var(--gray-700)}.invite-button{background:var(--secondary-color)}.invite-button:hover{background:#ea580c}.invite-generated{text-align:center}.invite-generated p{margin-bottom:.5rem;color:var(--gray-600)}.invite-url{display:flex;gap:.5rem;margin-bottom:.75rem}.invite-url input{flex:1;padding:.5rem;border:1px solid var(--gray-300);border-radius:.375rem;font-size:.75rem}.new-invite{background:var(--gray-200);color:var(--gray-700);font-size:.75rem}.landing-page{min-height:100vh;display:flex;flex-direction:column}.landing-header{background:#fff;box-shadow:0 1px 3px #0000001a;position:sticky;top:0;z-index:100}.landing-nav{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.landing-nav .logo{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.nav-links{display:flex;gap:1rem;align-items:center}.nav-link{color:var(--gray-600);text-decoration:none;font-weight:500;padding:.5rem 1rem;border-radius:.375rem;transition:background-color .15s,color .15s}.nav-link:hover{background:var(--gray-100);color:var(--gray-800)}.landing-main{flex:1}.hero{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);color:#fff;text-align:center;padding:6rem 2rem}.hero h1{font-size:3rem;margin-bottom:1rem}.hero .tagline{font-size:1.5rem;opacity:.9;margin-bottom:.5rem}.hero .subtitle{font-size:1.125rem;opacity:.8;margin-bottom:2rem}.cta-button{display:inline-block;background:#fff;color:var(--primary-color);padding:.875rem 2rem;border-radius:.5rem;font-size:1.125rem;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s}.cta-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.features{max-width:1000px;margin:0 auto;padding:4rem 2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.feature{text-align:center;padding:2rem;background:#fff;border-radius:.75rem;box-shadow:0 2px 8px #00000014}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature h3{font-size:1.25rem;color:var(--gray-800);margin-bottom:.5rem}.feature p{color:var(--gray-600);line-height:1.6}.landing-footer{background:var(--gray-800);color:var(--gray-400);text-align:center;padding:2rem}.header-logo{text-decoration:none}.header-logo h1{color:var(--primary-color)}@media(max-width:640px){.app-header{padding:1rem}.app-header h1{font-size:1.25rem}.header-actions{width:100%;justify-content:space-between}.user-info{font-size:.875rem}.date-row{grid-template-columns:1fr}.fab{bottom:1rem;right:1rem}.fc .fc-toolbar{flex-direction:column;gap:.5rem}.hero{padding:4rem 1.5rem}.hero h1{font-size:2rem}.hero .tagline{font-size:1.25rem}.features{padding:2rem 1rem}.feature{padding:1.5rem}}
