:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{place-items:center;min-width:320px;min-height:100vh;margin:0;display:flex}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;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}html{overflow-x:hidden}body{color:#333;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.6;overflow-x:hidden}#root,.app{width:100%;min-height:100vh}.app-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);width:100%;padding:1.5rem 2rem;box-shadow:0 2px 10px #0000001a}.app-header h1{font-size:1.5rem;font-weight:600}.app-main{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.page-header h1{color:#333;font-size:2rem}.events-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.event-card{cursor:pointer;background:#fff;border-radius:12px;padding:0;transition:transform .2s,box-shadow .2s;overflow:hidden;box-shadow:0 2px 8px #00000014}.event-card__link{color:inherit;text-decoration:none;display:block}.event-card-image{object-fit:cover;width:100%;height:180px;display:block}.event-card h3,.event-card p,.event-card .event-actions{padding-left:1.5rem;padding-right:1.5rem}.event-card h3{padding-top:1.25rem}.event-card .event-actions{padding-bottom:1.25rem}.event-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.event-card h3{color:#333;margin-top:0;margin-bottom:.5rem;font-size:1.25rem}.event-date{color:#667eea;margin-bottom:.75rem;font-size:.9rem;font-weight:500}.event-description{color:#666;margin-bottom:1rem;font-size:.95rem}.event-actions{flex-wrap:wrap;gap:.5rem;display:flex}.btn{cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background-color .2s,transform .1s;display:inline-block}.btn:active{transform:scale(.98)}.btn-primary{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.btn-primary:hover{background:linear-gradient(135deg,#5a6fd6 0%,#6a4190 100%)}.btn-secondary{color:#495057;background:#e9ecef}.btn-secondary:hover{background:#dee2e6}.btn-danger{color:#fff;background:#dc3545}.btn-danger:hover{background:#c82333}.btn:disabled{opacity:.6;cursor:not-allowed}.wish-heart-btn{cursor:pointer;color:#ccc;background:0 0;border:none;padding:.25rem;font-size:2rem;line-height:1;transition:transform .15s,color .15s}.wish-heart-btn--filled{color:#e74c3c}.wish-heart-btn:hover{color:#e74c3c;transform:scale(1.25)}.btn-delete-discreet{color:#aaa;cursor:pointer;background:0 0;border:none;margin-top:2rem;font-size:.85rem;text-decoration:underline;display:block}.btn-delete-discreet:hover{color:#dc3545}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:90%;max-width:420px;padding:2rem;box-shadow:0 20px 60px #0000004d}.modal h2{color:#212529;margin:0 0 .75rem;font-size:1.2rem}.modal p{color:#6c757d;margin-bottom:1.5rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.back-link{color:#667eea;margin-bottom:1.5rem;font-weight:500;text-decoration:none;display:inline-block}.back-link:hover{text-decoration:underline}.event-detail{background:#fff;border-radius:12px;max-width:800px;margin:0 auto;padding:2rem;box-shadow:0 2px 8px #00000014}.event-detail-image{object-fit:cover;border-radius:8px;width:100%;max-height:400px;margin-bottom:1.5rem;display:block}.event-category{color:#667eea;margin-bottom:.5rem;font-size:.9rem;font-weight:500}.event-detail h1{margin-bottom:.5rem;font-size:2rem}.event-detail .event-description{white-space:pre-wrap;margin:1.5rem 0}.event-form{background:#fff;border-radius:12px;width:100%;max-width:600px;margin:0 auto;padding:2rem;box-shadow:0 2px 8px #00000014}.new-event,.edit-event{max-width:640px;margin:0 auto}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;margin-bottom:.5rem;font-weight:500;display:block}.form-group input,.form-group textarea,.form-group select{border:1px solid #ddd;border-radius:6px;width:100%;padding:.75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-group textarea{resize:vertical;min-height:120px}.error-messages{background:#fff5f5;border:1px solid #feb2b2;border-radius:6px;margin-bottom:1.5rem;padding:1rem}.error-messages ul{color:#c53030;list-style:none}.error-messages li{margin-bottom:.25rem}.loading{text-align:center;color:#666;padding:3rem}.error{text-align:center;color:#dc3545;padding:3rem}.no-events{text-align:center;color:#666;background:#fff;border-radius:12px;padding:3rem}.new-event h1,.edit-event h1{margin-bottom:1.5rem}.app-header{justify-content:space-between;align-items:center;width:100%;display:flex}.app-header-nav{gap:1rem;display:flex}.header-link{color:#fff;opacity:.9;font-weight:500;text-decoration:none}.header-link:hover{opacity:1;text-decoration:underline}.auth-page{justify-content:center;align-items:flex-start;padding-top:2rem;display:flex}.auth-form-container{background:#fff;border-radius:12px;width:100%;max-width:420px;padding:2rem;box-shadow:0 2px 8px #00000014}.auth-form-container h1{color:#333;margin-bottom:1.5rem;font-size:1.75rem}.auth-form{margin-bottom:1rem}.auth-switch{text-align:center;color:#666;font-size:.95rem}.auth-switch a{color:#667eea;font-weight:500;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.home-page{padding-bottom:3rem}.home-hero{text-align:center;color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;margin-bottom:3rem;padding:4rem 2rem}.home-hero h1{color:#fff;margin-bottom:.75rem;font-size:2.5rem}.home-tagline{opacity:.95;margin-bottom:2rem;font-size:1.25rem}.home-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.home-actions .btn{min-width:140px}.home-features h2{color:#333;margin-bottom:1.5rem;font-size:1.5rem}.features-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;display:grid}.feature-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014}.feature-card h3{color:#667eea;margin-bottom:.5rem;font-size:1.1rem}.feature-card p{color:#666;font-size:.95rem}.app-header-title{color:#fff;text-decoration:none}.app-header-title:hover h1{opacity:.9}@media (width<=1024px){.app-main{padding:1.5rem}.events-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (width<=768px){.app-header{text-align:center;flex-direction:column;gap:1rem;padding:1rem}.app-header h1{font-size:1.25rem}.app-header-nav{flex-wrap:wrap;justify-content:center;gap:.75rem}.header-link{font-size:.9rem}.app-main{padding:1rem}.home-hero{border-radius:8px;margin-bottom:2rem;padding:2rem 1rem}.home-hero h1{font-size:1.75rem}.home-tagline{margin-bottom:1.5rem;font-size:1rem}.home-actions{flex-direction:column;align-items:center;gap:.75rem}.home-actions .btn{width:100%;max-width:280px;padding:.65rem 1rem}.home-features h2{font-size:1.25rem}.features-grid{grid-template-columns:1fr;gap:1rem}.feature-card{padding:1.25rem}.page-header{flex-direction:column;align-items:stretch;gap:1rem}.page-header h1{font-size:1.5rem}.page-header .btn{text-align:center;width:100%}.events-grid{grid-template-columns:1fr;gap:1rem}.event-card{padding:1.25rem}.event-card h3{font-size:1.1rem}.event-detail,.event-form,.auth-form-container{padding:1.5rem}.event-detail h1,.new-event h1,.edit-event h1{font-size:1.5rem}.event-actions{flex-direction:column;gap:.5rem}.event-actions .btn,.event-actions a{text-align:center;width:100%;min-height:44px;padding:.65rem 1rem}.form-group input,.form-group select{min-height:44px;font-size:16px}.form-group textarea{min-height:120px;font-size:16px}.btn{min-height:44px;padding:.65rem 1rem}}@media (width<=480px){.app-header{padding:.75rem 1rem}.app-main{padding:.75rem}.home-hero{border-radius:0;padding:1.5rem .75rem}.home-hero h1{font-size:1.5rem}.home-tagline{font-size:.95rem}.auth-form-container{margin:0;padding:1.25rem}.auth-form-container h1{font-size:1.5rem}.event-detail,.event-form{border-radius:8px;padding:1rem}.event-detail h1,.new-event h1,.edit-event h1{font-size:1.25rem}.no-events{padding:2rem 1rem}}.pagination{justify-content:center;align-items:center;gap:.375rem;margin-top:2rem;padding:1rem 0;display:flex}.pagination__btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;min-width:2.25rem;height:2.25rem;padding:0 .5rem;font-size:.9rem;transition:background .15s,border-color .15s,color .15s}.pagination__btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.pagination__btn--active{color:#fff;background:#4f46e5;border-color:#4f46e5;font-weight:600}.pagination__btn:disabled{opacity:.35;cursor:default}.pagination__dots{color:#94a3b8;-webkit-user-select:none;user-select:none;padding:0 .25rem;line-height:2.25rem}.wish-filters{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;display:flex}.wish-filters__group{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.wish-filters__label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:.8rem;font-weight:600}.wish-filters__pills{flex-wrap:wrap;gap:.375rem;display:flex}.wish-filter-pill{color:#374151;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:99px;padding:.3rem .75rem;font-size:.825rem;transition:background .15s,border-color .15s,color .15s}.wish-filter-pill:hover{color:#4f46e5;border-color:#4f46e5}.wish-filter-pill--active{color:#fff;background:#4f46e5;border-color:#4f46e5}.wish-filters__select{color:#374151;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;outline:none;padding:.3rem .6rem;font-size:.825rem}.wish-filters__select:focus{border-color:#4f46e5}.wish-filters__reset{color:#94a3b8;cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;font-size:.825rem;transition:color .15s}.wish-filters__reset:hover{color:#e11d48}.moment-grid-page{max-width:960px;margin:1.5rem auto;padding:0 1rem}.moment-grid__header{align-items:baseline;gap:.75rem;margin-bottom:1rem;display:flex}.moment-grid__count{color:#94a3b8;font-size:.875rem}.moment-grid__empty{color:#64748b;margin-top:1rem}.moment-grid{grid-template-columns:repeat(3,1fr);gap:3px;display:grid}.moment-grid__cell{aspect-ratio:1;background:#1e293b;text-decoration:none;display:block;position:relative;overflow:hidden}.moment-grid__img{object-fit:cover;width:100%;height:100%;transition:transform .25s;display:block}.moment-grid__img--placeholder{background:linear-gradient(135deg,#1e293b,#334155)}.moment-grid__caption{pointer-events:none;background:linear-gradient(#0000 0%,#000000bf 100%);padding:1.5rem .6rem .5rem;transition:opacity .2s;position:absolute;bottom:0;left:0;right:0}.moment-grid__caption-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #0009;margin:0;font-size:.75rem;font-weight:600;line-height:1.3;overflow:hidden}.moment-grid__hover{color:#fff;opacity:0;text-align:center;background:#0009;flex-direction:column;justify-content:center;align-items:center;padding:1rem;transition:opacity .2s;display:flex;position:absolute;inset:0}.moment-grid__cell:hover .moment-grid__img{transform:scale(1.05)}.moment-grid__cell:hover .moment-grid__hover{opacity:1}.moment-grid__cell:hover .moment-grid__caption{opacity:0}.moment-grid__hover-desc{opacity:.9;margin:0;font-size:.8rem;font-style:italic;line-height:1.5}.moment-group{margin-bottom:2.5rem}.moment-group__heading{color:#475569;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #e2e8f0;margin:0 0 .6rem;padding-bottom:.4rem;font-size:1rem;font-weight:700}.moment-filters{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.moment-filter-pill{color:#475569;cursor:pointer;background:0 0;border:1.5px solid #cbd5e1;border-radius:99px;padding:.35rem .9rem;font-size:.825rem;font-weight:500;transition:all .15s}.moment-filter-pill:hover{color:#4f46e5;border-color:#4f46e5}.moment-filter-pill--active{color:#fff;background:#4f46e5;border-color:#4f46e5}.moment-filters__reset{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:.8rem;text-decoration:underline;transition:color .15s}.moment-filters__reset:hover{color:#e11d48}@media (width<=600px){.moment-grid{grid-template-columns:repeat(2,1fr);gap:2px}}.wish-list__empty{color:#64748b;margin-top:1rem}.wish-cards{flex-direction:column;gap:1.25rem;margin-top:1rem;display:flex}.wish-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;transition:box-shadow .15s;display:flex;overflow:hidden}.wish-card:hover{box-shadow:0 4px 16px #00000014}.wish-card__image-wrapper{flex-shrink:0;width:160px}.wish-card__image{object-fit:cover;width:100%;height:100%;display:block}.wish-card__body{flex-direction:column;flex:1;gap:.5rem;padding:1.25rem;display:flex}.wish-card__meta{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.wish-card__category{color:#4f46e5;text-transform:uppercase;letter-spacing:.04em;background:#eef2ff;border-radius:99px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.wish-card__date{color:#64748b;font-size:.825rem}.wish-card__title{margin:0;font-size:1.1rem;font-weight:700}.wish-card__title a{color:#0f172a;text-decoration:none}.wish-card__title a:hover{color:#4f46e5;text-decoration:underline}.wish-card__description{color:#64748b;margin:0;font-size:.875rem;line-height:1.5}.wish-card__actions{align-items:center;gap:.75rem;margin-top:auto;padding-top:.5rem;display:flex}.wish-card__remove{cursor:pointer;color:#94a3b8;background:0 0;border:none;padding:0;font-size:.85rem;transition:color .15s}.wish-card__remove:hover{color:#e11d48}@media (width<=540px){.wish-card{flex-direction:column}.wish-card__image-wrapper{width:100%;height:160px}}.events-search{max-width:420px;margin-bottom:1.5rem;position:relative}.events-search__input{box-sizing:border-box;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:.6rem 2.25rem .6rem .875rem;font-size:.95rem;transition:border-color .15s}.events-search__input:focus{border-color:#4f46e5}.events-search__clear{cursor:pointer;color:#94a3b8;background:0 0;border:none;padding:0;font-size:.85rem;line-height:1;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.events-search__clear:hover{color:#475569}.friends-page{max-width:640px;margin:0 auto;padding:2rem 1rem}.friends-page h1{margin-bottom:2rem;font-size:1.75rem;font-weight:700}.friends-section{margin-bottom:2.5rem}.friends-section h2{align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.1rem;font-weight:600;display:flex}.friends-search{margin-bottom:2.5rem}.friends-search h2{margin-bottom:.75rem;font-size:1.1rem;font-weight:600}.friends-search__input{border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:.6rem .875rem;font-size:.95rem;transition:border-color .15s}.friends-search__input:focus{border-color:#4f46e5}.friends-search__results{border:1px solid #e2e8f0;border-radius:8px;margin:.5rem 0 0;padding:0;list-style:none;overflow:hidden}.friends-search__result-item{background:#fff;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.friends-search__result-item:last-child{border-bottom:none}.friends-search__no-results{color:#94a3b8;margin-top:.5rem;font-size:.9rem}.friends-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.friends-list__item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.friends-list__actions{gap:.5rem;display:flex}.friends-empty{color:#94a3b8;font-size:.95rem}.friends-badge{color:#fff;background:#4f46e5;border-radius:99px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.friends-list__name{color:#4f46e5;font-weight:500;text-decoration:none}.friends-list__name:hover{text-decoration:underline}.friend-profile{max-width:640px;margin:0 auto;padding:2rem 1rem}.friend-profile__back{color:#64748b;font-size:.9rem;text-decoration:none}.friend-profile__back:hover{text-decoration:underline}.friend-profile__title{margin:1rem 0 2rem;font-size:1.75rem;font-weight:700}.friend-profile__section{margin-bottom:2.5rem}.friend-profile__section-header{margin-bottom:1rem}.friend-profile__section-link{color:#1e293b;font-size:1.25rem;font-weight:700;text-decoration:none;transition:color .15s}.friend-profile__section-link:hover{color:#4f46e5}.friend-profile__see-all{color:#4f46e5;margin-top:1rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-block}.friend-profile__see-all:hover{text-decoration:underline}.friend-profile__section h2{margin-bottom:1rem;font-size:1.1rem;font-weight:600}.friend-profile__list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.friend-profile__item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem 1rem}.friend-profile__item a{color:#4f46e5;font-weight:500;text-decoration:none}.friend-profile__item a:hover{text-decoration:underline}.friend-profile__description{color:#64748b;margin:.35rem 0 0;font-size:.875rem}.friend-profile__empty{color:#94a3b8;font-size:.95rem}.friends-badge--muted{color:#64748b;background:#e2e8f0}.btn-sm{padding:.3rem .75rem;font-size:.85rem}.header-btn{cursor:pointer;font:inherit;background:0 0;border:none}.success-messages{color:#166534;background:#f0fdf4;border:1px solid #86efac;border-radius:6px;margin-bottom:1.5rem;padding:1rem}
